| Index: include/v8-platform.h
|
| diff --git a/src/hydrogen-bce.h b/include/v8-platform.h
|
| similarity index 58%
|
| copy from src/hydrogen-bce.h
|
| copy to include/v8-platform.h
|
| index c55dea7b7a5133b62b0e4fa81f1e4b3fa3022279..4fb8e6433544dffe0bf27411d9174fd9425b835b 100644
|
| --- a/src/hydrogen-bce.h
|
| +++ b/include/v8-platform.h
|
| @@ -25,50 +25,51 @@
|
| // (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_BCE_H_
|
| -#define V8_HYDROGEN_BCE_H_
|
| +#ifndef V8_V8_PLATFORM_H_
|
| +#define V8_V8_PLATFORM_H_
|
|
|
| -#include "hydrogen.h"
|
| +#include "v8.h"
|
|
|
| namespace v8 {
|
| -namespace internal {
|
|
|
| -
|
| -class BoundsCheckBbData;
|
| -class BoundsCheckKey;
|
| -class BoundsCheckTable : private ZoneHashMap {
|
| +/**
|
| + * A Task represents a unit of work.
|
| + */
|
| +class Task {
|
| public:
|
| - explicit BoundsCheckTable(Zone* zone);
|
| -
|
| - INLINE(BoundsCheckBbData** LookupOrInsert(BoundsCheckKey* key, Zone* zone));
|
| - INLINE(void Insert(BoundsCheckKey* key, BoundsCheckBbData* data, Zone* zone));
|
| - INLINE(void Delete(BoundsCheckKey* key));
|
| + virtual ~Task() {}
|
|
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(BoundsCheckTable);
|
| + virtual void Run() = 0;
|
| };
|
|
|
| -
|
| -class HBoundsCheckEliminationPhase : public HPhase {
|
| +/**
|
| + * V8 Platform abstraction layer.
|
| + *
|
| + * The embedder has to provide an implementation of this interface before
|
| + * initializing the rest of V8.
|
| + */
|
| +class Platform {
|
| public:
|
| - explicit HBoundsCheckEliminationPhase(HGraph* graph)
|
| - : HPhase("H_Bounds checks elimination", graph), table_(zone()) { }
|
| -
|
| - void Run() {
|
| - EliminateRedundantBoundsChecks(graph()->entry_block());
|
| - }
|
| -
|
| - private:
|
| - void EliminateRedundantBoundsChecks(HBasicBlock* bb);
|
| - BoundsCheckBbData* PreProcessBlock(HBasicBlock* bb);
|
| - void PostProcessBlock(HBasicBlock* bb, BoundsCheckBbData* data);
|
| -
|
| - BoundsCheckTable table_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(HBoundsCheckEliminationPhase);
|
| + /**
|
| + * Schedules a task to be invoked on a background thread. |task_is_slow|
|
| + * indicates that the task will run a long time. The Platform implementation
|
| + * takes ownership of |task|. There is no guarantee about order of execution
|
| + * of tasks wrt order of scheduling, nor is there a guarantee about the
|
| + * thread the task will be run on.
|
| + */
|
| + virtual void CallOnBackgroundThread(Task* task, bool task_is_slow) = 0;
|
| +
|
| + /**
|
| + * Schedules a task to be invoked on a foreground thread wrt a specific
|
| + * |isolate|. Tasks posted for the same isolate should be execute in order of
|
| + * scheduling. The definition of "foreground" is opaque to V8.
|
| + */
|
| + virtual void CallOnForegroundThread(Isolate* isolate, Task* task) = 0;
|
| +
|
| + protected:
|
| + virtual ~Platform() {}
|
| };
|
|
|
| +} // namespace v8
|
|
|
| -} } // namespace v8::internal
|
| -
|
| -#endif // V8_HYDROGEN_BCE_H_
|
| +#endif // V8_V8_PLATFORM_H_
|
|
|