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

Unified Diff: src/compiler/pipeline.cc

Issue 1168693002: [turbofan] Allow ReplaceWithValue to kill control. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments. Created 5 years, 6 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 | « src/compiler/js-inlining.cc ('k') | src/compiler/typer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/pipeline.cc
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
index e054b0fb412c2fbb0994b5f4cf45360ddaffa54d..5c9ee62a459d3ff4474a722959f3b2cfb2ec2497 100644
--- a/src/compiler/pipeline.cc
+++ b/src/compiler/pipeline.cc
@@ -410,6 +410,15 @@ class SourcePositionWrapper final : public Reducer {
};
+class JSGraphReducer final : public GraphReducer {
+ public:
+ JSGraphReducer(JSGraph* jsgraph, Zone* zone)
+ : GraphReducer(zone, jsgraph->graph(), jsgraph->TheHoleConstant(),
+ jsgraph->DeadControl()) {}
+ ~JSGraphReducer() final {}
+};
+
+
void AddReducer(PipelineData* data, GraphReducer* graph_reducer,
Reducer* reducer) {
if (data->info()->is_source_positions_enabled()) {
@@ -488,7 +497,7 @@ struct ContextSpecializerPhase {
void Run(PipelineData* data, Zone* temp_zone) {
JSContextSpecializer spec(data->jsgraph());
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
AddReducer(data, &graph_reducer, &spec);
graph_reducer.ReduceGraph();
}
@@ -499,7 +508,7 @@ struct InliningPhase {
static const char* phase_name() { return "inlining"; }
void Run(PipelineData* data, Zone* temp_zone) {
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
JSInliner inliner(&graph_reducer, data->info()->is_inlining_enabled()
? JSInliner::kGeneralInlining
: JSInliner::kRestrictedInlining,
@@ -535,7 +544,7 @@ struct JSTypeFeedbackPhase {
TypeFeedbackOracle oracle(data->isolate(), temp_zone,
data->info()->unoptimized_code(),
data->info()->feedback_vector(), native_context);
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
Handle<GlobalObject> global_object = Handle<GlobalObject>::null();
if (data->info()->has_global_object()) {
global_object =
@@ -559,7 +568,7 @@ struct TypedLoweringPhase {
static const char* phase_name() { return "typed lowering"; }
void Run(PipelineData* data, Zone* temp_zone) {
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
LoadElimination load_elimination;
JSBuiltinReducer builtin_reducer(data->jsgraph());
JSTypedLowering typed_lowering(&graph_reducer, data->jsgraph(), temp_zone);
@@ -589,7 +598,7 @@ struct SimplifiedLoweringPhase {
ValueNumberingReducer vn_reducer(temp_zone);
MachineOperatorReducer machine_reducer(data->jsgraph());
CommonOperatorReducer common_reducer(data->jsgraph());
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
AddReducer(data, &graph_reducer, &vn_reducer);
AddReducer(data, &graph_reducer, &machine_reducer);
AddReducer(data, &graph_reducer, &common_reducer);
@@ -617,7 +626,7 @@ struct ChangeLoweringPhase {
ChangeLowering lowering(data->jsgraph());
MachineOperatorReducer machine_reducer(data->jsgraph());
CommonOperatorReducer common_reducer(data->jsgraph());
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
AddReducer(data, &graph_reducer, &vn_reducer);
AddReducer(data, &graph_reducer, &lowering);
AddReducer(data, &graph_reducer, &machine_reducer);
@@ -666,7 +675,7 @@ struct GenericLoweringPhase {
data->jsgraph());
SelectLowering select(data->jsgraph()->graph(), data->jsgraph()->common());
TailCallOptimization tco(data->common(), data->graph());
- GraphReducer graph_reducer(data->graph(), temp_zone);
+ JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
AddReducer(data, &graph_reducer, &generic);
AddReducer(data, &graph_reducer, &select);
// TODO(turbofan): TCO is currently limited to stubs.
« no previous file with comments | « src/compiler/js-inlining.cc ('k') | src/compiler/typer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698