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
Devang Patel
fa971cda8b
Do not drop ImmutablePasses on the floor.
...
llvm-svn: 32386
2006-12-08 23:57:43 +00:00
Devang Patel
d440cd92a5
Set AnalysisResolver for the passes when they are inserted into
...
pass manager queuer.
llvm-svn: 32385
2006-12-08 23:53:00 +00:00
Devang Patel
9bdf7d46f6
Add AnalysisResolver_New. It is a replacement for existing
...
AnalysisResolver.
llvm-svn: 32383
2006-12-08 23:28:54 +00:00
Devang Patel
af1fca5f10
Keep track of other pass managers, that are not directly managed by
...
top level manager. Use this info to findAnalysisPass.
llvm-svn: 32382
2006-12-08 23:11:43 +00:00
Devang Patel
272908dcf2
Implement top level FunctionPassManager::run(Function &F)
...
llvm-svn: 32381
2006-12-08 22:57:48 +00:00
Devang Patel
5bbeb49130
Do not keep yet another list of pass managers in PassManagerImpl_New.
...
Use one provided by toplevel manager.
llvm-svn: 32380
2006-12-08 22:47:25 +00:00
Devang Patel
df6c9ae208
Remove unused schedulePass() parameter.
...
llvm-svn: 32379
2006-12-08 22:34:02 +00:00
Devang Patel
e31049fed5
Remove unused getAnalysisPass and getAnalysisPassFromManager
...
llvm-svn: 32378
2006-12-08 22:32:32 +00:00
Devang Patel
640c5bba77
Implement PMTopLevel::findAnalysisPass() and
...
PMDataManager::findAnalysisPass()
llvm-svn: 32377
2006-12-08 22:30:11 +00:00
Devang Patel
0e29e29cc5
During runOnModule() do initialization and finalization.
...
llvm-svn: 32371
2006-12-08 19:04:09 +00:00
Devang Patel
1929089ea2
Reuse code. Directly use runOnFunction().
...
llvm-svn: 32370
2006-12-08 19:03:05 +00:00
Devang Patel
1f65368a82
Implement FunctionPassManager_New::FunctionPassManager_New(ModuleProvider *P)
...
llvm-svn: 32368
2006-12-08 18:57:16 +00:00
Devang Patel
e958559204
BasicBlockPassManager_New::runOnFunction()
...
Do initialization and finalization.
llvm-svn: 32346
2006-12-08 01:38:28 +00:00
Devang Patel
475c453c00
doInitialization and doFinalization for BasicBlockPassManager_New
...
llvm-svn: 32345
2006-12-08 00:59:05 +00:00