[PATCH] reenable gep merging in some constrainted cases
Wei Mi
wmi at google.com
Tue May 19 14:49:03 PDT 2015
Hi qcolombet, hfinkel,
In https://llvm.org/bugs/show_bug.cgi?id=23580, we saw a testcase for which loop vectorizer cannot generate wide load because it cannot recognize the load to be inter-interation consecutive without gep merging. That testcase showed the usage of gep merging in analysis besides basicaa.
To make the consecutive load analysis more effective, but still control the negative side effect of gep merging, the patch allows the source gep to be merged with the target gep if 1. the source gep only has one use and 2. both geps are in the same BB. This should cover the most common cases.
spec2000 and internal performance testing show no regression.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D9865
Files:
lib/Transforms/InstCombine/InstructionCombining.cpp
test/Transforms/InstCombine/gep-merge1.ll
test/Transforms/InstCombine/getelementptr.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9865.26096.patch
Type: text/x-patch
Size: 10341 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150519/0348e155/attachment.bin>
More information about the llvm-commits
mailing list