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

Side by Side Diff: src/asmjs/asm-wasm-builder.cc

Issue 2345233003: [base] Move hashmap allocator to a field (Closed)
Patch Set: Remove zone arguments where the parameters were removed so that the bloody thing compiles again Created 4 years, 3 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/asmjs/asm-typer.cc ('k') | src/ast/ast.h » ('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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 // Required to get M_E etc. in MSVC. 7 // Required to get M_E etc. in MSVC.
8 #if defined(_WIN32) 8 #if defined(_WIN32)
9 #define _USE_MATH_DEFINES 9 #define _USE_MATH_DEFINES
10 #endif 10 #endif
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 struct FunctionTableIndices : public ZoneObject { 649 struct FunctionTableIndices : public ZoneObject {
650 uint32_t start_index; 650 uint32_t start_index;
651 uint32_t signature_index; 651 uint32_t signature_index;
652 }; 652 };
653 653
654 void InsertFunctionTable(Variable* v, uint32_t start_index, 654 void InsertFunctionTable(Variable* v, uint32_t start_index,
655 uint32_t signature_index) { 655 uint32_t signature_index) {
656 FunctionTableIndices* container = new (zone()) FunctionTableIndices(); 656 FunctionTableIndices* container = new (zone()) FunctionTableIndices();
657 container->start_index = start_index; 657 container->start_index = start_index;
658 container->signature_index = signature_index; 658 container->signature_index = signature_index;
659 ZoneHashMap::Entry* entry = function_tables_.LookupOrInsert( 659 ZoneHashMap::Entry* entry =
660 v, ComputePointerHash(v), ZoneAllocationPolicy(zone())); 660 function_tables_.LookupOrInsert(v, ComputePointerHash(v));
661 entry->value = container; 661 entry->value = container;
662 } 662 }
663 663
664 FunctionTableIndices* LookupFunctionTable(Variable* v) { 664 FunctionTableIndices* LookupFunctionTable(Variable* v) {
665 ZoneHashMap::Entry* entry = 665 ZoneHashMap::Entry* entry =
666 function_tables_.Lookup(v, ComputePointerHash(v)); 666 function_tables_.Lookup(v, ComputePointerHash(v));
667 DCHECK_NOT_NULL(entry); 667 DCHECK_NOT_NULL(entry);
668 return reinterpret_cast<FunctionTableIndices*>(entry->value); 668 return reinterpret_cast<FunctionTableIndices*>(entry->value);
669 } 669 }
670 670
(...skipping 14 matching lines...) Expand all
685 public: 685 public:
686 explicit ImportedFunctionTable(AsmWasmBuilderImpl* builder) 686 explicit ImportedFunctionTable(AsmWasmBuilderImpl* builder)
687 : table_(base::HashMap::PointersMatch, 687 : table_(base::HashMap::PointersMatch,
688 ZoneHashMap::kDefaultHashMapCapacity, 688 ZoneHashMap::kDefaultHashMapCapacity,
689 ZoneAllocationPolicy(builder->zone())), 689 ZoneAllocationPolicy(builder->zone())),
690 builder_(builder) {} 690 builder_(builder) {}
691 691
692 void AddImport(Variable* v, const char* name, int name_length) { 692 void AddImport(Variable* v, const char* name, int name_length) {
693 ImportedFunctionIndices* indices = new (builder_->zone()) 693 ImportedFunctionIndices* indices = new (builder_->zone())
694 ImportedFunctionIndices(name, name_length, builder_->zone()); 694 ImportedFunctionIndices(name, name_length, builder_->zone());
695 ZoneHashMap::Entry* entry = table_.LookupOrInsert( 695 ZoneHashMap::Entry* entry =
696 v, ComputePointerHash(v), ZoneAllocationPolicy(builder_->zone())); 696 table_.LookupOrInsert(v, ComputePointerHash(v));
697 entry->value = indices; 697 entry->value = indices;
698 } 698 }
699 699
700 uint32_t GetFunctionIndex(Variable* v, FunctionSig* sig) { 700 uint32_t GetFunctionIndex(Variable* v, FunctionSig* sig) {
701 ZoneHashMap::Entry* entry = table_.Lookup(v, ComputePointerHash(v)); 701 ZoneHashMap::Entry* entry = table_.Lookup(v, ComputePointerHash(v));
702 DCHECK_NOT_NULL(entry); 702 DCHECK_NOT_NULL(entry);
703 ImportedFunctionIndices* indices = 703 ImportedFunctionIndices* indices =
704 reinterpret_cast<ImportedFunctionIndices*>(entry->value); 704 reinterpret_cast<ImportedFunctionIndices*>(entry->value);
705 WasmModuleBuilder::SignatureMap::iterator pos = 705 WasmModuleBuilder::SignatureMap::iterator pos =
706 indices->signature_to_index_.find(sig); 706 indices->signature_to_index_.find(sig);
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 uint32_t LookupOrInsertLocal(Variable* v, LocalType type) { 1679 uint32_t LookupOrInsertLocal(Variable* v, LocalType type) {
1680 DCHECK_NOT_NULL(current_function_builder_); 1680 DCHECK_NOT_NULL(current_function_builder_);
1681 ZoneHashMap::Entry* entry = 1681 ZoneHashMap::Entry* entry =
1682 local_variables_.Lookup(v, ComputePointerHash(v)); 1682 local_variables_.Lookup(v, ComputePointerHash(v));
1683 if (entry == nullptr) { 1683 if (entry == nullptr) {
1684 uint32_t index; 1684 uint32_t index;
1685 DCHECK(!v->IsParameter()); 1685 DCHECK(!v->IsParameter());
1686 index = current_function_builder_->AddLocal(type); 1686 index = current_function_builder_->AddLocal(type);
1687 IndexContainer* container = new (zone()) IndexContainer(); 1687 IndexContainer* container = new (zone()) IndexContainer();
1688 container->index = index; 1688 container->index = index;
1689 entry = local_variables_.LookupOrInsert(v, ComputePointerHash(v), 1689 entry = local_variables_.LookupOrInsert(v, ComputePointerHash(v));
1690 ZoneAllocationPolicy(zone()));
1691 entry->value = container; 1690 entry->value = container;
1692 } 1691 }
1693 return (reinterpret_cast<IndexContainer*>(entry->value))->index; 1692 return (reinterpret_cast<IndexContainer*>(entry->value))->index;
1694 } 1693 }
1695 1694
1696 void InsertParameter(Variable* v, LocalType type, uint32_t index) { 1695 void InsertParameter(Variable* v, LocalType type, uint32_t index) {
1697 DCHECK(v->IsParameter()); 1696 DCHECK(v->IsParameter());
1698 DCHECK_NOT_NULL(current_function_builder_); 1697 DCHECK_NOT_NULL(current_function_builder_);
1699 ZoneHashMap::Entry* entry = 1698 ZoneHashMap::Entry* entry =
1700 local_variables_.Lookup(v, ComputePointerHash(v)); 1699 local_variables_.Lookup(v, ComputePointerHash(v));
1701 DCHECK_NULL(entry); 1700 DCHECK_NULL(entry);
1702 IndexContainer* container = new (zone()) IndexContainer(); 1701 IndexContainer* container = new (zone()) IndexContainer();
1703 container->index = index; 1702 container->index = index;
1704 entry = local_variables_.LookupOrInsert(v, ComputePointerHash(v), 1703 entry = local_variables_.LookupOrInsert(v, ComputePointerHash(v));
1705 ZoneAllocationPolicy(zone()));
1706 entry->value = container; 1704 entry->value = container;
1707 } 1705 }
1708 1706
1709 uint32_t LookupOrInsertGlobal(Variable* v, LocalType type) { 1707 uint32_t LookupOrInsertGlobal(Variable* v, LocalType type) {
1710 ZoneHashMap::Entry* entry = 1708 ZoneHashMap::Entry* entry =
1711 global_variables_.Lookup(v, ComputePointerHash(v)); 1709 global_variables_.Lookup(v, ComputePointerHash(v));
1712 if (entry == nullptr) { 1710 if (entry == nullptr) {
1713 uint32_t index = builder_->AddGlobal(type, 0); 1711 uint32_t index = builder_->AddGlobal(type, 0);
1714 IndexContainer* container = new (zone()) IndexContainer(); 1712 IndexContainer* container = new (zone()) IndexContainer();
1715 container->index = index; 1713 container->index = index;
1716 entry = global_variables_.LookupOrInsert(v, ComputePointerHash(v), 1714 entry = global_variables_.LookupOrInsert(v, ComputePointerHash(v));
1717 ZoneAllocationPolicy(zone()));
1718 entry->value = container; 1715 entry->value = container;
1719 } 1716 }
1720 return (reinterpret_cast<IndexContainer*>(entry->value))->index; 1717 return (reinterpret_cast<IndexContainer*>(entry->value))->index;
1721 } 1718 }
1722 1719
1723 uint32_t LookupOrInsertFunction(Variable* v) { 1720 uint32_t LookupOrInsertFunction(Variable* v) {
1724 DCHECK_NOT_NULL(builder_); 1721 DCHECK_NOT_NULL(builder_);
1725 ZoneHashMap::Entry* entry = functions_.Lookup(v, ComputePointerHash(v)); 1722 ZoneHashMap::Entry* entry = functions_.Lookup(v, ComputePointerHash(v));
1726 if (entry == nullptr) { 1723 if (entry == nullptr) {
1727 uint32_t index = builder_->AddFunction(); 1724 uint32_t index = builder_->AddFunction();
1728 IndexContainer* container = new (zone()) IndexContainer(); 1725 IndexContainer* container = new (zone()) IndexContainer();
1729 container->index = index; 1726 container->index = index;
1730 entry = functions_.LookupOrInsert(v, ComputePointerHash(v), 1727 entry = functions_.LookupOrInsert(v, ComputePointerHash(v));
1731 ZoneAllocationPolicy(zone()));
1732 entry->value = container; 1728 entry->value = container;
1733 } 1729 }
1734 return (reinterpret_cast<IndexContainer*>(entry->value))->index; 1730 return (reinterpret_cast<IndexContainer*>(entry->value))->index;
1735 } 1731 }
1736 1732
1737 LocalType TypeOf(Expression* expr) { return TypeFrom(typer_->TypeOf(expr)); } 1733 LocalType TypeOf(Expression* expr) { return TypeFrom(typer_->TypeOf(expr)); }
1738 1734
1739 LocalType TypeFrom(AsmType* type) { 1735 LocalType TypeFrom(AsmType* type) {
1740 if (type->IsA(AsmType::Intish())) { 1736 if (type->IsA(AsmType::Intish())) {
1741 return kAstI32; 1737 return kAstI32;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1788 AsmWasmBuilderImpl impl(isolate_, zone_, literal_, typer_); 1784 AsmWasmBuilderImpl impl(isolate_, zone_, literal_, typer_);
1789 impl.Build(); 1785 impl.Build();
1790 *foreign_args = impl.GetForeignArgs(); 1786 *foreign_args = impl.GetForeignArgs();
1791 ZoneBuffer* buffer = new (zone_) ZoneBuffer(zone_); 1787 ZoneBuffer* buffer = new (zone_) ZoneBuffer(zone_);
1792 impl.builder_->WriteTo(*buffer); 1788 impl.builder_->WriteTo(*buffer);
1793 return buffer; 1789 return buffer;
1794 } 1790 }
1795 } // namespace wasm 1791 } // namespace wasm
1796 } // namespace internal 1792 } // namespace internal
1797 } // namespace v8 1793 } // namespace v8
OLDNEW
« no previous file with comments | « src/asmjs/asm-typer.cc ('k') | src/ast/ast.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698