summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/PassManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename VMCore directory to IR.Chandler Carruth2013-01-021-1917/+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
* - Added calls to doInitialization/doFinalization to immutable passesPedro Artigas2012-12-051-5/+29
| | | | | | | | | - fixed ordering of calls to doFinalization to be the reverse of the pass run order due to potential dependencies - fixed machine module info to operate in the doInitialization/doFinalization model, also fixes some FIXMEs reviewed by Evan Cheng <evan.cheng@apple.com> llvm-svn: 169391
* moves doInitialization and doFinalization to the Pass class and removes some ↵Pedro Artigas2012-12-031-0/+6
| | | | | | | | unreachable code in MachineModuleInfo reviewed by Evan Cheng <evan.cheng@apple.com> llvm-svn: 169164
* Revert r169039, "Aggregate pass execution time report by pass ID instead of ↵Jakob Stoklund Olesen2012-12-031-3/+3
| | | | | | pass instance." llvm-svn: 169134
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-4/+4
| | | | | | | | | | | | | | | | | 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 previous check in r168581, r169079 as they are still in code review ↵Zhou Sheng2012-12-011-12/+0
| | | | | | status. llvm-svn: 169083
* Aggregate pass execution time report by pass ID instead of pass instance.Jakob Stoklund Olesen2012-11-301-3/+3
| | | | | | | This avoids unidentified duplicates in the pass execution time report when a pass runs more than once in the pass manager pipeline. llvm-svn: 169039
* One more step towards making doInitialization and doFinalization useful forPedro Artigas2012-11-291-58/+14
| | | | | | | start up and clean up module passes, now that ASAN and TSAN are fixed the tests pass llvm-svn: 168905
* Revert r168635 "Step towards implementation of pass manager with ↵Owen Anderson2012-11-271-24/+55
| | | | | | | | doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model". It appears to have broken at least one buildbot. llvm-svn: 168654
* Step towards implementation of pass manager with doInitialization and ↵Owen Anderson2012-11-261-55/+24
| | | | | | | | doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model Patch by Pedro Artigas, with feedback from by Chandler Carruth. llvm-svn: 168635
* Fix a PassManager pointer use-after-free bug.Zhou Sheng2012-11-261-0/+12
| | | | | | The bug can be triggered when we require LoopInfo analysis ahead of DominatorTree construction in a Module Pass. The cause is that the LoopInfo analysis itself also invokes DominatorTree construction, therefore, when PassManager schedules LoopInfo, it will add DominatorTree first. Then after that, when the PassManger turns to schedule DominatorTree invoked by the above ModulePass, it finds there is already a DominatorTree, so it delete the redundant one. However, somehow it still try to access that pass pointer after free as code pasted below, which results in segment fault. llvm-svn: 168581
* Use empty parens for empty function parameter list instead of '(void)'.Dmitri Gribenko2012-11-151-8/+8
| | | | llvm-svn: 168049
* Add doInitialization and doFinalization methods to ModulePass's, to allow ↵Owen Anderson2012-11-151-0/+70
| | | | | | | | them to be re-initialized and reused on multiple Module's. Patch by Pedro Artigas. llvm-svn: 168008
* Revert r167759. Ben is right this isn't likely to help much.Evan Cheng2012-11-131-4/+2
| | | | llvm-svn: 167809
* Cache size of PassVector to speed up getNumContainedPasses().Evan Cheng2012-11-121-2/+4
| | | | | | | | getNumContainedPasses() used to compute the size of the vector on demand. It is called repeated in loops (such as runOnFunction()) and it can be updated while inside the loop. llvm-svn: 167759
* 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
* Stop casting away const qualifier needlessly.Roman Divacky2012-09-051-1/+1
| | | | llvm-svn: 163258
* Adding some debug information to PassManagerVictor Oliveira2012-07-181-0/+20
| | | | llvm-svn: 160446
* Use ArrayRef instead of an explicit vector type.Bill Wendling2012-05-141-2/+1
| | | | llvm-svn: 156755
* Take out the debug info probe stuff. It's making some changes toEric Christopher2012-03-231-22/+1
| | | | | | | the PassManager annoying and should be reimplemented as a decorator on top of existing passes (as should the timing data). llvm-svn: 153305
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-051-2/+1
| | | | llvm-svn: 149849
* Add pass printer passes in the right place.Andrew Trick2012-02-011-81/+46
| | | | | | | | | | | | The pass pointer should never be referenced after sending it to schedulePass(), which may delete the pass. To fix this bug I had to clean up the design leading to more goodness. You may notice now that any non-analysis pass is printed. So things like loop-simplify and lcssa show up, while target lib, target data, alias analysis do not show up. Normally, analysis don't mutate the IR, but you can now check this by using both -print-after and -print-before. The effects of analysis will now show up in between the two. The llc path is still in bad shape. But I'll be improving it in my next checkin. Meanwhile, print-machineinstrs still works the same way. With print-before/after, many llc passes that were not printed before now are, some of these should be converted to analysis. A few very important passes, isel and scheduler, are not properly initialized, so not printed. llvm-svn: 149480
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+6
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* Let printf do the formatting instead aligning strings ourselves.Benjamin Kramer2011-10-161-1/+1
| | | | | | While at it, merge some format strings. llvm-svn: 142140
* Add a check to make sure schedulePass() has not deleted stale RequiredPass.Devang Patel2011-09-131-3/+5
| | | | llvm-svn: 139642
* Dump with dbgs() instead of printf.Benjamin Kramer2011-08-291-5/+4
| | | | llvm-svn: 138749
* Make GCC happy by adding parens.Benjamin Kramer2011-08-291-2/+2
| | | | llvm-svn: 138748
* Reapply r138695. Fix PassManager stack depths.Andrew Trick2011-08-291-15/+25
| | | | | | Patch by Xiaoyi Guo! llvm-svn: 138737
* Reverting r138695 to see if it fixes clang self host.Andrew Trick2011-08-271-25/+15
| | | | llvm-svn: 138701
* Fix PassManager stack depths.Andrew Trick2011-08-271-15/+25
| | | | | | Patch by Xiaoyi Guo! llvm-svn: 138695
* Indicate that there are changes if runOfFunction returns saying that there are.Bill Wendling2011-08-081-1/+1
| | | | | | Patch by Jingyue! llvm-svn: 137072
* 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
OpenPOWER on IntegriCloud