HomePhabricator

Reapply "[LV] Vectorize (some) early and multiple exit loops"" w/fix for builder
Concern Raised4b33b2387787

Authored by reames on Dec 28 2020, 10:11 AM.

Description

Reapply "[LV] Vectorize (some) early and multiple exit loops"" w/fix for builder

This reverts commit 4ffcd4fe9ac2ee948948f732baa16663eb63f1c7 thus restoring e4df6a40dad.

The only change from the original patch is to add "llvm::" before the call to empty(iterator_range). This is a speculative fix for the ambiguity reported on some builders.

Event Timeline

markus raised a concern with this commit.Jan 12 2021, 2:55 AM
markus added a subscriber: markus.

This commit seem to cause

$ opt -verify -loop-vectorize bbi-51639.ll -S
opt: /repo/elavkje/llvm-project-upstream/llvm/lib/Transforms/Utils/LoopVersioning.cpp:47: llvm::LoopVersioning::LoopVersioning(const llvm::LoopAccessInfo &, ArrayRef<llvm::RuntimePointerCheck>, llvm::Loop *, llvm::LoopInfo *, llvm::DominatorTree *, llv
m::ScalarEvolution *): Assertion `L->getExitBlock() && "No single exit block"' failed.

This commit now has outstanding concerns.Jan 12 2021, 2:55 AM

This commit seem to cause

$ opt -verify -loop-vectorize bbi-51639.ll -S
opt: /repo/elavkje/llvm-project-upstream/llvm/lib/Transforms/Utils/LoopVersioning.cpp:47: llvm::LoopVersioning::LoopVersioning(const llvm::LoopAccessInfo &, ArrayRef<llvm::RuntimePointerCheck>, llvm::Loop *, llvm::LoopInfo *, llvm::DominatorTree *, llv
m::ScalarEvolution *): Assertion `L->getExitBlock() && "No single exit block"' failed.

Fixed in commit caafdf07b. This was a spurious assert.