Commit Graph

122 Commits

Author SHA1 Message Date
Devang Patel 6975b6ec09 Remove extra white spaces. Fix comments.
llvm-svn: 33244
2007-01-15 23:06:56 +00:00
Devang Patel 39786a90d0 Do not record last users of Pass Manager.
llvm-svn: 33243
2007-01-15 20:31:54 +00:00
Devang Patel f85793d171 s/addPassToManager/add/g
llvm-svn: 33138
2007-01-12 20:07:16 +00:00
Devang Patel e759955c66 Move PMTopLevelManager, PMDataManager and FPPassManger classes into
new PassManagers.h header.

This opens door for implementing CGPassManager in IPA library.

llvm-svn: 33135
2007-01-12 18:52:44 +00:00
Devang Patel 0f08004ac0 Remove dead code.
llvm-svn: 33121
2007-01-12 17:23:48 +00:00
Devang Patel ad98d23f16 Start using PMStack. Now each pass is responsibe for assinging
a pass manager for itself.

There is some opportunity to remove some dead code from PassManager.cpp.

llvm-svn: 33087
2007-01-11 22:15:30 +00:00
Devang Patel ac99eca428 Use getPassManagerType() instead of dynamic_cast.
llvm-svn: 33078
2007-01-11 19:59:06 +00:00
Devang Patel 3b3f89900e Add PassManagerType enum.
llvm-svn: 33065
2007-01-11 01:10:25 +00:00
Devang Patel 15701b5c0d Robustify assingPassManager() for Module, Function and Basic Block
Passes.

Robustify PMStack.push()

Add dump() routine to print PMStack.

llvm-svn: 33062
2007-01-11 00:19:00 +00:00
Devang Patel 1c56a638a4 Add PMStack, a Pass Manager stack.
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
2007-01-08 19:29:38 +00:00
Devang Patel b66334b73b 1) Remove old AnalysisResolver.
2) Rename AnalysisResolver_New as AnalysisResolver

llvm-svn: 32938
2007-01-05 22:47:07 +00:00
Devang Patel c6b5a554a4 Remove old pass manager.
llvm-svn: 32927
2007-01-05 20:16:23 +00:00
Devang Patel e3068403bd At the beginning of run, initialize analyis info availability for _ALL_
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
2006-12-21 00:16:50 +00:00
Devang Patel cb5128a8d9 Now, there is additional layer, referred in the comment,
in place to handle this correctly.

llvm-svn: 32684
2006-12-19 20:12:38 +00:00
Devang Patel 67d6a5e411 s/BasicBlockPassManager/BBPassManager/g
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
2006-12-19 19:46:59 +00:00
Devang Patel abfbe3bfda Add getNumContainedPasses() and getContainedPass() inteface and use
it instead of passVectorBegin/End().

llvm-svn: 32620
2006-12-16 00:56:26 +00:00
Devang Patel 56d48ec501 Cosmetic changes, based on Chris's review.
llvm-svn: 32618
2006-12-15 22:57:49 +00:00
Devang Patel 991aebacba Mark dump* routines const routines.
llvm-svn: 32610
2006-12-15 20:13:01 +00:00
Devang Patel ffca910d45 Move PMTopLevelManager and TImingInfo into anon namespace.
llvm-svn: 32606
2006-12-15 19:39:30 +00:00
Devang Patel 832bc079b2 s/ForcedLastUses/TransferLastUses/g
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
2006-12-15 00:08:26 +00:00
Chris Lattner ce22ca3fc6 random minor typographical changes
llvm-svn: 32579
2006-12-14 18:22:14 +00:00
Devang Patel b8817b9b6e Add -time-passes support.
llvm-svn: 32574
2006-12-14 00:59:42 +00:00
Devang Patel f6d1d21355 Add debug-pass=Details support to print Required and Preserved Set info.
llvm-svn: 32573
2006-12-14 00:25:06 +00:00
Devang Patel 93a197c202 Add " Made Modification " messages in debug-pass=Executions output.
llvm-svn: 32572
2006-12-14 00:08:04 +00:00
Devang Patel 200d305c02 Add debug-pass=Executions support in new pass manager.
llvm-svn: 32571
2006-12-13 23:50:44 +00:00
Devang Patel cfd70c4a46 Add -pass-debug=Arguments support in new manager.
llvm-svn: 32567
2006-12-13 22:10:00 +00:00
Chris Lattner f0f611a76a fit in 80 cols
llvm-svn: 32563
2006-12-13 21:56:10 +00:00
Devang Patel 03fb587348 Using PDL as a prefix for PassDebugLevel enums is not a good idea.
Fix it.

