+ Addi2Nop optimization

This commit is contained in:
florian 2024-12-01 11:21:09 +01:00
parent 91d3746adf
commit c45d03851a

View File

@ -265,6 +265,21 @@ implementation
hp1: tai;
begin
result:=false;
{
Get rid of
addi x, x, 0
}
if (taicpu(p).ops=3) and
(taicpu(p).oper[2]^.typ=top_const) and
(taicpu(p).oper[2]^.val=0) and
MatchOperand(taicpu(p).oper[0]^,taicpu(p).oper[1]^) then
begin
DebugMsg('Peephole Addi2Nop performed', p);
RemoveInstr(p);
result:=true;
end
{
Changes
addi x, y, #
@ -273,7 +288,7 @@ implementation
To
addi z, y, #+#
}
if (taicpu(p).ops=3) and
else if (taicpu(p).ops=3) and
(taicpu(p).oper[2]^.typ=top_const) and
GetNextInstructionUsingReg(p, hp1, taicpu(p).oper[0]^.reg) and
MatchInstruction(hp1,[A_ADDI{$ifdef riscv64},A_ADDIW{$endif}]) and