[llvm-commits] CVS: llvm/lib/CodeGen/IntrinsicLowering.cpp
Chris Lattner
lattner at cs.uiuc.edu
Thu Jan 12 18:22:21 PST 2006
Changes in directory llvm/lib/CodeGen:
IntrinsicLowering.cpp updated: 1.36 -> 1.37
---
Log message:
Add "support" for the llvm.stacksave/stackrestore intrinsics, this is
used by the C backend.
---
Diffs of the changes: (+15 -2)
IntrinsicLowering.cpp | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/IntrinsicLowering.cpp
diff -u llvm/lib/CodeGen/IntrinsicLowering.cpp:1.36 llvm/lib/CodeGen/IntrinsicLowering.cpp:1.37
--- llvm/lib/CodeGen/IntrinsicLowering.cpp:1.36 Fri Nov 11 10:46:18 2005
+++ llvm/lib/CodeGen/IntrinsicLowering.cpp Thu Jan 12 20:22:08 2006
@@ -248,6 +248,19 @@
break;
}
+ case Intrinsic::stacksave:
+ case Intrinsic::stackrestore: {
+ static bool Warned = false;
+ if (!Warned)
+ std::cerr << "WARNING: this target does not support the llvm.stack"
+ << (Callee->getIntrinsicID() == Intrinsic::stacksave ?
+ "save" : "restore") << " intrinsic.\n";
+ Warned = true;
+ if (Callee->getIntrinsicID() == Intrinsic::stacksave)
+ CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
+ break;
+ }
+
case Intrinsic::returnaddress:
case Intrinsic::frameaddress:
std::cerr << "WARNING: this target does not support the llvm."
@@ -263,8 +276,8 @@
case Intrinsic::pcmarker:
break; // Simply strip out pcmarker on unsupported architectures
case Intrinsic::readcyclecounter: {
- std::cerr << "WARNING: this target does not support the llvm.readcyclecounter"
- << " intrinsic. It is being lowered to a constant 0\n";
+ std::cerr << "WARNING: this target does not support the llvm.readcyclecoun"
+ << "ter intrinsic. It is being lowered to a constant 0\n";
CI->replaceAllUsesWith(ConstantUInt::get(Type::ULongTy, 0));
break;
}
More information about the llvm-commits
mailing list