From ffc13bcb40d4257202295fc0ffe25b38bdf64263 Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Tue, 28 May 2013 11:23:28 -0700 Subject: Add two passes that implement conversions from PNaCl's specific intrinsics to external function calls during the translation stage (llc). One of the passes is a ModulePass that adds the appropriate function declarations to the module. The other is a FunctionPass that performs the actual call replacement. This split exists because of bitcode streaming. Initially the passes handle the llvm.nacl.{set|long}jmp intrinsics. In the future they may handle additional intrinsics that are part of the PNaCl stable bitcode ABI. This CL also removes the previous approach to handling this conversion (in SelectionDAGBuilder.cpp). That ended up not working - more details in issue 3429. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3429 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/16047002 --- lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'lib/CodeGen') diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 9113fb1b6f..b7a7e2e133 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -5215,13 +5215,6 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) { setValue(&I, DAG.getNode(ISD::NACL_TARGET_ARCH, dl, DestVT)); return 0; } - // Native Client Intrinsics for setjmp/longjmp - case Intrinsic::nacl_setjmp: { - return "setjmp"; - } - case Intrinsic::nacl_longjmp: { - return "longjmp"; - } // @LOCALMOD-END } } -- cgit v1.2.3-70-g09d2