+2010-10-20 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR fortran/42169
+ * ira-emit.c (store_can_be_removed_p): Return false instead of
+ gcc_unreachable.
+
+2010-10-20 Dmitry Melnik <dm@ispras.ru>
+
+ * fold-const.c (fold_binary_loc): New transformation.
+
+2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/46085
+ * config/i386/sse.md (reduc_splus_v8sf): Updated.
+ (reduc_splus_v4df): Likewise.
+
+2010-10-20 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/45860
+ * tree-ssa-phiopt.c (cond_store_replacement): Do not do
+ conditional store replacement for non-register type stores.
+
+2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * stor-layout.c (skip_simple_constant_arithmetic): New function.
+ (self_referential_size): Use it instead of skip_simple_arithmetic.
+
+2010-10-20 Olivier Hainque <hainque@adacore.com>
+
+ * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
+ If the current function calls eh_return, claim live all registers
+ that we need to check for liveness otherwise.
+
+2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * c-decl.c (c_write_global_declarations): Call
+ objc_write_global_declarations when compiling Objective-C.
+ * c-lang.c (finish_file): Removed.
+
+2010-10-19 DJ Delorie <dj@redhat.com>
+
+ * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
+ (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
+ (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
+ (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
+ * doc/tm.texi: Regenerate.
+ * targhooks.h (default_label_align_after_barrier_max_skip,
+ default_loop_align_max_skip, default_label_align_max_skip,
+ default_jump_align_max_skip): Declare.
+ * target.def (label_align_after_barrier_max_skip): New.
+ (loop_align_max_skip): New.
+ (label_align_max_skip): New.
+ (jump_align_max_skip): New.
+ * system.h (poison): Add those macros to the list.
+ * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
+ (LOOP_ALIGN_MAX_SKIP): Remove.
+ (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
+ (JUMP_ALIGN_MAX_SKIP): Remove.
+ (default_label_align_after_barrier_max_skip): New.
+ (default_loop_align_max_skip): New.
+ (default_label_align_max_skip): New.
+ (default_jump_align_max_skip): New.
+ (compute_alignments): Use the new hooks.
+ (shorten_branches): Likewise.
+
+2010-10-19 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
+ * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
+ (fma4i_fmadd_<mode>): New.
+ (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
+ fma4_fm*_<mode> and adjust to be pre-reload splitters to the
+ standard fma patterns.
+ (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
+ enable for FMA.
+ (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
+ (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
+ (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
+
+2010-10-19 Paul Koning <pkoning@equallogic.com>
+
+ * lower-subreg.c (resolve_shift_zext): Delete conditional code for
+ WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
+
+2010-10-19 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
+ (fmadf4, *fmsdf4, *nfmadf4): New.
+ (fmaxf4, *fmsxf4, *nfmaxf4): New.
+
+2010-10-19 Michael Eager <eager@eagercon.com>
+
+ * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
+ Use sjlj unwind info for exceptions.
+
+2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
+
+ PR fortran/43414
+ * dwarf2out.c (add_calling_convention_attribute): Flag main
+ Fortran subroutine with DW_AT_main_subprogram.
+
+2010-10-19 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.c (rx_function_value): Small integer types are
+ promotes to SImode.
+ (rx_promote_function_mode): New function.
+ (TARGET_PROMOTE_FUNCTION_MODE): Define.
+
+2010-10-19 Nick Clifton <nickc@redhat.com>
+
+ * config/mep/mep.c (mep_print_operand): Use
+ targetm.strip_name_encoding.
+ (mep_output_aligned_common): Likewise.
+
+2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
+ * gengtype.c (new_structure): Remove ad-hoc "location_s"
+ processing.
+
+2010-10-18 Richard Henderson <rth@redhat.com>
+
+ * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
+ (fma (neg a) (neg b) c) and (fma a (neg b) c).
+
+2010-10-18 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
+ IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
+ IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
+ IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
+ IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
+ IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
+ IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
+ IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
+ IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
+ IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
+ (bdesc_multi_arg): Remove the corresponding builtins.
+ * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
+ (UNSPEC_FMA4_FMSUBADD): Remove.
+ (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
+ * config/i386/sse.md (FMA4MODEF4): Remove.
+ (FMAMODE): Add.
+ (fma<mode>4): New expander.
+ (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
+ and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
+ (*fma4i_fmsub_<mode>): Similarly.
+ (*fma4i_fnmadd_<mode>): Similarly.
+ (*fma4i_fnmsub_<mode>): Similarly.
+ (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
+ with the first operand.
+ (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
+ of explicit arithmetic. Macroize with AVXMODEF2P.
+ (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
+ (xop_frcz<mode>2): Macroize with FMAMODE.
+ (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
+ the first operand.
+ * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
+ extra negations.
+ (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
+ (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
+ (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
+ (_mm256_msub_ps, _mm256_msub_pd): Likewise.
+ (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
+ (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
+ (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
+ (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
+
+2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/45966
+ * combine.c (try_combine): If added_sets_2, deal with the case
+ where i0 feeds i1 and i1 feeds i2.
+
+2010-10-18 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (cgraph_externally_visible_p): Handle externally visible and
+ preserve flags before trying to guess on visibility.
+ (varpool_externally_visible_p): New function.
+ (function_and_variable_visibility): Use it.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Implemented parsing @synthesize and @dynamic for Objective-C.
+ * c-parser.c (c_parser_external_declaration): Recognize
+ RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
+ (c_parser_objc_at_synthesize_declaration): New.
+ (c_parser_objc_at_dynamic_declaration): New.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * c-parser.c (c_parser_objc_class_declaration): After finding an
+ error, parse the whole declaration then reset parser->error.
+
+2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/46041
+ * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
+ * builtins.c (mode_has_fma): Ditto.
+
+2010-10-18 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/36898
+ PR middle-end/43760
+ * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
+
+2010-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/i386.c (ix86_option_override_internal): Define and
+ use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
+ default.
+ * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
+ (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from 'apple/trunk' branch on FSF servers.
+ * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
+ following Objective-C change:
+
+ 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4301047
+ * c-parse.in (objc_quals): Build objc qualifier list same way
+ as gcc-3.3
+
+2010-10-18 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
+ function_and_variable_visibility): Revert accidental commit.
+
+2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from 'apple/trunk' branch on FSF servers.
+ * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
+ the following Objective-C change:
+
+ 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4204796
+ * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
+ 'volatilized' type used in a typeof operator.
+
+2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
+ * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
+ rewrite modelled on gimple_purge_dead_eh_edges.
+ (gimple_purge_all_dead_abnormal_call_edges): New function.
+ * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
+ directly instead of through gimple_purge_dead_abnormal_call_edges.
+ * tree-ssa-pre.c (need_ab_cleanup): New static variable.
+ (eliminate): Set bit in need_ab_cleanup for the basic block if we have
+ removed AB side-effects from one of its statements.
+ (init_pre): Initialize need_ab_cleanup.
+ (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
+ are set in need_ab_cleanup. Free need_ab_cleanup afterward.
+
+2010-10-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/46015
+ * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
+ on computed goto argument.
+
+2010-10-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/45967
+ * tree-ssa-structalias.c (type_could_have_pointers): Remove.
+ (could_have_pointers): Likewise.
+ (handle_rhs_call, handle_const_call, handle_pure_call,
+ find_func_aliases, intra_create_variable_infos): Remove calls to them.
+ (struct fieldoff): Add must_have_pointers field.
+ (type_must_have_pointers): New function.
+ (field_must_have_pointers): Likewise.
+ (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
+ Adjust field merging.
+ (create_function_info_for): May-have-pointers of varinfo is
+ almost always true.
+ (create_variable_info_for_1): Likewise.
+
+2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
+
+ * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
+ of operands to vec_concat.
+
+2010-10-18 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44950
+ * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
+ also clear references to entries of it.
+
+2010-10-18 Andi Kleen <ak@linux.intel.com>
+
+ PR other/43448
+ * gccbug.in: Remove.
+ * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
+ (doc, distclean, install-common): Remove reference to gccbug.
+ * configure: Regenerate.
+ * configure.ac (all_outputs): Remove gccbug.
+ * doc/configfiles.texi: Remove references to gccbug.
+ * doc/sourcebuild.texi: Dito.
+
+2010-10-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/46019
+ * fold-const.c (fold_binary_loc): If integer_pow2p has
+ TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
+
+2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
+ Jeremie Salvucci <jeremie.salvucci@free.fr>
+
+ * gengtype.c (verbosity_level): Add variable.
+ (set_gc_used): Count variables for verbosity.
+ (close_output_files): Backing up files, counting written ones
+ verbosily.
+ (write_types): Count emitted functions for verbosity. Added
+ debug messages.
+ (write_enum_defn): Count structures for verbosity. Added debug
+ messages.
+ (gengtype_long_options): Add "verbose" & "backupdir".
+ (print_usage): Ditto.
+ (main): Verbose display of parsed files.
+
+ * gengtype.h (verbosity_level): Add declaration.
+
+2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * gengtype.c (parse_program_options): Add allocation of
+ plugin_files, and correct test on nb_plugin_files.
+
+2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Merge from 'apple/trunk' branch on FSF servers.
+
+ 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4133425
+ * c-decl.c (undeclared_variable): Issue diagnostic on
+ private 'ivar' access.
+
+2010-10-17 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/46051
+ * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
+ generated sequence to match *avx_vperm2f128<mode>_nozero.
+ (vec_interleave_lowv4df): Ditto.
+ (vec_interleave_highv8sf): Ditto.
+ (vec_interleave_lowv8sf): Ditto.
+
+2010-10-17 Kai Tietz <kai.tietz@onevision.com>
+
+ * libgcov.c (create_file_directory): Enable it for win32 case.
+ (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
+ * doc/gcov.texi (GCOV_PREFIX): Adjusted.
+ (GCOV_PREFIX_SKIP): Likewise.
+
+2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * doc/objc.texi (GNU Objective-C runtime API): New section.
+ (Modern GNU Objective-C runtime API): New section.
+ (Traditional GNU Objective-C runtime API): New section.
+ (Executing code before main): Mention that this section is
+ specific to the GNU Objective-C runtime.
+ (Garbage Collection): Same.
+
+2010-10-17 Uros Bizjak <ubizjak@gmail.com>
+
+ * c-parser.c (c_parser_for_statement): Move initialization of
+ cond and incr before if.
+
+2010-10-17 Anatoly Sokolov <aesok@post.ru>
+
+ * target.def (preferred_output_reload_class): New hook.
+ * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
+ * doc/tm.texi: Regenerate.
+ * targhooks.c (default_preferred_output_reload_class): New function.
+ * targhooks.h (default_preferred_output_reload_class): Declare.
+ * reload.c (find_dummy_reload): Change rclass argument type from
+ enum reg_class to reg_class_t. Change this_alternative array type
+ from enum reg_class to reg_class_t.
+ Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
+ (push_reload): Change preferred_class variable type to reg_class_t.
+ Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
+ * recog.c (reg_fits_class_p): Change result type to bool. Change cl
+ argument type from enum reg_class to reg_class_t. Use
+ HARD_REGISTER_NUM_P predicate.
+ * recog.h (reg_fits_class_p): Update prototype.
+
+ * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
+ * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
+ Remove.
+ * config/i386/i386.c (ix86_preferred_output_reload_class): Make
+ static. Change regclass argument and result types from enum reg_class
+ to reg_class_t.
+ (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
+
+2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
+
+ * c-parser.c (c_parser_objc_class_instance_variables): Update to use
+ visibility enum, and handle @package.
+
+2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * doc/objc.texi (What you can and what you cannot do in +load):
+ Document that sending messages to constant string objects in +load
+ is not guaranteed to work.
+
+2010-10-16 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/44206
+ * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
+ existence of refrences before removing the function.
+
+2010-10-16 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
+ only_called_at_startup and only_called_at_exit.
+ (cgraph_propagate_frequency): Compute only_called_at_startup and
+ only_called_at_exit.
+ * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
+ only_called_at_exit.
+ * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
+ flags.
+ * predict.c (compute_function_frequency): Initialize the new flags.
+
+2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
+ ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
+ on the bounds of its domain.
+ * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
+
+2010-10-16 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/avr/avr-protos.h (preferred_reload_class): Remove.
+ * config/avr/avr.c (preferred_reload_class): Remove.
+ * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/pa/pa.c (emit_move_sequence): Update comment
+ * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
+ * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
+
+2010-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ * opts.c (set_fast_math_flags,
+ set_unsafe_math_optimizations_flags): Make static.
+ * toplev.h (set_fast_math_flags,
+ set_unsafe_math_optimizations_flags): Remove prototypes.
+
+2010-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.c (arm_option_optimization): Set
+ flag_section_anchors to 1 not 2.
+ * config/i386/i386.c (ix86_option_override_internal): Check
+ global_options_set.x_flag_zee and
+ global_options_set.x_flag_omit_frame_pointer.
+ (ix86_option_optimization): Don't set flag_omit_frame_pointer and
+ flag_zee to 2.
+ * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
+ global_options_set.x_flag_omit_frame_pointer.
+ * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
+ opts->x_flag_section_anchors to 1 not 2.
+ * config/sh/sh.c (sh_option_optimization): Don't set
+ flag_schedule_insns to 2.
+ (sh_option_override): Check
+ global_options_set.x_flag_schedule_insns.
+ * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
+
+2010-10-16 Kai Tietz <kai.tietz@onevision.com>
+
+ * configure.ac: Make sure inhibit_libc remains false for mingw targets
+ as cross.
+ * configure: Regenerated.
+
+2010-10-15 Xinliang David Li <davidxl@google.com>
+
+ * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
+ function.
+ (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
+ into a recursive function.
+
+2010-10-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
+ (*movdfcc_1): ditto.
+
+2010-10-15 Joseph Myers <joseph@codesourcery.com>
+
+ * target.def (target_option.init_struct): New hook.
+ * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
+ * doc/tm.texi: Regenerate.
+ * hooks.c (hook_void_gcc_optionsp): New.
+ * hooks.h (hook_void_gcc_optionsp): Declare.
+ * langhooks-def.h (lhd_init_options_struct): Remove.
+ (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
+ * langhooks.c (lhd_init_options_struct): Remove.
+ * opts.c (init_options_struct): Also call
+ targetm.target_option.init_struct.
+ * config/i386/i386.c (ix86_option_init_struct,
+ TARGET_OPTION_INIT_STRUCT): New.
+ (ix86_option_optimization): Move some settings to
+ ix86_option_init_struct.
+ * config/pdp11/pdp11.c (pdp11_option_init_struct,
+ TARGET_OPTION_INIT_STRUCT): New.
+ (pdp11_option_optimization): Move some settings to
+ pdp11_option_init_struct.
+ * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
+ rs6000_option_init_struct. Use options structure pointer.
+ (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
+ * config/s390/s390.c (s390_option_init_struct,
+ TARGET_OPTION_INIT_STRUCT): New.
+ (s390_option_optimization): Don't set
+ flag_asynchronous_unwind_tables here.
+ * config/sh/sh.c (sh_option_init_struct,
+ TARGET_OPTION_INIT_STRUCT): New.
+ (sh_option_optimization): Don't set flag_finite_math_only here.
+ * config/spu/spu.c (spu_option_optimization): Replace by
+ spu_option_optimization. Use options structure pointer.
+ (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
+
+2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
+
+ * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
+ SIGN_EXTRACT and ZERO_EXTRACT which were missing.
+ (Standard names): Document fma.
+
+ * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
+ __FP_FAST_FMAF, __FP_FAST_FMAL.
+
+ * builitns.c (expand_builtin_mathfn_ternary): New function for
+ expanding ternary math functions, like fma.
+ (expand_builtin): Call it for the fma builtins.
+
+ * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
+ ops at present.
+
+ * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
+ vectorizable functions to support vectorizing fma.
+
+ * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
+ Handle fma builtins.
+
+ * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
+ (UNSPEC_VSX_MSUB): Ditto.
+ (UNSPEC_VSX_NMADD): Ditto.
+ (UNSPEC_VSX_NMSUB): Ditto.
+ (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
+ of UNSPEC. Renumber combiner patterns.
+ (vsx_fmsub<mode>4*): Ditto.
+ (vsx_fnmadd<mode>4*): Ditto.
+ (vsx_fnmsub<mode>4*): Ditto.
+
+ * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
+ (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
+ multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
+ (altivec_vmaddfp_1): Ditto.
+ (altivec_vmaddfp_2): Ditto.
+ (atlivec_mulv4sf3): Ditto.
+ (altivec_vnmsubfp): Ditto.
+ (altivec_vnmsubfp_1): Ditto.
+ (altivec_vnmsubfp_2): Ditto.
+ (altivec_vnmsubfp_3): Delete.
+
+ * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
+ (fmasf4_fpr): Ditto.
+ (fmssf4_fpr): Ditto.
+ (fnmasf4_fpr): Ditto.
+ (fnmssf4_fpr): Ditto.
+ (fmadf4): Ditto.
+ (fmadf4_fpr): Ditto.
+ (fmsdf4_fpr): Ditto.
+ (fnmadf4_fpr): Ditto.
+ (fnmsdf4_fpr): Ditto.
+
+ * optabs.h (OTI_fma): Add fma optab.
+ (fma_optab): Ditto.
+
+ * genopinit.c (optabs): Set fma optab.
+
+ * rtl.def (FMA): Add FMA rtl.
+
+ * tree.h (mode_has_fma): New function to return if MODE supports a
+ fast multiply and add instruction.
+ * builtins.c (mode_has_fma): Ditto.
+
+2010-10-15 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-out.c (write_symbol): Use pointer set of seen
+ objects instead of bitmap.
+ (produce_symtab): Likewise; output defined symbols first.
+
+2010-10-15 Jie Zhang <jie@codesourcery.com>
+
+ * doc/invoke.texi: Add -fstrict-volatile-bitfields to
+ Option Summary and Index.
+
+2010-10-15 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
+ for automatic variables again.
+
+2010-10-15 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/extend.texi (Variable Length): Don't refer to VLAs not
+ conforming to C99.
+
+2010-10-15 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rx/rx.c (rx_option_optimization): Change to
+ rx_override_options_after_change. Don't change
+ flag_lto_compression_level. Don't check for changes to whether
+ FPU instructions can be used. Check and set only
+ flag_finite_math_only, not other fast-math flags.
+ (rx_option_override): Call rx_override_options_after_change.
+ (TARGET_OPTION_OPTIMIZATION): Remove.
+ (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
+
+2010-10-15 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
+ disable section anchors for lang_hooks.name[4] != 'O'.
+
+2010-10-15 Joseph Myers <joseph@codesourcery.com>
+
+ * config/frv/frv.c (frv_option_optimization,
+ TARGET_OPTION_OPTIMIZATION): Remove.
+ * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
+
+2010-10-15 Michael Matz <matz@suse.de>
+
+ * cgraphunit.c (clone_of_p): Define unconditionally.
+
+2010-10-15 Richard Guenther <rguenther@suse.de>
+
+ PR lto/45957
+ * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
+
+2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
+
+ * ifcvt.c (find_active_insn_before): New function.
+ (find_active_insn_after): New function.
+ (cond_exec_process_if_block): Use new functions to replace
+ prev_active_insn() and next_active_insn().
+
+2010-10-14 Yao Qi <yao@codesourcery.com>
+
+ PR target/45447
+ * config/arm/arm.c (arm_build_builtin_va_list): Assign
+ va_list_name to TYPE_STUB_DECL (va_list_type).
+
+2010-10-14 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/45621
+ * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
+ redirected to clone, be happy.
+ * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
+ * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
+ former_clone_of unconditionally.
+
+2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
+
+ Merge from FSF apple 'trunk' branch.
+ 2006 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radars 4436866, 4505126, 4506903, 4517826
+ * c-parser.c (c_parser, objc_property_attr_context) New flag.
+ (c_lex_one_token): Handle property attributes.
+ (c_parser_external_declaration): Handle @property.
+ (c_parser_declaration_or_fndef): Warn on invalid attributes before
+ @alias, @class, @end and @property objc keywords.
+ (c_parser_objc_methodprotolist): Handle @property.
+ (c_parser_objc_property_attrlist): New.
+ (c_parser_objc_at_property): New.
+ * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
+ (build_modify_expr): Likewise.
+
+2010-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/46008
+ * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
+
+2010-10-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44913
+ * tree-data-ref.c (disjoint_objects_p): Remove.
+ (dr_may_alias_p): Simplify. Only hand the base object to
+ the alias-oracle.
+ * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
+ some more trees, bail out instead of asserting.
+ (ptr_derefs_may_alias_p): Likewise. Export.
+ (refs_may_alias_p_1): Handle STRING_CSTs.
+ * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
+
+2010-10-14 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/45969
+ * c-typeck.c (build_binary_op): Don't try to compute a semantic
+ type with excess precision for boolean operations.
+
+2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
+ Basile Starynkevitch <basile@starynkevitch.net>
+
+ * gengtype.c: Include getopt.h and version.h.
+
+ (lang_bitmap, struct outf, outf_p)
+ (get_output_file_with_visibility, oprintf): Definitions moved to
+ gengtype.h
+ (output_files, header_file, srcdir, srcdir_len, this_file)
+ (do_dump): No more static variables.
+ (do_debug): New.
+ (dbgprint_count_type_at): Added new function.
+ (gengtype_long_options): New.
+ (print_usage, print_version, parse_program_options): New.
+ (main): Call parse_program_options, and removed old option
+ handling code. Added some debug output.
+
+ * gengtype.h: Updated copyright year.
+ (lang_bitmap, struct outf, outf_p, header_file, oprintf)
+ (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
+ Moved from gengtype.c to here.
+ (do_debug, read_state_filename, write_state_filename): New variables.
+ (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
+
+ * Makefile.in:
+ (REVISION): Always defined.
+ (version.o): Removed ifdef REVISION_c.
+ (s-gtype): Pass arguments to build/gengtype program.
+ (build/version.o): Added building rule.
+ (build/gengtype$(build_exeext)): Added build/version.o.
+
+2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
+
+ Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
+ * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
+ __strong macros.
+
+2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
+ may_trap_or_fault_p instead of may_trap_p predicate.
+ * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
+ (substitute_placeholder_in_expr): Likewise.
+ * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
+ flag on MEM_REF nodes.
+ (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
+ flags on INDIRECT_REF nodes.
+
+2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
+ (arm*-*-uclinux*eabi) <tm_file>: Likewise.
+ (arm*-*-eabi*) <tm_file>: Likewise.
+ (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
+ (frv-*-*linux*) <tm_file>: Likewise.
+ * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
+ and associated helper macros.
+ * config/frv/frv-abi.h: Delete.
+
+2010-10-14 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44561
+ * tree.def (NULLPTR_TYPE): New tree code.
+ * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
+ * dwarf2out.c (is_base_type): Likewise.
+ (gen_type_die_with_usage): Likewise.
+ * sdbout.c (plain_type_1): Likewise.
+ * tree.c (build_int_cst_wide): Likewise.
+ * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
+
+2010-10-14 Joseph Myers <joseph@codesourcery.com>
+
+ * params.c (params_finished): New.
+ (add_params): Assert !params_finished.
+ (finish_params): New.
+ (set_param_value_internal): Take params and params_set
+ parameters. Assert params_finished.
+ (set_param_value, maybe_set_param_value): Take params and
+ params_set parameters. Update calls to set_param_value_internal.
+ (set_default_param_value): Assert !params_finished. Don't use
+ set_param_value_internal.
+ (default_param_value, init_param_values): New.
+ * params.h (struct param_info): Change value to default_value.
+ Remove set.
+ (set_param_value, maybe_set_param_value): Add params and
+ params_set parameters.
+ (PARAM_VALUE): Get parameters from global_options.
+ (PARAM_SET_P): Remove.
+ (finish_params, default_param_value, init_param_values): New.
+ * common.opt (param_values): New Variable.
+ * config/arm/arm.c (arm_option_override): Pass extra arguments to
+ maybe_set_param_value.
+ * config/i386/i386.c (ix86_option_override_internal): Pass extra
+ arguments to maybe_set_param_value.
+ * config/picochip/picochip.c (picochip_option_override): Pass
+ extra arguments to maybe_set_param_value.
+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
+ extra arguments to maybe_set_param_value.
+ * config/s390/s390.c (s390_option_override): Use
+ maybe_set_param_value instead of set_param_value. Pass extra
+ arguments to maybe_set_param_value.
+ * config/sparc/sparc.c (sparc_option_override): Pass extra
+ arguments to maybe_set_param_value.
+ * config/spu/spu.c (spu_option_override): Pass extra arguments to
+ maybe_set_param_value.
+ * opts.c (handle_param): Take opts and opts_set parameters.
+ Update call to set_param_value.
+ (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
+ initial_loop_invariant_max_bbs_in_loop): Remove.
+ (init_options_once): Don't set them.
+ (init_options_struct): Initialize parameters structures.
+ (default_options_optimization): Use default_param_value when
+ restoring defaults. Update calls to maybe_set_param_value.
+ (finish_options): Update calls to maybe_set_param_value.
+ (common_handle_option): Update calls to handle_param and
+ set_param_value.
+ * toplev.c (DEFPARAM): Update definition for changes to param_info.
+ (general_init): Call finish_params.
+
+2010-10-14 Nick Clifton <nickc@redhat.com>
+
+ * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
+ (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
+ (FIRST_PSEUDO_REGISTER): Increase by one.
+ (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
+ (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
+ (MODES_TIEABLE): Call mn10300_modes_tieable.
+ (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
+ (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
+ (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
+ (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
+ (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
+ (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
+ (mn10300_cc_status_mdep): Delete.
+ (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
+ * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
+ the combine-stack-adjust pass.
+ (print_operand): Use the mode of the comparison operation to
+ select the comparison suffix.
+ (notice_update_cc): Delete.
+ (mn10300_secondary_reload_class): Remove test for stack pointer
+ based arithmetic.
+ (output_tst): Rename to mn10300_output_cmp.
+ (impossible_plus_operand): Move into predicates.md.
+ (mn10300_legitimize_address): Make static.
+ (mn10300_legitimate_address_p): Make static. Only allow SI sized
+ constant pic operands.
+ (mn10300_legitimate_constant_p): New function.
+ (mn10300_case_values_threshold): Make static.
+ (mn10300_hard_regno_mode_ok): New function.
+ (mn10300_modes_tieable): New function.
+ (mn10300_select_cc_mode): New function.
+ * config/mn10300/predicates.md (impossible_plus_operand): Define.
+ * config/mn10300/mn10300-protos.h: Tidy.
+ (mn10300_legitimate_constant_p, mn10300_modes_tieable)
+ (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
+ * config/mn10300/mn10300.md (cc attribute): Delete. Replace
+ with clobbers or sets of CC_REG.
+ (CC_REG): Define.
+ (mov*): Remove use of CLR instruction.
+ (cbranch_si4_<code>): New pattern/split.
+ (integer_conditional_branch): New pattern.
+ (cbranch_sf4_<code>): New pattern/split.
+ (float_conditional_branch): New pattern.
+ (casesi): Use addsi3 pattern instead of movsi pattern to add and
+ move a value at the same time.
+ (cc0 peepholes): Remove.
+
+2010-10-14 Andrey Belevantsev <abel@ispras.ru>
+
+ * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
+ on RTX_FRAME_RELATED_P insns and the insn to which
+ NOTE_INSN_EPILOGUE_BEG is attached.
+ * sched-vis.c (print_value): Allow NULL value.
+
+2010-10-14 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/45570
+ * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
+ assert that we are pipelining outer loops. Allow returning
+ zero predecessors.
+
+2010-10-14 Andrey Belevantsev <abel@ispras.ru>
+
+ * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
+ (tidy_control_flow): Tidy vertical space.
+ (sel_remove_bb): New variable idx. Use it to remember the basic
+ block index before deleting the block.
+ (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
+ (sel_merge_blocks): ... here.
+ * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
+
+2010-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ * cse.c (is_dead_reg): Change into inline function that is not
+ called through for_each_rtx.
+ (set_live_p): Adjust caller.
+ (insn_live_p): Don't reset DEBUG_INSNs here.
+ (struct dead_debug_insn_data): New data.
+ (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
+ (delete_trivially_dead_insns): If there is just one setter for the
+ dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
+ and add DEBUG_INSN for it right before the removed setter and
+ use the DEBUG_EXPR instead of the dead pseudo.
+
+2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
+
+ * et-forest.c (et_nca): Return NULL immediately when
+ the dominance forest has disjoint components.
+
+2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira.c (setup_class_hard_regs): Fix typo in indexing
+ ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
+
2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
* graph.c (inbb): New variable.
* config/i386/i386.c (ix86_builtins): Add
IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
(bdesc_args): Likewise.
- (ix86_builtin_vectorized_function): Support
+ (ix86_builtin_vectorized_function): Support
IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
and IX86_BUILTIN_CVTPS2DQ256.
2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
- * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of
- LIBGCC2_DOUBLE_TYPE_SIZE.
+ * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
(LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
* config/fixed-bit.h: Likewise.
* config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
* config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
DATA_ALIGNMENT and add COND parameter. Update comments above.
(DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
- (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with
- !flag_conserve_stack.
+ (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/45958
- * exec-tool.in: Support '-plugin' as the second option to the
- linker.
+ * exec-tool.in: Support '-plugin' as the second option to the linker.
2010-10-12 Richard Henderson <rth@redhat.com>
(enum debug_info_type, enum debug_info_level, enum
debug_info_usage, enum symbol_visibility, struct visibility_flags,
enum ira_algorithm, enum ira_region, enum excess_precision, enum
- graph_dump_types, enum stack_check_type, enum
- warn_strict_overflow_code): Move to flag-types.h
+ graph_dump_types, enum stack_check_type,
+ enum warn_strict_overflow_code): Move to flag-types.h
* opth-gen.awk: Include flag-types.h in options.h.
2010-10-12 Jakub Jelinek <jakub@redhat.com>
(iterative_hash_rtx): New prototype.
* rtl.c (iterative_hash_rtx): New function.
* dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
- (output_loc_list): Return immediately if emitted is set,
- set it.
+ (output_loc_list): Return immediately if emitted is set, set it.
(hash_loc_operands, hash_locs, hash_loc_list,
compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
optimize_location_lists_1, optimize_location_lists): New function.