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

Side by Side Diff: src/interpreter/bytecode-array-builder.h

Issue 2676583002: [ic] Encode [Keyed]StoreIC's language mode in slot kind instead of code object's flags. (Closed)
Patch Set: Rebasing Created 3 years, 10 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
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_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ 5 #ifndef V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_
6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ 6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_
7 7
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/base/compiler-specific.h" 9 #include "src/base/compiler-specific.h"
10 #include "src/globals.h" 10 #include "src/globals.h"
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 return &register_allocator_; 378 return &register_allocator_;
379 } 379 }
380 Zone* zone() const { return zone_; } 380 Zone* zone() const { return zone_; }
381 381
382 private: 382 private:
383 friend class BytecodeRegisterAllocator; 383 friend class BytecodeRegisterAllocator;
384 template <Bytecode bytecode, AccumulatorUse accumulator_use, 384 template <Bytecode bytecode, AccumulatorUse accumulator_use,
385 OperandType... operand_types> 385 OperandType... operand_types>
386 friend class BytecodeNodeBuilder; 386 friend class BytecodeNodeBuilder;
387 387
388 const FeedbackVectorSpec* feedback_vector_spec() const {
389 return literal_->feedback_vector_spec();
390 }
391
388 // Returns the current source position for the given |bytecode|. 392 // Returns the current source position for the given |bytecode|.
389 INLINE(BytecodeSourceInfo CurrentSourcePosition(Bytecode bytecode)); 393 INLINE(BytecodeSourceInfo CurrentSourcePosition(Bytecode bytecode));
390 394
391 #define DECLARE_BYTECODE_OUTPUT(Name, ...) \ 395 #define DECLARE_BYTECODE_OUTPUT(Name, ...) \
392 template <typename... Operands> \ 396 template <typename... Operands> \
393 INLINE(void Output##Name(Operands... operands)); \ 397 INLINE(void Output##Name(Operands... operands)); \
394 template <typename... Operands> \ 398 template <typename... Operands> \
395 INLINE(void Output##Name(BytecodeLabel* label, Operands... operands)); 399 INLINE(void Output##Name(BytecodeLabel* label, Operands... operands));
396 BYTECODE_LIST(DECLARE_BYTECODE_OUTPUT) 400 BYTECODE_LIST(DECLARE_BYTECODE_OUTPUT)
397 #undef DECLARE_OPERAND_TYPE_INFO 401 #undef DECLARE_OPERAND_TYPE_INFO
(...skipping 22 matching lines...) Expand all
420 return &constant_array_builder_; 424 return &constant_array_builder_;
421 } 425 }
422 const ConstantArrayBuilder* constant_array_builder() const { 426 const ConstantArrayBuilder* constant_array_builder() const {
423 return &constant_array_builder_; 427 return &constant_array_builder_;
424 } 428 }
425 HandlerTableBuilder* handler_table_builder() { 429 HandlerTableBuilder* handler_table_builder() {
426 return &handler_table_builder_; 430 return &handler_table_builder_;
427 } 431 }
428 432
429 Zone* zone_; 433 Zone* zone_;
434 FunctionLiteral* literal_;
430 bool bytecode_generated_; 435 bool bytecode_generated_;
431 ConstantArrayBuilder constant_array_builder_; 436 ConstantArrayBuilder constant_array_builder_;
432 HandlerTableBuilder handler_table_builder_; 437 HandlerTableBuilder handler_table_builder_;
433 bool return_seen_in_block_; 438 bool return_seen_in_block_;
434 int parameter_count_; 439 int parameter_count_;
435 int local_register_count_; 440 int local_register_count_;
436 int context_register_count_; 441 int context_register_count_;
437 int return_position_; 442 int return_position_;
438 BytecodeRegisterAllocator register_allocator_; 443 BytecodeRegisterAllocator register_allocator_;
439 BytecodeArrayWriter bytecode_array_writer_; 444 BytecodeArrayWriter bytecode_array_writer_;
440 BytecodePipelineStage* pipeline_; 445 BytecodePipelineStage* pipeline_;
441 BytecodeRegisterOptimizer* register_optimizer_; 446 BytecodeRegisterOptimizer* register_optimizer_;
442 BytecodeSourceInfo latest_source_info_; 447 BytecodeSourceInfo latest_source_info_;
443 448
444 static int const kNoFeedbackSlot = 0; 449 static int const kNoFeedbackSlot = 0;
445 450
446 DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder); 451 DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder);
447 }; 452 };
448 453
449 } // namespace interpreter 454 } // namespace interpreter
450 } // namespace internal 455 } // namespace internal
451 } // namespace v8 456 } // namespace v8
452 457
453 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ 458 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698