mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
27de8339d1
Update MemorySSA when moving the terminator instruction, as that may be a memory touching instruction. Resolves PR44029.
64 lines
1.8 KiB
LLVM
64 lines
1.8 KiB
LLVM
; RUN: opt -loop-simplifycfg -verify-memoryssa -S < %s | FileCheck %s
|
|
; REQUIRES: asserts
|
|
|
|
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
declare i32 @eggs(...)
|
|
|
|
declare void @spam()
|
|
|
|
; CHECK-LABEL: @f()
|
|
define void @f() personality i8* bitcast (i32 (...)* @eggs to i8*) {
|
|
bb:
|
|
invoke void @spam()
|
|
to label %bb2 unwind label %bb4
|
|
|
|
bb2: ; preds = %bb
|
|
invoke void @spam()
|
|
to label %bb8 unwind label %bb5
|
|
|
|
bb4: ; preds = %bb
|
|
%tmp = landingpad { i8*, i32 }
|
|
cleanup
|
|
resume { i8*, i32 } undef
|
|
|
|
bb5: ; preds = %bb2
|
|
%tmp6 = landingpad { i8*, i32 }
|
|
cleanup
|
|
unreachable
|
|
|
|
bb8: ; preds = %bb13, %bb2
|
|
br label %bb10
|
|
|
|
bb10: ; preds = %bb8
|
|
invoke void @spam()
|
|
to label %bb11 unwind label %bb20
|
|
|
|
bb11: ; preds = %bb10
|
|
invoke void @spam()
|
|
to label %bb12 unwind label %bb22
|
|
|
|
bb12: ; preds = %bb11
|
|
invoke void @spam()
|
|
to label %bb13 unwind label %bb24
|
|
|
|
bb13: ; preds = %bb12
|
|
br label %bb8
|
|
|
|
bb20: ; preds = %bb10
|
|
%tmp21 = landingpad { i8*, i32 }
|
|
cleanup
|
|
unreachable
|
|
|
|
bb22: ; preds = %bb11
|
|
%tmp23 = landingpad { i8*, i32 }
|
|
cleanup
|
|
unreachable
|
|
|
|
bb24: ; preds = %bb12
|
|
%tmp25 = landingpad { i8*, i32 }
|
|
cleanup
|
|
unreachable
|
|
}
|