Jonas Maebe
|
8c8657e2d5
* base optimiser support for the JVM target
|
10 anni fa |
Jeppe Johansen
|
03880c2f74
Added some peephole optimizations, and fixed generic unconditional jump optimizations, for AVR.
|
10 anni fa |
florian
|
1114089d25
* IsJumpToLabel checks number of operands
|
10 anni fa |
Jonas Maebe
|
620af1732a
* support for AArch64 branch forwarding
|
10 anni fa |
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 anni fa |
florian
|
8060d4a3f7
* when updating registers in RegUsedAfterInstruction, new reg. allocs should be ignored
|
11 anni fa |
masta
|
81517fdf70
Rerun peephole optimizers on the whole block
|
11 anni fa |
florian
|
0eeb3e8d49
* check if the pointer is really assigned when trying to remove unneeded jumps
|
11 anni fa |
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 anni fa |
florian
|
2806947a8f
+ FindRegAllocBackward
|
12 anni fa |
sergei
|
1c84c3edbf
* Fixed label optimizer to work with MIPS, and enabled level 1 optimization for MIPS targets.
|
12 anni fa |
sergei
|
a4217da7df
* Factored repeating code into separate procedure (IsJumpToLabel)
|
12 anni fa |
florian
|
b6a4602989
* ignore alignment entries in FindLabel
|
13 anni fa |
florian
|
3e9baa3f47
* check also register type in FindRegalloc
|
13 anni fa |
florian
|
6e62fbc3d2
* more consistent updates of used registers
|
13 anni fa |
florian
|
07e26cfb12
+ TUsedRegs.Update parameter IgnoreNewAllocs so new allocs of registers can be ignored during update
|
13 anni fa |
Jonas Maebe
|
d472a6d5d0
* changed tregset into tcpuregisterset so it's faster and uses less memory
|
13 anni fa |
florian
|
72746e635d
* optimize TAOptObj.UpdateUsedRegs to avoid multiple passes through the asmlist
|
13 anni fa |
florian
|
17dd362a5a
* white space
|
13 anni fa |
florian
|
2402e8e504
* fixes FindRegAlloc
|
13 anni fa |
florian
|
748694a325
* fixes some issues with reg. allocation information
|
13 anni fa |
Jonas Maebe
|
7742dc0006
* don't remove ait_markers between unconditional jumps and the next label,
|
13 anni fa |
florian
|
3c33bf4e6d
* completed framework for register usage tracking
|
13 anni fa |
florian
|
2a6a4831ea
* basics for generic register usage information
|
13 anni fa |
florian
|
39ab9eceba
* fix OpsEqual
|
13 anni fa |
florian
|
2f5ce095ce
* RefsHaveIndexReg -> cpurefshaveindexreg
|
13 anni fa |
florian
|
4868b09844
* patch by alexvin to replace $ifopt by $push/$pop, resolves #20332
|
14 anni fa |
Jonas Maebe
|
4be36c4b2b
* fixed a number of missing label reference removals when deleting
|
14 anni fa |
Jonas Maebe
|
666b4e2469
* fixed range errors in label bookkeeping that caused too much memory to be
|
15 anni fa |
florian
|
c71bc4084d
* fixed wrongly fix of r11444 in r12049
|
16 anni fa |