5 #include "src/compiler/compiler-source-position-table.h" 6 #include "src/compiler/graph.h" 7 #include "src/compiler/node-aux-data.h" 16 : source_positions_(source_positions) {}
18 void Decorate(
Node* node)
final {
19 source_positions_->SetSourcePosition(node,
20 source_positions_->current_position_);
27 SourcePositionTable::SourcePositionTable(
Graph* graph)
31 table_(graph->zone()) {}
33 void SourcePositionTable::AddDecorator() {
34 DCHECK_NULL(decorator_);
35 decorator_ =
new (graph_->zone()) Decorator(
this);
36 graph_->AddDecorator(decorator_);
39 void SourcePositionTable::RemoveDecorator() {
40 DCHECK_NOT_NULL(decorator_);
41 graph_->RemoveDecorator(decorator_);
45 SourcePosition SourcePositionTable::GetSourcePosition(Node* node)
const {
46 return table_.Get(node);
49 void SourcePositionTable::SetSourcePosition(Node* node,
50 SourcePosition position) {
51 table_.Set(node, position);
54 void SourcePositionTable::PrintJson(std::ostream& os)
const {
56 bool needs_comma =
false;
57 for (
auto i : table_) {
58 SourcePosition pos =
i.second;
63 os <<
"\"" <<
i.first <<
"\" : ";