| Index: src/compiler/effect-control-linearizer.cc
|
| diff --git a/src/compiler/effect-control-linearizer.cc b/src/compiler/effect-control-linearizer.cc
|
| index ad86ca5d81ce62f8093b0611444ffc177c06206a..ae6b622b988a59c2d3ef208e14219bf389a00c0f 100644
|
| --- a/src/compiler/effect-control-linearizer.cc
|
| +++ b/src/compiler/effect-control-linearizer.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "src/code-factory.h"
|
| #include "src/compiler/access-builder.h"
|
| +#include "src/compiler/compiler-source-position-table.h"
|
| #include "src/compiler/js-graph.h"
|
| #include "src/compiler/linkage.h"
|
| #include "src/compiler/node-matchers.h"
|
| @@ -17,10 +18,13 @@ namespace v8 {
|
| namespace internal {
|
| namespace compiler {
|
|
|
| -EffectControlLinearizer::EffectControlLinearizer(JSGraph* js_graph,
|
| - Schedule* schedule,
|
| - Zone* temp_zone)
|
| - : js_graph_(js_graph), schedule_(schedule), temp_zone_(temp_zone) {}
|
| +EffectControlLinearizer::EffectControlLinearizer(
|
| + JSGraph* js_graph, Schedule* schedule, Zone* temp_zone,
|
| + SourcePositionTable* source_positions)
|
| + : js_graph_(js_graph),
|
| + schedule_(schedule),
|
| + temp_zone_(temp_zone),
|
| + source_positions_(source_positions) {}
|
|
|
| Graph* EffectControlLinearizer::graph() const { return js_graph_->graph(); }
|
| CommonOperatorBuilder* EffectControlLinearizer::common() const {
|
| @@ -428,7 +432,13 @@ void EffectControlLinearizer::Run() {
|
| // Process the ordinary instructions.
|
| for (; instr < block->NodeCount(); instr++) {
|
| Node* node = block->NodeAt(instr);
|
| - ProcessNode(node, &frame_state, &effect, &control);
|
| + if (source_positions_) {
|
| + SourcePositionTable::Scope scope(
|
| + source_positions_, source_positions_->GetSourcePosition(node));
|
| + ProcessNode(node, &frame_state, &effect, &control);
|
| + } else {
|
| + ProcessNode(node, &frame_state, &effect, &control);
|
| + }
|
| }
|
|
|
| switch (block->control()) {
|
|
|