Pseudos are untyped. It's usually OK because their type can nevertheless be retrieved in a simple way. But it also complicates things and worse in some cases the type is completely lost. Tell a bit more about it in the TODO file. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- Documentation/TODO.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/TODO.md b/Documentation/TODO.md index 3f00bb1104d1..bb25c714a212 100644 --- a/Documentation/TODO.md +++ b/Documentation/TODO.md @@ -56,6 +56,15 @@ Optimization IR -- +* pseudos are untyped, it's usually OK but often it complicates things: + - PSEUDO_REGs are defined by instructions and their type is normally + retrievable via this defining instruction but in some case they're not: + for example, pseudos defined by ASM output. + - PSEUDO_ARGs are considered as defined by OP_ENTRY and are used like + for liveness trackability but their type can't simply be retrieved via + this instruction like PSEUDO_REGs are (with ->def->type). + - PSEUDO_VALs are completely typeless. + Maybe a few bits should be used to store some kind of low-level type. * OP_SET should return a bool, always * add IR instructions for va_arg() & friends * add a possibility to import of file in "IR assembly" -- 2.31.1