public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
@ 2011-06-12 14:45 mikpe at it dot uu.se
  2011-06-12 20:00 ` [Bug bootstrap/49383] " rguenth at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: mikpe at it dot uu.se @ 2011-06-12 14:45 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: [4.7 regression] powerpc64-linux bootstrap failure due
                    to ice in cgraph_only_called_directly_p
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: mikpe@it.uu.se


Created attachment 24500
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24500
preprocessed array_type_info.cc

The latest 4.7 snapshot (4.7-20110611 == r174959) fails to bootstrap on
powerpc64-linux:

Making all in libsupc++
make[4]: Entering directory
`/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared  --mode=compile
/mnt/archive/objdir47/./gcc/xgcc -shared-libgcc -B/mnt/archive/objdir47/./gcc
-nostdinc++
-L/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/src
-L/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/mnt/archive/install47/powerpc64-unknown-linux-gnu/bin/
-B/mnt/archive/install47/powerpc64-unknown-linux-gnu/lib/ -isystem
/mnt/archive/install47/powerpc64-unknown-linux-gnu/include -isystem
/mnt/archive/install47/powerpc64-unknown-linux-gnu/sys-include   
-I/mnt/archive/gcc-4.7-20110611/libstdc++-v3/../gcc
-I/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu
-I/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/include
-I/mnt/archive/gcc-4.7-20110611/libstdc++-v3/libsupc++  -fno-implicit-templates
-prefer-pic -Wall -Wextra -Wwrite-strings -Wcast-qual 
-fdiagnostics-show-location=once  -ffunction-sections -fdata-sections 
-D_GNU_SOURCE  -c -o array_type_info.lo
/mnt/archive/gcc-4.7-20110611/libstdc++-v3/libsupc++/array_type_info.cc
libtool: compile:  /mnt/archive/objdir47/./gcc/xgcc -shared-libgcc
-B/mnt/archive/objdir47/./gcc -nostdinc++
-L/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/src
-L/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/mnt/archive/install47/powerpc64-unknown-linux-gnu/bin/
-B/mnt/archive/install47/powerpc64-unknown-linux-gnu/lib/ -isystem
/mnt/archive/install47/powerpc64-unknown-linux-gnu/include -isystem
/mnt/archive/install47/powerpc64-unknown-linux-gnu/sys-include
-I/mnt/archive/gcc-4.7-20110611/libstdc++-v3/../gcc
-I/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu
-I/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/include
-I/mnt/archive/gcc-4.7-20110611/libstdc++-v3/libsupc++ -fno-implicit-templates
-Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once
-ffunction-sections -fdata-sections -D_GNU_SOURCE -c
/mnt/archive/gcc-4.7-20110611/libstdc++-v3/libsupc++/array_type_info.cc  -fPIC
-DPIC -o array_type_info.o
/mnt/archive/gcc-4.7-20110611/libstdc++-v3/libsupc++/array_type_info.cc: In
destructor 'virtual __cxxabiv1::__array_type_info::~__array_type_info()':
/mnt/archive/gcc-4.7-20110611/libstdc++-v3/libsupc++/array_type_info.cc:31:2:
internal compiler error: in cgraph_only_called_directly_p, at cgraph.c:2976
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[4]: *** [array_type_info.lo] Error 1
make[4]: Leaving directory
`/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3/libsupc++'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/mnt/archive/objdir47/powerpc64-unknown-linux-gnu/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory `/mnt/archive/objdir47'
make: *** [bootstrap] Error 2

The previous snapshot (4.7-20110604) bootstrapped fine.

