[cfe-dev] no -Rpass=loop-vectorize diagnostic in case of loop unrolling or -flto=thin
Alexander Droste via cfe-dev
cfe-dev at lists.llvm.org
Tue Apr 9 23:06:16 PDT 2019
Hi everyone,
when vectorizing loops such as the following (Clang 8, -O3),
void vectorize(const float* a, const float* b, float* __restrict out) {
for(int i = 0; i < 1024; ++i){
out[i] = a[i] + b[i];
}
}
diagnostics triggered by -Rpass=loop-vectorize are not emitted in case ThinLTO
is enabled with -flto=thin. Using -flto=full the vectorization diagnostic is
still outlined.
Another instance in which the loop-vectorize diagnostic does not show up is in
case of loop unrolling, e.g. changing the 1024 to 8.
Looking at these cases with the opt-viewer.py tool, the loop unrolling case
seems no longer outlined as the SLP vectorizer takes over in place of the Loop
Vectorizer which I guess can be confusing from a user perspective when relying
on -Rpass=loop-vectorize. In case of ThinLTO, no vectorization diagnostic shows
up in the opt-viewer.py report.
In particular for the ThinLTO case, is there a way to retain the diagnostic that
vectorization took place?
-Alex
More information about the cfe-dev
mailing list