Skip to content

Commit 1e1d3d6

Browse files
committed
[RISCV] Teach RISCVInsertVSETVLI to work without LiveIntervals
At O0 LiveIntervals isn't usually computed, but after moving RISCVInsertVSETVLI to after phi elimination we've added it as a dependency. This removes the dependency on LiveIntervals so O0 builds can stay fast, and also avoids a crash caused by LiveIntervals being run at O0 when I'm not sure if ti was designed to be. The only parts of RISCVInsertVSETVLI that actually use the LiveIntervals analysis are computeInfoForInstr and getInfoForVSETVLI, which lookup val nos for each register AVL use. At O0 we can emulate this by conservatively returning fake but unique val nos, which will give us suboptimal but otherwise correct codegen. We need to make sure that we return the same val no given the same MachineInstr, otherwise computeInfoForInstr/getInforForVSETVLI won't be stable across MachineInstrs and the dataflow analysis will fail to converge. Fixes llvm#93587
1 parent 0d37e5c commit 1e1d3d6

File tree

4 files changed

+153
-75
lines changed

4 files changed

+153
-75
lines changed

0 commit comments

Comments
 (0)