diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-03-19 15:35:55 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-03-19 15:35:55 +0000 |
commit | b199074d13335fef7220ac5372bab4a898131f65 (patch) | |
tree | 5aa9a6ef1c91b2af73ac56b6bdb2e671558e7e91 /gcc | |
parent | 79f3658a243933ec102cf7c8d2e702645020169e (diff) | |
download | gcc-b199074d13335fef7220ac5372bab4a898131f65.zip gcc-b199074d13335fef7220ac5372bab4a898131f65.tar.gz gcc-b199074d13335fef7220ac5372bab4a898131f65.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 12 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 2 | ||||
-rw-r--r-- | gcc/tree.def | 34 | ||||
-rw-r--r-- | gcc/tree.h | 4 |
5 files changed, 36 insertions, 28 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 477fbc0..670361e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +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> * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode @@ -32,7 +42,7 @@ 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. 2012-03-16 Richard Guenther <rguenther@suse.de> diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 264edd7..828e996 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -13328,8 +13328,8 @@ cst_pool_loc_descr (tree loc) } /* Return dw_loc_list representing address of addr_expr LOC - by looking for innder INDIRECT_REF expression and turing it - into simple arithmetics. */ + by looking for inner INDIRECT_REF expression and turning + it into simple arithmetics. */ static dw_loc_list_ref 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; HOST_WIDE_INT bitsize, bitpos, bytepos; enum machine_mode mode; - int volatilep; - int unsignedp = TYPE_UNSIGNED (TREE_TYPE (loc)); + int unsignedp, volatilep = 0; dw_loc_list_ref list_ret = NULL, list_ret1 = NULL; obj = get_inner_reference (TREE_OPERAND (loc, 0), @@ -13628,8 +13627,7 @@ loc_list_from_tree (tree loc, int want_address) tree obj, offset; HOST_WIDE_INT bitsize, bitpos, bytepos; enum machine_mode mode; - int volatilep; - int unsignedp = TYPE_UNSIGNED (TREE_TYPE (loc)); + int unsignedp, volatilep = 0; obj = get_inner_reference (loc, &bitsize, &bitpos, &offset, &mode, &unsignedp, &volatilep, false); @@ -14927,7 +14925,7 @@ fortran_common (tree decl, HOST_WIDE_INT *value) enum machine_mode mode; HOST_WIDE_INT bitsize, bitpos; 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 it does not have a value (the offset into the common area), or if it diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index bba565d..35b7f2c 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -293,7 +293,7 @@ delegitimize_mem_from_attrs (rtx x) { HOST_WIDE_INT bitsize, bitpos; tree toffset; - int unsignedp = 0, volatilep = 0; + int unsignedp, volatilep = 0; decl = get_inner_reference (decl, &bitsize, &bitpos, &toffset, &mode, &unsignedp, &volatilep, false); diff --git a/gcc/tree.def b/gcc/tree.def index a307249..fd7cbbd 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -400,11 +400,6 @@ DEFTREECODE (COMPONENT_REF, "component_ref", tcc_reference, 3) to its mode width. */ 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. 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. @@ -417,6 +412,23 @@ DEFTREECODE (ARRAY_REF, "array_ref", tcc_reference, 4) of the range is taken from the type of the expression. */ 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. */ DEFTREECODE (INDIRECT_REF, "indirect_ref", tcc_reference, 1) @@ -769,18 +781,6 @@ DEFTREECODE (NOP_EXPR, "nop_expr", tcc_unary, 1) /* Value is same as argument, but guaranteed not an lvalue. */ 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 COMPOUND_LITERAL_EXPR_DECL_EXPR is the a DECL_EXPR containing the decl for the anonymous object represented by the COMPOUND_LITERAL; @@ -5029,13 +5029,13 @@ handled_component_p (const_tree t) { switch (TREE_CODE (t)) { - case BIT_FIELD_REF: case COMPONENT_REF: + case BIT_FIELD_REF: case ARRAY_REF: case ARRAY_RANGE_REF: - case VIEW_CONVERT_EXPR: case REALPART_EXPR: case IMAGPART_EXPR: + case VIEW_CONVERT_EXPR: return true; default: |