Hi all,This is another cleanup patch that simplifies some expressions of the form (<expr> ? true : false) or if (boolean == true) and other minor cleanups.
Tested arm-none-eabi. Ok for trunk? Or should this wait for the next stage? Thanks, Kyrill 2015-01-29 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of return_in_pc. Remove redunant assignments. (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc. (arm_expand_epilogue): Don't compare boolean with true in if condition.
commit 568374491b4497bd8b122cb31db8ecf2bd8cb43b Author: Kyrylo Tkachov <kyrylo.tkac...@arm.com> Date: Fri Nov 28 16:41:02 2014 +0000 [ARM] Clean up multi-ref pop and epilogue functions diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index c9701b7..246298a 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -20273,11 +20273,10 @@ arm_emit_multi_reg_pop (unsigned long saved_regs_mask) rtx par; rtx dwarf = NULL_RTX; rtx tmp, reg; - bool return_in_pc; + bool return_in_pc = saved_regs_mask & (1 << PC_REGNUM); int offset_adj; int emit_update; - return_in_pc = (saved_regs_mask & (1 << PC_REGNUM)) ? true : false; offset_adj = return_in_pc ? 1 : 0; for (i = 0; i <= LAST_ARM_REGNUM; i++) if (saved_regs_mask & (1 << i)) @@ -20293,10 +20292,7 @@ arm_emit_multi_reg_pop (unsigned long saved_regs_mask) par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (num_regs + emit_update + offset_adj)); if (return_in_pc) - { - tmp = ret_rtx; - XVECEXP (par, 0, 0) = tmp; - } + XVECEXP (par, 0, 0) = ret_rtx; if (emit_update) { @@ -20446,9 +20442,8 @@ thumb2_emit_ldrd_pop (unsigned long saved_regs_mask) rtx par = NULL_RTX; rtx dwarf = NULL_RTX; rtx tmp, reg, tmp1; - bool return_in_pc; + bool return_in_pc = saved_regs_mask & (1 << PC_REGNUM); - return_in_pc = (saved_regs_mask & (1 << PC_REGNUM)) ? true : false; for (i = 0; i <= LAST_ARM_REGNUM; i++) if (saved_regs_mask & (1 << i)) num_regs++; @@ -25230,7 +25225,7 @@ arm_expand_epilogue (bool really_return) arm_emit_multi_reg_pop (saved_regs_mask); } - if (return_in_pc == true) + if (return_in_pc) return; }