From: Paweł Sikora Date: Mon, 21 Nov 2005 16:59:22 +0000 (+0000) Subject: - outdated. X-Git-Tag: auto/th/gcc-4_1_0-0_20051121r107281_2~1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fgcc.git;a=commitdiff_plain;h=5f185f69571744dd46a98a07796f24f163c13d04 - outdated. Changed files: gcc-pr22533.patch -> 1.3 gcc-pr22550.patch -> 1.2 --- diff --git a/gcc-pr22533.patch b/gcc-pr22533.patch deleted file mode 100644 index 31df6ce..0000000 --- a/gcc-pr22533.patch +++ /dev/null @@ -1,167 +0,0 @@ ---- gcc/gcc/gimplify.c 20 Jul 2005 01:18:18 -0000 2.142 -+++ gcc/gcc/gimplify.c 24 Jul 2005 10:10:35 -0000 -@@ -298,6 +298,25 @@ - return lab; - } - -+static tree -+gimplify_build_fold_addr_expr (tree t) -+{ -+ if (TREE_CODE (t) == CONSTRUCTOR) -+ { -+ tree new_t; -+ tree new_var -+ = create_tmp_var (TREE_TYPE (t), "ATP"); -+ TREE_ADDRESSABLE (new_var) = 1; -+ TREE_READONLY (new_var) = 1; -+ DECL_INITIAL (new_var) = t; -+ new_t = build1 (DECL_EXPR, void_type_node, new_var); -+ t = build_fold_addr_expr (new_var); -+ t = build2 (COMPOUND_EXPR, TREE_TYPE (t), new_t, t); -+ return t; -+ } -+ return build_fold_addr_expr (t); -+} -+ - /* Create a new temporary name with PREFIX. Returns an identifier. */ - - static GTY(()) unsigned int tmp_var_id_num; -@@ -3224,9 +3243,10 @@ - t = unshare_expr (t); - t = SUBSTITUTE_PLACEHOLDER_IN_EXPR (t, op0); - args = tree_cons (NULL, t, NULL); -- t = build_fold_addr_expr (op1); -+ -+ t = gimplify_build_fold_addr_expr (op1); - args = tree_cons (NULL, t, args); -- dest = build_fold_addr_expr (op0); -+ dest = gimplify_build_fold_addr_expr (op0); - args = tree_cons (NULL, dest, args); - t = implicit_built_in_decls[BUILT_IN_MEMCMP]; - t = build_function_call_expr (t, args); -@@ -3443,7 +3463,7 @@ - op0 = TREE_OPERAND (op0, 0); - - *expr_p = fold_convert (TREE_TYPE (expr), -- build_fold_addr_expr (TREE_OPERAND (op0, 0))); -+ gimplify_build_fold_addr_expr (TREE_OPERAND (op0, 0))); - ret = GS_OK; - break; - -@@ -4473,7 +4493,7 @@ - /* An lvalue will do. Take the address of the expression, store it - in a temporary, and replace the expression with an INDIRECT_REF of - that temporary. */ -- tmp = build_fold_addr_expr (*expr_p); -+ tmp = gimplify_build_fold_addr_expr (*expr_p); - gimplify_expr (&tmp, pre_p, post_p, is_gimple_reg, fb_rvalue); - *expr_p = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (tmp)), tmp); - } ---- gcc/gcc/ada/trans.c 20 Jul 2005 01:18:53 -0000 1.101 -+++ gcc/gcc/ada/trans.c 24 Jul 2005 10:10:37 -0000 -@@ -3585,6 +3585,7 @@ - else - gnu_lhs = DECL_RESULT (current_function_decl); - -+#if 0 - /* Do not remove the padding from GNU_RET_VAL if the inner - type is self-referential since we want to allocate the fixed - size in that case. */ -@@ -3596,6 +3597,7 @@ - && (CONTAINS_PLACEHOLDER_P - (TYPE_SIZE (TREE_TYPE (gnu_ret_val))))) - gnu_ret_val = TREE_OPERAND (gnu_ret_val, 0); -+#endif - - if (TYPE_RETURNS_BY_REF_P (gnu_subprog_type) - || By_Ref (gnat_node)) -@@ -4549,28 +4551,6 @@ - *expr_p = TREE_OPERAND (*expr_p, 0); - return GS_OK; - -- case ADDR_EXPR: -- /* If we're taking the address of a constant CONSTRUCTOR, force it to -- be put into static memory. We know it's going to be readonly given -- the semantics we have and it's required to be static memory in -- the case when the reference is in an elaboration procedure. */ -- if (TREE_CODE (TREE_OPERAND (expr, 0)) == CONSTRUCTOR -- && TREE_CONSTANT (TREE_OPERAND (expr, 0))) -- { -- tree new_var -- = create_tmp_var (TREE_TYPE (TREE_OPERAND (expr, 0)), "C"); -- -- TREE_READONLY (new_var) = 1; -- TREE_STATIC (new_var) = 1; -- TREE_ADDRESSABLE (new_var) = 1; -- DECL_INITIAL (new_var) = TREE_OPERAND (expr, 0); -- -- TREE_OPERAND (expr, 0) = new_var; -- recompute_tree_invarant_for_addr_expr (expr); -- return GS_ALL_DONE; -- } -- return GS_UNHANDLED; -- - case COMPONENT_REF: - /* We have a kludge here. If the FIELD_DECL is from a fat pointer and is - from an early dummy type, replace it with the proper FIELD_DECL. */ -@@ -5361,7 +5341,7 @@ - - case UNCONSTRAINED_ARRAY_REF: - case INDIRECT_REF: -- case CONSTRUCTOR: -+/* case CONSTRUCTOR:*/ - case NULL_EXPR: - case SAVE_EXPR: - return true; ---- gcc/gcc/ada/utils2.c 20 Jul 2005 01:18:55 -0000 1.50 -+++ gcc/gcc/ada/utils2.c 24 Jul 2005 10:10:37 -0000 -@@ -45,6 +45,8 @@ - #include "einfo.h" - #include "ada-tree.h" - #include "gigi.h" -+#include "tree-gimple.h" -+#include "toplev.h" - - static tree find_common_type (tree, tree); - static bool contains_save_expr_p (tree); -@@ -1032,6 +1034,7 @@ - tree operation_type = result_type; - tree result; - bool side_effects = false; -+ tree before = NULL; - - if (operation_type - && TREE_CODE (operation_type) == RECORD_TYPE -@@ -1150,6 +1153,22 @@ - result); - break; - } -+ else -+ { -+ tree new_var = create_tmp_var_raw (type, "C"); -+ TREE_ADDRESSABLE (new_var) = 1; -+ TREE_READONLY (new_var) = 1; -+ if (global_bindings_p ()) -+ TREE_STATIC (new_var) = 1; -+ DECL_INITIAL (new_var) = operand; -+ gnat_pushdecl (new_var, Empty); -+ -+ if (global_bindings_p ()) -+ rest_of_decl_compilation (new_var, 1, 0); -+ else -+ before = build1 (DECL_EXPR, void_type_node, new_var); -+ operand = new_var; -+ } - - goto common; - -@@ -1198,6 +1217,9 @@ - } - - TREE_CONSTANT (result) = staticp (operand) || TREE_CONSTANT (operand); -+ if (before) -+ result = build2 (COMPOUND_EXPR, TREE_TYPE (result), before, -+ result); - break; - - case INDIRECT_REF: diff --git a/gcc-pr22550.patch b/gcc-pr22550.patch deleted file mode 100644 index 281ebae..0000000 --- a/gcc-pr22550.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: ja2morri at csclub dot uwaterloo dot ca (James A dot Morrison) -Date: Mon, 25 Jul 2005 10:37:52 -0400 - -Hi, - -This fixes PR22550 by simply returning COND in vrp_evaluate_condition if -it is an INTEGER_CST. In PR22550 I believe the if (0) comes from -merge_seq_blocks which is called after cleanup_control_flow in -cleanup_tree_cfg. This patch has been bootstrapped and regtested on ia64-linux -with no new regressions, ok for mainline? - -Thanks, -Jim - -2005-07-25 James A. Morrison - - PR tree-optimization/22550 - * tree-vrp.c (vrp_evaluate_condition): Return COND if it is an - INTEGER_CST. - ---- gcc/gcc/tree-vrp.c 20 Jul 2005 20:26:00 -0000 2.42 -+++ gcc/gcc/tree-vrp.c 25 Jul 2005 14:22:55 -0000 -@@ -3014,6 +3072,9 @@ compare_names (enum tree_code comp, tree - tree - vrp_evaluate_conditional (tree cond, bool use_equiv_p) - { -+ if (TREE_CODE (cond) == INTEGER_CST) -+ return cond; -+ - gcc_assert (TREE_CODE (cond) == SSA_NAME - || TREE_CODE_CLASS (TREE_CODE (cond)) == tcc_comparison); -