mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-08 05:26:50 +00:00
GlobalISel: drop lifetime intrinsics during translation.
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
This commit is contained in:
parent
fc4c8411e4
commit
10fde8b13b
@ -555,6 +555,14 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
|
||||
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");
|
||||
|
@ -1144,3 +1144,14 @@ define float @test_pow_intrin(float %l, float %r) {
|
||||
%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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user