Files
llvm-project/polly/test/ScopDetect/non-simple-memory-accesses.ll
Tobias Grosser bf45e74254 ScopDetect: Bail out for non-simple memory accesses
Volatile or atomic memory accesses are currently not supported. Neither did
we think about any special handling needed nor do we support the unknown
instructions the alias set tracker turns them into sometimes. Before this
patch, us not supporting unkown instructions in an alias set caused the
following assertion failures:

Assertion `AG.size() > 1 && "Alias groups should contain at least two accesses"'
failed

llvm-svn: 251234
2015-10-25 13:48:40 +00:00

31 lines
878 B
LLVM

; RUN: opt %loadPolly -polly-detect \
; RUN: -analyze < %s | FileCheck %s
;
; Verify that we do not model atomic memory accesses. We did not reason about
; how to handle them correctly and the Alias Set Tracker models some of them
; only as Unknown Instructions, which we do not know how to handle either.;
;
; CHECK-NOT: Valid
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
@global = external global i64, align 8
declare void @foo55()
define void @blam107() {
bb:
br label %bb1
bb1: ; preds = %bb
%tmp = load atomic i8, i8* bitcast (i64* @global to i8*) acquire, align 8
br i1 false, label %bb2, label %bb3
bb2: ; preds = %bb1
tail call void @foo55() #6
br label %bb3
bb3: ; preds = %bb2, %bb1
unreachable
}