public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/30634]  New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
@ 2007-01-30  1:12 danglin at gcc dot gnu dot org
  2007-01-30  1:16 ` [Bug target/30634] " danglin at gcc dot gnu dot org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-01-30  1:12 UTC (permalink / raw)
  To: gcc-bugs

Executing on host: /home/gnu/gcc/objdir/gcc/testsuite/gfortran/../../gfortran
-B
/home/gnu/gcc/objdir/gcc/testsuite/gfortran/../../
/xxx/gnu/gcc/gcc/gcc/testsuit
e/gfortran.fortran-torture/execute/intrinsic_set_exponent.f90  -w  -O1  
-L/home
/gnu/gcc/objdir/hppa64-hp-hpux11.00/./libgfortran/.libs
-L/home/gnu/gcc/objdir/h
ppa64-hp-hpux11.00/./libgfortran/.libs
-L/home/gnu/gcc/objdir/hppa64-hp-hpux11.0
0/./libiberty  -lm   -o
/xxx/gnu/gcc/objdir/gcc/testsuite/gfortran/intrinsic_set
_exponent.x    (timeout = 300)
/xxx/gnu/gcc/gcc/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_ex
ponent.f90: In function 'test_real8':
/xxx/gnu/gcc/gcc/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_ex
ponent.f90:86: error: unrecognizable insn:
(insn 239 84 87 11 (set (reg:DF 32 %fr4 [ equiv.1 ])
        (mem/u/c/i:DF (symbol_ref/u:DI ("*L$C0007") [flags 0x2]) [0 S8 A64]))
-1
 (nil)
    (nil))
/xxx/gnu/gcc/gcc/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_ex
ponent.f90:86: internal compiler error: in extract_insn, at recog.c:2077
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
compiler exited with status 1
output is:
/xxx/gnu/gcc/gcc/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_ex
ponent.f90: In function 'test_real8':
/xxx/gnu/gcc/gcc/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_ex
ponent.f90:86: error: unrecognizable insn:
(insn 239 84 87 11 (set (reg:DF 32 %fr4 [ equiv.1 ])
        (mem/u/c/i:DF (symbol_ref/u:DI ("*L$C0007") [flags 0x2]) [0 S8 A64]))
-1
 (nil)
    (nil))
/xxx/gnu/gcc/gcc/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_ex
ponent.f90:86: internal compiler error: in extract_insn, at recog.c:2077
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90,  -O1 
(intern
al compiler error)


-- 
           Summary: FAIL: gfortran.fortran-
                    torture/execute/intrinsic_set_exponent.f90
           Product: gcc
           Version: 4.1.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
@ 2007-01-30  1:16 ` danglin at gcc dot gnu dot org
  2007-01-30  1:20 ` danglin at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-01-30  1:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from danglin at gcc dot gnu dot org  2007-01-30 01:16 -------
Maybe I'll finally get the details right:

Target: hppa64-hp-hpux11.00
Configured with: ../gcc/configure --with-gnu-as --with-as=/opt/gnu64/bin/as
--with-ld=/usr/ccs/bin/ld --enable-shared --with-local-prefix=/opt/gnu64
--prefix=/opt/gnu64/gcc/gcc-4.2.0 --host=hppa64-hp-hpux11.00 --disable-nls
--with-gmp=/opt/gnu64/gcc/gcc-4.2.0
Thread model: posix
gcc version 4.2.0 20070127 (prerelease)


-- 

danglin at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|4.1.2                       |4.2.0


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
  2007-01-30  1:16 ` [Bug target/30634] " danglin at gcc dot gnu dot org
@ 2007-01-30  1:20 ` danglin at gcc dot gnu dot org
  2007-01-30  2:53 ` kargl at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-01-30  1:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from danglin at gcc dot gnu dot org  2007-01-30 01:20 -------
Test didn't fail at revision 121050.


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
  2007-01-30  1:16 ` [Bug target/30634] " danglin at gcc dot gnu dot org
  2007-01-30  1:20 ` danglin at gcc dot gnu dot org