Configured with:
/mnt/archive/gcc-4.7-20110611/configure --prefix=/mnt/archive/install47
--with-gmp=/home/mikpe/pkgs/linux-ppc64/gmp-4.3.2
--with-mpfr=/home/mikpe/pkgs/linux-ppc64/mpfr-2.4.2
--with-mpc=/home/mikpe/pkgs/linux-ppc64/mpc-0.8.2 --disable-plugin
--disable-lto --disable-nls --enable-threads=posix --with-cpu=default32
--enable-checking=release --disable-libmudflap
--enable-languages=c,c++,fortran,ada


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
@ 2011-06-12 20:00 ` rguenth at gcc dot gnu.org
  2011-06-13 18:38 ` meissner at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-12 20:00 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org
   Target Milestone|---                         |4.7.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
  2011-06-12 20:00 ` [Bug bootstrap/49383] " rguenth at gcc dot gnu.org
@ 2011-06-13 18:38 ` meissner at gcc dot gnu.org
  2011-06-17 13:38 ` wschmidt at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: meissner at gcc dot gnu.org @ 2011-06-13 18:38 UTC (permalink / raw)
  To: gcc-bugs

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

Michael Meissner <meissner at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.06.13 18:36:20
                 CC|                            |meissner at gcc dot gnu.org
     Ever Confirmed|0                           |1
           Severity|normal                      |blocker


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
  2011-06-12 20:00 ` [Bug bootstrap/49383] " rguenth at gcc dot gnu.org
  2011-06-13 18:38 ` meissner at gcc dot gnu.org
@ 2011-06-17 13:38 ` wschmidt at gcc dot gnu.org
  2011-06-17 15:54 ` bergner at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2011-06-17 13:38 UTC (permalink / raw)
  To: gcc-bugs

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

William J. Schmidt <wschmidt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wschmidt at gcc dot gnu.org

--- Comment #1 from William J. Schmidt <wschmidt at gcc dot gnu.org> 2011-06-17 13:37:45 UTC ---
Here's a backtrace:

#0  fancy_abort (file=0x10d1b918
"/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cgraph.c", line=3012,
function=0x10d1b870 "cgraph_only_called_directly_p") at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/diagnostic.c:893
#1  0x00000000103db28c in cgraph_only_called_directly_p (node=Unhandled dwarf
expression opcode 0xf3
) at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cgraph.c:3012
#2  0x0000000010991bbc in call_ABI_of_interest (fndecl=Unhandled dwarf
expression opcode 0xf3
) at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/config/rs6000/rs6000.c:7422
#3  0x00000000109a4848 in init_cumulative_args (cum=0xfffffffd4d0,
fntype=0xfffb6ff9108, libname=Unhandled dwarf expression opcode 0xf3
) at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/config/rs6000/rs6000.c:7485
#4  0x000000001039ed88 in expand_call (exp=0xfffb6f6fa00, target=0x0,
ignore=Unhandled dwarf expression opcode 0xf3
) at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/calls.c:2248
#5  0x000000001049c724 in expand_expr_real_1 (exp=0xfffb6f6fa00, target=<value
optimized out>, tmode=Unhandled dwarf expression opcode 0xf3
) at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/expr.c:9351
#6  0x00000000103aff98 in expand_call_stmt (stmt=0xfffb7034c80) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cfgexpand.c:1870
#7  expand_gimple_stmt_1 (stmt=0xfffb7034c80) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cfgexpand.c:1907
#8  expand_gimple_stmt (stmt=0xfffb7034c80) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cfgexpand.c:2054
#9  0x00000000103b1434 in expand_gimple_basic_block (bb=0xfffb6ea96b8) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cfgexpand.c:3637
#10 0x00000000103b7d24 in gimple_expand_cfg () at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cfgexpand.c:4120
#11 0x0000000010670860 in execute_one_pass (pass=0x10fd0a28) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/passes.c:2023
#12 0x0000000010670c50 in execute_pass_list (pass=0x10fd0a28) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/passes.c:2078
#13 0x00000000107b2cc0 in tree_rest_of_compilation (fndecl=0xfffb6f8c900) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/tree-optimize.c:416
#14 0x00000000103e1d20 in cgraph_expand_function (node=0xfffb6fc9240) at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cgraphunit.c:1768
#15 0x00000000103e41a8 in cgraph_expand_all_functions () at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cgraphunit.c:1827
#16 cgraph_optimize () at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cgraphunit.c:2090
#17 0x00000000103e49c8 in cgraph_finalize_compilation_unit () at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cgraphunit.c:1269
#18 0x00000000101b5d54 in cp_write_global_declarations () at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/cp/decl2.c:4006
#19 0x000000001073bbf8 in compile_file () at
/home/wschmidt/gcc/gcc-mainline-pr49383/gcc/toplev.c:587
#20 do_compile () at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/toplev.c:1924
#21 toplev_main () at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/toplev.c:1996
#22 0x00000000100b3f34 in main (argc=<value optimized out>, argv=<value
optimized out>) at /home/wschmidt/gcc/gcc-mainline-pr49383/gcc/main.c:36


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (2 preceding siblings ...)
  2011-06-17 13:38 ` wschmidt at gcc dot gnu.org
@ 2011-06-17 15:54 ` bergner at gcc dot gnu.org
  2011-06-18  9:00 ` hubicka at ucw dot cz
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: bergner at gcc dot gnu.org @ 2011-06-17 15:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> 2011-06-17 15:53:39 UTC ---
We die on this assert:

  gcc_assert (cgraph_function_or_thunk_node (node, NULL) == node);

