about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2013-05-27 19:47:40 -0700
committerGraydon Hoare <graydon@mozilla.com>2013-05-27 19:50:49 -0700
commit3c4ce7951868efb17ab02dcd452d969f8eb1bb12 (patch)
treee8f38db76bdab63206903400d1267eccb0da6f5a
parent2061ce9affd01d2dfb3d1e5836cfda4006ea8290 (diff)
downloadrust-3c4ce7951868efb17ab02dcd452d969f8eb1bb12.tar.gz
rust-3c4ce7951868efb17ab02dcd452d969f8eb1bb12.zip
rustc: Switch ty::node_type_table to smallintmap, cut 400mb memory use off a librustc build.
Smallintmap was being populated with sparse keys during ast deserialization.
-rw-r--r--src/librustc/middle/ty.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs
index 6d1ae8ff0e6..82401555472 100644
--- a/src/librustc/middle/ty.rs
+++ b/src/librustc/middle/ty.rs
@@ -907,7 +907,7 @@ type type_cache = @mut HashMap<ast::def_id, ty_param_bounds_and_ty>;
 
 type constness_cache = @mut HashMap<ast::def_id, const_eval::constness>;
 
-pub type node_type_table = @mut SmallIntMap<t>;
+pub type node_type_table = @mut HashMap<uint,t>;
 
 fn mk_rcache() -> creader_cache {
     return @mut HashMap::new();
@@ -934,7 +934,7 @@ pub fn mk_ctxt(s: session::Session,
         def_map: dm,
         region_maps: region_maps,
         region_paramd_items: region_paramd_items,
-        node_types: @mut SmallIntMap::new(),
+        node_types: @mut HashMap::new(),
         node_type_substs: @mut HashMap::new(),
         trait_refs: @mut HashMap::new(),
         trait_defs: @mut HashMap::new(),