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

Issue 1678523002: Subzero: Fix a mul lowering error. (Closed)

Created:
4 years, 10 months ago by Jim Stichnoth
Modified:
4 years, 10 months ago
Reviewers:
Eric Holk, Karl, sehr, John
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: Fix a mul lowering error. The low-level mul instruction may produce results in a register pair where one register is the explicit dest of the instruction, and the other register is defined through a FakeDef. If the FakeDef portion is ultimately unused, the FakeDef gets dead-code eliminated, and the register allocator doesn't know that the mul instruction affects the other register. On x86, this can silently produce incorrect code. On ARM, the emitter complains that the explicitly represented second dest variable does not have a register. The fix is to add a FakeUse of the FakeDef'd register. Unfortunately, this prevents the low-level mul instruction from ever being dead-code eliminated, but that's probably OK because it should have been eliminated at the high level. BUG= none R=eholk@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=28df6bad8e70d9930040464791296e192aaa03ef

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+43 lines, -0 lines) Patch
M src/IceTargetLoweringARM32.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/IceTargetLoweringX86BaseImpl.h View 1 chunk +1 line, -0 lines 0 comments Download
A tests_lit/llvm2ice_tests/multidef_kill.ll View 1 chunk +41 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (3 generated)
Jim Stichnoth
4 years, 10 months ago (2016-02-05 23:24:35 UTC) #3
Eric Holk
lgtm
4 years, 10 months ago (2016-02-05 23:33:28 UTC) #4
Jim Stichnoth
4 years, 10 months ago (2016-02-05 23:43:29 UTC) #6
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
28df6bad8e70d9930040464791296e192aaa03ef (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698