summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/PassManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Don't print "Modified" for passes which haven't modified anything.Dan Gohman2010-03-011-6/+12
| | | | llvm-svn: 97446
* Don't try to materialize a function that isn't materializable anyways. ThisNick Lewycky2010-02-151-3/+5
| | | | | | fixes a crash using FPM on a Function that isn't owned by a Module. llvm-svn: 96273
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-271-7/+4
| | | | | | | | | | | | | | | | | | | | | Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. llvm-svn: 94686
* elimiante the dynamic_cast's from opt.Chris Lattner2010-01-221-3/+4
| | | | llvm-svn: 94160
* eliminate a bunch more unneeded dynamic_cast's.Chris Lattner2010-01-221-13/+14
| | | | llvm-svn: 94156
OpenPOWER on IntegriCloud