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

Side by Side Diff: src/lithium.h

Issue 264973013: Don't add code dependencies eagerly for HCheckMaps. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 6 years, 7 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/ia32/lithium-ia32.cc ('k') | src/lithium.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 // 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_LITHIUM_H_ 5 #ifndef V8_LITHIUM_H_
6 #define V8_LITHIUM_H_ 6 #define V8_LITHIUM_H_
7 7
8 #include <set> 8 #include <set>
9 9
10 #include "allocation.h" 10 #include "allocation.h"
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 inlined_closures_.Add(closure, zone()); 645 inlined_closures_.Add(closure, zone());
646 } 646 }
647 647
648 void AddDeprecationDependency(Handle<Map> map) { 648 void AddDeprecationDependency(Handle<Map> map) {
649 ASSERT(!map->is_deprecated()); 649 ASSERT(!map->is_deprecated());
650 if (!map->CanBeDeprecated()) return; 650 if (!map->CanBeDeprecated()) return;
651 ASSERT(!info_->IsStub()); 651 ASSERT(!info_->IsStub());
652 deprecation_dependencies_.insert(map); 652 deprecation_dependencies_.insert(map);
653 } 653 }
654 654
655 void AddStabilityDependency(Handle<Map> map) {
656 ASSERT(map->is_stable());
657 if (!map->CanTransition()) return;
658 ASSERT(!info_->IsStub());
659 stability_dependencies_.insert(map);
660 }
661
655 Zone* zone() const { return info_->zone(); } 662 Zone* zone() const { return info_->zone(); }
656 663
657 Handle<Code> Codegen(); 664 Handle<Code> Codegen();
658 665
659 void set_allocated_double_registers(BitVector* allocated_registers); 666 void set_allocated_double_registers(BitVector* allocated_registers);
660 BitVector* allocated_double_registers() { 667 BitVector* allocated_double_registers() {
661 return allocated_double_registers_; 668 return allocated_double_registers_;
662 } 669 }
663 670
664 protected: 671 protected:
665 LChunk(CompilationInfo* info, HGraph* graph); 672 LChunk(CompilationInfo* info, HGraph* graph);
666 673
667 int spill_slot_count_; 674 int spill_slot_count_;
668 675
669 private: 676 private:
670 typedef std::less<Handle<Map> > MapLess; 677 typedef std::less<Handle<Map> > MapLess;
671 typedef zone_allocator<Handle<Map> > MapAllocator; 678 typedef zone_allocator<Handle<Map> > MapAllocator;
672 typedef std::set<Handle<Map>, MapLess, MapAllocator> MapSet; 679 typedef std::set<Handle<Map>, MapLess, MapAllocator> MapSet;
673 680
674 void CommitDependencies(Handle<Code> code) const; 681 void CommitDependencies(Handle<Code> code) const;
675 682
676 CompilationInfo* info_; 683 CompilationInfo* info_;
677 HGraph* const graph_; 684 HGraph* const graph_;
678 BitVector* allocated_double_registers_; 685 BitVector* allocated_double_registers_;
679 ZoneList<LInstruction*> instructions_; 686 ZoneList<LInstruction*> instructions_;
680 ZoneList<LPointerMap*> pointer_maps_; 687 ZoneList<LPointerMap*> pointer_maps_;
681 ZoneList<Handle<JSFunction> > inlined_closures_; 688 ZoneList<Handle<JSFunction> > inlined_closures_;
682 MapSet deprecation_dependencies_; 689 MapSet deprecation_dependencies_;
690 MapSet stability_dependencies_;
683 }; 691 };
684 692
685 693
686 class LChunkBuilderBase BASE_EMBEDDED { 694 class LChunkBuilderBase BASE_EMBEDDED {
687 public: 695 public:
688 explicit LChunkBuilderBase(Zone* zone) 696 explicit LChunkBuilderBase(Zone* zone)
689 : argument_count_(0), 697 : argument_count_(0),
690 zone_(zone) { } 698 zone_(zone) { }
691 699
692 virtual ~LChunkBuilderBase() { } 700 virtual ~LChunkBuilderBase() { }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 private: 738 private:
731 LChunk* chunk_; 739 LChunk* chunk_;
732 740
733 DISALLOW_COPY_AND_ASSIGN(LPhase); 741 DISALLOW_COPY_AND_ASSIGN(LPhase);
734 }; 742 };
735 743
736 744
737 } } // namespace v8::internal 745 } } // namespace v8::internal
738 746
739 #endif // V8_LITHIUM_H_ 747 #endif // V8_LITHIUM_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.cc ('k') | src/lithium.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698