J. Gareth "Curious Kit" Moreton
|
5536810075
|
* x86: Fixed bug where "aoc_ForceNewIteration" wouldn't update the registers properly in some circumstances
|
2025-03-02 14:00:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
8520dabebb
|
* x86: New RET/lbl/RET optimisation
|
2024-10-27 08:17:10 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
11b341cc97
|
* x86: Added new OptPass1CMOVcc peephole optimisation routine to dust up min/max code
|
2024-03-26 14:18:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
a7fe49f38f
|
* x86: CMOVcc/Jcc pairs are now changed to MOV/Jcc if the register is not used if the jump doesn't branch
|
2024-03-10 21:09:59 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
62495c964a
|
* x86: New "aoc_DoPass2JccOpts" option to catch branch and
STC/CLC optimisations that only manifest in Pass 2
|
2024-02-11 15:05:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
3e06242fd8
|
* x86: New "STC/CLC; MOV" peephole optimisation
|
2024-02-11 15:05:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b514e979bd
|
* Fixed issue where OptPass2CMP and OptPass2TEST didn't drop out on labels etc.
|
2024-01-27 19:00:50 +00:00 |
|
florian
|
c4fc5fc916
|
* disable OptPass2Test and OptPass2CMP for now as it seems to result in buggy code
|
2024-01-23 22:11:59 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
63879e74cd
|
* x86: Additional TEST/CMP optimisations to optimise CMOV blocks
that aren't optimal due to register pressure
|
2024-01-07 14:29:42 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
47825610b8
|
* Pass 2 can now be run multiple times when
under -O3 and above.
|
2023-11-05 10:03:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b8933dd267
|
* x86: Some refactoring to use aoc_ForceNewIteration instead of manually advancing p
|
2023-03-04 18:40:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
6757bf3832
|
* x86: New SHR-based optimisations
|
2022-09-16 16:57:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
de650dea55
|
* x86: Fixed minor logic bug in aoc_ForceNewIteration check where UpdateUsedRegs was called at the wrong time.
|
2022-07-27 16:26:07 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
9432a550e1
|
* x86: Bug fix where aoc_ForceNewIteration was
checked in the wrong pass.
|
2022-07-23 12:58:20 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
627fb9a25b
|
* x86: New jump/label tracking in CrossJump optimisations
|
2022-04-24 16:42:35 +00:00 |
|
florian
|
4808ed63e3
|
* use MOVDQA instead of MOVQ in spilling_create_store
* call OptPass1_V_MOVAP for MOVDQA
|
2022-04-19 22:35:02 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
72661fd5c1
|
Added missing MOVSXD check to PostPeepHoleOptsCpu
|
2021-12-09 02:15:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b58fdc3e58
|
Improved ADD and SUB optimisations for LEA instructions
|
2021-10-31 15:44:00 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
fd28cc0db0
|
Better handling of zeroing upper parts of registers
Better handling of zeroing upper parts of registers
|
2021-10-16 14:42:19 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
674ed4069a
|
Expanded MM block move to include YMM registers under AVX
|
2021-10-16 14:17:41 +02:00 |
|
florian
|
ec40db3da7
|
+ (V)Cvtss2CvtSd(V)Cvtsd2ss2Nop optimization, resolves #39360
|
2021-10-06 21:57:24 +02:00 |
|
florian
|
c67d35b8cc
|
* patch by J. Gareth Moreton: x86: Minor bitwise optimisations, resolves #39299
git-svn-id: trunk@49614 -
|
2021-07-16 21:47:36 +00:00 |
|
florian
|
7d6b01bfc4
|
+ SHXXMov2SHXX optimization
git-svn-id: trunk@49579 -
|
2021-07-05 21:07:46 +00:00 |
|
florian
|
bae583118a
|
* patch by J. Gareth Moreton: x86 JccMovJmpMov2MovSetcc improvement, resolves #38761
git-svn-id: trunk@49402 -
|
2021-05-26 21:03:56 +00:00 |
|
florian
|
5726428dcc
|
* patch by J. Gareth Moreton: Additional SETcc optimisations, resolves #38767
git-svn-id: trunk@49386 -
|
2021-05-21 20:36:15 +00:00 |
|
florian
|
578424cf51
|
* patch by J. Gareth Moreton: TEST chain shortcutting, resolves #38908
git-svn-id: trunk@49385 -
|
2021-05-20 20:45:38 +00:00 |
|
florian
|
4e9b42344e
|
+ AddLea2Lea optimization
* improved LeaLea2Lea
git-svn-id: trunk@48116 -
|
2021-01-08 22:22:56 +00:00 |
|
florian
|
28efcfba65
|
+ patch by J. Gareth Moreton: Advanced MOVZX optimisations, resolves #38294
git-svn-id: trunk@48086 -
|
2021-01-05 15:15:41 +00:00 |
|
florian
|
2a990b8167
|
+ patch by J. Gareth Moreton: some new x86 assembler optimizations, resolves #38130
git-svn-id: trunk@47824 -
|
2020-12-20 18:05:43 +00:00 |
|
florian
|
b90ec52a0e
|
* x86: apply VOpVmov2VOp optimization to vmins*/vmaxs*
git-svn-id: trunk@47768 -
|
2020-12-13 09:52:45 +00:00 |
|
florian
|
78244d89dc
|
* use VPXORD in avx-512 mode as VPXOR does not work for the upper 16 registers
git-svn-id: trunk@47368 -
|
2020-11-09 21:21:36 +00:00 |
|
florian
|
8e62bf649e
|
* load 0.0 by (V)XORPS/D instead of (V)PXOR in mm registers
git-svn-id: trunk@47073 -
|
2020-10-10 13:23:35 +00:00 |
|
florian
|
1fb7603f61
|
* x86: ImulMov2Imul optimization
* x86: apply OptPass1VOP also to vsqrts*
git-svn-id: trunk@46955 -
|
2020-09-25 20:06:27 +00:00 |
|
florian
|
afb68dbcf3
|
* factored out OptPass1VPXor
git-svn-id: trunk@45487 -
|
2020-05-24 17:52:07 +00:00 |
|
florian
|
809fb83334
|
* adapt optimizer to handle push/pop for stack alignment
* adapt test
git-svn-id: trunk@45477 -
|
2020-05-23 17:50:14 +00:00 |
|
florian
|
9b54588d75
|
+ PXorPXor2PXor optimization
git-svn-id: trunk@45430 -
|
2020-05-18 21:28:45 +00:00 |
|
florian
|
892454ff17
|
* patch by J. Gareth Moreton: optimize MOVSXD as well, resolves #36700
git-svn-id: trunk@44185 -
|
2020-02-15 20:53:40 +00:00 |
|
florian
|
993144b91b
|
* patch by J. Gareth Moreton: x86 SUB and LEA optimisations, resolves #36622
git-svn-id: trunk@44030 -
|
2020-01-24 21:10:17 +00:00 |
|
florian
|
16152cf948
|
* patch by J. Gareth Moreton: get rid of another pass through the assembler list by integrating OptReferences
into the post optimizer pass
git-svn-id: trunk@44001 -
|
2020-01-19 20:11:05 +00:00 |
|
florian
|
124c64152d
|
* patch by J. Gareth Moreton: EAX -> EDX:EAX sign extension shortcuts, and MOVSX shortcuts for AX register, part 2 of #36551
git-svn-id: trunk@43918 -
|
2020-01-12 09:20:01 +00:00 |
|
florian
|
d444f750f9
|
* factored out TX86AsmOptimizer.OptPass1Cmp
* fixed it
* activated it for x86-64
git-svn-id: trunk@43574 -
|
2019-11-24 16:33:50 +00:00 |
|
florian
|
20a47afe13
|
* more aggressive LeaCallLeaRet2Jmp
git-svn-id: trunk@43373 -
|
2019-11-02 22:37:31 +00:00 |
|
florian
|
3487c34ed9
|
* unified TX86AsmOptimizer.OptPass1MOVAP and TX86AsmOptimizer.OptPass1VMOVAP
git-svn-id: trunk@43370 -
|
2019-11-02 18:48:23 +00:00 |
|
Jonas Maebe
|
281b3ad276
|
* fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit
git-svn-id: trunk@42046 -
|
2019-05-12 14:29:03 +00:00 |
|
florian
|
c7bb028d35
|
* factored out OptPass1FLD, used bx x86-64 now as well
- removed unused function
git-svn-id: trunk@41061 -
|
2019-01-24 20:10:29 +00:00 |
|
florian
|
24f6cc0da5
|
* factored out OptPass1FSTP, used by x86-64 now as well
git-svn-id: trunk@41059 -
|
2019-01-24 19:38:32 +00:00 |
|
florian
|
59d5d6ec95
|
+ factored out TX86AsmOptimizer.PrePeepholeOptIMUL, used now by x86-64 and i386
* generalized and simplified the code
git-svn-id: trunk@40162 -
|
2018-11-01 20:49:20 +00:00 |
|
florian
|
78943ea843
|
+ patch by J. Gareth Moreton: x86 optimisations for Jcc and SETcc, resolves #33899
* optimization also added for i386
git-svn-id: trunk@39307 -
|
2018-06-25 20:40:05 +00:00 |
|
florian
|
9b18e39c81
|
* enable Lea2AddBase and Lea2AddIndex in TX86AsmOptimizer.PostPeepholeOptLea as we have flag tracking now
* some flag allocations fixed
git-svn-id: trunk@38501 -
|
2018-03-11 20:30:09 +00:00 |
|
florian
|
5fbecc5501
|
+ use TX86AsmOptimizer.OptPass1SHLSAL on x86-64
git-svn-id: trunk@38499 -
|
2018-03-11 14:35:22 +00:00 |
|