--- Comment #41 from dominiq at lps dot ens dot fr 2010-02-21 12:46 ---
AFAICT this pr and the side effects have been fixed, hence closing. If someone
disagree, please reopen.
Thanks all for the work.
--
dominiq at lps dot ens dot fr changed:
What|Removed
--- Comment #37 from developer at sandoe-acoustics dot co dot uk
2010-02-19 08:43 ---
(In reply to comment #36)
I've checked in a slightly updated fix in r156877. Let us know if all the
regressions are fixed now.
i686/powerpc-darwin9 - YES, thanks.
--
--- Comment #38 from mrs at gcc dot gnu dot org 2010-02-19 19:06 ---
Subject: Bug 43061
Author: mrs
Date: Fri Feb 19 19:06:38 2010
New Revision: 156907
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=156907
Log:
PR objc/43061
* cgraphunit.c
--- Comment #39 from mikestump at comcast dot net 2010-02-19 19:15 ---
I checked in the real back end change in r156907.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #40 from developer at sandoe-acoustics dot co dot uk
2010-02-19 23:28 ---
(In reply to comment #39)
I checked in the real back end change in r156907.
OK on i686/powerpc d9
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #36 from mikestump at comcast dot net 2010-02-18 22:06 ---
I've checked in a slightly updated fix in r156877. Let us know if all the
regressions are fixed now.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #30 from developer at sandoe-acoustics dot co dot uk
2010-02-16 09:23 ---
apropos
http://gcc.gnu.org/ml/gcc-patches/2010-02/msg00587.html
do you think that _OBJC_CLASS_REFERENCES_* and _OBJC_SELECTOR_REFERENCES_*
should be marked as TREE_ADDRESSABLE and DECL_PRESERVE_P in
--- Comment #31 from jakub at gcc dot gnu dot org 2010-02-16 10:06 ---
Not sure about TREE_ADDRESSABLE, but certainly DECL_PRESERVED_P should be set
as well.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #32 from rguenth at gcc dot gnu dot org 2010-02-16 10:14
---
(In reply to comment #24)
Yes, I think IainS is on the right track, all things in objc_cls_refs escape
and can be read and written to in unexpected ways by the runtime. Setting
TREE_ADDRESSABLE sounds like a
--- Comment #33 from rguenth at gcc dot gnu dot org 2010-02-16 10:14
---
(In reply to comment #32)
(In reply to comment #24)
Yes, I think IainS is on the right track, all things in objc_cls_refs escape
and can be read and written to in unexpected ways by the runtime. Setting
--- Comment #34 from developer at sandoe-acoustics dot co dot uk
2010-02-16 14:58 ---
Created an attachment (id=19889)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19889action=view)
patch with CLASS and SELECTOR refs. marked as TREE_ADDRESSABLE
DECL_PRESERVE_P (for NeXT runtime)
--- Comment #35 from mikestump at comcast dot net 2010-02-16 16:25 ---
Ok to the last patch for now. Feel free to file a bug about checking
DECL_PRESERVE_P and add a pointer to remove the setting of DECL_ATTRIBUTES from
the frontend, thanks.
--
--- Comment #24 from mikestump at comcast dot net 2010-02-15 17:38 ---
Yes, I think IainS is on the right track, all things in objc_cls_refs escape
and can be read and written to in unexpected ways by the runtime. Setting
TREE_ADDRESSABLE sounds like a reasonable step forward.
--
--- Comment #25 from developer at sandoe-acoustics dot co dot uk
2010-02-15 19:54 ---
Hm. I tried this trivial patch:
Index: gcc/objc/objc-act.c
===
--- gcc/objc/objc-act.c (revision 156760)
+++ gcc/objc/objc-act.c
--- Comment #26 from jakub at gcc dot gnu dot org 2010-02-15 21:09 ---
Addressability is recomputed several times. What you probably want is mark the
decl with the used attribute (i.e. add used attribute to it, set TREE_USED
(decl) = 1 and DECL_PRESERVE_P (decl) = 1).
--
--- Comment #27 from developer at sandoe-acoustics dot co dot uk
2010-02-15 21:51 ---
(In reply to comment #26)
Addressability is recomputed several times. What you probably want is mark
the
decl with the used attribute (i.e. add used attribute to it, set TREE_USED
(decl) = 1 and
--- Comment #28 from jakub at gcc dot gnu dot org 2010-02-15 22:37 ---
DECL_ATTRIBUTES (decl) = tree_cons (get_identifier (used), NULL,
DECL_ATTRIBUTES (decl));
is also needed (no idea why ipa*.c/cgraphunit.c use lookup_attribute instead of
testing DECL_PRESERVED_P, but they do).
--- Comment #29 from developer at sandoe-acoustics dot co dot uk
2010-02-15 23:10 ---
Created an attachment (id=19884)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19884action=view)
attach used attribute as well as marking vars used.
Jakub's comment seems to do the trick -
--- Comment #1 from developer at sandoe-acoustics dot co dot uk 2010-02-14
13:46 ---
confirmed, this can be reproduced outside the testsuite framework:
for example... [ppc/darwin9/156749];
$ ./gcc/xgcc -B gcc ../gcc-4-5-trunk/gcc/testsuite/objc/execute/cascading-1.m
-fnext-runtime -O1
--- Comment #2 from rguenth at gcc dot gnu dot org 2010-02-14 15:25 ---
Track down the regression that caused this and see what actually is the
difference in generated code and/or tree/rtl dumps. Access to non-free
operating systems is restricted.
--
--- Comment #3 from developer at sandoe-acoustics dot co dot uk 2010-02-14
16:04 ---
(In reply to comment #2)
Track down the regression that caused this
r156519
and see what actually is the difference in generated code and/or tree/rtl
dumps.
what output would be the most useful?
--- Comment #4 from rguenth at gcc dot gnu dot org 2010-02-14 16:28 ---
(In reply to comment #3)
(In reply to comment #2)
Track down the regression that caused this
r156519
and see what actually is the difference in generated code and/or tree/rtl
dumps.
what output would
--- Comment #5 from developer at sandoe-acoustics dot co dot uk 2010-02-14
16:32 ---
Created an attachment (id=19860)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19860action=view)
generated asm differences with/without r156519
--
--- Comment #6 from developer at sandoe-acoustics dot co dot uk 2010-02-14
16:33 ---
Created an attachment (id=19861)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19861action=view)
optimized tree diffs.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #7 from developer at sandoe-acoustics dot co dot uk 2010-02-14
16:45 ---
Created an attachment (id=19862)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19862action=view)
diffs for all fdump-tree-all output
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #8 from rguenth at gcc dot gnu dot org 2010-02-14 17:44 ---
Hm. So CCP through get_symbol_constant_value causes
bb 2:
- _OBJC_CLASS_REFERENCES_0.2_1 = _OBJC_CLASS_REFERENCES_0;
+ _OBJC_CLASS_REFERENCES_0.2_1 = (struct objc_class *) _OBJC_CLASS_NAME_0;
--- Comment #9 from developer at sandoe-acoustics dot co dot uk 2010-02-14
18:50 ---
(In reply to comment #8)
Hm. So CCP through get_symbol_constant_value causes
you run the compile inside gdb, break on get_symbol_constant_value
maybe I've messed something up - but setting a break
--- Comment #10 from rguenth at gcc dot gnu dot org 2010-02-14 19:00
---
(In reply to comment #9)
(In reply to comment #8)
Hm. So CCP through get_symbol_constant_value causes
you run the compile inside gdb, break on get_symbol_constant_value
maybe I've messed something up -
--- Comment #11 from rguenth at gcc dot gnu dot org 2010-02-14 19:01
---
Btw, I cannot make -fnext-runtime work on i?86-linux, it errors at link time
with
undefined references. Any configure options I need to supply?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #12 from pinskia at gcc dot gnu dot org 2010-02-14 19:07
---
(In reply to comment #11)
Btw, I cannot make -fnext-runtime work on i?86-linux, it errors at link time
with
undefined references. Any configure options I need to supply?
The next runtime only works on
--- Comment #13 from developer at sandoe-acoustics dot co dot uk
2010-02-14 21:13 ---
Created an attachment (id=19864)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19864action=view)
gdb-output for CLASS_REFERENCES_0
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #14 from rguenth at gcc dot gnu dot org 2010-02-14 21:29
---
That doesn't make sense. The symbol is not TREE_READONLY.
Was that dump from inside get_symbol_constant_value?
As the extract only happens from CCP2 I suppose that ipa-reference might
be setting TREE_READONLY
--- Comment #15 from developer at sandoe-acoustics dot co dot uk
2010-02-14 21:53 ---
(In reply to comment #14)
That doesn't make sense. The symbol is not TREE_READONLY.
Was that dump from inside get_symbol_constant_value?
yes.
that was from a clean bootstrap of trunk 156760.
--- Comment #16 from developer at sandoe-acoustics dot co dot uk
2010-02-14 21:55 ---
Created an attachment (id=19866)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19866action=view)
gimple for cascading-1.m @ trunk 156760
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43061
--- Comment #17 from rguenth at gcc dot gnu dot org 2010-02-14 21:56
---
(In reply to comment #15)
(In reply to comment #14)
That doesn't make sense. The symbol is not TREE_READONLY.
Was that dump from inside get_symbol_constant_value?
yes.
that was from a clean bootstrap
--- Comment #18 from developer at sandoe-acoustics dot co dot uk
2010-02-14 22:11 ---
Created an attachment (id=19867)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19867action=view)
-fdump-ipa-all/static-var cascading-1.m @ trunk 156760
this is with normal options (i.e. the
--- Comment #19 from developer at sandoe-acoustics dot co dot uk
2010-02-14 22:16 ---
Created an attachment (id=19868)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19868action=view)
cascading-1.m/-fdump-ipa-all/pure-const @ trunk 15670
this is with -fno-ipa-reference.
--
--- Comment #20 from rguenth at gcc dot gnu dot org 2010-02-14 22:25
---
Not TREE_ADDRESSABLE var _OBJC_CLASS_REFERENCES_0
Not TREE_ADDRESSABLE var _OBJC_SELECTOR_REFERENCES_0
Not TREE_ADDRESSABLE var _OBJC_SELECTOR_REFERENCES_1
read-only var _OBJC_CLASS_REFERENCES_0
read-only var
--- Comment #21 from developer at sandoe-acoustics dot co dot uk
2010-02-14 23:22 ---
Created an attachment (id=19870)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19870action=view)
asm out from -O1 -g cascading-1.m @trunk 156760
this is the current asm output - it segfaults on
--- Comment #22 from rguenth at gcc dot gnu dot org 2010-02-14 23:26
---
There are no modifications visible in the assembly. But there is magic:
.objc_cls_refs
.align 2
L_OBJC_CLASS_REFERENCES_0:
.long L_OBJC_CLASS_NAME_0
what is .objc_cls_refs?
Well,
--- Comment #23 from developer at sandoe-acoustics dot co dot uk
2010-02-14 23:57 ---
(In reply to comment #22)
There are no modifications visible in the assembly. But there is magic:
.objc_cls_refs
.align 2
L_OBJC_CLASS_REFERENCES_0:
.long
41 matches
Mail list logo