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