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