2022-04-08 15:40:28 +02:00
|
|
|
- va_arg nodes
|
2022-12-07 11:09:00 +01:00
|
|
|
? BSTART, BEND nodes (to free data allocated by ALLOCA) (now it's possible to do this through AFREE)
|
2022-09-28 19:48:35 +02:00
|
|
|
- Full support for function prototypes ???
|
|
|
|
(now we may only set "fastcall" calling convention for constants or for variables through BITCAST)
|
2022-04-08 15:40:28 +02:00
|
|
|
|
|
|
|
- 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
|
2022-04-08 15:40:28 +02:00
|
|
|
|
2022-11-08 13:39:00 +01:00
|
|
|
- Extend SCCP to support range inference and PI node
|
2023-04-14 09:45:56 +02:00
|
|
|
- See "Eliminating Range Checks using SSA Form" John Gough, Herbert Klaeren
|
|
|
|
- PI nodes may be defined as %dst = BOUND_LOW/HIGH(%ctrl, %src, %low/high_bound)
|
|
|
|
- PI nodes may be inserted after IF and GUARD
|
|
|
|
- PI should not be lifted to BB with PHIs
|
2022-04-08 15:40:28 +02:00
|
|
|
|
|
|
|
? instruction selection
|
2023-04-14 09:45:56 +02:00
|
|
|
- btsl=INCL, btrl=EXCL, btl=IN, bsr
|
2022-04-08 15:40:28 +02:00
|
|
|
- MOVZX to avoid a SHIFT and AND instruction
|
2022-04-22 12:31:28 +02:00
|
|
|
- BURS ???
|
2022-04-08 15:40:28 +02:00
|
|
|
|
|
|
|
? register allocation
|
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)
|
2023-04-14 09:45:56 +02:00
|
|
|
- Try to avoid live-interval construction, see "Efficient Global Register Allocation" Ian Rogers
|
2022-04-08 15:40:28 +02:00
|
|
|
|
|
|
|
? code generation
|
2023-10-13 19:50:23 +02:00
|
|
|
- COND optimization
|
2022-05-26 17:08:39 +02:00
|
|
|
- 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 ???
|
2022-04-08 15:40:28 +02:00
|
|
|
|
2023-10-20 16:44:45 +02:00
|
|
|
? 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
|
2022-04-08 15:40:28 +02:00
|
|
|
- interpreter
|
|
|
|
- alias analyzes
|