florian
|
1266491085
o refactored some peephole optimizer code:
|
9 ani în urmă |
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 ani în urmă |
yury
|
11a9ff4a43
* Removed unused vars for mipsel compiler.
|
10 ani în urmă |
yury
|
432248cbf1
* Removed lot of unused vars.
|
10 ani în urmă |
Jonas Maebe
|
8c8657e2d5
* base optimiser support for the JVM target
|
10 ani în urmă |
Jeppe Johansen
|
03880c2f74
Added some peephole optimizations, and fixed generic unconditional jump optimizations, for AVR.
|
10 ani în urmă |
florian
|
1114089d25
* IsJumpToLabel checks number of operands
|
10 ani în urmă |
Jonas Maebe
|
620af1732a
* support for AArch64 branch forwarding
|
10 ani în urmă |
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 ani în urmă |
florian
|
8060d4a3f7
* when updating registers in RegUsedAfterInstruction, new reg. allocs should be ignored
|
11 ani în urmă |
masta
|
81517fdf70
Rerun peephole optimizers on the whole block
|
11 ani în urmă |
florian
|
0eeb3e8d49
* check if the pointer is really assigned when trying to remove unneeded jumps
|
11 ani în urmă |
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 ani în urmă |
florian
|
2806947a8f
+ FindRegAllocBackward
|
12 ani în urmă |
sergei
|
1c84c3edbf
* Fixed label optimizer to work with MIPS, and enabled level 1 optimization for MIPS targets.
|
12 ani în urmă |
sergei
|
a4217da7df
* Factored repeating code into separate procedure (IsJumpToLabel)
|
12 ani în urmă |
florian
|
b6a4602989
* ignore alignment entries in FindLabel
|
13 ani în urmă |
florian
|
3e9baa3f47
* check also register type in FindRegalloc
|
13 ani în urmă |
florian
|
6e62fbc3d2
* more consistent updates of used registers
|
13 ani în urmă |
florian
|
07e26cfb12
+ TUsedRegs.Update parameter IgnoreNewAllocs so new allocs of registers can be ignored during update
|
13 ani în urmă |
Jonas Maebe
|
d472a6d5d0
* changed tregset into tcpuregisterset so it's faster and uses less memory
|
13 ani în urmă |
florian
|
72746e635d
* optimize TAOptObj.UpdateUsedRegs to avoid multiple passes through the asmlist
|
13 ani în urmă |
florian
|
17dd362a5a
* white space
|
13 ani în urmă |
florian
|
2402e8e504
* fixes FindRegAlloc
|
13 ani în urmă |
florian
|
748694a325
* fixes some issues with reg. allocation information
|
13 ani în urmă |
Jonas Maebe
|
7742dc0006
* don't remove ait_markers between unconditional jumps and the next label,
|
13 ani în urmă |
florian
|
3c33bf4e6d
* completed framework for register usage tracking
|
13 ani în urmă |
florian
|
2a6a4831ea
* basics for generic register usage information
|
13 ani în urmă |
florian
|
39ab9eceba
* fix OpsEqual
|
13 ani în urmă |
florian
|
2f5ce095ce
* RefsHaveIndexReg -> cpurefshaveindexreg
|
13 ani în urmă |