+2007-07-06 Ian Lance Taylor <iant@google.com>
+ Zack Weinberg <zackw@panix.com>
+
+ PR middle-end/32441
+ * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
+
+2007-07-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
+ (prefetch): Likewise if "pref" would be used.
+
+2007-07-06 Josh Conner <jconner@apple.com>
+
+ PR middle-end/32602
+ PR middle-end/32603
+ * calls.c (store_one_arg): Handle arguments which are partially
+ on the stack when detecting argument overlap.
+
+2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (choose_reload_regs): Set reload_spill_index for regs
+ chosen during find_reloads.
+
+2007-07-06 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
+ TYPE_ARG_TYPES for verification of argument types. Use
+ DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
+ parameters as variable arguments.
+
+2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * libgcc2.h (word_type): Type definition removed.
+ (cmp_return_type, shift_count_type): Type definitions added.
+ (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
+ replaced with shift_count_type.
+ (__cmpdi2, __ucmpdi2): word_type of return type replaced with
+ cmp_return_type.
+ * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
+ changed from word_type to Wtype.
+ (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
+ replaced with shift_count_type.
+ (__cmpdi2, __ucmpdi2): word_type of return type replaced with
+ cmp_return_type.
+ * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return and
+ libgcc_shift_count attribute added.
+ * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
+ TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
+ (TARGET_INITIALIZER): New target hooks added.
+ * targhooks.c (default_libgcc_cmp_return_mode,
+ default_libgcc_shift_count_mode): Default implementations for the new
+ target hooks added.
+ * targhooks.h (default_libgcc_cmp_return_mode,
+ default_libgcc_shift_count_mode): Function prototypes added.
+ * target.h (struct gcc_target): Fields for the new target hooks added.
+ * optabs.c (expand_binop): Use shift_count_mode when expanding shift
+ as library call.
+ (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
+ library call.
+
+ * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
+ TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
+
+ * config/s390/s390.c (s390_libgcc_cmp_return_mode,
+ s390_libgcc_shift_count_mode): Functions added.
+ (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE): Target
+ hooks defined.
+
+2007-07-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (compute_frame_size): Restore the original
+ gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
+ fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
+ Document why the difference is needed.
+
+2007-07-06 Richard Guenther <rguenther@suse.de>
+
+ * c-common.c (boolean_increment): Use correctly typed
+ constant.
+
+2007-07-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
+ the topmost argument register is not also included in the save mask.
+ (mips16e_collect_argument_save_p): Take a pointer to the argument
+ register, rather than a pointer to the number of arguments.
+ (mips16e_collect_argument_saves): Only include argument saves
+ that aren't in the register mask.
+
+2007-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl_optimization/32450
+ * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
+ to ensure that instructions are not moved into the prologue when
+ profiling is on. Remove unused prologue_end variable.
+ (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
+ as a scheduling barrier.
+
+2007-07-06 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/23551
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
+ Disregard DECL_FROM_INLINE.
+
+2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
+
+ * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
+ IORing with a constant.
+
+2007-07-05 Seongbae Park <seongbae.park@gmail.com>
+
+ PR rtl-optimization/32475
+ * df-scan.c (df_def_record_1): Add a use of the stack pointer
+ for every definition of the stack pointer.
+
+2007-07-05 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (vfp3_const_double_index): Copy signed results of
+ REAL_VALUE_TO_INT into unsigned vars.
+
+2007-07-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32639
+ * alias.c (get_alias_set): Tread METHOD_TYPE the same as
+ FUNCTION_TYPE.
+ * tree-ssa.c (useless_type_conversion_p): Check canonical
+ types early.
+
+2007-07-05 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
+ zero_extendhisi2): Change to define_insn_and_split.
+ (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
+
+2007-07-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
+ pass_match_asm_constraints): New.
+ * passes.c (init_optimization_passes): Add new pass.
+ * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
+ * function.h (struct function): Add has_asm_statement bit.
+ (current_function_has_asm_statement): New.
+ * tree-pass.h (pass_match_asm_constraints): New.
+
+2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_file_start): Avoid declaration
+ after code.
+
+2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
+
+2007-07-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * rtl.def (NOTE): Change print format string to print
+ operand 5 as a note insn name.
+
+2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
+ David Ung <davidu@mips.com>
+
+ * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
+ * doc/invoke.texi: (MIPS Options): Document them.
+
+2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
+ David Ung <davidu@mips.com>
+
+ Add support for SmartMIPS ASE.
+
+ * optabs.c (expand_binop_directly): New, broken out from...
+ (expand_binop): Here. Make it try rotating in the other
+ direction even when the second operand isn't constant.
+ * config/mips/mips.md (*lwxs): New.
+ * config/mips/mips.opt (msmartmips): New.
+ * config/mips/mips.c (mips_lwxs_address_p): New.
+ (mips_rtx_costs): Make it recognize scaled indexed addressing.
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
+ __mips_smartmips when compiling for TARGET_SMARTMIPS.
+ (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
+ (ISA_HAS_LWXS): New.
+ (ASM_SPEC): Add -msmartmips/-mno-smartmips.
+ * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
+ * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
+ * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
+ * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
+ * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
+ * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
+
+2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (new_loop_vec_info): Initialize
+ LOOP_VINFO_COST_MODEL_MIN_ITERS.
+ * tree-vectorizer.h (_loop_vec_info): Added new filed
+ min_profitable_iters.
+ (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
+ (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
+ * tree-vect-analyze.c (vect_analyze_operations): Set
+ LOOP_VINFO_COST_MODEL_MIN_ITERS.
+ * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
+ VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
+ Fix calculation of peel_iters_prologue. Move consideration of epilogue
+ and prologue cost to after they are computed.
+ (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
+ TARG_VEC_STMT_COST.
+ (vect_model_simple_cost): Takes additional argument dt. Consider cost
+ of creating vectors from scalars according to dt.
+ (vect_model_store_cost): Likewise.
+ (vectorizable_call): Use dt array instead of scalar dt. Call
+ vect_model_simple_cost with additional argument dt.
+ (vectorizable_assignment): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_type_demotion): Likewise.
+ (vectorizable_type_promotion): Likewise.
+ (vectorizable_store): Use dt array instead of scalar dt. Call
+ vect_model_store_cost with additional argument dt.
+ (vect_do_peeling_for_loop_bound): Don't call
+ vect_estimate_min_profitable_iters. Instead, lookup
+ LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
+ "may not be profitable".
+
+2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR testsuite/32014
+ * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
+ (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
+ (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
+ (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
+
+2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * config/i386/i386.c (ix86_address_cost): Do not consider more complex
+ addressing modes cheaper.
+
+2007-07-05 Alexandre Oliva <aoliva@redhat.com>
+
+ * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
+ (dw_ranges_struct): Rename block_num to num. Adjust.
+ (dw_ranges_by_label_struct): New.
+ (ranges_by_label, ranges_by_label_allocated,
+ ranges_by_label_in_use): New variables.
+ (add_ranges_num): Factored most of the code out of...
+ (add_ranges): ... this one. Rewrite in terms of the former.
+ (add_ranges_by_labels): New.
+ (output_ranges): Output by-label ranges.
+ (dwarf2out_finish): Output range for multiple-section
+ compile_unit. Output standard DW_AT_low_pc in addition to
+ unexpected DW_AT_entry_pc.
+
+2007-07-04 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/32604
+ PR tree-optimization/32606
+
+ * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
+ (compute_antic_safe): Removed.
+ (ANTIC_SAFE_LOADS): Ditto.
+ (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
+ (execute_pre): Don't call compute_antic_safe.
+ (vuse_equiv): New function.
+ (make_values_for_stmt): Use it
+ * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
+ not always true.
+
+2007-07-04 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/31331
+ * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
+ rather than a decl.
+ (avr_attribute_table): Make "naked" attribute apply to function types
+ rather than to decls.
+ (avr_handle_fntype_attribute): New function.
+
+2007-07-04 Joseph Myers <joseph@codesourcery.com>
+
+ * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
+ after \.
+
+2007-07-04 David Ung <davidu@mips.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * config/mips/mips.md (type): Add logical, signext and move.
+ (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
+ *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
+ *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
+ combinations", *zero_extend<SHORT:mode><GPR:mode>2,
+ *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
+ *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
+ *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
+ *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
+ *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
+ *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
+ movv2sf_hardfloat_64bit): Use the new types.
+ (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
+ *movdf_softfloat, *movdf_mips16): Use "multi".
+ (extendqihi2): Replace with a define_expand.
+ (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
+ Based on extend<SHORT:mode><GPR:mode>2 patterns.
+ * config/mips/74k.md (r74k_int_logical): New reservation and
+ bypasses.
+ (r74k_int_arith): Remove "slt".
+ * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
+ config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
+ config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
+ config/mips/sb1.md, config/mips/sr71k.md: Add new types to
+ reservations for "arith".
+
+2007-07-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa.c (useless_type_conversion_p): Add handling for
+ scalar float and vector types. Only call the types_compatible_p
+ langhook for aggregate types as last resort. Follow the
+ rules.
+
+2007-07-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
+ the same as NOP_EXPR.
+
+2007-07-04 Nick Clifton <nickc@redhat.com>
+
+ * target.h (struct gcc_target): Add target_help field.
+ * target-def.h (TARGET_HELP): New.
+ (TARGET_INITIALIZER): Use TARGET_HELP.
+ * opts.c (command_handle_option): Invoke target_help function, if
+ defined, when the user has specified --target-help on the command
+ line.
+ * doc/invoke.texi: Mention that --target-help might print
+ additional information.
+ * doc/tm.texi: Document TARGET_HELP hook.
+
+ * arm.c (TARGET_HELP): Override default definition.
+ (arm_target_help): New - display a wrapped list of cores and
+ architectures supported.
+
+2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * config/gcc/v850/v850.c (expand_prologue): Make sure
+ GEN_INT() argument is sign extended rather than zero extended.
+ (expand_epilogue): Likewise.
+ (output_move_double): Delete.
+ * config/gcc/v850/v850-protos.h (output_move_double): Delete.
+ * config/gcc/v850/v850.md (movdi): Delete.
+ (*movdi_internal): Delete.
+ (movdf): Delete.
+ (*movdf_internal): Delete.
+
+2007-07-04 Richard Sandiford <richard@codesourcery.com>
+
+ * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
+ unless compiling RTP PIC.
+
+2007-07-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32482
+ * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
+ original ssa name if we didn't find a shift expression.
+ Fix shift constant for bit zero test.
+
+2007-07-04 Richard Sandiford <richard@codesourcery.com>
+
+ * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
+
+2007-07-04 Richard Sandiford <richard@codesourcery.com>
+
+ * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
+ * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
+ * config/arm/vxworks.h (ASM_SPEC): Delete.
+ (SUBTARGET_EXTRA_ASM_SPEC): Define.
+
+2007-07-04 Sebastian Pop <sebpop@gmail.com>
+
+ * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
+ (DDR_REVERSED_P): New.
+ * tree-data-ref.c (initialize_data_dependence_relation,
+ build_classic_dist_vector): Set DDR_REVERSED_P.
+
+2007-07-04 Sebastian Pop <sebpop@gmail.com>
+
+ PR middle-end/32457
+ * tree-data-ref.c (analyze_siv_subscript_cst_affine,
+ compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
+ init_omega_for_ddr_1): Use non conservative number of iterations
+ estimations.
+ (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
+ (analyze_siv_subscript): Remove FIXME and reinitialization of
+ last_conflicts to chrec_dont_know.
+ * testsuite/gfortran.dg/vect/pr32457.f90: New.
+
+2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
+
+ * tree.c (maybe_canonicalize_argtypes): Improve description.
+
+2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
+
+ * tree.c (maybe_canonicalize_argtypes): New.
+ (build_function_type): Set canonical type.
+ (build_method_type_directly): Ditto.
+ (reconstruct_complex_type): Rebuild the METHOD_TYPE node
+ properly.
+
+2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
+ like PLUS_EXPR.
+ (rewrite_use_nonlinear_expr): Likewise.
+
+2007-07-03 Seongbae Park <seongbae.park@gmail.com>
+
+ * rtl.def (UNSPEC, USE, CLOBBER): More comments.
+
+2007-07-04 Ben Elliston <bje@au.ibm.com>
+
+ * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
+ of this file.
+
+ * c-objc-common.c (c_types_compatible_p): Fix indentation.
+
+ * doc/tm.texi (Run-time Target): Capitalise "CPU".
+ (Exception Handling): Likewise.
+
+2007-07-03 Jan Hubicka <jh@suse.cz>
+
+ * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
+
+2007-07-03 Eric Christopher <echristo@apple.com>
+
+ * doc/cppopts.texi: Add conflicting option note to -dM.
+ * doc/invoke.texi: Add note about possible conflicts with
+ -E for -dCHARS and note that -dM will not produce
+ any results if there is no machine dependent reorg.
+
+2007-07-03 Geoffrey Keating <geoffk@apple.com>
+
+ * tree.h (DECL_ALIGN): Back out previous change.
+
+2007-07-03 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac: Test for .dtprelword support on MIPS.
+ * configure, config.in: Regenerate.
+ * config/mips/mips.c (mips_output_dwarf_dtprel): New.
+ (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
+
+2007-07-03 Julian Brown <julian@codesourcery.com>
+
+ * config.gcc (with_fpu): Allow --with-fpu=vfp3.
+ * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
+ * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
+ * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
+ capability.
+ (all_fpus): Add FPUTYPE_VFP3.
+ (fp_model_for_fpu): Add VFPv3 field.
+ (arm_rtx_costs_1): Give cost to VFPv3 constants.
+ (vfp3_const_double_index): New function. Return integer index of
+ VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
+ isn't suitable.
+ (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
+ and argument represents a valid RTX for a VFPv3 constant.
+ (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
+ two instructions.
+ (vfp_emit_fstmd): Similar, for fstmd.
+ (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
+ constants, represented as integer indices.
+ (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
+ VFP_REGNO_OK_FOR_DOUBLE macros.
+ (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
+ (arm_file_start): Set float-abi attribute for VFPv3, and output
+ correct ".fpu" assembler directive.
+ (arm_dbx_register_numbering): Add FIXME.
+ * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
+ (fputype): Add FPUTYPE_VFP3.
+ (FIXED_REGISTERS): Add 32 registers for D16-D31.
+ (CALL_USED_REGISTERS): Likewise.
+ (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
+ of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
+ (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
+ (D7_VFP_REGNUM): New.
+ (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
+ (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
+ (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
+ (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
+ (REG_ALLOC_ORDER): Adjust for VFPv3.
+ (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
+ (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
+ VFP_LO_REGS, VFP_HI_REGS.
+ (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
+ (IS_VFP_CLASS): Define macro.
+ (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
+ IS_VFP_CLASS.
+ (REGISTER_MOVE_COST): Likewise.
+ * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
+ * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
+ (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
+ (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
+ (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
+ (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
+ (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
+ (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
+ (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
+ (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
+ (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
+ where appropriate for single-word registers.
+ (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
+ As above. Fix type attributes.
+ * config/arm/constraints.md (register_contraint "t"): Define.
+ (register_constraint "w"): Change to D0-D15, or D0-D31 for
+ VFPv3/NEON.
+ (register_constraint "x"): Define.
+ (constraint "Dv"): Define.
+
+2007-07-03 Geoffrey Keating <geoffk@apple.com>
+
+ * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
+
+2007-07-03 Tom Tromey <tromey@redhat.com>
+
+ * c-parser.c (objc_pq_context): Removed.
+ (objc_need_raw_identifier): Likewise.
+ (c_parser) <objc_pq_context>: New field.
+ <objc_need_raw_identifier>: Likewise.
+ (OBJC_NEED_RAW_IDENTIFIER): Removed.
+ (c_lex_one_token): Update.
+ (c_parser_objc_protocol_definition): Update.
+ (c_parser_objc_method_definition): Update.
+ (c_parser_objc_methodproto): Update.
+ (c_parser_declspecs): Update.
+
+2007-07-03 David Ung <davidu@mips.com>
+
+ * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
+
+2007-07-03 David Ung <davidu@mips.com>
+ Richard Sandiford <richard@codesourcery.com>
+
+ * doc/invoke.texi: Document -march=74kf3_2.
+ * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
+ (TUNE_74K): Check for it.
+ * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
+ (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
+ * config/mips/mips.md (cpu): Add 74kf3_2.
+ * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
+ (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
+ (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
+ (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
+ 74kf3_2 to the CPU list.
+ (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
+ (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
+ (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
+ (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
+ (r74kf3_2_fxfer_from_c1): New insn reservations.
+
+2007-07-03 Richard Sandiford <richard@codesourcery.com>
+ David Ung <davidu@mips.com>
+
+ * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
+ -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
+ and 74k[fx]. Document aliases for the new options.
+ * config/mips/mips.h (PROCESSOR_24KF): Rename to...
+ (PROCESSOR_24KF2_1): ...this.
+ (PROCESSOR_24KX): Rename to...
+ (PROCESSOR_24KF1_1): ...this.
+ (PROCESSOR_74KF): Rename to...
+ (PROCESSOR_74KF2_1): ...this.
+ (PROCESSOR_74KX): Rename to...
+ (PROCESSOR_74KF1_1): ...this.
+ (TUNE_74K): Update PROCESSOR_* names.
+ * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
+ for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
+ the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
+ (mips_rtx_cost_data): Update processor names in comments.
+ (mips_issue_rate): Update PROCESSOR_* names.
+ * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
+ 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
+ * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
+ to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
+ Update cpu attribute names.
+ (r24k_fpu_iss): Rename this reservation to...
+ (r24kf2_1_fpu_iss): ...this and update all uses.
+ (r24kx_fpu_iss): Rename this reservation to...
+ (r24kf1_1_fpu_iss): ...this and update all uses.
+ * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
+ to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
+ Update cpu attribute names.
+
+2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/m32r/constraints.md: New file.
+ * config/m32r/m32r.c: Include tm-constrs.h.
+ (small_data_operand): Use satisfies_constraint_* instead of macro.
+ (addr24_operand, gen_compare): Likewise.
+ * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
+ (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
+ CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
+ EXTRA_CONSTRAINT): Likewise.
+ * config/m32r/m32r.md: Include constraints.md.
+ (*movsi_insn): Use satisfies_constraint_* instead of macro.
+ (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
+ * config/m32r/predicates.md (conditional_move_operand): Likewise.
+ (two_insn_const_operand, int8_operand, uint16_operand,
+ reg_or_int16_operand, reg_or_uint16_operand,
+ reg_or_cmp_int16_operand, cmp_int16_operand,
+ seth_add3_operand): Likewise.
+
+2007-07-03 Eric Christopher <echristo@gmail.com>
+
+ * libgcc2.h: Conditionally declare __bswapsi2 and
+ __bswapdi2.
+
+2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
+ defined.
+
+2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR target/28307
+ * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
+ (__gthrw_pragma): Provide default definition.
+ (__gthrw2): Use it.
+ * gthr-posix.c (__gthrw_pragma): Define.
+
+2007-07-03 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
+ before declaring inequality.
+
+2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * combine.c (recog_for_combine): Log the success or failure of
+ matching new insn patterns against the machine description in
+ detailed dumps.
+
+2007-07-03 Revital Eres <eres@il.ibm.com>
+
+ * ddg.c (print_sccs): New function.
+ (check_sccs): New function.
+ (create_ddg_all_sccs): Use it.
+ * ddg.h (print_sccs): Declare.
+ * modulo-sched.c (sms_order_nodes): Call print_sccs.
+
+2007-07-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * targhooks.h (default_mode_for_suffix): New function declaration.
+ * targhooks.c (default_mode_for_suffix): New default target hook.
+ * target.h (struct c): New structure in the targetm struct.
+ (mode_for_suffix): New target hook as part of struct c.
+ target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
+ default_mode_for_suffix.
+ (TARGET_C): New define.
+ * c-lex.c: Include "target.h".
+ (interpret_float): Use targetm.c.mode_for_suffix to determine
+ the mode for a given non-standard suffix.
+ Makefile.in (c-lex.o): Depend on $(TARGET_H).
+
+ * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
+ (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
+
+ * doc/extend.texi (Floating Types): New node. Document __float80 and
+ __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
+
+2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/32506
+ * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
+ predicate instead of target_operand.
+ (divsi3_i1_media, divsi3_media_2): Likewise.
+
+2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h (alias_sets_might_conflict_p): Rename into
+ alias_sets_must_conflict_p.
+ * alias.c (alias_sets_might_conflict_p): Likewise.
+ (alias_sets_conflict_p): Use it.
+ (objects_must_conflict_p): Likewise.
+ * c-common.c (strict_aliasing_warning): Adjust.
+
+2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * rtlhooks.c (gen_lowpart_if_possible): Check for
+ invalid subreg before calling gen_lowpart_SUBREG.
+
+2007-07-02 Geoffrey Keating <geoffk@apple.com>
+
+ * config/darwin9.h: Add copyright notice.
+ (LINK_COMMAND_SPEC): Add comment.
+ (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
+ * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
+ DARWIN_LIBSYSTEM_HAS_UNWIND.
+
+2007-07-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/32468
+ * omp-low.c (check_combined_parallel): New function.
+ (lower_omp_parallel): Call it via walk_stmts, set
+ OMP_PARALLEL_COMBINED if appropriate.
+ (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
+ isn't the only statement in WS_ENTRY_BB or OMP_RETURN
+ the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
+ don't consider it as combined parallel.
+
+2007-07-02 Richard Sandiford <richard@codesourcery.com>
+
+ * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
+ (gcc_tooldir): Likewise.
+ * configure: Regenerate.
+ * Makefile.in (libsubdir_to_prefix): New variable, based on the
+ old configure.ac gcc_tooldir setting.
+ (prefix_to_exec_prefix): New variable.
+ (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
+ rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
+
+2007-07-02 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/32583
+ Fix PR tree-optimization/32584
+ * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
+ (phi_translate_set): Use phi_translate directly now.
+ (make_values_for_stmt): Don't value number RHS if we already know
+ it is constant.
+
+2007-07-02 Steve Ellcey <sje@cup.hp.com>
+ Jim Wilson <wilson@specifix.com>
+
+ PR target/31684
+ * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
+ copy_insn.
+
+2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
+ Richard Sandiford <richard@codesourcery.com>
+ Nigel Stephens <nigel@mips.com>
+
+ * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
+ (mips16e_output_save_restore): Declare.
+ (mips16e_save_restore_pattern_p): Likewise.
+ * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
+ * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
+ for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
+ && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
+ (BITSET_P): New global macro, extracted from...
+ (mips_for_each_saved_reg): ...here.
+ (mips16e_save_restore_info): New struct.
+ (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
+ (mips16e_save_restore_regs): New variable.
+ (mips_split_plus, mips16e_find_first_register): New functions.
+ (mips16e_mask_registers): New function.
+ (compute_frame_size): Expand the commentary before the function.
+ Enforce the MIPS16e save and restore register range restrictions.
+ Pad the general register save area at the low end.
+ (mips16e_save_restore_reg, mips16e_build_save_restore)
+ (mips16e_save_restore_pattern_p, mips16e_add_register_range)
+ (mips16e_output_save_restore, mips16e_collect_propagate_value)
+ (mips16e_collect_argument_save, mips16e_collect_argument_saves):
+ New functions.
+ (mips_expand_prologue, mips_expand_epilogue): Handle
+ GENERATE_MIPS16E_SAVE_RESTORE.
+ * config/mips/mips.md (*mips16e_save_restore): New pattern.
+
+2007-07-02 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/31966
+ PR tree-optimization/32533
+ * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
+ "basic_block" description as its third argument. Update function
+ calls to get destination bb from "edge" argument. Save "cond" into
+ aux field of the edge. Update prototype for changed arguments.
+ (if_convertible_loop_p): Clear aux field of incoming edges if bb
+ contains phi node.
+ (find_phi_replacement_condition): Operate on incoming edges, not
+ on predecessor blocks. If there is a condition saved in the
+ incoming edge aux field, AND it with incoming bb predicate.
+ Return source bb of the first edge.
+ (clean_predicate_lists): Clean aux field of outgoing node edges.
+ (tree_if_conversion): Do not initialize cond variable. Move
+ variable declaration into the loop.
+ (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
+ initializations of new_stmt, arg0 and arg1 variables.
+
+2007-07-02 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
+ SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
+
+2007-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa.c (useless_type_conversion_p): Document
+ future intent as defining the middle-end type system.
+ Re-structure to call langhook last, group by type class,
+ mark questionable parts.
+
+2007-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (types_compatible_p): Declare.
+ * tree-ssa.c (types_compatible_p): New function.
+ * ipa-type-escape.c (discover_unique_type): Use
+ types_compatible_p instead of lang_hooks.types_compatible_p.
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
+ * tree-vn.c (expressions_equal_p): Likewise.
+ * tree.c (fields_compatible_p): Likewise.
+ * tree-ssa-dom.c (avail_expr_eq): Likewise.
+ (cprop_operand): Use useless_type_conversion_p instead of
+ lang_hooks.types_compatible_p.
+ * tree-inline.c (setup_one_parameter): Likewise.
+ (declare_return_variable): Likewise.
+ * tree-nrv.c (tree_nrv): Likewise.
+ * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
+ (maybe_fold_offset_to_component_ref): Likewise.
+ (maybe_fold_offset_to_reference): Likewise.
+ * tree-ssa-copy.c (may_propagate_copy): Likewise.
+ (merge_alias_info): Likewise.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
+ * tree-ssa-phiopt.c (conditional_replacement): Likewise.
+ * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
+ * tree-tailcall.c (find_tail_calls): Likewise.
+ * tree-vect-generic.c (expand_vector_operations_1): Likewise.
+ * gimplify.c (canonicalize_addr_expr): Likewise.
+ (fold_indirect_ref_rhs): Likewise.
+ (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
+ (cpt_same_type): Likewise.
+ (check_pointer_types_r): Swap parameters to cpt_same_type
+ where appropriate.
+ * fold-const.c (fold_convert): Revert fix for PR15988.
+ * tree-inline.c (setup_one_parameter): Instead fix it here by
+ using fold_build1 instead of fold_convert and checking for
+ error_mark_node. Convert only if the conversion is necessary.
+
+2007-07-02 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac: Check for .gnu_attribute on Power.
+ * configure: Regenerate.
+ * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
+ attribute for floating-point ABI.
+
2007-07-02 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/32230
* dwarf2out.c (initial_return_save): Define only if used.
-2007-07-01 Richard Sandiford <richard@codesourcery.com>
+2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
Unreverting Richard's Revert of:
* genmodes.c (struct mode_data): Add ibit and fbit fields.
(blank_mode): Initialize ibit and fbit.
(adj_ibit, adj_fbit): New to adjust ibit and fbit.
- (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
+ (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
+ MODE_UACCUM.
(new_adjust): Change required_class to required_class_from and
required_class_to for testing within a range.
(complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2007-06-19 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c: Include "df.h".
- (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
+ (xtensa_builtin_saveregs): Use adjust_address instead of
+ change_address.
(xtensa_va_start): Invoke make_tree with sizetype for
expand_builtin_saveregs and then convert the result to a pointer.
Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
* opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
* dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
to indicate an error.
- (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
+ (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
+ New functions.
(dbg_cnt_process_opt): Print an error on a bad argument.
* dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
* common.opt (-fdbg-cnt-list): New.
(reorder_var_tracking_notes): New function.
(bfin_reorg): Pass no argument to split_all_insns. Don't call
update_life_info. Call df_analyze after scheduling and bundle
- generation. Call reorder_var_tracking_notes if generating these notes.
- Call df_finish_pass at the end.
+ generation. Call reorder_var_tracking_notes if generating these
+ notes. Call df_finish_pass at the end.
2007-06-12 Dirk Mueller <dmueller@suse.de>
* tree-ssa.c (init_tree_ssa): Use type safe memory macros.
* tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
variable names.
- * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
+ * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
+ macros.
(add_cost_one_coalesce): Likewise.
* tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
variable names. Rename orig to orig_name for consistency.
- * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
- conventions.
- (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
+ * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
+ coding conventions.
+ (cprop_into_successor_phis): Avoid using C++ keywords as variable
+ names.
(record_equivalences_from_stmt): Likewise.
* tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
the coding conventions.
(memref_hash): Likewise.
(memref_eq): Likewise.
(gather_mem_refs_stmt): Likewise.
- * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
- keywords as variable names.
+ * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
+ using C++ keywords as variable names.
(idx_find_step): Cast according to the coding conventions.
(idx_record_use): Likewise.
(find_depends): Likewise.
* tree-ssa-math-opts.c (occ_new ): Likwise.
* tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
macros.
- * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
- names.
+ * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
+ variable names.
(add_use_op): Likewise.
(add_vop): Likewise.
(add_vuse_op): Likewise.
decimal_single_format, decimal_double_format, decimal_quad_format,
c4x_single_format, c4x_extended_format, real_internal_format): Remove
initialization of log2_b.
- * real.h (i370_single_format, i370_double_format): Declarations removed.
+ * real.h (i370_single_format, i370_double_format): Declarations
+ removed.
* c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
field to always be one.
* gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
* ddg.c (create_ddg): LIkewise.
- * final.c (final): Remove hunk moving line numbernotes around since
+ * final.c (final): Remove hunk moving line number notes around since
they are no longer present at this stage.
(final_scan_insn): Use NOTE_KIND instead of
NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
* function.c (reorder_blocks_1): Likewise.
(epilogue_done): Likewise.
(reposition_prologue_and_epilogue_notes): Likewise.
- * print-rtl.c (print_rtx): Likewise; drop code for printing line number
- notes.
+ * print-rtl.c (print_rtx): Likewise; drop code for printing
+ line number notes.
(print_rtl): Likewise.
(print_rtl_single): Likewise.
* gcse.c (insert_insn_start_bb): Likewise.
(_mm_shufle_ps): Ditto. Add const to __mask argument.
* config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
(_mm_slli_epi32): Ditto.
- (_mm_srli_si128): Implement as always inlined function, not as a macro.
- Add __inline to function declaration.
+ (_mm_srli_si128): Implement as always inlined function, not as a
+ macro. Add __inline to function declaration.
(_mm_slli_si128): Ditto.
2007-05-19 Uros Bizjak <ubizjak@gmail.com>
* tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
pass_iv_optimize): Add TODO_ggc_collect.
- * function.h (struct function): Remove skip marker from x_current_loops.
+ * function.h (struct function): Remove skip marker from
+ x_current_loops.
* cfgloop.c: Include ggc.h.
(flow_loops_free, flow_loop_free): Free the loop descriptions in gc
memory.
(rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
that head of exits list is now not a part of struct loop.
(record_loop_exits): Allocate exits table in gc memory.
- (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
- head of exits list is now not a part of struct loop.
+ (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
+ that head of exits list is now not a part of struct loop.
* cfgloop.h (struct lpt_decision, struct nb_iter_bound,
struct loop_exit): Add GTY marker.
(struct loop): Add GTY marker. Make superloops vector gc allocated.
(struct loops): Add GTY marker. Make larray vector gc allocated.
Add param marker to exits table.
(get_loops): Type changed.
- * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
- dependency.
+ * Makefile.in (tree-scalar-evolution.o): Add
+ gt-tree-scalar-evolution.h dependency.
(cfgloop.o, loop-init.o): Add ggc.h dependency.
(GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
* basic-block.h (struct basic_block_def): Remove skip marker from
* c-format.c (check_format_types): Use unsigned_type_for instead of
c_common_unsigned_type.
* c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
- * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
- c_common_unsigned_type.
+ * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
+ of c_common_unsigned_type.
* convert.c (convert_to_integer): Use unsigned_type_for instead of
lang_hooks.types.unsigned_type.
* expmed.c (make_tree): Use unsigned_type_for instead of
and dr_analyze_alias.
(initialize_data_dependence_relation): Use dr_may_alias_p
and object_address_invariant_in_loop_p.
- (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
- is chrec_dont_know.
- (find_data_references_in_stmt): Restrict the analysis of data references
- to the given loop nest.
+ (compute_self_dependence): Handle the case when
+ DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
+ (find_data_references_in_stmt): Restrict the analysis of data
+ references to the given loop nest.
(find_data_references_in_loop): Made static. Pass loop nest to
find_data_references_in_stmt.
(compute_data_dependences_for_loop): Use DR_VOPS.
superloops vector instead of "pred" array.
(establish_preds): Take father loop as an argument. Initialize the
superloops vector.
- (flow_loop_tree_node_add): Pass father loop to establish_preds. Do not
- initialize loop->outer.
+ (flow_loop_tree_node_add): Pass father loop to establish_preds.
+ Do not initialize loop->outer.
(flow_loop_tree_node_remove): Truncate the superloops vector.
* cfgloop.h (struct loop): Removed field "outer", fields "depth" and
"pred" merged to "superloops" vector.
2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/31885
- * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
- to be undetermined.
+ * tree-chrec.c (chrec_contains_undetermined): Do not consider
+ NULL_TREE to be undetermined.
(automatically_generated_chrec_p): Return false for NULL.
2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
2007-05-09 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
- for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double
- instead of operand_subword.
+ for floating-point values if HOST_BITS_PER_LONG > 32. Use
+ split_double instead of operand_subword.
2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
2007-05-03 Jan Hubicka <jh@suse.cz>
- * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
- for pointer type in more cases than before.
+ * fold-const.c (fold_unary): Convert (T1)(X op Y) into
+ ((T1)X op (T1)Y), for pointer type in more cases than before.
* gimplify.c (gimplify_expr): Fold (void *)&a + 4.
2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/31699
- * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong
- code.
+ * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
+ wrong code.
(vect_enhance_data_refs_alignment): Compute peel amount using
TYPE_VECTOR_SUBPARTS instead of vf.
* tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
(reset_block_changes, record_block_change, finalize_block_changes,
check_block_change, free_block_changes): Kill.
* function.h (reset_block_changes, record_block_change,
- finalize_block_changes, check_block_change, free_block_changes): Remove
- prototypes.
+ finalize_block_changes, check_block_change, free_block_changes):
+ Remove prototypes.
(struct function): Remove ib_boundaries_block.
* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
Use curr_insn_locator to initialize locator.
* tree-flow.h (disband_implicit_edges): Declaration removed.
* tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
branches.
- (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle COND_EXPRs
- without gotos.
+ (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
+ COND_EXPRs without gotos.
(disband_implicit_edges, has_label_p): Removed.
(tree_verify_flow_info): Verify that COND_EXPR branches are empty.
(tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
2007-04-25 Bob Wilson <bob.wilson@acm.org>
- * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an exception
- for divide-by-zero.
+ * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
+ exception for divide-by-zero.
(__umodsi3, __modsi3): Likewise.
2007-04-25 Dirk Mueller <dmueller@suse.de>
2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/31641
- * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
- argument of 0 for memset.
+ * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
+ length argument of 0 for memset.
(s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
unsigned shift instead of the signed variant.
(reset_block_changes, record_block_change, finalize_block_changes,
check_block_change, free_block_changes): Kill.
* function.h (reset_block_changes, record_block_change,
- finalize_block_changes, check_block_change, free_block_changes): Remove
- prototypes.
+ finalize_block_changes, check_block_change, free_block_changes):
+ Remove prototypes.
(struct function): Remove ib_boundaries_block.
* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
Use curr_insn_locator to initialize locator.
(reset_block_changes, record_block_change, finalize_block_changes,
check_block_change, free_block_changes): Kill.
* function.h (reset_block_changes, record_block_change,
- finalize_block_changes, check_block_change, free_block_changes): Remove
- prototypes.
+ finalize_block_changes, check_block_change, free_block_changes):
+ Remove prototypes.
(struct function): Remove ib_boundaries_block.
* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
Use curr_insn_locator to initialize locator.
2007-04-14 Jakub Jelinek <jakub@redhat.com>
PR c++/25874
- * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
- post dominators and cleanup cfg before returning.
+ * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
+ dominators, post dominators and cleanup cfg before returning.
2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
* config/mips/mips.c (mips_global_symbol_p): New function.
(mips_symbol_binds_local_p): Likewise.
(mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
- and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
- and mips_symbol_binds_local_p.
+ and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
+ mips_global_symbol_p and mips_symbol_binds_local_p.
(mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
(override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
* tree-data-ref.c (affine_function_zero_p, constant_access_functions,
- insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
+ insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
+ New.
(build_classic_dist_vector): Call add_distance_for_zero_overlaps.
2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/31383
- * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
- to have the same length.
+ * tree-data-ref.c (affine_function_equal_p): Do not require the
+ vectors to have the same length.
2007-03-30 Jan Hubicka <jh@suse.cz>
2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
- * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
- SRC->DEST replacement failed anyway.
+ * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
+ action if SRC->DEST replacement failed anyway.
2007-03-28 Mike Stump <mrs@apple.com>
* gengtype-lex.l: Distinguish unions from structures in the
token type. Don't call find_structure; return the tag as a string.
- * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
- Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
- Reorganize typedef_struct production accordingly.
+ * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
+ ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
+ string. Reorganize typedef_struct production accordingly.
Use create_nested_ptr_option.
* gengtype.c (create_nested_ptr_option): New function.
* gengtype.h: Declare it.
or scalar_nonchar as appropriate.
(adjust_field_type): Look at scalar_is_char boolean to decide whether
to use string_type.
- (throughout): Use scalar_nonchar instead of calling create_scalar_type,
- whenever possible.
+ (throughout): Use scalar_nonchar instead of calling
+ create_scalar_type, whenever possible.
(main): Initialize scalar_char and scalar_nonchar before calling
gen_rtx_next.
* gengtype-lex.l: Adjust for removal of second argument to
(fT0): New mode attribute.
("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
"*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
- * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
- no secondary memory is needed when moving DFmode values between GPRs
- and FPRs.
+ * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
+ instruction no secondary memory is needed when moving DFmode values
+ between GPRs and FPRs.
2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.md: Add fpstore_load and store_fpload instruction types. Provide
- reservation, bypass and anti-bypass descriptions for these instructions.
- Update move patterns.
+ reservation, bypass and anti-bypass descriptions for these
+ instructions. Update move patterns.
* pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
TYPE_FPSTORE.
2007-03-13 Jan Hubicka <jh@suse.cz>
- * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
- when profile esitmate is present, calls with very low frequency are
- cold.
+ * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
+ attributes, when profile esitmate is present, calls with very low
+ frequency are cold.
2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
- * pa.c (attr_length_call): Revise condition for long pc-relative branch.
- (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
- calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on
- SOM target.
+ * pa.c (attr_length_call): Revise condition for long
+ pc-relative branch.
+ (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
+ local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
+ sequence on SOM target.
2007-03-09 Geoffrey Keating <geoffk@apple.com>
-mstack-size is used without providing -mstack-guard.
(s390_emit_prologue): Choose stack_guard value automatically if not
provided via command line.
- * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
+ * doc/invoke.texi: Adjust description of -mstack-guard and
+ -mstack-size.
2007-03-07 Richard Sandiford <richard@codesourcery.com>
2007-03-06 Jan Hubicka <jh@suse.cz>
* errors.h (warning, error, fatal, internal_error): Mark as cold.
- * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
- are hot.
+ * predict.c (maybe_hot_bb): Cold functions are never hot; hot
+ functions are hot.
(probably_cold_bb_p): Cold functions are cold.
(probably_never_executed_bb_p): Cold functions are cold.
(tree_bb_level_predictions): Predict calls to cold functions as not
* i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
* cmodel.h: Add LARGE PIC.
* i386.md (UNSPEC_PLTOFF): New.
- (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
- needed.
+ (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
+ unspecs as needed.
(*call_1_rex64): Disable for large models.
(*call_1_rex64_large): New.
(*call_value_1_rex64): Disable for large models.
(ix86_output_addr_diff_elt): Output 64bit tables when needed.
(ix86_expand_move): Legitimize pic address when in PIC mode.
(construct_plt_address): New function.
- (ix86_expand_call): Offload the address to register and use GOT pointer
- for large model.
+ (ix86_expand_call): Offload the address to register and use GOT
+ pointer for large model.
* invoke.texi (mcmodel=large): Update documentation.
2007-03-06 Richard Henderson <rth@redhat.com>
2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
- * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the unroll
- factor by the estimated number of iterations.
- (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
- prefetch latency.
+ * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
+ unroll factor by the estimated number of iterations.
+ (loop_prefetch_arrays): Do not prefetch in loops that iterate less
+ than prefetch latency.
* config/i386/driver-i386.c (describe_cache, detect_caches_amd,
decode_caches_intel, detect_caches_intel): New functions.
2007-02-24 Jan Hubicka <jh@suse.cz>
PR middle-end/30509
- * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
+ * tree-inline.c (copy_bb): Produce exact copy of EH info when
+ copying for inlining.
2007-02-24 Uros Bizjak <ubizjak@gmail.com>
Jan Hubicka <jh@suse.cz>
* function.c (gimplify_parameters): Use build_call_expr.
- * tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
- instead of TREE_CODE_LENGTH.
+ * tree-vectorizer.c (vect_is_simple_reduction): Use
+ TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
* ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
(scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
* config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
accessors.
- * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
- instead of arglist. Use new CALL_EXPR accessors. Fix callers.
+ * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
+ CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
+ Fix callers.
(bfin_expand_unop_builtin): Likewise.
(bfin_expand_builtin): Use new CALL_EXPR accessors.
the new forwarder block.
(make_forwarder_block): Only call new_bb_cbk if it is not NULL.
Handle the case latch is NULL.
- * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
- when marking loop exits.
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
+ modifications when marking loop exits.
* ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
be modified.
* loop-init.c (loop_optimizer_init): Do not modify cfg. Call
2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR target/29682
- * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
- general or fp registers. Add comments.
+ * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
+ loads to general or fp registers. Add comments.
* config/ia64/ia64.md (reg_pred_prefix): Add comment.
2007-02-02 Paolo Bonzini <bonzini@gnu.org>
(DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
- (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and
- all callers.
+ (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
+ and all callers.
(dep_cost): Declare.
* sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
* target.h (struct _dep): Declare to use in
gcc_target.sched.is_costly_dependence.
(struct gcc_target.sched.adjust_cost): Fix typo.
- (struct gcc_target.sched.is_costly_dependence): Change signature to use
- single dep_t parameter instead of an equivalent triad.
+ (struct gcc_target.sched.is_costly_dependence): Change signature to
+ use single dep_t parameter instead of an equivalent triad.
(struct gcc_target.sched.adjust_cost_2): Remove.
* target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
new scheduler dependencies lists.
(ia64_gen_check): Ditto.
- * config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler
- dependencies lists.
+ * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
+ scheduler dependencies lists.
* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
signature to correspond to the targetm.sched.is_costly_dependence hook.
2007-01-28 Jan Hubicka <jh@suse.cz>
- * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
- variant handling histograms; add wrapper.
+ * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
+ Add variant handling histograms; add wrapper.
(clear_storage_via_libcall): Export.
(emit_block_move_hints): Break out from ...; add histograms.
(emit_block_move): ... this one.
(set_storage_via_setmem): Update prototype.
* doc/md.texi (movmem, setmem): Document new arguments.
- * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
- new histograms.
+ * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
+ Add new histograms.
(stringop_block_profile): New global function.
(tree_stringops_values_to_profile): Profile block size and alignment.
* value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
* ipa-inline.c (initial_insns, max_insns): Delete.
(compute_max_insns): New function.
- (cgraph_decide_inlining_of_small_function): Use it; take minimal amount
- of insns as base for code growth.
+ (cgraph_decide_inlining_of_small_function): Use it; take minimal
+ amount of insns as base for code growth.
(cgraph_decide_inlining): Make initial_insns local; do not compute
max_insns.
* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
* unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
_uleb128_t and _Unwind_SWord with _sleb128_t.
- * unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program,
- uw_frame_state_for, uw_update_context_1): Likewise.
+ * unwind-dw2.c (extract_cie_info, execute_stack_op,
+ execute_cfa_program, uw_frame_state_for, uw_update_context_1):
+ Likewise.
* unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
* unwind-pe.h (read_uleb128, read_sleb128,
read_encoded_value_with_base): Likewise.
2007-01-24 Jan Hubicka <jh@suse.cz>
- * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls.
+ * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
+ of calls.
2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
2007-01-16 Jan Hubicka <jh@suse.cz>
* tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
- the names, just unlink the chain so we don't crash on dangling pointers
+ the names, just unlink the chain so we don't crash on dangling
+ pointers
to dead SSA names.
2007-01-16 Jan Hubicka <jh@suse.cz>
* cgraph.h (cgraph_decide_inlining_incrementally): Kill.
* tree-pass.h: Reorder to make IPA passes appear toegher.
- (pass_early_inline, pass_inline_parameters, pass_apply_inline): Declare.
+ (pass_early_inline, pass_inline_parameters, pass_apply_inline):
+ Declare.
* cgraphunit.c (cgraph_finalize_function): Do not compute inling
parameters, do not call early inliner.
* ipa-inline.c: Update comments. Include tree-flow.h
(set_single_exit): Removed.
* cfgloop.h (struct loop_exit): New function.
(struct loop): single_exit_ field replaced by exits field.
- (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
+ (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
+ LOOPS_HAVE_RECORDED_EXITS.
(struct loops): Added exits hash.
(mark_single_exit_loops, set_single_exit): Declaration removed.
(release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
Adjust register allocate order and update some macro define.
* config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
mdx_block_move_straight, mdx_block_move_loop_head,
- mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
- mdx_block_move): Added.
+ mdx_block_move_loop_body, mdx_block_move_loop_foot,
+ mdx_block_move_loop, mdx_block_move): Added.
(mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
mdp_limm): Updated and fix some bug and typo.
* config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.