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
EraVM indexed load and store instructions are doing post increment if we have add by 32 to the base address. To leverage indexed load and store instructions, we can try to find add instructions with constant and to adjust them by changing first operand to be the base address of the load or store instruction and second operand to be 32 constant, if that is feasible. In that case, indexed load and store instructions will be generated, and add instruction will be removed.
For the following case:
One option to do this is to create MIR pass that will do this transformation. Also, it would be good to check how to leverage DAG optimizations to generate POST_INCMemIndexedMode, like other architectures are doing (e.g. AArch64).
The text was updated successfully, but these errors were encountered:
EraVM indexed load and store instructions are doing post increment if we have add by 32 to the base address. To leverage indexed load and store instructions, we can try to find add instructions with constant and to adjust them by changing first operand to be the base address of the load or store instruction and second operand to be 32 constant, if that is feasible. In that case, indexed load and store instructions will be generated, and add instruction will be removed.
For the following case:
following assembly is generated:
If we do the following (adjust
%add2
to be add with 32 by changing%a
operand to%add1
):we can generate indexed store and get following assembly:
One option to do this is to create MIR pass that will do this transformation. Also, it would be good to check how to leverage DAG optimizations to generate
POST_INC
MemIndexedMode
, like other architectures are doing (e.g.AArch64
).The text was updated successfully, but these errors were encountered: