[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