[PATCH] D16960: [FIX] Associate access relations with an AccessId

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 7 06:15:49 PST 2016


jdoerfert created this revision.
jdoerfert added reviewers: grosser, Meinersbur.
jdoerfert added a subscriber: Polly.

  The AccessId is a helper class that allows to associate both,
  ScopArrayInfo objets as well as a specific MemoryAccess with an access
  relations. In general all access to the same array need the same
  associated isl_id. Thus, it cannot be used to identify a specific
  MemoryAccess but only the ScopArrayInfo object. However, When the
  access and the array have different types, we have to (1) correct
  accesses generated by the IslExprBuilder or (2) annotate the access
  relation with the specific MemoryAccess which allows to use the
  correct type in the first place. This patch implements the latter
  approach by annotating the access relation with an AccessId that can
  hold a MemoryAccess or a ScopArrayInfo object. In the IslExprBuilder
  we check which one is present and build the most specific access we
  can. This also allows to remove the alignment and type correction that
  was implemented using the first scheme (namely, correct code later).

http://reviews.llvm.org/D16960

Files:
  include/polly/ScopInfo.h
  lib/Analysis/ScopInfo.cpp
  lib/CodeGen/IslExprBuilder.cpp
  lib/CodeGen/IslNodeBuilder.cpp
  test/Isl/CodeGen/MemAccess/codegen_address_space.ll
  test/Isl/CodeGen/MemAccess/different_types.ll
  test/Isl/CodeGen/MemAccess/multiple_types.ll
  test/Isl/CodeGen/aliasing_different_base_and_access_type.ll
  test/Isl/CodeGen/aliasing_struct_element.ll
  test/Isl/CodeGen/invariant_load_different_sized_types.ll
  test/Isl/CodeGen/multiple-types-invariant-load.ll
  test/ScopInfo/invariant_load_access_classes_different_base_type_same_pointer.ll
  test/ScopInfo/invariant_load_access_classes_different_base_type_same_pointer_escaping.ll
  test/ScopInfo/multiple-types-inv-load.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16960.47127.patch
Type: text/x-patch
Size: 22714 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160207/dd460c68/attachment.bin>


More information about the llvm-commits mailing list