Mercurial > hg > CbC > CbC_llvm
view test/Verifier/dominates.ll @ 146:3fc4d5c3e21e
set tail call flag for code segment in CGCAll
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 23 Dec 2018 19:23:36 +0900 |
parents | 1172e4bd9c6f |
children |
line wrap: on
line source
; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s define i32 @f1(i32 %x) { %y = add i32 %z, 1 %z = add i32 %x, 1 ret i32 %y ; CHECK: Instruction does not dominate all uses! ; CHECK-NEXT: %z = add i32 %x, 1 ; CHECK-NEXT: %y = add i32 %z, 1 } declare i32 @g() define void @f2(i32 %x) personality i32 ()* @g { bb0: %y1 = invoke i32 @g() to label %bb1 unwind label %bb2 bb1: ret void bb2: %y2 = phi i32 [%y1, %bb0] %y3 = landingpad i32 cleanup ret void ; CHECK: Instruction does not dominate all uses! ; CHECK-NEXT: %y1 = invoke i32 @g() ; CHECK-NEXT: to label %bb1 unwind label %bb2 ; CHECK-NEXT: %y2 = phi i32 [ %y1, %bb0 ] } define void @f3(i32 %x) personality i32 ()* @g { bb0: %y1 = invoke i32 @g() to label %bb1 unwind label %bb2 bb1: ret void bb2: %y2 = landingpad i32 cleanup br label %bb3 bb3: %y3 = phi i32 [%y1, %bb2] ret void ; CHECK: Instruction does not dominate all uses! ; CHECK-NEXT: %y1 = invoke i32 @g() ; CHECK-NEXT: to label %bb1 unwind label %bb2 ; CHECK-NEXT: %y3 = phi i32 [ %y1, %bb2 ] } define void @f4(i32 %x) { bb0: br label %bb1 bb1: %y3 = phi i32 [%y1, %bb0] %y1 = add i32 %x, 1 ret void ; CHECK: Instruction does not dominate all uses! ; CHECK-NEXT: %y1 = add i32 %x, 1 ; CHECK-NEXT: %y3 = phi i32 [ %y1, %bb0 ] } define void @f5() { entry: br label %next next: %y = phi i32 [ 0, %entry ] %x = phi i32 [ %y, %entry ] ret void ; CHECK: Instruction does not dominate all uses! ; CHECK-NEXT: %y = phi i32 [ 0, %entry ] ; CHECK-NEXT: %x = phi i32 [ %y, %entry ] }