blob: 90308bc44e41fd58f434e18515921c956e5bdf65 [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef RUNTIME_VM_COMPILER_BACKEND_BLOCK_SCHEDULER_H_
#define RUNTIME_VM_COMPILER_BACKEND_BLOCK_SCHEDULER_H_
#include "vm/allocation.h"
namespace dart {
class FlowGraph;
class BlockScheduler : public ValueObject {
public:
explicit BlockScheduler(FlowGraph* flow_graph) : flow_graph_(flow_graph) {}
FlowGraph* flow_graph() const { return flow_graph_; }
void AssignEdgeWeights() const;
void ReorderBlocks() const;
private:
void ReorderBlocksAOT() const;
void ReorderBlocksJIT() const;
FlowGraph* const flow_graph_;
};
} // namespace dart
#endif // RUNTIME_VM_COMPILER_BACKEND_BLOCK_SCHEDULER_H_