Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: test/NaCl/Bitcode/struct-types.ll

Issue 14495008: Create type IDs based on reference counts. (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Fix typo in struct-types.ll Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/NaCl/Bitcode/lit.local.cfg ('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 ; Checks if llvm bitcode defines a struct type before the pointer type,
2 ; even if the struct definintion appears after the pointer type, while
3 ; pnacl bitcode moves the pointer before the struct.
4 ; RUN: llvm-as < %s | llvm-bcanalyzer -dump | FileCheck %s -check-prefix=LLVM
5 ; RUN: llvm-as < %s | pnacl-freeze | pnacl-bcanalyzer -dump | FileCheck %s -chec k-prefix=PNACL
6
7 %typeB = type { i8, %typeA, i32, %typeA }
8 %typeA = type { i16 }
9
10 define %typeB* @foo(%typeB* %a) {
11 ret %typeB* %a
12 }
13
14 define %typeB* @bar(%typeB* %b) {
15 ret %typeB* %b
16 }
17
18 define i16 @bam(i16 %a) {
19 ret i16 %a
20 }
21
22 ; Show the ordering llvm uses to order types, which is to expand subtypes
23 ; (including accross pointers) before the type. Expands types for functions
24 ; in order: @foo, @bar, @bam.
25 ; LLVM: <TYPE_BLOCK_ID {{.*}}>
26 ; i8
27 ; LLVM: <INTEGER op0=8/>
28 ; i16
29 ; LLVM: <INTEGER op0=16/>
30 ; %typeA = type { i16 }
31 ; LLVM: <STRUCT_NAME abbrevid=7 op0=116 op1=121 op2=112 op3=101 op4=65/>
32 ; LLVM: <STRUCT_NAMED abbrevid=8 op0=0 op1=1/>
33 ; i32
34 ; LLVM: <INTEGER op0=32/>
35 ; %typeB = type { i8, %typeA, i32, %typeA }
36 ; LLVM: <STRUCT_NAME abbrevid=7 op0=116 op1=121 op2=112 op3=101 op4=66/>
37 ; LLVM: <STRUCT_NAMED abbrevid=8 op0=0 op1=0 op2=2 op3=3 op4=2/>
38 ; %typeB*
39 ; LLVM: <POINTER abbrevid=4 op0=4 op1=0/>
40 ; %typeB* (%typeB*)
41 ; LLVM: <FUNCTION abbrevid=5 op0=0 op1=5 op2=5/>
42 ; %typeB* (%typeB*)*
43 ; LLVM: <POINTER abbrevid=4 op0=6 op1=0/>
44 ; i16 (i16)
45 ; LLVM: <FUNCTION abbrevid=5 op0=0 op1=1 op2=1/>
46 ; i16 (i16)*
47 ; LLVM: <POINTER abbrevid=4 op0=8 op1=0/>
48 ; type of instruction "RET"
49 ; LLVM: <VOID/>
50 ; LLVM: </TYPE_BLOCK_ID>
51
52 ; Show the ordering pnacl-freeze uses to order types.
53 ; PNACL: <TYPE_BLOCK_ID {{.*}}>
54 ; %typeB*
55 ; PNACL: <POINTER abbrevid=4 op0=8 op1=0/>
56 ; i16
57 ; PNACL: <INTEGER op0=16/>
58 ; type of instruction "RET"
59 ; PNACL: <VOID/>
60 ; %typeA = type { i16 }
61 ; PNACL: <STRUCT_NAME abbrevid=7 op0=116 op1=121 op2=112 op3=101 op4=65/>
62 ; PNACL: <STRUCT_NAMED abbrevid=8 op0=0 op1=1/>
63 ; %typeB* (%typeB*)
64 ; PNACL: <FUNCTION abbrevid=5 op0=0 op1=0 op2=0/>
65 ; %typeB* (%typeB*)*
66 ; PNACL: <POINTER abbrevid=4 op0=4 op1=0/>
67 ; i8
68 ; PNACL: <INTEGER op0=8/>
69 ; i32
70 ; PNACL: <INTEGER op0=32/>
71 ; %typeB = type { i8, %typeA, i32, %typeA }
72 ; PNACL: <STRUCT_NAME abbrevid=7 op0=116 op1=121 op2=112 op3=101 op4=66/>
73 ; PNACL: <STRUCT_NAMED abbrevid=8 op0=0 op1=6 op2=3 op3=7 op4=3/>
74 ; i16 (i16)
75 ; PNACL: <FUNCTION abbrevid=5 op0=0 op1=1 op2=1/>
76 ; i16 (i16)*
77 ; PNACL: <POINTER abbrevid=4 op0=9 op1=0/>
78 ; PNACL: </TYPE_BLOCK_ID>
OLDNEW
« no previous file with comments | « test/NaCl/Bitcode/lit.local.cfg ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698