about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src/back
diff options
context:
space:
mode:
authorAxel Cohen <axel.cohen@eshard.com>2021-11-19 17:01:41 +0100
committerAxel Cohen <axel.cohen@eshard.com>2021-12-13 10:40:44 +0100
commit97cf461b8f4c0ed0de8fdc1c441b904ddb8b3194 (patch)
tree436752a1ffb01de4304b68790df0579062e3b10d /compiler/rustc_codegen_ssa/src/back
parent4a7fb971c939d268abdbd0963cd45d046442f7af (diff)
downloadrust-97cf461b8f4c0ed0de8fdc1c441b904ddb8b3194.tar.gz
rust-97cf461b8f4c0ed0de8fdc1c441b904ddb8b3194.zip
Add a codegen option to allow loading LLVM pass plugins
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
-rw-r--r--compiler/rustc_codegen_ssa/src/back/write.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs
index d6af6104155..65a13282224 100644
--- a/compiler/rustc_codegen_ssa/src/back/write.rs
+++ b/compiler/rustc_codegen_ssa/src/back/write.rs
@@ -74,6 +74,8 @@ pub enum BitcodeSection {
 pub struct ModuleConfig {
     /// Names of additional optimization passes to run.
     pub passes: Vec<String>,
+    /// Paths of LLVM pass plugins to load.
+    pub pass_plugins: Vec<String>,
     /// Some(level) to optimize at a certain level, or None to run
     /// absolutely no optimizations (used for the metadata module).
     pub opt_level: Option<config::OptLevel>,
@@ -170,6 +172,8 @@ impl ModuleConfig {
         ModuleConfig {
             passes: if_regular!(sess.opts.cg.passes.clone(), vec![]),
 
+            pass_plugins: if_regular!(sess.opts.cg.pass_plugins.clone(), vec![]),
+
             opt_level: opt_level_and_size,
             opt_size: opt_level_and_size,