[PATCH] D87975: [Attributor][WIP] MaxObjSize Attribute

Atmn Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 19 13:44:44 PDT 2020


atmnpatel created this revision.
Herald added subscribers: llvm-commits, okura, aaron.ballman, kuter, uenoku, dexonsmith, steven_wu, hiraditya.
Herald added a reviewer: uenoku.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: homerdin.
Herald added a project: LLVM.
atmnpatel requested review of this revision.
Herald added a reviewer: sstefan1.
Herald added subscribers: bbn, sstefan1.
Herald added a reviewer: baziotis.

This patch add the definition for a `maxobjsize` attribute that keeps
track of the maximum size of the object corresponding to the pointer
value. This should help with Alias Analysis by using this as an upper
bound and dereferenceable as a lower bound on the object size, and if two
object sizes don't overlap, they cannot alias.

If a pointer is captured, we don't try to determine the `maxobjsize`,
because it could change.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D87975

Files:
  llvm/docs/LangRef.rst
  llvm/include/llvm/Bitcode/LLVMBitCodes.h
  llvm/include/llvm/IR/Argument.h
  llvm/include/llvm/IR/Attributes.h
  llvm/include/llvm/IR/Attributes.td
  llvm/include/llvm/IR/Function.h
  llvm/include/llvm/IR/InstrTypes.h
  llvm/include/llvm/IR/Value.h
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/lib/AsmParser/LLLexer.cpp
  llvm/lib/AsmParser/LLParser.cpp
  llvm/lib/AsmParser/LLToken.h
  llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  llvm/lib/IR/AttributeImpl.h
  llvm/lib/IR/Attributes.cpp
  llvm/lib/IR/Function.cpp
  llvm/lib/IR/Value.cpp
  llvm/lib/Transforms/IPO/Attributor.cpp
  llvm/lib/Transforms/IPO/AttributorAttributes.cpp
  llvm/lib/Transforms/Utils/CodeExtractor.cpp
  llvm/test/Bitcode/attributes.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/crash.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/naked_functions.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/reserve-tbaa.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/tail.ll
  llvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
  llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
  llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
  llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
  llvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
  llvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
  llvm/test/Transforms/Attributor/align.ll
  llvm/test/Transforms/Attributor/callbacks.ll
  llvm/test/Transforms/Attributor/depgraph.ll
  llvm/test/Transforms/Attributor/internal-noalias.ll
  llvm/test/Transforms/Attributor/liveness.ll
  llvm/test/Transforms/Attributor/memory_locations.ll
  llvm/test/Transforms/Attributor/misc.ll
  llvm/test/Transforms/Attributor/misc_crash.ll
  llvm/test/Transforms/Attributor/noalias.ll
  llvm/test/Transforms/Attributor/noreturn_async.ll
  llvm/test/Transforms/Attributor/noreturn_sync.ll
  llvm/test/Transforms/Attributor/nosync.ll
  llvm/test/Transforms/Attributor/noundef.ll
  llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
  llvm/test/Transforms/Attributor/readattrs.ll
  llvm/test/Transforms/Attributor/undefined_behavior.ll
  llvm/test/Transforms/OpenMP/parallel_deletion.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D87975.292988.patch
Type: text/x-patch
Size: 301550 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200919/6d903a24/attachment-0001.bin>


More information about the llvm-commits mailing list