|
Subzero: Initial O2 lowering
Includes the following:
1. Liveness analysis.
2. Linear-scan register allocation.
3. Address mode optimization.
4. Compare-branch fusing.
All of these depend on liveness analysis. There are three versions of liveness analysis (in order of increasing cost):
1. Lightweight. This computes last-uses for variables local to a single basic block.
2. Full. This computes last-uses for all variables based on global dataflow analysis.
3. Full live ranges. This computes all last-uses, plus calculates the live range intervals in terms of instruction numbers. (The live ranges are needed for register allocation.)
For testing the full live range computation, Cfg::validateLiveness() checks every Variable of every Inst and verifies that the current Inst is contained within the Variable's live range.
The cross tests are run with O2 in addition to Om1.
Some of the lit tests (for what good they do) are updated with O2 code sequences.
BUG= none
R=jvoung@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=d97c7df
Total comments: 60
Total comments: 17
Total comments: 5
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+2152 lines, -261 lines) |
Patch |
 |
M |
Makefile.standalone
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
crosstest/runtests.sh
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
src/IceCfg.h
|
View
|
1
2
|
5 chunks |
+10 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/IceCfg.cpp
|
View
|
1
2
|
9 chunks |
+179 lines, -11 lines |
0 comments
|
Download
|
 |
M |
src/IceCfgNode.h
|
View
|
1
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceCfgNode.cpp
|
View
|
1
2
|
8 chunks |
+259 lines, -4 lines |
0 comments
|
Download
|
 |
M |
src/IceDefs.h
|
View
|
1
2
|
2 chunks |
+19 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceGlobalContext.cpp
|
View
|
1
|
2 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/IceInst.h
|
View
|
1
2
|
7 chunks |
+34 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/IceInst.cpp
|
View
|
1
2
|
7 chunks |
+177 lines, -6 lines |
0 comments
|
Download
|
 |
A |
src/IceLiveness.h
|
View
|
1
2
3
|
1 chunk |
+100 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceLiveness.cpp
|
View
|
1
2
|
1 chunk |
+116 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceOperand.h
|
View
|
1
2
|
9 chunks |
+84 lines, -10 lines |
0 comments
|
Download
|
 |
M |
src/IceOperand.cpp
|
View
|
1
2
|
4 chunks |
+125 lines, -8 lines |
0 comments
|
Download
|
 |
A |
src/IceRegAlloc.h
|
View
|
1
2
|
1 chunk |
+81 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/IceRegAlloc.cpp
|
View
|
1
2
3
|
1 chunk |
+461 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceTargetLowering.h
|
View
|
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceTargetLowering.cpp
|
View
|
|
3 chunks |
+27 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/IceTargetLoweringX8632.h
|
View
|
1
2
3
|
5 chunks |
+8 lines, -5 lines |
0 comments
|
Download
|
 |
M |
src/IceTargetLoweringX8632.cpp
|
View
|
1
2
3
|
19 chunks |
+347 lines, -46 lines |
0 comments
|
Download
|
 |
M |
src/llvm2ice.cpp
|
View
|
|
2 chunks |
+24 lines, -18 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/alloc.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/bitcast.ll
|
View
|
|
2 chunks |
+13 lines, -5 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/callindirect.pnacl.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/casts.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/cmp-opt.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/convert.ll
|
View
|
1
|
9 chunks |
+50 lines, -131 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/fp.pnacl.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/fpconst.pnacl.ll
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/select-opt.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/shift.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/simple-loop.ll
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
tests_lit/llvm2ice_tests/unreachable.ll
|
View
|
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
Total messages: 10 (0 generated)
|