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

Side by Side Diff: src/compiler/bytecode-graph-builder.h

Issue 2207533002: [turbofan] Remove IfExceptionHint from exception projections. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased. Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/compiler/bytecode-graph-builder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ 5 #ifndef V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_
6 #define V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ 6 #define V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_
7 7
8 #include "src/compiler.h" 8 #include "src/compiler.h"
9 #include "src/compiler/bytecode-branch-analysis.h" 9 #include "src/compiler/bytecode-branch-analysis.h"
10 #include "src/compiler/js-graph.h" 10 #include "src/compiler/js-graph.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 // Simulates control flow that exits the function body. 148 // Simulates control flow that exits the function body.
149 void MergeControlToLeaveFunction(Node* exit); 149 void MergeControlToLeaveFunction(Node* exit);
150 150
151 // Simulates entry and exit of exception handlers. 151 // Simulates entry and exit of exception handlers.
152 void EnterAndExitExceptionHandlers(int current_offset); 152 void EnterAndExitExceptionHandlers(int current_offset);
153 153
154 // Growth increment for the temporary buffer used to construct input lists to 154 // Growth increment for the temporary buffer used to construct input lists to
155 // new nodes. 155 // new nodes.
156 static const int kInputBufferSizeIncrement = 64; 156 static const int kInputBufferSizeIncrement = 64;
157 157
158 // The catch prediction from the handler table is reused.
159 typedef HandlerTable::CatchPrediction CatchPrediction;
160
161 // An abstract representation for an exception handler that is being 158 // An abstract representation for an exception handler that is being
162 // entered and exited while the graph builder is iterating over the 159 // entered and exited while the graph builder is iterating over the
163 // underlying bytecode. The exception handlers within the bytecode are 160 // underlying bytecode. The exception handlers within the bytecode are
164 // well scoped, hence will form a stack during iteration. 161 // well scoped, hence will form a stack during iteration.
165 struct ExceptionHandler { 162 struct ExceptionHandler {
166 int start_offset_; // Start offset of the handled area in the bytecode. 163 int start_offset_; // Start offset of the handled area in the bytecode.
167 int end_offset_; // End offset of the handled area in the bytecode. 164 int end_offset_; // End offset of the handled area in the bytecode.
168 int handler_offset_; // Handler entry offset within the bytecode. 165 int handler_offset_; // Handler entry offset within the bytecode.
169 int context_register_; // Index of register holding handler context. 166 int context_register_; // Index of register holding handler context.
170 CatchPrediction pred_; // Prediction of whether handler is catching.
171 }; 167 };
172 168
173 // Field accessors 169 // Field accessors
174 Graph* graph() const { return jsgraph_->graph(); } 170 Graph* graph() const { return jsgraph_->graph(); }
175 CommonOperatorBuilder* common() const { return jsgraph_->common(); } 171 CommonOperatorBuilder* common() const { return jsgraph_->common(); }
176 Zone* graph_zone() const { return graph()->zone(); } 172 Zone* graph_zone() const { return graph()->zone(); }
177 JSGraph* jsgraph() const { return jsgraph_; } 173 JSGraph* jsgraph() const { return jsgraph_; }
178 JSOperatorBuilder* javascript() const { return jsgraph_->javascript(); } 174 JSOperatorBuilder* javascript() const { return jsgraph_->javascript(); }
179 Zone* local_zone() const { return local_zone_; } 175 Zone* local_zone() const { return local_zone_; }
180 const Handle<BytecodeArray>& bytecode_array() const { 176 const Handle<BytecodeArray>& bytecode_array() const {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 ZoneVector<Node*> exit_controls_; 240 ZoneVector<Node*> exit_controls_;
245 241
246 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder); 242 DISALLOW_COPY_AND_ASSIGN(BytecodeGraphBuilder);
247 }; 243 };
248 244
249 } // namespace compiler 245 } // namespace compiler
250 } // namespace internal 246 } // namespace internal
251 } // namespace v8 247 } // namespace v8
252 248
253 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_ 249 #endif // V8_COMPILER_BYTECODE_GRAPH_BUILDER_H_
OLDNEW
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/compiler/bytecode-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698