With subregister liveness we can detect the case where only parts of a
register are live in, this is expressed as a 32bit lanemask. The current
code only keeps registers in the live-in list and therefore enumerated
all subregisters affected by the lanemask. This turned out to be too
conservative as the subregister may also cover additional parts of the
lanemask which are not live. Expressing a given lanemask by enumerating
a minimum set of subregisters is computationally expensive so the best
solution is to simply change the live-in list to store the lanemasks as
well. This will reduce memory usage for targets using subregister
liveness and slightly increase it for other targets.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM