Lines Matching full:representation
292 bool AddAndCheckOverflow(const Representation& r, Range* other);
293 bool SubAndCheckOverflow(const Representation& r, Range* other);
294 bool MulAndCheckOverflow(const Representation& r, Range* other);
422 bool ToStringOrToNumberCanBeObserved(Representation representation) {
437 return !representation.IsSmiOrInteger32() && !representation.IsDouble();
696 Representation representation() const { return representation_; }
697 void ChangeRepresentation(Representation r) {
707 virtual void AssumeRepresentation(Representation r);
709 virtual Representation KnownOptimalRepresentation() {
710 Representation r = representation();
713 if (t.IsSmi()) return Representation::Smi();
714 if (t.IsHeapNumber()) return Representation::Double();
716 return Representation::None();
865 // Representation helpers.
866 virtual Representation observed_input_representation(int index) {
867 return Representation::None();
869 virtual Representation RequiredInputRepresentation(int index) = 0;
935 return type().ToStringOrToNumberCanBeObserved(representation());
941 return type().ToStringOrToNumberCanBeObserved(representation());
952 virtual Representation RepresentationFromInputs() {
953 return representation();
955 Representation RepresentationFromUses();
956 Representation RepresentationFromUseRequirements();
958 virtual void UpdateRepresentation(Representation new_rep,
963 virtual void RepresentationChanged(Representation to) { }
973 void set_representation(Representation r) {
1028 Representation representation_;
1217 virtual Representation RequiredInputRepresentation(int index) {
1218 return Representation::None();
1232 set_representation(Representation::Tagged());
1238 virtual Representation RequiredInputRepresentation(int index) {
1239 return Representation::None();
1253 virtual Representation RequiredInputRepresentation(int index) {
1254 return Representation::None();
1274 virtual Representation RequiredInputRepresentation(int index) {
1275 return Representation::None();
1288 virtual Representation RequiredInputRepresentation(int index) {
1289 return Representation::None();
1325 virtual Representation RequiredInputRepresentation(int index) {
1326 return Representation::None();
1328 virtual Representation observed_input_representation(int index);
1356 virtual Representation RequiredInputRepresentation(int index) {
1357 return Representation::Tagged();
1373 virtual Representation RequiredInputRepresentation(int index) {
1374 return Representation::None();
1384 set_representation(Representation::Tagged());
1407 virtual Representation RequiredInputRepresentation(int index) {
1408 return Representation::Tagged();
1452 virtual Representation RequiredInputRepresentation(int index) {
1453 return Representation::Tagged();
1474 virtual Representation RequiredInputRepresentation(int index) {
1475 return Representation::None();
1487 DECLARE_INSTRUCTION_FACTORY_P2(HForceRepresentation, HValue*, Representation);
1493 virtual Representation RequiredInputRepresentation(int index) {
1494 return representation(); // Same as the output representation.
1502 HForceRepresentation(HValue* value, Representation required_representation) {
1512 Representation to,
1516 ASSERT(!value->representation().IsNone());
1518 ASSERT(!value->representation().Equals(to));
1523 if (value->representation().IsSmi() || value->type().IsSmi()) {
1539 Representation from() const { return value()->representation(); }
1540 Representation to() const { return representation(); }
1544 virtual Representation RequiredInputRepresentation(int index) {
1568 virtual Representation RequiredInputRepresentation(int index) {
1569 return Representation::None();
1580 set_representation(Representation::Integer32());
1643 virtual Representation RequiredInputRepresentation(int index) {
1644 return Representation::None();
1706 virtual Representation RequiredInputRepresentation(int index) {
1707 return Representation::None();
1745 virtual Representation RequiredInputRepresentation(int index) {
1746 return Representation::Tagged();
1813 virtual Representation RequiredInputRepresentation(int index) {
1814 return Representation::None();
1858 virtual Representation RequiredInputRepresentation(int index) {
1859 return Representation::None();
1870 virtual Representation RequiredInputRepresentation(int index) {
1871 return Representation::Tagged();
1880 set_representation(Representation::Tagged());
1888 set_representation(Representation::Tagged());
1892 virtual Representation RequiredInputRepresentation(int index) {
1893 return Representation::None();
1912 virtual Representation RequiredInputRepresentation(int index) {
1913 return Representation::Tagged();
1921 set_representation(Representation::Tagged());
1937 set_representation(Representation::Tagged());
1954 virtual Representation RequiredInputRepresentation(int index) {
1955 return Representation::Tagged();
1967 set_representation(Representation::Tagged());
1977 virtual Representation RequiredInputRepresentation(int index) {
1978 return Representation::Tagged();
1995 virtual Representation RequiredInputRepresentation(int index) {
1996 return Representation::Tagged();
2005 set_representation(Representation::Tagged());
2018 this->set_representation(Representation::Tagged());
2040 virtual Representation RequiredInputRepresentation(int index) {
2041 return Representation::Tagged();
2060 virtual Representation RequiredInputRepresentation(int index) {
2061 return Representation::Tagged();
2101 virtual Representation RequiredInputRepresentation(int index) {
2102 return Representation::Tagged();
2135 virtual Representation RequiredInputRepresentation(int index) {
2136 return Representation::None();
2153 virtual Representation RequiredInputRepresentation(int index) {
2154 return Representation::Tagged();
2177 virtual Representation RequiredInputRepresentation(int index) {
2178 return Representation::Tagged();
2202 virtual Representation RequiredInputRepresentation(int index) {
2203 return Representation::Tagged();
2228 virtual Representation RequiredInputRepresentation(int index) {
2229 return Representation::Tagged();
2251 virtual Representation RequiredInputRepresentation(int index) {
2252 return Representation::None();
2269 virtual Representation RequiredInputRepresentation(int index) {
2270 return Representation::Tagged();
2320 virtual Representation RequiredInputRepresentation(int index) {
2321 return Representation::Tagged();
2344 virtual Representation RequiredInputRepresentation(int index) {
2345 return Representation::Tagged();
2356 set_representation(Representation::Smi());
2368 set_representation(Representation::Integer32());
2373 virtual Representation RequiredInputRepresentation(int index) {
2374 return Representation::Tagged();
2401 virtual Representation RequiredInputRepresentation(int index) {
2403 return Representation::Tagged();
2415 return Representation::Double();
2417 return representation();
2420 return Representation::None();
2428 virtual Representation RepresentationFromInputs();
2449 set_representation(Representation::Integer32());
2452 // Not setting representation here: it is None intentionally.
2454 // TODO(svenpanne) This flag is actually only needed if representation()
2462 set_representation(Representation::Double());
2469 set_representation(Representation::Double());
2488 virtual Representation RequiredInputRepresentation(int index) {
2489 return Representation::Tagged();
2504 set_representation(Representation::External());
2535 virtual Representation RequiredInputRepresentation(int index) {
2536 return Representation::Tagged();
2586 set_representation(Representation::Tagged());
2613 virtual Representation RequiredInputRepresentation(int index) {
2614 return Representation::Tagged();
2643 set_representation(Representation::Tagged());
2672 virtual Representation RequiredInputRepresentation(int index) {
2673 return Representation::Tagged();
2706 Representation::Tagged());
2718 virtual Representation RequiredInputRepresentation(int index) {
2719 return Representation::Tagged();
2737 set_representation(Representation::Smi());
2750 virtual Representation RequiredInputRepresentation(int index) {
2751 return Representation::None();
2763 virtual Representation RequiredInputRepresentation(int index) {
2764 return Representation::Tagged();
2783 set_representation(Representation::Tagged());
3017 for (int i = 0; i < Representation::kNumRepresentations; i++) {
3026 virtual Representation RepresentationFromInputs();
3030 virtual Representation RequiredInputRepresentation(int index) {
3031 return representation();
3033 virtual Representation KnownOptimalRepresentation() {
3034 return representation();
3074 return non_phi_uses_[Representation::kTagged];
3077 return non_phi_uses_[Representation::kSmi];
3080 return non_phi_uses_[Representation::kInteger32];
3083 return non_phi_uses_[Representation::kDouble];
3086 return indirect_uses_[Representation::kTagged];
3089 return indirect_uses_[Representation::kSmi];
3092 return indirect_uses_[Representation::kInteger32];
3095 return indirect_uses_[Representation::kDouble];
3120 int non_phi_uses_[Representation::kNumRepresentations];
3121 int indirect_uses_[Representation::kNumRepresentations];
3139 virtual Representation RequiredInputRepresentation(int index) {
3140 return Representation::None();
3177 set_representation(Representation::Tagged());
3187 set_representation(Representation::Tagged());
3204 DECLARE_INSTRUCTION_FACTORY_P2(HConstant, int32_t, Representation);
3213 Representation representation,
3216 HConstant::New(zone, context, value, representation);
3224 Representation representation,
3227 HConstant::New(zone, context, value, representation);
3291 virtual Representation RequiredInputRepresentation(int index) {
3292 return Representation::None();
3295 virtual Representation KnownOptimalRepresentation() {
3296 if (HasSmiValue() && kSmiValueSize == 31) return Representation::Smi();
3297 if (HasInteger32Value()) return Representation::Integer32();
3298 if (HasNumberValue()) return Representation::Double();
3299 if (HasExternalReferenceValue()) return Representation::External();
3300 return Representation::Tagged();
3306 HConstant* CopyToRepresentation(Representation r, Zone* zone) const;
3335 // representation of the number in int32_value_.
3417 HConstant(Handle<Object> handle, Representation r = Representation::None());
3419 Representation r = Representation::None(),
3423 Representation r = Representation::None(),
3428 Representation r,
3438 void Initialize(Representation r);
3473 observed_output_representation_(Representation::None()) {
3478 observed_input_representation_[0] = Representation::None();
3479 observed_input_representation_[1] = Representation::None();
3509 void set_observed_input_representation(int index, Representation rep) {
3514 virtual void initialize_output_representation(Representation observed) {
3518 virtual Representation observed_input_representation(int index) {
3519 if (index == 0) return Representation::Tagged();
3523 virtual void UpdateRepresentation(Representation new_rep,
3526 Representation rep = !FLAG_smi_binop && new_rep.IsSmi()
3527 ? Representation::Integer32() : new_rep;
3532 virtual Representation RepresentationFromInputs();
3533 Representation RepresentationFromOutput();
3534 virtual void AssumeRepresentation(Representation r);
3540 virtual Representation RequiredInputRepresentation(int index) {
3541 if (index == 0) return Representation::Tagged();
3542 return representation();
3548 bool IgnoreObservedOutputRepresentation(Representation current_rep);
3550 Representation observed_input_representation_[2];
3551 Representation observed_output_representation_;
3559 virtual Representation RequiredInputRepresentation(int index) {
3560 return Representation::Tagged();
3574 set_representation(Representation::Tagged());
3587 set_representation(Representation::Tagged());
3595 virtual Representation RequiredInputRepresentation(int index) {
3598 ? Representation::Integer32()
3599 : Representation::Tagged();
3617 virtual Representation RequiredInputRepresentation(int index) {
3618 return Representation::None();
3630 set_representation(Representation::Tagged());
3644 virtual Representation RequiredInputRepresentation(int index) {
3645 return Representation::Tagged();
3655 set_representation(Representation::Integer32());
3666 set_representation(Representation::Tagged());
3675 virtual Representation RequiredInputRepresentation(int index) {
3678 ? Representation::Tagged()
3679 : Representation::Integer32();
3724 virtual Representation RequiredInputRepresentation(int arg_index) {
3725 return representation();
3789 virtual Representation RequiredInputRepresentation(int arg_index) {
3790 return representation();
3811 virtual void RepresentationChanged(Representation to) {
3822 virtual void UpdateRepresentation(Representation new_rep,
3826 if (new_rep.IsDouble()) new_rep = Representation::Integer32();
3830 virtual Representation observed_input_representation(int index) {
3831 Representation r = HBinaryOperation::observed_input_representation(index);
3832 if (r.IsDouble()) return Representation::Integer32();
3836 virtual void initialize_output_representation(Representation observed) {
3837 if (observed.IsDouble()) observed = Representation::Integer32();
3859 virtual Representation RequiredInputRepresentation(int index) {
3860 return Representation::Integer32();
3871 set_representation(Representation::Integer32());
3893 virtual void RepresentationChanged(Representation to) {
3919 set_representation(Representation::Tagged());
3923 virtual Representation RequiredInputRepresentation(int index) {
3925 ? Representation::Tagged()
3926 : representation();
3953 void set_observed_input_representation(Representation left,
3954 Representation right) {
3961 virtual Representation RequiredInputRepresentation(int index) {
3962 return representation();
3964 virtual Representation observed_input_representation(int index) {
3972 Representation observed_input_representation_[2];
3993 virtual Representation RequiredInputRepresentation(int index) {
3994 return representation();
4020 virtual Representation RequiredInputRepresentation(int index) {
4021 return Representation::Tagged();
4024 virtual Representation observed_input_representation(int index) {
4025 return Representation::Tagged();
4037 virtual Representation RequiredInputRepresentation(int index) {
4038 return Representation::Tagged();
4049 virtual Representation RequiredInputRepresentation(int index) {
4050 return Representation::Tagged();
4064 virtual Representation RequiredInputRepresentation(int index) {
4065 return Representation::Tagged();
4078 virtual Representation RequiredInputRepresentation(int index) {
4079 return Representation::Tagged();
4097 set_representation(Representation::Tagged());
4108 virtual Representation RequiredInputRepresentation(int index) {
4109 return Representation::Tagged();
4112 Representation GetInputRepresentation() const {
4113 return Representation::Tagged();
4125 virtual Representation RequiredInputRepresentation(int index) {
4126 return Representation::None();
4147 virtual Representation RequiredInputRepresentation(int index) {
4148 return Representation::Tagged();
4164 virtual Representation RequiredInputRepresentation(int index) {
4165 return Representation::Tagged();
4175 set_representation(Representation::Tagged());
4179 virtual Representation RequiredInputRepresentation(int index) {
4180 return Representation::Tagged();
4201 virtual Representation RequiredInputRepresentation(int index) {
4202 return Representation::Tagged();
4225 virtual Representation RequiredInputRepresentation(int index) {
4226 return Representation::Tagged();
4238 set_representation(Representation::Tagged());
4242 virtual Representation RequiredInputRepresentation(int index) {
4243 return Representation::Tagged();
4260 set_representation(Representation::Tagged());
4268 virtual Representation RequiredInputRepresentation(int index) {
4269 return Representation::Tagged();
4286 set_representation(Representation::Integer32());
4291 virtual Representation RequiredInputRepresentation(int index) {
4292 return Representation::Tagged();
4309 virtual Representation RequiredInputRepresentation(int index) {
4311 ? Representation::Double()
4312 : Representation::None();
4314 virtual Representation observed_input_representation(int index) {
4327 set_representation(Representation::Double());
4333 return !right()->representation().IsTagged();
4342 set_representation(Representation::Double());
4347 virtual Representation RequiredInputRepresentation(int index) {
4348 return Representation::Tagged();
4368 return !representation().IsTagged();
4387 virtual void RepresentationChanged(Representation to) {
4455 mul->AssumeRepresentation(Representation::Integer32());
4466 return !representation().IsTagged();
4469 virtual void UpdateRepresentation(Representation new_rep,
4472 if (new_rep.IsSmi()) new_rep = Representation::Integer32();
4515 virtual void UpdateRepresentation(Representation new_rep,
4518 if (new_rep.IsSmi()) new_rep = Representation::Integer32();
4564 virtual void UpdateRepresentation(Representation new_rep,
4567 if (new_rep.IsSmi()) new_rep = Representation::Integer32();
4597 virtual Representation RequiredInputRepresentation(int index) {
4598 return index == 0 ? Representation::Tagged()
4599 : representation();
4602 virtual Representation observed_input_representation(int index) {
4608 virtual Representation RepresentationFromInputs() {
4609 Representation left_rep = left()->representation();
4610 Representation right_rep = right()->representation();
4611 Representation result = Representation::Smi();
4614 if (result.IsTagged()) return Representation::Double();
4678 left->representation().IsSmi() &&
4681 right->representation().IsSmi() &&
4688 left->representation().IsSmi() &&
4691 right->representation().IsSmi() &&
4710 virtual void UpdateRepresentation(Representation new_rep,
4716 new_rep = Representation::Integer32();
4753 virtual void UpdateRepresentation(Representation new_rep,
4756 if (new_rep.IsSmi()) new_rep = Representation::Integer32();
4792 virtual void UpdateRepresentation(Representation new_rep,
4795 if (new_rep.IsSmi()) new_rep = Representation::Integer32();
4814 ChangeRepresentation(Representation::Integer32());
4817 virtual void UpdateRepresentation(Representation new_rep,
4820 if (new_rep.IsSmi()) new_rep = Representation::Integer32();
4837 virtual Representation RequiredInputRepresentation(int index) {
4838 return Representation::None();
4863 Representation);
4870 virtual Representation RequiredInputRepresentation(int index) {
4871 return Representation::None();
4881 set_representation(Representation::Tagged());
4886 Representation r)
4918 virtual Representation RequiredInputRepresentation(int index) {
4919 return Representation::Tagged();
4934 virtual Representation RequiredInputRepresentation(int index) {
4935 return Representation::None();
4946 virtual Representation KnownOptimalRepresentation() {
4947 if (incoming_value_ == NULL) return Representation::None();
4956 set_representation(Representation::Tagged());
4967 set_representation(Representation::Tagged());
4985 virtual Representation RequiredInputRepresentation(int index) {
4986 return Representation::None();
5016 set_representation(Representation::Tagged());
5027 virtual Representation RequiredInputRepresentation(int index) {
5028 return Representation::Tagged();
5057 virtual Representation RequiredInputRepresentation(int index) {
5059 return Representation::Tagged();
5061 return Representation::Integer32();
5132 set_representation(Representation::Tagged());
5191 virtual Representation RequiredInputRepresentation(int index) {
5192 return Representation::Tagged();
5205 set_representation(Representation::Tagged());
5255 virtual Representation RequiredInputRepresentation(int index) {
5256 return Representation::Tagged();
5297 virtual Representation RequiredInputRepresentation(int index) {
5298 return Representation::Tagged();
5314 set_representation(Representation::Tagged());
5352 set_representation(Representation::Tagged());
5368 virtual Representation RequiredInputRepresentation(int index) {
5369 return Representation::Tagged();
5425 virtual Representation RequiredInputRepresentation(int index) {
5426 return Representation::Tagged();
5466 inline Representation representation() const {
5467 return Representation::FromKind(RepresentationField::decode(value_));
5474 inline HObjectAccess WithRepresentation(Representation representation) {
5475 return HObjectAccess(portion(), offset(), representation, name());
5480 kDouble, HeapNumber::kValueOffset, Representation::Double());
5493 ? Representation::Smi() : Representation::Tagged());
5505 return HObjectAccess(kExternalMemory, 0, Representation::Tagged());
5512 FLAG_track_fields ? Representation::Smi() : Representation::Tagged());
5520 FLAG_track_fields ? Representation::Smi() : Representation::Tagged());
5548 return HObjectAccess(kExternalMemory, 0, Representation::Integer32());
5556 Representation representation = Representation::Tagged());
5563 Representation representation = Representation::Tagged());
5595 Representation representation = Representation::Tagged(),
5598 RepresentationField::encode(representation.kind()) |
5604 ASSERT(RepresentationField::decode(value_) == representation.kind());
5608 class RepresentationField : public BitField<Representation::Kind, 3, 3> {};
5611 uint32_t value_; // encodes portion, representation, and offset
5638 Representation field_representation() const {
5639 return access_.representation();
5643 virtual Representation RequiredInputRepresentation(int index) {
5646 return Representation::External();
5648 return Representation::Tagged();
5670 Representation representation = access.representation();
5671 if (representation.IsSmi()) {
5673 set_representation(representation);
5674 } else if (representation.IsDouble() ||
5675 representation.IsExternal() ||
5676 representation.IsInteger32()) {
5677 set_representation(representation);
5679 representation.IsHeapObject()) {
5681 set_representation(Representation::Tagged());
5683 set_representation(Representation::Tagged());
5700 set_representation(Representation::Tagged());
5708 virtual Representation RequiredInputRepresentation(int index) {
5709 return Representation::Tagged();
5725 set_representation(Representation::Tagged());
5732 virtual Representation RequiredInputRepresentation(int index) {
5733 return Representation::Tagged();
5751 static Representation KeyedAccessIndexRequirement(Representation r) {
5753 ? Representation::Integer32() : Representation::Smi();
5799 virtual Representation RequiredInputRepresentation(int index) {
5804 return is_external() ? Representation::External()
5805 : Representation::Tagged();
5809 OperandAt(1)->representation());
5811 return Representation::None();
5814 virtual Representation observed_input_representation(int index) {
5863 set_representation(Representation::Smi());
5865 set_representation(Representation::Tagged());
5870 set_representation(Representation::Double());
5876 set_representation(Representation::Double());
5878 set_representation(Representation::Integer32());
5928 set_representation(Representation::Tagged());
5941 virtual Representation RequiredInputRepresentation(int index) {
5943 return Representation::Tagged();
5960 virtual Representation RequiredInputRepresentation(int index) {
5963 return Representation::External();
5970 return Representation::Tagged();
6027 Representation field_representation() const {
6028 return access_.representation();
6079 virtual Representation RequiredInputRepresentation(int index) {
6080 return Representation::Tagged();
6097 virtual Representation RequiredInputRepresentation(int index) {
6103 return is_external() ? Representation::External()
6104 : Representation::Tagged();
6107 OperandAt(1)->representation());
6112 return Representation::Double();
6116 return Representation::Smi();
6119 return is_external() ? Representation::Integer32()
6120 : Representation::Tagged();
6127 virtual Representation observed_input_representation(int index) {
6130 return Representation::None();
6133 return Representation::Smi();
6136 return Representation::Double();
6139 return Representation::Integer32();
6142 return Representation::None();
6253 virtual Representation RequiredInputRepresentation(int index) {
6255 return Representation::Tagged();
6278 virtual Representation RequiredInputRepresentation(int index) {
6279 return Representation::Tagged();
6328 set_representation(Representation::Tagged());
6350 virtual Representation RequiredInputRepresentation(int index) {
6351 return Representation::Tagged();
6362 set_representation(Representation::Tagged());
6385 virtual Representation RequiredInputRepresentation(int index) {
6388 ? Representation::Integer32()
6389 : Representation::Tagged();
6410 set_representation(Representation::Integer32());
6427 virtual Representation RequiredInputRepresentation(int index) {
6429 ? Representation::Tagged()
6430 : Representation::Integer32();
6445 set_representation(Representation::Tagged());
6461 this->set_representation(Representation::Tagged());
6467 this->set_representation(Representation::Tagged());
6506 virtual Representation RequiredInputRepresentation(int index) {
6507 return Representation::Tagged();
6531 set_representation(Representation::Tagged());
6537 virtual Representation RequiredInputRepresentation(int index) {
6538 return Representation::Tagged();
6565 set_representation(Representation::Tagged());
6573 virtual Representation RequiredInputRepresentation(int index) {
6574 return Representation::Tagged();
6588 virtual Representation RequiredInputRepresentation(int index) {
6589 return Representation::Tagged();
6607 virtual Representation RequiredInputRepresentation(int index) {
6608 return Representation::Tagged();
6615 set_representation(Representation::Tagged());
6636 set_representation(Representation::Tagged());
6639 virtual Representation RequiredInputRepresentation(int index) {
6640 return Representation::Tagged();
6654 set_representation(Representation::Tagged());
6659 virtual Representation RequiredInputRepresentation(int index) {
6660 return Representation::Tagged();
6679 set_representation(Representation::Tagged());
6687 virtual Representation RequiredInputRepresentation(int index) {
6688 return (index == 0) ? Representation::Tagged()
6689 : Representation::Integer32();
6703 virtual Representation RequiredInputRepresentation(int index) {
6704 return Representation::Tagged();
6728 set_representation(Representation::Tagged());
6744 virtual Representation RequiredInputRepresentation(int index) {
6745 return Representation::Tagged();
6764 set_representation(Representation::Tagged());
6774 virtual Representation RequiredInputRepresentation(int index) {
6775 return Representation::Tagged();
6804 set_representation(Representation::Tagged());
6818 set_representation(Representation::Tagged());
6821 virtual Representation RequiredInputRepresentation(int index) {
6822 return Representation::Tagged();