Hello All:
Could gatekeepers approve this patch for the fix bug Id 784.
Following file is modified.
Osprey/be/opt/opt_emit_template.h
The problem is related to ILOAD being assigned rtype = MTYPE_U4 and Desc =
MTYPE_I8.
Setting of rtype and desc to child of ASM_Input which is ILOAD at function
Gen_exp_wn
For the case OPR_ASM_INPUT. This is happening because at whirl generation
following
Whirl node has been set.
ASM_INPUTS
U8U8LDID 0 <2,2,stat> T<57,anon_ptr.,8>
I8I8ILOAD 0 T<55,kstat,8> T<57,anon_ptr.,8> <field_id:2>
U4I8CVT
Because of U4I8 type conversion rtype is set as MTYPE_U4 and desc is set as
MTYPE_I8.
Changes are made to remain the same rtype and desc for ILOAD if CVT is there
with U4 and I8.
We can't have valid opcode U4I8ILOAD by checking the valid opcode by using
Is_Valid_Opcode_parts.
I have checked the assembly file gcc output and opencc output is correct.
Index: osprey/be/opt/opt_emit_template.h
===================================================================
--- osprey/be/opt/opt_emit_template.h (revision 3763)
+++ osprey/be/opt/opt_emit_template.h (working copy)
@@ -393,8 +393,12 @@
else if (
! MTYPE_is_float(exp->Asm_input_rtype()) &&
exp->Asm_input_rtype() != exp->Asm_input_dsctype()) {
- WN_set_rtype(WN_kid(wn, i), exp->Asm_input_rtype());
- WN_set_desc(WN_kid(wn, i), exp->Asm_input_dsctype());
+ if(Is_Valid_Opcode_Parts(WN_operator(WN_kid(wn, i)),
+ exp->Asm_input_rtype(),exp->Asm_input_dsctype()))
+ {
+ WN_set_rtype(WN_kid(wn, i), exp->Asm_input_rtype());
+ WN_set_desc(WN_kid(wn, i), exp->Asm_input_dsctype());
+ }
}
}
else{
Thanks & Regards
Ajit
AMD(open source compiler Engineering)
------------------------------------------------------------------------------
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. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel