about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2022-01-10 15:48:05 +0100
committerbjorn3 <bjorn3@users.noreply.github.com>2022-01-17 18:06:30 +0100
commite59b024e025795ecf7e3a57471451996be637656 (patch)
treef6fb1e70e3dfcd9f88a8d72b482da21e9c7c65c9
parent48abe3c6fa29dbedc611e22c6acde7d0022219f4 (diff)
downloadrust-e59b024e025795ecf7e3a57471451996be637656.tar.gz
rust-e59b024e025795ecf7e3a57471451996be637656.zip
Pass target_features set instead of has_feature closure
This avoids unnecessary monomorphizations in codegen backends
-rw-r--r--src/inline_asm.rs8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/inline_asm.rs b/src/inline_asm.rs
index be39dbd2e2a..c242c75ed18 100644
--- a/src/inline_asm.rs
+++ b/src/inline_asm.rs
@@ -182,11 +182,7 @@ struct InlineAssemblyGenerator<'a, 'tcx> {
 impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
     fn allocate_registers(&mut self) {
         let sess = self.tcx.sess;
-        let map = allocatable_registers(
-            self.arch,
-            |feature| sess.target_features.contains(&feature),
-            &sess.target,
-        );
+        let map = allocatable_registers(self.arch, &sess.target_features, &sess.target);
         let mut allocated = FxHashMap::<_, (bool, bool)>::default();
         let mut regs = vec![None; self.operands.len()];
 
@@ -319,7 +315,7 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
         // Allocate stack slots for saving clobbered registers
         let abi_clobber = InlineAsmClobberAbi::parse(
             self.arch,
-            |feature| self.tcx.sess.target_features.contains(&feature),
+            &self.tcx.sess.target_features,
             &self.tcx.sess.target,
             sym::C,
         )