+2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
+ ftrapv insns and expanders.
+ (subdi3): Change define_expand operand 1 to arith11_operand, and
+ operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
+ pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
+ handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
+ respectively.
+
+ PR middle-end/30174
+ * varasm.c (notice_global_symbol): Treat global objects as weak when
+ flag_shlib is true.
+
+2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * emit-rtl.c (dconstpi): Delete.
+ (dconstsqrt2): New.
+ (init_emit_once): Delete dconstpi and init dconstsqrt2.
+ * real.h (dconstpi): Delete.
+ (dconstsqrt2): New.
+ * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
+ (fold_builtin_hypot): Likewise.
+
+2007-02-03 Tom Tromey <tromey@redhat.com>
+
+ PR driver/30246
+ * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
+ -gcoff3, -gxcoff3, -gvms3 implies -dD.
+
+2007-02-03 Kazu Hirata <kazu@codesourcery.com>
+
+ * c-decl.c, config/avr/avr.c, config/avr/avr.h,
+ config/m68k/m68k.c, config/m68k/netbsd-elf.h,
+ config/mn10300/mn10300.c, config/pdp11/pdp11.h,
+ config/rs6000/cell.md, config/rs6000/darwin.h,
+ config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
+ config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
+ jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
+ tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
+ typos. Follow spelling conventions.
+ * doc/invoke.texi: Follow spelling conventions.
+
+2007-02-03 Roger Sayle <roger@eyesopen.com>
+
+ * simplify-rtx.c (simplify_relational_operation_1): Implement some
+ canonicalization transformations that attempt to simplify integer
+ constant comparisons to become comparisons against zero.
+
+2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
+ fabs(x)*sqrt(2).
+ * fold-const.c (fold_binary): Fix comment typos. Fold complex
+ (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
+
+2007-02-02 Mike Stump <mrs@apple.com>
+
+ * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
+ * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
+ (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
+ generate a branch island.
+
+2007-02-02 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
+ (xtensa_legitimate_address_p): New.
+ (xtensa_legitimize_address): New.
+ (xtensa_output_addr_const_extra): New.
+ * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
+ (BASE_REG_P): New.
+ (REG_OK_FOR_BASE_P): Use BASE_REG_P.
+ (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
+ (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
+ (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
+ * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
+ (xtensa_legitimize_address): New.
+ (xtensa_output_addr_const_extra): New.
+
+2007-02-02 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
+
+2007-02-02 Ian Lance Taylor <iant@google.com>
+
+ * expmed.c (expand_divmod): Add comment.
+
+2007-02-02 Kazu Hirata <kazu@codesourcery.com>
+
+ * emit-rtl.c (renumber_insns): Remove.
+ * flags.h: Remove the extern for flag_renumber_insns.
+ * rtl.h: Remove the prototype for renumber_insns.
+ * toplev.c (flag_renumber_insns): Remove.
+
+2007-02-02 Hui-May Chang <hm.chang@apple.com>
+
+ Revert for x86 darwin:
+ 2005-06-19 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
+ code before the following patch under TARGET_MACHO.
+ (ix86_function_value_regno_p): Likewise.
+
+2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (negate_expr_p, fold_negate_expr): Handle
+ COMPLEX_EXPR.
+
+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.md (reg_pred_prefix): Add comment.
+
+2007-02-02 Paolo Bonzini <bonzini@gnu.org>
+
+ * pointer-set.c (insert_aux): Only return insertion slot.
+ (pointer_set_insert): Adjust.
+ (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
+ pointer_map_destroy, pointer_map_insert, pointer_map_contains,
+ pointer_map_traverse): New.
+ * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
+ pointer_map_create, pointer_map_destroy, pointer_map_insert,
+ pointer_map_contains, pointer_map_traverse): Declare.
+
+2007-02-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/30473
+ * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
+ sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
+
+2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
+
+ (struct _dep): New type.
+ (dep_t): New typedef.
+ (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
+ (DEP_STATUS): New access macro. The macro with the same name was
+ renamed to DEP_LINK_STATUS.
+ (dep_init): Declare function
+
+ (struct _dep_link): New type.
+ (dep_link_t): New typedef.
+ (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
+ (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
+ (DEP_LINK_STATUS): New macro.
+ (debug_dep_links): New debug function.
+
+ (struct _deps_list): New type.
+ (deps_list_t): New typedef.
+ (DEPS_LIST_FIRST): New access macro.
+ (FOR_EACH_DEP_LINK): New cycle macro.
+ (create_deps_list, free_deps_list, delete_deps_list): Declare
+ functions.
+ (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
+ (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
+ (copy_deps_list_change_con): Ditto.
+
+ (move_dep_link): Declare function.
+
+ (struct _dep_node): New type.
+ (dep_node_t): New typedef.
+ (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
+
+ (struct haifa_insn_data.back_deps): New field to hold backward
+ dependencies of the insn.
+ (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
+ to deps_list_t.
+ (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
+ Change its type to deps_list_t.
+ (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
+ (INSN_DEPEND): Rename to INSN_FORW_DEPS.
+ (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
+
+ (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
+
+ (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.
+ (dep_cost): Declare.
+
+ * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
+ (ds_to_dk, dk_to_ds): New functions.
+
+ (init_dep_1): New static function.
+ (init_dep): New function.
+ (copy_dep): New static function.
+
+ (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
+ functions.
+ (detach_dep_link): New static function.
+ (move_dep_link): New function.
+
+ (dep_links_consistent_p, dump_dep_links): New static functions.
+ (debug_dep_links): New debugging function.
+
+ (deps_obstack, dl_obstack, dn_obstack): New static variables.
+
+ (alloc_deps_list, init_deps_list): New static functions.
+ (create_deps_list): New function.
+ (clear_deps_list): New static function.
+ (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
+ (deps_list_consistent_p, dump_deps_list): New static functions.
+ (debug_deps_list): New function.
+ (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
+ functions.
+ (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
+
+ (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
+ use new scheduler dependencies lists.
+ (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
+ (sched_analyze): Ditto. Initialize dependencies lists.
+ (add_forw_dep, compute_forward_dependences): Update to use new
+ scheduler dependencies lists.
+
+ (init_dependency_caches): Init deps_obstack.
+ (free_dependency_caches): Free deps_obstack.
+
+ (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
+ new scheduler dependencies lists.
+ (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
+ (add_back_forw_dep, delete_back_forw_dep): Ditto.
+
+ * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
+ Update to use new scheduler dependencies lists.
+ (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
+ (debug_dependencies): Ditto.
+ (schedule_region): Update comments.
+
+ * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
+ scheduler dependencies lists.
+ (schedule_ebb): Update comments.
+
+ * rtl.def (DEPS_LIST): Remove.
+
+ * lists.c (unused_deps_list): Remove.
+ (free_list): Update assertions.
+
+ (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
+ (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
+
+ * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
+ (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
+
+ * haifa-sched.c (comments): Update.
+ (insn_cost1): Remove. Inline the code into insn_cost ().
+ (insn_cost): Update to use new scheduler dependencies lists. Move
+ processing of the dependency cost to dep_cost ().
+ (dep_cost): New function. Use it instead of insn_cost () when
+ evaluating cost of the dependency. Use compatible interface to
+ interact with the target.
+ (priority): Update to use new scheduler dependencies lists.
+ (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
+ with greater number of insns that depend on the insn.
+ (schedule_insn): Update to use new scheduler dependencies lists. Add
+ code to free backward dependencies lists. Inline and optimize code
+ from resolve_dep () - see PR28071.
+ (ok_for_early_queue_removal): Update to use new scheduler dependencies
+ lists. Update call to targetm.sched.is_costly_dependence hook.
+
+ (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
+ scheduler dependencies lists.
+
+ (resolve_dep): Remove. Move the logic to schedule_insn ().
+ (init_h_i_d): Initialize dependencies lists.
+
+ (process_insn_depend_be_in_spec): Rename to
+ process_insn_forw_deps_be_in_spec. Update to use new scheduler
+ dependencies lists.
+ (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
+ Update to use new scheduler dependencies lists.
+ (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
+
+ * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
+ new scheduler dependencies lists.
+ (build_intra_loop_deps): Ditto.
+
+ * 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.adjust_cost_2): Remove.
+
+ * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
+
+ * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
+
+ * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
+ documentation.
+ (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
+
+ * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
+ (REG_DEP_TRUE): Document.
+
+ * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
+ Change signature to correspond to the targetm.sched.adjust_cost hook.
+ Update use in TARGET_SCHED_ADJUST_COST_2.
+ (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
+ (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
+ new scheduler dependencies lists.
+ (ia64_gen_check): Ditto.
+
+ * 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.
+ (is_costly_group): Update to use new scheduler dependencies lists.
+
+ * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
+ instead of INSN_COST () macro.
+
+2007-02-01 Ian Lance Taylor <iant@google.com>
+
+ * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
+
+2007-02-01 Guy Martin <gmsoft@gentoo.org>
+
+ * pa.md (tp_load): Correct mfctl instruction syntax.
+
+2007-02-01 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Correct
+ altivec_padding_size calculation on AIX. Improve comment, add
+ assert to verify that it's right.
+
+ * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
+ 64-bit.
+
+2007-2-01 Seongbae Park <seongbae.park@gmail.com>
+
+ PR inline-asm/28686
+ * global.c (global_alloc): Add mising initialization of
+ ELIMINABLE_REGSET.
+
+2007-02-01 Roger Sayle <roger@eyesopen.com>
+
+ * alias.c (init_alias_analysis): Correct whitespace.
+ * bb-reorder.c (fix_edges_for_rarely_executed_code,
+ partition_hot_cold_basic_blocks): Likewise.
+ * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
+ expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
+ maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
+ fold_builtin_snprintf_chk, fold_builtin_printf,
+ fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
+ do_mpfr_arg3, do_mpfr_sincos): Likewise.
+ * cfgcleanup.c (cleanup_cfg): Likewise.
+ * cfgexpand.c (tree_expand_cfg): Likewise.
+ * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
+ * function.c (get_next_funcdef_no): Likewise.
+ * gengtype.c (main): Likewise.
+ * genmodes.c (main): Likewise.
+ * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
+ * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
+ * ifcvt.c (noce_emit_move_insn): Likewise.
+ * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
+ Likewise.
+ * stor-layout.c (get_best_mode): Likewise.
+ * tree-ssa-loop-niter.c (get_val_for): Likewise.
+ * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
+ scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
+ perform_var_substitution, solve_graph): Likewise.
+ * tree-vrp.c (vrp_finalize): Likewise.
+
+2007-02-01 Ian Lance Taylor <iant@google.com>
+
+ * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
+ high part of a paradoxical subreg, return a constant zero.
+
+2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * toplev.c (lang_dependent_init): Call init_set_costs.
+ * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
+
+2007-02-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30656
+ * fold-const.c (fold_negate_expr): Allow negating a
+ constant if overflow does not change.
+
+2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/c-tree.texi (Expression trees): Improve markup.
+ * doc/tm.texi (Register Classes, Addressing Modes)
+ (Floating Point): Fix spacing after abbreviations. Fix some
+ typos.
+
+2007-02-01 Ben Elliston <bje@au.ibm.com>
+
+ * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
+ * doc/contrib.texi: Likewise.
+ * doc/install.texi: Likewise.
+
+2007-01-31 Richard Henderson <rth@redhat.com>
+ Ian Lance Taylor <iant@google.com>
+
+ * lower-subreg.c: New file.
+ * rtl.def (CONCATN): Define.
+ * passes.c (init_optimization_passes): Add pass_lower_subreg and
+ pass_lower_subreg2.
+ * emit-rtl.c (update_reg_offset): New static function, broken out
+ of gen_rtx_REG_offset.
+ (gen_rtx_REG_offset): Call update_reg_offset.
+ (gen_reg_rtx_offset): New function.
+ * regclass.c: Revert patch of 2006-03-05, restoring
+ reg_scan_update.
+ (clear_reg_info_regno): New function.
+ * dwarf2out.c (concatn_loc_descriptor): New static function.
+ (loc_descriptor): Handle CONCATN.
+ * common.opt (fsplit_wide_types): New option.
+ * opts.c (decode_options): Set flag_split_wide_types when
+ optimizing.
+ * timevar.def (TV_LOWER_SUBREG): Define.
+ * rtl.h (gen_reg_rtx_offset): Declare.
+ (reg_scan_update): Declare.
+ * regs.h (clear_reg_info_regno): Declare.
+ * tree-pass.h (pass_lower_subreg): Declare.
+ (pass_lower_subreg2): Declare.
+ * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
+ (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
+ -fsplit-wide-types.
+ * doc/rtl.texi (Regs and Memory): Document concat and concatn.
+ * Makefile.in (OBJS-common): Add lower-subreg.o.
+ (lower-subreg.o): New target.
+
+2007-01-31 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
+
+2007-01-31 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/19087
+ * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
+
+2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/29335
+ * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
+
+2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloop.h: Include vec-prim.h.
+ (enum li_flags): Remove LI_ONLY_OLD.
+ (loop_iterator): Changed.
+ (fel_next, fel_init): Iterate over loop tree.
+ (FOR_EACH_LOOP_BREAK): New macro.
+ * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
+ FOR_EACH_LOOP.
+ * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
+ * modulo-sched.c (sms_schedule): Ditto.
+ * tree-vectorizer.c (vectorize_loops): Ditto.
+ * doc/loop.texi: Update information on loop numbering and behavior of
+ FOR_EACH_LOOP wrto new loops.
+ * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
+ add_to_evolution_1): Test nestedness of loops instead of comparing
+ their numbers.
+ * tree-chrec.c (chrec_fold_plus_poly_poly,
+ chrec_fold_multiply_poly_poly, chrec_evaluate,
+ hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
+ reset_evolution_in_loop): Ditto.
+ * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
+
+2007-01-31 Dirk Mueller <dmueller@suse.de>
+
+ * c-common.c (warn_about_parentheses): Separate warning about
+ un-parenthized sequence of comparison operators from the one
+ which is supposed to warn about x <= y <= z.
+
+2007-01-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * optabs.h (enum optab_index): Add new OTI_isinf.
+ (isinf_optab): Define corresponding macro.
+ * optabs.c (init_optabs): Initialize isinf_optab.
+ * genopinit.c (optabs): Implement isinf_optab using isinf?f2
+ patterns.
+ * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
+ (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
+ using isinf_optab.
+ (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
+ expand_builtin_interclass_mathfn.
+ * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
+ * config/i386/i386.md (UNSPEC_FXAM): New constant.
+ (fxam<mode>2_i387): New insn pattern.
+ (isinf<mode>2) New expander to implement isinf, isinff and isinfl
+ built-in functions as x87 inline asm.
+
+2007-01-31 Kazu Hirata <kazu@codesourcery.com>
+
+ * gcc/config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
+
+2007-01-30 Eric Christopher <echristo@apple.com>
+
+ * config.gcc: Add geode.
+
+2007-01-31 Kazu Hirata <kazu@codesourcery.com>
+
+ * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
+ ipa-inline.c, tree-profile.c, tree-ssa-live.c,
+ tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
+ value-prof.c: Fix comment typos.
+
+2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/24745
+ * doc/invoke.texi (Wpointer-arith): Document warning.
+
+2007-01-30 Janis Johnson
+
+ * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
+ the list of discrepancies from the draft TR.
+
+2007-01-30 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/30601
+ * doc/invoke.texi (-Wreturn-type): Update description to
+ match new behavior.
+
+2007-01-30 Richard Sandiford <richard@codesourcery.com>
+
+ * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
+
+2007-01-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * builtins.c (expand_builtin_int_interclass_roundingfn): New function
+ to handle optabs that operate on floating point input argument and
+ output to integer output.
+ (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
+ (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
+ (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
+ expand_builtin_interclass_mathfn ().
+ * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
+ (ilogbsi2): Remove.
+ (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
+ ilogbl built-in functions as x87 intrinsics.
+
+2007-01-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/27657
+ * dwarf2out.c (reference_to_unused): Query varpool if the
+ variable was output.
+
+2007-01-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30313
+ * passes.c (execute_one_pass): Reset in_gimple_form to not
+ confuse non-unit-at-a-time mode.
+
+2007-01-29 Roger Sayle <roger@eyesopen.com>
+ Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
+ avoid undefined behaviour on overflow. Use force_fit_type_double
+ to construct the constant with the specified TREE_OVERFLOW.
+
+2007-01-29 Janis Johnson <janis187@us.ibm.com>
+
+ * config/dfp-bit.c: Add parameterized support for fp exceptions.
+ * config/dfp-bit.h: Ditto.
+
+2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c-decl.c (pop_scope): Replace warnings with call to
+ warn_for_unused_label.
+ * c-common.h (warn_for_unused_label): Declare.
+ * c-common.c (warn_for_unused_label): Define.
+
+2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * tree-optimize.c (update_inlined_to_pointers): Delete unused
+ function.
+
+2007-01-29 Janis Johnson <janis187@us.ibm.com>
+
+ * Makefile.in (USER_H): Remove decfloat.h.
+ * ginclude/decfloat.h: Delete, moving contents to ...
+ * ginclude/float.h: Add support for decimal floating point,
+ guarded by __STDC_WANT_DEC_FP__.
+
+2007-01-29 Mike Stump <mrs@apple.com>
+
+ * doc/gccint.texi (Top): Rename Loop Representation to Loop
+ Analysis and Representation to resolve case insensitive conflict.
+ * doc/loop.texi (Loop Analysis and Representation): Likewise.
+
+2007-01-28 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree.h (struct tree_memory_tag): Add aliases member.
+ (MTAG_ALIASES): New macro.
+ * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
+ (add_may_alias): Remove pointer-set. Update for may_aliases being
+ a bitmap.
+ (mark_aliases_call_clobbered): Update for may_aliases being a
+ bitmap.
+ (compute_tag_properties): Ditto.
+ (create_partition_for): Ditto.
+ (compute_memory_partitions): Ditto.
+ (dump_may_aliases_for): Ditto.
+ (is_aliased_with): Ditto.
+ (add_may_alias_for_new_tag): Ditto.
+ (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
+ (compute_is_aliased): New function.
+ (compute_may_aliases): Call compute_is_aliased).
+ (init_alias_info): Initialize alias_bitmap_obstack.
+ (union_alias_set_into): New function.
+ (compute_flow_sensitive_aliasing): Use union_aliases_into.
+ (have_common_aliases_p): Rewrite to take two bitmaps and use
+ intersection.
+ (compute_flow_insensitive_aliasing): Stop using pointer-sets.
+ Update for bitmaps.
+ (finalize_ref_all_pointers): Update for add_may_alias changes.
+ (new_type_alias): Ditto.
+ * tree-flow-inline.h (may_aliases): Return a bitmap.
+ * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
+ may_aliases being a bitmap.
+ * tree-flow.h (struct var_ann_d): Remove may_aliases member.
+ may_aliases now returns a bitmap.
+ * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
+ being a bitmap.
+ * tree-ssa-operands.c (add_virtual_operand): Update for
+ may_aliases being a bitmap.
+
+2007-01-29 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/30630
+ * tree-ssa-structalias.c (do_complex_constraint): Mark correct
+ variable as changed.
+
+2007-01-29 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/28266
+ * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
+ expanded only once even if an error occurs.
+
+2007-01-29 Ben Elliston <bje@au.ibm.com>
+
+ * gcov-io.h (__gcov_indirect_call_profiler): Declare.
+ (__gcov_average_profiler): Likewise.
+ (__gcov_ior_profiler): Likewise.
+ (__gcov_merge_ior): Likewise.
+
+2007-01-28 Jan Hubicka <jh@suse.cz>
+
+ * builtins.c (expand_builtin_memset): Fix typo in my last patch.
+ * value-prof.c (stringop_block_profile): Likewise.
+
+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.
+ (clear_storage_via_libcall): Export.
+ (emit_block_move_hints): Break out from ...; add histograms.
+ (emit_block_move): ... this one.
+ (clear_storage_hints): Break out from ...; add histograms.
+ (clear_storage): ... this one.
+ (set_storage_via_memset): Handle histogram.
+ * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
+ (clear_storage_hints, clear_storage_via_libcall): Declare.
+ (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.
+ (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
+ HIST_TYPE_IOR.
+ (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
+ (stringop_block_profile): Declare.
+ * builtins.c: Include value-prof.h.
+ (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
+ * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
+ (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
+ (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
+ * profile.c (instrument_values): Add new counters.
+ * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
+ calls.
+ * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
+ (tree_init_edge_profiler): Build new profilers.
+ (tree_gen_average_profiler, tree_gen_ior_profiler): New.
+ (pass_tree_profile): Add dump.
+ (tree_profile_hooks): Update.
+ * Makefile.in (LIBGCOV): Add new constants.
+ * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
+ __gcov_ior_profiler): New.
+ * i386.md (movmem/setmem expanders): Add new optional arguments.
+
+2007-01-28 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/md.texi (Standard Pattern Names): Document blockage pattern.
+
+2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-unswitch.c: Include tree-inline.h.
+ (tree_unswitch_single_loop): Pass eni_size_weights to
+ tree_num_loop_insns.
+ * tree-ssa-loop-manip.c: Include tree-inline.h.
+ (can_unroll_loop_p): Pass eni_size_weights to
+ tree_num_loop_insns.
+ * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
+ Pass eni_size_weights to estimate_num_insns.
+ * tree.h (init_inline_once): Export.
+ * toplev.c (backend_init): Call init_inline_once.
+ * cgraphunit.c (cgraph_process_new_functions,
+ cgraph_analyze_function): Pass eni_inlining_weights to
+ estimate_num_insns.
+ * ipa-inline.c (compute_inline_parameters): Ditto.
+ * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
+ to estimate_num_insns.
+ (try_unroll_loop_completely): Pass eni_size_weights to
+ tree_num_loop_insns.
+ * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
+ ot estimate_num_insns.
+ * tree-ssa-loop-prefetch.c: Include tree-inline.h.
+ (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
+ * tree-inline.c (eni_inlining_weights, eni_size_weights,
+ eni_time_weights): New variables.
+ (init_inline_once): Initialize them.
+ (struct eni_data): Mew.
+ (estimate_num_insns_1, estimate_num_insns): Use weights.
+ * tree-inline.h (struct eni_weights_d): New.
+ (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
+ (estimate_num_insns): Declaration changed.
+ * cfgloop.h (tree_num_loop_insns): Declaration changed.
+ * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
+ tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
+
+2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (conflict_fn): Assert that the number of affine
+ relations in the conflict function is valid.
+
+2007-01-27 Ian Lance Taylor <iant@google.com>
+
+ * common.opt: Add fstrict-overflow.
+ * opts.c (decode_options): Set flag_strict_overflow if -O2.
+ * flags.h (TYPE_OVERFLOW_WRAPS): Define.
+ (TYPE_OVERFLOW_UNDEFINED): Define.
+ (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
+ Replace all uses.
+ * tree.h (TYPE_TRAP_SIGNED): Don't define.
+ * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
+ (fold_negate_expr): Likewise.
+ (make_range): Likewise.
+ (extract_muldiv_1): Likewise.
+ (maybe_canonicalize_comparison): Likewise.
+ (fold_comparison): Likewise.
+ (fold_binary): Likewise.
+ (tree_expr_nonnegative_p): Likewise.
+ (tree_expr_nonzero_p): Likewise.
+ * tree-vrp.c (compare_values): Likewise.
+ (extract_range_from_binary_expr): Likewise.
+ (extract_range_from_unary_expr): Likewise.
+ * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
+ Likewise.
+ (nowrap_type_p): Likewise.
+ * tree-scalar-evolution.c (simple_iv): Likewise.
+ * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
+ (build_range_check): Likewise.
+ (extract_muldiv_1): Likewise.
+ (fold_comparison): Likewise.
+ * tree-vrp.c (vrp_int_const_binop): Likewise.
+ (extract_range_from_unary_expr): Likewise.
+ * convert.c (convert_to_integer): Likewise.
+ * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
+ (fold_comparison): Likewise.
+ (fold_binary): Likewise.
+ * optabs.c (optab_for_tree_code): Likewise.
+ * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
+ * simplify-rtx.c (simplify_const_relational_operation): Check
+ flag_strict_overflow and flag_trapv.
+ (simplify_const_relational_operation): Likewise.
+ * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
+ (Optimize Options): Add -fstrict-overflow to -O2 list. Document
+ -fstrict-overflow.
+
+2007-01-27 Roger Sayle <roger@eyesopen.com>
+
+ * tree.c (tree_fold_gcd): Delete.
+ * tree.h (tree_fold_gcd): Remove prototype.
+ * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
+ test whether one constant integer is a multiple of another. Instead
+ call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
+ * fold-const.c (multiple_of_p): We've determined both TOP and
+ BOTTOM are integer constants so we can call int_const_binop directly
+ instead of the more generic const_binop.
+
+2007-01-27 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
+ 1*X check that the constant hasn't overflowed, to preserve the
+ TREE_OVERFLOW bit.
+ (round_up): Provide an efficient implementation when rouding-up an
+ INTEGER_CST to a power-of-two.
+
+2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/sourcebuild.texi: Add comma for clarity.
+ * doc/extend.texi: Fix some typos.
+ * doc/passes.texi: Likewise.
+ * doc/cppinternals.texi: Likewise.
+ * doc/c-tree.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+ * doc/install.texi: Likewise.
+
+2007-01-27 Jan Hubicka <jh@suse.cz>
+
+ * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
+ (pass_sra): Do not require alias information.
+ * passes.c (init_optimization_passes): Add SRA
+
+2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tracer.c (rest_of_handle_tracer): We already cleaned
+ up the CFG in tracer() so don't do it here again.
+ * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
+ cleanup_cfg here, either. And don't call renumber_insns.
+
+ * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
+ and BB_HEAD are in the insn stream here. Instead make sure
+ that BB_INSN is valid on all insns. Also, do check here that
+ there are no pending branch predictions...
+ (rtl_verify_flow_info): ...instead of doing it here. Checks
+ for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
+ here.
+
+2007-01-26 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
+ function to simplify/factorize operand order canonicalization.
+ (ix86_fixup_binary_operands): Reorganize using the above function.
+ (ix86_binary_operator_ok): Likewise.
+
+2007-01-27 Jakub Jelinek <jakub@redhat.com>
+
+ * genattrtab.c (struct attr_value_list, insn_code_values): Move to
+ file scope from optimize_attrs.
+ (simplify_test_exp): If insn_code_values is not NULL, use it to speed
+ up search.
+ (optimize_attrs): Clear insn_code_values after freeing it.
+
+2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
+ a parts.base assignment.
+
+2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
+ (compute_subscript_distance, initialize_data_dependence_relation,
+ finalize_ddr_dependent, analyze_ziv_subscript,
+ analyze_siv_subscript_cst_affine,
+ compute_overlap_steps_for_affine_univar,
+ compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
+ analyze_siv_subscript, analyze_miv_subscript,
+ analyze_overlapping_iterations, subscript_dependence_tester_1,
+ compute_self_dependence, free_dependence_relation): Work
+ with affine_fn instead of chrecs.
+ (dump_affine_function, dump_conflict_function, affine_function_equal_p,
+ common_affine_function, affine_function_base,
+ affine_function_constant_p, affine_fn_op, affine_fn_plus,
+ affine_fn_minus, affine_fn_free, conflict_fn_not_known,
+ conflict_fn_no_dependence, free_conflict_function, free_subscripts,
+ conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
+ (all_chrecs_equal_p): Removed.
+ * tree-data-ref.h (affine_fn, conflict_function): New types.
+ (struct subscript): Change type of conflicting_iterations_in_a
+ and conflicting_iterations_in_b.
+
+2007-01-26 Steve Ellcey <sje@cup.hp.com>
+
+ PR other/30182
+ * config/pa/pa.h (TARGET_HPUX_11): New.
+ * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
+ * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
+
2007-01-26 Daniel Berlin <dberlin@dberlin.org>
Richard Guenther <rguenther@suse.de>
2007-01-25 Razya Ladelsky <razya@il.ibm.com>
- * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
- (ipcp_driver): Change to static definition.
+ * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
+ (ipcp_driver): Change to static definition.
Add dumping of the ifunctions.
(constant_val_insert): Remove unused parameter. Support for SSA.
(ipcp_propagate_const): Support for SSA.
(ipcp_profile_bb_print): Print only analyzed nodes.
- (ipcp_replace_map_create): Remove support for Fortran constant
+ (ipcp_replace_map_create): Remove support for Fortran constant
for now.
- * ipa-prop.c (ipa_method_modify_stmt,
+ * ipa-prop.c (ipa_method_modify_stmt,
ipa_callsite_compute_param): Support for SSA.
* ipa-prop.h (ipcp_driver): Remove declaration.
(IS_VALID_TREE_MAP_INDEX): Add define.
2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
- * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
+ * 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.
2007-01-21 Ira Rosen <irar@il.ibm.com>
- * tree-vectorizer.h (struct _stmt_vec_info): Add new field
+ * tree-vectorizer.h (struct _stmt_vec_info): Add new field
read_write_dep and macros for its access.
* tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
- * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
+ * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
argument, call vect_check_interleaving for every independent pair of
data-refs. Mark loads that access the same memory location as a store
in the loop.
(vect_check_dependences): Remove.
- (vect_analyze_data_ref_dependences): Remove vect_check_dependences
+ (vect_analyze_data_ref_dependences): Remove vect_check_dependences
call, fix the call to vect_analyze_data_ref_dependence.
- (vect_analyze_data_ref_access): For statements that access the same
+ (vect_analyze_data_ref_access): For statements that access the same
data-ref, check that they are not stores; for loads, check that there
is no store that access the same location.
__gcov_one_value_profiler_body and calls it
2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
-
+
* doc/gty.texi (Options): Document the mark_hook option to GTY.
* gengtype.c (write_types_data, write_func_for_structure,
write_types, ggc_wtd, pch_wtd): Add skip_hooks to
PR c++/17947
* toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
the name of the declared identifier.
-
+
2007-01-19 Dirk Mueller <dmueller@suse.de>
* config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
(merge_node_constraints): This. Also fix bug in handling of
offseted copy constraints.
(clear_edges_for_node): No longer need to deal with preds at all,
- or removing associated preds/succs.
+ or removing associated preds/succs.
(merge_graph_nodes): Deal with indirect_cycles.
Don't deal with predecessors.
(add_implicit_graph_edge): New function.
(AVR_HAVE_MUL): ... new.
(avr_enhanced_p): Rename to ...
(avr_have_mul_p): ... new.
- (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
+ (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
* config/avr/avr.c (avr_enhanced_p): Rename to ...
(avr_have_mul_p): ... new.
(base_arch_s): Rename 'enhanced' to 'have_mul'.
(avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
'avr_enhanced_p' and 'enhanced'.
- (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
+ (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
AVR_HAVE_MUL instead of AVR_ENHANCED.
* avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
- (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
- *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
+ (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
+ *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
instead of AVR_ENHANCED.
(*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
* libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
- * c-common.c(c_common_nodes_and_builtins): Since variants of
+ * c-common.c (c_common_nodes_and_builtins): Since variants of
void_type_node get built before it is given a name, we need to
give those variants the name, too.
(complete_array_type): We need to work with the canonical main