| 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.
 | 
| 
 |