[M3devel] another Snow Leopard compiler crash

Tony Hosking hosking at cs.purdue.edu
Mon Dec 27 18:21:12 CET 2010


Which version of the backend are you using?  Release?  There has been so much churn in the trunk lately that I have lost track of things.



Antony Hosking | Associate Professor | Computer Science | Purdue University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484




On Dec 27, 2010, at 5:16 AM, Mika Nystrom wrote:

> 
> ===> calarm/regress/ximport
> --- building in I386_DARWIN ---
> 
> new source -> compiling Main.m3
> "../src/Main.m3", line 258: warning: potentially unhandled exception: Main.ParamErr
> "../src/Main.m3", line 260: warning: potentially unhandled exception: Main.ParamErr
> "../src/Main.m3", line 261: warning: potentially unhandled exception: Main.ParamErr
> 3 warnings encountered
> ../src/Main.m3: In function 'Main__DumpMatching__DumpOne':
> ../src/Main.m3:225:0: error: unable to find a register to spill in class 'CREG'
> ../src/Main.m3:225:0: error: this is the insn:
> (insn 5 4 6 2 ../src/Main.m3:204 (parallel [
>            (set (reg:SI 0 ax [130])
>                (const_int 0 [0x0]))
>            (set (reg:SI 1 dx [128])
>                (plus:SI (ashift:SI (reg:SI 0 ax [130])
>                        (const_int 2 [0x2]))
>                    (reg:SI 1 dx [128])))
>            (set (reg:SI 4 si [129])
>                (plus:SI (ashift:SI (reg:SI 0 ax [130])
>                        (const_int 2 [0x2]))
>                    (reg:SI 4 si [129])))
>            (set (mem/s/c:BLK (reg:SI 1 dx [128]) [0 trade+0 S24 A64])
>                (mem/s/c:BLK (reg:SI 4 si [129]) [0 trade+0 S24 A32]))
>            (use (reg:SI 0 ax [130]))
>        ]) 838 {*rep_movsi} (expr_list:REG_UNUSED (reg:SI 0 ax [130])
>        (expr_list:REG_UNUSED (reg:SI 4 si [129])
>            (expr_list:REG_UNUSED (reg:SI 1 dx [128])
>                (nil)))))
> ../src/Main.m3:225:0: internal compiler error: in spill_failure, at reload1.c:2163
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
>  m3_backend => 4
> m3cc (aka cm3cg) failed compiling: Main.mc
> compilation failed => not building program "ximport"
> Fatal Error: package build failed
> 
> Here is the code:
> 
> PROCEDURE DumpMatching(tr : TickerRef;
>                       trades, bids, asks : HFDataSSeq.T) RAISES { Wr.Failure } =
> 
>  PROCEDURE DumpOne(trade, bid, ask : HFData.S) RAISES { Wr.Failure } =
>    BEGIN
>      <* ASSERT trade.time = bid.time AND bid.time = ask.time *>
>      Wr.PutText(wr, Fmt.LongReal(trade.time));
> 
>      Wr.PutChar(wr, ' ');
>      Wr.PutText(wr, Fmt.LongReal(aFactor*trade.pv.price));
>      Wr.PutChar(wr, ' ');
>      Wr.PutText(wr, Fmt.LongReal(FLOAT(trade.pv.volume,LONGREAL)/aFactor));
> 
>      Wr.PutChar(wr, ' ');
>      Wr.PutText(wr, Fmt.LongReal(aFactor*bid.pv.price));
>      Wr.PutChar(wr, ' ');
>      Wr.PutText(wr, Fmt.LongReal(FLOAT(bid.pv.volume,LONGREAL)/aFactor));
> 
>      Wr.PutChar(wr, ' ');
>      Wr.PutText(wr, Fmt.LongReal(aFactor*ask.pv.price));
>      Wr.PutChar(wr, ' ');
>      Wr.PutText(wr, Fmt.LongReal(FLOAT(ask.pv.volume,LONGREAL)/aFactor));
> 
>      Wr.PutChar(wr, '\n')
>    END DumpOne;
> 
>  CONST
>    NoTime = FIRST(Time.T);
>  VAR
>    wr := FileWr.Open(odir & "/" & tr.ticker);
>    tp, bp, ap := 0;
>    ttime, btime, atime := NoTime;
>    aFactor : LONGREAL := 1.0d0;
>  BEGIN
>    WHILE tp < trades.size() AND bp < bids.size() AND ap < asks.size() DO
>      IF ttime = NoTime THEN ttime := trades.get(tp).time END;
>      IF btime = NoTime THEN btime := bids.get(bp).time END;
>      IF atime = NoTime THEN atime := asks.get(ap).time END;
> 
>      IF ttime = btime AND btime = atime THEN
>        DumpOne(trades.get(tp),bids.get(bp),asks.get(ap));
>        INC(tp); INC(bp); INC(ap);
>        ttime := NoTime; btime := NoTime; atime := NoTime
>      ELSIF ttime < btime OR ttime < atime THEN
>        INC(tp); ttime := NoTime
>      ELSIF btime < atime OR btime < ttime THEN
>        INC(bp); btime := NoTime
>      ELSIF atime < btime OR atime < ttime THEN
>        INC(ap); atime := NoTime
>      END
>    END;
>    Wr.Close(wr)
>  END DumpMatching;
> 
>    Miika




More information about the M3devel mailing list