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

Issue 12050002: Introduce InvokeMathCFunction that can be used to directly invoke mathematical function provided by… (Closed)

Created:
7 years, 11 months ago by Vyacheslav Egorov (Google)
Modified:
7 years, 11 months ago
Reviewers:
Florian Schneider
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Introduce InvokeMathCFunction that can be used to directly invoke mathematical function provided by runtime. Use it to unconditionally inline _Double.pow. Use it to inline floor, ceil, round, truncate, round when SSE4.1 is not available. Perform representation selection phase after constant propagation to minimize boxing. Add support for enter instruction in the x64 disassembler. R=fschneider@google.com BUG=dart:8002 Committed: https://code.google.com/p/dart/source/detail?r=17365

Patch Set 1 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+292 lines, -39 lines) Patch
M runtime/vm/compiler.cc View 1 chunk +7 lines, -6 lines 0 comments Download
M runtime/vm/disassembler_x64.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 3 chunks +62 lines, -30 lines 2 comments Download
M runtime/vm/il_printer.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.h View 4 chunks +74 lines, -1 line 0 comments Download
M runtime/vm/intermediate_language.cc View 2 chunks +60 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 chunk +11 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 chunk +27 lines, -0 lines 2 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 chunk +34 lines, -0 lines 0 comments Download
M runtime/vm/locations.h View 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Vyacheslav Egorov (Google)
7 years, 11 months ago (2013-01-21 16:10:46 UTC) #1
Florian Schneider
LGTM. https://codereview.chromium.org/12050002/diff/1/runtime/vm/flow_graph_optimizer.cc File runtime/vm/flow_graph_optimizer.cc (right): https://codereview.chromium.org/12050002/diff/1/runtime/vm/flow_graph_optimizer.cc#newcode1378 runtime/vm/flow_graph_optimizer.cc:1378: } I'd add a comment for intended fall-through. ...
7 years, 11 months ago (2013-01-21 16:31:26 UTC) #2
Vyacheslav Egorov (Google)
7 years, 11 months ago (2013-01-21 16:50:08 UTC) #3
Thanks for the review. Landing.

https://codereview.chromium.org/12050002/diff/1/runtime/vm/flow_graph_optimiz...
File runtime/vm/flow_graph_optimizer.cc (right):

https://codereview.chromium.org/12050002/diff/1/runtime/vm/flow_graph_optimiz...
runtime/vm/flow_graph_optimizer.cc:1378: }
On 2013/01/21 16:31:26, Florian Schneider wrote:
> I'd add a comment for intended fall-through.

There is no fall through. Removed curly braces for clarity.

https://codereview.chromium.org/12050002/diff/1/runtime/vm/intermediate_langu...
File runtime/vm/intermediate_language_ia32.cc (right):

https://codereview.chromium.org/12050002/diff/1/runtime/vm/intermediate_langu...
runtime/vm/intermediate_language_ia32.cc:2434: result->set_in(0,
Location::FpuRegisterLocation(XMM1, Location::kDouble));
On 2013/01/21 16:31:26, Florian Schneider wrote:
> Do you really need fixed locations here? You could also assign locations in a
> loop from 0..InputCount()

Instruction is marked as a call to ensure that register allocator takes care of
spilling.

Powered by Google App Engine
This is Rietveld 408576698