summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/PassManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Basic PassManager diagnostics.Andrew Trick2011-06-031-1/+11
| | | | | | | | Added asserts whenever attempting to use a potentially uninitialized pass. This helps people trying to develop a new pass and people trying to understand the bug reports filed by the former people. llvm-svn: 132520
* whitespaceAndrew Trick2011-06-031-3/+3
| | | | llvm-svn: 132519
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-1/+1
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Introduce DebugInfoProbe. This is used to monitor how llvm optimizer is ↵Devang Patel2011-03-101-1/+22
| | | | | | | | | | | | treating debugging information. It generates output that lools like 8 times line number info lost by Scalar Replacement of Aggregates (SSAUp) 1 times line number info lost by Simplify well-known library calls 12 times variable info lost by Jump Threading llvm-svn: 127381
* Make these options hidden to reduce the amount of text -help puts on theEric Christopher2011-03-091-2/+4
| | | | | | command line, they'll still be seen with -help-hidden. llvm-svn: 127353
* Implement requiredTransitiveTobias Grosser2011-01-201-1/+32
| | | | | | | The PassManager did not implement the transitivity of requiredTransitive. This was unnoticed since 2006. llvm-svn: 123942
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* Include ImmutablePass passes in -debug-pass=Arguments.Dan Gohman2010-11-111-0/+6
| | | | llvm-svn: 118790
* Add RegionPass support.Tobias Grosser2010-10-201-0/+3
| | | | | | | 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
* More SmallVectorImpls.Dan Gohman2010-10-121-9/+9
| | | | llvm-svn: 116279
* Shrink a SmallVector with a known maximum size.Dan Gohman2010-10-121-1/+1
| | | | llvm-svn: 116278
* Constify.Dan Gohman2010-10-121-3/+4
| | | | llvm-svn: 116277
* Use SmallVectorImpl in a bunch of places.Dan Gohman2010-10-121-9/+9
| | | | llvm-svn: 116276
* Fix the pass manager's search order for immutable passes, and make itDan Gohman2010-10-111-22/+21
| | | | | | stop searching when it has found a match. llvm-svn: 116262
* Revert r111199; it breaks -debug-pass=Structure output.Dan Gohman2010-08-191-18/+10
| | | | llvm-svn: 111500
* The plural of analysis is analyses.Dan Gohman2010-08-161-2/+2
| | | | llvm-svn: 111200
* Make dumpPassStructure be a PMDataManager abstraction, rather thanDan Gohman2010-08-161-10/+18
| | | | | | | | | | a Pass abstraction, since that's the level it's actually used at. Rename Pass' dumpPassStructure to dumpPass. This eliminates an awkward use of getAsPass() to convert a PMDataManager* into a Pass* just to permit a dumpPassStructure call. llvm-svn: 111199
* Remove redundant inline keywords.Dan Gohman2010-08-161-2/+2
| | | | llvm-svn: 111192
* Eliminate the TopLevelManagerType enum; instead, just makeDan Gohman2010-08-161-14/+6
| | | | | | | PMTopLevelManager's constructor take a PMDataManager *, which already provides the needed abstraction support. llvm-svn: 111189
* Trim #includes.Dan Gohman2010-08-121-1/+0
| | | | llvm-svn: 110983
* Tidy up whitespace.Dan Gohman2010-08-121-85/+87
| | | | llvm-svn: 110982
* Use .empty() instead of .size().Dan Gohman2010-08-121-1/+1
| | | | llvm-svn: 110981
* More #include cleanups.Dan Gohman2010-08-071-0/+1
| | | | llvm-svn: 110499
* Oops, check in this file too.Dan Gohman2010-08-071-2/+2
| | | | llvm-svn: 110496
* Tidy some #includes and forward-declarations, and move the C binding codeDan Gohman2010-08-071-36/+0
| | | | | | out of PassManager.cpp and into Core.cpp with the rest of the C binding code. llvm-svn: 110494
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-061-43/+61
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-061-50/+34
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-051-34/+50
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Pull out r108755. After offline discussion with Chris, we're going to go a ↵Owen Anderson2010-07-201-17/+10
| | | | | | different direction with this. llvm-svn: 108856
* Speculatively revert r108813, in an attempt to get the self-host buildbots ↵Owen Anderson2010-07-201-11/+8
| | | | | | | | working again. I don't see why this patch would cause them to fail the way they are, but none of the other intervening patches seem likely either. llvm-svn: 108818
* Reapply r108794, a fix for the failing test from last time.Owen Anderson2010-07-201-8/+11
| | | | llvm-svn: 108813
* Revert r108794, "Separate PassInfo into two classes: a constructor-freeDaniel Dunbar2010-07-201-11/+8
| | | | | | | superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is breaking teh everything. llvm-svn: 108805
* Separate PassInfo into two classes: a constructor-free superclass ↵Owen Anderson2010-07-201-8/+11
| | | | | | (StaticPassInfo) and a constructor-ful subclass (PassInfo). llvm-svn: 108794
* Change the implemented interfaces list on PassInfo from a std::vector to a ↵Owen Anderson2010-07-191-10/+17
| | | | | | | | | manually implemented linked list. This is a little slower and involves more malloc'ing, but these lists are typically short, and it allows PassInfo to be entirely constant initializable. llvm-svn: 108755
* Move several non-performance-critical member functinos out of line.Dan Gohman2010-06-211-0/+5
| | | | llvm-svn: 106444
* Revert r103493, materializing functions in the regular PassManager.Dan Gohman2010-05-111-9/+1
| | | | | | It works in simple cases, but it isn't a general solution. llvm-svn: 103499
* Teach the regular pass manager how to materialize functions as needed.Dan Gohman2010-05-111-1/+9
| | | | llvm-svn: 103493
* Fix PR6875:David Greene2010-05-101-15/+31
| | | | | | | | | | | | | | | This includes a patch by Roman Divacky to fix the initial crash. Move the actual addition of passes from *PassManager::add to *PassManager::addImpl. That way, when adding printer passes we won't recurse infinitely. Finally, check to make sure that we are actually adding a FunctionPass to a FunctionPassManager before doing a print before or after it. Immutable passes are strange in this way because they aren't FunctionPasses yet they can be and are added to the FunctionPassManager. llvm-svn: 103425
* Use twines to simplify calls to report_fatal_error. For code size and ↵Benjamin Kramer2010-04-081-1/+1
| | | | | | readability. llvm-svn: 100756
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-071-1/+1
| | | | llvm-svn: 100709
* minor tidying upChris Lattner2010-04-071-2/+1
| | | | llvm-svn: 100702
* Ok, third time's the charm. No changes from last time except the CMakeDavid Greene2010-04-021-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100249
* Revert 100204. It broke a bunch of tests and apparently changed what passes ↵Evan Cheng2010-04-021-83/+0
| | | | | | are run during codegen. llvm-svn: 100207
* Let's try this again. Re-apply 100143 including an apparent missingDavid Greene2010-04-021-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100204
* Revert r100143.Eric Christopher2010-04-011-83/+0
| | | | llvm-svn: 100146
* Add some switches helpful for debugging:David Greene2010-04-011-0/+83
| | | | | | | | | | | | | | | | | | | | | | | -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100143
* reapply my timer rewrite with a change for PassManager to store Chris Lattner2010-03-301-33/+21
| | | | | | timers by pointer instead of by-value. llvm-svn: 99871
* revert r99862 which is causing FNT failures.Chris Lattner2010-03-301-17/+31
| | | | llvm-svn: 99870
* fairly major rewrite of various timing related stuff.Chris Lattner2010-03-301-31/+17
| | | | llvm-svn: 99862
* Add Module functions in place of module providers.Erick Tryzelaar2010-03-021-1/+6
| | | | llvm-svn: 97608
OpenPOWER on IntegriCloud