Stream: cranelift

Topic: Scalability of Flag handling with ISLE


view this post on Zulip Sam Parker (Jun 22 2022 at 09:31):

Hi,

I'm trying to port icmp for aarch64 over to isle and I've got to the part where I need to think about flag consumers and producers and, in our case, a consumer that is also a producer. I don't think this is currently supported? Looking at the current helpers in prelude.isle, it's slightly intimidating to think about adding another value to ProducesFlags and/or ConsumesFlags value... This appears to be a non-trivial task and I'm wondering if the complexity is really necessary?

In my basic view, we just want to emit a bunch of instructions together, not reorder them, and ensure the flags aren't clobbered by anything else. Can we not have a constructor that takes an arbitrary number of instructions and emits them, either producing a Reg or ValueRegs?

cheers!


Last updated: Oct 23 2024 at 20:03 UTC