Introduce another level of metadata to distinguish non-aliasing accesses
authorRoman Gareev <gareevroman@gmail.com>
Wed, 22 Mar 2017 14:25:24 +0000 (14:25 +0000)
committerRoman Gareev <gareevroman@gmail.com>
Wed, 22 Mar 2017 14:25:24 +0000 (14:25 +0000)
commitcdfb57dc469bd7bc807a7d8a92106d0b0d367313
treec6f5321bc70999d11fa2dbf15fa0aca5857b4a53
parented00beba12989eec8496aa9ac732ac1638628c9a
Introduce another level of metadata to distinguish non-aliasing accesses

Introduce another level of alias metadata to distinguish the individual
non-aliasing accesses that have inter iteration alias-free base pointers
marked with "Inter iteration alias-free" mark nodes. It can be used to,
for example, distinguish different stores (loads) produced by unrolling of
the innermost loops and, subsequently, sink (hoist) them by LICM.

Reviewed-by: Tobias Grosser <tobias@grosser.es>
Differential Revision: https://reviews.llvm.org/D30606

llvm-svn: 298510
polly/include/polly/CodeGen/IRBuilder.h
polly/lib/CodeGen/IRBuilder.cpp
polly/lib/CodeGen/IslNodeBuilder.cpp
polly/lib/Transform/ScheduleOptimizer.cpp
polly/test/ScheduleOptimizer/mat_mul_pattern_data_layout_2.ll
polly/test/ScheduleOptimizer/pattern-matching-based-opts_10.ll [new file with mode: 0644]
polly/test/ScheduleOptimizer/pattern-matching-based-opts_3.ll
polly/test/ScheduleOptimizer/pattern-matching-based-opts_5.ll