mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-27 17:31:33 +00:00
Use getPassManagerType() instead of dynamic_cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33078 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4fe16d607d
commit
6b9420e943
@ -1686,17 +1686,14 @@ void PMStack::handleLastUserOverflow() {
|
|||||||
/// add self into that manager.
|
/// add self into that manager.
|
||||||
void ModulePass::assignPassManager(PMStack &PMS) {
|
void ModulePass::assignPassManager(PMStack &PMS) {
|
||||||
|
|
||||||
MPPassManager *MPP = NULL;
|
|
||||||
|
|
||||||
// Find Module Pass Manager
|
// Find Module Pass Manager
|
||||||
while(!PMS.empty()) {
|
while(!PMS.empty()) {
|
||||||
|
if (PMS.top()->getPassManagerType() > PMT_ModulePassManager)
|
||||||
MPP = dynamic_cast<MPPassManager *>(PMS.top());
|
|
||||||
if (MPP)
|
|
||||||
break; // Found it
|
|
||||||
else
|
|
||||||
PMS.pop(); // Pop children pass managers
|
PMS.pop(); // Pop children pass managers
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
MPPassManager *MPP = dynamic_cast<MPPassManager *>(PMS.top());
|
||||||
|
|
||||||
assert(MPP && "Unable to find Module Pass Manager");
|
assert(MPP && "Unable to find Module Pass Manager");
|
||||||
MPP->addPassToManager(this);
|
MPP->addPassToManager(this);
|
||||||
@ -1706,21 +1703,14 @@ void ModulePass::assignPassManager(PMStack &PMS) {
|
|||||||
/// in the PM Stack and add self into that manager.
|
/// in the PM Stack and add self into that manager.
|
||||||
void FunctionPass::assignPassManager(PMStack &PMS) {
|
void FunctionPass::assignPassManager(PMStack &PMS) {
|
||||||
|
|
||||||
FPPassManager *FPP = NULL;
|
|
||||||
|
|
||||||
// Find Module Pass Manager (TODO : Or Call Graph Pass Manager)
|
// Find Module Pass Manager (TODO : Or Call Graph Pass Manager)
|
||||||
while(!PMS.empty()) {
|
while(!PMS.empty()) {
|
||||||
|
if (PMS.top()->getPassManagerType() > PMT_FunctionPassManager)
|
||||||
FPP = dynamic_cast<FPPassManager *>(PMS.top());
|
PMS.pop();
|
||||||
if (FPP)
|
|
||||||
break; // Found Function Pass Manager
|
|
||||||
else if (dynamic_cast<BBPassManager *>(PMS.top()))
|
|
||||||
PMS.pop(); // Pop Basic Block Pass Manager
|
|
||||||
// TODO : else if Pop Loop Pass Manager
|
|
||||||
else
|
else
|
||||||
break; // PMS.top() is either Module Pass Manager or Call Graph
|
break;
|
||||||
// Pass Manager
|
|
||||||
}
|
}
|
||||||
|
FPPassManager *FPP = dynamic_cast<FPPassManager *>(PMS.top());
|
||||||
|
|
||||||
// Create new Function Pass Manager
|
// Create new Function Pass Manager
|
||||||
if (!FPP) {
|
if (!FPP) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user