mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89683 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2048b85c7c
commit
5fca8b1c8d
@ -18,6 +18,7 @@
|
|||||||
#include "llvm/DerivedTypes.h"
|
#include "llvm/DerivedTypes.h"
|
||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
#include "llvm/Instructions.h"
|
#include "llvm/Instructions.h"
|
||||||
|
#include "llvm/IntrinsicInst.h"
|
||||||
#include "llvm/LLVMContext.h"
|
#include "llvm/LLVMContext.h"
|
||||||
#include "llvm/Module.h"
|
#include "llvm/Module.h"
|
||||||
#include "llvm/CodeGen/MachineFunction.h"
|
#include "llvm/CodeGen/MachineFunction.h"
|
||||||
@ -340,4 +341,15 @@ void llvm::AddCatchInfo(CallInst &I, MachineModuleInfo *MMI,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void llvm::CopyCatchInfo(BasicBlock *SrcBB, BasicBlock *DestBB,
|
||||||
|
MachineModuleInfo *MMI, FunctionLoweringInfo &FLI) {
|
||||||
|
for (BasicBlock::iterator I = SrcBB->begin(), E = --SrcBB->end(); I != E; ++I)
|
||||||
|
if (EHSelectorInst *EHSel = dyn_cast<EHSelectorInst>(I)) {
|
||||||
|
// Apply the catch info to DestBB.
|
||||||
|
AddCatchInfo(*EHSel, MMI, FLI.MBBMap[DestBB]);
|
||||||
|
#ifndef NDEBUG
|
||||||
|
if (!FLI.MBBMap[SrcBB]->isLandingPad())
|
||||||
|
FLI.CatchInfoFound.insert(EHSel);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -142,6 +142,10 @@ GlobalVariable *ExtractTypeInfo(Value *V);
|
|||||||
/// call, and add them to the specified machine basic block.
|
/// call, and add them to the specified machine basic block.
|
||||||
void AddCatchInfo(CallInst &I, MachineModuleInfo *MMI, MachineBasicBlock *MBB);
|
void AddCatchInfo(CallInst &I, MachineModuleInfo *MMI, MachineBasicBlock *MBB);
|
||||||
|
|
||||||
|
/// CopyCatchInfo - Copy catch information from DestBB to SrcBB.
|
||||||
|
void CopyCatchInfo(BasicBlock *SrcBB, BasicBlock *DestBB,
|
||||||
|
MachineModuleInfo *MMI, FunctionLoweringInfo &FLI);
|
||||||
|
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -362,19 +362,6 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void copyCatchInfo(BasicBlock *SrcBB, BasicBlock *DestBB,
|
|
||||||
MachineModuleInfo *MMI, FunctionLoweringInfo &FLI) {
|
|
||||||
for (BasicBlock::iterator I = SrcBB->begin(), E = --SrcBB->end(); I != E; ++I)
|
|
||||||
if (EHSelectorInst *EHSel = dyn_cast<EHSelectorInst>(I)) {
|
|
||||||
// Apply the catch info to DestBB.
|
|
||||||
AddCatchInfo(*EHSel, MMI, FLI.MBBMap[DestBB]);
|
|
||||||
#ifndef NDEBUG
|
|
||||||
if (!FLI.MBBMap[SrcBB]->isLandingPad())
|
|
||||||
FLI.CatchInfoFound.insert(EHSel);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SelectionDAGISel::SelectBasicBlock(BasicBlock *LLVMBB,
|
void SelectionDAGISel::SelectBasicBlock(BasicBlock *LLVMBB,
|
||||||
BasicBlock::iterator Begin,
|
BasicBlock::iterator Begin,
|
||||||
BasicBlock::iterator End,
|
BasicBlock::iterator End,
|
||||||
@ -735,7 +722,7 @@ void SelectionDAGISel::SelectAllBasicBlocks(Function &Fn,
|
|||||||
|
|
||||||
if (I == E)
|
if (I == E)
|
||||||
// No catch info found - try to extract some from the successor.
|
// No catch info found - try to extract some from the successor.
|
||||||
copyCatchInfo(Br->getSuccessor(0), LLVMBB, MMI, *FuncInfo);
|
CopyCatchInfo(Br->getSuccessor(0), LLVMBB, MMI, *FuncInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user