Update ReceiverObjectNeedsWriteBarrier to include HFastLiteral (issue 11143005)

5 views
Skip to first unread message

mstar...@chromium.org

unread,
Oct 25, 2012, 11:31:15 AM10/25/12
to dco...@codeaurora.org, da...@chromium.org, ul...@chromium.org, v8-...@googlegroups.com
LGTM. I'll rebase and land this.

Just out of curiosity, did you find an application or a benchmark that
benefits
from that? Because when I implemented the write-barrier removal I just
couldn't
find any and decided to skip HFastLiteral for the time being.

https://codereview.chromium.org/11143005/

dco...@codeaurora.org

unread,
Oct 25, 2012, 12:43:36 PM10/25/12
to da...@chromium.org, ul...@chromium.org, mstar...@chromium.org, v8-...@googlegroups.com
Reviewers: danno, ulan, Michael Starzinger,

Message:
I've mostly been experimenting on microbenchmarks. I didn't see a
significant
improvement on the V8 benchmark, but I don't think object/array literals are
used that heavily there. Since the write barrier should never be executed in
this case, this mainly just reduces code size.

Description:
Update ReceiverObjectNeedsWriteBarrier to include HFastLiteral
This will prevent unnecessary write barriers for literals.
BUG=none
TEST=none

Committed: https://code.google.com/p/v8/source/detail?r=12823

Please review this at https://codereview.chromium.org/11143005/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
M AUTHORS
M src/hydrogen-instructions.h


Index: AUTHORS
===================================================================
--- AUTHORS (revision 12502)
+++ AUTHORS (working copy)
@@ -20,6 +20,7 @@
Craig Schlenter <craig.s...@gmail.com>
Daniel Andersson <kodand...@gmail.com>
Daniel James <dnl...@gmail.com>
+Derek J Conrod <dco...@codeaurora.org>
Dineel D Sule <ds...@codeaurora.org>
Erich Ocean <erich...@me.com>
Fedor Indutny <fe...@indutny.com>
Index: src/hydrogen-instructions.h
===================================================================
--- src/hydrogen-instructions.h (revision 12502)
+++ src/hydrogen-instructions.h (working copy)
@@ -3835,7 +3835,8 @@

inline bool ReceiverObjectNeedsWriteBarrier(HValue* object,
HValue* new_space_dominator) {
- return !object->IsAllocateObject() || (object != new_space_dominator);
+ return (!object->IsAllocateObject() && !object->IsFastLiteral()) ||
+ object != new_space_dominator;
}




Reply all
Reply to author
Forward
0 new messages