summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Pass.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename VMCore directory to IR.Chandler Carruth2013-01-021-277/+0
| | | | | | | | | | | | | | | | | | Aside from moving the actual files, this patch only updates the build system and the source file comments under lib/... that are relevant. I'll be updating other docs and other files in smaller subsequnet commits. While I've tried to test this, but it is entirely possible that there will still be some build system fallout. Also, note that I've not changed the library name itself: libLLVMCore.a is still the library name. I'd be interested in others' opinions about whether we should rename this as well (I think we should, just not sure what it might break) llvm-svn: 171359
* moves doInitialization and doFinalization to the Pass class and removes some ↵Pedro Artigas2012-12-031-20/+0
| | | | | | | | unreachable code in MachineModuleInfo reviewed by Evan Cheng <evan.cheng@apple.com> llvm-svn: 169164
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-1/+1
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. ↵Sylvestre Ledru2012-09-271-1/+1
| | | | | | See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 llvm-svn: 164768
* Fix a typo 'iff' => 'if'Sylvestre Ledru2012-09-271-1/+1
| | | | llvm-svn: 164767
* Added TargetPassConfig::disablePass/substitutePass as a general mechanism to ↵Andrew Trick2012-02-151-2/+2
| | | | | | override specific passes. llvm-svn: 150562
* Added Pass::createPass(ID) to handle pass configuration by IDAndrew Trick2012-02-081-0/+7
| | | | llvm-svn: 150092
* whitespaceAndrew Trick2012-02-031-6/+6
| | | | llvm-svn: 149671
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-1/+0
| | | | llvm-svn: 148578
* Devirtualize Pass::getPassID, overriding it isn't useful and it gets called ↵Benjamin Kramer2011-11-241-2/+0
| | | | | | | | a lot. While at it pull the trivial ctor in line. llvm-svn: 145124
* Fixing a commentJoe Abbey2011-11-211-1/+1
| | | | llvm-svn: 145025
* Another step towards getting rid of static ctors for pass registration: have ↵Owen Anderson2010-10-051-1/+0
| | | | | | | | | | INITIALIZE_PASS AND INITIALIZE_AG_PASS expand to an initializeMyPass() function (in additional to the extant static ctors). Eventually, these will be called from a big InitializeAllPasses() function, and the PassInfo's they create (which would be leaked if this code were used at the moment) will be handed off to a PassRegistry for ownership. llvm-svn: 115703
* Revert r111199; it breaks -debug-pass=Structure output.Dan Gohman2010-08-191-2/+2
| | | | llvm-svn: 111500
* Make dumpPassStructure be a PMDataManager abstraction, rather thanDan Gohman2010-08-161-2/+2
| | | | | | | | | | 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
* Trim #includes.Dan Gohman2010-08-121-6/+0
| | | | llvm-svn: 110983
* Remove BasicBlockPass::runOnFunction, which was unused.Dan Gohman2010-08-111-10/+0
| | | | llvm-svn: 110847
* Delete FunctionPass::run, which is unused.Dan Gohman2010-08-111-11/+0
| | | | llvm-svn: 110843
* Delete FunctionPass::runOnModule, which is unused.Dan Gohman2010-08-111-13/+0
| | | | llvm-svn: 110842
* Tidy some #includes and forward-declarations, and move the C binding codeDan Gohman2010-08-071-5/+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-28/+27
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-061-27/+28
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-051-28/+27
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Move the smarts of AnalysisGroup registration into PassRegistry.Owen Anderson2010-07-211-24/+3
| | | | llvm-svn: 109019
* Move the handling of PassRegistrationListener's to PassRegistry.Owen Anderson2010-07-201-37/+3
| | | | llvm-svn: 108966
* Move more functionality from Pass.cpp to PassRegistry.cpp. This global will ↵Owen Anderson2010-07-201-47/+6
| | | | | | go away eventually, but for now we still need it around. llvm-svn: 108932
* Convert the internal PassRegistrar class into a new, external PassRegistry ↵Owen Anderson2010-07-201-99/+20
| | | | | | class. No intended functionality change at this point. llvm-svn: 108877
* Speculatively revert r108813, in an attempt to get the self-host buildbots ↵Owen Anderson2010-07-201-21/+21
| | | | | | | | 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-21/+21
| | | | llvm-svn: 108813
* Revert r108794, "Separate PassInfo into two classes: a constructor-freeDaniel Dunbar2010-07-201-21/+21
| | | | | | | 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-21/+21
| | | | | | (StaticPassInfo) and a constructor-ful subclass (PassInfo). llvm-svn: 108794
* Move several non-performance-critical member functinos out of line.Dan Gohman2010-06-211-0/+45
| | | | llvm-svn: 106444
* Silence an unused variable warning.Eric Christopher2010-04-161-1/+1
| | | | llvm-svn: 101438
* Fix namespace polution.Dan Gohman2010-04-151-0/+4
| | | | llvm-svn: 101375
* Use a ManagedCleanup to prevent leaking the PassRegistrar map. In breaks theOwen Anderson2010-04-061-6/+14
| | | | | | | use case where someone wants to resurrect LLVM after calling llvm_shutdown, but I'm not aware of any clients that are affected by this. llvm-svn: 100519
* Ok, third time's the charm. No changes from last time except the CMakeDavid Greene2010-04-021-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-18/+0
| | | | | | are run during codegen. llvm-svn: 100207
* Let's try this again. Re-apply 100143 including an apparent missingDavid Greene2010-04-021-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <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-18/+0
| | | | llvm-svn: 100146
* Add some switches helpful for debugging:David Greene2010-04-011-0/+18
| | | | | | | | | | | | | | | | | | | | | | | -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
* Make PassRegistrar thread-safe since it can be modified by code running inJeffrey Yasskin2010-02-131-0/+9
| | | | | | separate LLVMContexts. llvm-svn: 96051
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-271-1/+0
| | | | | | | | | | | | | | | | | | | | | 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
* give PassNameParser a home.Chris Lattner2010-01-221-0/+3
| | | | llvm-svn: 94162
* Change errs() to dbgs().David Greene2010-01-051-2/+3
| | | | llvm-svn: 92661
* Move several function bodies which are rarely inlined out of line.Dan Gohman2009-12-141-0/+67
| | | | llvm-svn: 91319
* Pass StringRef by value.Daniel Dunbar2009-11-061-2/+2
| | | | llvm-svn: 86251
* Hide MetadataContext implementation details.Devang Patel2009-10-221-0/+1
| | | | llvm-svn: 84886
* Add a form of addPreserved which takes a string argument, to allow passesDan Gohman2009-10-081-0/+14
| | | | | | | | to declare that they preserve other passes without needing to pull in additional header file or library dependencies. Convert MachineFunctionPass and CodeGenLICM to make use of this. llvm-svn: 83555
* Remove some unused fields.Dan Gohman2009-08-291-8/+5
| | | | llvm-svn: 80450
* Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner2009-08-231-3/+4
| | | | | | update all code that this affects. llvm-svn: 79830
* Have scoped mutexes take referenes instead of pointers.Owen Anderson2009-07-071-3/+3
| | | | llvm-svn: 74931
OpenPOWER on IntegriCloud