python3kgae updated this revision to Diff 432429. python3kgae added a comment.
Add test for main is not entry. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124753/new/ https://reviews.llvm.org/D124753 Files: clang/lib/Driver/ToolChains/HLSL.cpp clang/test/CodeGenHLSL/entry_default.hlsl Index: clang/test/CodeGenHLSL/entry_default.hlsl =================================================================== --- /dev/null +++ clang/test/CodeGenHLSL/entry_default.hlsl @@ -0,0 +1,28 @@ +// RUN: %clang --driver-mode=dxc -Tcs_6_1 -fcgl -Fo - %s | FileCheck %s +// RUN: %clang --driver-mode=dxc -Efoo -Tcs_6_1 -fcgl -Fo - %s | FileCheck %s --check-prefix=NOTMAIN + +// Make sure main is default entry. +// Make sure not mangle entry. +// CHECK:define void @main() [[MAIN_ATTR:#[0-9]]] +// CHECK:define void @_Z3foov() [[FOO_ATTR:#[0-9]]] +// Make sure only main has dx.shader attribute. +// CHECK:[[MAIN_ATTR]] +// CHECK:"dx.shader"="compute" +// CHECK-SAME:} +// CHECK:[[FOO_ATTR]] +// CHECK-NOT:"dx.shader"="compute" +[numthreads(1, 1, 1)] void main() { + +} + +// NOTMAIN:define void @main() [[MAIN_ATTR:#[0-9]]] +// NOTMAIN:define void @foo() [[FOO_ATTR:#[0-9]]] +// Make sure only foo has dx.shader attribute. +// NOTMAIN:[[MAIN_ATTR]] +// NOTMAIN-NOT:"dx.shader"="compute" +// NOTMAIN-SAME:} +// NOTMAIN:[[FOO_ATTR]] +// NOTMAIN-SAME:"dx.shader"="compute" +[numthreads(1, 1, 1)] void foo() { + +} \ No newline at end of file Index: clang/lib/Driver/ToolChains/HLSL.cpp =================================================================== --- clang/lib/Driver/ToolChains/HLSL.cpp +++ clang/lib/Driver/ToolChains/HLSL.cpp @@ -188,5 +188,11 @@ Opts.getOption(options::OPT_dxil_validator_version), DefaultValidatorVer); } + // If entry is not set explicitly, default is main. + if (!DAL->hasArg(options::OPT_hlsl_entrypoint)) { + const StringRef DefaultEntry = "main"; + DAL->AddSeparateArg(nullptr, Opts.getOption(options::OPT_hlsl_entrypoint), + DefaultEntry); + } return DAL; }
Index: clang/test/CodeGenHLSL/entry_default.hlsl =================================================================== --- /dev/null +++ clang/test/CodeGenHLSL/entry_default.hlsl @@ -0,0 +1,28 @@ +// RUN: %clang --driver-mode=dxc -Tcs_6_1 -fcgl -Fo - %s | FileCheck %s +// RUN: %clang --driver-mode=dxc -Efoo -Tcs_6_1 -fcgl -Fo - %s | FileCheck %s --check-prefix=NOTMAIN + +// Make sure main is default entry. +// Make sure not mangle entry. +// CHECK:define void @main() [[MAIN_ATTR:#[0-9]]] +// CHECK:define void @_Z3foov() [[FOO_ATTR:#[0-9]]] +// Make sure only main has dx.shader attribute. +// CHECK:[[MAIN_ATTR]] +// CHECK:"dx.shader"="compute" +// CHECK-SAME:} +// CHECK:[[FOO_ATTR]] +// CHECK-NOT:"dx.shader"="compute" +[numthreads(1, 1, 1)] void main() { + +} + +// NOTMAIN:define void @main() [[MAIN_ATTR:#[0-9]]] +// NOTMAIN:define void @foo() [[FOO_ATTR:#[0-9]]] +// Make sure only foo has dx.shader attribute. +// NOTMAIN:[[MAIN_ATTR]] +// NOTMAIN-NOT:"dx.shader"="compute" +// NOTMAIN-SAME:} +// NOTMAIN:[[FOO_ATTR]] +// NOTMAIN-SAME:"dx.shader"="compute" +[numthreads(1, 1, 1)] void foo() { + +} \ No newline at end of file Index: clang/lib/Driver/ToolChains/HLSL.cpp =================================================================== --- clang/lib/Driver/ToolChains/HLSL.cpp +++ clang/lib/Driver/ToolChains/HLSL.cpp @@ -188,5 +188,11 @@ Opts.getOption(options::OPT_dxil_validator_version), DefaultValidatorVer); } + // If entry is not set explicitly, default is main. + if (!DAL->hasArg(options::OPT_hlsl_entrypoint)) { + const StringRef DefaultEntry = "main"; + DAL->AddSeparateArg(nullptr, Opts.getOption(options::OPT_hlsl_entrypoint), + DefaultEntry); + } return DAL; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits