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

Issue 10543013: More code for ia32, more shared code. (Closed)

Created:
8 years, 6 months ago by srdjan
Modified:
8 years, 6 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

More code for ia32, more shared code. CreateArrayComp, EqualityCompareComp, StoreStaticField, LoadStaticField, StoreIndexedComp, StoreInstanceFieldComp, Throw, Rethrow, AssertBooleanComp. Made more code shared, which has the disadvantage od splitting MakeLocationSummary from EmitNativeCode. Discuss. Committed: https://code.google.com/p/dart/source/detail?r=8343

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+658 lines, -710 lines) Patch
M runtime/vm/assembler_ia32.h View 1 2 3 4 5 1 chunk +7 lines, -1 line 0 comments Download
M runtime/vm/assembler_ia32.cc View 1 2 3 4 5 1 chunk +12 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 2 3 4 5 1 chunk +7 lines, -1 line 0 comments Download
M runtime/vm/assembler_x64.cc View 1 2 3 4 5 1 chunk +12 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 4 5 2 chunks +379 lines, -0 lines 4 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 4 5 11 chunks +227 lines, -330 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 5 11 chunks +12 lines, -378 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
srdjan
8 years, 6 months ago (2012-06-05 23:38:29 UTC) #1
Florian Schneider
On 2012/06/05 23:38:29, srdjan wrote: Maybe it is ok to have the templates duplicated for ...
8 years, 6 months ago (2012-06-06 10:55:18 UTC) #2
Florian Schneider
LGTM. As I said, I'm not sure if it is worth sharing code between platforms ...
8 years, 6 months ago (2012-06-06 14:23:52 UTC) #3
srdjan
On 2012/06/06 14:23:52, Florian Schneider wrote: > LGTM. > > As I said, I'm not ...
8 years, 6 months ago (2012-06-06 14:54:33 UTC) #4
srdjan
On 2012/06/06 14:54:33, srdjan wrote: > On 2012/06/06 14:23:52, Florian Schneider wrote: > > LGTM. ...
8 years, 6 months ago (2012-06-06 15:32:20 UTC) #5
Ivan Posva
8 years, 6 months ago (2012-06-07 06:54:27 UTC) #6
In my experience sharing assembly code is a losing proposition. The amount of
shared code when adding more than two CPU targets is negligible and the
intersection tends towards zero so that the overhead of trying to maintain
sharing is actually more cost than a benefit.

I did add a few specific comments below. Which should high-light my point that
this is probably working fine for ia32 and x64, but will fall flat when trying
to add ARM or anything else.

-Ivan

https://chromiumcodereview.appspot.com/10543013/diff/2003/runtime/vm/intermed...
File runtime/vm/intermediate_language.cc (right):

https://chromiumcodereview.appspot.com/10543013/diff/2003/runtime/vm/intermed...
runtime/vm/intermediate_language.cc:662: __ int3();
How can this be shared code?

https://chromiumcodereview.appspot.com/10543013/diff/2003/runtime/vm/intermed...
runtime/vm/intermediate_language.cc:680: __ int3();
ditto!

https://chromiumcodereview.appspot.com/10543013/diff/2003/runtime/vm/intermed...
runtime/vm/intermediate_language.cc:699: __ j(EQUAL,
compiler->GetBlockLabel(true_successor()));
This is definitely not a portable assembler instruction.

https://chromiumcodereview.appspot.com/10543013/diff/2003/runtime/vm/intermed...
runtime/vm/intermediate_language.cc:715: __ MoveRegister(locs()->out().reg(),
CTX);
CTX sounds like a very CPU-specific register to me.

Powered by Google App Engine
This is Rietveld 408576698