[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-04-04 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #12 from Jeffrey A. Law law at redhat dot com ---
Dave, 

The updated patch looks good.  Please post it to gcc-patches for archival
purposes with a note that I approved it in BZ before installing the patch.

Thanks,
jeff


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-04-04 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #13 from John David Anglin danglin at gcc dot gnu.org ---
Author: danglin
Date: Fri Apr  4 22:25:51 2014
New Revision: 209134

URL: http://gcc.gnu.org/viewcvs?rev=209134root=gccview=rev
Log:
PR rtl-optimization/60155
* gcse.c (record_set_data): New function.
(single_set_gcse): New function.
(gcse_emit_move_after): Use single_set_gcse instead of single_set.
(hoist_code): Likewise.
(get_pressure_class_and_nregs): Likewise.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-04-04 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #14 from John David Anglin danglin at gcc dot gnu.org ---
Fixed on trunk.


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-03-09 Thread dave.anglin at bell dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #11 from dave.anglin at bell dot net ---
On 3-Mar-14, at 8:01 PM, danglin at gcc dot gnu.org wrote:

 Bah, doesn't fix bug:

Attached new patch which seems to fix bug.  Testing.

--
John David Anglindave.ang...@bell.net


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-03-03 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #10 from John David Anglin danglin at gcc dot gnu.org ---
Bah, doesn't fix bug:

dave@mx3210:~/gnu/gcc/objdir$ gcc/xgcc -Bgcc/ -g -O2 -Wall -Wpointer-arith
-Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess
-Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2
-ftrapv -fno-builtin-memset -D_FORTIFY_SOURCE=2 -g -O2 -Wformat
-Werror=format-security -fpreprocessed ../ssh-keygen.i
../ssh-keygen.c: In function ‘do_fingerprint’:
../ssh-keygen.c:887:1: internal compiler error: in hoist_code, at gcse.c:3378
0x5bf083 hoist_code
../../gcc/gcc/gcse.c:3378
0x5c00bf one_code_hoisting_pass
../../gcc/gcc/gcse.c:3651
0x5c15f3 execute_rtl_hoist
../../gcc/gcc/gcse.c:4171
0x5c17ef execute
../../gcc/gcc/gcse.c:4244

[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-03-02 Thread dave.anglin at bell dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #9 from dave.anglin at bell dot net ---
Something like this?

--
John David Anglindave.ang...@bell.net


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-25 Thread dave.anglin at bell dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #7 from dave.anglin at bell dot net ---
On 25-Feb-14, at 1:36 AM, law at redhat dot com wrote:

 It really feels like this is papering over the real problem, namely  
 that
 get_pressure_class_and_nregs simply doesn't handle things that are  
 passed
 through hash_scan_set, in particular cases where there's a single  
 set inside a
 PARALLEL.

Could we use something like single_set_for_csa, but also check for  
TRAP_IF?

Dave
--
John David Anglindave.ang...@bell.net


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-25 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #8 from Jeffrey A. Law law at redhat dot com ---
Rather than special case TRAP_IF, I think we just need to walk through the
pattern.  If we find no assignments or  1 assignment, then we assert.

note_stores, or walking similar to hash_scan_insn where we keep track of
whether or not we've seen a set should be sufficient, I'd think.


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-24 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #6 from Jeffrey A. Law law at redhat dot com ---
Well, given that gcse merely moves evaluations to other blocks where evaluation
of the expression is always anticipated, there's no inherent reason why we
can't gcse something that might trap.

It really feels like this is papering over the real problem, namely that
get_pressure_class_and_nregs simply doesn't handle things that are passed
through hash_scan_set, in particular cases where there's a single set inside a
PARALLEL.


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-19 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mikulas at artax dot 
karlin.mff.cu
   ||ni.cz

--- Comment #5 from John David Anglin danglin at gcc dot gnu.org ---
*** Bug 54737 has been marked as a duplicate of this bug. ***


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-14 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #4 from John David Anglin danglin at gcc dot gnu.org ---
Created attachment 32140
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32140action=edit
Patch

The attach patch fixes the ICE but maybe we should always check
if the INSN might trap.  Also, what about floating point exceptions?


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #1 from John David Anglin danglin at gcc dot gnu.org ---
With 4.6 and 4.7 compilers, this appears as:

gcc-4.6 -g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare
-Wformat-security -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing
-D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -D_FORTIFY_SOURCE=2 -g -O2
-Wformat -Werror=format-security -DLOGIN_PROGRAM=\/bin/login\
-DLOGIN_NO_ENDOPT -DSSH_EXTRAVERSION=\Debian-2\  -I. -I.. 
-I/usr/include/editline -DSSHDIR=\/etc/ssh\
-D_PATH_SSH_PROGRAM=\/usr/bin/ssh\
-D_PATH_SSH_ASKPASS_DEFAULT=\/usr/bin/ssh-askpass\
-D_PATH_SFTP_SERVER=\/usr/lib/openssh/sftp-server\
-D_PATH_SSH_KEY_SIGN=\/usr/lib/openssh/ssh-keysign\
-D_PATH_SSH_PKCS11_HELPER=\/usr/lib/openssh/ssh-pkcs11-helper\
-D_PATH_SSH_PIDDIR=\/var/run\ -D_PATH_PRIVSEP_CHROOT_DIR=\/var/run/sshd\
-DHAVE_CONFIG_H -c ../ssh-keygen.c
../ssh-keygen.c: In function ‘do_fingerprint’:
../ssh-keygen.c:887:1: internal compiler error: in hoist_code, at gcse.c:4631

[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #2 from John David Anglin danglin at gcc dot gnu.org ---
Breakpoint 1, get_pressure_class_and_nregs (insn=0xfab51d98, nregs=0xfaf028c0)
at ../../gcc/gcc/gcse.c:3459
3459  gcc_assert (set != NULL_RTX);
(gdb) p debug_rtx (insn)
(insn 212 211 213 18 (parallel [
(set (reg/v:SI 114 [ num ])
(plus:SI (reg/v:SI 114 [ num ])
(const_int 1 [0x1])))
(trap_if (ne (plus:DI (sign_extend:DI (reg/v:SI 114 [ num ]))
(sign_extend:DI (const_int 1 [0x1])))
(sign_extend:DI (plus:SI (reg/v:SI 114 [ num ])
(const_int 1 [0x1]
(const_int 0 [0]))
]) ../ssh-keygen.c:830 113 {addvsi3}
 (nil))
$1 = void


[Bug rtl-optimization/60155] ICE: in get_pressure_class_and_nregs at gcse.c:3438

2014-02-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60155

--- Comment #3 from John David Anglin danglin at gcc dot gnu.org ---
Function compiles without -ftrapv.