Commit Graph

203 Commits

Author SHA1 Message Date
Devang Patel
6e49d8b4bf PMDataManager does not maintain LastUser info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32332 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 22:17:09 +00:00
Devang Patel
0ac961d9c1 Make current pass info available _after_ removing info that is not
preserved.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32329 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 22:09:36 +00:00
Devang Patel
b917e38c84 Add TODOs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32328 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 21:58:50 +00:00
Devang Patel
502f19e0f8 Fix thinko.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32327 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 21:44:12 +00:00
Devang Patel
877bfbb9ef Top level manages schedule the pass immediately at the time of insertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32326 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 21:32:57 +00:00
Devang Patel
eb0d613ef6 Now FunctionPassManagerImpl_New and PassManagerImpl_New derives from
PMTopLevelManager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32325 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 21:27:23 +00:00
Devang Patel
1209f416cf Reimplement schedulePass interface. Move it into PMTopLevelManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32324 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 21:10:57 +00:00
Devang Patel
1b17033bc7 While initializing AvailableAnalysis info, make ImmutablePasses available
immediately.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32323 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 21:02:08 +00:00
Devang Patel
3e44559d01 Add ImmutablePass into the list of info managed by top level pass
manager.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32322 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 20:51:18 +00:00
Devang Patel
04b4e0595f If pass reserves all analysis info then each info is not separately
included in PreservedSet. So check getPreservesAll() first.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32319 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 20:03:49 +00:00
Devang Patel
66d72e140b Pass Managers themselves do not invalidate any analysis info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32318 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 19:57:52 +00:00
Devang Patel
dc48f203cd Add a handle to the top level pass manager in PMDataManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32317 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 19:54:15 +00:00
Devang Patel
06e86561a5 Cosmetic markers to divide code in separate chunks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32316 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 19:39:39 +00:00
Devang Patel
f32b4dd13e s/noteDownAvailableAnalysis/recordAvailableAnalysis
While recording available analysis, include interfaces implemented.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32315 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 19:33:53 +00:00
Devang Patel
3f5d2b58b8 Add PMTopLevelManager. It is not used yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32314 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 19:21:29 +00:00
Devang Patel
4045af1175 RequiredAnalysis support is buggy and not used at the moment so remove
the code. Add TODO note.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32313 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 18:47:25 +00:00
Devang Patel
cbfd29d0da s/clearAnalysis/initializeAnalysisInfo/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32312 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 18:41:09 +00:00
Devang Patel
419f0e95d6 s/CommonPassManagerImpl/PMDataManager/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32311 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 18:36:24 +00:00
Devang Patel
e77242c3d5 Add overview of pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32309 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 18:23:30 +00:00
Bill Wendling
e81561909d Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 01:30:32 +00:00
Bill Wendling
8f48766286 Changed to using LLVM streams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31955 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 02:09:03 +00:00
Devang Patel
214ca23aef Add run(Function &F) support in FunctionPassManager_New
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31756 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 19:39:54 +00:00
Devang Patel
8619678153 Tidy up marking of last analysis user pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31746 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 01:48:14 +00:00
Devang Patel
3799f97d53 Add doInitialization and doFinalization support in FunctionManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31745 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 01:27:05 +00:00
Devang Patel
abb81054d1 Do not derive CommonPassManagerImpl from Pass.
Now BasicBlockPassManager_New is a FunctionPass,
FunctionPassManager_New is a ModulePass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31744 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 01:11:27 +00:00
Devang Patel
2f42ed6b0b Copy initializeAnalysisImpl() implementation from PassManagerT.
Update LastUser to recursively walk required transitive set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31741 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 21:49:36 +00:00
Devang Patel
df1a10ece6 Implement removeDeadPasses().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31722 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 03:05:08 +00:00
Devang Patel
03153c70de Keep track of Last user of analysis phase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31721 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 02:54:23 +00:00
Devang Patel
b899eed1bc Use std::map to map AnalysisID and Pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31720 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 01:59:59 +00:00
Devang Patel
c1d6e1fc9c Manage analysis passes during run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31716 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 01:23:29 +00:00
Devang Patel
5770c7cd52 Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31713 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-14 00:03:04 +00:00
Devang Patel
2718bfbaa6 Update PassManagerImpl_New::analysisCurrentlyAvailable to check all
managed passmanagers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31710 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-13 22:53:19 +00:00
Devang Patel
be6d515f48 Check currently available anlysis in active managers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31709 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-13 22:40:09 +00:00
Devang Patel
f8af6f0ec1 Implement schedulePasses().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31671 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 02:22:31 +00:00
Devang Patel
fcb2d940a0 Implement PassManagerImpl_New::add().
Just add pass into the pass manager queue without processing analysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31670 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 02:06:21 +00:00
Devang Patel
893a5a6815 While adding pass into the manager, process Analysis only if it is
required to do so.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31669 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 02:04:19 +00:00
Devang Patel
f13dc1b9e8 Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31668 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 01:56:39 +00:00
Devang Patel
e253385b10 Code refactoring. Move common code into CommonPassManagerImpl :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31667 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 01:51:02 +00:00
Devang Patel
85d344b0c6 Move CommonPassManagerImpl from PassManager.h to PassManager.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31666 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 01:31:05 +00:00
Devang Patel
14d6581a73 Remove analysis that is not preserved by the pass from AvailableAnalysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31665 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 01:24:55 +00:00
Devang Patel
b852616255 Keep track if analysis made available by the pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31664 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 01:10:19 +00:00
Devang Patel
a363a0bdef Keep track of analysis required by the passes. Force use of new pass
manager if a pass does not preserve analysis that is used by other
passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31659 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 00:42:16 +00:00
Devang Patel
37a84c7d8b s/PassManagerAnalysisHelper/CommonPassManagerImpl
Inherit CommonPassManagerImpl from Pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31642 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-10 21:33:13 +00:00
Devang Patel
c63592b19e Split FunctionPassManager_New into FunctionPassManager_New and FunctionPassManagerImpl_New.
FunctionPassManagerImpl_New implements the pass manager.
FunctionPassManager_New is the public interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31547 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 10:44:40 +00:00
Devang Patel
5a39b2e806 Split PassManager_New into PassManager_New and PassManagerImpl_New.
PassManagerImpl_New implements the pass manager.
PassManager_New is the public interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31546 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 10:29:57 +00:00
Devang Patel
c67c938de2 Move BasicBlockPassManager_New, FunctionPassManager_New and
ModulePassManager_New class declarations from PassManager.h
to PassManager.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31545 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 10:05:38 +00:00
Devang Patel
2c5d1851bb Beautify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31533 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 01:31:28 +00:00
Devang Patel
53596b6ba5 Update new pass managers to use PassManagerAnalysisHelper API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31526 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 22:56:50 +00:00
Devang Patel
889739c4d1 Introduce PassManagerAnalysisHelper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31522 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 22:35:17 +00:00
Devang Patel
b30803bc17 Add PassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31521 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 22:23:34 +00:00
Devang Patel
92c45eebf7 Add ModulePassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31517 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 22:03:15 +00:00
Devang Patel
448d27cd79 Add FunctionPassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31515 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 21:49:50 +00:00
Devang Patel
55fd43f909 Add BasicBlockPassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31513 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 21:31:57 +00:00