September 23, 2006
Anders F Björklund schrieb am 2006-09-21:
> Thomas Kuehne wrote:
>
>> I had to disable some code in the following files due to "internal compiler error: in copy_to_mode_reg, at explow.c:691" "internal compiler error: in emit_move_insn, at expr.c:2830" "internal compiler error: in expand_expr_real, at expr.c:6525"
>> 
>> d/phobos/std/file.d
>> d/phobos/std/string.d
>> d/phobos/std/regexp.d
>> d/phobos/std/format.d
>> d/phobos/std/zip.d
>
> Did you have a patch for those ? Think I saw the same on PPC64, for the std.string "abbrev" but didn't encounter the others...
>
>
> I just did a version() and a assert(0), to disable ICE sections:
>
> version (PPC64)
> {
> assert(0); // "internal compiler error: in copy_to_mode_reg, at
> explow.c:581"
> }
> else
>
> Think you could do the same workaround for the five issues above ? (depending on whether it was in a commonly used function or not...)

std.string and std.regexp would be empty shells.

internal compiler error: in copy_to_mode_reg, at explow.c:691

# void foo(){
#	char[] x = new char[2];
#	size_t i = 1;
#
#	char c = x[i];
#	x[i+1] = c;
# }


b.d:5: error: unrecognizable insn:
(insn 19 18 22 0 (parallel [
            (set (reg:SI 58)
                (plus:DI (reg:DI 61)
                    (const_int -1 [0xffffffffffffffff])))
            (clobber (reg:CC 17 flags))
        ]) -1 (nil)
    (expr_list:REG_DEAD (reg:DI 61)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))
b.d:5: internal compiler error: in extract_insn, at recog.c:2083

# void bar(){
# 	char* p;
# 	size_t len = std.string.strlen(p);
# }

Thomas


September 23, 2006
The attachment contains DStress light[1] results for dgcc-r19 with Gregor's patch applied.

gcc:
3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) (gdc 0.19, using dmd
0.166)

configure:
 --enable-languages=c,d
 --enable-checking=misc,tree,gc,rtl,rtlflag,fold,gcac


Thomas


[1] cc1d -g -c test_case.d 2>&1 | grep "internal compiler error"


September 25, 2006
FYI, I am planning on getting back to this (getting it stable and proper), but am swamped right now with other things (some D related :P )

 - Gregor Richards
September 25, 2006
Gregor Richards wrote:

> FYI, I am planning on getting back to this (getting it stable and proper), but am swamped right now with other things (some D related :P )

I am revising the GDC spec so that it works for PPC64 too, based on
the GCC spec for Fedora Core 4 (it needs both of PPC and PPC64, just
like it needs both of SPARC and SPARC64 - for Intel those are separate
in two versions: "i386" and "x86_64", but not so on the RISC chips...)

So it does compile, but needs some love before it can be tested.

--anders

PS. The regular FC5 GCC uses GCC 4.1.x with some "neat features",
    so it's better to use the FC4 GCC which is 4.0.x and plainer.
1 2
Next ›   Last »