forked from OSchip/llvm-project
Remove deprecated llvm.experimental.gc.result.{int,float,ptr} intrinsics.
Summary: These were deprecated 11 months ago when a generic llvm.experimental.gc.result intrinsic, which works for all types, was added. Reviewers: sanjoy, reames Subscribers: sanjoy, chenli, llvm-commits Differential Revision: http://reviews.llvm.org/D15719 llvm-svn: 256262
This commit is contained in:
parent
ef064f8ace
commit
4e4f60ded0
|
@ -148,9 +148,6 @@ public:
|
|||
case Intrinsic::objectsize:
|
||||
case Intrinsic::ptr_annotation:
|
||||
case Intrinsic::var_annotation:
|
||||
case Intrinsic::experimental_gc_result_int:
|
||||
case Intrinsic::experimental_gc_result_float:
|
||||
case Intrinsic::experimental_gc_result_ptr:
|
||||
case Intrinsic::experimental_gc_result:
|
||||
case Intrinsic::experimental_gc_relocate:
|
||||
// These intrinsics don't actually represent code after lowering.
|
||||
|
|
|
@ -579,12 +579,6 @@ def int_experimental_gc_relocate : Intrinsic<[llvm_anyptr_ty],
|
|||
[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
|
||||
[IntrReadMem]>;
|
||||
|
||||
// Deprecated: will be removed in a couple of weeks
|
||||
def int_experimental_gc_result_int : Intrinsic<[llvm_anyint_ty], [llvm_i32_ty]>;
|
||||
def int_experimental_gc_result_float : Intrinsic<[llvm_anyfloat_ty],
|
||||
[llvm_i32_ty]>;
|
||||
def int_experimental_gc_result_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_i32_ty]>;
|
||||
|
||||
//===-------------------------- Other Intrinsics --------------------------===//
|
||||
//
|
||||
def int_flt_rounds : Intrinsic<[llvm_i32_ty]>,
|
||||
|
|
|
@ -5184,9 +5184,6 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
|
|||
visitStatepoint(I);
|
||||
return nullptr;
|
||||
}
|
||||
case Intrinsic::experimental_gc_result_int:
|
||||
case Intrinsic::experimental_gc_result_float:
|
||||
case Intrinsic::experimental_gc_result_ptr:
|
||||
case Intrinsic::experimental_gc_result: {
|
||||
visitGCResult(I);
|
||||
return nullptr;
|
||||
|
|
|
@ -67,10 +67,7 @@ bool llvm::isGCResult(const ImmutableCallSite &CS) {
|
|||
bool llvm::isGCResult(const Value *inst) {
|
||||
if (const CallInst *call = dyn_cast<CallInst>(inst)) {
|
||||
if (Function *F = call->getCalledFunction()) {
|
||||
return (F->getIntrinsicID() == Intrinsic::experimental_gc_result_int ||
|
||||
F->getIntrinsicID() == Intrinsic::experimental_gc_result_float ||
|
||||
F->getIntrinsicID() == Intrinsic::experimental_gc_result_ptr ||
|
||||
F->getIntrinsicID() == Intrinsic::experimental_gc_result);
|
||||
return F->getIntrinsicID() == Intrinsic::experimental_gc_result;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -3622,9 +3622,6 @@ void Verifier::visitIntrinsicCallSite(Intrinsic::ID ID, CallSite CS) {
|
|||
|
||||
VerifyStatepoint(CS);
|
||||
break;
|
||||
case Intrinsic::experimental_gc_result_int:
|
||||
case Intrinsic::experimental_gc_result_float:
|
||||
case Intrinsic::experimental_gc_result_ptr:
|
||||
case Intrinsic::experimental_gc_result: {
|
||||
Assert(CS.getParent()->getParent()->hasGC(),
|
||||
"Enclosing function does not use GC.", CS);
|
||||
|
|
|
@ -477,14 +477,11 @@ static BaseDefiningValueResult findBaseDefiningValue(Value *I) {
|
|||
|
||||
if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(I)) {
|
||||
switch (II->getIntrinsicID()) {
|
||||
case Intrinsic::experimental_gc_result_ptr:
|
||||
default:
|
||||
// fall through to general call handling
|
||||
break;
|
||||
case Intrinsic::experimental_gc_statepoint:
|
||||
case Intrinsic::experimental_gc_result_float:
|
||||
case Intrinsic::experimental_gc_result_int:
|
||||
llvm_unreachable("these don't produce pointers");
|
||||
llvm_unreachable("statepoints don't produce pointers");
|
||||
case Intrinsic::experimental_gc_relocate: {
|
||||
// Rerunning safepoint insertion after safepoints are already
|
||||
// inserted is not supported. It could probably be made to work,
|
||||
|
|
|
@ -125,7 +125,7 @@ define void @test4() gc "statepoint-example" {
|
|||
; CHECK: gc.relocate
|
||||
; CHECK: @use(i8 addrspace(1)* %res.relocated)
|
||||
%safepoint_token2 = tail call i32 (i64, i32, i8 addrspace(1)* ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i8f(i64 0, i32 0, i8 addrspace(1)* ()* undef, i32 0, i32 0, i32 0, i32 0)
|
||||
%res = call i8 addrspace(1)* @llvm.experimental.gc.result.ptr.p1i8(i32 %safepoint_token2)
|
||||
%res = call i8 addrspace(1)* @llvm.experimental.gc.result.p1i8(i32 %safepoint_token2)
|
||||
call i32 (i64, i32, i8 addrspace(1)* ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i8f(i64 0, i32 0, i8 addrspace(1)* ()* undef, i32 0, i32 0, i32 0, i32 0)
|
||||
call void (...) @use(i8 addrspace(1)* %res)
|
||||
unreachable
|
||||
|
@ -289,7 +289,7 @@ declare i32 @llvm.experimental.gc.statepoint.p0f_isVoidf(i64, i32, void ()*, i32
|
|||
declare i32 @llvm.experimental.gc.statepoint.p0f_p1i8f(i64, i32, i8 addrspace(1)* ()*, i32, i32, ...)
|
||||
declare i32 @llvm.experimental.gc.statepoint.p0f_isVoidi64f(i64, i32, void (i64)*, i32, i32, ...)
|
||||
declare i32 @llvm.experimental.gc.statepoint.p0f_i32p1i64f(i64, i32, i32 (i64 addrspace(1)*)*, i32, i32, ...)
|
||||
declare i8 addrspace(1)* @llvm.experimental.gc.result.ptr.p1i8(i32) #3
|
||||
declare i8 addrspace(1)* @llvm.experimental.gc.result.p1i8(i32) #3
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue