[PATCH] [OPENMP] llvm.loop.vectorize.enable metadata are lost after critical edge splitting

Zinovy Nis zinovy.nis at gmail.com
Tue Sep 30 05:57:31 PDT 2014


Hi chandlerc, atrick,

Critical edge splitting called by GVN and Loop Rotation leads to losing of ```llvm.loop.vectorize.enable``` metadata for loops as critical edge splitting replaces a branch, corresponding to the loop latch, with a new one. 

My patch clones loop latch metadata to a new latch branch thus fixing the issue.

I also had to add LoopInfo analysis for GVN, as it's needed for latch metadata cloning.

http://reviews.llvm.org/D5539

Files:
  lib/Transforms/Scalar/GVN.cpp
  lib/Transforms/Utils/BreakCriticalEdges.cpp
  test/Transforms/LoopVectorize/vect.omp.persistence.gvn.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5539.14216.patch
Type: text/x-patch
Size: 4513 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140930/ae5cdc58/attachment.bin>


More information about the llvm-commits mailing list