diff options
-rw-r--r-- | 030container.cc | 6 | ||||
-rw-r--r-- | 036refcount.cc | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/030container.cc b/030container.cc index ac78a103..a1499a8b 100644 --- a/030container.cc +++ b/030container.cc @@ -165,8 +165,7 @@ if (t.kind == CONTAINER) { //: precompute Container_metadata before we need size_of //: also store a copy in each reagent in each instruction in each recipe -//: does unnecessary work for meaningless types -//: e.g. (address number) also computes size of 'address' +//: sometimes does unnecessary work for meaningless types :(after "Begin Instruction Modifying Transforms") // needs to happen before transform_names, therefore after Type Modifying Transforms below Transform.push_back(compute_container_sizes); @@ -197,7 +196,8 @@ void compute_container_sizes(const type_tree* type, set<type_ordinal>& pending_m if (contains_key(pending_metadata, type->value)) return; if (type->value) pending_metadata.insert(type->value); if (contains_key(Container_metadata, type)) return; - if (type->left) compute_container_sizes(type->left, pending_metadata); + // might be needed by later layers, but we haven't found a need for it yet +//? if (type->left) compute_container_sizes(type->left, pending_metadata); if (type->right) compute_container_sizes(type->right, pending_metadata); if (!contains_key(Type, type->value)) return; // error raised elsewhere type_info& info = get(Type, type->value); diff --git a/036refcount.cc b/036refcount.cc index 80289641..05ddf47e 100644 --- a/036refcount.cc +++ b/036refcount.cc @@ -279,8 +279,7 @@ bool operator<(const address_element_info& a, const address_element_info& b) { //: populate metadata.address in a separate transform, because it requires //: already knowing the sizes of all types -//: does unnecessary work for meaningless types -//: e.g. (address number) also computes address offsets for 'address' +//: sometimes does unnecessary work for meaningless types :(after "Transform.push_back(compute_container_sizes)") Transform.push_back(compute_container_address_offsets); @@ -305,7 +304,8 @@ void compute_container_address_offsets(reagent& r) { } void compute_container_address_offsets(type_tree* type) { if (!type) return; - if (type->left) compute_container_address_offsets(type->left); + // might be needed by later layers, but we haven't found a need for it yet +//? if (type->left) compute_container_address_offsets(type->left); if (type->right) compute_container_address_offsets(type->right); if (!contains_key(Type, type->value)) return; // error raised elsewhere type_info& info = get(Type, type->value); |