ir/TODO

47 lines
1.3 KiB
Plaintext
Raw Normal View History

- va_arg nodes
- BSTART, BEND nodes (to free data allocated by ALLOCA)
- ENTRY node for multy-entry units
- guards
- variable name binding
- 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
- range inference and PI node
- SCCP edge cases
- Folding after SCCP (see combo4.ir)
? instruction selection
2022-05-23 19:34:09 +03:00
- xor, btsl=INCL, btrl=EXCL, btl=IN, bsr
- MOVZX to avoid a SHIFT and AND instruction
2022-04-21 10:20:41 +03:00
- Use CMOVcc to remove branches
2022-04-22 13:31:28 +03:00
- BURS ???
? register allocation
2022-05-19 11:02:39 +03:00
- hints and low priority registers (prevent allocating registers that are used as hints in the following intersecting intervals)
- spill slot coalescing
- optimal spill code placement through resolution
- splinting (spill only at cold path if possible)
- separate INT and FP allocation phases (for performance)
? code generation
2022-05-20 13:09:41 +03:00
- COND
2022-05-19 22:12:20 +03:00
- 32-bit x86 back-end
2022-05-25 22:00:18 +03:00
- ABS_INT
- RETURN_FP
2022-05-19 22:12:20 +03:00
- binary code emission without DynAsm ???
? disassembler
- .rodata section and relative data labels
- 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
- interpreter
- alias analyzes
- PHP support