From a6063c6e29746d9425bdf46d680e28a48dcf58f9 Mon Sep 17 00:00:00 2001
From: Dan Gohman
- declare void @llvm.debugger() + declare void @llvm.debugtrap()
The 'llvm.debugger' intrinsic.
+The 'llvm.debugtrap' intrinsic.
None.
diff --git a/include/llvm/CodeGen/ISDOpcodes.h b/include/llvm/CodeGen/ISDOpcodes.h index e570e12503a..7c2864fb4a9 100644 --- a/include/llvm/CodeGen/ISDOpcodes.h +++ b/include/llvm/CodeGen/ISDOpcodes.h @@ -582,8 +582,8 @@ namespace ISD { // TRAP - Trapping instruction TRAP, - // DEBUGGER - Trap intented to get the attention of a debugger. - DEBUGGER, + // DEBUGTRAP - Trap intented to get the attention of a debugger. + DEBUGTRAP, // PREFETCH - This corresponds to a prefetch intrinsic. It takes chains are // their first operand. The other operands are the address to prefetch, diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td index 6b09cbd7854..58b178f25af 100644 --- a/include/llvm/Intrinsics.td +++ b/include/llvm/Intrinsics.td @@ -399,8 +399,8 @@ def int_flt_rounds : Intrinsic<[llvm_i32_ty]>, GCCBuiltin<"__builtin_flt_rounds">; def int_trap : Intrinsic<[]>, GCCBuiltin<"__builtin_trap">; -def int_debugger : Intrinsic<[]>, - GCCBuiltin<"__builtin_debugger">; +def int_debugtrap : Intrinsic<[]>, + GCCBuiltin<"__builtin_debugtrap">; // Intrisics to support half precision floating point format let Properties = [IntrNoMem] in { diff --git a/include/llvm/Target/TargetSelectionDAG.td b/include/llvm/Target/TargetSelectionDAG.td index 361b42a12b5..5f069801a6d 100644 --- a/include/llvm/Target/TargetSelectionDAG.td +++ b/include/llvm/Target/TargetSelectionDAG.td @@ -404,7 +404,7 @@ def brind : SDNode<"ISD::BRIND" , SDTBrind, [SDNPHasChain]>; def br : SDNode<"ISD::BR" , SDTBr, [SDNPHasChain]>; def trap : SDNode<"ISD::TRAP" , SDTNone, [SDNPHasChain, SDNPSideEffect]>; -def debugger : SDNode<"ISD::DEBUGGER" , SDTNone, +def debugtrap : SDNode<"ISD::DEBUGTRAP" , SDTNone, [SDNPHasChain, SDNPSideEffect]>; def prefetch : SDNode<"ISD::PREFETCH" , SDTPrefetch, diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index c73ba7bc221..4f45e76456f 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -5087,8 +5087,8 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) { DAG.setRoot(Result.second); return 0; } - case Intrinsic::debugger: { - DAG.setRoot(DAG.getNode(ISD::DEBUGGER, dl,MVT::Other, getRoot())); + case Intrinsic::debugtrap: { + DAG.setRoot(DAG.getNode(ISD::DEBUGTRAP, dl,MVT::Other, getRoot())); return 0; } case Intrinsic::uadd_with_overflow: diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp index 7b633eff541..14e9ec33ebe 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp @@ -265,7 +265,7 @@ std::string SDNode::getOperationName(const SelectionDAG *G) const { case ISD::STACKSAVE: return "stacksave"; case ISD::STACKRESTORE: return "stackrestore"; case ISD::TRAP: return "trap"; - case ISD::DEBUGGER: return "debugger"; + case ISD::DEBUGTRAP: return "debugtrap"; // Bit manipulation case ISD::BSWAP: return "bswap"; diff --git a/lib/Target/X86/X86InstrSystem.td b/lib/Target/X86/X86InstrSystem.td index dd1b499ddd7..ea716bfd6bd 100644 --- a/lib/Target/X86/X86InstrSystem.td +++ b/lib/Target/X86/X86InstrSystem.td @@ -36,7 +36,7 @@ let Uses = [EFLAGS] in def INT3 : I<0xcc, RawFrm, (outs), (ins), "int3", [(int_x86_int (i8 3))], IIC_INT3>; -def : Pat<(debugger), +def : Pat<(debugtrap), (INT3)>; // The long form of "int $3" turns into int3 as a size optimization. diff --git a/test/CodeGen/X86/trap.ll b/test/CodeGen/X86/trap.ll index 2020516a883..3f44be0b500 100644 --- a/test/CodeGen/X86/trap.ll +++ b/test/CodeGen/X86/trap.ll @@ -12,10 +12,10 @@ entry: ; CHECK: int3 define i32 @test1() noreturn nounwind { entry: - tail call void @llvm.debugger( ) + tail call void @llvm.debugtrap( ) unreachable } declare void @llvm.trap() nounwind -declare void @llvm.debugger() nounwind +declare void @llvm.debugtrap() nounwind