Here's a couple of dumps of the two decls if that helps.

(gdb) frame 1

(gdb) ptree node->decl
 <function_decl 0xfffb6f7ca00 __comp_dtor 
    type <method_type 0xfffb6fe9108
        type <void_type 0xfffb6e40d20 void asm_written type_6 VOID
            align 8 symtab 0 alias set -1 canonical type 0xfffb6e40d20
            pointer_to_this <pointer_type 0xfffb6e40dc8>>
        SI
        size <integer_cst 0xfffb6d52420 constant 32>
        unit size <integer_cst 0xfffb6d52440 constant 4>
        align 32 symtab 0 alias set -1 canonical type 0xfffb6fe9108 method
basetype <record_type 0xfffb6fe8c70 __array_type_info>
        arg-types <tree_list 0xfffb6f8b2e8 value <pointer_type 0xfffb6fe8f10>
            chain <tree_list 0xfffb6dd07f8 value <void_type 0xfffb6e40d20
void>>>
        pointer_to_this <pointer_type 0xfffb6fe94f8>>
    addressable used public static decl_5 SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 29 col 1 align 32 context <record_type 0xfffb6fe8c70 __array_type_info>
initial <block 0xfffb6e84150> abstract_origin <function_decl 0xfffb6f7c600
__array_type_info>
    arguments <parm_decl 0xfffb6e17d60 this
        type <pointer_type 0xfffb6fe8fb8 type <record_type 0xfffb6fe8c70
__array_type_info>
            readonly unsigned SI size <integer_cst 0xfffb6d52420 32> unit size
<integer_cst 0xfffb6d52440 4>
            align 32 symtab 4095 alias set -1 canonical type 0xfffb6fe8fb8>
        readonly used unsigned SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 30 col 21 size <integer_cst 0xfffb6d52420 32> unit size <integer_cst
0xfffb6d52440 4>
        align 32 context <function_decl 0xfffb6f7ca00 __comp_dtor >
abstract_origin <parm_decl 0xfffb7024620 this> arg-type <pointer_type
0xfffb6fe8fb8>>
    result <result_decl 0xfffb6d82800 D.2747 type <void_type 0xfffb6e40d20
void>
        ignored VOID file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 31 col 2
        align 8 context <function_decl 0xfffb6f7ca00 __comp_dtor >>
    full-name "__cxxabiv1::__array_type_info::~__array_type_info()"
    pending-inline-info 0xfffb6d25c50
    (mem:SI (symbol_ref:SI ("_ZN10__cxxabiv117__array_type_infoD1Ev") [flags
0x1] <function_decl 0xfffb6f7ca00 __comp_dtor >) [0 S4 A32])
    struct-function 0xfffb6e08890 chain <function_decl 0xfffb6f7c900
__deleting_dtor >>

(gdb) p cgraph_function_or_thunk_node (node, NULL)
$9 = (struct cgraph_node *) 0xfffb6fb9000

(gdb) ptree $9->decl
 <function_decl 0xfffb6f7cb00 __base_dtor 
    type <method_type 0xfffb6fe9108
        type <void_type 0xfffb6e40d20 void asm_written type_6 VOID
            align 8 symtab 0 alias set -1 canonical type 0xfffb6e40d20
            pointer_to_this <pointer_type 0xfffb6e40dc8>>
        SI
        size <integer_cst 0xfffb6d52420 constant 32>
        unit size <integer_cst 0xfffb6d52440 constant 4>
        align 32 symtab 0 alias set -1 canonical type 0xfffb6fe9108 method
basetype <record_type 0xfffb6fe8c70 __array_type_info>
        arg-types <tree_list 0xfffb6f8b2e8 value <pointer_type 0xfffb6fe8f10>
            chain <tree_list 0xfffb6dd07f8 value <void_type 0xfffb6e40d20
void>>>
        pointer_to_this <pointer_type 0xfffb6fe94f8>>
    asm_written public static decl_5 SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 29 col 1 align 32 context <record_type 0xfffb6fe8c70 __array_type_info>
initial <error_mark 0xfffb6de1d58> abstract_origin <function_decl 0xfffb6f7c600
__array_type_info>
    arguments <parm_decl 0xfffb6e17ef8 this
        type <pointer_type 0xfffb6fe8fb8 type <record_type 0xfffb6fe8c70
__array_type_info>
            readonly unsigned SI size <integer_cst 0xfffb6d52420 32> unit size
<integer_cst 0xfffb6d52440 4>
            align 32 symtab 4095 alias set -1 canonical type 0xfffb6fe8fb8>
        readonly used unsigned SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 30 col 21 size <integer_cst 0xfffb6d52420 32> unit size <integer_cst
