diff options
author | Justin Lebar <jlebar@google.com> | 2016-07-27 23:06:00 +0000 |
---|---|---|
committer | Justin Lebar <jlebar@google.com> | 2016-07-27 23:06:00 +0000 |
commit | 37f4e0e096df8497c5b55d91585c1b7d98954fe2 (patch) | |
tree | a1b0eb17c12c87f7e947c6bbd12cccdb160a3b41 /llvm/lib/IR/Function.cpp | |
parent | 18286cfb7445b12c8d0bab4505bd745a9c9cee60 (diff) | |
download | bcm5719-llvm-37f4e0e096df8497c5b55d91585c1b7d98954fe2.tar.gz bcm5719-llvm-37f4e0e096df8497c5b55d91585c1b7d98954fe2.zip |
[LSV] Use Instruction*s rather than Value*s where possible.
Summary:
Given the crash in D22878, this patch converts the load/store vectorizer
to use explicit Instruction*s wherever possible. This is an overall
simplification and should be an improvement in safety, as we have fewer
naked cast<>s, and now where we use Value*, we really mean something
different from Instruction*.
This patch also gets rid of some cast<>s around Value*s returned by
Builder. Given that Builder constant-folds everything, we can't assume
much about what we get out of it.
One downside of this patch is that we have to copy our chain before
calling propagateMetadata. But I don't think this is a big deal, as our
chains are very small (usually 2 or 4 elems).
Reviewers: asbirlea
Subscribers: mzolotukhin, llvm-commits, arsenm
Differential Revision: https://reviews.llvm.org/D22887
llvm-svn: 276938
Diffstat (limited to 'llvm/lib/IR/Function.cpp')
0 files changed, 0 insertions, 0 deletions