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

Issue 369573005: Avoid assigning esp (or ebp for framepointer-using frames) in Om1. (Closed)

Created:
6 years, 5 months ago by jvoung (off chromium)
Modified:
6 years, 5 months ago
Reviewers:
Jim Stichnoth
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Visibility:
Public.

Description

Avoid assigning esp (or ebp for framepointer-using frames) in Om1. For ebp, exclude as needed. For esp, don't mark it as an int register. Not sure exactly how to do a targeted test for this Om1 register allocator. The Om1 regalloc seems to start w/ a fresh whitelist after each instruction, so it may assign the same register (e.g., eax), as an earlier instruction. Without pre-colored registers, I'm not sure how to force it to allocate something other than the first few registers. I do have a test case that has a ton of pre-colored registers, (e.g., cmpxchg8b), but that is a different CL: https://codereview.chromium.org/362463002/ Encountered for: BUG= https://code.google.com/p/nativeclient/issues/detail?id=3882 R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=9559899

Patch Set 1 #

Total comments: 3

Patch Set 2 : try w/out esp as an int reg #

Patch Set 3 : add comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+7 lines, -3 lines) Patch
M src/IceInstX8632.def View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M src/IceTargetLowering.cpp View 1 1 chunk +0 lines, -1 line 0 comments Download
M src/IceTargetLoweringX8632.cpp View 1 2 1 chunk +5 lines, -1 line 0 comments Download

Messages

Total messages: 6 (0 generated)
jvoung (off chromium)
6 years, 5 months ago (2014-07-02 21:20:53 UTC) #1
Jim Stichnoth
lgtm https://codereview.chromium.org/369573005/diff/1/src/IceTargetLoweringX8632.cpp File src/IceTargetLoweringX8632.cpp (right): https://codereview.chromium.org/369573005/diff/1/src/IceTargetLoweringX8632.cpp#newcode2525 src/IceTargetLoweringX8632.cpp:2525: RegSetMask RegExclude = RegSet_None | RegSet_StackPointer; Could probably ...
6 years, 5 months ago (2014-07-02 23:03:36 UTC) #2
Jim Stichnoth
https://codereview.chromium.org/369573005/diff/1/src/IceTargetLoweringX8632.cpp File src/IceTargetLoweringX8632.cpp (right): https://codereview.chromium.org/369573005/diff/1/src/IceTargetLoweringX8632.cpp#newcode2525 src/IceTargetLoweringX8632.cpp:2525: RegSetMask RegExclude = RegSet_None | RegSet_StackPointer; On 2014/07/02 23:03:36, ...
6 years, 5 months ago (2014-07-02 23:23:44 UTC) #3
jvoung (off chromium)
https://codereview.chromium.org/369573005/diff/1/src/IceTargetLoweringX8632.cpp File src/IceTargetLoweringX8632.cpp (right): https://codereview.chromium.org/369573005/diff/1/src/IceTargetLoweringX8632.cpp#newcode2525 src/IceTargetLoweringX8632.cpp:2525: RegSetMask RegExclude = RegSet_None | RegSet_StackPointer; On 2014/07/02 23:23:44, ...
6 years, 5 months ago (2014-07-02 23:43:39 UTC) #4
jvoung (off chromium)
Okay sticking with marking esp as not an int reg (patch set 3)
6 years, 5 months ago (2014-07-09 16:24:08 UTC) #5
jvoung (off chromium)
6 years, 5 months ago (2014-07-09 16:54:37 UTC) #6
Message was sent while issue was closed.
Committed patchset #3 manually as r9559899 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698