Internal Compiler Error in gen_rtx_SUBREG,at emit-rtl.c:776 in CR16

Sumanth Gundapaneni Sumanth.Gundapaneni@kpitcummins.com
Tue Feb 1 09:08:00 GMT 2011


Hi Ian,

>You need to find out what is generating that insn.  It looks like it can
>not work on your hardware.  You need to fix whatever is generating it to
>do something different.

Thanks for the pointer. 
If I compile the test case with "-O2 -fno-inline", there was no ICE related
to subreg. Is "cse_local" phase related to -finline optimization. My initial 
patch has a hack for this at backend files by modifying the standard predicate 
definitions.  

(define_predicate "reg_operand"
 (match_operand 0 "register_operand")
 {
	if(GET_CODE(op) == SUBREG
		&& (REGNO(SUBREG_REG(op)) > 11
		&& REGNO(SUBREG_REG(op)) < FIRST_PSEUDO_REGISTER)
		&& SUBREG_BYTE(op) != 0)
	return 0;    
	return 1;
 }
)     

Though this hack removes the ICEs related to subregs , it effects the output 
of applications compiled with the tool chain in 1 out of 100 test cases.


Thanks and Regards,
Sumanth G









More information about the Gcc-help mailing list