From f26bdb539e8acef23e2a0370408521a6458001ee Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sat, 16 May 2020 17:55:18 -0700 Subject: Make Value::getPointerAlignment() return an Align, not a MaybeAlign. If we don't know anything about the alignment of a pointer, Align(1) is still correct: all pointers are at least 1-byte aligned. Included in this patch is a bugfix for an issue discovered during this cleanup: pointers with "dereferenceable" attributes/metadata were assumed to be aligned according to the type of the pointer. This wasn't intentional, as far as I can tell, so Loads.cpp was fixed to stop making this assumption. Frontends may need to be updated. I updated clang's handling of C++ references, and added a release note for this. Differential Revision: https://reviews.llvm.org/D80072 --- polly/test/ScopInfo/invariant_load_dereferenceable.ll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'polly') diff --git a/polly/test/ScopInfo/invariant_load_dereferenceable.ll b/polly/test/ScopInfo/invariant_load_dereferenceable.ll index 420bbfe..dbc56a1 100644 --- a/polly/test/ScopInfo/invariant_load_dereferenceable.ll +++ b/polly/test/ScopInfo/invariant_load_dereferenceable.ll @@ -17,7 +17,7 @@ ; CHECK-NOT: Function: foo_undereferanceable -define void @foo_dereferanceable(double* %A, double* %B, i64* dereferenceable(8) %sizeA_ptr, +define void @foo_dereferanceable(double* %A, double* %B, i64* dereferenceable(8) align 8 %sizeA_ptr, i32 %lb.i, i32 %lb.j, i32 %ub.i, i32 %ub.j) { entry: br label %for.i -- cgit v1.1