Commit b199074d by Eric Botcazou

tree.def (REALPART_EXPR, [...]): Move.

	* tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
	* tree.h (handled_component_p): Reorder cases.
	* dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
	not initialize unsignedp.
	(loc_list_from_tree): Likewise.
	(fortran_common): Likewise.
	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.

From-SVN: r185522
parent 79f3658a
2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
* tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
* tree.h (handled_component_p): Reorder cases.
* dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
not initialize unsignedp.
(loc_list_from_tree): Likewise.
(fortran_common): Likewise.
* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2012-03-19 Uros Bizjak <ubizjak@gmail.com> 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
...@@ -32,7 +42,7 @@ ...@@ -32,7 +42,7 @@
2012-03-16 Martin Jambor <mjambor@suse.cz> 2012-03-16 Martin Jambor <mjambor@suse.cz>
* expr.c (expand_expr_real_1): handle misaligned scalar reads from * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
memory through MEM_REFs by calling extract_bit_field. memory through MEM_REFs by calling extract_bit_field.
2012-03-16 Richard Guenther <rguenther@suse.de> 2012-03-16 Richard Guenther <rguenther@suse.de>
......
...@@ -13328,8 +13328,8 @@ cst_pool_loc_descr (tree loc) ...@@ -13328,8 +13328,8 @@ cst_pool_loc_descr (tree loc)
} }
/* Return dw_loc_list representing address of addr_expr LOC /* Return dw_loc_list representing address of addr_expr LOC
by looking for innder INDIRECT_REF expression and turing it by looking for inner INDIRECT_REF expression and turning
into simple arithmetics. */ it into simple arithmetics. */
static dw_loc_list_ref static dw_loc_list_ref
loc_list_for_address_of_addr_expr_of_indirect_ref (tree loc, bool toplev) loc_list_for_address_of_addr_expr_of_indirect_ref (tree loc, bool toplev)
...@@ -13337,8 +13337,7 @@ loc_list_for_address_of_addr_expr_of_indirect_ref (tree loc, bool toplev) ...@@ -13337,8 +13337,7 @@ loc_list_for_address_of_addr_expr_of_indirect_ref (tree loc, bool toplev)
tree obj, offset; tree obj, offset;
HOST_WIDE_INT bitsize, bitpos, bytepos; HOST_WIDE_INT bitsize, bitpos, bytepos;
enum machine_mode mode; enum machine_mode mode;
int volatilep; int unsignedp, volatilep = 0;
int unsignedp = TYPE_UNSIGNED (TREE_TYPE (loc));
dw_loc_list_ref list_ret = NULL, list_ret1 = NULL; dw_loc_list_ref list_ret = NULL, list_ret1 = NULL;
obj = get_inner_reference (TREE_OPERAND (loc, 0), obj = get_inner_reference (TREE_OPERAND (loc, 0),
...@@ -13628,8 +13627,7 @@ loc_list_from_tree (tree loc, int want_address) ...@@ -13628,8 +13627,7 @@ loc_list_from_tree (tree loc, int want_address)
tree obj, offset; tree obj, offset;
HOST_WIDE_INT bitsize, bitpos, bytepos; HOST_WIDE_INT bitsize, bitpos, bytepos;
enum machine_mode mode; enum machine_mode mode;
int volatilep; int unsignedp, volatilep = 0;
int unsignedp = TYPE_UNSIGNED (TREE_TYPE (loc));
obj = get_inner_reference (loc, &bitsize, &bitpos, &offset, &mode, obj = get_inner_reference (loc, &bitsize, &bitpos, &offset, &mode,
&unsignedp, &volatilep, false); &unsignedp, &volatilep, false);
...@@ -14927,7 +14925,7 @@ fortran_common (tree decl, HOST_WIDE_INT *value) ...@@ -14927,7 +14925,7 @@ fortran_common (tree decl, HOST_WIDE_INT *value)
enum machine_mode mode; enum machine_mode mode;
HOST_WIDE_INT bitsize, bitpos; HOST_WIDE_INT bitsize, bitpos;
tree offset; tree offset;
int volatilep = 0, unsignedp = 0; int unsignedp, volatilep = 0;
/* If the decl isn't a VAR_DECL, or if it isn't static, or if /* If the decl isn't a VAR_DECL, or if it isn't static, or if
it does not have a value (the offset into the common area), or if it it does not have a value (the offset into the common area), or if it
......
...@@ -293,7 +293,7 @@ delegitimize_mem_from_attrs (rtx x) ...@@ -293,7 +293,7 @@ delegitimize_mem_from_attrs (rtx x)
{ {
HOST_WIDE_INT bitsize, bitpos; HOST_WIDE_INT bitsize, bitpos;
tree toffset; tree toffset;
int unsignedp = 0, volatilep = 0; int unsignedp, volatilep = 0;
decl = get_inner_reference (decl, &bitsize, &bitpos, &toffset, decl = get_inner_reference (decl, &bitsize, &bitpos, &toffset,
&mode, &unsignedp, &volatilep, false); &mode, &unsignedp, &volatilep, false);
......
...@@ -400,11 +400,6 @@ DEFTREECODE (COMPONENT_REF, "component_ref", tcc_reference, 3) ...@@ -400,11 +400,6 @@ DEFTREECODE (COMPONENT_REF, "component_ref", tcc_reference, 3)
to its mode width. */ to its mode width. */
DEFTREECODE (BIT_FIELD_REF, "bit_field_ref", tcc_reference, 3) DEFTREECODE (BIT_FIELD_REF, "bit_field_ref", tcc_reference, 3)
/* Used only on an operand of complex type, these return
a value of the corresponding component type. */
DEFTREECODE (REALPART_EXPR, "realpart_expr", tcc_reference, 1)
DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", tcc_reference, 1)
/* Array indexing. /* Array indexing.
Operand 0 is the array; operand 1 is a (single) array index. Operand 0 is the array; operand 1 is a (single) array index.
Operand 2, if present, is a copy of TYPE_MIN_VALUE of the index. Operand 2, if present, is a copy of TYPE_MIN_VALUE of the index.
...@@ -417,6 +412,23 @@ DEFTREECODE (ARRAY_REF, "array_ref", tcc_reference, 4) ...@@ -417,6 +412,23 @@ DEFTREECODE (ARRAY_REF, "array_ref", tcc_reference, 4)
of the range is taken from the type of the expression. */ of the range is taken from the type of the expression. */
DEFTREECODE (ARRAY_RANGE_REF, "array_range_ref", tcc_reference, 4) DEFTREECODE (ARRAY_RANGE_REF, "array_range_ref", tcc_reference, 4)
/* Used only on an operand of complex type, these return
a value of the corresponding component type. */
DEFTREECODE (REALPART_EXPR, "realpart_expr", tcc_reference, 1)
DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", tcc_reference, 1)
/* Represents viewing something of one type as being of a second type.
This corresponds to an "Unchecked Conversion" in Ada and roughly to
the idiom *(type2 *)&X in C. The only operand is the value to be
viewed as being of another type. It is undefined if the type of the
input and of the expression have different sizes.
This code may also be used within the LHS of a MODIFY_EXPR, in which
case no actual data motion may occur. TREE_ADDRESSABLE will be set in
this case and GCC must abort if it could not do the operation without
generating insns. */
DEFTREECODE (VIEW_CONVERT_EXPR, "view_convert_expr", tcc_reference, 1)
/* C unary `*' or Pascal `^'. One operand, an expression for a pointer. */ /* C unary `*' or Pascal `^'. One operand, an expression for a pointer. */
DEFTREECODE (INDIRECT_REF, "indirect_ref", tcc_reference, 1) DEFTREECODE (INDIRECT_REF, "indirect_ref", tcc_reference, 1)
...@@ -769,18 +781,6 @@ DEFTREECODE (NOP_EXPR, "nop_expr", tcc_unary, 1) ...@@ -769,18 +781,6 @@ DEFTREECODE (NOP_EXPR, "nop_expr", tcc_unary, 1)
/* Value is same as argument, but guaranteed not an lvalue. */ /* Value is same as argument, but guaranteed not an lvalue. */
DEFTREECODE (NON_LVALUE_EXPR, "non_lvalue_expr", tcc_unary, 1) DEFTREECODE (NON_LVALUE_EXPR, "non_lvalue_expr", tcc_unary, 1)
/* Represents viewing something of one type as being of a second type.
This corresponds to an "Unchecked Conversion" in Ada and roughly to
the idiom *(type2 *)&X in C. The only operand is the value to be
viewed as being of another type. It is undefined if the type of the
input and of the expression have different sizes.
This code may also be used within the LHS of a MODIFY_EXPR, in which
case no actual data motion may occur. TREE_ADDRESSABLE will be set in
this case and GCC must abort if it could not do the operation without
generating insns. */
DEFTREECODE (VIEW_CONVERT_EXPR, "view_convert_expr", tcc_reference, 1)
/* A COMPOUND_LITERAL_EXPR represents a literal that is placed in a DECL. The /* A COMPOUND_LITERAL_EXPR represents a literal that is placed in a DECL. The
COMPOUND_LITERAL_EXPR_DECL_EXPR is the a DECL_EXPR containing the decl COMPOUND_LITERAL_EXPR_DECL_EXPR is the a DECL_EXPR containing the decl
for the anonymous object represented by the COMPOUND_LITERAL; for the anonymous object represented by the COMPOUND_LITERAL;
......
...@@ -5029,13 +5029,13 @@ handled_component_p (const_tree t) ...@@ -5029,13 +5029,13 @@ handled_component_p (const_tree t)
{ {
switch (TREE_CODE (t)) switch (TREE_CODE (t))
{ {
case BIT_FIELD_REF:
case COMPONENT_REF: case COMPONENT_REF:
case BIT_FIELD_REF:
case ARRAY_REF: case ARRAY_REF:
case ARRAY_RANGE_REF: case ARRAY_RANGE_REF:
case VIEW_CONVERT_EXPR:
case REALPART_EXPR: case REALPART_EXPR:
case IMAGPART_EXPR: case IMAGPART_EXPR:
case VIEW_CONVERT_EXPR:
return true; return true;
default: default:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment