aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2025-01-02 18:18:55 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2025-01-02 18:19:02 +0000
commit035e64c0ec02b237a266ebc672718037fdd53eb2 (patch)
tree64cb5799a7c478584145936afdc0d05da411d58d /clang/lib/Frontend/CompilerInvocation.cpp
parentdd30aa83aa12e5b2b5e58cb72ec85070f725df34 (diff)
downloadllvm-035e64c0ec02b237a266ebc672718037fdd53eb2.zip
llvm-035e64c0ec02b237a266ebc672718037fdd53eb2.tar.gz
llvm-035e64c0ec02b237a266ebc672718037fdd53eb2.tar.bz2
[VectorCombine] eraseInstruction - ensure we reattempt to fold other users of an erased instruction's operands (REAPPLIED)
As we're reducing the use count of the operands its more likely that they will now fold, as they were previously being prevented by a m_OneUse check, or the cost of retaining the extra instruction had been too high. This is necessary for some upcoming patches, although the only change so far is instruction ordering as it allows some SSE folds of 256/512-bit with 128-bit subvectors to occur earlier in foldShuffleToIdentity as the subvector concats are free. Reapplied with a fix for foldSingleElementStore/scalarizeLoadExtract which were replacing/removing memory operations - we need to ensure that the worklist is populated in the correct order so all users of the old memory operations are erased first, so there are no remaining users of the loads when its time to remove them as well. Pulled out of #120984
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions