From a7fbdc35a2d4bce349445a7dbcdb67fddfda3857 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Mon, 9 Jan 2023 08:29:41 -0800 Subject: [PATCH] YJIT: Remove old comments for regenerated branches (#7083) --- yjit/src/asm/mod.rs | 7 +++++++ yjit/src/core.rs | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/yjit/src/asm/mod.rs b/yjit/src/asm/mod.rs index 44ae74d470..586b01243d 100644 --- a/yjit/src/asm/mod.rs +++ b/yjit/src/asm/mod.rs @@ -356,6 +356,13 @@ impl CodeBlock { self.asm_comments.get(&pos) } + pub fn remove_comments(&mut self, start_addr: CodePtr, end_addr: CodePtr) { + #[cfg(feature = "disasm")] + for addr in start_addr.into_usize()..end_addr.into_usize() { + self.asm_comments.remove(&addr); + } + } + pub fn clear_comments(&mut self) { #[cfg(feature = "disasm")] self.asm_comments.clear(); diff --git a/yjit/src/core.rs b/yjit/src/core.rs index c0411a94a2..3b471e782e 100644 --- a/yjit/src/core.rs +++ b/yjit/src/core.rs @@ -1609,6 +1609,11 @@ fn regenerate_branch(cb: &mut CodeBlock, branch: &mut Branch) { } */ + // Remove old comments + if let (Some(start_addr), Some(end_addr)) = (branch.start_addr, branch.end_addr) { + cb.remove_comments(start_addr, end_addr) + } + let mut block = branch.block.borrow_mut(); let branch_terminates_block = branch.end_addr == block.end_addr;