2022-04-08 16:40:28 +03:00
|
|
|
- va_arg nodes
|
|
|
|
- BSTART, BEND nodes (to free data allocated by ALLOCA)
|
|
|
|
|
|
|
|
- VLOAD, VSTORE -> SSA
|
|
|
|
|
|
|
|
? reassociation folding rules
|
|
|
|
- folding engine improvement (one rule for few patterns)
|
|
|
|
|
2022-05-19 22:12:20 +03:00
|
|
|
- irreducable loops detection/support
|
2022-04-08 16:40:28 +03:00
|
|
|
|
|
|
|
- range inference and PI node
|
|
|
|
- SCCP edge cases
|
2022-04-08 19:02:11 +03:00
|
|
|
- Folding after SCCP (see combo4.ir)
|
2022-08-23 19:00:47 +03:00
|
|
|
- Extend SCCP to remove dead LOADs
|
2022-04-08 16:40:28 +03:00
|
|
|
|
|
|
|
? instruction selection
|
2022-05-23 19:34:09 +03:00
|
|
|
- xor, btsl=INCL, btrl=EXCL, btl=IN, bsr
|
2022-04-08 16:40:28 +03:00
|
|
|
- MOVZX to avoid a SHIFT and AND instruction
|
2022-04-22 13:31:28 +03:00
|
|
|
- BURS ???
|
2022-04-08 16:40:28 +03:00
|
|
|
|
|
|
|
? register allocation
|
2022-05-26 18:08:39 +03:00
|
|
|
- hints and low priority registers (prevent allocating registers that are used as hints
|
2022-05-27 00:11:31 +03:00
|
|
|
tests/x86/ra_015.irt, tests/x86/combo_004.irt tests/x86/min_005.ir, tests/x86/min_006.irt, tests/x86/abs_001.irt)
|
2022-05-19 11:02:39 +03:00
|
|
|
- spill slot coalescing
|
2022-05-26 21:19:42 +03:00
|
|
|
- optimisation of spill code placement (BB local or through resolution)
|
2022-05-19 11:02:39 +03:00
|
|
|
- separate INT and FP allocation phases (for performance)
|
2022-09-28 14:59:16 +03:00
|
|
|
- respect multi-ENTRY code (Zend/tests/bug72598.phpt)
|
2022-04-08 16:40:28 +03:00
|
|
|
|
|
|
|
? code generation
|
2022-05-20 13:09:41 +03:00
|
|
|
- COND
|
2022-05-26 18:08:39 +03:00
|
|
|
- TAILCALL with stack arguments (tests/x86/tailcall_001.itr)
|
2022-05-26 16:34:01 +03:00
|
|
|
- 32-bit x86 back-end 64-bit integers support
|
2022-05-26 21:19:42 +03:00
|
|
|
(add_009.irt, conv_001.irt, conv_002.irt, conv_004.irt, conv_010.irt, sub_009.irt)
|
2022-05-19 22:12:20 +03:00
|
|
|
- binary code emission without DynAsm ???
|
2022-04-08 16:40:28 +03:00
|
|
|
|
|
|
|
- modules (functions, data objecs, import, export, prototypes, forward declarations, memory segments, ref data, expr data)
|
2022-05-19 22:12:20 +03:00
|
|
|
- C front-end
|
2022-04-08 16:40:28 +03:00
|
|
|
- interpreter
|
|
|
|
- alias analyzes
|
|
|
|
|
|
|
|
- PHP support
|