Commit 16e25a11 authored by dcarney@chromium.org's avatar dcarney@chromium.org

[turbofan] delete graph and schedule before register allocation.

R=mstarzinger@chromium.org, titzer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/662513005

Cr-Commit-Position: refs/heads/master@{#24894}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b714772c
......@@ -131,7 +131,7 @@ std::ostream& operator<<(std::ostream&, FrameStateCallInfo const&);
// Interface for building common operators that can be used at any level of IR,
// including JavaScript, mid-level, and low-level.
class CommonOperatorBuilder FINAL {
class CommonOperatorBuilder FINAL : public ZoneObject {
public:
explicit CommonOperatorBuilder(Zone* zone);
......@@ -174,6 +174,8 @@ class CommonOperatorBuilder FINAL {
const CommonOperatorBuilderImpl& impl_;
Zone* const zone_;
DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder);
};
} // namespace compiler
......
......@@ -128,6 +128,8 @@ class JSGraph : public ZoneObject {
Node* NumberConstant(double value);
Factory* factory() { return isolate()->factory(); }
DISALLOW_COPY_AND_ASSIGN(JSGraph);
};
} // namespace compiler
......
......@@ -195,7 +195,7 @@ const StoreNamedParameters& StoreNamedParametersOf(const Operator* op);
// Interface for building JavaScript-level operators, e.g. directly from the
// AST. Most operators have no parameters, thus can be globally shared for all
// graphs.
class JSOperatorBuilder FINAL {
class JSOperatorBuilder FINAL : public ZoneObject {
public:
explicit JSOperatorBuilder(Zone* zone);
......@@ -266,6 +266,8 @@ class JSOperatorBuilder FINAL {
const JSOperatorBuilderImpl& impl_;
Zone* const zone_;
DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder);
};
} // namespace compiler
......
......@@ -56,7 +56,7 @@ StoreRepresentation const& StoreRepresentationOf(Operator const*);
// Interface for building machine-level operators. These operators are
// machine-level but machine-independent and thus define a language suitable
// for generating code to run on architectures such as ia32, x64, arm, etc.
class MachineOperatorBuilder FINAL {
class MachineOperatorBuilder FINAL : public ZoneObject {
public:
// Flags that specify which operations are available. This is useful
// for operations that are unsupported by some back-ends.
......@@ -209,6 +209,7 @@ class MachineOperatorBuilder FINAL {
const MachineOperatorBuilderImpl& impl_;
const MachineType word_;
const Flags flags_;
DISALLOW_COPY_AND_ASSIGN(MachineOperatorBuilder);
};
......
This diff is collapsed.
......@@ -18,13 +18,9 @@ namespace compiler {
// Clients of this interface shouldn't depend on lots of compiler internals.
class Graph;
class InstructionSequence;
class Linkage;
class PipelineStatistics;
class RegisterAllocator;
class PipelineData;
class Schedule;
class SourcePositionTable;
class ZonePool;
class Pipeline {
public:
......@@ -49,15 +45,11 @@ class Pipeline {
CompilationInfo* info() const { return info_; }
Isolate* isolate() { return info_->isolate(); }
Zone* zone() { return info_->zone(); }
Schedule* ComputeSchedule(ZonePool* zone_pool, Graph* graph);
void ComputeSchedule(PipelineData* data);
void VerifyAndPrintGraph(Graph* graph, const char* phase,
bool untyped = false);
Handle<Code> GenerateCode(PipelineStatistics* pipeline_statistics,
ZonePool* zone_pool, Linkage* linkage, Graph* graph,
Schedule* schedule,
SourcePositionTable* source_positions);
Handle<Code> GenerateCode(Linkage* linkage, PipelineData* data);
};
}
}
......
......@@ -277,6 +277,8 @@ class Schedule FINAL : public ZoneObject {
BasicBlockVector rpo_order_; // Reverse-post-order block list.
BasicBlock* start_;
BasicBlock* end_;
DISALLOW_COPY_AND_ASSIGN(Schedule);
};
std::ostream& operator<<(std::ostream& os, const Schedule& s);
......
......@@ -71,6 +71,7 @@ class Typer {
ZoneVector<Handle<Object> > weaken_min_limits_;
ZoneVector<Handle<Object> > weaken_max_limits_;
DISALLOW_COPY_AND_ASSIGN(Typer);
};
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment