Jeppe Johansen
|
8b8f905d46
Merged with trunk, and fixed some errors introduced.
|
%!s(int64=9) %!d(string=hai) anos |
florian
|
cfd49ec708
+ TAOptBase.SuperRegistersEqual
|
%!s(int64=9) %!d(string=hai) anos |
florian
|
3c2dab9878
* i386 peephole assembler uses largely the common peephole optimizer infrastructure, the resulting code is besides a few improvements the same
|
%!s(int64=9) %!d(string=hai) anos |
florian
|
1266491085
o refactored some peephole optimizer code:
|
%!s(int64=9) %!d(string=hai) anos |
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.
|
%!s(int64=9) %!d(string=hai) anos |
yury
|
11a9ff4a43
* Removed unused vars for mipsel compiler.
|
%!s(int64=10) %!d(string=hai) anos |
yury
|
432248cbf1
* Removed lot of unused vars.
|
%!s(int64=10) %!d(string=hai) anos |
Jonas Maebe
|
8c8657e2d5
* base optimiser support for the JVM target
|
%!s(int64=10) %!d(string=hai) anos |
Jeppe Johansen
|
03880c2f74
Added some peephole optimizations, and fixed generic unconditional jump optimizations, for AVR.
|
%!s(int64=10) %!d(string=hai) anos |
florian
|
1114089d25
* IsJumpToLabel checks number of operands
|
%!s(int64=10) %!d(string=hai) anos |
Jonas Maebe
|
620af1732a
* support for AArch64 branch forwarding
|
%!s(int64=10) %!d(string=hai) anos |
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.
|
%!s(int64=10) %!d(string=hai) anos |
Jeppe Johansen
|
92d2df0b82
Fixed a source of bugs in the generic assembly optimizer. Sometimes conditional branches don't have an opposite form.
|
%!s(int64=11) %!d(string=hai) anos |
florian
|
8060d4a3f7
* when updating registers in RegUsedAfterInstruction, new reg. allocs should be ignored
|
%!s(int64=11) %!d(string=hai) anos |
masta
|
81517fdf70
Rerun peephole optimizers on the whole block
|
%!s(int64=11) %!d(string=hai) anos |
florian
|
0eeb3e8d49
* check if the pointer is really assigned when trying to remove unneeded jumps
|
%!s(int64=11) %!d(string=hai) anos |
sergei
|
40239e8bcc
* Elaborating removal of branches with delay slots: ignore reg. deallocations that are inserted by RA between branch and its delay slot instruction.
|
%!s(int64=11) %!d(string=hai) anos |
florian
|
2806947a8f
+ FindRegAllocBackward
|
%!s(int64=12) %!d(string=hai) anos |
sergei
|
1c84c3edbf
* Fixed label optimizer to work with MIPS, and enabled level 1 optimization for MIPS targets.
|
%!s(int64=12) %!d(string=hai) anos |
sergei
|
a4217da7df
* Factored repeating code into separate procedure (IsJumpToLabel)
|
%!s(int64=12) %!d(string=hai) anos |
florian
|
b6a4602989
* ignore alignment entries in FindLabel
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
3e9baa3f47
* check also register type in FindRegalloc
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
6e62fbc3d2
* more consistent updates of used registers
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
07e26cfb12
+ TUsedRegs.Update parameter IgnoreNewAllocs so new allocs of registers can be ignored during update
|
%!s(int64=13) %!d(string=hai) anos |
Jonas Maebe
|
d472a6d5d0
* changed tregset into tcpuregisterset so it's faster and uses less memory
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
72746e635d
* optimize TAOptObj.UpdateUsedRegs to avoid multiple passes through the asmlist
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
17dd362a5a
* white space
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
2402e8e504
* fixes FindRegAlloc
|
%!s(int64=13) %!d(string=hai) anos |
florian
|
748694a325
* fixes some issues with reg. allocation information
|
%!s(int64=13) %!d(string=hai) anos |
Jonas Maebe
|
7742dc0006
* don't remove ait_markers between unconditional jumps and the next label,
|
%!s(int64=13) %!d(string=hai) anos |