Don't pass LLVM pass & its args during linking (#1274)
This commit is contained in:
parent
b7c1591b00
commit
efc5756e3f
@ -326,34 +326,38 @@ impl CompilerWrapper for ClangWrapper {
|
||||
args.push("-flegacy-pass-manager".into());
|
||||
}
|
||||
}
|
||||
for pass in &self.passes {
|
||||
use_pass = true;
|
||||
if self.use_new_pm {
|
||||
// https://github.com/llvm/llvm-project/issues/56137
|
||||
// Need this -Xclang -load -Xclang -<pass>.so thing even with the new PM
|
||||
// to pass the arguments to LLVM Passes
|
||||
args.push("-Xclang".into());
|
||||
args.push("-load".into());
|
||||
args.push("-Xclang".into());
|
||||
args.push(pass.path().into_os_string().into_string().unwrap());
|
||||
args.push("-Xclang".into());
|
||||
args.push(format!(
|
||||
"-fpass-plugin={}",
|
||||
pass.path().into_os_string().into_string().unwrap()
|
||||
));
|
||||
} else {
|
||||
args.push("-Xclang".into());
|
||||
args.push("-load".into());
|
||||
args.push("-Xclang".into());
|
||||
args.push(pass.path().into_os_string().into_string().unwrap());
|
||||
}
|
||||
}
|
||||
if !self.is_asm && !self.passes.is_empty() {
|
||||
for passes_arg in &self.passes_args {
|
||||
args.push("-mllvm".into());
|
||||
args.push(passes_arg.into());
|
||||
|
||||
if !self.linking {
|
||||
for pass in &self.passes {
|
||||
use_pass = true;
|
||||
if self.use_new_pm {
|
||||
// https://github.com/llvm/llvm-project/issues/56137
|
||||
// Need this -Xclang -load -Xclang -<pass>.so thing even with the new PM
|
||||
// to pass the arguments to LLVM Passes
|
||||
args.push("-Xclang".into());
|
||||
args.push("-load".into());
|
||||
args.push("-Xclang".into());
|
||||
args.push(pass.path().into_os_string().into_string().unwrap());
|
||||
args.push("-Xclang".into());
|
||||
args.push(format!(
|
||||
"-fpass-plugin={}",
|
||||
pass.path().into_os_string().into_string().unwrap()
|
||||
));
|
||||
} else {
|
||||
args.push("-Xclang".into());
|
||||
args.push("-load".into());
|
||||
args.push("-Xclang".into());
|
||||
args.push(pass.path().into_os_string().into_string().unwrap());
|
||||
}
|
||||
}
|
||||
if !self.is_asm && !self.passes.is_empty() {
|
||||
for passes_arg in &self.passes_args {
|
||||
args.push("-mllvm".into());
|
||||
args.push(passes_arg.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if self.linking {
|
||||
if self.x_set {
|
||||
args.push("-x".into());
|
||||
|
Loading…
x
Reference in New Issue
Block a user