[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-08-21 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000
Bug 67000 depends on bug 67227, which changed state.

Bug 67227 Summary: [6 regression] comparison failure in ada/par.o
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67227

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED


[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-08-14 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000

Alexandre Oliva  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Alexandre Oliva  ---
Fixed


[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-08-14 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000

--- Comment #5 from Alexandre Oliva  ---
Author: aoliva
Date: Fri Aug 14 18:51:50 2015
New Revision: 226901

URL: https://gcc.gnu.org/viewcvs?rev=226901&root=gcc&view=rev
Log:
[PR64164] Drop copyrename, use coalescible partition as base when optimizing.

for  gcc/ChangeLog

PR rtl-optimization/64164
PR bootstrap/66978
PR middle-end/66983
PR rtl-optimization/67000
PR middle-end/67034
PR middle-end/67035
* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
* tree-ssa-copyrename.c: Removed.
* opts.c (default_options_table): Drop -ftree-copyrename.  Add
-ftree-coalesce-vars.
* passes.def: Drop all occurrences of pass_rename_ssa_copies.
* common.opt (ftree-copyrename): Ignore.
(ftree-coalesce-inlined-vars): Likewise.
* doc/invoke.texi: Remove the ignored options above.
* gimple-expr.h (gimple_can_coalesce_p): Move declaration
* tree-ssa-coalesce.h: ... here.
* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
headers required by it.
* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
across variables when flag_tree_coalesce_vars.  Check register
use and promoted modes to allow coalescing.  Do not coalesce
maybe-byref parms with SSA_NAMEs of other variables, or
anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
* tree-ssa-live.c (struct tree_int_map_hasher): Move along
with its member functions to tree-ssa-coalesce.c.
(var_map_base_init): Likewise.  Renamed to
compute_samebase_partition_bases.
(partition_view_normal): Drop want_bases parameter.
(partition_view_bitmap): Likewise.
* tree-ssa-live.h: Adjust declarations.
* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
default defs at the entry point.
(dump_part_var_map): New.
(compute_optimized_partition_bases): New, called by...
(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
of compute_samebase_partition_bases.  Adjust.
* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
(ssa_default_def_partition): New.
(get_rtl_for_parm_ssa_default_def): New.
(align_local_variable, add_stack_var): Support anonymous SSA
names.
(defer_stack_allocation): Likewise.  Declare earlier.
(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
Do no record deferred-allocation marker in
SA.partition_to_pseudo.
(expand_stack_vars): Adjust check for the marker in it.
(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
redundant MEM attr setting.
(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
from...
(expand_one_stack_var): ... this.  New wrapper to check and
skip already expanded SSA partitions.
(record_alignment_for_reg_var): New, factored out of...
(expand_one_var): ... this.
(expand_one_ssa_partition): New.
(adjust_one_expanded_partition_var): New.
(expand_one_register_var): Check and skip already expanded SSA
partitions.
(expand_used_vars): Don't create DECLs for anonymous SSA
names.  Expand all SSA partitions, then adjust all SSA names.
(pass::execute): Replace the loops that set
SA.partition_to_pseudo from partition leaders and cleared
DECL_RTL for multi-location variables, and that which used to
rename vars and set attrs, with one that clears DECL_RTL and
checks that PARMs and RESULTs default_defs match DECL_RTL.
* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
* emit-rtl.c: Include stor-layout.h.
(set_reg_attrs_for_parm): Handle NULL decl.
(set_reg_attrs_for_decl_rtl): Take mode from expression if
it's not a DECL.
* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
rather than its possibly-NULL DECL.
* explow.c (promote_ssa_mode): New.
* explow.h (promote_ssa_mode): Declare.
* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
(read_complex_part): Export.
* expr.h (read_complex_part): Declare.
* cfgexpand.h (parm_maybe_byref_p): Declare.
* function.c: Include cfgexpand.h.
(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
(use_register_for_parm_decl): Wrapper for the above to
special-case the result_ptr.
(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
(split_complex_args): Take assign_parm_data_all argument.
Pass it to rtl_for_parm.  Set up rtl and conte

[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-07-30 Thread gary at intrepid dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000

--- Comment #4 from Gary Funck  ---
(In reply to Alexandre Oliva from comment #3)
> The problem initially reported in this bug is now fixed in the git branch
> aoliva/pr64164.  I'm not sure how to go about duplicating the one in comment
> 1, but, having fixed a number of additional split_complex issues since the
> patch that caused the problems was put in, I hope it's fixed too.  Gary,
> would you please detail the toplevel configure and build command lines to
> trigger it, or perhaps give the branch a try and confirm that it fixes the
> problem?  Thanks,

Alexandre,

The configuration command was along these lines:

configure CFLAGS='-g3 -O0' CXXFLAGS='-g3 -O0' TARGET_CFLAGS='-g3 -O0'
TARGET_CXXFLAGS='-g3 -O0' --enable-bootstrap=no --enable-checking=yes
--enable-languages=c,c++ --disable-build-format-warnings

PS: the issue did go away when merged with a later svn trunk version,
consistent with Richard's comment #2.


[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-07-30 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000

Alexandre Oliva  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-07-30
   Assignee|unassigned at gcc dot gnu.org  |aoliva at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Alexandre Oliva  ---
The problem initially reported in this bug is now fixed in the git branch
aoliva/pr64164.  I'm not sure how to go about duplicating the one in comment 1,
but, having fixed a number of additional split_complex issues since the patch
that caused the problems was put in, I hope it's fixed too.  Gary, would you
please detail the toplevel configure and build command lines to trigger it, or
perhaps give the branch a try and confirm that it fixes the problem?  Thanks,


[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-07-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

--- Comment #2 from Richard Biener  ---
I believe the patch was reverted again.


[Bug rtl-optimization/67000] [6 Regression] ICE in split_complex_args, at function.c:2325 on ppc64le

2015-07-26 Thread gary at intrepid dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67000

--- Comment #1 from Gary Funck  ---
We're seeing this as a bootstrap failure in libitm, built with checks enabled
and both host and target compilation flags set to -O0.  We do not see the ICE
when compiled at -O3 and --enable-checking=release.  This is based on GCC trunk
version 226170.

make[2]: Entering directory
`/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libitm'
/bin/sh ./libtool --tag=CXX   --mode=compile
/home/gfunck/gupc-dev/bld/packed-dbg/./gcc/xg++
-B/home/gfunck/gupc-dev/bld/packed-dbg/./gcc/ -nostdinc++ -nostdinc++
-I/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu
-I/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/include
-I/home/gfunck/gupc-dev/src/gupc/libstdc++-v3/libsupc++
-I/home/gfunck/gupc-dev/src/gupc/libstdc++-v3/include/backward
-I/home/gfunck/gupc-dev/src/gupc/libstdc++-v3/testsuite/util
-L/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/src
-L/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/bin/
-B/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/lib/
-isystem
/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/include
-isystem
/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/sys-include   
-DHAVE_CONFIG_H -I. -I/home/gfunck/gupc-dev/src/gupc/libitm 
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/linux/powerpc
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/linux
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/powerpc
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/posix
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/generic
-I/home/gfunck/gupc-dev/src/gupc/libitm  -ftls-model=initial-exec -mhtm -Wall
-Werror  -Wc,-pthread -std=gnu++0x -funwind-tables -fno-exceptions -fno-rtti
-fabi-version=4 -O2 -g3 -O0 -D_GNU_SOURCE -MT barrier.lo -MD -MP -MF
.deps/barrier.Tpo -c -o barrier.lo
/home/gfunck/gupc-dev/src/gupc/libitm/barrier.cc
libtool: compile:  /home/gfunck/gupc-dev/bld/packed-dbg/./gcc/xg++
-B/home/gfunck/gupc-dev/bld/packed-dbg/./gcc/ -nostdinc++ -nostdinc++
-I/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu
-I/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/include
-I/home/gfunck/gupc-dev/src/gupc/libstdc++-v3/libsupc++
-I/home/gfunck/gupc-dev/src/gupc/libstdc++-v3/include/backward
-I/home/gfunck/gupc-dev/src/gupc/libstdc++-v3/testsuite/util
-L/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/src
-L/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/gfunck/gupc-dev/bld/packed-dbg/powerpc64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/bin/
-B/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/lib/
-isystem
/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/include
-isystem
/home/gfunck/gupc-dev/rls/packed-dbg/powerpc64-unknown-linux-gnu/sys-include
-DHAVE_CONFIG_H -I. -I/home/gfunck/gupc-dev/src/gupc/libitm
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/linux/powerpc
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/linux
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/powerpc
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/posix
-I/home/gfunck/gupc-dev/src/gupc/libitm/config/generic
-I/home/gfunck/gupc-dev/src/gupc/libitm -ftls-model=initial-exec -mhtm -Wall
-pthread -Werror -std=gnu++0x -funwind-tables -fno-exceptions -fno-rtti
-fabi-version=4 -O2 -g3 -O0 -D_GNU_SOURCE -MT barrier.lo -MD -MP -MF
.deps/barrier.Tpo -c /home/gfunck/gupc-dev/src/gupc/libitm/barrier.cc  -fPIC
-DPIC -o .libs/barrier.o
In file included from /home/gfunck/gupc-dev/src/gupc/libitm/libitm_i.h:87:0,
 from /home/gfunck/gupc-dev/src/gupc/libitm/barrier.cc:25:
/home/gfunck/gupc-dev/src/gupc/libitm/barrier.cc: In function ‘void
_ITM_WCF(_ITM_TYPE_CF*, _ITM_TYPE_CF)’:
/home/gfunck/gupc-dev/src/gupc/libitm/dispatch.h:129:20: internal compiler
error: in split_complex_args, at function.c:2336
   void ITM_REGPARM _ITM_##LSMOD##T (_ITM_TYPE_##T *ptr, _ITM_TYPE_##T val) \
^
/home/gfunck/gupc-dev/src/gupc/libitm/dispatch.h:141:3: note: in expansion of
macro ‘ITM_WRITE’
   ITM_WRITE(T, W, TARGET, M2)   \
   ^
/home/gfunck/gupc-dev/src/gupc/libitm/dispatch.h:187:3: note: in expansion of
macro ‘CREATE_DISPATCH_FUNCTIONS_T’
   CREATE_DISPATCH_FUNCTIONS_T (CF, TARGET, M2) \
   ^
/home/gfunck/gupc-dev/src/gupc/libitm/barrier.cc:43:1: note: in expansion of
macro ‘CREATE_DISPATCH_FUNCTIONS’
 CREATE_DISPATCH_FUNCTIONS(GTM::abi_disp()->, )
 ^
0x10a2e723 split_complex_args
/home/gfunck/gupc