aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/RegionPass.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-04-04[IR] Refactor attribute methods in Function class (NFC)Evandro Menezes1-1/+1
Rename the functions that query the optimization kind attributes. Differential revision: https://reviews.llvm.org/D60287 llvm-svn: 357731
2019-04-03[IR] Create new method in `Function` class (NFC)Evandro Menezes1-1/+1
Create method `optForNone()` testing for the function level equivalent of `-O0` and refactor appropriately. Differential revision: https://reviews.llvm.org/D59852 llvm-svn: 357638
2019-03-08[RegionPass] Fix forgotten "!".Michael Kruse1-1/+1
Commit r355068 "Fix IR/Analysis layering issue with OptBisect" uses the template return Gate.isEnabled() && !Gate.shouldRunPass(this, getDescription(...)); for all pass kinds. For the RegionPass, it left out the not operator, causing region passes to be skipped as soon as a pass gate is used. llvm-svn: 355733
2019-02-28Fix IR/Analysis layering issue with OptBisectRichard Trieu1-1/+6
OptBisect is in IR due to LLVMContext using it. However, it uses IR units from Analysis as well. This change moves getDescription functions from OptBisect to their respective IR units. Generating names for IR units will now be up to the callers, keeping the Analysis IR units in Analysis. To prevent unnecessary string generation, isEnabled function is added so that callers know when the description needs to be generated. Differential Revision: https://reviews.llvm.org/D58406 llvm-svn: 355068
2019-01-19Update the file headers across all of the LLVM projects in the monorepoChandler Carruth1-4/+3
to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
2018-08-28[NFC][PassTiming] factor out generic PassTimingInfoFedor Sergeev1-0/+1
Moving PassTimingInfo from legacy pass manager code into a separate header. Making it suitable for both legacy and new pass manager. Adding a test on -time-passes main functionality. llvm-svn: 340872
2018-05-14Rename DEBUG macro to LLVM_DEBUG.Nicola Zaghen1-8/+5
The DEBUG() macro is very generic so it might clash with other projects. The renaming was done as follows: - git grep -l 'DEBUG' | xargs sed -i 's/\bDEBUG\s\?(/LLVM_DEBUG(/g' - git diff -U0 master | ../clang/tools/clang-format/clang-format-diff.py -i -p1 -style LLVM - Manual change to APInt - Manually chage DOCS as regex doesn't match it. In the transition period the DEBUG() macro is still present and aliased to the LLVM_DEBUG() one. Differential Revision: https://reviews.llvm.org/D43624 llvm-svn: 332240
2018-03-27[NFC] OptPassGate extracted from OptBisectFedor Sergeev1-1/+1
Summary: This is an NFC refactoring of the OptBisect class to split it into an optional pass gate interface used by LLVMContext and the Optional Pass Bisector (OptBisect) used for debugging of optional passes. This refactoring is needed for D44464, which introduces setOptPassGate() method to allow implementations other than OptBisect. Patch by Yevgeny Rouban. Reviewers: andrew.w.kaylor, fedor.sergeev, vsk, dberlin, Eugene.Zelenko, reames, skatkov Reviewed By: fedor.sergeev Differential Revision: https://reviews.llvm.org/D44821 llvm-svn: 328637
2017-12-13Remove redundant includes from lib/Analysis.Michael Zolotukhin1-1/+0
llvm-svn: 320617
2017-08-25Normlize to LF line endings.Michael Kruse1-1/+1
Commit r297442 introduced mixed CRLF/LF line endings to two files. Normalize to to LF-only line endings. llvm-svn: 311774
2017-06-01Add opt-bisect support for region passes.Eli Friedman1-0/+16
This is necessary to get opt-bisect working with polly. Differential Revision: https://reviews.llvm.org/D33751 llvm-svn: 304476
2017-03-10Implement getPassName() for IR printing passes.Yaron Keren1-0/+2
llvm-svn: 297442
2017-01-15Reverted: Track validity of pass resultsSerge Pavlov1-1/+0
Commits r291882 and related r291887. llvm-svn: 292062
2017-01-13RegionPass: Set isExecuted flag correctlyTobias Grosser1-0/+1
This was forgotten in r291882. Without this fix, the Polly build bots are broken. llvm-svn: 291887
2016-07-19[RegionPass] Some minor cleanupsDavid Majnemer1-4/+2
No functional change is intended. llvm-svn: 276000
2015-04-15Change range-based for-loops to be -Wrange-loop-analysis clean.Richard Trieu1-1/+1
No functionality change. llvm-svn: 234963
2015-03-23Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used.Benjamin Kramer1-0/+1
llvm-svn: 232998
2015-03-06Avoid calls to dumpPassInfo and RegionBase<Tr>::getNameStr() in RGPassManager ifChad Rosier1-10/+14
-debug-pass is not specified, as the string is only used when dumping pass information. There is a big cost of determining the name in ReginBase<Tr>:getNameStr() if the region's entry or exit block doesn't have a name. This is the case for the Release build, as names are not preserved by the front-end. RegionPass is mainly used by Polly, resulting in long compile time for one file of a customer application with the Release build (1m24s) vs Release+Asserts build (10s) when Polly is used. With this change, the compile time with the Release build went down to 8s. Patch by Sanjin Sijaric <ssijaric@codeaurora.org>! Phabricator: http://reviews.llvm.org/D8076 llvm-svn: 231485
2015-01-14[cleanup] Re-sort all the #include lines in LLVM usingChandler Carruth1-2/+1
utils/sort_includes.py. I clearly haven't done this in a while, so more changed than usual. This even uncovered a missing include from the InstrProf library that I've added. No functionality changed here, just mechanical cleanup of the include order. llvm-svn: 225974
2014-07-19Templatify RegionInfo so it works on MachineBasicBlocksMatt Arsenault1-2/+2
llvm-svn: 213456
2014-06-21Add back functionality removed in r210497.Richard Trieu1-2/+4
Instead of asserting, output a message stating that a null pointer was found. llvm-svn: 211430
2014-06-09Removing an "if (!this)" check from two print methods. The condition willRichard Trieu1-1/+3
never be true in a well-defined context. The checking for null pointers has been moved into the caller logic so it does not rely on undefined behavior. llvm-svn: 210497
2014-04-22[Modules] Fix potential ODR violations by sinking the DEBUG_TYPEChandler Carruth1-1/+2
definition below all the header #include lines, lib/Analysis/... edition. This one has a bit extra as there were *other* #define's before #include lines in addition to DEBUG_TYPE. I've sunk all of them as a block. llvm-svn: 206843
2014-04-17remove some dead codeNuno Lopes1-1/+0
lib/Analysis/IPA/InlineCost.cpp | 18 ------------------ lib/Analysis/RegionPass.cpp | 1 - lib/Analysis/TypeBasedAliasAnalysis.cpp | 1 - lib/Transforms/Scalar/LoopUnswitch.cpp | 21 --------------------- lib/Transforms/Utils/LCSSA.cpp | 2 -- lib/Transforms/Utils/LoopSimplify.cpp | 6 ------ utils/TableGen/AsmWriterEmitter.cpp | 13 ------------- utils/TableGen/DFAPacketizerEmitter.cpp | 7 ------- utils/TableGen/IntrinsicEmitter.cpp | 2 -- 9 files changed, 71 deletions(-) llvm-svn: 206506
2014-04-15Use unique_ptr to manage ownership of child Regions within llvm::RegionDavid Blaikie1-5/+5
llvm-svn: 206310
2014-04-15[C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper1-2/+2
instead of comparing to nullptr. llvm-svn: 206243
2014-03-05[C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper1-2/+2
class. llvm-svn: 202945
2014-03-03[C++11] Add a basic block range view for RegionInfoTobias Grosser1-3/+2
This also switches the users in LLVM to ensure this functionality is tested. llvm-svn: 202705
2012-08-27Remove the the block_node_iterator of Region, replace it by the block_iterator.Hongbin Zheng1-3/+2
llvm-svn: 162672
2012-05-04Rename the Region::block_iterator to Region::block_node_iterator, andChandler Carruth1-1/+2
add a new Region::block_iterator which actually iterates over the basic blocks of the region. The old iterator, now call 'block_node_iterator' iterates over RegionNodes which contain a single basic block. This works well with the GraphTraits-based iterator design, however most users actually want an iterator over the BasicBlocks inside these RegionNodes. Now the 'block_iterator' is a wrapper which exposes exactly this interface. Internally it uses the block_node_iterator to walk all nodes which are single basic blocks, but transparently unwraps the basic block to make user code simpler. While this patch is a bit of a wash, most of the updates are to internal users, not external users of the RegionInfo. I have an accompanying patch to Polly that is a strict simplification of every user of this interface, and I'm working on a pass that also wants the same simplified interface. This patch alone should have no functional impact. llvm-svn: 156202
2011-08-29Reapply r138695. Fix PassManager stack depths.Andrew Trick1-3/+3
Patch by Xiaoyi Guo! llvm-svn: 138737
2011-08-27Reverting r138695 to see if it fixes clang self host.Andrew Trick1-3/+3
llvm-svn: 138701
2011-08-27Fix PassManager stack depths.Andrew Trick1-3/+3
Patch by Xiaoyi Guo! llvm-svn: 138695
2011-05-05Minor change: Fix the typo in RegionPass.h and RegionPass.cpp.Hongbin Zheng1-1/+1
llvm-svn: 130920
2010-12-12Remove useless dynamic_cast<>().Tobias Grosser1-2/+1
Thanks Peter for pointing me to something that should have never been committed to the llvm code base. llvm-svn: 121648
2010-10-20Add RegionPass support.Tobias Grosser1-0/+276
A RegionPass is executed like a LoopPass but on the regions detected by the RegionInfo pass instead of the loops detected by the LoopInfo pass. llvm-svn: 116905