You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The LowerLayers pass can create some trivial canonicalization opportunities. These can be removed with the canonicalizer. However, it may be better to handle these specially in the pass.
I specifically noticed that when you have a ref.resolve user of a captured value in a layerblock, this will create an input port and a ref.send. The ref.resolve(ref.send(block-arg)) can be trivially converted to block-arg. However, it doesn't fit a nice createOrFold pattern and would require special tracking. As I've been moving LowerLayers later and later, this has started to show up in small end-to-end firtool changes.
The
LowerLayers
pass can create some trivial canonicalization opportunities. These can be removed with the canonicalizer. However, it may be better to handle these specially in the pass.I specifically noticed that when you have a
ref.resolve
user of a captured value in alayerblock
, this will create an input port and aref.send
. Theref.resolve(ref.send(block-arg))
can be trivially converted toblock-arg
. However, it doesn't fit a nicecreateOrFold
pattern and would require special tracking. As I've been movingLowerLayers
later and later, this has started to show up in small end-to-endfirtool
changes.Consider:
This will be compiled to:
The text was updated successfully, but these errors were encountered: