Home | History | Annotate | Download | only in src

Lines Matching refs:Representation

497                                                 Representation::Tagged());
978 if (!value->representation().IsNone()) {
1493 Representation TryChange(HValue* current);
1508 if (current->representation().IsSpecialization()) return;
1516 // This method tries to specialize the representation type of the value
1517 // given as a parameter. The value is asked to infer its representation type
1519 // becomes the new representation type of the node.
1521 Representation r = current->representation();
1524 Representation inferred = current->InferredRepresentation();
1542 // This method calculates whether specializing the representation of the value
1544 // conversions. If there is a benefit, then the representation of the value is
1547 Representation r = current->representation();
1550 Representation new_rep = TryChange(current);
1552 if (!current->representation().Equals(new_rep)) {
1560 Representation HInferRepresentation::TryChange(HValue* current) {
1561 // Array of use counts for each representation.
1562 int use_count[Representation::kNumRepresentations];
1563 for (int i = 0; i < Representation::kNumRepresentations; i++) {
1570 Representation req_rep = use->RequiredInputRepresentation(index);
1578 int tagged_count = use_count[Representation::kTagged];
1579 int double_count = use_count[Representation::kDouble];
1580 int int32_count = use_count[Representation::kInteger32];
1585 if (tagged_count > 0) return Representation::None();
1592 // correct representation is double.
1593 return Representation::Double();
1595 return Representation::Integer32();
1598 return Representation::None();
1750 Representation to) {
1751 // Insert the representation change right before its use. For phi-uses we
1762 // For constants we try to make the representation change at compile
1763 // time. When a representation change is not possible without loss of
1771 // Try to create a new copy of the constant with the new representation.
1778 new_value = new(zone()) HChange(value, value->representation(), to,
1789 Representation a_rep,
1790 Representation b_rep) {
1809 ZoneList<Representation>* to_convert_reps) {
1810 Representation r = current->representation();
1814 // Collect the representation changes in a sorted list. This allows
1834 Representation req = use->RequiredInputRepresentation(operand_index);
1845 PrintF("Inserting a representation change to %s of %d for use at %d\n",
1856 Representation r_to = to_convert_reps->at(i);
1870 HPhase phase("Insert representation changes", this);
1880 if (phi->representation().IsInteger32()) {
1902 ZoneList<Representation> rep_list(4);
1937 // double input representation, has this flag set.
1942 if (phi->representation().IsDouble()) {
1965 Representation from = change->value()->representation();
2359 isolate()->factory()->undefined_value(), Representation::Tagged());
2594 compare->SetInputRepresentation(Representation::Integer32());
2998 new(zone()) HConstant(expr->handle(), Representation::Tagged());
3114 Representation::Integer32()));
3616 return new(zone()) HConstant(function, Representation::Tagged());
4287 Representation::Double());
4720 AssumeRepresentation(instr, Representation::Integer32());
4919 Representation rep = ToRepresentation(info);
4922 rep = Representation::Integer32();
5033 void HGraphBuilder::AssumeRepresentation(HValue* value, Representation r) {
5036 PrintF("Assume representation for %s to be %s (%d)\n",
5042 // The representation of the value is dictated by type feedback and
5046 PrintF("No representation assumed\n");
5051 Representation HGraphBuilder::ToRepresentation(TypeInfo info) {
5052 if (info.IsSmi()) return Representation::Integer32();
5053 if (info.IsInteger32()) return Representation::Integer32();
5054 if (info.IsDouble()) return Representation::Double();
5055 if (info.IsNumber()) return Representation::Double();
5056 return Representation::Tagged();
5153 Representation r = ToRepresentation(type_info);