aboutsummaryrefslogtreecommitdiffstats
path: root/yjit/src/options.rs
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-08-23 13:46:43 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2022-08-29 09:09:41 -0700
commitdef3ade8a809a230648cdffbf4ab066b07fe7bf1 (patch)
tree8d976629754280b8bf0777a846a7267900cd0f1e /yjit/src/options.rs
parent54c7bc67a2d54311b77aca9233b23a9e7a1ca581 (diff)
downloadruby-def3ade8a809a230648cdffbf4ab066b07fe7bf1.tar.gz
Add --yjit-dump-disasm to dump every compiled code (https://github.com/Shopify/ruby/pull/430)
* Add --yjit-dump-disasm to dump every compiled code * Just use get_option * Carve out disasm_from_addr * Avoid push_str with format! * Share the logic through asm.compile * This seems to negatively impact the compilation speed
Diffstat (limited to 'yjit/src/options.rs')
-rw-r--r--yjit/src/options.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/yjit/src/options.rs b/yjit/src/options.rs
index 7436b3583b..2e141445f1 100644
--- a/yjit/src/options.rs
+++ b/yjit/src/options.rs
@@ -30,6 +30,9 @@ pub struct Options {
/// Dump compiled and executed instructions for debugging
pub dump_insns: bool,
+ /// Dump all compiled instructions in inlined CodeBlock
+ pub dump_disasm: bool,
+
/// Print when specific ISEQ items are compiled or invalidated
pub dump_iseq_disasm: Option<String>,
@@ -53,6 +56,7 @@ pub static mut OPTIONS: Options = Options {
gen_stats: false,
gen_trace_exits: false,
dump_insns: false,
+ dump_disasm: false,
verify_ctx: false,
global_constant_state: false,
dump_iseq_disasm: None,
@@ -128,6 +132,7 @@ pub fn parse_option(str_ptr: *const std::os::raw::c_char) -> Option<()> {
("stats", "") => unsafe { OPTIONS.gen_stats = true },
("trace-exits", "") => unsafe { OPTIONS.gen_trace_exits = true; OPTIONS.gen_stats = true },
("dump-insns", "") => unsafe { OPTIONS.dump_insns = true },
+ ("dump-disasm", "") => unsafe { OPTIONS.dump_disasm = true },
("verify-ctx", "") => unsafe { OPTIONS.verify_ctx = true },
("global-constant-state", "") => unsafe { OPTIONS.global_constant_state = true },