Stream: git-cranelift

Topic: cranelift / Issue #595 Optimize instruction `arguments`


view this post on Zulip GitHub (Feb 28 2020 at 23:25):

alexcrichton transferred Issue #595:

The arguments function for instructions returns a slice of the operands of an instruction, so it's called a lot. It's generated by gen_arguments_method here:

https://github.com/CraneStation/cranelift/blob/master/lib/codegen/meta-python/gen_instr.py#L60

Currently, there are several possible formats for instructions, so it does a match to determine how to retrieve the arguments slice. In practice, it's compiled to an indirect jump with a table.

It would be interesting to experiment with making all instructions use a ValueList, rather than just using ValueList for variable-length argument lists. That might use a little more memory, but it might speed up arguments by making it avoid the jump table.


Last updated: Oct 23 2024 at 20:03 UTC