We don't use them yet and they just cause problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294770
91177308-0d34-0410-b5e6-
96231b3b80d8
switch (ID) {
default:
break;
+ case Intrinsic::lifetime_start:
+ case Intrinsic::lifetime_end:
+ // Stack coloring is not enabled in O0 (which we care about now) so we can
+ // drop these. Make sure someone notices when we start compiling at higher
+ // opts though.
+ if (MF->getTarget().getOptLevel() != CodeGenOpt::None)
+ return false;
+ return true;
case Intrinsic::dbg_declare: {
const DbgDeclareInst &DI = cast<DbgDeclareInst>(CI);
assert(DI.getVariable() && "Missing variable");
%res = call float @llvm.pow.f32(float %l, float %r)
ret float %res
}
+
+declare void @llvm.lifetime.start(i64, i8*)
+declare void @llvm.lifetime.end(i64, i8*)
+define void @test_lifetime_intrin() {
+; CHECK-LABEL: name: test_lifetime_intrin
+; CHECK: RET_ReallyLR
+ %slot = alloca i8, i32 4
+ call void @llvm.lifetime.start(i64 0, i8* %slot)
+ call void @llvm.lifetime.end(i64 0, i8* %slot)
+ ret void
+}