diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
commit | a4e969f4965059196ca948db781e52f7cfebf19e (patch) | |
tree | 6ca352808c8fdc52006a0f33f6ae3c593b23867d /Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp | |
parent | 41386e9cb918eed93b3f13648cbef387e371e451 (diff) | |
download | WebKitGtk-tarball-a4e969f4965059196ca948db781e52f7cfebf19e.tar.gz |
webkitgtk-2.12.3webkitgtk-2.12.3
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp b/Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp index 252d638ee..d57c01c70 100644 --- a/Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp +++ b/Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013, 2014 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -28,6 +28,8 @@ #if ENABLE(DFG_JIT) +#include "JSCInlines.h" + namespace JSC { namespace DFG { BlockInsertionSet::BlockInsertionSet(Graph& graph) @@ -47,20 +49,21 @@ void BlockInsertionSet::insert(size_t index, PassRefPtr<BasicBlock> block) insert(BlockInsertion(index, block)); } -BasicBlock* BlockInsertionSet::insert(size_t index) +BasicBlock* BlockInsertionSet::insert(size_t index, float executionCount) { RefPtr<BasicBlock> block = adoptRef(new BasicBlock( UINT_MAX, m_graph.block(0)->variablesAtHead.numberOfArguments(), - m_graph.block(0)->variablesAtHead.numberOfLocals())); + m_graph.block(0)->variablesAtHead.numberOfLocals(), + executionCount)); block->isReachable = true; insert(index, block); return block.get(); } -BasicBlock* BlockInsertionSet::insertBefore(BasicBlock* before) +BasicBlock* BlockInsertionSet::insertBefore(BasicBlock* before, float executionCount) { - return insert(before->index); + return insert(before->index, executionCount); } bool BlockInsertionSet::execute() @@ -68,8 +71,9 @@ bool BlockInsertionSet::execute() if (m_insertions.isEmpty()) return false; - // We allow insertions to be given to us in any order. So, we need to - // sort them before running WTF::executeInsertions. + // We allow insertions to be given to us in any order. So, we need to sort them before + // running WTF::executeInsertions. Also, we don't really care if the sort is stable since + // basic block order doesn't have semantics - it's just to make code easier to read. std::sort(m_insertions.begin(), m_insertions.end()); executeInsertions(m_graph.m_blocks, m_insertions); |