summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
diff options
context:
space:
mode:
authorAnna Thomas <anna@azul.com>2017-12-12 14:12:33 +0000
committerAnna Thomas <anna@azul.com>2017-12-12 14:12:33 +0000
commit2dd9835f351be4dbf2236669ac85fe34ecad6e43 (patch)
tree7e3728121dc2ef446767e1062d9b978372dc9c12 /clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
parent11ef531b5cc7c94765a07ea247e438b6a48b9c31 (diff)
downloadbcm5719-llvm-2dd9835f351be4dbf2236669ac85fe34ecad6e43.tar.gz
bcm5719-llvm-2dd9835f351be4dbf2236669ac85fe34ecad6e43.zip
[InstComineLoadStoreAlloca] Optimize stores to GEP off null base
Summary: Currently, in InstCombineLoadStoreAlloca, we have simplification rules for the following cases: 1. load off a null 2. load off a GEP with null base 3. store to a null This patch adds support for the fourth case which is store into a GEP with null base. Since this is UB as well (and directly analogous to the load off a GEP with null base), we can substitute the stored val with undef in instcombine, so that SimplifyCFG can optimize this code into unreachable code. Note: Right now, simplifyCFG hasn't been taught about optimizing this to unreachable and adding an llvm.trap (this is already done for the above 3 cases). Reviewers: majnemer, hfinkel, sanjoy, davide Reviewed by: sanjoy, davide Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41026 llvm-svn: 320480
Diffstat (limited to 'clang/lib/CodeGen/CGRecordLayoutBuilder.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud