[llvm] 5ea8951 - [FuncSpec] Add a testcase for the treatment of constant and unused arguments

Momchil Velikov via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 26 09:37:59 PDT 2022


Author: Momchil Velikov
Date: 2022-10-26T17:25:18+01:00
New Revision: 5ea8951b8845394a2ee49f47ae501a608abb4bcc

URL: https://github.com/llvm/llvm-project/commit/5ea8951b8845394a2ee49f47ae501a608abb4bcc
DIFF: https://github.com/llvm/llvm-project/commit/5ea8951b8845394a2ee49f47ae501a608abb4bcc.diff

LOG: [FuncSpec] Add a testcase for the treatment of constant and unused arguments

Increase test coverage - check that functions are not specialised on
constant or unused arguments.

Reviewed By: SjoerdMeijer

Differential Revision: https://reviews.llvm.org/D136184

Added: 
    llvm/test/Transforms/FunctionSpecialization/no-spec-unused-arg.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/FunctionSpecialization/no-spec-unused-arg.ll b/llvm/test/Transforms/FunctionSpecialization/no-spec-unused-arg.ll
new file mode 100644
index 0000000000000..3ecbd66c97293
--- /dev/null
+++ b/llvm/test/Transforms/FunctionSpecialization/no-spec-unused-arg.ll
@@ -0,0 +1,20 @@
+; RUN: opt -S --passes=function-specialization -force-function-specialization -function-specialization-for-literal-constant < %s | FileCheck %s
+define internal i32 @f(i32 %x, i32 %y) noinline {
+    ret i32 %x
+}
+
+define i32 @g0() {
+    %r = call i32 @f(i32 1, i32 1)
+    ret i32 %r
+}
+
+define i32 @g1() {
+    %r = call i32 @f(i32 1, i32 2)
+    ret i32 %r
+}
+
+; Check that there are no specialisation of `f`: first parameter is deduced
+; to be a constant without the need for function specialisation and
+; the second parameter is unused.
+
+;  CHECK-NOT: @f.
\ No newline at end of file


        


More information about the llvm-commits mailing list