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

Issue 9616014: Improve polymorphic loads on single slots. (Closed)

Created:
8 years, 9 months ago by Michael Starzinger
Modified:
8 years, 9 months ago
Reviewers:
danno
CC:
v8-dev
Visibility:
Public.

Description

Improve polymorphic loads on single slots. If all property lookups for a polymorphic load actually result in the same field index under all maps, we can actually emit a monomorphic load that is guarded by a map check that verifies that the actual map is in the set of handled maps. This also allows GVN to get rid of redundant such map checks. R=danno@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=11132

Patch Set 1 #

Patch Set 2 : Fix two minor issues. #

Total comments: 8

Patch Set 3 : Addressed comments by Daniel Clifford. #

Total comments: 2

Patch Set 4 : Ported to x64 and ARM. #

Patch Set 5 : Renamed CheckMap to CheckMaps. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+205 lines, -103 lines) Patch
M src/arm/lithium-arm.h View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 1 chunk +12 lines, -4 lines 0 comments Download
M src/ast.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/hydrogen.h View 1 chunk +4 lines, -0 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 12 chunks +64 lines, -28 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 4 chunks +55 lines, -27 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 2 chunks +6 lines, -9 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 1 chunk +12 lines, -3 lines 0 comments Download
M src/ia32/lithium-ia32.h View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/mips/lithium-mips.h View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M src/small-pointer-list.h View 2 chunks +10 lines, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 1 chunk +12 lines, -3 lines 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Michael Starzinger
8 years, 9 months ago (2012-03-08 10:26:46 UTC) #1
danno
First round http://codereview.chromium.org/9616014/diff/2001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): http://codereview.chromium.org/9616014/diff/2001/src/hydrogen-instructions.h#newcode2054 src/hydrogen-instructions.h:2054: class HCheckMapSet: public HTemplateInstruction<1> { Please merge ...
8 years, 9 months ago (2012-03-09 11:52:57 UTC) #2
Michael Starzinger
Added new patch set. PTAL. https://chromiumcodereview.appspot.com/9616014/diff/2001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://chromiumcodereview.appspot.com/9616014/diff/2001/src/hydrogen-instructions.h#newcode2054 src/hydrogen-instructions.h:2054: class HCheckMapSet: public HTemplateInstruction<1> ...
8 years, 9 months ago (2012-03-12 11:37:11 UTC) #3
danno
What about the x64 and ARM implementation? http://codereview.chromium.org/9616014/diff/9001/src/ia32/lithium-codegen-ia32.cc File src/ia32/lithium-codegen-ia32.cc (right): http://codereview.chromium.org/9616014/diff/9001/src/ia32/lithium-codegen-ia32.cc#newcode4122 src/ia32/lithium-codegen-ia32.cc:4122: void LCodeGen::DoCheckMap(LCheckMap* ...
8 years, 9 months ago (2012-03-16 16:41:29 UTC) #4
Michael Starzinger
Added new patch set. PTAL. http://codereview.chromium.org/9616014/diff/9001/src/ia32/lithium-codegen-ia32.cc File src/ia32/lithium-codegen-ia32.cc (right): http://codereview.chromium.org/9616014/diff/9001/src/ia32/lithium-codegen-ia32.cc#newcode4122 src/ia32/lithium-codegen-ia32.cc:4122: void LCodeGen::DoCheckMap(LCheckMap* instr) { ...
8 years, 9 months ago (2012-03-19 17:27:15 UTC) #5
danno
8 years, 9 months ago (2012-03-21 08:34:36 UTC) #6
lgtm

Powered by Google App Engine
This is Rietveld 408576698