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

Issue 2052683003: Subzero: Improve effectiveness of local register availability peephole. (Closed)

Created:
4 years, 6 months ago by Jim Stichnoth
Modified:
4 years, 6 months ago
Reviewers:
Eric Holk, Karl, John, manasijm
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: Improve effectiveness of local register availability peephole. X86 only. The register availability peephole optimization during lowering disallows available register substitution when the variable is pre-colored. This is for good reasons (too complex to be discussed here). However, that leaves some potential substitutions on the table. Specifically, this happens a lot around register arguments to function calls, both at the call site and in the prolog. The simplest solution seems to be to launder the pre-colored variable through a separate infinite-weight variable, as implemented in this CL through a combination of such copies and extra legalize() calls. There are other situations where this technique can also work, which may be handled in a separate CL. This CL also fixes a problem where the stack pointer adjustment in the prolog is subject to dead-code elimination if the function has no epilog. This would only happen in asm-verbose mode, in the final liveness analysis pass prior to code emission. BUG= none R=eholk@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=f531931fb45172157bc5816a8f55309556996dc7

Patch Set 1 #

Patch Set 2 : Fix register pressure problem #

Patch Set 3 : Fix comments. Implement for x86-32. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+54 lines, -28 lines) Patch
M src/IceTargetLoweringX8632.cpp View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M src/IceTargetLoweringX8664.cpp View 1 2 1 chunk +20 lines, -16 lines 0 comments Download
M src/IceTargetLoweringX86BaseImpl.h View 1 2 3 chunks +31 lines, -12 lines 0 comments Download

Messages

Total messages: 6 (3 generated)
Jim Stichnoth
This seems to give about 0.6% geomean improvement on spec2k/x86-64.
4 years, 6 months ago (2016-06-09 20:50:37 UTC) #3
Eric Holk
lgtm
4 years, 6 months ago (2016-06-09 23:12:08 UTC) #4
Jim Stichnoth
4 years, 6 months ago (2016-06-10 19:21:22 UTC) #6
Message was sent while issue was closed.
Committed patchset #3 (id:40001) manually as
f531931fb45172157bc5816a8f55309556996dc7 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698