History log of /llvm-project/llvm/lib/Transforms/Utils/LoopSimplify.cpp (Results 76 – 100 of 283)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 7fd29cef 21-Jan-2017 Chandler Carruth <chandlerc@gmail.com>

[PM] Sink an LCSSA preservation assert from the LoopSimplify pass into
the library routine shared with the new PM and other code.

This assert checks that when LCSSA preservation is requested we star

[PM] Sink an LCSSA preservation assert from the LoopSimplify pass into
the library routine shared with the new PM and other code.

This assert checks that when LCSSA preservation is requested we start in
LCSSA form. Without this early assert, given *very* complex test cases
we can hit an assert or crash much later on when trying to preserve
LCSSA.

The new PM's loop simplify doesn't need to (and indeed can't) preserve
LCSSA as the new PM doesn't deal in transforms in the dependency graph.
But we asked the library to and shockingly, this didn't work very well!
Stop doing that. Now the assert will tell us immediately with existing
test cases. Before this, it took a pretty convoluted input to trigger
this.

However, sinking the assert also found a bug in LoopUnroll where we
asked simplifyLoop to preserve LCSSA *right before we reform it*. That's
kinda silly and unsurprising that it wasn't available. =D Stop doing
that too.

We also would assert that the unrolled loop was in LCSSA even if
preserving LCSSA was never requested! I don't have a test case or
anything here. I spotted it by inspection and it seems quite obvious. No
logic change anyways, that's just avoiding a spurrious assert.

llvm-svn: 292710

show more ...


Revision tags: llvmorg-4.0.0-rc1
# aec2fa35 19-Dec-2016 Daniel Jasper <djasper@google.com>

Revert @llvm.assume with operator bundles (r289755-r289757)

This creates non-linear behavior in the inliner (see more details in
r289755's commit thread).

llvm-svn: 290086


# 3ca4a6bc 15-Dec-2016 Hal Finkel <hfinkel@anl.gov>

Remove the AssumptionCache

After r289755, the AssumptionCache is no longer needed. Variables affected by
assumptions are now found by using the new operand-bundle-based scheme. This
new scheme is mo

Remove the AssumptionCache

After r289755, the AssumptionCache is no longer needed. Variables affected by
assumptions are now found by using the new operand-bundle-based scheme. This
new scheme is more computationally efficient, and also we need much less
code...

llvm-svn: 289756

show more ...


Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1
# 5020c997 18-Nov-2016 Michael Zolotukhin <mzolotukhin@apple.com>

[LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks.

This fixes PR30454.

llvm-svn: 287379


# 77382be5 18-Nov-2016 Florian Hahn <florian.hahn@arm.com>

[simplifycfg][loop-simplify] Preserve loop metadata in 2 transformations.

insertUniqueBackedgeBlock in lib/Transforms/Utils/LoopSimplify.cpp now
propagates existing llvm.loop metadata to newly the a

[simplifycfg][loop-simplify] Preserve loop metadata in 2 transformations.

insertUniqueBackedgeBlock in lib/Transforms/Utils/LoopSimplify.cpp now
propagates existing llvm.loop metadata to newly the added backedge.

llvm::TryToSimplifyUncondBranchFromEmptyBlock in lib/Transforms/Utils/Local.cpp
now propagates existing llvm.loop metadata to the branch instructions in the
predecessor blocks of the empty block that is removed.

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

llvm-svn: 287341

show more ...


# 04423cf7 11-Oct-2016 Igor Laevsky <igmyrj@gmail.com>

[LCSSA] Implement linear algorithm for the isRecursivelyLCSSAForm

For each block check that it doesn't have any uses outside of it's innermost loop.

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

[LCSSA] Implement linear algorithm for the isRecursivelyLCSSAForm

For each block check that it doesn't have any uses outside of it's innermost loop.

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

llvm-svn: 283877

show more ...


# 1a554be3 27-Sep-2016 Michael Zolotukhin <mzolotukhin@apple.com>

[LoopSimplify] When simplifying phis in loop-simplify, do it only if it preserves LCSSA form.

llvm-svn: 282541


Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2
# aae168f9 09-Aug-2016 Michael Zolotukhin <mzolotukhin@apple.com>

[LoopSimplify] Rebuild LCSSA for the inner loop after separating nested loops.

Summary:
This hopefully fixes PR28825. The problem now was that a value from the
original loop was used in a subloop, w

[LoopSimplify] Rebuild LCSSA for the inner loop after separating nested loops.

Summary:
This hopefully fixes PR28825. The problem now was that a value from the
original loop was used in a subloop, which became a sibling after separation.
While a subloop doesn't need an lcssa phi node, a sibling does, and that's
where we broke LCSSA. The most natural way to fix this now is to simply call
formLCSSA on the original loop: it'll do what we've been doing before plus
it'll cover situations described above.

I think we don't need to run formLCSSARecursively here, and we have an assert
to verify this (I've tried testing it on LLVM testsuite + SPECs). I'd be happy
to be corrected here though.

I also changed a run line in the test from '-lcssa -loop-unroll' to
'-lcssa -loop-simplify -indvars', because it exercises LCSSA
preservation to the same extent, but also makes less unrelated
transformation on the CFG, which makes it easier to verify.

Reviewers: chandlerc, sanjoy, silvas

Subscribers: llvm-commits

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

llvm-svn: 278173

show more ...


# 36e0d01e 09-Aug-2016 Sean Silva <chisophugis@gmail.com>

Consistently use FunctionAnalysisManager

Besides a general consistently benefit, the extra layer of indirection
allows the mechanical part of https://reviews.llvm.org/D23256 that
requires touching e

Consistently use FunctionAnalysisManager

Besides a general consistently benefit, the extra layer of indirection
allows the mechanical part of https://reviews.llvm.org/D23256 that
requires touching every transformation and analysis to be factored out
cleanly.

Thanks to David for the suggestion.

llvm-svn: 278077

show more ...


# 0873e7d2 08-Aug-2016 Sean Silva <chisophugis@gmail.com>

Add some comments linking back to PR28400.

Thanks to Mehdi for the suggestion!

llvm-svn: 277984


# 7f21f4b2 08-Aug-2016 Sean Silva <chisophugis@gmail.com>

[PM] More workaround for PR28400

llvm-svn: 277982


# 442b82f0 07-Aug-2016 Michael Zolotukhin <mzolotukhin@apple.com>

Revert "Revert "[LoopSimplify] Fix updating LCSSA after separating nested loops.""

This reverts commit r277901. Reaaply the commit as it looks like it has
nothing to do with the bots failures.

llvm

Revert "Revert "[LoopSimplify] Fix updating LCSSA after separating nested loops.""

This reverts commit r277901. Reaaply the commit as it looks like it has
nothing to do with the bots failures.

llvm-svn: 277946

show more ...


# 09cf304e 06-Aug-2016 Michael Zolotukhin <mzolotukhin@apple.com>

Revert "[LoopSimplify] Fix updating LCSSA after separating nested loops."

This reverts commit r277877.
Try to appease clang-x64-ninja-win7 buildbot.

llvm-svn: 277901


# 4c65c359 05-Aug-2016 Michael Zolotukhin <mzolotukhin@apple.com>

[LoopSimplify] Fix updating LCSSA after separating nested loops.

This fixes PR28825. The problem was that we only checked if a value from
a created inner loop is used in the outer loop, and fixed LC

[LoopSimplify] Fix updating LCSSA after separating nested loops.

This fixes PR28825. The problem was that we only checked if a value from
a created inner loop is used in the outer loop, and fixed LCSSA for
them. But we missed to fixup LCSSA for values used in exits of the outer
loop.

llvm-svn: 277877

show more ...


Revision tags: llvmorg-3.9.0-rc1
# 6bc56d55 20-Jul-2016 Michael Zolotukhin <mzolotukhin@apple.com>

Revert "Revert r275883 and r275891. They seem to cause PR28608."

This reverts commit r276064, and thus reapplies r275891 and r275883 with
a fix for PR28608.

llvm-svn: 276077


# 554efb28 19-Jul-2016 Sean Silva <chisophugis@gmail.com>

Revert r275883 and r275891. They seem to cause PR28608.

Revert "[LoopSimplify] Update LCSSA after separating nested loops."

This reverts commit r275891.

Revert "[LCSSA] Post-process PHI-nodes crea

Revert r275883 and r275891. They seem to cause PR28608.

Revert "[LoopSimplify] Update LCSSA after separating nested loops."

This reverts commit r275891.

Revert "[LCSSA] Post-process PHI-nodes created by SSAUpdate when constructing LCSSA form."

This reverts commit r275883.

llvm-svn: 276064

show more ...


# ea5b7282 18-Jul-2016 Michael Zolotukhin <mzolotukhin@apple.com>

[LoopSimplify] Update LCSSA after separating nested loops.

Summary:
Usually LCSSA survives this transformation, but in some cases (see
attached test) it doesn't: values from the original loop after

[LoopSimplify] Update LCSSA after separating nested loops.

Summary:
Usually LCSSA survives this transformation, but in some cases (see
attached test) it doesn't: values from the original loop after
separating might be used from the outer loop. Before the transformation
it was the same loop, so LCSSA phis were not required.

This fixes PR28272.

Reviewers: sanjoy, hfinkel, chandlerc

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D21665

llvm-svn: 275891

show more ...


# 081fd139 09-Jul-2016 Davide Italiano <davide@freebsd.org>

[LoopSimplify] Remove a comment which is unlikely to age well.

Chandler pointed out in his review but I forgot to remove before
committing, my bad.

llvm-svn: 274963


# cd96cfd8 09-Jul-2016 Davide Italiano <davide@freebsd.org>

[PM] Port LoopSimplify to the new pass manager.

While here move simplifyLoop() function to the new header, as
suggested by Chandler in the review.

Differential Revision: http://reviews.llvm.org/D2

[PM] Port LoopSimplify to the new pass manager.

While here move simplifyLoop() function to the new header, as
suggested by Chandler in the review.

Differential Revision: http://reviews.llvm.org/D21404

llvm-svn: 274959

show more ...


# 135f735a 26-Jun-2016 Benjamin Kramer <benny.kra@googlemail.com>

Apply clang-tidy's modernize-loop-convert to most of lib/Transforms.

Only minor manual fixes. No functionality change intended.

llvm-svn: 273808


# e14e7bc4 25-Jun-2016 David Majnemer <david.majnemer@gmail.com>

Revert "[SimplifyCFG] Stop inserting calls to llvm.trap for UB"

This reverts commit r273778, it seems to break UBSan :/

llvm-svn: 273779


# d346a377 25-Jun-2016 David Majnemer <david.majnemer@gmail.com>

[SimplifyCFG] Stop inserting calls to llvm.trap for UB

SimplifyCFG had logic to insert calls to llvm.trap for two very
particular IR patterns: stores and invokes of undef/null.

While InstCombine ca

[SimplifyCFG] Stop inserting calls to llvm.trap for UB

SimplifyCFG had logic to insert calls to llvm.trap for two very
particular IR patterns: stores and invokes of undef/null.

While InstCombine canonicalizes certain undefined behavior IR patterns
to stores of undef, phase ordering means that this cannot be relied upon
in general.

There are much better tools than llvm.trap: UBSan and ASan.

N.B. I could be argued into reverting this change if a clear argument as
to why it is important that we synthesize llvm.trap for stores, I'd be
hard pressed to see why it'd be useful for invokes...

llvm-svn: 273778

show more ...


# 9d305d70 15-Jun-2016 Davide Italiano <davide@freebsd.org>

[LoopSimplify] Analyses do not need to be member variables.

In preparation for porting this pass to the new PM.

llvm-svn: 272818


# 8e7e7672 08-Jun-2016 Michael Zolotukhin <mzolotukhin@apple.com>

[LoopSimplify] Preserve LCSSA when merging exit blocks.

Summary:
This fixes PR26682. Also add LCSSA as a preserved pass to LoopSimplify,
that looks correct to me and allows to write a test for the i

[LoopSimplify] Preserve LCSSA when merging exit blocks.

Summary:
This fixes PR26682. Also add LCSSA as a preserved pass to LoopSimplify,
that looks correct to me and allows to write a test for the issue.

Reviewers: chandlerc, bogner, sanjoy

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D21112

llvm-svn: 272224

show more ...


# 2d5ab0a5 08-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM] LoopSimplify. Remove unneeded pass dependencies. NFCI.

llvm-svn: 272140


12345678910>>...12