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

Issue 1151663004: Subzero ARM: do lowerIcmp, lowerBr, and a bit of lowerCall. (Closed)

Created:
5 years, 7 months ago by jvoung (off chromium)
Modified:
5 years, 7 months ago
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Subzero ARM: do lowerIcmp, lowerBr, and a bit of lowerCall. Allow instructions to be predicated and use that in lower icmp and branch. Tracking the predicate for almost every instruction is a bit overkill, but technically possible. Add that to most of the instruction constructors except ret and call for now. This doesn't yet do compare + branch fusing, but it does handle the branch fallthrough to avoid branching twice. I can't yet test 8bit and 16bit, since those come from "trunc" and "trunc" is not lowered yet (or load, which also isn't handled yet). Adds basic "call(void)" lowering, just to get the call markers showing up in tests. 64bit.pnacl.ll no longer explodes with liveness consistency errors, so risk running that and backfill some of the 64bit arith tests. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=3bfd99a3b3bc534ce11617641fd9123a0e2baec8

Patch Set 1 #

Patch Set 2 : don't elim movs -- set non-killable #

Patch Set 3 : remember to swap when needed #

Patch Set 4 : part of lowerBr #

Patch Set 5 : emit for branch #

Patch Set 6 : add ARM variant of fall-through opt and do simple call #

Patch Set 7 : add 64 bit checks #

Patch Set 8 : clang-format #

Total comments: 2

Patch Set 9 : fix test TODO -- dead code eliminated #

Patch Set 10 : simplify check #

Total comments: 6

Patch Set 11 : fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1132 lines, -134 lines) Patch
A src/IceConditionCodesARM32.h View 1 chunk +39 lines, -0 lines 0 comments Download
M src/IceInstARM32.h View 1 2 3 4 5 6 7 8 9 10 23 chunks +204 lines, -40 lines 0 comments Download
M src/IceInstARM32.cpp View 1 2 3 4 5 6 7 8 9 10 15 chunks +231 lines, -25 lines 0 comments Download
M src/IceInstARM32.def View 1 chunk +23 lines, -0 lines 0 comments Download
M src/IceInstX8632.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +12 lines, -10 lines 0 comments Download
M src/IceInstX8632.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -5 lines 0 comments Download
M src/IceTargetLoweringARM32.h View 1 2 3 4 5 6 7 1 chunk +81 lines, -33 lines 0 comments Download
M src/IceTargetLoweringARM32.cpp View 1 2 3 4 5 6 7 8 9 10 6 chunks +314 lines, -11 lines 0 comments Download
M src/IceTargetLoweringARM32.def View 1 chunk +14 lines, -1 line 0 comments Download
M tests_lit/llvm2ice_tests/64bit.pnacl.ll View 1 2 3 4 5 6 7 8 23 chunks +164 lines, -4 lines 0 comments Download
M tests_lit/llvm2ice_tests/branch-opt.ll View 1 2 3 4 5 6 7 8 9 4 chunks +42 lines, -4 lines 0 comments Download
M tests_lit/llvm2ice_tests/int-arg.ll View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download

Messages

Total messages: 5 (1 generated)
jvoung (off chromium)
https://codereview.chromium.org/1151663004/diff/140001/src/IceInstARM32.h File src/IceInstARM32.h (right): https://codereview.chromium.org/1151663004/diff/140001/src/IceInstARM32.h#newcode550 src/IceInstARM32.h:550: // used for switch lowering. Almost a clone of ...
5 years, 7 months ago (2015-05-21 22:52:04 UTC) #2
Jim Stichnoth
otherwise lgtm https://codereview.chromium.org/1151663004/diff/180001/src/IceInstARM32.h File src/IceInstARM32.h (right): https://codereview.chromium.org/1151663004/diff/180001/src/IceInstARM32.h#newcode315 src/IceInstARM32.h:315: void emitTwoAddr(const char *Opcode, const InstARM32Pred *Inst, ...
5 years, 7 months ago (2015-05-22 18:28:20 UTC) #3
jvoung (off chromium)
Thanks! https://codereview.chromium.org/1151663004/diff/180001/src/IceInstARM32.h File src/IceInstARM32.h (right): https://codereview.chromium.org/1151663004/diff/180001/src/IceInstARM32.h#newcode315 src/IceInstARM32.h:315: void emitTwoAddr(const char *Opcode, const InstARM32Pred *Inst, On ...
5 years, 7 months ago (2015-05-22 20:37:24 UTC) #4
jvoung (off chromium)
5 years, 7 months ago (2015-05-22 23:35:30 UTC) #5
Message was sent while issue was closed.
Committed patchset #11 (id:200001) manually as
3bfd99a3b3bc534ce11617641fd9123a0e2baec8 (tree was closed).

Powered by Google App Engine
This is Rietveld 408576698