Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
; ModuleID = 'harbour'

declare i64 @harbour__print(i64)

declare i64 @harbour__minus(i64, i64)

declare i64 @harbour__times(i64, i64)

define i64 @harbour__first() {
first:
  br i1 true, label %true_basic_block, label %merge_basic_block

true_basic_block:                                 ; preds = %first
  %call = call i64 @harbour__print(i64 1)         ; <i64> [#uses=0]
  %call1 = call i64 @harbour__print(i64 11)       ; <i64> [#uses=0]
  %call2 = call i64 @harbour__print(i64 111)      ; <i64> [#uses=1]
  br label %merge_basic_block

merge_basic_block:                                ; preds = %true_basic_block, %first
  %if_phi = phi i64 [ %call2, %true_basic_block ], [ 2, %first ] ; <i64> [#uses=0]
  ret i64 123
}

define i64 @harbour__second() {
second:
  br i1 true, label %true_basic_block, label %false_basic_block

true_basic_block:                                 ; preds = %second
  %call = call i64 @harbour__print(i64 1)         ; <i64> [#uses=0]
  %call1 = call i64 @harbour__print(i64 11)       ; <i64> [#uses=0]
  %call2 = call i64 @harbour__print(i64 111)      ; <i64> [#uses=1]
  br label %merge_basic_block

false_basic_block:                                ; preds = %second
  %call3 = call i64 @harbour__print(i64 2)        ; <i64> [#uses=0]
  %call4 = call i64 @harbour__print(i64 22)       ; <i64> [#uses=0]
  %call5 = call i64 @harbour__print(i64 222)      ; <i64> [#uses=1]
  br label %merge_basic_block

merge_basic_block:                                ; preds = %false_basic_block, %true_basic_block
  %if_phi = phi i64 [ %call2, %true_basic_block ], [ %call5, %false_basic_block ] ; <i64> [#uses=0]
  ret i64 123
}

define i64 @harbour__main() {
main:
  %call = call i64 @harbour__first()              ; <i64> [#uses=0]
  %call1 = call i64 @harbour__second()            ; <i64> [#uses=1]
  ret i64 %call1
}