brintos

brintos / llvm-project-archived public Read only

0
0
Text · 935 B · c94921a Raw
41 lines · plain
1; RUN: opt < %s -passes=globalopt -S | FileCheck %s2; CHECK: global3 4@G = internal global ptr null              ; <ptr> [#uses=2]5 6define internal void @Actual() {7; CHECK-LABEL: Actual(8        ret void9}10 11define void @init() {12; CHECK-LABEL: init(13; CHECK: store ptr @Actual, ptr @G14        store ptr @Actual, ptr @G15        ret void16}17 18define void @doit() #0 {19; CHECK-LABEL: doit(20        %FP = load ptr, ptr @G         ; <ptr> [#uses=2]21; CHECK: %FP = load ptr, ptr @G22        %CC = icmp eq ptr %FP, null                ; <i1> [#uses=1]23; CHECK: %CC = icmp eq ptr %FP, null24        br i1 %CC, label %isNull, label %DoCall25; CHECK: br i1 %CC, label %isNull, label %DoCall26 27DoCall:         ; preds = %028; CHECK: DoCall:29; CHECK: call void %FP()30; CHECK: ret void31        call void %FP( )32        ret void33 34isNull:         ; preds = %035; CHECK: isNull:36; CHECK: ret void37        ret void38}39 40attributes #0 = { null_pointer_is_valid }41