diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4c45b70fe46..0fe06ac7dfb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-11-12 Uros Bizjak + + PR middle-end/41930 + * simplify-rtx.c (simplify_replace_fn_rtx) : Skip + processing if XEXP (x, i) is NULL. + 2009-11-12 Jan Hubicka * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON @@ -43,17 +49,15 @@ 2009-11-11 Kai Tietz - * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): - Removed. + * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. * c-pragma.c (def_pragma_macro_value): Likewise. (def_pragma_macro): Likewise. (pushed_macro_table): Likewise. - (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded - code. - * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): - Removed. + (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code. + * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. 2009-11-11 Basile Starynkevitch + * doc/plugins.texi (Registering custom attributes): section renamed as (Registering custom attributes or pragmas). Mentions custom attributes & pragmas, and c_register_pragma, with @@ -65,21 +69,21 @@ 2009-11-11 Jon Beniston - * config.gcc: Add lm32 elf and uclinux targets. - * config/lm32: New directory. - * config/lm32/lm32.c: New file. - * config/lm32/lm32.h: New file. - * config/lm32/lm32.md: New file. - * config/lm32/lm32.opt: New file. - * config/lm32/lm32-protos.h: New file. - * config/lm32/constraints.md: New file. - * config/lm32/predicates.md: New file. - * config/lm32/sfp-machine.h: New file. - * config/lm32/t-fprules-softfp: New file. - * config/lm32/uclinux-elf.h: New file. - * doc/invoke.texi: Document lm32 options. - * doc/contrib.texi: Document lm32 porter. - * doc/install.texi: Document lm32 targets. + * config.gcc: Add lm32 elf and uclinux targets. + * config/lm32: New directory. + * config/lm32/lm32.c: New file. + * config/lm32/lm32.h: New file. + * config/lm32/lm32.md: New file. + * config/lm32/lm32.opt: New file. + * config/lm32/lm32-protos.h: New file. + * config/lm32/constraints.md: New file. + * config/lm32/predicates.md: New file. + * config/lm32/sfp-machine.h: New file. + * config/lm32/t-fprules-softfp: New file. + * config/lm32/uclinux-elf.h: New file. + * doc/invoke.texi: Document lm32 options. + * doc/contrib.texi: Document lm32 porter. + * doc/install.texi: Document lm32 targets. 2009-11-11 Martin Jambor @@ -173,8 +177,8 @@ * gdbinit.in (pgq): New function for printing gimple sequence. 2009-11-09 Paul Brook - Daniel Jacobowitz - Sandra Loosemore + Daniel Jacobowitz + Sandra Loosemore * doc/extend.texi (Half-Precision): Update wording to reflect that there are now multiple -mfpu options that enable fp16 @@ -188,9 +192,9 @@ when undesirable. (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate, aapcs_vfp_allocate_return_reg): Use use_vfp_abi. - (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs, - arm_9e_rtx_costs): Only expect double-precision operations if the FPU - provides them. + (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs, + arm_9e_rtx_costs): Only expect double-precision operations if the FPU + provides them. (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no NEON. (arm_print_operand): Handle 'p' modifier. @@ -202,8 +206,8 @@ does not provide them. (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move double-precision values on a single-precision FPU. - (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for - double-precision constants. + (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for + double-precision constants. (movhf_vfp_neon): New pattern (was movhf_vfp). (movhf_vfp): Remove NEON instructions. * config/arm/constraints.md: Add new "Dy" constraint for @@ -403,7 +407,7 @@ 2009-11-04 Kenneth Zadeck * df-scan.c (df-uses-record): Add case zero_extract of mem. - + 2009-11-04 Eric Botcazou PR target/10127 @@ -423,11 +427,11 @@ * config/i386/cpuid.h (bit_LWP): Define LWP bit. * config/i386/x86intrin.h: Add LWP check and lwpintrin.h. * config/i386/i386-c.c (ix86_target_macros_internal): Check - ISA_FLAG for LWP. + ISA_FLAG for LWP. * config/i386/i386.h (TARGET_LWP): New macro for LWP. * config/i386/i386.opt (-mlwp): New switch for LWP support. * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New. - (OPTION_MASK_ISA_LWP_UNSET): New. + (OPTION_MASK_ISA_LWP_UNSET): New. (ix86_handle_option): Handle -mlwp. (isa_opts): Handle -mlwp. (enum pta_flags): Add PTA_LWP. @@ -448,7 +452,7 @@ (builtin_description): Ditto. (ix86_init_mmx_sse_builtins): Ditto. (ix86_expand_special_args_builtin): Ditto. - * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for + * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for LWP support. (UNSPEC_SLWP_INTRINSIC): Ditto. (UNSPECV_LWPVAL_INTRINSIC): Ditto. @@ -465,22 +469,22 @@ (lwp_lwpinshi3): Ditto. (lwp_lwpinssi3): Ditto. (lwp_lwpinsdi3): Ditto. - + 2009-11-04 Andrew Pinski - Trevor Smigiel + Trevor Smigiel PR rtl-opt/41833 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of a vec_duplicate. 2009-11-04 Richard Guenther - Rafael Avila de Espindola - + Rafael Avila de Espindola + * gcc.c (process_command): Handle arguments name@offset. 2009-11-04 Harsha Jagasia Dwarakanath Rajagopal - + * config.gcc (i[34567]86-*-*): Include xopintrin.h. (x86_64-*-*): Ditto. * config/i386/xopintrin.h: New file, provide common x86 compiler @@ -488,7 +492,7 @@ * config/i386/cpuid.h (bit_XOP): Define XOP bit. * config/i386/x86intrin.h: Add XOP check and xopintrin.h. * config/i386/i386-c.c(ix86_target_macros_internal): Check - ISA_FLAG for XOP. + ISA_FLAG for XOP. * config/i386/i386.h(TARGET_XOP): New macro for XOP. * config/i386/i386.opt (-mxop): New switch for XOP support. * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP) @@ -498,7 +502,7 @@ (PPERM_*): New constants for vpperm instruction. (xop_pcmov_): Add XOP conditional mov instructions. * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New. - (OPTION_MASK_ISA_XOP_UNSET): New. + (OPTION_MASK_ISA_XOP_UNSET): New. (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP. (ix86_handle_option): Handle -mxop. (isa_opts): Handle -mxop. @@ -677,7 +681,7 @@ (xop_pmadcsswd): Ditto. (xop_pmadcswd): Ditto. (xop_pcmov_): Ditto. - (xop_pcmov_)256: Ditto. + (xop_pcmov_256): Ditto. (xop_phaddbw): Ditto. (xop_phaddbd): Ditto. (xop_phaddbq): Ditto. @@ -712,7 +716,7 @@ (ashrv2di3): Ditto. (xop_frcz2): Ditto. (xop_vmfrcz2): Ditto. - (xop_frcz2256): Ditto. + (xop_frcz2256): Ditto. (xop_maskcmp3): Ditto. (xop_maskcmp_uns3): Ditto. (xop_maskcmp_uns23): Ditto. @@ -720,7 +724,7 @@ * doc/invoke.texi (-mxop): Add documentation. * doc/extend.texi (x86 intrinsics): Add XOP intrinsics. - + 2009-11-03 Mark Mitchell PR driver/11810 @@ -996,7 +1000,7 @@ * config/frv/frv.c (frv_function_value, frv_libcall_value, frv_function_value_regno_p): New functions. (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. - * config/frv/frv.h: (FUNCTION_VALUE, LIBCALL_VALUE): Remove. + * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p. * config/frv/frv-protos.h (frv_function_value_regno_p): Declare. @@ -1006,7 +1010,7 @@ new 'outgoing' argument. (mn10300_libcall_value, mn10300_function_value_regno_p): New functions. (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. - * config/mn10300/mn10300.h: (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, + * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, LIBCALL_VALUE): Remove. (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p. * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove. @@ -1014,7 +1018,7 @@ 2009-10-31 Ramana Radhakrishnan - * config/arm/cortex-a9.md: New - integer pipeline description. + * config/arm/cortex-a9.md: New - integer pipeline description. 2009-10-31 Eric Botcazou diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index ee119bcd65c..c0427770267 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -489,12 +489,15 @@ simplify_replace_fn_rtx (rtx x, const_rtx old_rtx, break; case 'e': - op = simplify_replace_fn_rtx (XEXP (x, i), old_rtx, fn, data); - if (op != XEXP (x, i)) + if (XEXP (x, i)) { - if (x == newx) - newx = shallow_copy_rtx (x); - XEXP (newx, i) = op; + op = simplify_replace_fn_rtx (XEXP (x, i), old_rtx, fn, data); + if (op != XEXP (x, i)) + { + if (x == newx) + newx = shallow_copy_rtx (x); + XEXP (newx, i) = op; + } } break; }