0xfffb6d52440 4>
        align 32 context <function_decl 0xfffb6f7cb00 __base_dtor >
abstract_origin <parm_decl 0xfffb7024620 this>
        (mem/f/c/i:SI (plus:SI (reg/f:SI 113 sfp)
        (const_int 8 [0x8])) [0 this+0 S4 A32]) arg-type <pointer_type
0xfffb6fe8fb8>
        incoming-rtl (reg:SI 3 3 [ this ])>
    result <result_decl 0xfffb6d82680 D.2744 type <void_type 0xfffb6e40d20
void>
        ignored VOID file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 31 col 2
        align 8 context <function_decl 0xfffb6f7cb00 __base_dtor >>
    full-name "__cxxabiv1::__array_type_info::~__array_type_info()"
    pending-inline-info 0xfffb6d25b70
    (mem:SI (symbol_ref:SI ("_ZN10__cxxabiv117__array_type_infoD2Ev") [flags
0x1] <function_decl 0xfffb6f7cb00 __base_dtor >) [0 S4 A32]) chain
<function_decl 0xfffb6f7ca00 __comp_dtor >>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (3 preceding siblings ...)
  2011-06-17 15:54 ` bergner at gcc dot gnu.org
@ 2011-06-18  9:00 ` hubicka at ucw dot cz
  2011-06-19 23:19 ` amodra at gmail dot com
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at ucw dot cz @ 2011-06-18  9:00 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jan Hubicka <hubicka at ucw dot cz> 2011-06-18 09:00:22 UTC ---
Hi,
the problem is in cgraph_only_called_directl_p call within
call_abi_of_interest.
Getting the one can probably fix the problem by:
Index: rs6000.c
===================================================================
--- rs6000.c    (revision 175166)
+++ rs6000.c    (working copy)
@@ -7419,7 +7419,7 @@ call_ABI_of_interest (tree fndecl)

       /* Interesting functions that we are emitting in this object file.  */
       c_node = cgraph_get_node (fndecl);
-      return !cgraph_only_called_directly_p (c_node);
+      return !cgraph_only_called_directly_p (cgraph_function_or_thunk_node
(c_node, NULL));
     }
   return false;
 }

however I can't make sense of the logic here.  Doesn't it want to use 
c_node->local && c_node->can_change_signature
like other ABI change issues?  It makes it possible to use modified ABI cross
ltrans partitions.

Honza


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (4 preceding siblings ...)
  2011-06-18  9:00 ` hubicka at ucw dot cz
@ 2011-06-19 23:19 ` amodra at gmail dot com
  2011-06-20  1:04 ` wschmidt at gcc dot gnu.org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: amodra at gmail dot com @ 2011-06-19 23:19 UTC (permalink / raw)
  To: gcc-bugs

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

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amodra at gmail dot com

--- Comment #4 from Alan Modra <amodra at gmail dot com> 2011-06-19 23:18:08 UTC ---
Honza, the code here is called during expansion of functions.  If called at the
start of a function body, the function is attempting to answer the question:
Can this function be called from anywhere external to this object file?
If called for the expansion of a call then the question is:
Can this function call go to a function external to this object file?
Then, once those questions are answered, further code checks whether function
arguments and return value might be affected by the ABI in force.

We aren't at all interested in local functions, so I don't think c_node->local
and c_node->can_change_signature are relevant.  At least, I don't see that they
give any more information than cgraph_only_called_directly_p relevant to the
questions call_ABI_of_interest is trying to answer.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (5 preceding siblings ...)
  2011-06-19 23:19 ` amodra at gmail dot com
@ 2011-06-20  1:04 ` wschmidt at gcc dot gnu.org
  2011-06-23  2:19 ` amodra at gmail dot com
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2011-06-20  1:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from William J. Schmidt <wschmidt at gcc dot gnu.org> 2011-06-20 01:02:33 UTC ---
We've verified that one-line fix allows the bootstrap to complete successfully.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (6 preceding siblings ...)
  2011-06-20  1:04 ` wschmidt at gcc dot gnu.org
@ 2011-06-23  2:19 ` amodra at gmail dot com
  2011-06-23  2:22 ` amodra at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: amodra at gmail dot com @ 2011-06-23  2:19 UTC (permalink / raw)
  To: gcc-bugs

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

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |amodra at gmail dot com
                   |gnu.org                     |


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (7 preceding siblings ...)
  2011-06-23  2:19 ` amodra at gmail dot com
@ 2011-06-23  2:22 ` amodra at gcc dot gnu.org
  2011-06-23  2:23 ` amodra at gmail dot com
  2011-06-23 17:11 ` hubicka at ucw dot cz
  10 siblings, 0 replies; 12+ messages in thread
