aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ReachingDefAnalysis.cpp
diff options
context:
space:
mode:
authorAlex Bradbury <asb@igalia.com>2025-02-02 18:05:13 +0000
committerAlex Bradbury <asb@igalia.com>2025-02-02 18:05:13 +0000
commit52c116218b61c088ac77f26c7b57347a5f54224d (patch)
treee8a2c1231e67553062af4b443b437482c49572b1 /llvm/lib/CodeGen/ReachingDefAnalysis.cpp
parenta5e969a82b6ec9e799235897973f83ae4f1e4245 (diff)
downloadllvm-52c116218b61c088ac77f26c7b57347a5f54224d.zip
llvm-52c116218b61c088ac77f26c7b57347a5f54224d.tar.gz
llvm-52c116218b61c088ac77f26c7b57347a5f54224d.tar.bz2
[RISCV][VLOPT] Clear DemandedVLs for each invocation of runOnMachineFunction
I was running into failed assertions of `isCandidate(UserMI)` in `getMinimumVLForUser`, but only occurring with `-enable-machine-outliner=never`. I believe this is a red herring, and it just so happens the memory allocation pattern on my machine exposed the bug with that flag. DemandedVLs is never cleared, which means it accumulates more MachineInstr pointer keys over time, and it's possible that when e.g. running on function 'b', a MachineInstr pointer points to the same memory location used for a candidate in 'a'. This causes the assertion to fail. Comment left on #124530 with more information.
Diffstat (limited to 'llvm/lib/CodeGen/ReachingDefAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions