Add VMCore and code generator support for debugging intrinsics. By default
authorChris Lattner <sabre@nondot.org>
Mon, 5 Jan 2004 05:36:30 +0000 (05:36 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 5 Jan 2004 05:36:30 +0000 (05:36 +0000)
code generators completely ignore them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10691 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/IntrinsicLowering.cpp
lib/VMCore/Function.cpp
lib/VMCore/IntrinsicLowering.cpp
lib/VMCore/Verifier.cpp

index 4815be9f28010f32625d67a92099690f844c4aa8..52faefdf39a5e27520f5780d5f76b49c29c83c53 100644 (file)
@@ -48,6 +48,14 @@ void DefaultIntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
     // Insert the call to abort
     new CallInst(M->getOrInsertFunction("abort", Type::VoidTy, 0), "", CI);
     break;
+
+  case Intrinsic::dbg_stoppoint:
+  case Intrinsic::dbg_region_start:
+  case Intrinsic::dbg_region_end:
+  case Intrinsic::dbg_func_start:
+    if (CI->getType() != Type::VoidTy)
+      CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
+    break;    // Simply strip out debugging intrinsics
   }
 
   assert(CI->use_empty() &&
index b5586721e8584ce7ba3ccaf5312dd5b9db96c942..f8d951b75152f5156a0d438b046523516a7e518f 100644 (file)
@@ -207,6 +207,12 @@ unsigned Function::getIntrinsicID() const {
         if (getName() == alpha_intrinsics[i].name)
           return alpha_intrinsics[i].id;
     break;
+  case 'd':
+    if (getName() == "llvm.dbg.stoppoint")   return Intrinsic::dbg_stoppoint;
+    if (getName() == "llvm.dbg.region.start")return Intrinsic::dbg_region_start;
+    if (getName() == "llvm.dbg.region.end")  return Intrinsic::dbg_region_end;
+    if (getName() == "llvm.dbg.func.start")  return Intrinsic::dbg_func_start;
+    break;
   case 'l':
     if (getName() == "llvm.longjmp")  return Intrinsic::longjmp;
     break;
index 4815be9f28010f32625d67a92099690f844c4aa8..52faefdf39a5e27520f5780d5f76b49c29c83c53 100644 (file)
@@ -48,6 +48,14 @@ void DefaultIntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
     // Insert the call to abort
     new CallInst(M->getOrInsertFunction("abort", Type::VoidTy, 0), "", CI);
     break;
+
+  case Intrinsic::dbg_stoppoint:
+  case Intrinsic::dbg_region_start:
+  case Intrinsic::dbg_region_end:
+  case Intrinsic::dbg_func_start:
+    if (CI->getType() != Type::VoidTy)
+      CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
+    break;    // Simply strip out debugging intrinsics
   }
 
   assert(CI->use_empty() &&
index 98288f414271ca7d9cb6c1509f3a9af7cfcdca02..3e59e6510128feccea1f796b55f9fe98da34f901 100644 (file)
@@ -548,6 +548,11 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) {
   case Intrinsic::longjmp:         NumArgs = 2; break;
   case Intrinsic::sigsetjmp:       NumArgs = 2; break;
   case Intrinsic::siglongjmp:      NumArgs = 2; break;
+
+  case Intrinsic::dbg_stoppoint:   NumArgs = 4; break;
+  case Intrinsic::dbg_region_start:NumArgs = 1; break;
+  case Intrinsic::dbg_region_end:  NumArgs = 1; break;
+  case Intrinsic::dbg_func_start:  NumArgs = 1; break;
  
   case Intrinsic::alpha_ctlz:      NumArgs = 1; break;
   case Intrinsic::alpha_cttz:      NumArgs = 1; break;