Author: yug
Date: 2012-04-27 03:39:48 -0400 (Fri, 27 Apr 2012)
New Revision: 3919
Modified:
trunk/osprey/be/opt/opt_prop.cxx
Log:
fix for bug963.
try copy propogation into variables inside ASM_INPUT. if the copy
source is a constant and the required constrait is "i".
Code Review: Lai Jian-Xin.
Modified: trunk/osprey/be/opt/opt_prop.cxx
===================================================================
--- trunk/osprey/be/opt/opt_prop.cxx 2012-04-27 07:37:16 UTC (rev 3918)
+++ trunk/osprey/be/opt/opt_prop.cxx 2012-04-27 07:39:48 UTC (rev 3919)
@@ -1511,6 +1511,14 @@
CODEREP *possible_prop = Copy_propagate_cr(x->Opnd(i), curbb,
inside_cse, in_array);
if (possible_prop && possible_prop->Kind() ==
x->Opnd(i)->Kind())
expr = possible_prop;
+ // open64.net bug963. If the Asm_input constraint is "i", i.e,
required immediate
+ // and the possible propagation is also a constant, we do this
propagation on demand.
+ else if (possible_prop &&
+ (possible_prop->Kind() == CK_CONST ||
+ possible_prop->Kind() == CK_RCONST) &&
+
!strncmp(ST_name(&St_Table[x->Asm_constraint()]),"i",1)) {
+ expr = possible_prop;
+ }
else {
x->Opnd(i)->Set_flag(CF_DONT_PROP);
expr = NULL;
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Open64-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel