[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