mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
New EH representation for MSVC compatibility
This introduces new instructions neccessary to implement MSVC-compatible exception handling support. Most of the middle-end and none of the back-end haven't been audited or updated to take them into account. Differential Revision: http://reviews.llvm.org/D11097 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243766 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1158,6 +1158,30 @@ SDValue SelectionDAGBuilder::getValueImpl(const Value *V) {
|
||||
llvm_unreachable("Can't get register for value!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitCleanupRet(const CleanupReturnInst &I) {
|
||||
report_fatal_error("visitCleanupRet not yet implemented!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitCatchEndPad(const CatchEndPadInst &I) {
|
||||
report_fatal_error("visitCatchEndPad not yet implemented!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitCatchRet(const CatchReturnInst &I) {
|
||||
report_fatal_error("visitCatchRet not yet implemented!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitCatchPad(const CatchPadInst &I) {
|
||||
report_fatal_error("visitCatchPad not yet implemented!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitTerminatePad(const TerminatePadInst &TPI) {
|
||||
report_fatal_error("visitTerminatePad not yet implemented!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitCleanupPad(const CleanupPadInst &CPI) {
|
||||
report_fatal_error("visitCleanupPad not yet implemented!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitRet(const ReturnInst &I) {
|
||||
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
|
||||
auto &DL = DAG.getDataLayout();
|
||||
|
@@ -735,6 +735,12 @@ private:
|
||||
void visitSwitch(const SwitchInst &I);
|
||||
void visitIndirectBr(const IndirectBrInst &I);
|
||||
void visitUnreachable(const UnreachableInst &I);
|
||||
void visitCleanupRet(const CleanupReturnInst &I);
|
||||
void visitCatchEndPad(const CatchEndPadInst &I);
|
||||
void visitCatchRet(const CatchReturnInst &I);
|
||||
void visitCatchPad(const CatchPadInst &I);
|
||||
void visitTerminatePad(const TerminatePadInst &TPI);
|
||||
void visitCleanupPad(const CleanupPadInst &CPI);
|
||||
|
||||
uint32_t getEdgeWeight(const MachineBasicBlock *Src,
|
||||
const MachineBasicBlock *Dst) const;
|
||||
|
@@ -1571,6 +1571,12 @@ int TargetLoweringBase::InstructionOpcodeToISD(unsigned Opcode) const {
|
||||
case Invoke: return 0;
|
||||
case Resume: return 0;
|
||||
case Unreachable: return 0;
|
||||
case CleanupRet: return 0;
|
||||
case CatchEndPad: return 0;
|
||||
case CatchRet: return 0;
|
||||
case CatchPad: return 0;
|
||||
case TerminatePad: return 0;
|
||||
case CleanupPad: return 0;
|
||||
case Add: return ISD::ADD;
|
||||
case FAdd: return ISD::FADD;
|
||||
case Sub: return ISD::SUB;
|
||||
|
Reference in New Issue
Block a user