[PATCH] D107580: [VectorCombine] Support AND/UREM indices that require freezing.
Sanjay Patel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 8 07:46:19 PDT 2021
spatel added subscribers: hyeongyukim, aqjune.
spatel added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:779
+/// if a freeze needs to be inserted.
+class ScalarizationResult {
+ enum class StatusTy { Unsafe, Safe, SafeWithFreeze };
----------------
Other than the name, this looks like it could be a generic freeze utility. Should we put it in some header for other potential callers? cc @aqjune @hyeongyukim
================
Comment at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:812
+ if (U.getUser() == &User) {
+ Builder.SetInsertPoint(cast<Instruction>(&User));
+ Value *Frozen = Builder.CreateFreeze(ToFreeze);
----------------
Use `InsertPointGuard` so caller doesn't have to manually reset it.
================
Comment at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:857
+ return ScalarizationResult::unsafe();
+ ;
}
----------------
stray punctuation
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107580/new/
https://reviews.llvm.org/D107580
More information about the llvm-commits
mailing list