--- 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=gccview=revrev=117891
Log:
2006-10-19 Daniel Berlin [EMAIL PROTECTED]
Fix PR
--- 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
--- 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
--- Comment #38 from dberlin at gcc dot gnu dot org 2006-09-26 15:47
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
On 26 Sep 2006 15:33:29 -, acahalan at gmail dot com
[EMAIL PROTECTED] wrote:
--- Comment #37 from acahalan at gmail dot
--- Comment #39 from pinskia at gcc dot gnu dot org 2006-09-26 15:49
---
(In reply to comment #37)
Your point?
That aliasing rules in C is older than my girl friend and that they have been
around for a lot longer than people give credit for.
Fact: strict aliasing horrifies most
--- Comment #36 from pinskia at gcc dot gnu dot org 2006-09-26 14:32
---
It's also wrong to assume that unions can be used for type punning, but so
what? It is allowed by gcc.
No, it is less there as the behavior with unions is unspecified and not
undefined unlike type punning via
--- Comment #37 from acahalan at gmail dot com 2006-09-26 15:33 ---
(In reply to comment #36)
Evidence: this bug has existed for ages, meanwhile aliasing violations keep
getting reported as compiler bugs.
This bug (PR28778) has only existed for the last two major releases which is
--- Comment #40 from pcarlini at suse dot de 2006-09-26 15:57 ---
(In reply to comment #38)
We have our reasons to enable strict aliasing by default.
In my opinion, this is a central point. I think we should try to explain what
strict aliasing buys from the point of view of the
--- Comment #35 from acahalan at gmail dot com 2006-09-26 14:16 ---
(In reply to comment #34)
Subject: Re: [4.0/4.1/4.2 Regression] alias
bug with cast and call clobbered
On Tue, 2006-09-26 at 04:44 +, acahalan at gmail dot com wrote:
Although it wouldn't work for
--- Comment #41 from dberlin at gcc dot gnu dot org 2006-09-27 02:12
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
On 26 Sep 2006 15:57:28 -, pcarlini at suse dot de
[EMAIL PROTECTED] wrote:
--- Comment #40 from pcarlini at suse dot de
--- Comment #33 from acahalan at gmail dot com 2006-09-26 04:44 ---
(In reply to comment #28)
If you exclude strict type-based rules, the answer to what can foo
clobber in the example is the same as asking what can the first
argument of foo access in foo and its callees. Because of
On Tue, 2006-09-26 at 04:44 +, acahalan at gmail dot com wrote:
Although it wouldn't work for the example code, extending the aliasing
behavior
of (char*) to (void*) would fix the problem for LOTS of code out in the wild.
People normally use a (void*) when they want a generic pointer
--- Comment #34 from pinskia at physics dot uc dot edu 2006-09-26 04:56
---
Subject: Re: [4.0/4.1/4.2 Regression] alias
bug with cast and call clobbered
On Tue, 2006-09-26 at 04:44 +, acahalan at gmail dot com wrote:
Although it wouldn't work for the example code,
--- Comment #31 from steven at gcc dot gnu dot org 2006-09-16 18:09 ---
sec has passed.
ping!
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- Comment #32 from dberlin at gcc dot gnu dot org 2006-09-16 20:03
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
--- Comment #31 from steven at gcc dot gnu dot org 2006-09-16 18:09
---
sec has passed.
ping!
I'm down to two
--- Comment #30 from dberlin at gcc dot gnu dot org 2006-09-09 17:55
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
Patch coming in a sec
On 9 Sep 2006 15:02:37 -, reichelt at gcc dot gnu dot org
[EMAIL PROTECTED] wrote:
--
--
--- Comment #29 from rguenth at gcc dot gnu dot org 2006-08-28 08:42
---
I completely agree with Dan's analysis. Note that for the patch in comment #20
we can hoist the loop adding all addressable vars to the call clobbering list
out of the loop iterating over all analyzed pointers by
--- Comment #20 from rguenth at gcc dot gnu dot org 2006-08-27 14:20
---
So I have a patch that produces (diff typedef long GLint
__attribute__((may_alias)) resunts vs. patch):
--- t.i.030t.alias1.ok 2006-08-27 16:13:54.0 +0200
+++ t.i.030t.alias1 2006-08-27
--- Comment #21 from dberlin at gcc dot gnu dot org 2006-08-27 15:41
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
by noticing that if pt_anything is set, we indeed need to include all
addressable vars in the clobbering:
This is also equivalent
--- Comment #22 from rguenth at gcc dot gnu dot org 2006-08-27 15:49
---
Well, yes. If we still had pt_vars at the time of add_call_clobber_ops () we
might only do it if one of the actual params of a CALL_EXPR has pt_anything
set.
But call clobbering is not per call-site or
--- Comment #23 from dberlin at gcc dot gnu dot org 2006-08-27 16:00
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
--- Comment #22 from rguenth at gcc dot gnu dot org 2006-08-27 15:49
---
Well, yes. If we still had pt_vars at the time
--- Comment #24 from drow at gcc dot gnu dot org 2006-08-27 17:56 ---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
On Sun, Aug 27, 2006 at 04:00:19PM -, dberlin at dberlin dot org wrote:
1. You believe this is a good idea for 4.2, even though it
--- Comment #25 from mmitchel at gcc dot gnu dot org 2006-08-27 20:25
---
Dan Berlin believes that Richard's patch in Comment #20 is the conservative
fix.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- Comment #26 from mmitchel at gcc dot gnu dot org 2006-08-27 20:28
---
I don't understand how TBAA is interacting with the may-alias information.
In particular, TBAA doesn't say anything about casts; it says something about
loads and stores. In particular, TBAA forbids accessing
--- Comment #27 from dberlin at gcc dot gnu dot org 2006-08-27 20:51
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
I don't understand how TBAA is interacting with the may-alias information.
Given a pointer, and some aliases, we ask TBAA, for each
--- Comment #28 from dberlin at gcc dot gnu dot org 2006-08-27 21:09
---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
Since we have never done that before, it does require new code.
And to answer what may be a followup, which is why hasn't this
--- Comment #15 from drow at gcc dot gnu dot org 2006-08-26 15:14 ---
I don't understand aliasing well enough to fix this correctly. See for more:
http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00965.html
--
drow at gcc dot gnu dot org changed:
What|Removed
--- Comment #16 from rguenth at gcc dot gnu dot org 2006-08-26 20:30
---
If you change the prototype to take char* as argument we figure out clobbering
correctly:
--- t.i.030t.alias1 2006-08-26 22:28:40.0 +0200
+++ t.i.030t.alias1.ok 2006-08-26 22:27:33.0 +0200
@@
--- Comment #17 from rguenth at gcc dot gnu dot org 2006-08-26 20:42
---
So, making pointer arguments effectively using alias-set zero for alias and
call clobbering computation would fix this.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- Comment #18 from drow at gcc dot gnu dot org 2006-08-26 23:25 ---
Subject: Re: [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
On Sat, Aug 26, 2006 at 08:42:50PM -, rguenth at gcc dot gnu dot org wrote:
So, making pointer arguments effectively using alias-set
--- Comment #19 from dberlin at gcc dot gnu dot org 2006-08-27 04:12
---
Subject: Re: [4.0/4.1/4.2 Regression] alias
bug with cast and call clobbered
rguenth at gcc dot gnu dot org wrote:
--- Comment #17 from rguenth at gcc dot gnu dot org 2006-08-26 20:42
---
So,
--- Comment #11 from drow at gcc dot gnu dot org 2006-08-25 19:57 ---
I am looking at this.
The difference between those two compilers in t16.ssa is:
- # blist_1 = PHI blist_6(2), blist_7(1);
+ # blist_1 = PHI blist_7(1), blist_6(2);
The difference in t17.alias1 is that, plus:
--- Comment #12 from drow at gcc dot gnu dot org 2006-08-25 20:50 ---
Created an attachment (id=12141)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12141action=view)
Aliasing fix.
Thank you Janis for the reghunt! Not too hard to track down given that.
I haven't tested this
--- Comment #13 from drow at gcc dot gnu dot org 2006-08-25 20:57 ---
Unfortunately Diego's gone and rewritten a bunch of aliasing code since that
revision. And there's no code corresponding to where the fix went 21 months
ago. So, congratulations: we've broken this testcase twice!
I
--- Comment #14 from drow at gcc dot gnu dot org 2006-08-25 22:11 ---
Testing a patch.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- Comment #10 from janis at gcc dot gnu dot org 2006-08-21 16:34 ---
A regression hunt on powerpc-linux using the testcase from comment #3
identified this patch:
http://gcc.gnu.org/viewcvs?view=revrev=91097
r91097 | kazu | 2004-11-23 17:45:50 + (Tue, 23 Nov 2004)
--
--
mmitchel at gcc dot gnu dot org changed:
What|Removed |Added
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- Comment #9 from dberlin at gcc dot gnu dot org 2006-08-21 01:34 ---
Subject: Re: [4.0/4.1/4.2 Regression] alias
bug with cast and call clobbered
If you look at the alias dump, we don't think anything is aliased at all.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- Comment #5 from rguenth at gcc dot gnu dot org 2006-08-19 10:15 ---
dce1 removes the store, after fre we have:
find (alistp)
{
int list[32];
const int * blist;
const GLint * blist.0;
# BLOCK 2
# PRED: ENTRY (fallthru,exec)
if (alistp_2 != 0B) goto L0; else goto L1;
#
--- Comment #6 from rguenth at gcc dot gnu dot org 2006-08-19 10:44 ---
But alias information is wrong, which is the problem here.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778
--- 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
--- Comment #8 from rguenth at gcc dot gnu dot org 2006-08-19 14:27 ---
;; Function find (find)
Points-to analysis
Constraints:
ANYTHING = ANYTHING
READONLY = ANYTHING
INTEGER = ANYTHING
alistp = ANYTHING
blist_3 = alistp
blist_6 = list
blist_1 = blist_3
blist_1 = blist_6
blist.0_7 =
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-08-18 21:17 ---
Confirmed.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
CC|
43 matches
Mail list logo