Author: dgilmore Date: 2011-11-21 19:57:18 -0500 (Mon, 21 Nov 2011) New Revision: 3821
Modified: trunk/osprey/be/cg/MIPS/cgtarget_arch.h trunk/osprey/be/cg/NVISA/cgtarget_arch.h trunk/osprey/be/cg/SL/cgtarget_arch.h trunk/osprey/be/cg/cgemit.cxx trunk/osprey/be/cg/ia64/cgtarget_arch.h trunk/osprey/be/cg/loongson/cgtarget_arch.h trunk/osprey/be/cg/ppc32/cgtarget_arch.h trunk/osprey/be/cg/x8664/cgtarget_arch.h Log: Replace CGTARG_Is_Right_Shift_Op() by CGTARG_Is_Shift_Redundant (). Note that CGTARG_Is_Shift_Redundant() only needs a non-trivial implemention on architectures that have a zero register, otherwise it just returns FALSE. Approved by Sun. Modified: trunk/osprey/be/cg/MIPS/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/MIPS/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/MIPS/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -195,8 +195,10 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { + BOOL predicated = OP_has_predicate(op) != 0; + switch (OP_code(op)) { case TOP_sra: case TOP_srav: @@ -208,7 +210,7 @@ case TOP_dsrl: case TOP_dsrl32: case TOP_dsrlv: - return TRUE; + return TN_register(OP_opnd(op,0+predicated)) == REGISTER_zero; } return FALSE; } Modified: trunk/osprey/be/cg/NVISA/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/NVISA/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/NVISA/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -184,12 +184,9 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { - switch (OP_code(op)) { - TOP_shr: - return TRUE; - } + // Check unneeded since there is no zero register. return FALSE; } Modified: trunk/osprey/be/cg/SL/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/SL/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/SL/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -168,21 +168,9 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { - switch (OP_code(op)) { - case TOP_sra: - case TOP_srav: - case TOP_srl: - case TOP_srlv: - case TOP_dsra: - case TOP_dsra32: - case TOP_dsrav: - case TOP_dsrl: - case TOP_dsrl32: - case TOP_dsrlv: - return TRUE; - } + // Check unneeded since there is no zero register. return FALSE; } Modified: trunk/osprey/be/cg/cgemit.cxx =================================================================== --- trunk/osprey/be/cg/cgemit.cxx 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/cgemit.cxx 2011-11-22 00:57:18 UTC (rev 3821) @@ -2528,14 +2528,12 @@ } } - if (CGTARG_Is_Right_Shift_Op (op)) { - if (TN_register(OP_opnd(op,0+predicated)) == REGISTER_zero) { - DevWarn ("Redundant shift instruction in %sBB:%d (PC=0x%x)", - BB_rotating_kernel(OP_bb(op)) ? "SWPd " : "", - BB_id(OP_bb(op)), PC); - if (TFile != stdout) { /* only print to .t file */ - Print_OP_No_SrcLine (op); - } + if (CGTARG_Is_Shift_Redundant (op)) { + DevWarn ("Redundant shift instruction in %sBB:%d (PC=0x%x)", + BB_rotating_kernel(OP_bb(op)) ? "SWPd " : "", + BB_id(OP_bb(op)), PC); + if (TFile != stdout) { /* only print to .t file */ + Print_OP_No_SrcLine (op); } } } Modified: trunk/osprey/be/cg/ia64/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/ia64/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/ia64/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -285,13 +285,15 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { + BOOL predicated = OP_has_predicate(op) != 0; + switch (OP_code(op)) { case TOP_shr: case TOP_shr_u: case TOP_shrp: - return TRUE; + return TN_register(OP_opnd(op,0+predicated)) == REGISTER_zero; } return FALSE; } Modified: trunk/osprey/be/cg/loongson/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/loongson/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/loongson/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -163,8 +163,10 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { + BOOL predicated = OP_has_predicate(op) != 0; + switch (OP_code(op)) { case TOP_srl: case TOP_sra: @@ -172,7 +174,7 @@ case TOP_dsra: case TOP_dsrl32: case TOP_dsra32: - return TRUE; + return TN_register(OP_opnd(op,0+predicated)) == REGISTER_zero; } return FALSE; } Modified: trunk/osprey/be/cg/ppc32/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/ppc32/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/ppc32/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -171,21 +171,9 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { - switch (OP_code(op)) { - case TOP_srawi: - case TOP_sraw: - case TOP_srwi: - case TOP_srw: -// case TOP_dsra: -// case TOP_dsra32: -// case TOP_dsrav: -// case TOP_dsrl: -// case TOP_dsrl32: -// case TOP_dsrlv: - return TRUE; - } + // Check unneeded since there is no zero register. return FALSE; } Modified: trunk/osprey/be/cg/x8664/cgtarget_arch.h =================================================================== --- trunk/osprey/be/cg/x8664/cgtarget_arch.h 2011-11-20 08:09:09 UTC (rev 3820) +++ trunk/osprey/be/cg/x8664/cgtarget_arch.h 2011-11-22 00:57:18 UTC (rev 3821) @@ -183,19 +183,9 @@ } inline BOOL -CGTARG_Is_Right_Shift_Op (OP *op) +CGTARG_Is_Shift_Redundant (OP *op) { - switch (OP_code(op)) { - TOP_sarb: - TOP_sarw: - TOP_sarl: - TOP_sarq: - TOP_shrb: - TOP_shrw: - TOP_shrl: - TOP_shrq: - return TRUE; - } + // Check unneeded since there is no zero register. return FALSE; } ------------------------------------------------------------------------------ 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