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

Issue 10882055: Put live register bits in stackmaps. (Closed)

Created:
8 years, 3 months ago by Kevin Millikin (Google)
Modified:
8 years, 3 months ago
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Put live register bits in stackmaps. Add a count of live registers to each stackmap and add bits describing the registers. This allows untagged values in general purpose registers at safepoints. R=vegorov@google.com BUG= Committed: https://code.google.com/p/dart/source/detail?r=11595

Patch Set 1 #

Total comments: 7

Patch Set 2 : Handle XMM registers in stackmaps. #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+134 lines, -63 lines) Patch
M runtime/vm/bitmap_test.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/code_descriptors.h View 1 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/code_descriptors.cc View 1 1 chunk +3 lines, -2 lines 0 comments Download
M runtime/vm/code_descriptors_test.cc View 5 chunks +6 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_allocator.h View 1 1 chunk +2 lines, -0 lines 2 comments Download
M runtime/vm/flow_graph_allocator.cc View 1 3 chunks +9 lines, -20 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 2 chunks +37 lines, -1 line 4 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 4 chunks +14 lines, -8 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 4 chunks +15 lines, -13 lines 0 comments Download
M runtime/vm/object.h View 1 2 chunks +8 lines, -1 line 0 comments Download
M runtime/vm/object.cc View 1 2 chunks +4 lines, -1 line 0 comments Download
M runtime/vm/raw_object.h View 1 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/stack_frame.cc View 1 1 chunk +27 lines, -9 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Kevin Millikin (Google)
8 years, 3 months ago (2012-08-27 09:04:19 UTC) #1
Vyacheslav Egorov (Google)
lgtm if you remove hack that is used for spilling XMMRegisters on slow paths and ...
8 years, 3 months ago (2012-08-27 14:54:51 UTC) #2
Kevin Millikin (Google)
Now handling XMM registers. Please take a quick look. https://chromiumcodereview.appspot.com/10882055/diff/1/runtime/vm/flow_graph_compiler.cc File runtime/vm/flow_graph_compiler.cc (right): https://chromiumcodereview.appspot.com/10882055/diff/1/runtime/vm/flow_graph_compiler.cc#newcode246 runtime/vm/flow_graph_compiler.cc:246: ...
8 years, 3 months ago (2012-08-29 12:40:41 UTC) #3
Vyacheslav Egorov (Google)
lgtm https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_graph_allocator.h File runtime/vm/flow_graph_allocator.h (right): https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_graph_allocator.h#newcode22 runtime/vm/flow_graph_allocator.h:22: static const intptr_t kDoubleSpillSlotFactor = kDoubleSize / kWordSize; ...
8 years, 3 months ago (2012-08-30 09:24:35 UTC) #4
Kevin Millikin (Google)
8 years, 3 months ago (2012-08-30 10:02:21 UTC) #5
https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_gra...
File runtime/vm/flow_graph_allocator.h (right):

https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_gra...
runtime/vm/flow_graph_allocator.h:22: static const intptr_t
kDoubleSpillSlotFactor = kDoubleSize / kWordSize;
On 2012/08/30 09:24:35, Vyacheslav Egorov (Google) wrote:
> you copied the constant but not the comment.

I restored the comment.

https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_gra...
File runtime/vm/flow_graph_compiler.cc (right):

https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_gra...
runtime/vm/flow_graph_compiler.cc:262: // Mark the bits in the stack map in the
same order we push registers
On 2012/08/30 09:24:35, Vyacheslav Egorov (Google) wrote:
> this does not actually match with that order: when we store xmm registers xmm0
> comes at the top (if live), but here last one comes at the top.

You're right and it's a bit fishy.  I've made it match.

https://chromiumcodereview.appspot.com/10882055/diff/6001/runtime/vm/flow_gra...
runtime/vm/flow_graph_compiler.cc:267: // assumption that  there are normally
few live  XMM registers, this
On 2012/08/30 09:24:35, Vyacheslav Egorov (Google) wrote:
> s/live  XMM/live XMM/

You don't like the fully justified comments?

Powered by Google App Engine
This is Rietveld 408576698