[PATCH] Exploit dereferenceable_or_null attribute in LICM pass
Artur Pilipenko
apilipenko at azulsystems.com
Fri Apr 24 05:56:29 PDT 2015
Hi hfinkel, reames, sanjoy,
Allow hoisting of loads from values marked with dereferenceable_or_null attribute. For values marked with the attribute perform context-sensitive analysis to determine whether it's known-non-null or not.
By now context-sensitive non-null analysis is implemented in two different ways: using LazyValueInfo and using dominating conditions. I don't know which one is better, so it's up for discussion.
http://reviews.llvm.org/D9253
Files:
include/llvm/Analysis/LazyValueInfo.h
include/llvm/Analysis/ValueTracking.h
include/llvm/IR/Argument.h
include/llvm/IR/CallSite.h
include/llvm/IR/Function.h
include/llvm/IR/Instructions.h
include/llvm/Transforms/Utils/LoopUtils.h
lib/Analysis/LazyValueInfo.cpp
lib/Analysis/ValueTracking.cpp
lib/IR/AttributeImpl.h
lib/IR/Attributes.cpp
lib/IR/Function.cpp
lib/Transforms/Scalar/LICM.cpp
test/Transforms/LICM/hoist-deref-load.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9253.24384.patch
Type: text/x-patch
Size: 34397 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150424/167b249d/attachment.bin>
More information about the llvm-commits
mailing list