<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/Transforms/LoopUnswitch, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2019-07-15T21:16:29+00:00</updated>
<entry>
<title>[LoopUnroll+LoopUnswitch] do not transform loops containing callbr</title>
<updated>2019-07-15T21:16:29+00:00</updated>
<author>
<name>Nick Desaulniers</name>
<email>ndesaulniers@google.com</email>
</author>
<published>2019-07-15T21:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=c4f245b40aad7e8627b37a8bf1bdcdbcd541e665'/>
<id>urn:sha1:c4f245b40aad7e8627b37a8bf1bdcdbcd541e665</id>
<content type='text'>
Summary:
There is currently a correctness issue when unrolling loops containing
callbr's where their indirect targets are being updated correctly to the
newly created labels, but their operands are not.  This manifests in
unrolled loops where the second and subsequent copies of callbr
instructions have blockaddresses of the label from the first instance of
the unrolled loop, which would result in nonsensical runtime control
flow.

For now, conservatively do not unroll the loop.  In the future, I think
we can pursue unrolling such loops provided we transform the cloned
callbr's operands correctly.

Such a transform and its legalities are being discussed in:
https://reviews.llvm.org/D64101

Link: https://bugs.llvm.org/show_bug.cgi?id=42489
Link: https://groups.google.com/forum/#!topic/clang-built-linux/z-hRWP9KqPI

Reviewers: fhahn, hfinkel, efriedma

Reviewed By: fhahn, hfinkel, efriedma

Subscribers: efriedma, hiraditya, zzheng, dmgreen, llvm-commits, pirama, kees, nathanchance, E5ten, craig.topper, chandlerc, glider, void, srhines

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64368

llvm-svn: 366130
</content>
</entry>
<entry>
<title>Revert "Temporarily Revert "Add basic loop fusion pass.""</title>
<updated>2019-04-17T04:52:47+00:00</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2019-04-17T04:52:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cee313d288a4faf0355d76fb6e0e927e211d08a5'/>
<id>urn:sha1:cee313d288a4faf0355d76fb6e0e927e211d08a5</id>
<content type='text'>
The reversion apparently deleted the test/Transforms directory.

Will be re-reverting again.

llvm-svn: 358552
</content>
</entry>
<entry>
<title>Temporarily Revert "Add basic loop fusion pass."</title>
<updated>2019-04-17T02:12:23+00:00</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2019-04-17T02:12:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a86343512845c9c1fdbac865fea88aa5fce7142a'/>
<id>urn:sha1:a86343512845c9c1fdbac865fea88aa5fce7142a</id>
<content type='text'>
As it's causing some bot failures (and per request from kbarton).

This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.

llvm-svn: 358546
</content>
</entry>
<entry>
<title>Update MemorySSA in LoopUnswitch.</title>
<updated>2018-09-11T19:19:21+00:00</updated>
<author>
<name>Alina Sbirlea</name>
<email>asbirlea@google.com</email>
</author>
<published>2018-09-11T19:19:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a496143c9e6f95e200bb71b6657cdd6431caebd2'/>
<id>urn:sha1:a496143c9e6f95e200bb71b6657cdd6431caebd2</id>
<content type='text'>
Summary:
Update MemorySSA in old LoopUnswitch pass.
Actual dependency and update is disabled by default.

Subscribers: sanjoy, jlebar, Prazek, llvm-commits

Differential Revision: https://reviews.llvm.org/D45301

llvm-svn: 341984
</content>
</entry>
<entry>
<title>[LoopUnswitch] Fix SCEV invalidation in unswitching</title>
<updated>2018-05-23T10:09:53+00:00</updated>
<author>
<name>Max Kazantsev</name>
<email>max.kazantsev@azul.com</email>
</author>
<published>2018-05-23T10:09:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d99f3bacb4b92847e8fae3be4cab4acbe107df52'/>
<id>urn:sha1:d99f3bacb4b92847e8fae3be4cab4acbe107df52</id>
<content type='text'>
Loop unswitching makes substantial changes to a loop that can also affect cached
SCEV info in its outer loops as well, but it only cares to invalidate SCEV cache for the
innermost loop in case of full unswitching and does not invalidate anything at all in
case of trivial unswitching. As result, we may end up with incorrect data in cache.

