[PATCH] D18738: Add new !unconditionally_dereferenceable load instruction metadata
whitequark via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 3 03:38:35 PDT 2016
whitequark created this revision.
whitequark added a subscriber: llvm-commits.
whitequark set the repository for this revision to rL LLVM.
!unconditionally_dereferenceable is similar to !dereferenceable,
but is intended for frontends for memory-safe languages where
loads can be freely moved around without impacting their
dereferenceability.
!dereferenceable used to have the same semantics as the newly
introduced !unconditionally_dereferenceable before LLVM 3.8;
it was made more conservative in r252604.
Notes:
* The dereferenceable argument attribute is close to
!unconditionally_dereferenceable in semantics than !dereferenceable,
should we update LangRef?
* There's no !unconditionally_dereferenceable_or_null; I'm not sure if there
should be. It's not useful for my frontend and I'm not sure if it's useful for
LICM either. Also, this combinatory explosion worries me.
Repository:
rL LLVM
http://reviews.llvm.org/D18738
Files:
docs/LangRef.rst
include/llvm/IR/LLVMContext.h
lib/Analysis/ValueTracking.cpp
lib/IR/LLVMContext.cpp
lib/IR/Verifier.cpp
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
lib/Transforms/InstCombine/InstCombinePHI.cpp
lib/Transforms/Scalar/LICM.cpp
lib/Transforms/Utils/Local.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
test/Transforms/InstCombine/load-combine-metadata-5.ll
test/Transforms/InstCombine/loadstore-metadata.ll
test/Transforms/InstCombine/phi-load-metadata-4.ll
test/Transforms/LICM/hoist-nested-deref-load.ll
test/Transforms/SimplifyCFG/preserve-load-metadata-4.ll
test/Verifier/dereferenceable-md.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18738.52494.patch
Type: text/x-patch
Size: 22098 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160403/c0c7230d/attachment.bin>
More information about the llvm-commits
mailing list