forked from OSchip/llvm-project
[Driver] Pass -O* to the gold plugin via -plugin-opt
The gold plugin understands -O0..-O3, but these are not currently being passed to it. llvm-svn: 256146
This commit is contained in:
parent
0b8ed1d162
commit
f97fdae4d0
|
@ -1796,6 +1796,19 @@ static void AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args,
|
|||
if (!CPU.empty())
|
||||
CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=mcpu=") + CPU));
|
||||
|
||||
if (Arg *A = Args.getLastArg(options::OPT_O_Group)) {
|
||||
StringRef OOpt;
|
||||
if (A->getOption().matches(options::OPT_O4) ||
|
||||
A->getOption().matches(options::OPT_Ofast))
|
||||
OOpt = "3";
|
||||
else if (A->getOption().matches(options::OPT_O))
|
||||
OOpt = A->getValue();
|
||||
else if (A->getOption().matches(options::OPT_O0))
|
||||
OOpt = "0";
|
||||
if (!OOpt.empty())
|
||||
CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=O") + OOpt));
|
||||
}
|
||||
|
||||
if (IsThinLTO)
|
||||
CmdArgs.push_back("-plugin-opt=thinlto");
|
||||
}
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
// RUN: touch %t.o
|
||||
//
|
||||
// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \
|
||||
// RUN: -Wl,-plugin-opt=foo \
|
||||
// RUN: -Wl,-plugin-opt=foo -O3 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-X86-64-BASIC
|
||||
// CHECK-X86-64-BASIC: "-plugin" "{{.*}}/LLVMgold.so"
|
||||
// CHECK-X86-64-BASIC: "-plugin-opt=O3"
|
||||
// CHECK-X86-64-BASIC: "-plugin-opt=foo"
|
||||
//
|
||||
// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \
|
||||
// RUN: -march=corei7 -Wl,-plugin-opt=foo \
|
||||
// RUN: -march=corei7 -Wl,-plugin-opt=foo -Ofast \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-X86-64-COREI7
|
||||
// CHECK-X86-64-COREI7: "-plugin" "{{.*}}/LLVMgold.so"
|
||||
// CHECK-X86-64-COREI7: "-plugin-opt=mcpu=corei7"
|
||||
// CHECK-X86-64-COREI7: "-plugin-opt=O3"
|
||||
// CHECK-X86-64-COREI7: "-plugin-opt=foo"
|
||||
//
|
||||
// RUN: %clang -target arm-unknown-linux -### %t.o -flto 2>&1 \
|
||||
// RUN: -march=armv7a -Wl,-plugin-opt=foo \
|
||||
// RUN: -march=armv7a -Wl,-plugin-opt=foo -O0 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-ARM-V7A
|
||||
// CHECK-ARM-V7A: "-plugin" "{{.*}}/LLVMgold.so"
|
||||
// CHECK-ARM-V7A: "-plugin-opt=mcpu=cortex-a8"
|
||||
// CHECK-ARM-V7A: "-plugin-opt=O0"
|
||||
// CHECK-ARM-V7A: "-plugin-opt=foo"
|
||||
//
|
||||
// RUN: %clang -target i686-linux-android -### %t.o -flto 2>&1 \
|
||||
|
|
Loading…
Reference in New Issue