On Wed, Mar 11, 2009 at 2:54 PM, Toon Moene <t...@moene.org> wrote: > ... and it had to be "fixed" 3-4 times by H.J.Lu before it went so obscure > to only hit people like me. > > I run a weather forecasting system 4 times daily to test it out. > > Because GCC would-be-4.4 is in regression fixes only during the last four > months, I thought I could use it with impunity. > > Unfortunately, not so. > > From the 17th of February onwards, I find the following diagnostics in my > output files: > > ------------------------------- > ABS(DPS)/3H = 1.007571 MB > MAXWIND = 70.835266 M/S IN (X,Y,LEV)= 129 145 15 > STPS = 10077.023437500000 > STQ = 4.921556472778 > STS = 0.010799089447 > STPE = 2497269760.000000000000 > STKE = 1622026.375000000000 > STTE = 2498891776.000000000000 > > TOTAL RAIN RATE(mm/d)= +Infinity > STRATIFORM PRECIP RATE= +Infinity > CONVECTIVE PRECIP RATE= 0.000000000000 > CWPATH = +Infinity > COV2D = +Infinity > HIGH CLOUDS = +Infinity > MEDIUM CLOUDS = +Infinity > LOW CLOUDS = +Infinity > LOWEST LEVEL CLOUDS/FOG = +Infinity > AVERAGED CLOUD BASE= +Infinity > AVERAGED CLOUD TOP= +Infinity > SENF = -Infinity > LATF = NaN > MOMF = +Infinity > > Without going into meteorological details, I hope you will trust me that the > Infinity's, NaN's should not be there. > > After reverting r144098 and its updates today, the output looks normal: > > ------------------------------- > ABS(DPS)/3H = 1.144242 MB > MAXWIND = 75.913940 M/S IN (X,Y,LEV)= 155 151 13 > STPS = 10076.395507812500 > STQ = 4.889474391937 > STS = 0.006965990644 > STPE = 2498901504.000000000000 > STKE = 1634238.125000000000 > STTE = 2500535808.000000000000 > > TOTAL RAIN RATE(mm/d)= 0.150563895702 > STRATIFORM PRECIP RATE= 0.146368727088 > CONVECTIVE PRECIP RATE= 0.004195173737 > CWPATH = 0.009085088037 > COV2D = 0.115943998098 > HIGH CLOUDS = 0.052225619555 > MEDIUM CLOUDS = 0.031857494265 > LOW CLOUDS = 0.062132436782 > LOWEST LEVEL CLOUDS/FOG = 0.006665431429 > AVERAGED CLOUD BASE= 448.916229248047 > AVERAGED CLOUD TOP= 900.125244140625 > SENF = -30.753757476807 > LATF = -70.874824523926 > MOMF = 0.177236527205 > > So *during phase 4 - regression fixes only* a change *introducing* two > peephole optimizations was not only proposed, but accepted and committed > (and "fixed", at least three times). >
Does this look correct? (define_peephole2 [(set (match_operand:SI 0 "register_operand" "") (match_operand:SI 1 "register_operand" "")) (parallel [(set (match_dup 0) (match_operator:SI 3 "commutative_operator" [(match_dup 0) (match_operand:SI 2 "memory_operand" "")])) (clobber (reg:CC FLAGS_REG))])] "operands[0] != operands[1] && GENERAL_REGNO_P (REGNO (operands[0])) && GENERAL_REGNO_P (REGNO (operands[1]))" [(set (match_dup 0) (match_dup 4)) (parallel [(set (match_dup 0) (match_op_dup 3 [(match_dup 0) (match_dup 1)])) (clobber (reg:CC FLAGS_REG))])] "operands[4] = replace_rtx (operands[2], operands[0], operands[1]);") If operands[2] uses operands[0], we replace it with operands[1]. It leads to (set (match_dup 0) (match_dup 4)) where (match_dup 4) uses operands[1] which may be uninitialized. Shouldn't it be "operands[4] = replace_rtx (operands[2], operands[1], operands[0]);") Did I miss something? -- H.J.