mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[GlobalISel] IRTranslator: Translate the intrinsics ignored by CodeGen
Summary: Translate `llvm.assume`, `llvm.var.annotation` and `llvm.sideeffect` to nothing as they have no effect on CodeGen. Reviewers: qcolombet, aditya_nandakumar, dsanders, paquette, aemerson, arsenm Reviewed By: arsenm Subscribers: hiraditya, wdng, rovka, kristof.beyls, javed.absar, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63022 llvm-svn: 362834
This commit is contained in:
parent
deb150af5c
commit
08d50eb0d7
@ -1108,6 +1108,11 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
|
||||
}
|
||||
case Intrinsic::invariant_end:
|
||||
return true;
|
||||
case Intrinsic::assume:
|
||||
case Intrinsic::var_annotation:
|
||||
case Intrinsic::sideeffect:
|
||||
// Discard annotate attributes, assumptions, and artificial side-effects.
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -2390,3 +2390,30 @@ define float @test_rint_f32(float %x) {
|
||||
%y = call float @llvm.rint.f32(float %x)
|
||||
ret float %y
|
||||
}
|
||||
|
||||
declare void @llvm.assume(i1)
|
||||
define void @test_assume(i1 %x) {
|
||||
; CHECK-LABEL: name: test_assume
|
||||
; CHECK-NOT: llvm.assume
|
||||
; CHECK: RET_ReallyLR
|
||||
call void @llvm.assume(i1 %x)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @llvm.sideeffect()
|
||||
define void @test_sideeffect() {
|
||||
; CHECK-LABEL: name: test_sideeffect
|
||||
; CHECK-NOT: llvm.sideeffect
|
||||
; CHECK: RET_ReallyLR
|
||||
call void @llvm.sideeffect()
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @llvm.var.annotation(i8*, i8*, i8*, i32)
|
||||
define void @test_var_annotation(i8*, i8*, i8*, i32) {
|
||||
; CHECK-LABEL: name: test_var_annotation
|
||||
; CHECK-NOT: llvm.var.annotation
|
||||
; CHECK: RET_ReallyLR
|
||||
call void @llvm.var.annotation(i8* %0, i8* %1, i8* %2, i32 %3)
|
||||
ret void
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user