Lines Matching refs:HConstant

465   HConstant* GetConstant(Primitive::Type type, int64_t value, uint32_t dex_pc = kNoDexPc);
546 void InsertConstant(HConstant* instruction);
2475 class HConstant : public HExpression<0> {
2477 explicit HConstant(Primitive::Type type, uint32_t dex_pc = kNoDexPc)
2496 DISALLOW_COPY_AND_ASSIGN(HConstant);
2499 class HNullConstant : public HConstant {
2515 explicit HNullConstant(uint32_t dex_pc = kNoDexPc) : HConstant(Primitive::kPrimNot, dex_pc) {}
2523 class HIntConstant : public HConstant {
2552 : HConstant(Primitive::kPrimInt, dex_pc), value_(value) {}
2554 : HConstant(Primitive::kPrimInt, dex_pc), value_(value ? 1 : 0) {}
2564 class HLongConstant : public HConstant {
2586 : HConstant(Primitive::kPrimLong, dex_pc), value_(value) {}
2594 class HFloatConstant : public HConstant {
2635 : HConstant(Primitive::kPrimFloat, dex_pc), value_(value) {}
2637 : HConstant(Primitive::kPrimFloat, dex_pc), value_(bit_cast<float, int32_t>(value)) {}
2647 class HDoubleConstant : public HConstant {
2686 : HConstant(Primitive::kPrimDouble, dex_pc), value_(value) {}
2688 : HConstant(Primitive::kPrimDouble, dex_pc), value_(bit_cast<double, int64_t>(value)) {}
2918 // Try to statically evaluate `this` and return a HConstant
2921 HConstant* TryStaticEvaluation() const;
2924 virtual HConstant* Evaluate(HIntConstant* x) const = 0;
2925 virtual HConstant* Evaluate(HLongConstant* x) const = 0;
2926 virtual HConstant* Evaluate(HFloatConstant* x) const = 0;
2927 virtual HConstant* Evaluate(HDoubleConstant* x) const = 0;
2990 // Try to statically evaluate `this` and return a HConstant
2993 HConstant* TryStaticEvaluation() const;
2996 virtual HConstant* Evaluate(HNullConstant* x ATTRIBUTE_UNUSED,
3001 virtual HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const = 0;
3002 virtual HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const = 0;
3003 virtual HConstant* Evaluate(HLongConstant* x ATTRIBUTE_UNUSED,
3008 virtual HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const = 0;
3009 virtual HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const = 0;
3013 HConstant* GetConstantRight() const;
3124 HConstant* Evaluate(HNullConstant* x ATTRIBUTE_UNUSED,
3128 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3134 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3138 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3141 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
3168 HConstant* Evaluate(HNullConstant* x ATTRIBUTE_UNUSED,
3172 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3178 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3181 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3184 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
3209 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3215 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3218 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3221 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
3246 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3252 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3255 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3258 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
3283 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3289 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3292 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3295 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
3320 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3326 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3329 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3332 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
3357 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3360 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3363 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
3368 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
3397 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3400 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3403 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
3408 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
3437 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3440 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3443 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
3448 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
3477 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3480 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3483 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
3488 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
3545 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
3553 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
3556 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
3559 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
4179 HConstant* Evaluate(HIntConstant* x) const OVERRIDE {
4182 HConstant* Evaluate(HLongConstant* x) const OVERRIDE {
4185 HConstant* Evaluate(HFloatConstant* x) const OVERRIDE {
4188 HConstant* Evaluate(HDoubleConstant* x) const OVERRIDE {
4249 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4253 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4257 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
4261 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
4282 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4286 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4290 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
4294 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
4317 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4321 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4325 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
4329 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
4364 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4368 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4372 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
4376 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
4416 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4420 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4424 HConstant* Evaluate(HFloatConstant* x, HFloatConstant* y) const OVERRIDE {
4428 HConstant* Evaluate(HDoubleConstant* x, HDoubleConstant* y) const OVERRIDE {
4485 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4489 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4493 HConstant* Evaluate(HLongConstant* value ATTRIBUTE_UNUSED,
4498 HConstant* Evaluate(HFloatConstant* value ATTRIBUTE_UNUSED,
4503 HConstant* Evaluate(HDoubleConstant* value ATTRIBUTE_UNUSED,
4531 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4535 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4539 HConstant* Evaluate(HLongConstant* value ATTRIBUTE_UNUSED,
4544 HConstant* Evaluate(HFloatConstant* value ATTRIBUTE_UNUSED,
4549 HConstant* Evaluate(HDoubleConstant* value ATTRIBUTE_UNUSED,
4579 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4583 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4587 HConstant* Evaluate(HLongConstant* value ATTRIBUTE_UNUSED,
4592 HConstant* Evaluate(HFloatConstant* value ATTRIBUTE_UNUSED,
4597 HConstant* Evaluate(HDoubleConstant* value ATTRIBUTE_UNUSED,
4621 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4625 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4629 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
4634 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
4658 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4662 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4666 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
4671 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
4695 HConstant* Evaluate(HIntConstant* x, HIntConstant* y) const OVERRIDE {
4699 HConstant* Evaluate(HLongConstant* x, HLongConstant* y) const OVERRIDE {
4703 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED,
4708 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED,
4741 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4745 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4749 HConstant* Evaluate(HLongConstant* value ATTRIBUTE_UNUSED,
4754 HConstant* Evaluate(HFloatConstant* value ATTRIBUTE_UNUSED,
4759 HConstant* Evaluate(HDoubleConstant* value ATTRIBUTE_UNUSED,
4827 HConstant* Evaluate(HIntConstant* x) const OVERRIDE {
4830 HConstant* Evaluate(HLongConstant* x) const OVERRIDE {
4833 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED) const OVERRIDE {
4837 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED) const OVERRIDE {
4863 HConstant* Evaluate(HIntConstant* x) const OVERRIDE {
4866 HConstant* Evaluate(HLongConstant* x ATTRIBUTE_UNUSED) const OVERRIDE {
4870 HConstant* Evaluate(HFloatConstant* x ATTRIBUTE_UNUSED) const OVERRIDE {
4874 HConstant* Evaluate(HDoubleConstant* x ATTRIBUTE_UNUSED) const OVERRIDE {
4904 // Try to statically evaluate the conversion and return a HConstant
4906 HConstant* TryStaticEvaluation() const;
6555 inline int64_t Int64FromConstant(HConstant* constant) {