DescriptionSubzero 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 #
Messages
Total messages: 5 (1 generated)
|