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

Unified Diff: src/allocation-site-scopes.h

Issue 24250005: AllocationSites for all literals (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/allocation-site-scopes.cc » ('j') | src/allocation-site-scopes.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/allocation-site-scopes.h
diff --git a/src/hydrogen-osr.h b/src/allocation-site-scopes.h
similarity index 56%
copy from src/hydrogen-osr.h
copy to src/allocation-site-scopes.h
index ae72ce650c59d198056c5b13db48c258f90109f4..7158317dc967a90bde1b2de5528291ce07c87d17 100644
--- a/src/hydrogen-osr.h
+++ b/src/allocation-site-scopes.h
@@ -25,53 +25,60 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#ifndef V8_HYDROGEN_OSR_H_
-#define V8_HYDROGEN_OSR_H_
+#ifndef V8_ALLOCATION_SITE_SCOPES_H_
+#define V8_ALLOCATION_SITE_SCOPES_H_
-#include "hydrogen.h"
#include "ast.h"
#include "zone.h"
+#include "objects.h"
Hannes Payer (out of office) 2013/10/11 12:55:44 alphabetic order
mvstanton 2013/10/11 13:41:47 Done.
+#include "handles.h"
namespace v8 {
namespace internal {
-// Responsible for building graph parts related to OSR and otherwise
-// setting up the graph to do an OSR compile.
-class HOsrBuilder : public ZoneObject {
+
+class AllocationSiteContext {
public:
- explicit HOsrBuilder(HOptimizedGraphBuilder* builder)
- : unoptimized_frame_slots_(0),
- builder_(builder),
- osr_entry_(NULL),
- osr_loop_entry_(NULL),
- osr_values_(NULL) { }
+ AllocationSiteContext(Isolate* isolate, bool activated) {
+ isolate_ = isolate;
+ activated_ = activated;
+ };
+ Handle<AllocationSite> top() { return top_; }
+ Handle<AllocationSite> current() { return current_; }
+ // If activated, then recursively create sites/mementos
+ bool activated() const { return activated_; }
- // Creates the loop entry block for the given statement, setting up OSR
- // entries as necessary, and sets the current block to the new block.
- HBasicBlock* BuildOsrLoopEntry(IterationStatement* statement);
+ private:
+ friend class AllocationSiteCreationScope;
+ friend class AllocationSiteUsageScope;
- // Process the hydrogen graph after it has been completed, performing
- // any OSR-specific cleanups or changes.
- void FinishGraph();
+ Isolate* isolate_;
+ Handle<AllocationSite> top_;
+ Handle<AllocationSite> current_;
+ bool activated_;
+};
- // Process the OSR values and phis after initial graph optimization.
- void FinishOsrValues();
- // Return the number of slots in the unoptimized frame at the entry to OSR.
- int UnoptimizedFrameSlots() const {
- return unoptimized_frame_slots_;
- }
+class AllocationSiteCreationScope {
+ public:
+ explicit AllocationSiteCreationScope(AllocationSiteContext* context);
+ Handle<Object> RecordTransitionInfo(Handle<Object> transition_info);
+ private:
+ AllocationSiteContext* site_context_;
+ Handle<AllocationSite> current_;
+};
- bool HasOsrEntryAt(IterationStatement* statement);
- private:
- int unoptimized_frame_slots_;
- HOptimizedGraphBuilder* builder_;
- HBasicBlock* osr_entry_;
- HBasicBlock* osr_loop_entry_;
- ZoneList<HUnknownOSRValue*>* osr_values_;
+class AllocationSiteUsageScope {
+ public:
+ AllocationSiteUsageScope(AllocationSiteContext* context,
+ Handle<Object> expected_transition_info);
+ AllocationSiteUsageScope(AllocationSiteContext* context,
+ Handle<AllocationSite> top,
+ Handle<Object> expected_transition_info);
};
+
} } // namespace v8::internal
-#endif // V8_HYDROGEN_OSR_H_
+#endif // V8_ALLOCATION_SITE_SCOPES_H_
« no previous file with comments | « no previous file | src/allocation-site-scopes.cc » ('j') | src/allocation-site-scopes.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698