llvm-svn: 32562
2006-12-13 21:13:31 +00:00
Devang Patel f1567a511f Move enum PassDebugLevel from PassManagerT.h to Pass.h.
Use PDL as the prefix for these enums.
Define and use PassDebugging_New in new PassManager.

llvm-svn: 32554
2006-12-13 20:03:48 +00:00
Devang Patel b67904d1dc Add #ifdef switch toggle between old and new pass manager. However,
continue to use old pass manager at the moment. To use new manager
remove #define USE_OLD_PASSMANAGER 1 from Pass.h

llvm-svn: 32525
2006-12-13 02:36:01 +00:00
Devang Patel 08bed59d59 FunctionPassManager does not support runOnModule().
llvm-svn: 32519
2006-12-13 00:34:32 +00:00
Devang Patel ab97cf4c7c Implement PassManager_New destructors.
llvm-svn: 32517
2006-12-13 00:09:23 +00:00
Devang Patel 209b13990f Remove unused constructor.
llvm-svn: 32516
2006-12-12 23:51:31 +00:00
Devang Patel eda561762f Add routines to dump pass manager queue.
llvm-svn: 32513
2006-12-12 23:34:33 +00:00
Devang Patel 1036b65ca0 FunctionPassManager()
Set AnalysisResolver_New and add FPM to PassManagers list.

llvm-svn: 32512
2006-12-12 23:27:37 +00:00
Devang Patel 745a696050 Do not runOnFunction on external functions.
llvm-svn: 32510
2006-12-12 23:15:28 +00:00
Devang Patel 47d7df7407 Initialize AnalysisImpls for each pass before executing the pass.
llvm-svn: 32509
2006-12-12 23:13:09 +00:00
Devang Patel f58183dae1 collectRequiredAnalysisPasses().
Include RequiredTrainsitiveSet also.

llvm-svn: 32508
2006-12-12 23:09:32 +00:00
Devang Patel be6bd55e96 removeNotPreservedAnalysis().
Do not remove ImmutablePass from the list.

llvm-svn: 32507
2006-12-12 23:07:44 +00:00
Devang Patel ad6b7fe726 Initialize activeManager.
llvm-svn: 32506
2006-12-12 22:57:43 +00:00
Devang Patel 5f945dd79e Remove unused constructor.
llvm-svn: 32505
2006-12-12 22:56:36 +00:00
Devang Patel 75cdf20412 Maintain ImmutablePasses list at top level only. Do not make them
directly available to individual managers.

llvm-svn: 32504
2006-12-12 22:53:40 +00:00
Devang Patel cd6ba15364 findAnalysisPass().
First search all available passes before searching ImmutablePasses.

llvm-svn: 32503
2006-12-12 22:50:05 +00:00
Devang Patel 10c2ca6874 Fix thinko.
While searching for a analysis in a pass manager, do not search it into
pass manager's manager.

llvm-svn: 32501
2006-12-12 22:47:13 +00:00
Devang Patel afb1f362c6 o s/OtherPassManagers/IndirectPassManagers
o Make IndirectPassManagers vector of PMDataManager *
o Move PMTopLevelManager implementation below all class declarations.

llvm-svn: 32499
2006-12-12 22:35:25 +00:00
Devang Patel 95257548c9 Initialize AnalysisImpls for ImmutablePass.
llvm-svn: 32498
2006-12-12 22:21:37 +00:00
Devang Patel 9c6290c53c Set top level manager.
llvm-svn: 32496
2006-12-12 22:02:16 +00:00
Devang Patel 984698ac24 Analysis resolver now manages AnalysisImpls for the given patch.
llvm-svn: 32389
2006-12-09 01:11:34 +00:00
Devang Patel 9d759b8854 Top level pass manager keeps track of other managers, so this can be
removed now.

llvm-svn: 32388
2006-12-09 00:09:12 +00:00
Devang Patel 64619bec14 Use analysis resolver to find the info.
llvm-svn: 32387
2006-12-09 00:07:38 +00:00