Hi,
Could a gatekeeper please help review the fix for bug912?
http://bugs.open64.net/show_bug.cgi?id=912
The cut down bug case:
struct go7007 {
int sensor_framerate;
int fps_scale;
};
int vti_bitlen(struct go7007 *go)
{
unsigned int i, max_time_incr = go->sensor_framerate / go->fps_scale;
for (i = 31; (max_time_incr & ((1 << i) - 1)) == max_time_incr; --i);
return i + 1;
}
### Assertion failure at line 2109 of
/fc/proj/ctires/open64/o64guru/src/Sat/trunk/osprey/be/cg/cgemit.cxx:
### Compiler Error in file bug912-cutdown.c during Assembly phase:
### literal for operand 1 is not in range
Analysis:
WHIRL dump snippet after WOPT:
......
U4STID 50 <1,8,.preg_U4> T<8,.predef_U4,4> # max_time_incr {line: 1/8}
U4U4LDID 50 <1,8,.preg_U4> T<8,.predef_U4,4> # max_time_incr
U4U4LDID 50 <1,8,.preg_U4> T<8,.predef_U4,4> # max_time_incr
I8INTCONST -2147483649 (0xffffffff7fffffff)
U4BAND
I4U4EQ
FALSEBR L2562 {line: 0/0}
This is already wrong, U4BAND should not accept I8INTCONST kids.
((1 << 31) - 1) in such context should be codemapped to U4INTCONST
2147483647 (0x7fffffff)
Suggested patch:
--- a/osprey/be/opt/opt_htable.cxx
+++ b/osprey/be/opt/opt_htable.cxx
@@ -3679,7 +3679,10 @@ CODEMAP::Add_expr(WN *wn, OPT_STAB *opt_stab,
STMTREP *stmt, CANON_CR *ccr,
if ((MTYPE_type_class(OPCODE_rtype(op)) & MTYPE_CLASS_INTEGER) != 0
#ifdef TARG_X8664 // bug 7733
&& ! MTYPE_is_vector(OPCODE_rtype(op))
- && ! MTYPE_is_vector(OPCODE_desc(op))
+ && ! MTYPE_is_vector(OPCODE_desc(op))
+ // bug912 open64.net. do not Canonicalize U4I4CVT
+ && ! (OPCODE_rtype(op) == MTYPE_U4 &&
+ OPCODE_desc(op) == MTYPE_I4)
#endif
)
return Canon_cvt(wn, opt_stab, stmt, ccr, cr, copyprop);
Could a gatekeeper please help review ? Thanks
Regards
Gang
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel