From 8e0e5a579d8753dc2045a47c2f155787e32fee55 Mon Sep 17 00:00:00 2001 From: Sanjoy Das Date: Mon, 14 Dec 2015 19:11:45 +0000 Subject: [PATCH] [MergeFunctions] Use II instead of CI for InvokeInst; NFC Using `CI` is slightly misleading. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255529 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/MergeFunctions.cpp | 10 ++++---- test/Feature/OperandBundles/merge-func.ll | 30 +++++++++++++++++++++++ 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lib/Transforms/IPO/MergeFunctions.cpp b/lib/Transforms/IPO/MergeFunctions.cpp index 132b5872fbe..8a209a18c54 100644 --- a/lib/Transforms/IPO/MergeFunctions.cpp +++ b/lib/Transforms/IPO/MergeFunctions.cpp @@ -974,17 +974,17 @@ int FunctionComparator::cmpOperations(const Instruction *L, CI->getMetadata(LLVMContext::MD_range), cast(R)->getMetadata(LLVMContext::MD_range)); } - if (const InvokeInst *CI = dyn_cast(L)) { - if (int Res = cmpNumbers(CI->getCallingConv(), + if (const InvokeInst *II = dyn_cast(L)) { + if (int Res = cmpNumbers(II->getCallingConv(), cast(R)->getCallingConv())) return Res; if (int Res = - cmpAttrs(CI->getAttributes(), cast(R)->getAttributes())) + cmpAttrs(II->getAttributes(), cast(R)->getAttributes())) return Res; - if (int Res = cmpOperandBundlesSchema(CI, R)) + if (int Res = cmpOperandBundlesSchema(II, R)) return Res; return cmpRangeMetadata( - CI->getMetadata(LLVMContext::MD_range), + II->getMetadata(LLVMContext::MD_range), cast(R)->getMetadata(LLVMContext::MD_range)); } if (const InsertValueInst *IVI = dyn_cast(L)) { diff --git a/test/Feature/OperandBundles/merge-func.ll b/test/Feature/OperandBundles/merge-func.ll index aad9262c901..1fa6eb09308 100644 --- a/test/Feature/OperandBundles/merge-func.ll +++ b/test/Feature/OperandBundles/merge-func.ll @@ -32,3 +32,33 @@ define i32 @g() { ret i32 %v2 } + +define i32 @f.invoke() personality i8 3 { +; CHECK-LABEL: @f.invoke( + entry: +; CHECK: %v0 = invoke i32 (...) @foo(i32 10) [ "foo"(i32 20) ] + %v0 = invoke i32 (...) @foo(i32 10) [ "foo"(i32 20) ] + to label %normal unwind label %exception + + normal: + ret i32 %v0 + + exception: + %cleanup = landingpad i8 cleanup + ret i32 0 +} + +define i32 @g.invoke() personality i8 3 { +; CHECK-LABEL: @g.invoke( + entry: +; CHECK: %v0 = invoke i32 (...) @foo() [ "foo"(i32 10, i32 20) ] + %v0 = invoke i32 (...) @foo() [ "foo"(i32 10, i32 20) ] + to label %normal unwind label %exception + + normal: + ret i32 %v0 + + exception: + %cleanup = landingpad i8 cleanup + ret i32 0 +} -- 2.34.1