 Chromium Code Reviews
 Chromium Code Reviews Issue 11817017:
  Additional work to get array literal allocation tracking working, even with --always-opt  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
    
  
    Issue 11817017:
  Additional work to get array literal allocation tracking working, even with --always-opt  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge| Index: src/code-stubs.h | 
| diff --git a/src/code-stubs.h b/src/code-stubs.h | 
| index a02a9598d7dd6d0d348253b8a18c43558225114f..866deddcda4d93c259618a663298767ee2d83d2f 100644 | 
| --- a/src/code-stubs.h | 
| +++ b/src/code-stubs.h | 
| @@ -424,8 +424,11 @@ class FastCloneShallowArrayStub : public PlatformCodeStub { | 
| static const int kMaximumClonedLength = 8; | 
| enum Mode { | 
| CLONE_ELEMENTS, | 
| + CLONE_ELEMENTS_WITH_ALLOCATION_SITE_INFO, | 
| 
mvstanton
2013/01/11 16:56:06
Instead, use a bitfield that combines the Allocati
 
mvstanton
2013/01/15 15:23:15
Done.
 | 
| CLONE_DOUBLE_ELEMENTS, | 
| + CLONE_DOUBLE_ELEMENTS_WITH_ALLOCATION_SITE_INFO, | 
| COPY_ON_WRITE_ELEMENTS, | 
| + COPY_ON_WRITE_ELEMENTS_WITH_ALLOCATION_SITE_INFO, | 
| CLONE_ANY_ELEMENTS, | 
| CLONE_ANY_ELEMENTS_WITH_ALLOCATION_SITE_INFO, | 
| LAST_CLONE_MODE = CLONE_ANY_ELEMENTS_WITH_ALLOCATION_SITE_INFO | 
| @@ -442,6 +445,33 @@ class FastCloneShallowArrayStub : public PlatformCodeStub { | 
| void Generate(MacroAssembler* masm); | 
| + static inline bool TrackAllocationSiteInfo(Mode mode) { | 
| 
danno
2013/01/11 16:14:40
nit: "Track" is a command, but you use it a query.
 
mvstanton
2013/01/15 15:23:15
Good point, thanks. I took Toon's advice and ended
 | 
| + return mode == CLONE_ELEMENTS_WITH_ALLOCATION_SITE_INFO || | 
| + mode == CLONE_DOUBLE_ELEMENTS_WITH_ALLOCATION_SITE_INFO || | 
| + mode == CLONE_ANY_ELEMENTS_WITH_ALLOCATION_SITE_INFO || | 
| + mode == COPY_ON_WRITE_ELEMENTS_WITH_ALLOCATION_SITE_INFO; | 
| + } | 
| + | 
| + static inline bool IsCloneElementsMode(Mode mode) { | 
| + return mode == CLONE_ELEMENTS || | 
| + mode == CLONE_ELEMENTS_WITH_ALLOCATION_SITE_INFO; | 
| + } | 
| + | 
| + static inline bool IsCloneDoubleElementsMode(Mode mode) { | 
| + return mode == CLONE_DOUBLE_ELEMENTS || | 
| + mode == CLONE_DOUBLE_ELEMENTS_WITH_ALLOCATION_SITE_INFO; | 
| + } | 
| + | 
| + static inline bool IsCopyOnWriteElementsMode(Mode mode) { | 
| + return mode == COPY_ON_WRITE_ELEMENTS || | 
| + mode == COPY_ON_WRITE_ELEMENTS_WITH_ALLOCATION_SITE_INFO; | 
| + } | 
| + | 
| + static inline bool IsCloneAnyElementsMode(Mode mode) { | 
| + return mode == CLONE_ANY_ELEMENTS || | 
| + mode == CLONE_ANY_ELEMENTS_WITH_ALLOCATION_SITE_INFO; | 
| + } | 
| + | 
| private: | 
| Mode mode_; | 
| int length_; |