From 962dcdfddaa7a87f8e40c6b43e4649fc47e27673 Mon Sep 17 00:00:00 2001 From: Andrea Di Biagio Date: Wed, 25 Mar 2015 12:22:37 +0000 Subject: [PATCH] [optnone] Skip pass Float2Int on optnone functions. Added test Float2Int/float2int-optnone.ll to verify that pass Float2Int is not run on optnone functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233183 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/Float2Int.cpp | 3 +++ test/Transforms/Float2Int/float2int-optnone.ll | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 test/Transforms/Float2Int/float2int-optnone.ll diff --git a/lib/Transforms/Scalar/Float2Int.cpp b/lib/Transforms/Scalar/Float2Int.cpp index 3d7457ea5dc..33bc8603039 100644 --- a/lib/Transforms/Scalar/Float2Int.cpp +++ b/lib/Transforms/Scalar/Float2Int.cpp @@ -511,6 +511,9 @@ void Float2Int::cleanup() { } bool Float2Int::runOnFunction(Function &F) { + if (skipOptnoneFunction(F)) + return false; + DEBUG(dbgs() << "F2I: Looking at function " << F.getName() << "\n"); // Clear out all state. ECs = EquivalenceClasses(); diff --git a/test/Transforms/Float2Int/float2int-optnone.ll b/test/Transforms/Float2Int/float2int-optnone.ll new file mode 100644 index 00000000000..c1eeea7a82e --- /dev/null +++ b/test/Transforms/Float2Int/float2int-optnone.ll @@ -0,0 +1,17 @@ +; RUN: opt < %s -float2int -S | FileCheck %s +; +; Verify that pass float2int is not run on optnone functions. + +define i16 @simple1(i8 %a) #0 { +; CHECK-LABEL: @simple1 +; CHECK: %1 = uitofp i8 %a to float +; CHECK-NEXT: %2 = fadd float %1, 1.0 +; CHECK-NEXT: %3 = fptoui float %2 to i16 +; CHECK-NEXT: ret i16 %3 + %1 = uitofp i8 %a to float + %2 = fadd float %1, 1.0 + %3 = fptoui float %2 to i16 + ret i16 %3 +} + +attributes #0 = { noinline optnone } -- 2.34.1