From: amodra at gcc dot gnu.org @ 2011-06-23  2:22 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Alan Modra <amodra at gcc dot gnu.org> 2011-06-23 02:21:03 UTC ---
Author: amodra
Date: Thu Jun 23 02:21:01 2011
New Revision: 175328

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175328
Log:
    PR bootstrap/49383
    * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
    invocation for 2011-06-09 changes.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (8 preceding siblings ...)
  2011-06-23  2:22 ` amodra at gcc dot gnu.org
@ 2011-06-23  2:23 ` amodra at gmail dot com
  2011-06-23 17:11 ` hubicka at ucw dot cz
  10 siblings, 0 replies; 12+ messages in thread
From: amodra at gmail dot com @ 2011-06-23  2:23 UTC (permalink / raw)
  To: gcc-bugs

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

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                URL|                            |http://gcc.gnu.org/ml/gcc-p
                   |                            |atches/2011-06/msg01735.htm
                   |                            |l
         Resolution|                            |FIXED

--- Comment #7 from Alan Modra <amodra at gmail dot com> 2011-06-23 02:22:31 UTC ---
Patch applied


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p
  2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
                   ` (9 preceding siblings ...)
  2011-06-23  2:23 ` amodra at gmail dot com
@ 2011-06-23 17:11 ` hubicka at ucw dot cz
  10 siblings, 0 replies; 12+ messages in thread
From: hubicka at ucw dot cz @ 2011-06-23 17:11 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> 2011-06-23 17:09:43 UTC ---
Hi,
sorry for late reply, I was not reading bugs ML very curefully on the GCC
gathering...
> Honza, the code here is called during expansion of functions.  If called at the
> start of a function body, the function is attempting to answer the question:
> Can this function be called from anywhere external to this object file?
> If called for the expansion of a call then the question is:
> Can this function call go to a function external to this object file?
> Then, once those questions are answered, further code checks whether function
> arguments and return value might be affected by the ABI in force.
> 
> We aren't at all interested in local functions, so I don't think c_node->local
> and c_node->can_change_signature are relevant.  At least, I don't see that they
> give any more information than cgraph_only_called_directly_p relevant to the
> questions call_ABI_of_interest is trying to answer.

Hmm, it seems that I managed to invent here quite confusing variants of same
test.
Ideas for improvements here are certainly welcome.

Function is local if
 a) it is not having address taken
 b) it is not exported from current unit
 c) it is locally defined
 d) it is not extern inline function.
 e) it is not static ctor or dtor 

Function is only called directly must match a,b,c and e. I.e. it can be extern
inline
and this fact is useful for i.e. ipa-cp cloning decisions.

This however makes no difference at backend compilation, since all offline
copies of extern inlines are eliminated by that time. So when not doing WHOPR
both predicates are equivalent at the time you are querying them.

Main difference is that locality is defined at WPA time, while
cgraph_only_called_directly_p is computed from cgraph.  This means that in
WHOPR
when you have function A only called directly from function B and functoin A
goes
into partition 1 while, function B into partition 2,
cgraph_only_called_directly_p
at the ltrans stage will return 0, while the function will still be local.

i386 backend use the locality test to alter the ABI and it can consequentely
use
the register calling conventions cross the ltrans boubdaries (relying that both
parallel ltrans compilation will make the same decisions to alter the ABI).
I am not sure what call_ABI_of_interest control, really, but I can't imagine
it being too different from i386 case.

Honza


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-06-23 17:11 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-12 14:45 [Bug bootstrap/49383] New: [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p mikpe at it dot uu.se
2011-06-12 20:00 ` [Bug bootstrap/49383] " rguenth at gcc dot gnu.org
2011-06-13 18:38 ` meissner at gcc dot gnu.org
2011-06-17 13:38 ` wschmidt at gcc dot gnu.org
2011-06-17 15:54 ` bergner at gcc dot gnu.org
2011-06-18  9:00 ` hubicka at ucw dot cz
2011-06-19 23:19 ` amodra at gmail dot com
2011-06-20  1:04 ` wschmidt at gcc dot gnu.org
2011-06-23  2:19 ` amodra at gmail dot com
2011-06-23  2:22 ` amodra at gcc dot gnu.org
2011-06-23  2:23 ` amodra at gmail dot com
2011-06-23 17:11 ` hubicka at ucw dot cz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).