|
Add Om1 lowering with no optimizations.
This adds infrastructure for low-level x86-32 instructions, and the target lowering patterns.
Practically no optimizations are performed. Optimizations to be introduced later include liveness analysis, dead-code elimination, global linear-scan register allocation, linear-scan based stack slot coalescing, and compare/branch fusing. One optimization that is present is simple coalescing of stack slots for variables that are only live within a single basic block.
There are also some fairly comprehensive cross tests. This testing infrastructure translates bitcode using both Subzero and llc, and a testing harness calls both versions with a variety of "interesting" inputs and compares the results. Specifically, Arithmetic, Icmp, Fcmp, and Cast instructions are tested this way, across all PNaCl primitive types.
BUG=
R=jvoung@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=5bc2b1d
Total comments: 108
Total comments: 49
Total comments: 8
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+7717 lines, -266 lines) |
Patch |
 |
M |
.gitignore
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
LOWERING.rst
|
View
|
1
2
3
|
1 chunk |
+310 lines, -0 lines |
0 comments
|
Download
|
 |
M |
Makefile
|
View
|
|
3 chunks |
+5 lines, -1 line |
0 comments
|
Download
|
 |
M |
README.rst
|
View
|
1
|
1 chunk |
+12 lines, -3 lines |
0 comments
|
Download
|
 |
A |
crosstest/crosstest.py
|
View
|
1
2
3
|
1 chunk |
+127 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/runtests.sh
|
View
|
1
2
|
1 chunk |
+59 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/simple_loop.c
|
View
|
1
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/simple_loop_main.c
|
View
|
1
|
1 chunk |
+29 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_arith.h
|
View
|
1
2
|
1 chunk |
+29 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_arith.cpp
|
View
|
1
2
|
1 chunk |
+30 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_arith.def
|
View
|
1
2
3
|
1 chunk |
+45 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_arith_frem.ll
|
View
|
1
2
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_arith_main.cpp
|
View
|
1
2
|
1 chunk |
+193 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_cast.h
|
View
|
1
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_cast.cpp
|
View
|
1
|
1 chunk |
+61 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_cast_main.cpp
|
View
|
1
|
1 chunk |
+225 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_cast_to_u1.ll
|
View
|
1
|
1 chunk |
+92 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_fcmp.def
|
View
|
1
|
1 chunk |
+27 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_fcmp.pnacl.ll
|
View
|
|
1 chunk |
+324 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_fcmp_main.cpp
|
View
|
1
|
1 chunk |
+98 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_icmp.h
|
View
|
1
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_icmp.cpp
|
View
|
1
|
1 chunk |
+21 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_icmp.def
|
View
|
1
|
1 chunk |
+25 lines, -0 lines |
0 comments
|
Download
|
 |
A |
crosstest/test_icmp_main.cpp
|
View
|
1
|
1 chunk |
+118 lines, -0 lines |
0 comments
|
Download
|
 |
A |
pydir/build-pnacl-ir.py
|
View
|
1
2
3
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceCfg.h
|
View
|
|
3 chunks |
+15 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/IceCfg.cpp
|
View
|
1
2
3
|
2 chunks |
+97 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/IceCfgNode.h
|
View
|
|
3 chunks |
+14 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceCfgNode.cpp
|
View
|
|
3 chunks |
+131 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/IceDefs.h
|
View
|
|
1 chunk |
+8 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/IceGlobalContext.h
|
View
|
|
4 chunks |
+17 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/IceGlobalContext.cpp
|
View
|
1
|
4 chunks |
+25 lines, -12 lines |
0 comments
|
Download
|
 |
M |
src/IceInst.h
|
View
|
1
|
8 chunks |
+113 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/IceInst.cpp
|
View
|
1
|
10 chunks |
+126 lines, -6 lines |
0 comments
|
Download
|
 |
M |
src/IceInst.def
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
A |
src/IceInstX8632.h
|
View
|
1
|
1 chunk |
+720 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceInstX8632.cpp
|
View
|
1
|
1 chunk |
+868 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceInstX8632.def
|
View
|
|
1 chunk |
+71 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceOperand.h
|
View
|
1
2
3
|
7 chunks |
+106 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/IceOperand.cpp
|
View
|
|
4 chunks |
+59 lines, -4 lines |
0 comments
|
Download
|
 |
A |
src/IceTargetLowering.h
|
View
|
1
2
3
|
1 chunk |
+197 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceTargetLowering.cpp
|
View
|
1
|
1 chunk |
+147 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceTargetLoweringX8632.h
|
View
|
1
2
3
|
1 chunk |
+268 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceTargetLoweringX8632.cpp
|
View
|
1
2
3
4
5
|
1 chunk |
+1881 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceTargetLoweringX8632.def
|
View
|
|
1 chunk |
+52 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceTypes.h
|
View
|
|
1 chunk |
+14 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceTypes.cpp
|
View
|
|
3 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/IceTypes.def
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/llvm2ice.cpp
|
View
|
1
2
3
4
5
|
7 chunks |
+59 lines, -7 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
View
|
1
2
3
4
5
|
61 chunks |
+364 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/alloc.ll
|
View
|
1
2
3
4
5
|
3 chunks |
+28 lines, -11 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/arith-opt.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/arithmetic-chain.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+6 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/bitcast.ll
|
View
|
1
2
3
4
5
|
2 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/bool-opt.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/branch-simple.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/call.ll
|
View
|
1
2
3
4
5
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/callindirect.pnacl.ll
|
View
|
1
2
3
4
5
|
2 chunks |
+13 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/casts.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/cmp-opt.ll
|
View
|
1
2
3
4
5
|
3 chunks |
+19 lines, -4 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/convert.ll
|
View
|
1
2
3
4
5
|
9 chunks |
+142 lines, -67 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/empty-func.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/fp.pnacl.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/fpconst.pnacl.ll
|
View
|
1
2
3
4
5
|
2 chunks |
+5 lines, -4 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/global.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/icmp-simple.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/load.ll
|
View
|
1
2
3
4
5
|
5 chunks |
+9 lines, -3 lines |
0 comments
|
Download
|
 |
A |
tests_lit/llvm2ice_tests/mangle.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+105 lines, -0 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/return-int-arg.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/select-opt.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/shift.ll
|
View
|
1
2
3
4
5
|
3 chunks |
+12 lines, -6 lines |
0 comments
|
Download
|
 |
D |
tests_lit/llvm2ice_tests/simple-arith.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+0 lines, -35 lines |
0 comments
|
Download
|
 |
D |
tests_lit/llvm2ice_tests/simple-cond.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+0 lines, -32 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/simple-loop.ll
|
View
|
1
2
3
4
5
|
3 chunks |
+13 lines, -12 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/store.ll
|
View
|
1
2
3
4
5
|
5 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/struct-arith.pnacl.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -7 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/switch-opt.ll
|
View
|
1
2
3
4
5
|
1 chunk |
+6 lines, -2 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/unreachable.ll
|
View
|
1
2
3
4
5
|
2 chunks |
+5 lines, -2 lines |
0 comments
|
Download
|
Total messages: 12 (0 generated)
|