summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/PassManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Proivde getAnalysis<FPAnalysis>(Func) support.Devang Patel2007-04-161-0/+5
| | | | llvm-svn: 36159
* Do not assert during analysis implementation initialization.Devang Patel2007-04-161-1/+3
| | | | llvm-svn: 36158
* Print and delete on the fly pass managers.Devang Patel2007-04-161-3/+19
| | | | llvm-svn: 36157
* Update module pass manager to support module passes that requireDevang Patel2007-04-161-11/+44
| | | | | | function passes. llvm-svn: 36154
* Give each pass manager chance to manage lower level analysis pass, which isDevang Patel2007-04-161-20/+60
| | | | | | pass required by one of pass managed by the manager. llvm-svn: 36153
* Removed tabs everywhere except autogenerated & external files. Add makeAnton Korobeynikov2007-04-161-3/+3
| | | | | | target for tabs checking. llvm-svn: 36146
* Speed Up Pass Manager.Devang Patel2007-03-081-15/+16
| | | | | | | - Check Immutableness before searching PreservedSet. - Avoid unnecessary traversal while setting Last User. llvm-svn: 35028
* Keep track of higher level analysis.Devang Patel2007-03-061-0/+26
| | | | llvm-svn: 34974
* Keep track of inherited analysis. For example, if a loop pass does notDevang Patel2007-03-061-0/+21
| | | | | | | preserve dominator info then it should update parent FPPassManager's available analysis info to reflect this. llvm-svn: 34942
* Add preparePassManager() hook. This allows each pass to check whetherDevang Patel2007-03-061-0/+3
| | | | | | | | | | | | current active pass manager is appropriate or not. A loop pass may consider current LPPassManager in appropraite if loop pass is not preserving analysis information that is used by other passes managed by current LPPassManager. In such situation, loop pass can pop current LPPassManager from the PMStack using this hook and use new LPPassManager for itself. llvm-svn: 34941
* Current pass manager, not the parent pass manager, assumes the role ofDevang Patel2007-03-051-22/+10
| | | | | | | | | last user when one of the managed pass uses info provided by parent pass manager. This was exposed by LPPassManager work. llvm-svn: 34936
* Avoid constructing std::strings unless pass debugging is ON.Devang Patel2007-03-051-32/+52
| | | | llvm-svn: 34933
* Account for time consumed by releaseMemory() properly.Devang Patel2007-03-051-2/+2
| | | | llvm-svn: 34932
* Unbreak VC++ build.Jeff Cohen2007-03-051-0/+1
| | | | llvm-svn: 34917
* Make getPassManagerType() const.Devang Patel2007-02-271-2/+4
| | | | llvm-svn: 34669
* temporarily revert Devang's most recent patch, which caused a largeChris Lattner2007-02-171-16/+4
| | | | | | compile-time regression in LLC. llvm-svn: 34385
* Use inverted map to speedup collectLastUses().Devang Patel2007-02-171-4/+16
| | | | llvm-svn: 34364
* Do not drop transferred last uses on the floor.Devang Patel2007-02-071-0/+3
| | | | | | Use handleLastUserOverflow(). llvm-svn: 34006
* Fix PR1158Devang Patel2007-02-051-0/+5
| | | | | | Do not insert Analysis pass, if it is already available. llvm-svn: 33915
* cvs commitDevang Patel2007-02-011-0/+8
| | | | llvm-svn: 33765
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-2/+2
| | | | | | confusion with external linkage types. llvm-svn: 33663
* - Undo previous check-in (i.e. Do not export TimingInfo class throughDevang Patel2007-01-291-5/+65
| | | | | | | | | | | PassManagers.h). - Add StopPassTimer() and StartPassTimer() to expose TimingInfo to CallGraphPassManager - Use these two APIs in CalLgraphPassManager to measure timings. llvm-svn: 33638
* Move TimingInfo into PassManagers.h so that other libs can use it.Devang Patel2007-01-291-53/+5
| | | | llvm-svn: 33626
* Update ModulePass::assignPassManager() to take into account PreferredDevang Patel2007-01-171-4/+5
| | | | | | Pass Manager Type. llvm-svn: 33308
* s/PassDebugging_New/PassDebugging/gDevang Patel2007-01-171-5/+5
| | | | llvm-svn: 33307
* Update assignPassManager() signature to allow selection of preferredDevang Patel2007-01-171-4/+13
| | | | | | | pass manager type. This allows new FPPassManager to select Call Graph Pass Manager (if available) as its parent. llvm-svn: 33306
* Pass manager may require certain analysis. In such cases, initiallyDevang Patel2007-01-161-3/+2
| | | | | | pass manager is last user. llvm-svn: 33273
* Undo last check-in.Devang Patel2007-01-161-62/+50
| | | | | | Remove setupPassManager() and its use. llvm-svn: 33270
* Setup pass manager before scheduling required analysis.Devang Patel2007-01-161-50/+62
| | | | llvm-svn: 33262
* Code refactoring.Devang Patel2007-01-161-18/+21
| | | | llvm-svn: 33245
* Remove extra white spaces. Fix comments.Devang Patel2007-01-151-1/+1
| | | | llvm-svn: 33244
* Do not record last users of Pass Manager.Devang Patel2007-01-151-2/+7
| | | | llvm-svn: 33243
* s/addPassToManager/add/gDevang Patel2007-01-121-4/+4
| | | | llvm-svn: 33138
* Move PMTopLevelManager, PMDataManager and FPPassManger classes intoDevang Patel2007-01-121-323/+38
| | | | | | | | new PassManagers.h header. This opens door for implementing CGPassManager in IPA library. llvm-svn: 33135
* Remove dead code.Devang Patel2007-01-121-225/+26
| | | | llvm-svn: 33121
* Start using PMStack. Now each pass is responsibe for assingingDevang Patel2007-01-111-28/+23
| | | | | | | | a pass manager for itself. There is some opportunity to remove some dead code from PassManager.cpp. llvm-svn: 33087
* Use getPassManagerType() instead of dynamic_cast.Devang Patel2007-01-111-18/+8
| | | | llvm-svn: 33078
* Add PassManagerType enum.Devang Patel2007-01-111-0/+12
| | | | llvm-svn: 33065
* Robustify assingPassManager() for Module, Function and Basic BlockDevang Patel2007-01-111-37/+73
| | | | | | | | | | Passes. Robustify PMStack.push() Add dump() routine to print PMStack. llvm-svn: 33062
* Add PMStack, a Pass Manager stack.Devang Patel2007-01-081-0/+138
| | | | | | | | Eventually, Top level pass managers will use this to keep track of active pass managers. Eass pass will also learn how to find appropriate manager from these managers stack. llvm-svn: 33018
* 1) Remove old AnalysisResolver.Devang Patel2007-01-051-8/+8
| | | | | | 2) Rename AnalysisResolver_New as AnalysisResolver llvm-svn: 32938
* Remove old pass manager.Devang Patel2007-01-051-2/+1
| | | | llvm-svn: 32927
* At the beginning of run, initialize analyis info availability for _ALL_Devang Patel2006-12-211-5/+19
| | | | | | | | | pass managers. Otherwise, stale available analysis info, from the managers not yet run, may cause pass manager to take wrong turn. This fixes CBE test failures reported by nightly tester. llvm-svn: 32726
* Now, there is additional layer, referred in the comment,Devang Patel2006-12-191-11/+0
| | | | | | in place to handle this correctly. llvm-svn: 32684
* s/BasicBlockPassManager/BBPassManager/gDevang Patel2006-12-191-138/+230
| | | | | | | | | | | | | | | | | | s/ModulePassManager/MPPassManager/g s/FunctionPassManagerImpl_New/FunctionPassManagerImpl/g s/PassManagerImpl_New/PassManagerImpl/g Introduce FPPassManager to manage function passes and BBPassManagers. Now FunctionPassManagerImpl is an implementation class used by externally visible FunctionPassManager to manage FPPassManagers. Module pass manager (MPPassManager) now manages FPPassManagers and ModulePasses. llvm-svn: 32679
* Add getNumContainedPasses() and getContainedPass() inteface and useDevang Patel2006-12-161-95/+91
| | | | | | it instead of passVectorBegin/End(). llvm-svn: 32620
* Cosmetic changes, based on Chris's review.Devang Patel2006-12-151-27/+21
| | | | llvm-svn: 32618
* Mark dump* routines const routines.Devang Patel2006-12-151-54/+61
| | | | llvm-svn: 32610
* Move PMTopLevelManager and TImingInfo into anon namespace.Devang Patel2006-12-151-8/+15
| | | | llvm-svn: 32606
* s/ForcedLastUses/TransferLastUses/gDevang Patel2006-12-151-12/+26
| | | | | | | | | Register pass has the its last user, otherwise sometimes no one will claim LastUse. Handle transferred last uses from child pass manager. llvm-svn: 32589
OpenPOWER on IntegriCloud