[llvm] [DSE] Apply initializes attribute to DSE (PR #107282)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 6 03:07:19 PDT 2024
================
@@ -1147,13 +1262,26 @@ struct DSEState {
return MemoryLocation::getOrNone(I);
}
- std::optional<MemoryLocation> getLocForInst(Instruction *I) {
+ // Returns a list of <MemoryLocation, bool> pairs wrote by I.
+ // The bool means whether the write is from Initializes attr.
+ SmallVector<std::pair<MemoryLocation, bool>, 1>
+ getLocForInst(Instruction *I, bool ConsiderInitializesAttr) {
+ SmallVector<std::pair<MemoryLocation, bool>, 1> Locations;
if (isMemTerminatorInst(I)) {
- if (auto Loc = getLocForTerminator(I)) {
- return Loc->first;
+ if (auto Loc = getLocForTerminator(I))
+ Locations.push_back(std::make_pair(Loc->first, false));
+ return Locations;
+ }
+
+ if (auto Loc = getLocForWrite(I))
+ Locations.push_back(std::make_pair(*Loc, false));
----------------
nikic wrote:
Can we return here or does this need to fall through?
https://github.com/llvm/llvm-project/pull/107282
More information about the llvm-commits
mailing list