diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-04-08 21:37:21 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-04-08 21:37:21 +0000 |
commit | 4da0c7c0c9081107bea5f6bac440f0f1eb47748f (patch) | |
tree | 0602fc33efe0ffceae34ab44129adbfce7d62239 /lib/Target/ARM | |
parent | e2e777b0e73809047d98066ebcc28042882d1cf8 (diff) | |
download | external_llvm-4da0c7c0c9081107bea5f6bac440f0f1eb47748f.zip external_llvm-4da0c7c0c9081107bea5f6bac440f0f1eb47748f.tar.gz external_llvm-4da0c7c0c9081107bea5f6bac440f0f1eb47748f.tar.bz2 |
Change -arm-trap-func= into a non-arm specific option. Now Intrinsic::trap is lowered into a call to the specified trap function at sdisel time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129152 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM')
-rw-r--r-- | lib/Target/ARM/ARMISelLowering.cpp | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index 7c456ed..330a781 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -72,11 +72,6 @@ ARMInterworking("arm-interworking", cl::Hidden, cl::desc("Enable / disable ARM interworking (for debugging only)"), cl::init(true)); -static cl::opt<std::string> -TrapFuncName("arm-trap-func", cl::Hidden, - cl::desc("Emit a call to trap function rather than a trap instruction"), - cl::init("")); - void ARMTargetLowering::addTypeForNEON(EVT VT, EVT PromotedLdStVT, EVT PromotedBitwiseVT) { if (VT != PromotedLdStVT) { @@ -562,10 +557,7 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM) setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom); setOperationAction(ISD::BlockAddress, MVT::i32, Custom); - if (TrapFuncName.size()) - setOperationAction(ISD::TRAP, MVT::Other, Custom); - else - setOperationAction(ISD::TRAP, MVT::Other, Legal); + setOperationAction(ISD::TRAP, MVT::Other, Legal); // Use the default implementation. setOperationAction(ISD::VASTART, MVT::Other, Custom); @@ -4698,19 +4690,6 @@ static SDValue LowerUDIV(SDValue Op, SelectionDAG &DAG) { return N0; } -static SDValue LowerTrap(SDValue Op, SelectionDAG &DAG) { - const TargetLowering &TLI = DAG.getTargetLoweringInfo(); - TargetLowering::ArgListTy Args; - std::pair<SDValue, SDValue> CallResult = - TLI.LowerCallTo(Op.getOperand(0), Type::getVoidTy(*DAG.getContext()), - false, false, false, false, 0, CallingConv::C, - /*isTailCall=*/false, - /*isReturnValueUsed=*/true, - DAG.getExternalSymbol(TrapFuncName.c_str(), TLI.getPointerTy()), - Args, DAG, Op.getDebugLoc()); - return CallResult.second; -} - SDValue ARMTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const { switch (Op.getOpcode()) { default: llvm_unreachable("Don't know how to custom lower this!"); @@ -4757,7 +4736,6 @@ SDValue ARMTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const { case ISD::MUL: return LowerMUL(Op, DAG); case ISD::SDIV: return LowerSDIV(Op, DAG); case ISD::UDIV: return LowerUDIV(Op, DAG); - case ISD::TRAP: return LowerTrap(Op, DAG); } return SDValue(); } |