[HIP-Clang] propagate -mllvm options to opt and llc
Change the HIP Toolchain to pass the OPT_mllvm options into OPT and LLC stages. Added a lit test to verify the command args. Reviewers: yaxunl Differential Revision: https://reviews.llvm.org/D59316 llvm-svn: 356277
This commit is contained in:
parent
e3d3e862de
commit
04fddc9b27
|
@ -140,6 +140,11 @@ const char *AMDGCN::Linker::constructOptCommand(
|
|||
}
|
||||
OptArgs.push_back("-mtriple=amdgcn-amd-amdhsa");
|
||||
OptArgs.push_back(Args.MakeArgString("-mcpu=" + SubArchName));
|
||||
|
||||
for (const Arg *A : Args.filtered(options::OPT_mllvm)) {
|
||||
OptArgs.push_back(A->getValue(0));
|
||||
}
|
||||
|
||||
OptArgs.push_back("-o");
|
||||
std::string TmpFileName = C.getDriver().GetTemporaryPath(
|
||||
OutputFilePrefix.str() + "-optimized", "bc");
|
||||
|
@ -177,6 +182,10 @@ const char *AMDGCN::Linker::constructLlcCommand(
|
|||
if(!Features.empty())
|
||||
LlcArgs.push_back(Args.MakeArgString(MAttrString));
|
||||
|
||||
for (const Arg *A : Args.filtered(options::OPT_mllvm)) {
|
||||
LlcArgs.push_back(A->getValue(0));
|
||||
}
|
||||
|
||||
// Add output filename
|
||||
LlcArgs.push_back("-o");
|
||||
std::string LlcOutputFileName =
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
// REQUIRES: clang-driver
|
||||
// REQUIRES: x86-registered-target
|
||||
// REQUIRES: amdgpu-registered-target
|
||||
|
||||
// RUN: %clang -### -target x86_64-linux-gnu \
|
||||
// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \
|
||||
// RUN: -mllvm -amdgpu-function-calls=0 \
|
||||
// RUN: %s 2>&1 | FileCheck %s
|
||||
|
||||
// CHECK: [[CLANG:".*clang.*"]] "-cc1" "-triple" "amdgcn-amd-amdhsa"
|
||||
// CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc"
|
||||
// CHECK-SAME: {{.*}} "-target-cpu" "gfx803"
|
||||
// CHECK-SAME: {{.*}} "-mllvm" "-amdgpu-function-calls=0" {{.*}}
|
||||
|
||||
// CHECK: [[OPT:".*opt"]] {{".*-gfx803-linked.*bc"}} "-mtriple=amdgcn-amd-amdhsa"
|
||||
// CHECK-SAME: "-mcpu=gfx803" "-amdgpu-function-calls=0"
|
||||
// CHECK-SAME: "-o" [[OPT_803_BC:".*-gfx803-optimized.*bc"]]
|
||||
|
||||
// CHECK: [[LLC: ".*llc"]] [[OPT_803_BC]]
|
||||
// CHECK-SAME: "-mtriple=amdgcn-amd-amdhsa" "-filetype=obj"
|
||||
// CHECK-SAME: {{.*}} "-mcpu=gfx803"
|
||||
// CHECK-SAME: "-amdgpu-function-calls=0" "-o" {{".*-gfx803-.*o"}}
|
||||
|
||||
// CHECK: [[CLANG]] "-cc1" "-triple" "amdgcn-amd-amdhsa"
|
||||
// CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc"
|
||||
// CHECK-SAME: {{.*}} "-target-cpu" "gfx900"
|
||||
// CHECK-SAME: {{.*}} "-mllvm" "-amdgpu-function-calls=0" {{.*}}
|
||||
|
||||
// CHECK: [[OPT]] {{".*-gfx900-linked.*bc"}} "-mtriple=amdgcn-amd-amdhsa"
|
||||
// CHECK-SAME: "-mcpu=gfx900" "-amdgpu-function-calls=0"
|
||||
// CHECK-SAME: "-o" [[OPT_900_BC:".*-gfx900-optimized.*bc"]]
|
||||
|
||||
// CHECK: [[LLC]] [[OPT_900_BC]]
|
||||
// CHECK-SAME: "-mtriple=amdgcn-amd-amdhsa" "-filetype=obj"
|
||||
// CHECK-SAME: {{.*}} "-mcpu=gfx900"
|
||||
// CHECK-SAME: "-amdgpu-function-calls=0" "-o" {{".*-gfx900-.*o"}}
|
Loading…
Reference in New Issue