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

Side by Side Diff: src/full-codegen.h

Issue 16631002: Separate Cell and PropertyCell spaces (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove Mips changes Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « src/factory.cc ('k') | src/full-codegen.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 void EmitLiteralCompareNil(CompareOperation* expr, 430 void EmitLiteralCompareNil(CompareOperation* expr,
431 Expression* sub_expr, 431 Expression* sub_expr,
432 NilValue nil); 432 NilValue nil);
433 433
434 // Bailout support. 434 // Bailout support.
435 void PrepareForBailout(Expression* node, State state); 435 void PrepareForBailout(Expression* node, State state);
436 void PrepareForBailoutForId(BailoutId id, State state); 436 void PrepareForBailoutForId(BailoutId id, State state);
437 437
438 // Cache cell support. This associates AST ids with global property cells 438 // Cache cell support. This associates AST ids with global property cells
439 // that will be cleared during GC and collected by the type-feedback oracle. 439 // that will be cleared during GC and collected by the type-feedback oracle.
440 void RecordTypeFeedbackCell(TypeFeedbackId id, 440 void RecordTypeFeedbackCell(TypeFeedbackId id, Handle<Cell> cell);
441 Handle<JSGlobalPropertyCell> cell);
442 441
443 // Record a call's return site offset, used to rebuild the frame if the 442 // Record a call's return site offset, used to rebuild the frame if the
444 // called function was inlined at the site. 443 // called function was inlined at the site.
445 void RecordJSReturnSite(Call* call); 444 void RecordJSReturnSite(Call* call);
446 445
447 // Prepare for bailout before a test (or compare) and branch. If 446 // Prepare for bailout before a test (or compare) and branch. If
448 // should_normalize, then the following comparison will not handle the 447 // should_normalize, then the following comparison will not handle the
449 // canonical JS true value so we will insert a (dead) test against true at 448 // canonical JS true value so we will insert a (dead) test against true at
450 // the actual bailout target from the optimized code. If not 449 // the actual bailout target from the optimized code. If not
451 // should_normalize, the true and false labels are ignored. 450 // should_normalize, the true and false labels are ignored.
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 }; 640 };
642 641
643 struct BackEdgeEntry { 642 struct BackEdgeEntry {
644 BailoutId id; 643 BailoutId id;
645 unsigned pc; 644 unsigned pc;
646 uint8_t loop_depth; 645 uint8_t loop_depth;
647 }; 646 };
648 647
649 struct TypeFeedbackCellEntry { 648 struct TypeFeedbackCellEntry {
650 TypeFeedbackId ast_id; 649 TypeFeedbackId ast_id;
651 Handle<JSGlobalPropertyCell> cell; 650 Handle<Cell> cell;
652 }; 651 };
653 652
654 653
655 class ExpressionContext BASE_EMBEDDED { 654 class ExpressionContext BASE_EMBEDDED {
656 public: 655 public:
657 explicit ExpressionContext(FullCodeGenerator* codegen) 656 explicit ExpressionContext(FullCodeGenerator* codegen)
658 : masm_(codegen->masm()), old_(codegen->context()), codegen_(codegen) { 657 : masm_(codegen->masm()), old_(codegen->context()), codegen_(codegen) {
659 codegen->set_new_context(this); 658 codegen->set_new_context(this);
660 } 659 }
661 660
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 ZoneList<Handle<Object> >* globals_; 836 ZoneList<Handle<Object> >* globals_;
838 Handle<FixedArray> modules_; 837 Handle<FixedArray> modules_;
839 int module_index_; 838 int module_index_;
840 const ExpressionContext* context_; 839 const ExpressionContext* context_;
841 ZoneList<BailoutEntry> bailout_entries_; 840 ZoneList<BailoutEntry> bailout_entries_;
842 GrowableBitVector prepared_bailout_ids_; 841 GrowableBitVector prepared_bailout_ids_;
843 ZoneList<BackEdgeEntry> back_edges_; 842 ZoneList<BackEdgeEntry> back_edges_;
844 ZoneList<TypeFeedbackCellEntry> type_feedback_cells_; 843 ZoneList<TypeFeedbackCellEntry> type_feedback_cells_;
845 int ic_total_count_; 844 int ic_total_count_;
846 Handle<FixedArray> handler_table_; 845 Handle<FixedArray> handler_table_;
847 Handle<JSGlobalPropertyCell> profiling_counter_; 846 Handle<Cell> profiling_counter_;
848 bool generate_debug_code_; 847 bool generate_debug_code_;
849 Zone* zone_; 848 Zone* zone_;
850 849
851 friend class NestedStatement; 850 friend class NestedStatement;
852 851
853 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS(); 852 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
854 DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator); 853 DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator);
855 }; 854 };
856 855
857 856
(...skipping 15 matching lines...) Expand all
873 } 872 }
874 873
875 private: 874 private:
876 Zone* zone_; 875 Zone* zone_;
877 }; 876 };
878 877
879 878
880 } } // namespace v8::internal 879 } } // namespace v8::internal
881 880
882 #endif // V8_FULL_CODEGEN_H_ 881 #endif // V8_FULL_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/factory.cc ('k') | src/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698