#
6c0f25ae |
| 22-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[StructurizeCFG] Refactor OrderNodes.
Summary: No need to copy the RPOT vector before using it. Switch from std::map to SmallDenseMap. Get rid of an unused variable (TempVisited). Get rid of a ty
[StructurizeCFG] Refactor OrderNodes.
Summary: No need to copy the RPOT vector before using it. Switch from std::map to SmallDenseMap. Get rid of an unused variable (TempVisited). Get rid of a typedef, RNVector, which is now used only once.
Differential Revision: https://reviews.llvm.org/D26997
llvm-svn: 287721
show more ...
|
#
23aaf602 |
| 22-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[StructurizeCFG] Add whitespace in getAnalysisUsage.
Summary: "addRequired" and "addPreserved" look very similar when squished up next to each other -- without the newline this code looked to me lik
[StructurizeCFG] Add whitespace in getAnalysisUsage.
Summary: "addRequired" and "addPreserved" look very similar when squished up next to each other -- without the newline this code looked to me like it was addRequired'ing DominatorTreeWrapperPass twice.
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D26996
llvm-svn: 287720
show more ...
|
#
820db74c |
| 22-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[StructurizeCFG] Remove unnecessary "using" in class.
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D26995
llvm-svn: 287719
|
#
73c4baf3 |
| 22-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[StructurizeCFG] Merge the two constructors into one.
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D26994
llvm-svn: 287718
|
#
1b60d700 |
| 22-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[StructurizeCFG] Use a for-each loop instead of iterators in runOnRegion.
Summary:
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D26993
llvm-s
[StructurizeCFG] Use a for-each loop instead of iterators in runOnRegion.
Summary:
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D26993
llvm-svn: 287717
show more ...
|
#
c7445d57 |
| 22-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[StructurizeCFG] Make hasOnlyUniformBranches a non-member function.
Summary: Lets us get rid of one member variable too.
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: h
[StructurizeCFG] Make hasOnlyUniformBranches a non-member function.
Summary: Lets us get rid of one member variable too.
Reviewers: arsenm
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D26992
llvm-svn: 287716
show more ...
|
#
7d18a70d |
| 20-Nov-2016 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix spelling mistakes in Transforms comments. NFC.
Identified by Pedro Giffuni in PR27636.
llvm-svn: 287488
|
#
117296c0 |
| 01-Oct-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
Use StringRef in Pass/PassManager APIs (NFC)
llvm-svn: 283004
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2 |
|
#
0d955d0b |
| 11-Aug-2016 |
David Majnemer <david.majnemer@gmail.com> |
Use the range variant of find instead of unpacking begin/end
If the result of the find is only used to compare against end(), just use is_contained instead.
No functionality change is intended.
ll
Use the range variant of find instead of unpacking begin/end
If the result of the find is only used to compare against end(), just use is_contained instead.
No functionality change is intended.
llvm-svn: 278433
show more ...
|
Revision tags: llvmorg-3.9.0-rc1 |
|
#
93be6e8c |
| 15-Jul-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
StructurizeCFG: Fix inverting constantexpr conditions
llvm-svn: 275626
|
#
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
|
#
d7708773 |
| 24-Jun-2016 |
David Majnemer <david.majnemer@gmail.com> |
Switch more loops to be range-based
This makes the code a little more concise, no functional change is intended.
llvm-svn: 273644
|
#
4dea8f54 |
| 17-Jun-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid duplicated map lookups. No functionality change intended.
llvm-svn: 273030
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
05b127da |
| 14-Apr-2016 |
Nicolai Haehnle <nhaehnle@gmail.com> |
[StructurizeCFG] Annotate branches that were treated as uniform
Summary: This fully solves the problem where the StructurizeCFG pass does not consider the same branches as uniform as the SIAnnotateC
[StructurizeCFG] Annotate branches that were treated as uniform
Summary: This fully solves the problem where the StructurizeCFG pass does not consider the same branches as uniform as the SIAnnotateControlFlow pass. The patch in D19013 helps with this problem, but is not sufficient (and, interestingly, causes a "regression" with one of the existing test cases).
No tests included here, because tests in D19013 already cover this.
Reviewers: arsenm, tstellarAMD
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19018
llvm-svn: 266346
show more ...
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
6fa4e290 |
| 10-Feb-2016 |
Tom Stellard <thomas.stellard@amd.com> |
StructurizeCFG: Initialize SkipUniformRegions in the default constructor
This should fix some random bot failures caused by r260336.
llvm-svn: 260342
|
#
755a4e6b |
| 10-Feb-2016 |
Tom Stellard <thomas.stellard@amd.com> |
StructurizeCFG: Add an option for skipping regions with only uniform branches
Summary: Tests for this will be added once the AMDGPU backend enables this option.
Reviewers: arsenm
Subscribers: llvm
StructurizeCFG: Add an option for skipping regions with only uniform branches
Summary: Tests for this will be added once the AMDGPU backend enables this option.
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16602
llvm-svn: 260336
show more ...
|
Revision tags: llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
#
be4d8cba |
| 13-Oct-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Scalar: Remove remaining ilist iterator implicit conversions
Remove remaining `ilist_iterator` implicit conversions from LLVMScalarOpts.
This change exposed some scary behaviour in lib/Transforms/S
Scalar: Remove remaining ilist iterator implicit conversions
Remove remaining `ilist_iterator` implicit conversions from LLVMScalarOpts.
This change exposed some scary behaviour in lib/Transforms/Scalar/SCCP.cpp around line 1770. This patch changes a call from `Function::begin()` to `&Function::front()`, since the return was immediately being passed into another function that takes a `Function*`. `Function::front()` started to assert, since the function was empty. Note that `Function::end()` does not point at a legal `Function*` -- it points at an `ilist_half_node` -- so the other function was getting garbage before. (I added the missing check for `Function::isDeclaration()`.)
Otherwise, no functionality change intended.
llvm-svn: 250211
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4 |
|
#
ebcd7489 |
| 06-Aug-2015 |
Pete Cooper <peter_cooper@apple.com> |
Convert a bunch of loops to foreach. NFC.
After r244074, we now have a successors() method to iterate over all the successors of a TerminatorInst. This commit changes a bunch of eligible loops to
Convert a bunch of loops to foreach. NFC.
After r244074, we now have a successors() method to iterate over all the successors of a TerminatorInst. This commit changes a bunch of eligible loops to use it.
llvm-svn: 244260
show more ...
|
Revision tags: llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
6b1aa5f5 |
| 15-Apr-2015 |
Richard Trieu <rtrieu@google.com> |
Change range-based for-loops to be -Wrange-loop-analysis clean. No functionality change.
llvm-svn: 234963
|
#
799003bf |
| 23-Mar-2015 |
Benjamin Kramer <benny.kra@googlemail.com> |
Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used.
llvm-svn: 232998
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3 |
|
#
080209d5 |
| 04-Feb-2015 |
Tom Stellard <thomas.stellard@amd.com> |
StructurizeCFG: Remove obsolete fix for loop backedge detection
This is no longer needed now that we are using a reverse post-order traversal.
llvm-svn: 228187
|
#
071ec90b |
| 04-Feb-2015 |
Tom Stellard <thomas.stellard@amd.com> |
StructurizeCFG: Use a reverse post-order traversal
We were previously doing a post-order traversal and operating on the list in reverse, however this would occasionaly cause backedges for loops to b
StructurizeCFG: Use a reverse post-order traversal
We were previously doing a post-order traversal and operating on the list in reverse, however this would occasionaly cause backedges for loops to be visited before some of the other blocks in the loop.
We know use a reverse post-order traversal, which avoids this issue.
The reverse post-order traversal is not completely ideal, so we need to manually fixup the list to ensure that inner loop backedges are visited before outer loop backedges.
llvm-svn: 228186
show more ...
|
Revision tags: llvmorg-3.6.0-rc2 |
|
#
4f8f307c |
| 17-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Split the LoopInfo object apart from the legacy pass, creating a LoopInfoWrapperPass to wire the object up to the legacy pass manager.
This switches all the clients of LoopInfo over and paves t
[PM] Split the LoopInfo object apart from the legacy pass, creating a LoopInfoWrapperPass to wire the object up to the legacy pass manager.
This switches all the clients of LoopInfo over and paves the way to port LoopInfo to the new pass manager. No functionality change is intended with this iteration.
llvm-svn: 226373
show more ...
|
Revision tags: llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
1f0dded0 |
| 03-Dec-2014 |
Tom Stellard <thomas.stellard@amd.com> |
StructurizeCFG: Use LoopInfo analysis for better loop detection
We were assuming that each back-edge in a region represented a unique loop, which is not always the case. We need to use LoopInfo to
StructurizeCFG: Use LoopInfo analysis for better loop detection
We were assuming that each back-edge in a region represented a unique loop, which is not always the case. We need to use LoopInfo to correctly determine which back-edges are loops.
llvm-svn: 223199
show more ...
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1 |
|
#
6c99015f |
| 21-Jul-2014 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges."
This reverts commit r213474 (and r213475), which causes a miscompile on a stage2 LTO build. I'll reply on
Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges."
This reverts commit r213474 (and r213475), which causes a miscompile on a stage2 LTO build. I'll reply on the list in a moment.
llvm-svn: 213562
show more ...
|