diff options
author | Anna Thomas <anna@azul.com> | 2017-12-12 14:12:33 +0000 |
---|---|---|
committer | Anna Thomas <anna@azul.com> | 2017-12-12 14:12:33 +0000 |
commit | 2dd9835f351be4dbf2236669ac85fe34ecad6e43 (patch) | |
tree | 7e3728121dc2ef446767e1062d9b978372dc9c12 /llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp | |
parent | 11ef531b5cc7c94765a07ea247e438b6a48b9c31 (diff) | |
download | bcm5719-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 'llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp')
0 files changed, 0 insertions, 0 deletions