[llvm-commits] [llvm-gcc-4.2] r124194 - in /llvm-gcc-4.2/trunk/gcc: config/mips/predicates.md dwarf2out.c gimplify.c simplify-rtx.c tree-vect-patterns.c tree.c
Stuart Hastings
stuart at apple.com
Tue Jan 25 08:32:44 PST 2011
Author: stuart
Date: Tue Jan 25 10:32:44 2011
New Revision: 124194
URL: http://llvm.org/viewvc/llvm-project?rev=124194&view=rev
Log:
Applying second patch for PR9031. Patch by Pedro Giffuni!
Modified:
llvm-gcc-4.2/trunk/gcc/config/mips/predicates.md
llvm-gcc-4.2/trunk/gcc/dwarf2out.c
llvm-gcc-4.2/trunk/gcc/gimplify.c
llvm-gcc-4.2/trunk/gcc/simplify-rtx.c
llvm-gcc-4.2/trunk/gcc/tree-vect-patterns.c
llvm-gcc-4.2/trunk/gcc/tree.c
Modified: llvm-gcc-4.2/trunk/gcc/config/mips/predicates.md
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/mips/predicates.md?rev=124194&r1=124193&r2=124194&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/mips/predicates.md (original)
+++ llvm-gcc-4.2/trunk/gcc/config/mips/predicates.md Tue Jan 25 10:32:44 2011
@@ -116,7 +116,9 @@
/* If -mlong-calls, force all calls to use register addressing. Also,
if this function has the long_call attribute, we must use register
addressing. */
- return !TARGET_LONG_CALLS && !SYMBOL_REF_LONG_CALL_P (op);
+ return (!TARGET_LONG_CALLS
+ && !(GET_CODE (op) == SYMBOL_REF
+ && SYMBOL_REF_LONG_CALL_P (op)));
case SYMBOL_GOT_GLOBAL:
/* Without explicit relocs, there is no special syntax for
Modified: llvm-gcc-4.2/trunk/gcc/dwarf2out.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/dwarf2out.c?rev=124194&r1=124193&r2=124194&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/dwarf2out.c (original)
+++ llvm-gcc-4.2/trunk/gcc/dwarf2out.c Tue Jan 25 10:32:44 2011
@@ -14485,7 +14485,8 @@
was generated within the original definition of an inline function) we
have to generate a special (abbreviated) DW_TAG_structure_type,
DW_TAG_union_type, or DW_TAG_enumeration_type DIE here. */
- if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE)
+ if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE
+ && is_tagged_type (TREE_TYPE (decl)))
{
gen_tagged_type_instantiation_die (TREE_TYPE (decl), context_die);
break;
Modified: llvm-gcc-4.2/trunk/gcc/gimplify.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/gimplify.c?rev=124194&r1=124193&r2=124194&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/gimplify.c (original)
+++ llvm-gcc-4.2/trunk/gcc/gimplify.c Tue Jan 25 10:32:44 2011
@@ -3583,8 +3583,16 @@
gcc_assert (TREE_CODE (*expr_p) == MODIFY_EXPR
|| TREE_CODE (*expr_p) == INIT_EXPR);
- /* For zero sized types only gimplify the left hand side and right hand side
- as statements and throw away the assignment. */
+ /* See if any simplifications can be done based on what the RHS is. */
+ ret = gimplify_modify_expr_rhs (expr_p, from_p, to_p, pre_p, post_p,
+ want_value);
+ if (ret != GS_UNHANDLED)
+ return ret;
+
+ /* For zero sized types only gimplify the left hand side and right hand
+ side as statements and throw away the assignment. Do this after
+ gimplify_modify_expr_rhs so we handle TARGET_EXPRs of addressable
+ types properly. */
if (zero_sized_type (TREE_TYPE (*from_p)))
{
gimplify_stmt (from_p);
@@ -3595,12 +3603,6 @@
return GS_ALL_DONE;
}
- /* See if any simplifications can be done based on what the RHS is. */
- ret = gimplify_modify_expr_rhs (expr_p, from_p, to_p, pre_p, post_p,
- want_value);
- if (ret != GS_UNHANDLED)
- return ret;
-
/* If the value being copied is of variable width, compute the length
of the copy into a WITH_SIZE_EXPR. Note that we need to do this
before gimplifying any of the operands so that we can resolve any
Modified: llvm-gcc-4.2/trunk/gcc/simplify-rtx.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/simplify-rtx.c?rev=124194&r1=124193&r2=124194&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/simplify-rtx.c (original)
+++ llvm-gcc-4.2/trunk/gcc/simplify-rtx.c Tue Jan 25 10:32:44 2011
@@ -589,7 +589,8 @@
/* (neg (lt x 0)) is (ashiftrt X C) if STORE_FLAG_VALUE is 1. */
/* (neg (lt x 0)) is (lshiftrt X C) if STORE_FLAG_VALUE is -1. */
if (GET_CODE (op) == LT
- && XEXP (op, 1) == const0_rtx)
+ && XEXP (op, 1) == const0_rtx
+ && SCALAR_INT_MODE_P (GET_MODE (XEXP (op, 0))))
{
enum machine_mode inner = GET_MODE (XEXP (op, 0));
int isize = GET_MODE_BITSIZE (inner);
Modified: llvm-gcc-4.2/trunk/gcc/tree-vect-patterns.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree-vect-patterns.c?rev=124194&r1=124193&r2=124194&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/tree-vect-patterns.c (original)
+++ llvm-gcc-4.2/trunk/gcc/tree-vect-patterns.c Tue Jan 25 10:32:44 2011
@@ -499,8 +499,9 @@
|| (icode = optab->handlers[(int) vec_mode].insn_code) ==
CODE_FOR_nothing
|| (type_out
- && (insn_data[icode].operand[0].mode !=
- TYPE_MODE (get_vectype_for_scalar_type (type_out)))))
+ && (!get_vectype_for_scalar_type (type_out)
+ || (insn_data[icode].operand[0].mode !=
+ TYPE_MODE (get_vectype_for_scalar_type (type_out))))))
return;
}
Modified: llvm-gcc-4.2/trunk/gcc/tree.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree.c?rev=124194&r1=124193&r2=124194&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/tree.c (original)
+++ llvm-gcc-4.2/trunk/gcc/tree.c Tue Jan 25 10:32:44 2011
@@ -4636,7 +4636,8 @@
&& (HOST_WIDE_INT) TREE_INT_CST_LOW (t) >= 0)
|| (! pos && TREE_INT_CST_HIGH (t) == -1
&& (HOST_WIDE_INT) TREE_INT_CST_LOW (t) < 0
- && !TYPE_UNSIGNED (TREE_TYPE (t)))
+ && (!TYPE_UNSIGNED (TREE_TYPE (t))
+ || TYPE_IS_SIZETYPE (TREE_TYPE (t))))
|| (pos && TREE_INT_CST_HIGH (t) == 0)));
}
More information about the llvm-commits
mailing list