Chromium Code Reviews

Side by Side Diff: tests_lit/reader_tests/forwardref.ll

Issue 576853002: Add forward instruction declaration to Subzero bitcode reader. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Format differences. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « src/PNaClTranslator.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; Test use forward type references in function blocks.
2
3 ; RUN: llvm-as < %s | pnacl-freeze -allow-local-symbol-tables \
4 ; RUN: | %llvm2ice -notranslate -verbose=inst -build-on-read \
5 ; RUN: -allow-pnacl-reader-error-recovery \
6 ; RUN: -allow-local-symbol-tables \
7 ; RUN: | FileCheck %s
8
9 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bcdis -no-records \
jvoung (off chromium) 2014/09/16 21:43:41 Do we need to add pnacl-bcdis to tests_lit/lit.cfg
Karl 2014/09/17 16:07:38 Added.
10 ; RUN: | FileCheck --check-prefix=DUMP %s
11
12 define void @LoopCarriedDep() {
13 b0:
14 %v0 = add i32 1, 2
15 br label %b1
16 b1:
17 %v1 = phi i32 [%v0, %b0], [%v2, %b1]
18 %v2 = add i32 %v1, 1
19 br label %b1
20 }
21
22 ; CHECK: define void @LoopCarriedDep() {
23 ; CHECK-NEXT: b0:
24 ; CHECK-NEXT: %v0 = add i32 1, 2
25 ; CHECK-NEXT: br label %b1
26 ; CHECK-NEXT: b1:
27 ; CHECK-NEXT: %v1 = phi i32 [ %v0, %b0 ], [ %v2, %b1 ]
28 ; CHECK-NEXT: %v2 = add i32 %v1, 1
29 ; CHECK-NEXT: br label %b1
30 ; CHECK-NEXT: }
31
32 ; Snippet of bitcode objdump with forward type reference (see "declare").
33 ; DUMP: function void @f0() { // BlockID = 12
34 ; DUMP: %b0:
Jim Stichnoth 2014/09/16 21:30:24 DUMP-NEXT?
Karl 2014/09/17 16:07:38 I intensionally used DUMP because there are a numb
35 ; DUMP-NEXT: %v0 = add i32 %c0, %c1; <@a1>
36 ; DUMP-NEXT: br label %b1;
37 ; DUMP-NEXT: %b1:
38 ; DUMP-NEXT: declare i32 %v2; <@a6>
39 ; DUMP-NEXT: %v1 = phi i32 [%v0, %b0], [%v2, %b1];
40 ; DUMP-NEXT: %v2 = add i32 %v1, %c0; <@a1>
41 ; DUMP-NEXT: br label %b1;
42 ; DUMP-NEXT: }
43
44 define void @BackBranch(i32 %p0) {
45 b0:
46 br label %b4
47 b1:
48 %v0 = add i32 %p0, %v3
49 br label %b6
50 b2:
51 %v1 = add i32 %p0, %v4
52 br label %b6
53 b3:
54 %v2 = add i32 %p0, %v3 ; No forward declare, already done!
55 br label %b6
56 b4:
57 %v3 = add i32 %p0, %p0
58 br i1 1, label %b1, label %b5
59 b5:
60 %v4 = add i32 %v3, %p0
61 br i1 1, label %b2, label %b3
62 b6:
63 ret void
64 }
65
66 ; CHECK: define void @BackBranch(i32 %p0) {
67 ; CHECK-NEXT: b0:
68 ; CHECK-NEXT: br label %b4
69 ; CHECK-NEXT: b1:
70 ; CHECK-NEXT: %v0 = add i32 %p0, %v3
71 ; CHECK-NEXT: br label %b6
72 ; CHECK-NEXT: b2:
73 ; CHECK-NEXT: %v1 = add i32 %p0, %v4
74 ; CHECK-NEXT: br label %b6
75 ; CHECK-NEXT: b3:
76 ; CHECK-NEXT: %v2 = add i32 %p0, %v3
77 ; CHECK-NEXT: br label %b6
78 ; CHECK-NEXT: b4:
79 ; CHECK-NEXT: %v3 = add i32 %p0, %p0
80 ; CHECK-NEXT: br i1 true, label %b1, label %b5
81 ; CHECK-NEXT: b5:
82 ; CHECK-NEXT: %v4 = add i32 %v3, %p0
83 ; CHECK-NEXT: br i1 true, label %b2, label %b3
84 ; CHECK-NEXT: b6:
85 ; CHECK-NEXT: ret void
86 ; CHECK-NEXT: }
87
88 ; Snippet of bitcode objdump with forward type references (see "declare").
89 ; DUMP: function void @f1(i32 %p0) { // BlockID = 12
90 ; DUMP: %b0:
Jim Stichnoth 2014/09/16 21:30:24 DUMP-NEXT?
Karl 2014/09/17 16:07:38 Same here.
91 ; DUMP-NEXT: br label %b4;
92 ; DUMP-NEXT: %b1:
93 ; DUMP-NEXT: declare i32 %v3; <@a6>
94 ; DUMP-NEXT: %v0 = add i32 %p0, %v3; <@a1>
95 ; DUMP-NEXT: br label %b6;
96 ; DUMP-NEXT: %b2:
97 ; DUMP-NEXT: declare i32 %v4; <@a6>
98 ; DUMP-NEXT: %v1 = add i32 %p0, %v4; <@a1>
99 ; DUMP-NEXT: br label %b6;
100 ; DUMP-NEXT: %b3:
101 ; DUMP-NEXT: %v2 = add i32 %p0, %v3; <@a1>
102 ; DUMP-NEXT: br label %b6;
103 ; DUMP-NEXT: %b4:
104 ; DUMP-NEXT: %v3 = add i32 %p0, %p0; <@a1>
105 ; DUMP-NEXT: br i1 %c0, label %b1, label %b5;
106 ; DUMP-NEXT: %b5:
107 ; DUMP-NEXT: %v4 = add i32 %v3, %p0; <@a1>
108 ; DUMP-NEXT: br i1 %c0, label %b2, label %b3;
109 ; DUMP-NEXT: %b6:
110 ; DUMP-NEXT: ret void; <@a3>
111 ; DUMP-NEXT: }
OLDNEW
« no previous file with comments | « src/PNaClTranslator.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine