florian
|
1266491085
o refactored some peephole optimizer code:
|
преди 9 години |
yury
|
5771073e0b
* Fixed general peephole optimization of conditional jumps after r30446. It has been broken, since r30446 had added some IsJumpToLabel() checks, which tests for unconditional jump, but the optimization code expects also conditional jumps.
|
преди 9 години |
yury
|
11a9ff4a43
* Removed unused vars for mipsel compiler.
|
преди 10 години |
yury
|
432248cbf1
* Removed lot of unused vars.
|
преди 10 години |
Jonas Maebe
|
8c8657e2d5
* base optimiser support for the JVM target
|
преди 10 години |
Jeppe Johansen
|
03880c2f74
Added some peephole optimizations, and fixed generic unconditional jump optimizations, for AVR.
|
преди 10 години |
florian
|
1114089d25
* IsJumpToLabel checks number of operands
|
преди 10 години |
Jonas Maebe
|
620af1732a
* support for AArch64 branch forwarding
|
преди 10 години |
sergei
|
0041024e5f
* Modified FindRegAlloc() to skip branch delay slots in the same way it is done in GetNextInstruction(). This fixes processing sequences "dealloc reg; branch reg,label; NOP; alloc reg" in BuildLabelTableAndFixRegAlloc(), deallocation is now correctly moved after branch. Before this change, the last allocation was ignored, and deallocation was moved forward until another instruction using reg was encountered.
|
преди 10 години |
florian
|
8060d4a3f7
* when updating registers in RegUsedAfterInstruction, new reg. allocs should be ignored
|
преди 11 години |
masta
|
81517fdf70
Rerun peephole optimizers on the whole block
|
преди 11 години |
florian
|
0eeb3e8d49
* check if the pointer is really assigned when trying to remove unneeded jumps
|
преди 11 години |
sergei
|
40239e8bcc
* Elaborating removal of branches with delay slots: ignore reg. deallocations that are inserted by RA between branch and its delay slot instruction.
|
преди 11 години |
florian
|
2806947a8f
+ FindRegAllocBackward
|
преди 12 години |
sergei
|
1c84c3edbf
* Fixed label optimizer to work with MIPS, and enabled level 1 optimization for MIPS targets.
|
преди 12 години |
sergei
|
a4217da7df
* Factored repeating code into separate procedure (IsJumpToLabel)
|
преди 12 години |
florian
|
b6a4602989
* ignore alignment entries in FindLabel
|
преди 13 години |
florian
|
3e9baa3f47
* check also register type in FindRegalloc
|
преди 13 години |
florian
|
6e62fbc3d2
* more consistent updates of used registers
|
преди 13 години |
florian
|
07e26cfb12
+ TUsedRegs.Update parameter IgnoreNewAllocs so new allocs of registers can be ignored during update
|
преди 13 години |
Jonas Maebe
|
d472a6d5d0
* changed tregset into tcpuregisterset so it's faster and uses less memory
|
преди 13 години |
florian
|
72746e635d
* optimize TAOptObj.UpdateUsedRegs to avoid multiple passes through the asmlist
|
преди 13 години |
florian
|
17dd362a5a
* white space
|
преди 13 години |
florian
|
2402e8e504
* fixes FindRegAlloc
|
преди 13 години |
florian
|
748694a325
* fixes some issues with reg. allocation information
|
преди 13 години |
Jonas Maebe
|
7742dc0006
* don't remove ait_markers between unconditional jumps and the next label,
|
преди 13 години |
florian
|
3c33bf4e6d
* completed framework for register usage tracking
|
преди 13 години |
florian
|
2a6a4831ea
* basics for generic register usage information
|
преди 13 години |
florian
|
39ab9eceba
* fix OpsEqual
|
преди 13 години |
florian
|
2f5ce095ce
* RefsHaveIndexReg -> cpurefshaveindexreg
|
преди 13 години |