@ 2007-01-30  2:53 ` kargl at gcc dot gnu dot org
  2007-01-30 14:51 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: kargl at gcc dot gnu dot org @ 2007-01-30  2:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from kargl at gcc dot gnu dot org  2007-01-30 02:53 -------
A scan of libgfortran/ChangeLog and gcc/fortran/ChangeLog does not
reveal anything that would cause this failure.  Can you identify
the exact commit that causes the problem?  Perhaps, something got
mismerged from trunk.


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2007-01-30  2:53 ` kargl at gcc dot gnu dot org
@ 2007-01-30 14:51 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-04  1:07 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-01-30 14:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dave at hiauly1 dot hia dot nrc dot ca  2007-01-30 14:51 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> ------- Comment #3 from kargl at gcc dot gnu dot org  2007-01-30 02:53 -------
> A scan of libgfortran/ChangeLog and gcc/fortran/ChangeLog does not
> reveal anything that would cause this failure.  Can you identify
> the exact commit that causes the problem?  Perhaps, something got
> mismerged from trunk.

The problem occurs in reload.  At the moment, I suspect the
following change:

2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>

        PR tree-optimization/29516
        * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
        most_expensive_mult_to_index, addr_to_parts,
        create_mem_ref, maybe_fold_tmr): Make the type of
        fields of TARGET_MEM_REF sizetype.
        (move_fixed_address_to_symbol, move_pointer_to_base,
        aff_combination_remove_elt): New functions.
        * tree.def (TARGET_MEM_REF): Add comment on types of
        the operands.
        * gcc.dg/tree-ssa/loop-20.c: New test.

Dave


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2007-01-30 14:51 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-04  1:07 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-04  1:41 ` pinskia at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-02-04  1:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-04 01:07 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> ------- Comment #3 from kargl at gcc dot gnu dot org  2007-01-30 02:53 -------
> A scan of libgfortran/ChangeLog and gcc/fortran/ChangeLog does not
> reveal anything that would cause this failure.  Can you identify
> the exact commit that causes the problem?  Perhaps, something got
> mismerged from trunk.

The failure was introduced in revision 121076:

2007-01-22 Andrew Pinski  <pinskia@gmail.com>

        PR fortran/29951
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Change to
        call memcpy instead of creating a VIEW_CONVERT_EXRP.

        PR fortran/29410
        * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer):
        Change over to create VIEW_CONVERT_EXPR instead of using an
        ADDR_EXPR, a cast and then an indirect reference.

Probably, it's the latter fix.

Dave


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2007-02-04  1:07 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-04  1:41 ` pinskia at gcc dot gnu dot org
  2007-02-04  1:55 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-02-04  1:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pinskia at gcc dot gnu dot org  2007-02-04 01:41 -------
> The failure was introduced in revision 121076:

My patch just exposed a latent bug.  Does this fail on the trunk also the same
way?  If not can you trace to see where the difference in the IR between the
4.2 branch and trunk show up?


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2007-02-04  1:41 ` pinskia at gcc dot gnu dot org
@ 2007-02-04  1:55 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-04 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-02-04  1:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-04 01:55 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> My patch just exposed a latent bug.  Does this fail on the trunk also the same
> way?  If not can you trace to see where the difference in the IR between the
> 4.2 branch and trunk show up?

It's not failing on the trunk.  I have a build underway on the trunk
and will attempt to see if I can find the difference in IR.

Dave


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2007-02-04  1:55 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-04 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-04 17:13 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-02-04 17:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-04 17:06 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> My patch just exposed a latent bug.  Does this fail on the trunk also the same
> way?  If not can you trace to see where the difference in the IR between the
> 4.2 branch and trunk show up?

This is the rtl after expansion that's a problem:

(insn 84 82 87 14 (set (reg:DI 76 [ equiv.1 ])
        (const_int 4503599627370495 [0xfffffffffffff])) -1 (nil)
    (nil))

(insn 87 84 88 14 (set (reg:DF 32 %fr4)
        (subreg:DF (reg:DI 76 [ equiv.1 ]) 0)) -1 (nil)
   (nil))

After greg, we have:

(note 84 82 239 11 NOTE_INSN_DELETED)

(insn 239 84 87 11 (set (reg:DF 32 %fr4 [ equiv.1 ])
        (mem/u/c/i:DF (symbol_ref/u:DI ("*L$C0007") [flags 0x2]) [0 S8 A64]))
-1 (nil)
    (nil))

(insn 87 239 88 11 (set (reg:DF 32 %fr4 [ equiv.1 ])
        (reg:DF 32 %fr4 [ equiv.1 ])) 122 {*pa.md:4332} (insn_list:REG_DEP_TRUE
84 (nil))
    (expr_list:REG_DEAD (reg:DI 76 [ equiv.1 ])
        (expr_list:REG_EQUAL (const_double:DF
2.22507385850720088902458687608585988765042311224096e-308
[0x0.fffffffffffffp-1022])
            (nil))))

This is what 4.1.1 generated:

(insn 85 83 86 12 (set (reg:DI 93)
        (const_int 4503599627370495 [0xfffffffffffff])) -1 (nil)
    (nil))

(insn 86 85 88 12 (set (mem/s/j/c:DI (reg/f:DI 62 virtual-stack-vars) [0
equiv.1.i+0 S8 A64])
        (reg:DI 93)) -1 (nil)
    (nil))

(insn 88 86 91 12 (set (reg/f:DI 74 [ D.611 ])
        (reg/f:DI 62 virtual-stack-vars)) -1 (nil)
    (nil))

(insn 91 88 92 12 (set (reg:DF 32 %fr4)
        (mem:DF (reg/f:DI 74 [ D.611 ]) [0 S8 A64])) -1 (nil)
    (nil))


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2007-02-04 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-04 17:13 ` pinskia at gcc dot gnu dot org
  2007-02-04 17:37 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-02-04 17:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pinskia at gcc dot gnu dot org  2007-02-04 17:13 -------
