[Bug tree-optimization/26854] Inordinate compile times on large routines

2006-04-20 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2006-04-20 16:21 
---
(In reply to comment #10)
> PRE/FRE for mainline need some TLC on their compile-time performance as
> indicated by this PR as well.  They're #3 & #4 respectively behind the 
> operator
> scanning code and store-ccp and way out of line when compared with the rest of
> the tree optimization passes.
> 

I'll look into this in the next few weeks.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854



[Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand

2006-05-02 Thread dberlin at gcc dot gnu dot org


--- Comment #23 from dberlin at gcc dot gnu dot org  2006-05-03 03:19 
---
Subject: Bug 26626

Author: dberlin
Date: Wed May  3 03:19:22 2006
New Revision: 113493

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113493
Log:
2006-05-02  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/26626
* tree-ssa-structalias.c (compute_points_to_sets): For now, solve
always.
* tree-ssa-operands.c (access_can_touch_variable): Allow
typecasting through union pointers.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr26626.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26626



[Bug tree-optimization/27093] [4.2 Regression] verify_ssa failed: definition does not dominate use

2006-05-04 Thread dberlin at gcc dot gnu dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2006-05-04 16:52 ---
G. These phi nodes are all dead, but it still is verifying them anyway.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27093



[Bug tree-optimization/27093] [4.2 Regression] verify_ssa failed: definition does not dominate use

2006-05-07 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2006-05-07 18:18 ---
Mine


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-04-09 17:50:01 |2006-05-07 18:18:00
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27093



[Bug tree-optimization/27093] [4.2 Regression] verify_ssa failed: definition does not dominate use

2006-05-08 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2006-05-09 01:28 
---
Subject: Bug 27093

Author: dberlin
Date: Tue May  9 01:28:47 2006
New Revision: 113641

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113641
Log:
2006-05-08  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/27093
* tree-ssa-alias.c (recalculate_used_alone): Mark variables for 
renaming when they become not-used_alone.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-alias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27093



[Bug tree-optimization/27093] [4.2 Regression] verify_ssa failed: definition does not dominate use

2006-05-08 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2006-05-09 02:08 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27093



[Bug tree-optimization/27373] [4.2 Regression] ICE: add_virtual_operand with pointers to arrays

2006-05-14 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2006-05-14 19:10 ---
We aren't marking smt usage for updating in forwprop, but we need to, because
forwprop is propagating and address and destroying the smt info.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27373



[Bug tree-optimization/27373] [4.2 Regression] ICE: add_virtual_operand with pointers to arrays

2006-05-16 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2006-05-17 01:16 ---
Subject: Bug 27373

Author: dberlin
Date: Wed May 17 01:16:08 2006
New Revision: 113840

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113840
Log:
2006-05-16  Daniel Berlin <[EMAIL PROTECTED]>

Fix PR tree-optimization/27373
* tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
 (forward_propagate_addr_expr): Update call.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr27373.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-forwprop.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27373



[Bug tree-optimization/27373] [4.2 Regression] ICE: add_virtual_operand with pointers to arrays

2006-05-17 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2006-05-17 12:07 ---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27373



[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types

2006-06-01 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2006-06-01 12:22 ---
The SMT related stuff is a red herring.
Someone is not marking things for renaming when they should be.

The following patch will show that (it disables the used alone code).

Index: tree-ssa-operands.c
===
--- tree-ssa-operands.c (revision 114136)
+++ tree-ssa-operands.c (working copy)
@@ -1294,12 +1294,12 @@ add_virtual_operand (tree var, stmt_ann_
  || none_added
  || (TREE_CODE (var) == SYMBOL_MEMORY_TAG
  && for_clobber
- && SMT_USED_ALONE (var)))
+ /*&& SMT_USED_ALONE (var)*/))
{
  /* Every bare SMT def we add should have SMT_USED_ALONE
 set on it, or else we will get the wrong answer on
 clobbers.  */
- if (none_added
+ if (0 && none_added
  && !updating_used_alone && aliases_computed_p
  && TREE_CODE (var) == SYMBOL_MEMORY_TAG)
gcc_assert (SMT_USED_ALONE (var));


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27341



[Bug target/27855] reassociation pass produces ~30% slower matrix multiplication code

2006-06-05 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2006-06-05 15:57 
---
(In reply to comment #9)
> This thread is moving dangerously close to work in progress.. :-)
> I'll have something more definitive to say about it in a few weeks, but I'm
> looking at doing significant register pressure reduction at out of ssa time as
> a component of a larger hunk of work.

Just be careful. The last time i tried something like this, it produced good
code on x86, and really crappy code everywhere else.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27855



[Bug tree-optimization/27809] inefficient gimplification of globals

2006-06-13 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2006-06-13 14:26 ---
gimplification is almost certainly the wrong place to be doing the kind of
dataflow we'd need to determine where we could insert load/save pairs of
globals.
Really.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27809



[Bug tree-optimization/5035] Incorrectly produces '`' might be used uninitialized in this function'

2006-06-13 Thread dberlin at gcc dot gnu dot org


--- Comment #13 from dberlin at gcc dot gnu dot org  2006-06-13 15:22 
---
Some year we'll have to use the control dependence graph to see if all the
conditions are the same :)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5035



[Bug tree-optimization/28003] [4.2 Regression] optimizer bug

2006-06-13 Thread dberlin at gcc dot gnu dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2006-06-13 17:15 ---
So it should have been marked global, and should alias the global var, but
apparently the global var doesn't pop into it's alias set


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28003



[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types

2006-06-15 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2006-06-15 14:35 
---
Uh, nobody told me it was exposed by my patch, and it's certainly not in the
bug history, or else i would be working on the bug.

In fact, as comment 8 shows, even if you disable the code i added in
2006-02-20, an ICE still occurs.

I'll look at this bug anyway


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27341



[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types

2006-06-15 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2006-06-15 15:04 
---
This should fix it
It looks like gimplify_val never calls mark_new_vars_to_rename, but may create
new statements that nothing else gets a handle to.

Index: tree-cfg.c
===
--- tree-cfg.c  (revision 114136)
+++ tree-cfg.c  (working copy)
@@ -5584,6 +5584,8 @@ gimplify_val (block_stmt_iterator *bsi,
   TREE_BLOCK (new_stmt) = TREE_BLOCK (orig_stmt);

   bsi_insert_before (bsi, new_stmt, BSI_SAME_STMT);
+  if (in_ssa_p)
+mark_new_vars_to_rename (new_stmt);

   return t;
 }

I'll look at this bug anyway


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27341



[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types

2006-06-19 Thread dberlin at gcc dot gnu dot org


--- Comment #13 from dberlin at gcc dot gnu dot org  2006-06-19 14:34 
---
Subject: Bug 27341

Author: dberlin
Date: Mon Jun 19 14:33:46 2006
New Revision: 114771

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114771
Log:
2006-06-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/27341
* tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
statement we get.
* tree-complex.c (pass_lower_complex): Update SMT usage.



Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr27341-1.c
trunk/gcc/testsuite/gcc.c-torture/compile/pr27341-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-cfg.c
trunk/gcc/tree-complex.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27341



[Bug tree-optimization/27341] [4.2 Regression] ICE in in add_virtual_operand with complex types

2006-06-19 Thread dberlin at gcc dot gnu dot org


--- Comment #14 from dberlin at gcc dot gnu dot org  2006-06-19 14:34 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27341



[Bug middle-end/38204] PRE for post dominating expressions

2008-11-21 Thread dberlin at gcc dot gnu dot org


--- Comment #2 from dberlin at gcc dot gnu dot org  2008-11-21 16:55 ---
(In reply to comment #0)
> For this function:
> int test (int a, int b, int c, int g)
> {
>   int d, e;
>   if (a)
> d = b * c;
>   else
> d = b - c;
>   e = b * c + g;
>   return d + e;
> }
> 
> the multiply expression is moved to both branches of the "if", it would be
> better to move it before the "if".  Intel's compiler does that.
> 

Moving it before the if is a code size optimization that also happens to extend
the lifetime of the multiply.
So "better" is a relative term.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38204



[Bug tree-optimization/36792] [4.4 Regression] Revision 137631 causes many failures

2008-12-10 Thread dberlin at gcc dot gnu dot org


--- Comment #12 from dberlin at gcc dot gnu dot org  2008-12-10 20:15 
---
Subject: Bug 36792

Author: dberlin
Date: Wed Dec 10 20:13:39 2008
New Revision: 142659

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142659
Log:
2008-12-10  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/36792
* tree-ssa-pre.c (compute_avail): Don't insert defs into maximal
set.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
trunk/gcc/tree-ssa-pre.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36792



[Bug tree-optimization/23382] [4.1 Regression] Does not remove the old HEAP virtual variables in clobbered

2005-11-08 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2005-11-08 16:34 ---
Subject: Bug 23382

Author: dberlin
Date: Tue Nov  8 16:34:48 2005
New Revision: 106643

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=106643
Log:
2005-11-08  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/23382

* tree-ssa-alias.c (compute_may_aliases): Call
delete_old_heap_vars.
* tree-dfa.c (referenced_var_remove): New function.
* tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
* tree-flow.h (referenced_var_remove): Add prototype.
(delete_old_heap_vars): Ditto.
* tree-ssa-structalias.c (heapvars): New variable.
(oldheapvars): Ditto.
(get_constraint_for): Put heap vars on heapvars list.
(delete_old_heap_vars): New function.


Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-dfa.c
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-structalias.c
trunk/gcc/tree-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23382



[Bug tree-optimization/23382] [4.1 Regression] Does not remove the old HEAP virtual variables in clobbered

2005-11-08 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2005-11-08 16:36 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23382



[Bug rtl-optimization/24762] [killloop-branch] code motion of non-invariant expressions with hard registers.

2005-11-09 Thread dberlin at gcc dot gnu dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2005-11-09 22:53 ---
1. Call clobbers aren't definitions. They are clobbers (IE kills).  They do not
generate a new value, they simply specify the old value is dead.  Thus, you
don't mean to say "df.c assumes call clobbers ...", because it's not an
assumption.


2. The patch is actually an incorrect workaround.  The real problem is that
df.c on mainline doesn't get reaching definitions right for a number of
reasons.

For example, explicit clobbers in CALL_INSN_FUNCTION_USAGE but *not* in
regs_invalidated_by_call will be treated as gen's, because they don't fall into
the special case in df_bb_rd_local_compute.  But they are not gen's.

Have you tried making sure CLOBBER's don't get into the rd_gen set?

I imagine that will fix your bug.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24762



[Bug rtl-optimization/24762] [killloop-branch] code motion of non-invariant expressions with hard registers.

2005-11-09 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2005-11-09 22:57 ---
There are also a ton of other bugs related to hard regs in reaching definitions
on df.c in mainline, i'm just guessing.

Try the df.c from the dataflow-branch, and see if it fixes the bug, because
honestly, i think you are barking up the wrong tree here.

Clobbers are most *certainly* not new definitions.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24762



[Bug rtl-optimization/24762] [killloop-branch] code motion of non-invariant expressions with hard registers.

2005-11-09 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2005-11-09 23:30 ---
Okay, well, there are also bugs in df.c on mainline in regards to not creating
uses for "always-live" registers and registers that are live over eh edges, for
example.  (It does none of this).  Seriously. Hard regs are very badly broken
in mainline df.c in terms of liveness and use-def/def-use chains.

Steven tells me flow.c gets liveness for your particular example wrong too
though.  In the dataflow branch df.c, we would add a use for the "live on entry
to eh" regs, in the artifical uses code for eh blocks, and it would just work.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24762



[Bug c++/23171] [4.1 Regression] ICE on pointer initialization with C99 initializer

2005-11-14 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2005-11-14 18:14 
---
Mark, the frontend is producing the address of a constructor, and nothing in
the middle end used to be really analyzing static iniatlizers which is why it
didn't break before (those that do try to look at them would give up in this
case, but static vars analysis can't give up without destroying the results of
the entire analysis)

IMHO, this easier to fix in the frontend than in the middle end, by simply not
producing &CONSTRUCTOR.

What exactly is ADDRESSOF(CONSTRUCTOR) anyway?
ISTM it should require a temporary variable to evaluate.

However, we can't GIMPLIFY it and do that for you because it's a static
initializer (and we don't gimplify those), so it's either teach *every single
thing that wants to look at DECL_INITIAL for a static initializer* what
ADDRESSOF(CONSTUCTOR) is supposed to mean, or make the frontend do something
like split it into two variables.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23171



[Bug tree-optimization/24309] [4.1 Regression] ICE with -O3 -ftree-loop-linear

2005-11-14 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2005-11-14 18:18 
---
It probably did *nothing at all* before the merge.  The ICE is not too hard to
fix, i just haven't gotten to it yet
I will hopefully soon.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24309



[Bug rtl-optimization/24762] [killloop-branch] code motion of non-invariant expressions with hard registers.

2005-11-14 Thread dberlin at gcc dot gnu dot org


--- Comment #14 from dberlin at gcc dot gnu dot org  2005-11-14 23:10 
---
Send me a dump of df_analyze (df, -1, DF_LR | DF_HARD_REGS |
DF_ARTIFICIAL_USES), and point out what you say is wrong and i'll make it
right.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24762



[Bug tree-optimization/25291] [4.2 Regression] ICE in tree-check add_call_clobber_ops

2005-12-07 Thread dberlin at gcc dot gnu dot org


--- Comment #3 from dberlin at gcc dot gnu dot org  2005-12-07 14:05 ---
Mine


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-12-07 14:05:19
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25291



[Bug tree-optimization/25291] [4.2 Regression] ICE in tree-check add_call_clobber_ops

2005-12-07 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2005-12-07 16:39 ---
Subject: Bug 25291

Author: dberlin
Date: Wed Dec  7 16:39:33 2005
New Revision: 108168

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108168
Log:
2005-12-07  Daniel Berlin <[EMAIL PROTECTED]>

Fix PR tree-optimization/25291
* tree-ssa-operands.c (add_call_clobber_ops): Remove
redundant and crashing check.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-operands.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25291



[Bug tree-optimization/25291] [4.2 Regression] ICE in tree-check add_call_clobber_ops

2005-12-07 Thread dberlin at gcc dot gnu dot org


--- Comment #5 from dberlin at gcc dot gnu dot org  2005-12-07 16:40 ---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25291



[Bug tree-optimization/25394] [4.2 Regression] libgcc2.c:2033: ICE: tree check: expected tree that contains 'decl common' structure, have 'name_memory_tag'

2005-12-13 Thread dberlin at gcc dot gnu dot org


--- Comment #1 from dberlin at gcc dot gnu dot org  2005-12-13 18:14 ---
Created an attachment (id=10473)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10473&action=view)
Patch

Please give this a try, tell me if it works


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25394



[Bug tree-optimization/23619] Missed pre opportunity

2005-12-15 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2005-12-15 15:04 
---
This should be fixed now with the PRE patches committed and the reassocpatches
committed.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23619



[Bug tree-optimization/25394] [4.2 Regression] libgcc2.c:2033: ICE: tree check: expected tree that contains 'decl common' structure, have 'name_memory_tag'

2005-12-28 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2005-12-28 14:09 ---
Subject: Bug 25394

Author: dberlin
Date: Wed Dec 28 14:09:28 2005
New Revision: 109109

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109109
Log:
2005-12-28  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/25394
* fold-const.c (fold_checksum_tree): Guard 
portions of checksumming with correct structure checks.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25394



[Bug tree-optimization/25394] [4.2 Regression] libgcc2.c:2033: ICE: tree check: expected tree that contains 'decl common' structure, have 'name_memory_tag'

2005-12-28 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2005-12-28 14:10 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25394



[Bug tree-optimization/23455] tree load PRE is not working properly

2006-01-03 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2006-01-03 18:29 ---
Load PRE on globals is going to take a while, because we do some stupid things
in hashing (like hashing tcc_declaration's by pointer, instead of DECL_UID).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23455




[Bug tree-optimization/24001] Simple redundancy not eliminated

2006-01-03 Thread dberlin at gcc dot gnu dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2006-01-03 18:39 ---
You are confused about what load PRE does.  It will not lift these load because
it is not partially redundant.
You are looking for some sort of generic code hoister.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24001




[Bug tree-optimization/22415] [4.0 Regression] ICE in coalesce_abnormal_edges

2006-01-12 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2006-01-12 23:13 ---
That would fix it perfectly fine, i'll bootstrap and test it.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22415



[Bug tree-optimization/25771] [4.2 Regression] ice in coalesce_abnormal_edges, at tree-outof-ssa.c:621

2006-01-12 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2006-01-12 23:18 ---
Mine, testing a patch.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-01-12 21:48:14 |2006-01-12 23:18:07
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25771



[Bug tree-optimization/25771] [4.2 Regression] ice in coalesce_abnormal_edges, at tree-outof-ssa.c:621

2006-01-13 Thread dberlin at gcc dot gnu dot org


--- Comment #5 from dberlin at gcc dot gnu dot org  2006-01-13 16:00 ---
Subject: Bug 25771

Author: dberlin
Date: Fri Jan 13 16:00:13 2006
New Revision: 109669

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109669
Log:
2006-01-13  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/25771
* tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
SSA_NAMES.


Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/pr25771.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-pre.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25771



[Bug tree-optimization/25771] [4.2 Regression] ice in coalesce_abnormal_edges, at tree-outof-ssa.c:621

2006-01-14 Thread dberlin at gcc dot gnu dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2006-01-14 21:19 ---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25771



[Bug tree-optimization/28544] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2006-08-09 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2006-08-09 14:38 ---
I can trivially fix this, but the code isn't going to do what you want when i'm
done, since it is an aliasing violation :)

The assert in question just happens to be good at catching them.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28544



[Bug tree-optimization/28003] [4.2 Regression] optimizer bug

2006-08-09 Thread dberlin at gcc dot gnu dot org


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-06-29 19:47:20 |2006-08-09 14:39:55
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28003



[Bug tree-optimization/28544] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2006-08-09 Thread dberlin at gcc dot gnu dot org


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-07-30 14:44:23 |2006-08-09 14:40:27
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28544



[Bug web/28714] Bugzilla mail sent from invalid address

2006-08-17 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2006-08-18 02:41 ---
Should be fixed now


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28714



[Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered

2006-08-19 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2006-08-19 14:10 ---
This looks like it has been broken for a long time.
Can someone add an alias dump?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778



[Bug tree-optimization/28003] [4.2 Regression] optimizer bug

2006-08-20 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2006-08-21 02:16 
---
This is impressive.
We add b as a may alias to the SMT, then it disappears from the list before
call clobbering!


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28003



[Bug tree-optimization/28003] [4.2 Regression] optimizer bug

2006-08-22 Thread dberlin at gcc dot gnu dot org


--- Comment #12 from dberlin at gcc dot gnu dot org  2006-08-22 14:04 
---
Subject: Bug 28003

Author: dberlin
Date: Tue Aug 22 14:04:16 2006
New Revision: 116323

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116323
Log:
2006-08-22  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/28003
* tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
before grouping aliases.


Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/pr28003.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-alias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28003



[Bug tree-optimization/28003] [4.2 Regression] optimizer bug

2006-08-22 Thread dberlin at gcc dot gnu dot org


--- Comment #13 from dberlin at gcc dot gnu dot org  2006-08-22 14:05 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dberlin at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28003



[Bug tree-optimization/28003] [4.2 Regression] optimizer bug

2006-08-22 Thread dberlin at gcc dot gnu dot org


--- Comment #14 from dberlin at gcc dot gnu dot org  2006-08-22 14:05 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28003



[Bug tree-optimization/28807] [4.2 Regression] wrong code with may_alias and structs

2006-08-22 Thread dberlin at gcc dot gnu dot org


--- Comment #1 from dberlin at gcc dot gnu dot org  2006-08-22 18:18 ---
Add an alias dump so we can see what things think of all this?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28807



[Bug tree-optimization/28868] [4.0/4.1/4.2 Regression] Not elimintating the PHIs which have the same agruments

2006-08-29 Thread dberlin at gcc dot gnu dot org


--- Comment #6 from dberlin at gcc dot gnu dot org  2006-08-29 14:59 ---
SCCVN comes up with

Value numbers:
d_2 = c_1
c_7 = b_6
d_8 = b_6
c_10 = a_9
d_11 = a_9


where
  # PRED: 3 (fallthru,exec) 4 (fallthru,exec)
  # dD.1526_2 = PHI ;
  # cD.1525_1 = PHI ;
...


As a result, once integrated into PRE/FRE, it will eliminate uses of the d_2
phi with the c_1 phi, which is what you want.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28868



[Bug target/19087] Overflowed address in dwarf debug line information

2006-09-19 Thread dberlin at gcc dot gnu dot org


--- Comment #24 from dberlin at gcc dot gnu dot org  2006-09-20 00:00 
---
You guys should be aware that dwarf2/3 has a field in the header of each dwarf
compilation unit labeled "address size" that tells what the address size for
that compilation unit is.
If this is set to 4, you should be able to use 4 byte addresses and any
conforming dwarf2 reader will understand it and use it to determine how many
bytes the address forms (DW_FORM_addr, etc) use.
See section 7.5.1 of the DWARF3 standard.

This is the way the consumer is supposed to know what the address size in a
dwarf2 is (there is also a way to tell the consumer what the offset size should
be for file offsets, in case you want to have really large debug info on a
machine with < 8 byte *addresses*), i'm not sure why you think you need an
extra note.

See the rest of the DWARF2/3 specification for more details.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19087



[Bug tree-optimization/29156] [4.2 Regression] Misscompilation due to struct alias

2006-09-20 Thread dberlin at gcc dot gnu dot org


--- Comment #2 from dberlin at gcc dot gnu dot org  2006-09-21 02:32 ---
So, actually, i'm pretty sure they should have the same SMT, because they
should be in the same alias set.
Why do they get different SMT's?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29156



[Bug tree-optimization/29415] [4.2 regression] ] bad code reordering around inline asm block

2006-10-10 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2006-10-11 02:43 ---
Actually, AFAICT this is a variant of the struct aliasing bug zdenek reported.
The real problem is that we eliminate the false aliases and because their is no
real addressable variable here, the asm's miss out on the SMT's.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29415



[Bug tree-optimization/29415] [4.2 regression] ] bad code reordering around inline asm block

2006-10-10 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2006-10-11 02:46 ---
I've verified my fix for the other two bugs will fix this (sorry that one is
taking so long).


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2006-10-11 01:05:16 |2006-10-11 02:46:10
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29415



[Bug tree-optimization/29415] [4.2 Regression] bad code reordering around inline asm block

2006-10-13 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2006-10-13 17:49 
---
mine


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-10-11 02:46:10 |2006-10-13 17:49:17
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29415



[Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered

2006-10-13 Thread dberlin at gcc dot gnu dot org


--- Comment #42 from dberlin at gcc dot gnu dot org  2006-10-13 17:50 
---
mine


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-08-25 19:57:09 |2006-10-13 17:50:04
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778



[Bug tree-optimization/29156] [4.2 Regression] Misscompilation with structs due to new struct alias

2006-10-13 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2006-10-13 17:51 ---
Mine


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-09-20 22:26:43 |2006-10-13 17:51:36
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29156



[Bug tree-optimization/29156] [4.2 Regression] Misscompilation with structs due to new struct alias

2006-10-19 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2006-10-19 23:06 ---
Subject: Bug 29156

Author: dberlin
Date: Thu Oct 19 23:05:53 2006
New Revision: 117891

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117891
Log:
2006-10-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/28778
Fix PR tree-optimization/29156
Fix PR tree-optimization/29415
* tree.h (DECL_PTA_ARTIFICIAL): New macro.
(tree_decl_with_vis): Add artificial_pta_var flag.
* tree-ssa-alias.c (is_escape_site): Remove alias info argument,
pushed into callers.
* tree-ssa-structalias.c (nonlocal_for_type): New variable.
(nonlocal_all): Ditto.
(struct variable_info): Add directly_dereferenced member.
(var_escaped_vars): New variable.
(escaped_vars_tree): Ditto.
(escaped_vars_id): Ditto.
(nonlocal_vars_id): Ditto.
(new_var_info): Set directly_dereferenced.
(graph_size): New variable
(build_constraint_graph): Use graph_size.
(solve_graph): Don't process constraints that cannot change the
solution, don't try to propagate an empty solution to our
successors.
(process_constraint): Set directly_dereferenced.
(could_have_pointers): New function.
(get_constraint_for_component_ref): Don't process STRING_CST.
(nonlocal_lookup): New function.
(nonlocal_insert): Ditto.
(create_nonlocal_var): Ditto.
(get_nonlocal_id_for_type): Ditto.
(get_constraint_for): Allow results vector to be empty in the case
of string constants.
Handle results of calls properly.
(update_alias_info): Update alias info stats on number and type of
calls.
(find_func_aliases): Use could_have_pointers.
(make_constraint_from_escaped): Renamed from
make_constraint_to_anything, and changed to make constraints from
escape variable.
(make_constraint_to_escaped): New function.
(find_global_initializers): Ditto.
(create_variable_info_for): Make constraint from escaped to any
global variable, and from any global variable to the set of
escaped vars.
(intra_create_variable_infos): Deal with escaped instead of
pointing to anything.
(set_uids_in_ptset): Do type pruning on directly dereferenced
variables.
(find_what_p_points_to): Adjust call to set_uids_with_ptset.
(init_base_vars): Fix comment, and initialize escaped_vars.
(need_to_solve): Removed.
(find_escape_constraints): New function.
(expand_nonlocal_solutions): Ditto.
(compute_points_to_sets): Call find_escape_constraints and
expand_nonlocal_solutions.
(delete_points_to_sets): Don't fall off the end of the graph.
(init_alias_heapvars): Initialize nonlocal_for_type and
nonlocal_all.
(delete_alias_heapvars): Free nonlocal_for_type and null out
nonlocal_all. 


Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr28778.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr29156.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c
trunk/gcc/tree-ssa-structalias.h
trunk/gcc/tree.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29156



[Bug tree-optimization/29415] [4.2 Regression] bad code reordering around inline asm block

2006-10-19 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2006-10-19 23:06 
---
Subject: Bug 29415

Author: dberlin
Date: Thu Oct 19 23:05:53 2006
New Revision: 117891

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117891
Log:
2006-10-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/28778
Fix PR tree-optimization/29156
Fix PR tree-optimization/29415
* tree.h (DECL_PTA_ARTIFICIAL): New macro.
(tree_decl_with_vis): Add artificial_pta_var flag.
* tree-ssa-alias.c (is_escape_site): Remove alias info argument,
pushed into callers.
* tree-ssa-structalias.c (nonlocal_for_type): New variable.
(nonlocal_all): Ditto.
(struct variable_info): Add directly_dereferenced member.
(var_escaped_vars): New variable.
(escaped_vars_tree): Ditto.
(escaped_vars_id): Ditto.
(nonlocal_vars_id): Ditto.
(new_var_info): Set directly_dereferenced.
(graph_size): New variable
(build_constraint_graph): Use graph_size.
(solve_graph): Don't process constraints that cannot change the
solution, don't try to propagate an empty solution to our
successors.
(process_constraint): Set directly_dereferenced.
(could_have_pointers): New function.
(get_constraint_for_component_ref): Don't process STRING_CST.
(nonlocal_lookup): New function.
(nonlocal_insert): Ditto.
(create_nonlocal_var): Ditto.
(get_nonlocal_id_for_type): Ditto.
(get_constraint_for): Allow results vector to be empty in the case
of string constants.
Handle results of calls properly.
(update_alias_info): Update alias info stats on number and type of
calls.
(find_func_aliases): Use could_have_pointers.
(make_constraint_from_escaped): Renamed from
make_constraint_to_anything, and changed to make constraints from
escape variable.
(make_constraint_to_escaped): New function.
(find_global_initializers): Ditto.
(create_variable_info_for): Make constraint from escaped to any
global variable, and from any global variable to the set of
escaped vars.
(intra_create_variable_infos): Deal with escaped instead of
pointing to anything.
(set_uids_in_ptset): Do type pruning on directly dereferenced
variables.
(find_what_p_points_to): Adjust call to set_uids_with_ptset.
(init_base_vars): Fix comment, and initialize escaped_vars.
(need_to_solve): Removed.
(find_escape_constraints): New function.
(expand_nonlocal_solutions): Ditto.
(compute_points_to_sets): Call find_escape_constraints and
expand_nonlocal_solutions.
(delete_points_to_sets): Don't fall off the end of the graph.
(init_alias_heapvars): Initialize nonlocal_for_type and
nonlocal_all.
(delete_alias_heapvars): Free nonlocal_for_type and null out
nonlocal_all. 


Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr28778.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr29156.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c
trunk/gcc/tree-ssa-structalias.h
trunk/gcc/tree.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29415



[Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered

2006-10-19 Thread dberlin at gcc dot gnu dot org


--- Comment #43 from dberlin at gcc dot gnu dot org  2006-10-19 23:06 
---
Subject: Bug 28778

Author: dberlin
Date: Thu Oct 19 23:05:53 2006
New Revision: 117891

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117891
Log:
2006-10-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/28778
Fix PR tree-optimization/29156
Fix PR tree-optimization/29415
* tree.h (DECL_PTA_ARTIFICIAL): New macro.
(tree_decl_with_vis): Add artificial_pta_var flag.
* tree-ssa-alias.c (is_escape_site): Remove alias info argument,
pushed into callers.
* tree-ssa-structalias.c (nonlocal_for_type): New variable.
(nonlocal_all): Ditto.
(struct variable_info): Add directly_dereferenced member.
(var_escaped_vars): New variable.
(escaped_vars_tree): Ditto.
(escaped_vars_id): Ditto.
(nonlocal_vars_id): Ditto.
(new_var_info): Set directly_dereferenced.
(graph_size): New variable
(build_constraint_graph): Use graph_size.
(solve_graph): Don't process constraints that cannot change the
solution, don't try to propagate an empty solution to our
successors.
(process_constraint): Set directly_dereferenced.
(could_have_pointers): New function.
(get_constraint_for_component_ref): Don't process STRING_CST.
(nonlocal_lookup): New function.
(nonlocal_insert): Ditto.
(create_nonlocal_var): Ditto.
(get_nonlocal_id_for_type): Ditto.
(get_constraint_for): Allow results vector to be empty in the case
of string constants.
Handle results of calls properly.
(update_alias_info): Update alias info stats on number and type of
calls.
(find_func_aliases): Use could_have_pointers.
(make_constraint_from_escaped): Renamed from
make_constraint_to_anything, and changed to make constraints from
escape variable.
(make_constraint_to_escaped): New function.
(find_global_initializers): Ditto.
(create_variable_info_for): Make constraint from escaped to any
global variable, and from any global variable to the set of
escaped vars.
(intra_create_variable_infos): Deal with escaped instead of
pointing to anything.
(set_uids_in_ptset): Do type pruning on directly dereferenced
variables.
(find_what_p_points_to): Adjust call to set_uids_with_ptset.
(init_base_vars): Fix comment, and initialize escaped_vars.
(need_to_solve): Removed.
(find_escape_constraints): New function.
(expand_nonlocal_solutions): Ditto.
(compute_points_to_sets): Call find_escape_constraints and
expand_nonlocal_solutions.
(delete_points_to_sets): Don't fall off the end of the graph.
(init_alias_heapvars): Initialize nonlocal_for_type and
nonlocal_all.
(delete_alias_heapvars): Free nonlocal_for_type and null out
nonlocal_all. 


Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr28778.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr29156.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c
trunk/gcc/tree-ssa-structalias.h
trunk/gcc/tree.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778



[Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered

2006-10-19 Thread dberlin at gcc dot gnu dot org


--- Comment #44 from dberlin at gcc dot gnu dot org  2006-10-19 23:07 
---
Fixed.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778



[Bug tree-optimization/29156] [4.2 Regression] Misscompilation with structs due to new struct alias

2006-10-19 Thread dberlin at gcc dot gnu dot org


--- Comment #9 from dberlin at gcc dot gnu dot org  2006-10-19 23:07 ---
Fixed.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29156



[Bug tree-optimization/29415] [4.2 Regression] bad code reordering around inline asm block

2006-10-19 Thread dberlin at gcc dot gnu dot org


--- Comment #12 from dberlin at gcc dot gnu dot org  2006-10-19 23:07 
---
Fixed.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29415



[Bug tree-optimization/30630] Trunk GCC hangs while compiling cpu2k6/perlbench at -O2

2007-01-29 Thread dberlin at gcc dot gnu dot org


--- Comment #3 from dberlin at gcc dot gnu dot org  2007-01-29 17:25 ---
Subject: Bug 30630

Author: dberlin
Date: Mon Jan 29 17:25:04 2007
New Revision: 121295

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=121295
Log:
2007-01-29  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/30630
* tree-ssa-structalias.c (do_complex_constraint): Mark correct
variable as changed.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/20070129.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30630



[Bug tree-optimization/30630] Trunk GCC hangs while compiling cpu2k6/perlbench at -O2

2007-01-29 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2007-01-29 17:25 ---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30630



[Bug c++/30567] -fPIC -O3 optimizer bug (32-bit target only)

2007-02-12 Thread dberlin at gcc dot gnu dot org


--- Comment #11 from dberlin at gcc dot gnu dot org  2007-02-12 16:37 
---
(In reply to comment #10)
> Daniel, any idea?
> 

None.
This change actually made us more conservative with points-to, it certainly
won't cause *more* things to be optimized away.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30567



[Bug target/30052] possible quadratic behaviour.

2007-02-12 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2007-02-12 20:47 ---
Does this work on mainline with no real issue?

If so, i'll try to backport the solver changes.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30052



[Bug tree-optimization/30559] [4.3 Regression] compiler loops forever with flag -O3

2007-02-19 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2007-02-19 19:34 ---
Sorry, the fix was committed before the bug report was filed (IE ~5 minutes
before).
I forgot to mark this one closed.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30559



[Bug tree-optimization/28544] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2007-02-19 Thread dberlin at gcc dot gnu dot org


--- Comment #21 from dberlin at gcc dot gnu dot org  2007-02-19 23:41 
---
(In reply to comment #20)
> Is there a backport of the mainline patch that I could review, or ask another
> maintainer to review for inclusion in 4.2?
> 
> Thanks,
> 
> -- Mark
> 

The attached patch named "access_debugging.diff" should apply and work for 4.2.
Let me know if you would like it there.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28544



[Bug c++/30567] -fPIC -O3 optimizer bug (32-bit target only)

2007-02-25 Thread dberlin at gcc dot gnu dot org


--- Comment #15 from dberlin at gcc dot gnu dot org  2007-02-26 04:38 
---
I'll happily confirm I can reproduce it on my i686-pc-linux-gnu machine


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-26 04:38:22
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30567



[Bug tree-optimization/29922] [4.3 Regression] [Linux] ICE in insert_into_preds_of_block

2007-03-09 Thread dberlin at gcc dot gnu dot org


--- Comment #20 from dberlin at gcc dot gnu dot org  2007-03-09 17:55 
---
Uh, i think i accidentally fixed the reduced testcase with my recent alias
patch (r122741).
Are the others still failing?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29922



[Bug tree-optimization/31090] Revision 121302 causes 30% performance regression

2007-03-09 Thread dberlin at gcc dot gnu dot org


--- Comment #10 from dberlin at gcc dot gnu dot org  2007-03-09 23:48 
---
(In reply to comment #7)
> The obvoious difference is more precise alias information:
> 
> -bar: Maximum number of VOPS needed per statement: 80
> +bar: Maximum number of VOPS needed per statement: 71

See, it was buggy before and still getting dup'd symbols into the points-to
sets.

In particular:
 80  NMT.114, UID 1780, real8[0:], is addressable, is global, call clobbered (,
is global var ), may aliases: { dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv
dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv
SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv
dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv
epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv
SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv
dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv epsinv SMT.109 dyinv dxinv dzinv
epsinv SMT.109 }

Note it's the same set of symbols repeated 14 times
vs

 5  NMT.114, UID 1780, real8[0:], is addressable, is global, call clobbered (,
is global var ), may aliases: { dyinv dxinv dzinv epsinv SMT.109 }
> 

This caused different partitioning, and this caused your performance drop.
Sorry, nothing i can do about this, there is no bug here (in fact, it just
shows that the patch removed a bug)
You need Diego to look at the partitioning algorithms to get your performance
back.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dnovillo at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31090



[Bug tree-optimization/28544] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2007-03-12 Thread dberlin at gcc dot gnu dot org


--- Comment #23 from dberlin at gcc dot gnu dot org  2007-03-12 19:09 
---
Subject: Bug 28544

Author: dberlin
Date: Mon Mar 12 19:09:05 2007
New Revision: 122857

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122857
Log:
2007-03-12  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/28544
* tree-ssa-operands.c (add_virtual_operand):
Move assert triggering on aliasing violations into
debugging define



Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/tree-ssa-operands.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28544



[Bug tree-optimization/28544] [4.2 regression] ICE in add_virtual_operand, at tree-ssa-operands.c:1309

2007-03-12 Thread dberlin at gcc dot gnu dot org


--- Comment #24 from dberlin at gcc dot gnu dot org  2007-03-12 19:12 
---
Fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28544



[Bug target/30052] [4.2 Regression] possible quadratic behaviour.

2007-03-14 Thread dberlin at gcc dot gnu dot org


--- Comment #14 from dberlin at gcc dot gnu dot org  2007-03-14 15:12 
---
(In reply to comment #13)
> It's really all PTA memory.
> 
> Mainline:
> 
>  tree PTA  :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall  
>  
>   40 kB ( 0%) ggc
>  TOTAL :   2.18 1.05 3.44 
> 48857 kB
> 
> max. VM usage: 63MB
> 
> 4.2:
> 
>  tree PTA  :  18.41 (88%) usr   1.08 (53%) sys  20.32 (85%) wall  
>  
> 3903 kB ( 8%) ggc
>  TOTAL :  20.92 2.0223.94 
> 48672 kB
> 
> max. VM usage: 1.1GB
> 
> 4.1.2 uses 56MB.
I'll backport the changes (this is more or less copying tree-ssa-structalias.c
from 4.3 to 4.2 and modifying the few things that changed in 4.3 :P)

> 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30052



[Bug tree-optimization/29922] [4.3 Regression] [Linux] ICE in insert_into_preds_of_block

2007-03-17 Thread dberlin at gcc dot gnu dot org


--- Comment #24 from dberlin at gcc dot gnu dot org  2007-03-17 23:07 
---
Subject: Bug 29922

Author: dberlin
Date: Sat Mar 17 23:07:34 2007
New Revision: 123029

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123029
Log:
2007-03-16  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/29922
* tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
(get_representative): Removed.
(value_dies_in_block_x): Update for rvuse removal.
(valid_in_sets): Update for renaming of vuses_dies_in_block_x.
(compute_antic_aux): Handle when PHI nodes appear in
non-single-successors. 
(dump_bitmap_of_names): Removed.
(compute_antic_safe): Renamed and removed rvuse calculation.
Calculate only antic safe.
(insert_into_preds_of_block): Remove assert.
(execute_pre): Update for renamed functions.
(defer_or_phi_translate_block): New function.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/loadpre12.c
trunk/gcc/tree-ssa-pre.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29922



[Bug tree-optimization/29922] [4.3 Regression] [Linux] ICE in insert_into_preds_of_block

2007-03-17 Thread dberlin at gcc dot gnu dot org


--- Comment #26 from dberlin at gcc dot gnu dot org  2007-03-17 23:18 
---
Sorry for the delay.
Fixed now.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29922



[Bug tree-optimization/30089] Compiling FreeFem3d uses unreasonable amount of time and memory

2007-03-30 Thread dberlin at gcc dot gnu dot org


--- Comment #24 from dberlin at gcc dot gnu dot org  2007-03-30 16:58 
---
This is fixed now, rihgt?
I forgot to add the PR number to the changelog.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30089



[Bug ada/31504] GCC error: in staticp, at tree.c:2017

2007-04-07 Thread dberlin at gcc dot gnu dot org


--- Comment #1 from dberlin at gcc dot gnu dot org  2007-04-07 23:40 ---
See on-list discussion, but basically, it should suffice to simply remove the
assert, which will give the Ada frontend the same behavior it used to get.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31504



[Bug ada/31504] GCC error: in staticp, at tree.c:2017

2007-04-07 Thread dberlin at gcc dot gnu dot org


--- Comment #2 from dberlin at gcc dot gnu dot org  2007-04-08 00:50 ---
Patch was reverted


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31504



[Bug tree-optimization/16157] gcc fails to optimize redundant expression (reassocation)

2007-04-15 Thread dberlin at gcc dot gnu dot org


--- Comment #3 from dberlin at gcc dot gnu dot org  2007-04-16 02:55 ---
Don't remember if this is fixed, but not working anymore on it 


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dberlin at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16157



[Bug middle-end/16187] ARRAY_REF should be used for pointers also

2007-04-15 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2007-04-16 02:56 ---
The version I produced was turned down, and I have not had time to rewrite it
to be what others wanted


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|dberlin at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16187



[Bug tree-optimization/25809] missed PRE optimization - move "invariant casts" out of loops

2007-04-15 Thread dberlin at gcc dot gnu dot org


--- Comment #3 from dberlin at gcc dot gnu dot org  2007-04-16 03:12 ---
PRE actually would perform the optimization on these two cases, but it sees the
cast as an induction variable.

Found partial redundancy for expression (short unsigned int) VH.29 (VH.37)
Skipping insertion of phi for partial redundancy: Looks like an induction
variable

I will change it to decide that only binary expressions are induction
variables, for the moment.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-01-17 11:47:14 |2007-04-16 03:12:10
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25809



[Bug middle-end/31068] ICE at -O1 -fipa-pta

2007-04-15 Thread dberlin at gcc dot gnu dot org


--- Comment #2 from dberlin at gcc dot gnu dot org  2007-04-16 03:15 ---
PS, I will fix this sometime after we have LTO.
Until then, -fipa-pta is not worth it.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31068



[Bug tree-optimization/25809] missed PRE optimization - move "invariant casts" out of loops

2007-04-16 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2007-04-16 19:14 ---
Doing cast motion actually causes about 25 *more* failures in the vectorizer
testsuite.
I'm closing this as won't fix since it seems there was no other reason to do
this.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25809



[Bug rtl-optimization/19580] [4.0/4.1/4.2/4.3 Regression] missed load/store motion

2007-04-16 Thread dberlin at gcc dot gnu dot org


--- Comment #30 from dberlin at gcc dot gnu dot org  2007-04-17 06:53 
---
Is this really still broken in mainline?
At least as of Richard's last update, it wasn't


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580



[Bug tree-optimization/30567] [4.2 Regression] -O3 optimizer bug

2007-04-24 Thread dberlin at gcc dot gnu dot org


--- Comment #25 from dberlin at gcc dot gnu dot org  2007-04-25 03:14 
---
(In reply to comment #23)
> This is a regression.  Danny?
> 

It actually should get assigned anything as a points-to set, so the "bad"
constraints are correct.

We should also always get correct aliasing even if everything was assigned
ANYTHING as a variable.
Sadly, we don't in 4.2.0, as this case shows.

I'm not going to get a chance to look at this for at least week, I have
something taking priority this week.

If you want to tackle it before then, I would suggest trying to see why we
decide not to give the SFT's to the variable marked with anything.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30567



[Bug tree-optimization/30567] [4.2 Regression] -O3 optimizer bug

2007-04-25 Thread dberlin at gcc dot gnu dot org


--- Comment #33 from dberlin at gcc dot gnu dot org  2007-04-25 19:45 
---
I think richi said on IRC that the following backport from 4.3 will fix it (if
so, it's the correct fix here)

Index: tree-ssa-structalias.c
===
--- tree-ssa-structalias.c  (revision 122853)
+++ tree-ssa-structalias.c  (working copy)
@@ -3228,7 +3228,8 @@ update_alias_info (tree stmt, struct ali
  /* If the statement makes a function call, assume
 that pointer OP will be dereferenced in a store
 operation inside the called function.  */
- if (get_call_expr_in (stmt))
+ if (get_call_expr_in (stmt)
+  || stmt_escape_type == ESCAPE_STORED_IN_GLOBAL)
{
  bitmap_set_bit (ai->dereferenced_ptrs_store, DECL_UID (var));
  pi->is_dereferenced = 1;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30567



[Bug tree-optimization/32723] [4.2 Regression] memory hog in solve_graph

2007-07-24 Thread dberlin at gcc dot gnu dot org


--- Comment #7 from dberlin at gcc dot gnu dot org  2007-07-24 07:16 ---
Didn't you commit the shared bitmap fix?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32723



[Bug tree-optimization/30052] [4.2/4.3 Regression] points-to analysis slow and memory hungry

2007-07-26 Thread dberlin at gcc dot gnu dot org


--- Comment #43 from dberlin at gcc dot gnu dot org  2007-07-26 18:03 
---
On my current branch, which i will commit soon, i have

 tree PTA  :  14.56 ( 1%) usr   0.57 ( 1%) sys  16.98 ( 1%) wall  
26372 kB ( 2%) ggc
 tree alias analysis   : 577.90 (26%) usr   8.72 ( 8%) sys 611.13 (24%) wall 
108272 kB ( 7%) ggc

I have looked through this bug report again, I also don't see PTA taking up
your memory.
(Alias analysis i will try to fix, but it's a bit tricky)

What is happening is the memory is increasing slowly.  It's not like PTA is
suddenly allocating 1.5 gig.
So your memory usage is not coming from PTA (at least, not in a way I can
solve, unless you see a leak somewhere).

It is much more likely someone is leaking memory.

In short I have absolutely no plans to work on the memory hog portion of this 
bug, and deny that points-to analysis is "memory hungry" in 4.3 because i don't
see it.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|memory-hog  |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30052



[Bug tree-optimization/32722] [4.3 Regression] Bootstrap failure with -fno-tree-store-copy-prop

2007-08-09 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2007-08-10 01:37 ---
This should be fixed now. 
I believe echristo bootstrapped with this flag just yesterday, in fact.


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||echristo at apple dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32722



[Bug tree-optimization/32722] [4.3 Regression] Bootstrap failure with -fno-tree-store-copy-prop

2007-08-09 Thread dberlin at gcc dot gnu dot org


--- Comment #5 from dberlin at gcc dot gnu dot org  2007-08-10 01:39 ---
This should be fixed now (it was a VN/PRE interaction)
I believe echristo bootstrapped with this flag just yesterday, in fact.

The testcase is certainly not crashing for me anymore

Please reopen if it is still broken


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32722



[Bug middle-end/30610] huge memory consumption with -O3

2007-08-13 Thread dberlin at gcc dot gnu dot org


--- Comment #4 from dberlin at gcc dot gnu dot org  2007-08-13 12:06 ---
It takes 2 iterations, but it has come up with 144 thousand expressions


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30610



[Bug tree-optimization/32772] [4.3 Regression] error: found real variable when subvariables should have appeared

2007-08-19 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2007-08-19 23:23 ---
Subject: Bug 32772

Author: dberlin
Date: Sun Aug 19 23:23:29 2007
New Revision: 127629

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127629
Log:
2007-08-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR 32772
Fix PR 32716
Fix PR 32328
Fix PR 32303

* tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
* tree-ssa-alias.c (init_transitive_clobber_worklist): Add
on_worklist argument and avoid adding things to worklist multiple
times.
(add_to_worklist): Ditto.
(mark_aliases_call_clobbered): Mark entire structure clobbered if
single SFT is clobbered.
(set_initial_properties): Ditto.
(compute_call_clobbered): Update for changes to function
arguments.
(create_overlap_variables_for): Always create SFT for offset 0.
(create_structure_vars): Handle PHI's, since we are in SSA form at
this point.
* tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
* tree-ssa-operands.c (access_can_touch_variable): Don't handle
TARGET_MEM_REF.
(add_vars_for_offset): Figure out aliases from access + points-to.
(add_virtual_operand): Use add_vars-for_offset.
(get_tmr_operands): Update for NMT changes, rewrite to be correct.
(add_call_clobber_ops): Remove makes_clobbering_call set.
(get_expr_operands): Always pass through the INDIRECT_REF
reference.
* tree-ssa-structalias.c (struct constraint_graph): Remove
variables member.
Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
address_taken, pt_used, number_incoming.
(FIRST_ADDR_NODE): Removed.
(merge_graph_nodes): Remove broken code for the moment.
(init_graph): New function.
(build_pred_graph): Remove code to init_graph.
Add location equivalence support.
(struct scc_info): Rename roots to deleted.
(scc_visit): Ditto.
(init_scc_info): Ditto
(init_topo_info): Use graph->size.
(compute_topo_order): Ditto.
(do_da_constraint): Removed.
(do_sd_constraint): Remove calls to find().
set_union_with_increment should always get 0 as last arg here.
(do_complex_constraint): Replace do_da_constraint with assert.
Stop calling find.
(struct equiv_class_label): New.
(pointer_equiv_class_table): Ditto.
(location_equiv_class_table): Ditto.
(equiv_class_label_hash): Ditto.
(equiv_class_label_eq): Ditto
(equiv_class_lookup): Ditto.
(equiv_class_ladd): Ditto.
(pointer_equiv_class): Ditto.
(location_equiv_class): Ditto.
(condense_visit): Rename and rewrite from label_visit to do only
SCC related stuff for HU.
(label_visit): Do HU work for HU.
(perform_var_substitution): Update to do HU and location
equivalence.
(free_var_substitution_info): Update to free HU and location
equivalence structures.  */
(find_equivalent_node): Update for pointer but not location
equivalence.
(unite_pointer_equivalences): New function.
(move_complex_constraints): Rewrite to only do moving.
(rewrite_constraints): Split out of move_complex_constraints.
(solve_graph): Use graph->size.
(process_constraint_1): Add from_call argument, use it.
Split *a = &b into two constraints.
(process_constraint): Use new process_constraint_1.
(get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
(get_constraint_for): Handle non-pointer integers properly.
Remove code that used to handle structures.
(handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
with unknown addends.
(handle_rhs_call): New function.
(find_func_aliases): Use handle_rhs_call.
(set_uids_in_ptset): Add an assert.
(set_used_smts): Fix bug in not considering unified vars.
(compute_tbaa_pruning): Stop initing useless iteration_obstack.
(compute_points_to_sets): Update for other function changes.
(delete_points_to_sets): Ditto.
(ipa_pta_execute): Ditto.
(pass_ipa_pta): We need to update SSA after ipa_pta.



Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-loop-ivopts.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32772



[Bug tree-optimization/32303] [4.3 Regression] SPEC2006 447.dealII miscompiled at -O2

2007-08-19 Thread dberlin at gcc dot gnu dot org


--- Comment #2 from dberlin at gcc dot gnu dot org  2007-08-19 23:23 ---
Subject: Bug 32303

Author: dberlin
Date: Sun Aug 19 23:23:29 2007
New Revision: 127629

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127629
Log:
2007-08-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR 32772
Fix PR 32716
Fix PR 32328
Fix PR 32303

* tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
* tree-ssa-alias.c (init_transitive_clobber_worklist): Add
on_worklist argument and avoid adding things to worklist multiple
times.
(add_to_worklist): Ditto.
(mark_aliases_call_clobbered): Mark entire structure clobbered if
single SFT is clobbered.
(set_initial_properties): Ditto.
(compute_call_clobbered): Update for changes to function
arguments.
(create_overlap_variables_for): Always create SFT for offset 0.
(create_structure_vars): Handle PHI's, since we are in SSA form at
this point.
* tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
* tree-ssa-operands.c (access_can_touch_variable): Don't handle
TARGET_MEM_REF.
(add_vars_for_offset): Figure out aliases from access + points-to.
(add_virtual_operand): Use add_vars-for_offset.
(get_tmr_operands): Update for NMT changes, rewrite to be correct.
(add_call_clobber_ops): Remove makes_clobbering_call set.
(get_expr_operands): Always pass through the INDIRECT_REF
reference.
* tree-ssa-structalias.c (struct constraint_graph): Remove
variables member.
Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
address_taken, pt_used, number_incoming.
(FIRST_ADDR_NODE): Removed.
(merge_graph_nodes): Remove broken code for the moment.
(init_graph): New function.
(build_pred_graph): Remove code to init_graph.
Add location equivalence support.
(struct scc_info): Rename roots to deleted.
(scc_visit): Ditto.
(init_scc_info): Ditto
(init_topo_info): Use graph->size.
(compute_topo_order): Ditto.
(do_da_constraint): Removed.
(do_sd_constraint): Remove calls to find().
set_union_with_increment should always get 0 as last arg here.
(do_complex_constraint): Replace do_da_constraint with assert.
Stop calling find.
(struct equiv_class_label): New.
(pointer_equiv_class_table): Ditto.
(location_equiv_class_table): Ditto.
(equiv_class_label_hash): Ditto.
(equiv_class_label_eq): Ditto
(equiv_class_lookup): Ditto.
(equiv_class_ladd): Ditto.
(pointer_equiv_class): Ditto.
(location_equiv_class): Ditto.
(condense_visit): Rename and rewrite from label_visit to do only
SCC related stuff for HU.
(label_visit): Do HU work for HU.
(perform_var_substitution): Update to do HU and location
equivalence.
(free_var_substitution_info): Update to free HU and location
equivalence structures.  */
(find_equivalent_node): Update for pointer but not location
equivalence.
(unite_pointer_equivalences): New function.
(move_complex_constraints): Rewrite to only do moving.
(rewrite_constraints): Split out of move_complex_constraints.
(solve_graph): Use graph->size.
(process_constraint_1): Add from_call argument, use it.
Split *a = &b into two constraints.
(process_constraint): Use new process_constraint_1.
(get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
(get_constraint_for): Handle non-pointer integers properly.
Remove code that used to handle structures.
(handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
with unknown addends.
(handle_rhs_call): New function.
(find_func_aliases): Use handle_rhs_call.
(set_uids_in_ptset): Add an assert.
(set_used_smts): Fix bug in not considering unified vars.
(compute_tbaa_pruning): Stop initing useless iteration_obstack.
(compute_points_to_sets): Update for other function changes.
(delete_points_to_sets): Ditto.
(ipa_pta_execute): Ditto.
(pass_ipa_pta): We need to update SSA after ipa_pta.



Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-loop-ivopts.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32303



[Bug tree-optimization/32328] [4.2/4.3 Regression] -fstrict-aliasing causes skipped code

2007-08-19 Thread dberlin at gcc dot gnu dot org


--- Comment #21 from dberlin at gcc dot gnu dot org  2007-08-19 23:23 
---
Subject: Bug 32328

Author: dberlin
Date: Sun Aug 19 23:23:29 2007
New Revision: 127629

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127629
Log:
2007-08-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR 32772
Fix PR 32716
Fix PR 32328
Fix PR 32303

* tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
* tree-ssa-alias.c (init_transitive_clobber_worklist): Add
on_worklist argument and avoid adding things to worklist multiple
times.
(add_to_worklist): Ditto.
(mark_aliases_call_clobbered): Mark entire structure clobbered if
single SFT is clobbered.
(set_initial_properties): Ditto.
(compute_call_clobbered): Update for changes to function
arguments.
(create_overlap_variables_for): Always create SFT for offset 0.
(create_structure_vars): Handle PHI's, since we are in SSA form at
this point.
* tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
* tree-ssa-operands.c (access_can_touch_variable): Don't handle
TARGET_MEM_REF.
(add_vars_for_offset): Figure out aliases from access + points-to.
(add_virtual_operand): Use add_vars-for_offset.
(get_tmr_operands): Update for NMT changes, rewrite to be correct.
(add_call_clobber_ops): Remove makes_clobbering_call set.
(get_expr_operands): Always pass through the INDIRECT_REF
reference.
* tree-ssa-structalias.c (struct constraint_graph): Remove
variables member.
Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
address_taken, pt_used, number_incoming.
(FIRST_ADDR_NODE): Removed.
(merge_graph_nodes): Remove broken code for the moment.
(init_graph): New function.
(build_pred_graph): Remove code to init_graph.
Add location equivalence support.
(struct scc_info): Rename roots to deleted.
(scc_visit): Ditto.
(init_scc_info): Ditto
(init_topo_info): Use graph->size.
(compute_topo_order): Ditto.
(do_da_constraint): Removed.
(do_sd_constraint): Remove calls to find().
set_union_with_increment should always get 0 as last arg here.
(do_complex_constraint): Replace do_da_constraint with assert.
Stop calling find.
(struct equiv_class_label): New.
(pointer_equiv_class_table): Ditto.
(location_equiv_class_table): Ditto.
(equiv_class_label_hash): Ditto.
(equiv_class_label_eq): Ditto
(equiv_class_lookup): Ditto.
(equiv_class_ladd): Ditto.
(pointer_equiv_class): Ditto.
(location_equiv_class): Ditto.
(condense_visit): Rename and rewrite from label_visit to do only
SCC related stuff for HU.
(label_visit): Do HU work for HU.
(perform_var_substitution): Update to do HU and location
equivalence.
(free_var_substitution_info): Update to free HU and location
equivalence structures.  */
(find_equivalent_node): Update for pointer but not location
equivalence.
(unite_pointer_equivalences): New function.
(move_complex_constraints): Rewrite to only do moving.
(rewrite_constraints): Split out of move_complex_constraints.
(solve_graph): Use graph->size.
(process_constraint_1): Add from_call argument, use it.
Split *a = &b into two constraints.
(process_constraint): Use new process_constraint_1.
(get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
(get_constraint_for): Handle non-pointer integers properly.
Remove code that used to handle structures.
(handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
with unknown addends.
(handle_rhs_call): New function.
(find_func_aliases): Use handle_rhs_call.
(set_uids_in_ptset): Add an assert.
(set_used_smts): Fix bug in not considering unified vars.
(compute_tbaa_pruning): Stop initing useless iteration_obstack.
(compute_points_to_sets): Update for other function changes.
(delete_points_to_sets): Ditto.
(ipa_pta_execute): Ditto.
(pass_ipa_pta): We need to update SSA after ipa_pta.



Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-loop-ivopts.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32328



[Bug c++/32716] [4.2/4.3 Regression] Wrong code generation. Alias and C++ virtual bases problem.

2007-08-19 Thread dberlin at gcc dot gnu dot org


--- Comment #8 from dberlin at gcc dot gnu dot org  2007-08-19 23:23 ---
Subject: Bug 32716

Author: dberlin
Date: Sun Aug 19 23:23:29 2007
New Revision: 127629

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127629
Log:
2007-08-19  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR 32772
Fix PR 32716
Fix PR 32328
Fix PR 32303

* tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
* tree-ssa-alias.c (init_transitive_clobber_worklist): Add
on_worklist argument and avoid adding things to worklist multiple
times.
(add_to_worklist): Ditto.
(mark_aliases_call_clobbered): Mark entire structure clobbered if
single SFT is clobbered.
(set_initial_properties): Ditto.
(compute_call_clobbered): Update for changes to function
arguments.
(create_overlap_variables_for): Always create SFT for offset 0.
(create_structure_vars): Handle PHI's, since we are in SSA form at
this point.
* tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
* tree-ssa-operands.c (access_can_touch_variable): Don't handle
TARGET_MEM_REF.
(add_vars_for_offset): Figure out aliases from access + points-to.
(add_virtual_operand): Use add_vars-for_offset.
(get_tmr_operands): Update for NMT changes, rewrite to be correct.
(add_call_clobber_ops): Remove makes_clobbering_call set.
(get_expr_operands): Always pass through the INDIRECT_REF
reference.
* tree-ssa-structalias.c (struct constraint_graph): Remove
variables member.
Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
address_taken, pt_used, number_incoming.
(FIRST_ADDR_NODE): Removed.
(merge_graph_nodes): Remove broken code for the moment.
(init_graph): New function.
(build_pred_graph): Remove code to init_graph.
Add location equivalence support.
(struct scc_info): Rename roots to deleted.
(scc_visit): Ditto.
(init_scc_info): Ditto
(init_topo_info): Use graph->size.
(compute_topo_order): Ditto.
(do_da_constraint): Removed.
(do_sd_constraint): Remove calls to find().
set_union_with_increment should always get 0 as last arg here.
(do_complex_constraint): Replace do_da_constraint with assert.
Stop calling find.
(struct equiv_class_label): New.
(pointer_equiv_class_table): Ditto.
(location_equiv_class_table): Ditto.
(equiv_class_label_hash): Ditto.
(equiv_class_label_eq): Ditto
(equiv_class_lookup): Ditto.
(equiv_class_ladd): Ditto.
(pointer_equiv_class): Ditto.
(location_equiv_class): Ditto.
(condense_visit): Rename and rewrite from label_visit to do only
SCC related stuff for HU.
(label_visit): Do HU work for HU.
(perform_var_substitution): Update to do HU and location
equivalence.
(free_var_substitution_info): Update to free HU and location
equivalence structures.  */
(find_equivalent_node): Update for pointer but not location
equivalence.
(unite_pointer_equivalences): New function.
(move_complex_constraints): Rewrite to only do moving.
(rewrite_constraints): Split out of move_complex_constraints.
(solve_graph): Use graph->size.
(process_constraint_1): Add from_call argument, use it.
Split *a = &b into two constraints.
(process_constraint): Use new process_constraint_1.
(get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
(get_constraint_for): Handle non-pointer integers properly.
Remove code that used to handle structures.
(handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
with unknown addends.
(handle_rhs_call): New function.
(find_func_aliases): Use handle_rhs_call.
(set_uids_in_ptset): Add an assert.
(set_used_smts): Fix bug in not considering unified vars.
(compute_tbaa_pruning): Stop initing useless iteration_obstack.
(compute_points_to_sets): Update for other function changes.
(delete_points_to_sets): Ditto.
(ipa_pta_execute): Ditto.
(pass_ipa_pta): We need to update SSA after ipa_pta.



Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-loop-ivopts.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32716



[Bug tree-optimization/32328] [4.2/4.3 Regression] -fstrict-aliasing causes skipped code

2007-08-19 Thread dberlin at gcc dot gnu dot org


--- Comment #22 from dberlin at gcc dot gnu dot org  2007-08-20 01:54 
---
All should be fixed


-- 

dberlin at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32328



  1   2   3   4   5   >