patches/gcc/4.0.0/140-pr21173-fix.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu May 21 19:00:55 2009 +0000 (2009-05-21)
branchgcc-4.4
changeset 1368 ec1cffe6d30b
permissions -rw-r--r--
/devel/gcc-4.4:
- trivial spelling fix in TODO

-------- diffstat follows --------
/devel/gcc-4.4/TODO | 2 1 1 0 +-
1 file changed, 1 insertion(+), 1 deletion(-)
yann@402
     1
See http://gcc.gnu.org/PR21173
yann@402
     2
This is a fix for a last minute brown-bag bug with gcc-4.0.0
yann@402
     3
yann@402
     4
 ------- Additional Comment #24 From CVS Commits 2005-04-25 14:03 [reply] ------- 
yann@402
     5
Subject: Bug 21173
yann@402
     6
yann@402
     7
CVSROOT:        /cvs/gcc
yann@402
     8
Module name:    gcc
yann@402
     9
Branch:         gcc-4_0-branch
yann@402
    10
Changes by:     dberlin@gcc.gnu.org     2005-04-25 14:02:38
yann@402
    11
yann@402
    12
Modified files:
yann@402
    13
        gcc            : ChangeLog tree-ssa-pre.c 
yann@402
    14
yann@402
    15
Log message:
yann@402
    16
        2005-04-25  Daniel Berlin  <dberlin@dberlin.org>
yann@402
    17
        
yann@402
    18
        Fix PR tree-optimization/21173
yann@402
    19
        
yann@402
    20
        * tree-ssa-pre.c (create_expression_by_pieces): Call unshare_expr
yann@402
    21
        on things we pass to force_gimple_operand.  Don't try to special
yann@402
    22
        case min_invariants.
yann@402
    23
yann@402
    24
Patches:
yann@402
    25
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.192&r2=2.7592.2.193
yann@402
    26
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-pre.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.65.4.2&r2=2.65.4.3
yann@402
    27
yann@402
    28
===================================================================
yann@402
    29
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-pre.c,v
yann@402
    30
retrieving revision 2.65.4.2
yann@402
    31
retrieving revision 2.65.4.3
yann@402
    32
diff -u -r2.65.4.2 -r2.65.4.3
yann@402
    33
--- gcc/gcc/tree-ssa-pre.c	2005/04/17 23:40:31	2.65.4.2
yann@402
    34
+++ gcc/gcc/tree-ssa-pre.c	2005/04/25 14:02:31	2.65.4.3
yann@402
    35
@@ -1330,7 +1330,8 @@
yann@402
    36
 	
yann@402
    37
 	folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr), 
yann@402
    38
 			      genop1, genop2));
yann@402
    39
-	newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL);
yann@402
    40
+	newexpr = force_gimple_operand (unshare_expr (folded), 
yann@402
    41
+					&forced_stmts, false, NULL);
yann@402
    42
 	if (forced_stmts)
yann@402
    43
 	  {
yann@402
    44
 	    tsi = tsi_start (forced_stmts);
yann@402
    45
@@ -1372,14 +1373,8 @@
yann@402
    46
 	add_referenced_tmp_var (temp);
yann@402
    47
 	folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr), 
yann@402
    48
 			      genop1));
yann@402
    49
-	/* If the generated operand  is already GIMPLE min_invariant
yann@402
    50
-	   just use it instead of calling force_gimple_operand on it,
yann@402
    51
-	   since that may make it not invariant by copying it into an
yann@402
    52
-	   assignment.  */
yann@402
    53
-	if (!is_gimple_min_invariant (genop1))
yann@402
    54
-	  newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL);
yann@402
    55
-	else
yann@402
    56
-	  newexpr = genop1;
yann@402
    57
+	newexpr = force_gimple_operand (unshare_expr (folded), 
yann@402
    58
+					&forced_stmts, false, NULL);
yann@402
    59
 	if (forced_stmts)
yann@402
    60
 	  {
yann@402
    61
 	    tsi = tsi_start (forced_stmts);
yann@402
    62
yann@402
    63
    0K .                                                         1.24 MB/s
yann@402
    64
yann@402
    65
13:16:54 (1.24 MB/s) - `-' saved [1303]
yann@402
    66