Introduce another level of metadata to distinguish non-aliasing accesses
commit180c0f7034d92d519ba3dfa1c80e27f9200007fa
authorRoman Gareev <gareevroman@gmail.com>
Wed, 22 Mar 2017 14:25:24 +0000 (22 14:25 +0000)
committerRoman Gareev <gareevroman@gmail.com>
Wed, 22 Mar 2017 14:25:24 +0000 (22 14:25 +0000)
treed42333d8f4c0abb05e24ccac618e309b2108a456
parent8abf60a0baf9d9a5b9c855dafcfc58ce8da6fbab
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

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@298510 91177308-0d34-0410-b5e6-96231b3b80d8
include/polly/CodeGen/IRBuilder.h
lib/CodeGen/IRBuilder.cpp
lib/CodeGen/IslNodeBuilder.cpp
lib/Transform/ScheduleOptimizer.cpp
test/ScheduleOptimizer/mat_mul_pattern_data_layout_2.ll
test/ScheduleOptimizer/pattern-matching-based-opts_10.ll [new file with mode: 0644]
test/ScheduleOptimizer/pattern-matching-based-opts_3.ll
test/ScheduleOptimizer/pattern-matching-based-opts_5.ll