Revert "Don't pass LLVM pass & its args during linking (#1274)" (#1275)

This reverts commit efc5756e3fac9ed3b82e6d82b770b578b47b42d0.
This commit is contained in:
Dongjia "toka" Zhang 2023-05-17 14:53:17 +02:00 committed by GitHub
parent efc5756e3f
commit 66127d8492
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -326,38 +326,34 @@ impl CompilerWrapper for ClangWrapper {
args.push("-flegacy-pass-manager".into()); args.push("-flegacy-pass-manager".into());
} }
} }
for pass in &self.passes {
if !self.linking { use_pass = true;
for pass in &self.passes { if self.use_new_pm {
use_pass = true; // https://github.com/llvm/llvm-project/issues/56137
if self.use_new_pm { // Need this -Xclang -load -Xclang -<pass>.so thing even with the new PM
// https://github.com/llvm/llvm-project/issues/56137 // to pass the arguments to LLVM Passes
// Need this -Xclang -load -Xclang -<pass>.so thing even with the new PM args.push("-Xclang".into());
// to pass the arguments to LLVM Passes args.push("-load".into());
args.push("-Xclang".into()); args.push("-Xclang".into());
args.push("-load".into()); args.push(pass.path().into_os_string().into_string().unwrap());
args.push("-Xclang".into()); args.push("-Xclang".into());
args.push(pass.path().into_os_string().into_string().unwrap()); args.push(format!(
args.push("-Xclang".into()); "-fpass-plugin={}",
args.push(format!( pass.path().into_os_string().into_string().unwrap()
"-fpass-plugin={}", ));
pass.path().into_os_string().into_string().unwrap() } else {
)); args.push("-Xclang".into());
} else { args.push("-load".into());
args.push("-Xclang".into()); args.push("-Xclang".into());
args.push("-load".into()); args.push(pass.path().into_os_string().into_string().unwrap());
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 {
if !self.is_asm && !self.passes.is_empty() { args.push("-mllvm".into());
for passes_arg in &self.passes_args { args.push(passes_arg.into());
args.push("-mllvm".into());
args.push(passes_arg.into());
}
} }
} }
if self.linking { if self.linking {
if self.x_set { if self.x_set {
args.push("-x".into()); args.push("-x".into());