[PATCH] D145558: [Assignment Tracking][NFC] Use BitVectors as masks for SmallVectors rather than using DenseMaps
Orlando Cazalet-Hyams via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 8 01:54:34 PST 2023
Orlando created this revision.
Orlando added reviewers: scott.linder, jmorse, StephenTozer.
Orlando added a project: debug-info.
Herald added a subscriber: hiraditya.
Herald added a project: All.
Orlando requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Rather than tracking 3 maps of `{VariableID: SomeInfo}` per block, use a `BitVector` indexed by `VariableID` to mask 3 vectors of `SomeInfo`.
`BlockInfo`s now need to be initialised with a call to `init` which sets the `BitVector` width to the number of partially promoted variables in the function and fills the vectors with Top values.
Prior to this patch, in `joinBlockInfo`, it was necessary to insert Top values into the `Join` result for variables in `A XOR B` after joining the variables in `A AND B`. Now, because the vectors are pre-filled with Top values we need only join the variables `A AND B` and set the `BitVector` of tracked variables to `A OR B`.
https://reviews.llvm.org/D145558
Files:
llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D145558.503263.patch
Type: text/x-patch
Size: 22855 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230308/4856b207/attachment.bin>
More information about the llvm-commits
mailing list