Can you try the following C code?

double f(void)
{
  long long t = -1;
  double t1;
  __builtin_memcpy(&t1, &t, sizeof(long long));
  return t;
}

If the above is broken also, then my patch just exposed the above latent bug
really.

Also I don't see anything wrong with the expand's RTL.  The difference between
4.1.1 and 4.2's RTL is that we don't go through memory for the case of memcpy
any more.


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2007-02-04 17:13 ` pinskia at gcc dot gnu dot org
@ 2007-02-04 17:37 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-04 19:55 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-02-04 17:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-04 17:37 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> Can you try the following C code?
> 
> double f(void)
> {
>   long long t = -1;
>   double t1;
>   __builtin_memcpy(&t1, &t, sizeof(long long));
>   return t;
> }

Didn't cause a problem.  The constant was pushed to memory:

(insn 10 9 11 (set (reg:DI 70)
        (plus:DI (reg:DI 27 %r27)
            (high:DI (symbol_ref/u:DI ("*L$C0000") [flags 0x2])))) -1 (nil)
    (nil))

(insn 11 10 12 (set (reg/f:DI 69)
        (mem/u/c:DI (lo_sum:DI (reg:DI 70)
                (unspec:DI [
                        (symbol_ref/u:DI ("*L$C0000") [flags 0x2])
                    ] 2)) [0 S8 A64])) -1 (nil)
    (expr_list:REG_EQUAL (symbol_ref/u:DI ("*L$C0000") [flags 0x2])
        (nil)))

(insn 12 11 13 (set (reg:DF 66 [ <result> ])
        (mem/u/c/i:DF (reg/f:DI 69) [3 S8 A64])) -1 (nil)
    (expr_list:REG_EQUAL (const_double:DF -1.0e+0 [-0x0.8p+1])
        (nil)))

Dave


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2007-02-04 17:37 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-04 19:55 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-04 23:31 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-02-04 19:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-04 19:55 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> > Can you try the following C code?
> > 
> > double f(void)
> > {
> >   long long t = -1;
> >   double t1;
> >   __builtin_memcpy(&t1, &t, sizeof(long long));
> >   return t;
> > }
> 
> Didn't cause a problem.  The constant was pushed to memory:

I realized that we should be returning t1 in the above.  Also noticed
that the constant that's a problem isn't -1, it's 0xffffffffffff.  So
I tweaked the program to see if it made a difference.  It didn't change
the generated code for function f.

However, I noticed that the above constant was not output correctly.
It was output as a pair of 32-bit words and the high and low parts were
reversed:

        .section        .rodata
        .align 8
L$C0000:
        .word   -1
        .word   1048575

Don't know why TARGET_ASM_ALIGNED_DI_OP wasn't used here.

# cat yy.c
#include <stdio.h>
double f(void)
{
  long long t = 0x000fffffffffffff;
  double t1;
  __builtin_memcpy(&t1, &t, sizeof(long long));
  return t1;
}
int main()
{
  union
    {
      long long ll;
      double d;
    } u;

  u.d = f ();
  printf ("ll = 0x%llx\n", u.ll);
  return 0;
}

# ../../xgcc -B../../ -O2 -o yy yy.c
# ./yy
ll = 0xffffffff000fffff
# ../../xgcc -B../../ -O0 -o yy yy.c
# ./yy
ll = 0xfffffffffffff
# ../../xgcc -B../../ -v
Reading specs from ../../specs
Target: hppa64-hp-hpux11.00
Configured with: ../gcc/configure --with-gnu-as --with-as=/opt/gnu64/bin/as
--with-ld=/usr/ccs/bin/ld --enable-shared --with-local-prefix=/opt/gnu64
--prefix=/opt/gnu64/gcc/gcc-4.2.0 --host=hppa64-hp-hpux11.00 --disable-nls
--with-gmp=/opt/gnu64/gcc/gcc-4.2.0
Thread model: posix
gcc version 4.2.0 20070123 (prerelease)

Dave


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2007-02-04 19:55 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-04 23:31 ` dave at hiauly1 dot hia dot nrc dot ca
  2007-02-10 19:51 ` danglin at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-02-04 23:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-04 23:31 -------
Subject: Re:  FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90

> Also I don't see anything wrong with the expand's RTL.  The difference between
> 4.1.1 and 4.2's RTL is that we don't go through memory for the case of memcpy
> any more.

Well, it circumvents the CONST_DOUBLE handling used on hppa64.
The only way to load a CONST_DOUBLE to the floating registers is from
memory.  For that reason, LEGITIMATE_CONSTANT_P rejects CONST_DOUBLEs.
We always need a general register to load CONST_DOUBLEs from memory.

The ICE is caused in this case by reload trying to load a CONST_DOUBLE
directly to fr4.  We don't have a general register available for this
operation and we can't create a new pseudo at this point.  So, we are
dead in the water.

I'm trying a change to the movdf and movdi expanders to FAIL in such
situations.  I also noticed that we need to legitimize the address of
the MEM created for the CONST_DOUBLE.  I suspect that reload won't be
able to handle failure.

If this scheme doesn't work, then the only solution that I can see is
to reserve a general register for emergency use during instruction
generation.

Dave


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2007-02-04 23:31 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-02-10 19:51 ` danglin at gcc dot gnu dot org
  2007-02-10 19:54 ` danglin at gcc dot gnu dot org
  2007-02-10 20:24 ` danglin at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-02-10 19:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from danglin at gcc dot gnu dot org  2007-02-10 19:51 -------
