[all-commits] [llvm/llvm-project] 035e64: [VectorCombine] eraseInstruction - ensure we reatt...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Thu Jan 2 11:11:04 PST 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 035e64c0ec02b237a266ebc672718037fdd53eb2
https://github.com/llvm/llvm-project/commit/035e64c0ec02b237a266ebc672718037fdd53eb2
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-01-02 (Thu, 02 Jan 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/X86/concat-boolmasks.ll
Log Message:
-----------
[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
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list