diff options
| author | Philip Reames <listmail@philipreames.com> | 2014-10-21 21:00:03 +0000 |
|---|---|---|
| committer | Philip Reames <listmail@philipreames.com> | 2014-10-21 21:00:03 +0000 |
| commit | b2d3f035e2ad90890b80cd45348adf4daec20e19 (patch) | |
| tree | 4cd88fcf541457576b4923f7d544a558694bcb46 /llvm/lib | |
| parent | 0ca58b33cf2888443688f3fcdaada2ddd2a9b944 (diff) | |
| download | bcm5719-llvm-b2d3f035e2ad90890b80cd45348adf4daec20e19.tar.gz bcm5719-llvm-b2d3f035e2ad90890b80cd45348adf4daec20e19.zip | |
Preserve 'nonnull' when changing type of the load.
When changing the type of a load in Chandler's recent InstCombine changes, we can preserve the new 'nonnull' metadata.
I considered adding an assert since 'nonnull' is only valid on pointer types, but casting a pointer to a non-pointer would involve more than a bitcast anyways. If someone extends this transform to handle more than bitcasts, the verifier will report the malformed IR, so a separate assertion isn't needed. Also, the fpmath flags would have the same problem.
llvm-svn: 220324
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp index 95ca1a6ff7a..c0df914cb66 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp @@ -331,6 +331,7 @@ static LoadInst *combineLoadToNewType(InstCombiner &IC, LoadInst &LI, Type *NewT case LLVMContext::MD_noalias: case LLVMContext::MD_nontemporal: case LLVMContext::MD_mem_parallel_loop_access: + case LLVMContext::MD_nonnull: // All of these directly apply. NewLoad->setMetadata(ID, N); break; |

