[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