Differential Revision: https://reviews.llvm.org/D46045
Reviewed By: mzolotukhin

llvm-svn: 333072
</content>
</entry>
<entry>
<title>[NFC] Use FileCheck in test</title>
<updated>2018-04-24T04:42:37+00:00</updated>
<author>
<name>Max Kazantsev</name>
<email>max.kazantsev@azul.com</email>
</author>
<published>2018-04-24T04:42:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=7790d6cbffca5f5c9285365381363f6069dcb91a'/>
<id>urn:sha1:7790d6cbffca5f5c9285365381363f6069dcb91a</id>
<content type='text'>
llvm-svn: 330684
</content>
</entry>
<entry>
<title>[SimplifyCFG] Re-apply Relax restriction for folding unconditional branches</title>
<updated>2018-02-08T07:16:29+00:00</updated>
<author>
<name>Serguei Katkov</name>
<email>serguei.katkov@azul.com</email>
</author>
<published>2018-02-08T07:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=66182d6c3805d167bb8b19b2958b481c4b3eed56'/>
<id>urn:sha1:66182d6c3805d167bb8b19b2958b481c4b3eed56</id>
<content type='text'>
The commit rL308422 introduces a restriction for folding unconditional
branches. Specifically if empty block with unconditional branch leads to
header of the loop then elimination of this basic block is prohibited.
However it seems this condition is redundantly strict.
If elimination of this basic block does not introduce more back edges
then we can eliminate this block.

The patch implements this relax of restriction.

The test profile/Linux/counter_promo_nest.c in compiler-rt project
is updated to meet this change.

Reviewers: efriedma, mcrosier, pacxx, hsung, davidxl	
Reviewed By: pacxx
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42691

llvm-svn: 324572
</content>
</entry>
<entry>
<title>Revert [SimplifyCFG] Relax restriction for folding unconditional branches</title>
<updated>2018-02-05T09:05:43+00:00</updated>
<author>
<name>Serguei Katkov</name>
<email>serguei.katkov@azul.com</email>
</author>
<published>2018-02-05T09:05:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=276b32bb14eb1a7413af7b73bc0805799c67c75e'/>
<id>urn:sha1:276b32bb14eb1a7413af7b73bc0805799c67c75e</id>
<content type='text'>
The patch causes the failure of the test
compiler-rt/test/profile/Linux/counter_promo_nest.c

To unblock buildbot, revert the patch while investigation is in progress.

Differential Revision: https://reviews.llvm.org/D42691

llvm-svn: 324214
</content>
</entry>
<entry>
<title>[SimplifyCFG] Relax restriction for folding unconditional branches</title>
<updated>2018-02-05T07:56:43+00:00</updated>
<author>
<name>Serguei Katkov</name>
<email>serguei.katkov@azul.com</email>
</author>
<published>2018-02-05T07:56:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6e93980e8251213269aa3e314036d933e77e6f33'/>
<id>urn:sha1:6e93980e8251213269aa3e314036d933e77e6f33</id>
<content type='text'>
The commit rL308422 introduces a restriction for folding unconditional
branches. Specifically if empty block with unconditional branch leads to
header of the loop then elimination of this basic block is prohibited.
However it seems this condition is redundantly strict.
If elimination of this basic block does not introduce more back edges
then we can eliminate this block.

The patch implements this relax of restriction.

Reviewers: efriedma, mcrosier, pacxx, hsung, davidxl	
Reviewed By: pacxx
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42691

llvm-svn: 324208
</content>
</entry>
<entry>
<title>[LoopUnswitch] Fix a simple bug which disables loop unswitch for select statement</title>
<updated>2017-08-29T21:45:11+00:00</updated>
<author>
<name>Wei Mi</name>
<email>wmi@google.com</email>
</author>
<published>2017-08-29T21:45:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ebb93277590c0e8553f5278724cb96f912dc0dc0'/>
<id>urn:sha1:ebb93277590c0e8553f5278724cb96f912dc0dc0</id>
<content type='text'>
This is to fix PR34257. rL309059 takes an early return when FindLIVLoopCondition
fails to find a loop invariant condition. This is wrong and it will disable loop
unswitch for select. The patch fixes the bug.

Differential Revision: https://reviews.llvm.org/D36985

llvm-svn: 312045
</content>
</entry>
</feed>
