Lines Matching refs:exp
380 get_ref_base_and_extent (tree exp, poly_int64_pod *poffset,
393 if (TREE_CODE (exp) == COMPONENT_REF)
394 size_tree = DECL_SIZE (TREE_OPERAND (exp, 1));
395 else if (TREE_CODE (exp) == BIT_FIELD_REF)
396 size_tree = TREE_OPERAND (exp, 1);
397 else if (!VOID_TYPE_P (TREE_TYPE (exp)))
399 machine_mode mode = TYPE_MODE (TREE_TYPE (exp));
401 size_tree = TYPE_SIZE (TREE_TYPE (exp));
409 *preverse = reverse_storage_order_for_component_p (exp);
419 switch (TREE_CODE (exp))
422 bit_offset += wi::to_poly_offset (TREE_OPERAND (exp, 2));
427 tree field = TREE_OPERAND (exp, 1);
428 tree this_offset = component_ref_field_offset (exp);
443 tree stype = TREE_TYPE (TREE_OPERAND (exp, 0));
476 tree csize = TYPE_SIZE (TREE_TYPE (TREE_OPERAND (exp, 0)));
493 tree index = TREE_OPERAND (exp, 1);
498 && (low_bound = array_ref_low_bound (exp),
500 && (unit_size = array_ref_element_size (exp),
518 tree asize = TYPE_SIZE (TREE_TYPE (TREE_OPERAND (exp, 0)));
535 && (low_bound = array_ref_low_bound (exp),
537 && (unit_size = array_ref_element_size (exp),
592 if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR
593 && (TMR_INDEX (exp) || TMR_INDEX2 (exp)))
595 exp = TREE_OPERAND (TMR_BASE (exp), 0);
614 && (TYPE_SIZE (TREE_TYPE (exp)) == NULL_TREE
615 || !poly_int_tree_p (TYPE_SIZE (TREE_TYPE (exp)))
618 wi::to_poly_offset (TYPE_SIZE (TREE_TYPE (exp)))))))
622 if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR)
624 if (integer_zerop (TREE_OPERAND (exp, 1)))
625 exp = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
628 poly_offset_int off = mem_ref_offset (exp);
635 exp = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
645 exp = TREE_OPERAND (exp, 0);
655 return exp;
666 return exp;
671 if (DECL_P (exp))
673 if (VAR_P (exp)
674 && ((flag_unconstrained_commons && DECL_COMMON (exp))
675 || (DECL_EXTERNAL (exp) && seen_variable_array_ref)))
677 tree sz_tree = TYPE_SIZE (TREE_TYPE (exp));
680 if (TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE
691 && DECL_SIZE (exp)
692 && poly_int_tree_p (DECL_SIZE (exp)))
693 maxsize = wi::to_poly_offset (DECL_SIZE (exp)) - bit_offset;
695 else if (CONSTANT_CLASS_P (exp))
700 && TYPE_SIZE (TREE_TYPE (exp))
701 && poly_int_tree_p (TYPE_SIZE (TREE_TYPE (exp))))
702 maxsize = (wi::to_poly_offset (TYPE_SIZE (TREE_TYPE (exp)))
719 return exp;
722 return exp;
730 get_ref_base_and_extent_hwi (tree exp, HOST_WIDE_INT *poffset,
736 tree decl = get_ref_base_and_extent (exp, &offset, &size, &max_size,
759 get_addr_base_and_unit_offset_1 (tree exp, poly_int64_pod *poffset,
768 switch (TREE_CODE (exp))
774 if (!poly_int_tree_p (TREE_OPERAND (exp, 2), &this_bit_offset)
784 tree field = TREE_OPERAND (exp, 1);
785 tree this_offset = component_ref_field_offset (exp);
803 tree index = TREE_OPERAND (exp, 1);
812 && (low_bound = array_ref_low_bound (exp),
814 && (unit_size = array_ref_element_size (exp),
833 byte_offset += TREE_INT_CST_LOW (TYPE_SIZE_UNIT (TREE_TYPE (exp)));
841 tree base = TREE_OPERAND (exp, 0);
849 if (!integer_zerop (TREE_OPERAND (exp, 1)))
851 poly_offset_int off = mem_ref_offset (exp);
854 exp = TREE_OPERAND (base, 0);
861 tree base = TREE_OPERAND (exp, 0);
869 if (TMR_INDEX (exp) || TMR_INDEX2 (exp))
871 if (!integer_zerop (TMR_OFFSET (exp)))
873 poly_offset_int off = mem_ref_offset (exp);
876 exp = TREE_OPERAND (base, 0);
885 exp = TREE_OPERAND (exp, 0);
890 return exp;
899 get_addr_base_and_unit_offset (tree exp, poly_int64_pod *poffset)
901 return get_addr_base_and_unit_offset_1 (exp, poffset, NULL);