ir/TODO

45 lines
1.6 KiB
Plaintext
Raw Normal View History

- va_arg nodes
- BSTART, BEND nodes (to free data allocated by ALLOCA)
- Full support for function prototypes ???
(now we may only set "fastcall" calling convention for constants or for variables through BITCAST)
- VLOAD, VSTORE -> SSA
? reassociation folding rules
- folding engine improvement (one rule for few patterns)
2022-05-19 21:12:20 +02:00
- irreducable loops detection/support
- range inference and PI node
- SCCP edge cases (remove MERGE with PHIs)
- Folding after SCCP (see combo4.ir)
2022-08-23 18:00:47 +02:00
- Extend SCCP to remove dead LOADs
? instruction selection
2022-05-23 18:34:09 +02:00
- xor, btsl=INCL, btrl=EXCL, btl=IN, bsr
- MOVZX to avoid a SHIFT and AND instruction
2022-04-22 12:31:28 +02:00
- BURS ???
? register allocation
- hints and low priority registers (prevent allocating registers that are used as hints
2022-05-26 23:11:31 +02: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 10:02:39 +02:00
- spill slot coalescing
2022-05-26 20:19:42 +02:00
- optimisation of spill code placement (BB local or through resolution)
2022-05-19 10:02:39 +02:00
- separate INT and FP allocation phases (for performance)
2022-09-28 13:59:16 +02:00
- respect multi-ENTRY code (Zend/tests/bug72598.phpt)
2022-09-28 20:58:38 +02:00
- proper live ranges for complex codegen rules (Zend/tests/match/042.phpt [jit=1254/ZTS/32])
? code generation
2022-05-20 12:09:41 +02:00
- COND
- TAILCALL with stack arguments (tests/x86/tailcall_001.itr)
2022-05-26 15:34:01 +02:00
- 32-bit x86 back-end 64-bit integers support
2022-05-26 20:19:42 +02:00
(add_009.irt, conv_001.irt, conv_002.irt, conv_004.irt, conv_010.irt, sub_009.irt)
2022-05-19 21:12:20 +02:00
- binary code emission without DynAsm ???
- modules (functions, data objecs, import, export, prototypes, forward declarations, memory segments, ref data, expr data)
2022-05-19 21:12:20 +02:00
- C front-end
- interpreter
- alias analyzes
- PHP support