Subject: Bug 30634

Author: danglin
Date: Sat Feb 10 19:51:40 2007
New Revision: 121802

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=121802
Log:
        PR target/30634
        * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
        CONST_DOUBLE and operand 0 is a hard register.
        (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
        memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
        is a hard floating-point register.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/pa/pa.md


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2007-02-10 19:51 ` danglin at gcc dot gnu dot org
@ 2007-02-10 19:54 ` danglin at gcc dot gnu dot org
  2007-02-10 20:24 ` danglin at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-02-10 19:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from danglin at gcc dot gnu dot org  2007-02-10 19:54 -------
Subject: Bug 30634

Author: danglin
Date: Sat Feb 10 19:54:33 2007
New Revision: 121803

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=121803
Log:
        PR target/30634
        * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
        CONST_DOUBLE and operand 0 is a hard register.
        (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
        memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
        is a hard floating-point register.


Modified:
    branches/gcc-4_2-branch/gcc/ChangeLog
    branches/gcc-4_2-branch/gcc/config/pa/pa.md


-- 


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


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

* [Bug target/30634] FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
  2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2007-02-10 19:54 ` danglin at gcc dot gnu dot org
@ 2007-02-10 20:24 ` danglin at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-02-10 20:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from danglin at gcc dot gnu dot org  2007-02-10 20:24 -------
Fixed by patch on 4.2 and trunk.


-- 

danglin at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED


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


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

end of thread, other threads:[~2007-02-10 20:24 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-30  1:12 [Bug target/30634] New: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90 danglin at gcc dot gnu dot org
2007-01-30  1:16 ` [Bug target/30634] " danglin at gcc dot gnu dot org
2007-01-30  1:20 ` danglin at gcc dot gnu dot org
2007-01-30  2:53 ` kargl at gcc dot gnu dot org
2007-01-30 14:51 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-04  1:07 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-04  1:41 ` pinskia at gcc dot gnu dot org
2007-02-04  1:55 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-04 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-04 17:13 ` pinskia at gcc dot gnu dot org
2007-02-04 17:37 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-04 19:55 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-04 23:31 ` dave at hiauly1 dot hia dot nrc dot ca
2007-02-10 19:51 ` danglin at gcc dot gnu dot org
2007-02-10 19:54 ` danglin at gcc dot gnu dot org
2007-02-10 20:24 ` danglin at gcc dot gnu dot org

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).