diff --git a/cranelift/frontend/src/frontend.rs b/cranelift/frontend/src/frontend.rs index 365e5aeffb..3ebfc8efa0 100644 --- a/cranelift/frontend/src/frontend.rs +++ b/cranelift/frontend/src/frontend.rs @@ -640,6 +640,7 @@ impl<'a> FunctionBuilder<'a> { dest_align: u8, src_align: u8, non_overlapping: bool, + mut flags: MemFlags, ) { // Currently the result of guess work, not actual profiling. const THRESHOLD: u64 = 4; @@ -676,7 +677,6 @@ impl<'a> FunctionBuilder<'a> { return; } - let mut flags = MemFlags::new(); flags.set_aligned(); // Load all of the memory first. This is necessary in case `dest` overlaps. @@ -732,6 +732,7 @@ impl<'a> FunctionBuilder<'a> { ch: u8, size: u64, buffer_align: u8, + mut flags: MemFlags, ) { // Currently the result of guess work, not actual profiling. const THRESHOLD: u64 = 4; @@ -763,7 +764,6 @@ impl<'a> FunctionBuilder<'a> { let size = self.ins().iconst(config.pointer_type(), size as i64); self.call_memset(config, buffer, ch, size); } else { - let mut flags = MemFlags::new(); flags.set_aligned(); let ch = u64::from(ch); @@ -851,7 +851,9 @@ mod tests { use alloc::string::ToString; use cranelift_codegen::entity::EntityRef; use cranelift_codegen::ir::types::*; - use cranelift_codegen::ir::{AbiParam, ExternalName, Function, InstBuilder, Signature}; + use cranelift_codegen::ir::{ + AbiParam, ExternalName, Function, InstBuilder, MemFlags, Signature, + }; use cranelift_codegen::isa::CallConv; use cranelift_codegen::settings; use cranelift_codegen::verifier::verify_function; @@ -1063,7 +1065,16 @@ block0: let src = builder.use_var(x); let dest = builder.use_var(y); let size = 8; - builder.emit_small_memory_copy(target.frontend_config(), dest, src, size, 8, 8, true); + builder.emit_small_memory_copy( + target.frontend_config(), + dest, + src, + size, + 8, + 8, + true, + MemFlags::new(), + ); builder.ins().return_(&[dest]); builder.seal_all_blocks(); @@ -1121,7 +1132,16 @@ block0: let src = builder.use_var(x); let dest = builder.use_var(y); let size = 8192; - builder.emit_small_memory_copy(target.frontend_config(), dest, src, size, 8, 8, true); + builder.emit_small_memory_copy( + target.frontend_config(), + dest, + src, + size, + 8, + 8, + true, + MemFlags::new(), + ); builder.ins().return_(&[dest]); builder.seal_all_blocks(); @@ -1179,7 +1199,7 @@ block0: let dest = builder.use_var(y); let size = 8; - builder.emit_small_memset(target.frontend_config(), dest, 1, size, 8); + builder.emit_small_memset(target.frontend_config(), dest, 1, size, 8, MemFlags::new()); builder.ins().return_(&[dest]); builder.seal_all_blocks(); @@ -1232,7 +1252,7 @@ block0: let dest = builder.use_var(y); let size = 8192; - builder.emit_small_memset(target.frontend_config(), dest, 1, size, 8); + builder.emit_small_memset(target.frontend_config(), dest, 1, size, 8, MemFlags::new()); builder.ins().return_(&[dest]); builder.seal_all_blocks();