================ @@ -0,0 +1,80 @@ +; RUN: opt -S -dxil-finalize-linkage -mtriple=dxil-unknown-shadermodel6.5-compute %s | FileCheck %s +; RUN: llc %s --filetype=asm -o - | FileCheck %s + +target triple = "dxilv1.5-pc-shadermodel6.5-compute" + +; Confirm that DXILFinalizeLinkage will remove functions that have compatible +; linkage and are not called from anywhere. This should be any function that +; is not explicitly marked noinline or export and is not an entry point. + +; Not called nor marked with any linking or inlining attributes. +; CHECK-NOT: define {{.*}}doNothingNothing +define void @"?doNothingNothing@@YAXXZ"() #0 { +entry: + ret void +} + +; Marked internal, this should be removed. +; CHECK-NOT: define {{.*}}doNothingInternally +define internal void @"?doNothingInternally@@YAXXZ"() #0 { +entry: + ret void +} + +; Marked external, which should become internal and be removed. +; CHECK-NOT: define {{.*}}doNothingExternally +define external void @"?doNothingExternally@@YAXXZ"() #0 { +entry: + ret void +} + +; Not called nor marked with any linking or inlining attributes. +; CHECK: define internal void @"?doSomethingSomething@@YAXXZ"() #0 +define void @"?doSomethingSomething@@YAXXZ"() #0 { +entry: + ret void +} + +; Marked internal, this should be removed. +; CHECK: define internal void @"?doSomethingInternally@@YAXXZ"() #0 ---------------- hekota wrote:
Typo - 'should not be removed'? https://github.com/llvm/llvm-project/pull/106146 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits