|
Initial skeleton of Subzero.
This includes just enough code to build the high-level ICE IR and dump it back out again. There is a script szdiff.py that does a fuzzy diff of the input and output for verification. See the comment in szdiff.py for a description of the fuzziness.
Building llvm2ice requires LLVM headers, libs, and tools (e.g. FileCheck) to be present. These default to something like llvm_i686_linux_work/Release+Asserts/ based on the checked-out and built pnacl-llvm code; I'll try to figure out how to more automatically detect the build configuration.
"make check" runs the lit tests.
This CL has under 2000 lines of "interesting" Ice*.{h,cpp} code, plus 600 lines of llvm2ice.cpp driver code, and the rest is tests.
Here is the high-level mapping of source files to functionality:
IceDefs.h, IceTypes.h, IceTypes.cpp:
Commonly used types and utilities.
IceCfg.h, IceCfg.cpp:
Operations at the function level.
IceCfgNode.h, IceCfgNode.cpp:
Operations on basic blocks (nodes).
IceInst.h, IceInst.cpp:
Operations on instructions.
IceOperand.h, IceOperand.cpp:
Operations on operands, such as stack locations, physical registers, and constants.
BUG= none
R=jfb@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=f7c9a14
Total comments: 8
Total comments: 34
Total comments: 10
Total comments: 10
Total comments: 6
Total comments: 19
Total comments: 156
Total comments: 48
Total comments: 23
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+6788 lines, -0 lines) |
Patch |
![](/static/closedtriangle.gif) |
A |
.gitignore
|
View
|
1
2
|
1 chunk |
+12 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
LICENSE.TXT
|
View
|
1
2
3
|
1 chunk |
+42 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
Makefile
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+74 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
README.rst
|
View
|
1
2
3
4
5
6
7
8
|
1 chunk |
+71 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceCfg.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+144 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceCfg.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+93 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceCfgNode.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+62 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceCfgNode.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+109 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceDefs.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+122 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceGlobalContext.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+85 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceGlobalContext.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+169 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceInst.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+527 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceInst.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1 chunk |
+436 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceInst.def
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+89 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceOperand.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+251 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceOperand.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+91 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceTypes.h
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+36 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceTypes.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+74 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/IceTypes.def
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+31 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
src/llvm2ice.cpp
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+655 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
szdiff.py
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1 chunk |
+86 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/.gitignore
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/lit.cfg
|
View
|
|
1 chunk |
+54 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
View
|
|
1 chunk |
+799 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/alloc.ll
|
View
|
|
1 chunk |
+35 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/arith-opt.ll
|
View
|
|
1 chunk |
+110 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/arithmetic-chain.ll
|
View
|
|
1 chunk |
+24 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/bitcast.ll
|
View
|
1
2
3
4
5
6
|
1 chunk |
+30 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/bool-opt.ll
|
View
|
|
1 chunk |
+16 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/branch-simple.ll
|
View
|
|
1 chunk |
+21 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/call.ll
|
View
|
|
1 chunk |
+66 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/callindirect.pnacl.ll
|
View
|
|
1 chunk |
+27 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/casts.ll
|
View
|
|
1 chunk |
+16 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/cmp-opt.ll
|
View
|
|
1 chunk |
+41 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/convert.ll
|
View
|
|
1 chunk |
+180 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/empty-func.ll
|
View
|
|
1 chunk |
+14 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/fp.pnacl.ll
|
View
|
|
1 chunk |
+1099 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/fpconst.pnacl.ll
|
View
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1 chunk |
+535 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/global.ll
|
View
|
|
1 chunk |
+23 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/icmp-simple.ll
|
View
|
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/inttoptr.ll
|
View
|
|
1 chunk |
+13 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/load.ll
|
View
|
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/return-int-arg.ll
|
View
|
|
1 chunk |
+20 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/select-opt.ll
|
View
|
|
1 chunk |
+28 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/shift.ll
|
View
|
|
1 chunk |
+33 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/simple-arith.ll
|
View
|
|
1 chunk |
+34 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/simple-cond.ll
|
View
|
|
1 chunk |
+30 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/simple-loop.ll
|
View
|
|
1 chunk |
+52 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/store.ll
|
View
|
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/struct-arith.pnacl.ll
|
View
|
|
1 chunk |
+55 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/switch-opt.ll
|
View
|
|
1 chunk |
+36 lines, -0 lines |
0 comments
|
Download
|
![](/static/closedtriangle.gif) |
A |
tests_lit/llvm2ice_tests/unreachable.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+19 lines, -0 lines |
0 comments
|
Download
|
Total messages: 36 (0 generated)
|