Lines Matching refs:state

90         if (AbstractState const* const state = node_states_.Get(effect)) {
91 PrintF(" state[%i]: #%d:%s\n", i, effect->id(),
93 state->Print();
95 PrintF(" no state[%i]: #%d:%s\n", i, effect->id(),
273 AliasStateInfo(const AbstractState* state, Node* object, Handle<Map> map)
274 : state_(state), object_(object), map_(map) {}
275 AliasStateInfo(const AbstractState* state, Node* object)
276 : state_(state), object_(object) {}
732 Node* node, AbstractState const* state) {
735 info_for_node_[id] = state;
742 AbstractState const* state = node_states_.Get(effect);
743 if (state == nullptr) return NoChange();
745 if (state->LookupMaps(object, &object_maps)) {
749 state = state->SetMaps(object, maps, zone());
750 return UpdateState(node, state);
757 AbstractState const* state = node_states_.Get(effect);
758 if (state == nullptr) return NoChange();
760 if (state->LookupMaps(object, &object_maps)) {
764 state = state->SetMaps(object, maps, zone());
765 return UpdateState(node, state);
772 AbstractState const* state = node_states_.Get(effect);
773 if (state == nullptr) return NoChange();
775 if (state->LookupMaps(object, &object_maps)) {
783 return UpdateState(node, state);
790 AbstractState const* state = node_states_.Get(effect);
791 if (state == nullptr) return NoChange();
795 if (state->LookupMaps(elements, &elements_maps) &&
801 state = state->SetMaps(node, fixed_array_maps, zone());
803 state = state->KillField(object,
807 state = state->AddField(
810 return UpdateState(node, state);
817 AbstractState const* state = node_states_.Get(effect);
818 if (state == nullptr) return NoChange();
821 state = state->SetMaps(
828 state = state->SetMaps(node, fixed_array_maps, zone());
831 state = state->KillField(object,
835 state = state->AddField(
838 return UpdateState(node, state);
847 AbstractState const* state = node_states_.Get(effect);
848 if (state == nullptr) return NoChange();
854 AliasStateInfo alias_info(state, object, source_map);
855 state = state->KillField(
861 if (state->LookupMaps(object, &object_maps)) {
870 AliasStateInfo alias_info(state, object, source_map);
871 state = state->KillMaps(alias_info, zone());
872 state = state->SetMaps(object, object_maps, zone());
875 AliasStateInfo alias_info(state, object, source_map);
876 state = state->KillMaps(alias_info, zone());
878 return UpdateState(node, state);
886 AbstractState const* state = node_states_.Get(effect);
887 if (state == nullptr) return NoChange();
893 if (state->LookupMaps(object, &object_maps)) {
896 state = state->KillMaps(object, zone());
897 state = state->SetMaps(object, object_maps, zone());
900 state = state->KillField(object,
903 return UpdateState(node, state);
911 AbstractState const* state = node_states_.Get(effect);
912 if (state == nullptr) return NoChange();
917 if (state->LookupMaps(object, &object_maps) && object_maps.size() == 1) {
929 state->LookupField(object, field_index, access.const_field_info);
934 state->LookupField(object, field_index, ConstFieldInfo::None());
960 state = state->AddField(object, field_index, info, zone());
965 state = state->SetMaps(node, ZoneHandleSet<Map>(field_map), zone());
967 return UpdateState(node, state);
975 AbstractState const* state = node_states_.Get(effect);
976 if (state == nullptr) return NoChange();
981 state = state->KillMaps(object, zone());
987 state = state->SetMaps(object, object_maps, zone());
996 state->LookupField(object, field_index, access.const_field_info);
1035 state = state->KillConstField(object, field_index, zone());
1037 state = state->KillField(object, field_index, access.name, zone());
1038 state = state->AddField(object, field_index, new_info, zone());
1044 state = state->AddField(object, field_index, new_info, zone());
1048 state = state->KillFields(object, access.name, zone());
1051 return UpdateState(node, state);
1058 AbstractState const* state = node_states_.Get(effect);
1059 if (state == nullptr) return NoChange();
1082 if (Node* replacement = state->LookupElement(
1096 state = state->AddElement(object, index, node,
1098 return UpdateState(node, state);
1109 AbstractState const* state = node_states_.Get(effect);
1110 if (state == nullptr) return NoChange();
1112 state->LookupElement(object, index, access.machine_type.representation());
1118 state = state->KillElement(object, index, zone());
1139 state = state->AddElement(object, index, new_value,
1143 return UpdateState(node, state);
1148 AbstractState const* state = node_states_.Get(effect);
1149 if (state == nullptr) return NoChange();
1150 return UpdateState(node, state);
1154 AbstractState const* state, Node* effect_phi, Node* phi) {
1163 if (!input_state->LookupMaps(phi->InputAt(0), &object_maps)) return state;
1168 if (!input_state->LookupMaps(phi->InputAt(i), &input_maps)) return state;
1169 if (input_maps != object_maps) return state;
1171 return state->SetMaps(phi, object_maps, zone());
1182 // the state from the first input, and compute the loop state based on it.
1183 AbstractState const* state = ComputeLoopState(node, state0);
1184 return UpdateState(node, state);
1195 // Make a copy of the first input's state and merge with the state
1197 AbstractState* state = zone()->New<AbstractState>(*state0);
1200 state->Merge(node_states_.Get(input), zone());
1203 // For each phi, try to compute the new state for the phi from
1205 AbstractState const* state_with_phis = state;
1223 AbstractState const* state = node_states_.Get(effect);
1227 if (state == nullptr) return NoChange();
1230 state = state->KillAll(zone());
1232 return UpdateState(node, state);
1243 Reduction LoadElimination::UpdateState(Node* node, AbstractState const* state) {
1245 // Only signal that the {node} has Changed, if the information about {state}
1247 if (state != original) {
1248 if (original == nullptr || !state->Equals(original)) {
1249 node_states_.Set(node, state);
1258 Node* current, LoadElimination::AbstractState const* state,
1263 state = state->KillMaps(object, zone());
1267 state = state->KillFields(object, access.name, zone());
1269 state = state->KillField(object, field_index, access.name, zone());
1272 return state;
1276 Node* node, AbstractState const* state) const {
1301 state = state->KillField(
1308 state = state->KillField(
1317 if (!state->LookupMaps(object, &object_maps) ||
1327 state = state->KillMaps(object, zone());
1329 state = state->KillField(
1336 state = ComputeLoopStateForStoreField(current, state, access);
1342 state = state->KillElement(object, index, zone());
1346 // Doesn't affect anything we track with the state currently.
1350 return state->KillAll(zone());
1384 AliasStateInfo alias_info(state, t.object, t.transition.source());
1385 state = state->KillMaps(alias_info, zone());
1392 AliasStateInfo alias_info(state, t.object, t.transition.source());
1393 state = state->KillField(
1400 return state;