teach GVN to widen integer loads when they are overaligned, when doing an
authorChris Lattner <sabre@nondot.org>
Thu, 28 Apr 2011 07:29:08 +0000 (07:29 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 28 Apr 2011 07:29:08 +0000 (07:29 +0000)
commit4034e14985af013f71f7884fa275415a3be27778
tree1dce84546a8e65b2b9e6e3f2ec863eb41dc15984
parent8f232d307ace42180961856f69541b95b3278295
teach GVN to widen integer loads when they are overaligned, when doing an
wider load would allow elimination of subsequent loads, and when the wider
load is still a native integer type.  This eliminates a ton of loads on
various benchmarks involving struct fields, though it is somewhat hobbled
by clang not being very aggressive about field alignment.

This is yet another step along the way towards resolving PR6627.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130390 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/MemoryDependenceAnalysis.h
lib/Analysis/MemoryDependenceAnalysis.cpp
lib/Transforms/Scalar/GVN.cpp
test/Transforms/GVN/rle.ll