blob: 917704a07464d6c2b156a9a89045ed2890a000a9 [file] [log] [blame]
2010-12-31 Gerald Pfeifer <>
* doc/install.texi (powerpc-*-darwin*): Update reference to
Apple Developer Tools.
2010-12-31 Ken Werner <>
* config/arm/ (sync_clobber, sync_t2_reqd): New code attribute.
(arm_sync_old_<sync_optab>si, arm_sync_old_<sync_optab><mode>): Use
the sync_clobber and sync_t2_reqd code attributes.
* config/arm/arm.c (arm_output_sync_loop): Reverse the operation if
the t2 argument is NULL.
2010-12-31 Gerald Pfeifer <>
* doc/sourcebuild.texi (Top Level): Adjust link to libgo.
2010-12-31 Gerald Pfeifer <>
* doc/install.texi (Specific): Remove reference to
2010-12-31 Paul Koning <>
* config/pdp11/pdp11.h (PRINT_OPERAND): Delete.
* config/pdp11/pdp11.c (TARGET_PRINT_OPERAND,
(pdp11_asm_print_operand, pdp11_asm_print_operand_punct_valid_p):
New function.
* config/pdp11/ (tablejump): Fix generated assembly.
2010-12-31 Joern Rennecke <>
PR target/47111
* config/rtems.h (NO_IMPLICIT_EXTERN_C): Undef before defining.
PR target/47112
* config/mips/r3900.h: Update Copyright years.
(MIPS_CPU_STRING_DEFAULT): Undef before defining.
PR target/47135
* config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Change
type to match target.def .
PR target/47114
* config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): Add
ATTRIBUTE_UNUSED to declaration.
(rs6000_elf_asm_out_destructor): Likewise.
PR target/47084
* config/mn10300/linux.h (PRINT_OPERAND): Update for name changes
to mn10300_print_operand / mn10300_print_operand_address.
2010-12-30 Mingjie Xing <>
* config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change
* config/mips/mips.c (mips_shift_truncation_mask): Likewise.
2010-12-30 Joseph Myers <>
* config/openbsd.opt: New.
* config.gcc (alpha*-*-openbsd*,
i[34567]86-*-openbsd*, m68k*-*-openbsd*, mips*-*-openbsd*,
sparc64-*-openbsd*, vax-*-openbsd*): Use openbsd.opt.
2010-12-30 John David Anglin <>
* config/pa/ Add ",*" condition to 64-bit add/subtract boolean
2010-12-30 Eric Botcazou <>
PR target/47038
* config/sparc/sparc.c (sparc_file_end): Call resolve_unique_section
on the GOT helper if USE_HIDDEN_LINKONCE.
2010-12-30 Joseph Myers <>
PR c/46889
* c-decl.c (detect_field_duplicates): Ensure hash is used for
finding duplicates when first field is anonymous.
2010-12-30 Nathan Froyd <>
PR target/44606
* reload1.c (choose_reload_regs): Don't look for equivalences for
output reloads of constant loads.
2010-12-30 Ulrich Weigand <>
* emit-rtl.c (set_mem_attributes_minus_bitpos): Explicitly derive
default values from MEM mode if no memory attributes are present.
Do not use mode alignment, even on STRICT_ALIGNMENT targets, when
called with an expression (not a type).
2010-12-30 H.J. Lu <>
* config/i386/i386.c (upper_128bits_state): Remove comments.
(block_info_def): Add unchanged.
(move_or_delete_vzeroupper_2): Short circuit if upper 128bits
are unchanged in the block.
2010-12-30 H.J. Lu <>
PR target/46519
* config/i386/i386.c (block_info_def): Remove referenced, count
and rescanned.
(move_or_delete_vzeroupper_2): Updated.
(move_or_delete_vzeroupper_1): Rewritten to avoid recursive call.
(rescan_move_or_delete_vzeroupper): Removed.
(move_or_delete_vzeroupper): Repeat processing all basic blocks
until no basic block state is changed to used at exit.
2010-12-30 Paul Koning <>
* config/pdp11/ (movmemhi, movmemhi1): Correct
* config/pdp11/pdp11.c (output_block_move): Rewrite.
2010-12-30 Jakub Jelinek <>
PR tree-optimization/47060
* tree-parloops.c (reduction_phi): Return NULL if PHI is NULL.
2010-12-29 Paul Koning <>
* config/pdp11/pdp11-protos.h (pdp11_asm_output_var): Declare.
* config/pdp11/pdp11.c (pdp11_asm_output_var): New function.
* config/pdp11/pdp11.h (ASM_OUTPUT_ALIGNED_COMMON,
2010-12-30 Joern Rennecke <>
PR target/47129
* config/ia64/ia64.c: Include "dwarf2out.h" .
PR target/47063
* config/alpha/vms.h (MALLOC_ALIGNMENT): Don't undef / define.
(MALLOC_ABI_ALIGNMENT): Undef / define.
PR target/47101
* vmsdbgout.c (vmsdbgout_init): Rename main_input_filename to filename.
(vmsdbgout_finish): Likewise.
PR target/47097
* config/i386/lynx.h (DBX_REGISTER_NUMBER): Add cast to avoid
mixing signed and unsigned types in conditional expression.
2010-12-29 Jakub Jelinek <>
PR tree-optimization/47074
* gimple-fold.c (gimplify_and_update_call_from_tree): Call
pop_gimplify_context if returning early.
2010-12-28 Sebastian Pop <>
* (graphite.o): Depends on DIAGNOSTIC_CORE_H.
(graphite-clast-to-gimple.o): Same.
(graphite-poly.o): Same.
* graphite-clast-to-gimple.c: Include diagnostic-core.h.
* graphite-poly.c: Same.
* graphite.c: Same.
2010-12-28 Richard Guenther <>
PR debug/46931
* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Update
SSA before removing dead stmts.
2010-12-28 H.J. Lu <>
Uros Bizjak <>
* config/i386/i386-builtin-types.def (PUSHORT): New.
* config/i386/i386.c (ix86_builtins): Remove
(bdesc_special_args): Remove IX86_BUILTIN_RDRAND16,
(ix86_init_mmx_sse_builtins): Handle IX86_BUILTIN_RDRAND16_STEP,
(ix86_expand_builtin): Likewise.
(ix86_expand_special_args_builtin): Remove UINT16_FTYPE_VOID.
* config/i386/ (UNSPEC_RDRAND): New.
(rdrand<mode>): Likewise.
(rdrand<mode>_1): Also set FLAGS_REG. Replace UNSPECV_RDRAND
* config/i386/immintrin.h (_rdrand_u16): Removed.
(_rdrand_u32): Likewise.
(_rdrand_u64): Likewise.
(_rdrand16_step): New.
(_rdrand32_step): Likewise.
(_rdrand64_step): Likewise.
* doc/extend.texi (__builtin_ia32_rdrand16): Removed.
(__builtin_ia32_rdrand32): Likewise.
(__builtin_ia32_rdrand64): Likewise.
(__builtin_ia32_rdrand16_step): New.
(__builtin_ia32_rdrand32_step): Likewise.
(__builtin_ia32_rdrand64_step): Likewise.
2010-12-28 Sebastian Pop <>
* (graphite.o): Add dependence on DIAGNOSTIC_H.
* graphite.c: Include diagnostic.h.
2010-12-28 Sebastian Pop <>
* (TREE_VECTORIZER_H): Removed duplicate definition.
(tree-browser.o): Update dependences.
(omega.o): Same.
(tree-chrec.o): Same.
(tree-scalar-evolution.o): Same.
(tree-data-ref.o): Same.
(sese.o): Same.
(graphite.o): Same.
(graphite-blocking.o): Same.
(graphite-clast-to-gimple.o): Same.
(graphite-cloog-util.o): Same.
(graphite-dependences.o): Same.
(graphite-flattening.o): Same.
(graphite-interchange.o): Same.
(graphite-poly.o): Same.
(graphite-ppl.o): Same.
(graphite-scop-detection.o): Same.
(graphite-sese-to-poly.o): Same.
(tree-loop-linear.o): Same.
(tree-loop-distribution.o): Same.
(tree-parloops.o): Same.
(lambda-mat.o): Same.
(lambda-trans.o): Same.
(lambda-code.o): Same.
* tree-browser.o: Do not include unnecessary .h files.
* omega.o: Same.
* tree-chrec.o: Same.
* tree-scalar-evolution.o: Same.
* tree-data-ref.o: Same.
* sese.o: Same.
* graphite.o: Same.
* graphite-blocking.o: Same.
* graphite-clast-to-gimple.o: Same.
* graphite-cloog-util.o: Same.
* graphite-dependences.o: Same.
* graphite-flattening.o: Same.
* graphite-interchange.o: Same.
* graphite-poly.o: Same.
* graphite-ppl.o: Same.
* graphite-scop-detection.o: Same.
* graphite-sese-to-poly.o: Same.
* tree-loop-linear.o: Same.
* tree-loop-distribution.o: Same.
* tree-parloops.o: Same.
* lambda-mat.o: Same.
* lambda-trans.o: Same.
* lambda-code.o: Same.
* graphite.h: Removed.
2010-12-28 Paul Koning <>
* config/pdp11/ Correct length attribute for float
literal case.
2010-12-28 Jie Zhang <>
* builtins.c (SLOW_UNALIGNED_ACCESS): Remove.
2010-12-27 Joseph Myers <>
* config/freebsd.opt (assert=, defsym=, profile, pthread,
rpath-link=, rpath=, soname=): New Driver options.
2010-12-26 Martin Jambor <>
* tree.c (get_binfo_at_offset): Use BINFO_TYPE instead of TREE_TYPE,
compare TYPE_MAIN_VARIANTs of types.
2010-12-26 Andreas Schwab <>
* config/m68k/t-linux (M68K_MLIB_CPU): Only include 680x0 CPUs.
2010-12-24 Alexander Monakov <>
PR rtl-optimization/47036
* sel-sched-ir.c (fallthru_bb_of_jump): Remove special support for
unconditional jumps.
* sel-sched.c (moveup_expr): Ditto.
2010-12-23 Sebastian Pop <>
Richard Guenther <>
PR tree-optimization/46758
* graphite-sese-to-poly.c (scan_tree_for_params_right_scev): Use
tree_int_to_gmp instead of int_cst_value.
(scan_tree_for_params_int): Same.
(scan_tree_for_params): Same.
(pdr_add_data_dimensions): Use ppl_set_inhomogeneous_tree.
2010-12-23 Sebastian Pop <>
PR tree-optimization/47002
* tree-data-ref.c (compute_data_dependences_for_loop): Pass in a
pointer to the loop_nest.
(analyze_all_data_dependences): Initialize and free the loop_nest.
(free_dependence_relations): Do not free loop_nest.
(build_rdg): Pass in the loop_nest, datarefs, and dependence_relations.
(free_rdg): Also free the data on edges.
* tree-data-ref.h (build_rdg): Update declaration.
(compute_data_dependences_for_loop): Same.
* tree-if-conv.c (if_convertible_loop_p_1): Pass in the loop_nest.
(if_convertible_loop_p): Allocate and free loop_nest.
* tree-loop-distribution.c (rdg_flag_loop_exits): Free conds.
(free_rdg_components): VEC_free components.
(distribute_loop): Update call to build_rdg. Allocate and free
loop_nest, datarefs, and dependence_relations.
* tree-loop-linear.c (linear_transform_loops): Allocate and free
* tree-parloops.c (loop_parallel_p): Same.
* tree-predcom.c (tree_predictive_commoning_loop): Same.
* tree-vect-data-refs.c (vect_analyze_data_refs): Pass to
compute_data_dependences_for_loop a pointer to LOOP_VINFO_LOOP_NEST.
* tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_LOOP_NEST.
(destroy_loop_vec_info): Free LOOP_VINFO_MAY_ALIAS_DDRS and
* tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
* tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.
2010-12-23 Martin Jambor <>
* ipa.c (cgraph_remove_unreachable_nodes): Update former_clone_of even
when not checking.
2010-12-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for
--eh-frame-hdr. Check for working Sun ld version.
(HAVE_LD_EH_FRAME_HDR): Adapt comment.
(glibc_header_dir): Set only once. Rename to ...
(target_header_dir): ... this. Adapt users.
(gcc_cv_target_dl_iterate_frame_hdr): Check on *-*-solaris2*.
(TARGET_DL_ITERATE_PHDR): Define if present.
* configure: Regenerate.
* Likewise.
* config/t-sol2 (LIB2ADDEH, LIB2ADDEHDEP): Define.
* crtstuff.c (USE_PT_GNU_EH_FRAME): Define for recent Solaris 11
with linker support and dl_iterate_phdr.
* unwind-dw2-fde-glibc.c (USE_PT_GNU_EH_FRAME): Likewise.
(_Unwind_IteratePhdrCallback) [PT_SUNW_UNWIND]: Also accept
PT_SUNW_UNWIND .eh_frame_hdr sections.
[CRT_GET_RFIB_DATA && __i386__ && __sun__ && __svr4__]: Add
load_base to data->dbase.
[CRT_GET_RFIB_DATA && __x86_64__ && __sun__ && __svr4__]: Handle
64-bit Solaris 10+/x86.
(LINK_EH_SPEC): Define.
2010-12-23 Ralf Wildenhues <>
* doc/extend.texi (Function Attributes, Volatiles): Fix typos.
* doc/install.texi (Prerequisites, Specific): Likewise.
* doc/invoke.texi (C Dialect Options, Debugging Options)
(Optimize Options, MicroBlaze Options)
(RS/6000 and PowerPC Options, RX Options, Code Gen Options): Likewise.
* doc/objc.texi (Method signatures)
(Fast enumeration protocol): Likewise.
* doc/ (Run-time Target, Register Arguments)
(Scheduling, Macros for Initialization, Misc): Likewise.
* doc/tm.texi: Renerate.
2010-12-23 Nicola Pero <>
* doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
reference documentation for functions in the API is in the header
(Messaging with the GNU Objective-C runtime, Dynamically
registering methods, Forwarding hook): New sections.
2010-12-22 Sebastian Pop <>
PR tree-optimization/47019
* sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
2010-12-22 Nathan Froyd <>
* c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
* c-decl.c (diagnose_arglist_conflict): Likewise.
(diagnose_mismatched_decls, merge_decls): Likewise.
(c_builtin_function, c_builtin_function_ext_scope): Likewise.
(start_decl, start_function): Likewise.
* c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
* config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
* config/mep/mep.c (mep_validate_interrupt): Likewise.
* config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
* config/rs6000/rs6000.c (init_cumulative_args): Likewise.
* config/sh/sh.c (sh_init_cumulative_args): Likewise.
* config/sparc/sparc.c (init_cumulative_args): Likewise.
* dwarf2out.c (add_prototyped_attribute): Likewise.
(gen_subprogram_die): Likewise.
* ipa-type-escape.c (check_function_parameter_and_return_types):
(check_call): Likewise.
* tree-ssa.c (useless_type_conversion_p): Likewise.
2010-12-22 Ulrich Weigand <>
* config/spu/ ("mov<mode>"): Use nonimmediate_operand
predicate for destination operand.
* config/spu/spu.c (spu_expand_mov): If move destination is an
invalid subreg, perform move in the subreg's inner mode instead.
2010-12-22 Martin Jambor <>
PR tree-optimization/45934
PR tree-optimization/46302
PR tree-optimization/46987
* gimple-fold.c (get_base_binfo_for_type): Removed.
(gimple_get_relevant_ref_binfo): Likewise.
(gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
removed parameter inplace, updated the caller.
* gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
* ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
(ipcp_discover_new_direct_edges): Do not do devirtualization based on
* ipa-prop.c (compute_known_type_jump_func): Use
get_ref_base_and_extent and get_binfo_at_offset instead of
(compute_known_type_jump_func): Likewise.
(update_jump_functions_after_inlining): Do not derive types from
(try_make_edge_direct_virtual_call): Likewise.
* tree.c (get_binfo_at_offset): Get type from non-artificial fields.
2010-12-22 Joseph Myers <>
* config/svr4.h: Remove.
* system.h (USING_SVR4_H, SVR4_ASM_SPEC): Poison.
* config.gcc, config/bfin/bfin.h, config/cris/cris.h,
config/fr30/fr30.h, config/frv/frv.h, config/i386/openbsdelf.h,
config/i386/vx-common.h, config/ia64/elf.h, config/ia64/ia64.h,
config/ia64/sysv4.h, config/iq2000/iq2000.h, config/m68k/linux.h,
config/m68k/m68kelf.h, config/mips/mips.h, config/mips/vxworks.h,
config/moxie/moxie.h, config/netbsd-aout.h, config/openbsd.h,
config/rs6000/sysv4.h, config/sh/elf.h, config/sh/sh.h,
config/sol2.h, config/sparc/sysv4.h, config/stormy16/stormy16.h,
config/v850/v850.h, config/vxworks.h: Remove or update comments
referring to svr4.h.
2010-12-22 Andrey Belevantsev <>
PR rtl-optimization/45352
PR rtl-optimization/46521
PR rtl-optimization/46522
* sel-sched.c (reset_sched_cycles_in_current_ebb): Recheck the
DFA state on the last iteration of the advancing loop.
(sel_sched_region_1): Propagate the rescheduling bit to the next
block also for empty blocks.
2010-12-22 Alexandre Oliva <>
PR debug/46724
* function.c (assign_parms_augmented_arg_list): Name and mark
DECL of result address as NAMELESS rather than IGNORED.
(assign_parms): Set DECL_VALUE_EXPR for indirect result.
* tree.h (tree_decl_common::decl_flag_2): Document RESULT_DECL.
* dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
* dbxout.c (dbxout_expand_expr) <RESULT_DECL>: Likewise.
* var-tracking.c (vt_add_function_parameter): New, split out of...
(vt_add_function_parameters): ... this. Handle incoming
pointer to hold result.
2010-12-22 Jie Zhang <>
* config/arm/arm.c (output_move_double): Update the comment
above the function to reflect the current implementation.
2010-12-21 Steven Bosscher <>
De-hookize profile infrastructure.
* value-prof.c (value_prof_hooks): Remove.
(struct value_prof_hooks): Remove.
(gimple_value_prof_hooks): Remove.
(gimple_register_value_prof_hooks): Remove.
(find_values_to_profile): Remove.
(value_profile_transformations): Remove.
(gimple_value_profile_transformations): No longer static.
(gimple_find_values_to_profile): Likewise.
* value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
(find_values_to_profile): Likewise.
(value_profile_transformations): Likewise.
(tree_register_profile_hooks): Likewise.
(struct profile_hooks): Remove.
(tree_profile_hooks): Remove.
(gimple_find_values_to_profile): New protoype.
(gimple_value_profile_transformations): Likewise.
(gimple_init_edge_profiler): Likewise.
(gimple_gen_edge_profiler): Likewise.
(gimple_gen_interval_profiler): Likewise.
(gimple_gen_pow2_profiler): Likewise.
(gimple_gen_one_value_profiler): Likewise.
(gimple_gen_ic_profiler): Likewise.
(gimple_gen_ic_func_profiler): Likewise.
(gimple_gen_const_delta_profiler): Likewise.
(gimple_gen_average_profiler): Likewise.
(gimple_gen_ior_profiler): Likewise.
* profile.c (profile_hooks): Remove.
(instrument_edges): Call profiling functions directly instead
of through removed profile_hooks.
(instrument_values): Likewise.
(branch_prob): Call gimple_find_values_to_profile instead of
removed find_values_to_profile.
Call gimple_init_edge_profiler instead of removed hook.
(tree_register_profile_hooks): Remove.
* tree-profile.c (tree_init_ic_make_global_vars): Rename to
(tree_init_edge_profiler): Rename to gimple_init_edge_profiler
and no longer static.
(tree_gen_edge_profiler, tree_gen_interval_profiler,
tree_gen_pow2_profiler, tree_gen_one_value_profiler,
tree_gen_ic_profiler, tree_gen_ic_func_profiler,
tree_gen_const_delta_profiler, tree_gen_average_profiler,
tree_gen_ior_profiler): Similarly renamed and no longer static.
(tree_profiling): Do not initialize tree profiling hooks.
(tree_profile_hooks): Remove.
2010-12-21 Jakub Jelinek <>
PR target/46880
* config/i386/ (sse2_loadlpd, sse2_movsd): Fix shufpd source
2010-12-21 Ira Rosen <>
PR tree-optimization/47001
* tree-vect-slp.c (vect_supported_load_permutation_p): Check that
the loads in reduction are different and there are no gaps between
2010-12-21 Steven Bosscher <>
PR middle-end/45310
* tree-ssa-phiprop.c (propagate_with_phi): Remove statement
completely from the function, including EH traces.
2010-12-21 Steven Bosscher <>
PR rtl-optimization/46755
* ira.c (ira): If some dead edges were removed, find and delete
any blocks that might have become unreachable.
2010-12-21 Jakub Jelinek <>
PR rtl-optimization/47008
* postreload.c (reload_combine_note_store): Also handle
2010-12-21 Ulrich Weigand <>
* config/arm/arm.c (require_pic_register): Set INSN_LOCATOR for all
instructions injected into the prologue to prologue_locator.
2010-12-21 Jan Hubicka <>
PR middle-end/47000
* tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.
2010-12-21 Jie Zhang <>
* config/arm/ Fix a typo in comment.
2010-12-21 Jakub Jelinek <>
PR middle-end/45852
* expr.c (store_expr): Ignore alt_rtl if equal to target,
but has side-effects.
2010-12-21 Anatoly Sokolov <>
* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Remove.
* config/sh/sh-protos.h (secondary_reload_info, sh_secondary_reload):
Remove forward declaration.
* config/sh/sh.c (sh_preferred_reload_class): New function.
(sh_secondary_reload): Make static.
2010-12-20 Joseph Myers <>
* config/alpha/linux.h (OPTION_GLIBC): Define differently if
Define differently if SINGLE_LIBC.
* config/rs6000/linux.h (OPTION_GLIBC): Define differently if
* config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
(*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
(bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
DEFAULT_LIBC or use linux.opt.
2010-12-20 Richard Henderson <>
* config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
* config/mn10300/ (call, call_value): Generate UNSPEC_PLT
by hand, with the proper mode.
(symGOT2reg, symGOT2reg_i, symGOTOFF2reg): Remove.
(symGOTOFF2reg_i, sym2PIC, sym2PLT): Remove.
2010-12-20 Sanjin Liu <>
Mingfeng Wu <>
* config/arm/arm-cores.def: Add Faraday CPU support -
* config/arm/ Regenerate.
* config/arm/arm.c (arm_fa726te_tune): New tune_params for fa726te
(fa726te_sched_adjust_cost): New cost function for fa726te.
(arm_issue_rate): Add fa726te.
* config/arm/ (generic_sched): Add Faraday cores to generic_sched
and include machine description files.
* config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Add fa526 and fa626.
* config/arm/t-arm (MD_INCLUDES): Include machine description files for
Faraday cores.
* config/arm/t-arm-elf: Add multilib option for Faraday cores.
* config/arm/t-linux-eabi: Add multilib option for Faraday cores except
fa526 and fa626.
* doc/invoke.texi: Document -mcpu for Faraday cores.
* config/arm/ New file.
* config/arm/ New file.
* config/arm/ New file.
* config/arm/ New file.
* config/arm/ New file.
2010-12-20 Yvan Roux <>
* config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
condition on IT instruction for early termination.
2010-12-20 Joseph Myers <>
* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
* config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
* config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
* config/rs6000/sysv4.h (SIZE_TYPE): Define.
(ASM_SPEC): Define without using SVR4_ASM_SPEC.
* config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.
2010-12-20 Iain Sandoe <>
Jan Hubicka <>
PR middle-end/46916
* opts.c (finish_options): Enable -freorder-functions
when -freorder-blocks-and-partition is active.
2010-12-20 Iain Sandoe <>
PR c++/46904
PR middle-end/46916
PR target/46950
* config/darwin.c (generating_for_darwin_version): New var.
(darwin_text_section): Remove.
(darwin_rodata_section): Do not check function section here.
(darwin_emit_unwind_label): Do not emit for Darwin >= 9.
Emit distinct labels for successive calls for the same decl.
(darwin_override_options): Set generating_for_darwin_version.
Add FIXME and disable -freorder-blocks-and-partition.
Suppress automatic asynchronous unwind tables for m32.
Switch off -freorder-blocks-and-partition when unwind tables
will be generated. Update to use generating_for_darwin_version.
(darwin_function_section): Check for cases that need to be placed
in coalesced sections.
* config/darwin-sections.def: Define hot, cold, startup and
exit sections for both coalesced and regular code.
* config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
* config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.
2010-12-20 Ralf Wildenhues <>
* doc/cppopts.texi: Use @var when appropriate.
* doc/extend.texi (Structure-Packing Pragmas): Likewise.
* doc/gimple.texi (Logical Operators)
(Adding a new GIMPLE statement code): Likewise.
* doc/invoke.texi (Target Options, Precompiled Headers): Likewise.
* doc/plugins.texi (Plugins): Likewise.
* doc/install.texi (Configuration, Building, Testing, Specific):
Remove leading whitespace from examples.
2010-12-19 Andi Kleen <>
PR lto/46905
* collect2.c (main): Handle -fno-lto.
* opts.c (common_handle_option): Handle -fno-lto.
2010-12-19 Eric Botcazou <>
PR target/46729
* config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
(PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
* config/sparc/sparc.c (pic_helper_needed): Delete.
(global_offset_table): Likewise.
(pic_helper_symbol): Rename to...
(got_helper_rtx): ...this.
(global_offset_table_rtx): New global variable.
(sparc_got_symbol): Likewise.
(sparc_got): New static function.
(check_pic): Use local variable and call sparc_got.
(sparc_tls_symbol): Initialize to NULL_RTX.
(sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
and 32-bit ABI and copy the GOT symbol to a new register otherwise.
(get_pc_thunk_name): Rename local variable.
(gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
(load_pic_register): Rename to...
(load_got_register): ...this. Adjust and call gen_load_pcrel_sym.
(sparc_expand_prologue): Do not test flag_pic.
(sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
(sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
Rename local variable and do not call get_pc_thunk_name again.
* config/sparc/ (load_pcrel_sym): Add operand #3.
2010-12-19 Dave Korn <>
PR middle-end/46674
PR middle-end/46221
* varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
wrapper class.
(symbol_alias_set_create): New wrapper function.
(symbol_alias_set_destroy): Likewise.
(symbol_alias_set_contains): Likewise.
(symbol_alias_set_insert): Likewise.
(compute_visible_aliases): Use the above and return symbol_alias_set_t,
not a pointer_set.
(remove_unreachable_alias_pairs): Adjust likewise to match.
(finish_aliases_1): Likewise.
2010-12-19 Chung-Lin Tang <>
* config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
index range case. Change to SF/DFmode tests to avoid capturing HFmode.
(thumb2_legitimate_index_p): Same.
2010-12-18 Jakub Jelinek <>
PR tree-optimization/46969
* tree-parloops.c (struct reduction_info): Add reduc_version.
(reduction_info_hash): Return reduc_version field.
(reduction_phi): Set reduc_version to gimple_uid (phi).
(build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
phi result.
(set_reduc_phi_uids): New function.
(gather_scalar_reductions): Call it at the end through htab_traverse.
2010-12-18 Nicola Pero <>
* c-parser.c (c_parser_objc_try_catch_finally_statement): Call
(c_parser_objc_synchronized_statement): Call
2010-12-18 Jakub Jelinek <>
PR tree-optimization/46985
* tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
return it immediately.
2010-12-18 John David Anglin <>
PR target/46915
* config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
of next_real_insn. Search forward checking for both ASM_INPUT and
ASM_OPERANDS asms until exit condition is found.
(branch_needs_nop_p): Likewise.
(use_skip_p): New function.
(output_cbranch): Use use_skip_p.
(output_bb, output_bvb): Likewise.
2010-12-18 Kai Tietz <>
PR target/36834
* config/i386/i386.c (ix86_keep_aggregate_return_pointer):
New local function.
(ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
(ix86_handle_callee_pop_aggregate_return): New handler.
(ix86_attribute_table): Add new attribute
* doc/extend.texi (callee_pop_aggregate_return): Add
attribute documentation.
2010-12-18 Iain Sandoe <>
Only set sjlj exceptions for NeXT/m32.
2010-12-18 Iain Sandoe <>
Only expose when not building for target.
2010-12-17 Joseph Myers <>
* config/netbsd.opt, config/netbsd-elf.opt: New files.
* config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
2010-12-17 Richard Henderson <>
* regcprop.c (find_oldest_value_reg): Continue search instead of
failing if an element in the copy chain is of the wrong regclass.
2010-12-17 Paolo Bonzini <>
PR c/20385
* function.c (used_types_insert): Handle ERROR_MARK.
* c-decl.c (grokdeclarator): Handle ERROR_MARK.
(declspecs_add_type): Leave error_mark_node in specs->type.
(finish_declspecs): Change it to integer_type_node here.
* c-parser.c (c_parser_peek_2nd_token): Move earlier.
(enum c_lookahead_kind): New.
(c_parser_next_token_starts_typename): New name of
c_parser_next_tokens_start_typename. Accept lookahead enum
and handle it here instead of...
(c_parser_next_tokens_start_declaration): ... here. Call it.
(c_parser_declspecs): Accept another argument. Do not exit
on C_ID_ID if it is guessed to be an unknown typename.
(c_parser_parms_declarator): Use 2nd token to distinguish a K&R
declaration from an ANSI declaration starting with an unknown
(c_parser_struct_declaration, c_parser_objc_type_name,
c_parser_typeof_specifier, c_parser_declarator,
c_parser_direct_declarator_inner): Adjust calls.
(c_parser_parameter_declaration): Likewise.
(c_parser_type_name): Pass back an error_mark_node to the caller.
(c_parser_postfix_expression): Do error recovery when
c_parser_type_name returns NULL.
2010-12-17 Joseph Myers <>
* config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define.
* config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
* config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
* config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
* config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
2010-12-17 H.J. Lu <>
* config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
"BB [%i]" with "[bb %i]" in dump.
(move_or_delete_vzeroupper_1): Likewise.
(rescan_move_or_delete_vzeroupper): Likewise. Always dump
upper 128bit state at exit.
2010-12-17 Joseph Myers <>
* config/interix.opt: New.
* config/interix.h (LINK_SPEC): Don't handle -soname*.
* config.gcc (i[34567]86-*-interix3*): Use interix.opt.
2010-12-17 Andrew Stubbs <>
* config/arm/ (maddhisi4, *maddhidi4): Use the canonical
operand order for plus.
Drop redundant % from constraints.
2010-12-17 Ulrich Weigand <>
* config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
* config/spu/ ("floattisf2"): New expander.
("floatunstisf2"): New insn pattern and splitter.
("cgt_ti_m1"): New insn pattern.
2010-12-17 Bernd Schmidt <>
* config/arm/arm.c (arm_select_cc_mode): Before calling
arm_select_dominance_cc_mode for AND or IOR operations, ensure
that op is NE or EQ.
2010-12-17 Alexander Monakov <>
PR middle-end/46761
* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
to use unadjusted UB.
2010-12-17 Dodji Seketeli <>
* dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
that underlying type instead.
2010-12-16 Jan Hubicka <>
PR middle-end/44563
* ipa-inline.c: Update doplevel comment.
(cgraph_estimate_size_after_inlining): Remove times attribute.
(cgraph_mark_inline_edge): Update.
(cgraph_mark_inline): Remove.
(cgraph_estimate_growth): Update.
(cgraph_check_inline_limits): Remove one only argument.
(cgraph_edge_badness): Update.
(cgraph_decide_recursive_inlining): Update.
(cgraph_decide_inlining_of_small_function): Fix handling of
tree_can_inline_p and call_stmt_cannot_inline_p.
(cgraph_flatten): Likewise.
(cgraph_decide_inlining): Update.
(cgraph_decide_inlining_incrementally): Fix handling of
2010-12-16 Joseph Myers <>
* config/darwin.opt (dylinker, headerpad_max_install_names,
keep_private_externs, nofixprebinding, nomultidefs, noprebind,
noseglinkedit, object, prebind, prebind_all_twolevel_modules,
preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
Driver options.
* config/darwin.h (LINK_SPEC): Remove '*' after
2010-12-16 Sebastian Pop <>
PR tree-optimization/46924
* graphite-sese-to-poly.c (detect_commutative_reduction): Do not
detect reductions outside the current SESE region.
* sese.h (stmt_in_sese_p): New.
(defined_in_sese_p): Call stmt_in_sese_p.
2010-12-16 Jakub Jelinek <>
PR tree-optimization/46966
* graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
for bbs that are removed from SCOP_BBS vector.
2010-12-16 Eric Botcazou <>
* tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
get_ref_base_and_extent returns -1 as the max size.
2010-12-16 Konrad Eisele <>
Eric Botcazou <>
Support for LEON processor
* config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
(sparc-*-linux*): Likewise.
(sparc-*-rtems*): Remove Solaris left-overs.
(sparc*-*-*): Remove obsolete sparc86x setting.
(sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
* doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
* config/sparc/sparc.h (TARGET_CPU_leon): Define.
(TARGET_CPU_sparc86x): Delete.
(TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
(TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
(TARGET_CPU_f934): Likewise.
(TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
(CPP_CPU_SPEC): Add entry for -mcpu=leon.
(enum processor_type): Add PROCESSOR_LEON. Reorganize.
* config/sparc/sparc.c (leon_costs): New cost array.
(sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
Initialize cost array to leon_costs if -mtune=leon.
* config/sparc/ (cpu attribute): Add leon. Reorganize.
Include scheduling description.
* config/sparc/ New file.
* config/sparc/t-elf: Do not assemble Solaris startup files.
* config/sparc/t-leon: New file.
* config/sparc/t-leon3: Likewise.
2010-12-16 Jakub Jelinek <>
PR tree-optimization/43655
* tree-ssa-ter.c (is_replaceable_p): Don't use
gimple_references_memory_p for -O0, instead check for load
by looking at rhs.
2010-12-16 Sebastian Pop <>
PR tree-optimization/46404
* graphite-clast-to-gimple.c (gloog): Call scev_reset.
2010-12-16 Anatoly Sokolov <>
* config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
2010-12-16 Ulrich Weigand <>
* config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
* config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
(LIBGCC2_UNITS_PER_WORD): Define if not already defined.
2010-12-16 Jakub Jelinek <>
PR debug/46893
* cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
2010-12-16 Chung-Lin Tang <>
PR target/46883
* config/arm/
(zero_extendhisi2 for register input splitter): Change
"register_operand" to "s_register_operand".
(zero_extendqisi2 for register input splitter): Same.
2010-12-16 Jan Hubicka <>
PR middle-end/46939
* predic.c (predict_paths_leading_to_edge): New function.
(apply_return_prediction): Use it.
(predict_paths_for_bb): Do not special case abnormals.
2010-12-16 Joseph Myers <>
* config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
extra_options twice.
2010-12-15 Joseph Myers <>
* doc/ (US_SOFTWARE_GOFAST): Don't document.
* doc/tm.texi: Regenerate.
* system.h (US_SOFTWARE_GOFAST): Poison.
* config.gcc (enable_gofast): Don't handle.
* config/gofast.h: Remove.
* config/mips/t-gofast: Remove.
* config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
* config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
* config/mips/elforion.h: Don't mention GOFAST in comment.
* config/mips/mips.c: Don't include gofast.h.
(mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
* config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
* config/sparc/sparc.c: Don't include gofast.h.
(sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
* config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
2010-12-14 Jan Hubicka <>
* config/darwin.opt (dylinker, headerpad_max_install_names,
keep_private_externs, nofixprebinding, nomultidefs, noprebind,
noseglinkedit, object, prebind, prebind_all_twolevel_modules,
preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
Driver options.
* config/darwin.h (LINK_SPEC): Remove '*' after
2010-12-14 Jan Hubicka <>
* tree.c (get_file_function_name): Avoid using random seed on
GLOBAL_sub_I and GLOBAL_sub_D.
2010-12-15 Martin Jambor <>
PR tree-optimization/46053
PR middle-end/46287
PR middle-end/46242
* cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
* gimple.h (gimple_fold_obj_type_ref): Declaration removed.
(gimple_fold_call): Declare.
(gimple_adjust_this_by_delta): Likewise.
* cgraph.c (cgraph_make_edge_direct): New parameter delta. Updated
all users.
(cgraph_clone_edge): Create a copy of indirect_info also for direct
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
* gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
gimple_get_virt_mehtod_for_binfo, new parameter delta. Do not search
through thunks, in fact bail out if we encounter one, check that
(gimple_adjust_this_by_delta): New function.
(gimple_fold_obj_type_ref): Removed.
(gimple_fold_obj_type_ref_call): New function.
(fold_gimple_call): Renamed to gimple_fold_call, made external.
Updated users. Call gimple_fold_obj_type_ref_call instead of
* ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
thunk deltas.
(ipcp_discover_new_direct_edges): Likewise.
* ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
Updated callers.
(ipa_write_indirect_edge_info): Stream thunk_delta.
(ipa_read_indirect_edge_info): Likewise.
* tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
2010-12-15 Alexander Monakov <>
PR rtl-optimization/46649
* sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
basic block in the region.
2010-12-15 Joseph Myers <>
* config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
* config.gcc (xstormy16-*-elf): Don't use svr4.h.
2010-12-15 Joseph Myers <>
* config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (rx-*-elf*): Don't use svr4.h.
2010-12-14 Sebastian Pop <>
PR tree-optimization/46845
* sese.c (scalar_evolution_in_region): Handle scop parameters
before scev analysis.
2010-12-14 Sebastian Pop <>
PR tree-optimization/46928
* tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
in data dependence analysis with p a parameter of the loop.
2010-12-14 Sebastian Pop <>
PR tree-optimization/45948
* tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
(stmt_has_scalar_dependences_outside_loop): New.
(stmt_generated_in_another_partition): New.
(add_scalar_computations_to_partition): New.
(rdg_build_partitions): Call add_scalar_computations_to_partition.
2010-12-14 Joseph Myers <>
* config/arc/arc.h (LIB_SPEC): Define.
* config.gcc (arc-*-elf*): Don't use svr4.h.
2010-12-14 Joseph Myers <>
* config/sh/elf.h (LIB_SPEC): Define.
* config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
sh-wrs-vxworks): Don't use svr4.h.
2010-12-14 Jan Hubicka <>
PR lto/46940
PR lto/44463
* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
for aliases when they are used.
2010-12-14 Joseph Myers <>
* config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
2010-12-14 Thomas Klein <>
* config/arm/arm.c (arm_expand_prologue): Report the static stack
size if -fstack-usage is used.
(thumb1_expand_prologue): Likewise.
2010-12-14 Jakub Jelinek <>
PR debug/46885
* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
instead of gsi_last_nondebug_bb if bump_in_latch.
PR tree-optimization/46909
* gimple-fold.c (and_var_with_comparison_1): Save partial
result even in the is_and case, if both partial results
are the same, return it.
(or_var_with_comparison_1): Use is_or predicate instead of
innercode == TRUTH_OR_EXPR test. Save partial result
even in the is_or case, if both partial results are the
same, return it. In the !is_or case when both partial
results are the same, return the partial result instead
of boolean_true_node.
2010-12-14 Jan Hubicka <>
PR middle-end/46667
* varasm.c (assemble_start_function): Do not call
* cfgexpand.c (gimple_expand_cfg): Resolve it here.
2010-12-14 Alexander Monakov <>
PR rtl-optimization/46875
* sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
* sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
2010-12-14 Kaushik Phatak <>
* config/h8300/ (define_split) : Add condition for
"and with single_zero" splitter to handle 16-bit const operands.
* config/h8300/ (define_split) : Add condition for
"ior with single_one" splitter to handle 16-bit const operands.
* config/h8300/ (define_split) : Add condition for
"xor with single_one" splitter to handle 16-bit const operands.
* testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
2010-12-13 Jan Hubicka <>
PR middle-end/45388
* ipa.c (cgraph_build_static_cdtor_1): Break out from ... Add FINAL
(cgraph_build_static_cdtor): ... here.
(build_cdtor): Use cgraph_build_static_cdtor_1.
2010-12-13 Joseph Myers <>
* config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
* config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
2010-12-14 Bernd Schmidt <>
PR rtl-optimization/44374
Reapply patch with fixes.
* basic-block.h (enum bb_flags): Add BB_MODIFIED.
* df-core.c (df_set_bb_dirty): Set it.
* ifcvt.c (find_memory): Remove function.
(dead_or_predicable): Use can_move_insns_across.
* df.h (can_move_insns_across): Declare function.
* cfgcleanup.c (block_was_dirty): New static variable.
(flow_find_head_matching_sequence): Test for epilogue notes.
(try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
than df_get_bb_dirty.
(try_head_merge_bb): New static function.
(try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
is set.
* df-problems.c: Include "target.h"
(df_simulate_find_uses): New static function.
(find_memory, find_memory_store): New static functions.
(can_move_insns_across): New function.
* (df-problems.o): Update dependencies.
2010-12-13 Joseph Myers <>
* config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
* config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
* config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
2010-12-13 Jack Howarth <>
Joseph Myers <>
PR bootstrap/46650
* system.h: Include cstring for cxx bootstrap.
2010-12-13 Jakub Jelinek <>
PR lto/46879
* lto-streamer-out.c (output_gimple_stmt): Never replace first
GIMPLE_DEBUG argument with MEM_REF.
PR debug/46867
* var-tracking.c (emitted_notes, string_pointer_flags): Removed.
(emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
(vt_emit_notes): Don't initialize and destroy emitted_notes.
2010-12-13 Nathan Froyd <>
PR target/46040
* config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
(arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
2010-12-13 Joseph Myers <>
* config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
* config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
2010-12-13 Joseph Myers <>
* config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
Don't use svr4.h.
2010-12-13 Joseph Myers <>
* config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
* config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
* config.gcc (mn10300-*-*): Don't use svr4.h.
2010-12-13 Joseph Myers <>
* config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and redefine.
* config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
2010-12-13 Alexandre Oliva <>
PR debug/46756
* jump.c (mark_all_labels): Skip debug insns.
2010-12-13 Alexandre Oliva <>
PR debug/46782
* cfgcleanup.c (try_forward_edges): Skip debug insns.
2010-12-12 Jan Hubicka <>
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* varasm.c (default_function_section): Check flag_reorder_functions
and targetm.have_named_sections.
* config/darwin.c (darwin_function_section): Check
2010-12-12 Finn Thain <>
PR target/46179
* config/m68k/m68k.c (handle_move_double): Insert calls to
m68k_final_prescan_insn to clean up @TLS operand syntax.
2010-12-10 Sebastian Pop <>
PR tree-optimization/43023
* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
(stores_zero_from_loop): Call stmt_stores_zero.
* tree-data-ref.h (stmt_stores_zero): New.
* tree-loop-distribution.c (generate_memset_zero): Do not return a
boolean. Call gcc_assert on stride_of_unit_type_p.
(generate_builtin): Call stmt_stores_zero.
(rdg_flag_all_uses): Removed.
(rdg_flag_similar_memory_accesses): Removed.
(build_rdg_partition_for_component): Removed parameter
other_stores. Removed call to rdg_flag_similar_memory_accesses.
(can_generate_builtin): New.
(similar_memory_accesses): New.
(fuse_partitions_with_similar_memory_accesses): New.
(rdg_build_partitions): Call
2010-12-10 Jakub Jelinek <>
PR rtl-optimization/46804
* regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
on the setter of src_reg rather than on insn. If it is
equal to the setter's original SET_SRC, replace it with its
zero or sign extension instead of dropping it.
2010-12-10 Richard Guenther <>
PR lto/46808
* lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
after errors.
(lto_symtab_merge_decls_1): Adjust.
2010-12-10 Dave Korn <>
PR middle-end/46674
PR lto/43157
* target.def (mangle_assembler_name): New target asm_out hook.
* targhooks.c (default_mangle_assembler_name): Add default hook
* targhooks.h (default_mangle_assembler_name): Add prototype.
* lto-symtab.c (lto_symtab_register_decl): Use new hook when
processing DECL_ASSEMBLER_NAMEs for lto symtabs.
(lto_symtab_get_resolution): Likewise.
(lto_cgraph_replace_node): Likewise.
(lto_symtab_prevailing_decl): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* doc/ (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
* doc/tm.texi: Regenerate.
* config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
point at i386_pe_mangle_assembler_name.
* config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
* config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
2010-12-10 Nathan Froyd <>
* c-typeck.c (readonly_error): Delete.
2010-12-10 Jakub Jelinek <>
PR rtl-optimization/46865
* rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
ASM_OPERANDS and ASM_INPUT if integers are different, call locator_eq.
* jump.c (rtx_renumbered_equal_p): Likewise.
PR tree-optimization/46864
* tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
when there are EDGE_EH exit edges.
2010-12-10 Tobias Burnus <>
PR fortran/46540
* Handle --disable-libquadmath-support.
* doc/install.texi: Document --disable-libquadmath and
* configure: Regenerate.
* Regenerate.
2010-12-10 Jack Howarth <>
Iain Sandoe <>
PR 43751/target
* config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
2010-12-10 Iain Sandoe <>
* config/rs6000/rs6000.c
(rs6000_darwin64_record_arg_advance_recurse): Name register increment
explicitly. (rs6000_darwin64_record_arg_recurse): Make sure we split
long doubles when we run out of regs. Also flag that this requires
stack and therefore cannot be returned by value.
(rs6000_darwin64_record_arg): Update comment.
(rs6000_function_value): Likewise.
2010-12-10 Nicola Pero <>
* c-parser.c (c_parser_objc_class_definition): Recognize
Objective-C 2.0 class extensions.
2010-12-10 Iain Sandoe <>
* config/darwin.c: Remove c-tree.h and c-lang.h
* config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
2010-12-10 Joern Rennecke <>
PR target/46881
* doc/tm.texi: Regenerate.
* target.def: Fix "preferred" spelling. Refer to rclass by its
exact name.
* config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
to rclass.
2010-12-09 Paul Koning <>
* config/pdp11/pdp11-protos.h (output_move_double,
output_move_quad): Delete.
(output_move_multiple, pdp11_expand_operands): New functions.
(pdp11_action, pdp11_partorder): New enums.
* config/pdp11/ (movdi, movsi, movdf, movsf): Use
(adddi3, subdi3, negdi2): New patterns.
(addsi3, subsi3, negsi2): Use pdp11_expand_operands.
(abshi2): Delete.
(neghi2, negqi2): Use PDPint iterator.
* config/pdp11/pdp11.c (find_addr_reg, output_move_double,
output_move_quad): Delete.
(pdp11_expand_operands, output_move_multiple): New functions.
2010-12-09 Joseph Myers <>
* config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (vax-*-linux*): Don't use svr4.h.
2010-12-09 Nathan Froyd <>
* c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
2010-12-09 Joseph Myers <>
* doc/extend.texi (Attribute Syntax): Correct description of
attributes in pointer declarators.
2010-12-09 Joseph Myers <>
* config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
* config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
* config.gcc (mep-*-*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Don't define.
* config.gcc (mcore-*-elf): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
* config.gcc (iq2000*-*-elf*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
* config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
* config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
* config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
* config.gcc (fr30-*-elf): Don't use svr4.h.
2010-12-09 Joseph Myers <>
* config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
* config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
2010-12-09 Richard Guenther <>
PR middle-end/46844
* gimple-fold.c (canonicalize_constructor_val): Canonicalize addresses.
2010-12-09 Joseph Myers <>
* config/i386/netware.h (TARGET_POSIX_IO): Define.
* config/i386/nto.h (TARGET_POSIX_IO): Define.
* config/ia64/hpux.h (TARGET_POSIX_IO): Define.
* config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
* config/openbsd.h (TARGET_POSIX_IO): Define.
* config/rtems.h (TARGET_POSIX_IO): Define.
* config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
* config/sol2.h (TARGET_POSIX_IO): Define.
* config/svr4.h (TARGET_POSIX_IO): Don't define.
* config/vxworksae.h (TARGET_POSIX_IO): Define.
2010-12-09 Joseph Myers <>
* config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
* config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
* config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
* config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
* config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine.
* config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine.
* config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine.
* config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
* config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine.
* config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine.
* config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
Don't undefine.
* config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't define.
* config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
2010-12-09 Joseph Myers <>
* config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
non-GNU assembler.
* config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
* config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
* config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
* config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
non-GNU assembler.
* config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
* config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
2010-12-09 Martin Jambor <>
* ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
zero is the first phi parameter.
2010-12-09 Martin Jambor <>
* ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
* ipa-prop.c (ipa_modify_call_arguments): Use it.
* tree-sra.c (splice_param_accesses): Test that all accesses have the
same alias reference type.
(turn_representatives_into_adjustments): Set alias_ptr_type of the
2010-12-09 Martin Jambor <>
PR middle-end/46734
* tree-sra.c (splice_param_accesses): Check that there are not
multiple ADDRESSABLE types.
2010-12-09 Joseph Myers <>
* config/arc/arc.h (ASM_SPEC): Remove %{v}.
* config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
* config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
* config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
* config/frv/frv.h (ASM_SPEC): Remove %{v}.
* config/i386/linux.h (ASM_SPEC): Remove %{v}.
* config/i386/linux64.h (ASM_SPEC): Remove %{v}.
* config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
* config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
* config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
* config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
* config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
* config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
* config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
* config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
* config/mips/mips.h (ASM_SPEC): Remove %{v}.
* config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
* config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
* config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
* config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
* config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
* config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
* config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
* config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
2010-12-09 Joseph Myers <>
* config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
* config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
* config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not %{r*:}.
* config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not %{r*:}.
* config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
* config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
2010-12-09 Joseph Myers <>
* config/alpha/freebsd.h (LINK_SPEC): Don't use %{!dynamic-linker:}.
* config/alpha/linux-elf.h (LINK_SPEC): Likewise.
* config/arm/freebsd.h (LINK_SPEC): Likewise.
* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
* config/bfin/linux.h (LINK_SPEC): Likewise.
* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
* config/frv/linux.h (LINK_SPEC): Likewise.
* config/i386/freebsd.h (LINK_SPEC): Likewise.
* config/i386/freebsd64.h (LINK_SPEC): Likewise.
* config/i386/linux.h (LINK_SPEC): Likewise.
* config/i386/linux64.h (LINK_SPEC): Likewise.
* config/i386/openbsdelf.h (LINK_SPEC): Likewise.
* config/ia64/freebsd.h (LINK_SPEC): Likewise.
* config/ia64/linux.h (LINK_SPEC): Likewise.
* config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
* config/m32r/linux.h (LINK_SPEC): Likewise.
* config/m68k/linux.h (LINK_SPEC): Likewise.
* config/microblaze/linux.h (LINK_SPEC): Likewise.
* config/mips/linux.h (LINK_SPEC): Likewise.
* config/mips/linux64.h (LINK_SPEC): Likewise.
* config/mips/openbsd.h (LINK_SPEC): Likewise.
* config/mn10300/linux.h (LINK_SPEC): Likewise.
* config/netbsd-elf.h (LINK_SPEC): Likewise.
* config/pa/pa-linux.h (LINK_SPEC): Likewise.
* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
LINK_OS_LINUX_SPEC64): Likewise.
* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
* config/s390/linux.h (LINK_SPEC): Likewise.
* config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
* config/sparc/freebsd.h (LINK_SPEC): Likewise.
* config/sparc/linux.h (LINK_SPEC): Likewise.
* config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
LINK_SPEC): Likewise.
* config/sparc/openbsd64.h (LINK_SPEC): Likewise.
* config/vax/linux.h (LINK_SPEC): Likewise.
* config/xtensa/linux.h (LINK_SPEC): Likewise.
2010-12-09 Joseph Myers <>
* config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/i386/sol2-10.h (ASM_SPEC): Likewise.
* config/i386/sol2.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (ASM_SPEC): Likewise.
* config/pa/pa-linux.h (ASM_SPEC): Likewise.
* config/rs6000/linux64.h (ASM_SPEC32): Likewise.
* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
* config/sol2.h (ASM_SPEC): Likewise.
* config/sparc/linux.h (ASM_SPEC): Likewise.
* config/sparc/linux64.h (ASM_SPEC): Likewise.
* config/sparc/sp-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/svr4.h (SVR4_ASM_SPEC): Likewise.
2010-12-09 Richard Guenther <>
* reginfo.c (struct subregs_of_mode_node): Remove.
(subregs_of_mode): Likewise.
(som_hash): Likewise.
(som_eq): Likewise.
(invalid_mode_changes): New bitmap.
(record_subregs_of_mode): Get subregs_of_mode argument.
Fill in invalid_mode_changes bitmap.
(find_subregs_of_mode): Get subregs_of_mode argument and pass
it through.
(init_subregs_of_mode): Adjust.
(finish_subregs_of_mode): Likewise.
(invalid_mode_change_p): Query invalid_mode_changes bitmap.
2010-12-09 Richard Guenther <>
* ira.c (ira): Do not call finish_subregs_of_mode.
* ira-costs.c (finish_costs): Call finish_subregs_of_mode.
2010-12-09 Richard Guenther <>
* rtl.h (invalid_mode_change_p): Adjust prototype.
* reginfo.c (invalid_mode_change_p): Remove from argument.
* ira-costs.c (print_allocno_costs): Adjust callers.
(find_costs_and_classes): Likewise.
2010-12-09 Jakub Jelinek <>
* config/s390/ (*mov<mode>cc): Change lgoc and stgoc to
locg and stocg even in comment.
(sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
PR target/41082
* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
instead of stve*x.
(altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
of operand 0.
* config/rs6000/ (VI_scalar): New mode attr.
(altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
vector mode for operand 0, put operand 1 into UNSPEC.
2010-12-09 Yao Qi <>
* config/arm/arm.c (arm_preferred_rename_class): Implement targethook
2010-12-08 Ian Lance Taylor <>
* doc/sourcebuild.texi (Front End): Remove reference to
snapshot-README and snapshot-index.html.
2010-12-08 Ian Lance Taylor <>
* doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
to update_web_docs_svn.
(Front End): Likewise.
2010-12-08 Iain Sandoe <>
* gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
x86_64-*-darwin* to with_cpu:-core2.
* gcc/config/i386/ (*mov<mode>_internal_rex64): Replace movq
with movd for darwin assembler.
* gcc/config/i386/ (*vec_concatv2di_rex64_sse4_1): Ditto.
(*vec_concatv2di_rex64_sse): Ditto.
2010-12-08 Richard Guenther <>
Sebastian Pop <>
PR tree-optimization/45230
PR tree-optimization/45231
PR tree-optimization/45370
* sese.c (rename_uses): Returns a bool. Call
recompute_tree_invariant_for_addr_expr only on the RHS of a
(graphite_copy_stmts_from_block): Call fold_stmt_inplace when
rename_uses returns true.
* tree-ssa-copy.c (replace_exp): Add a comment about calling
fold_stmt_inplace after replace_exp.
2010-12-08 Mike Stump <>
PR debug/46749
* config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
(DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
* config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
(DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
* collect2.c (post_ld_pass): Add.
(process_args): Add.
(maybe_run_lto_and_relink): Call post_ld_pass after ld.
(main): Likewise. Call process_args.
2010-12-08 Jakub Jelinek <>
PR middle-end/46844
* regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg parameter.
2010-12-08 Richard Earnshaw <>
PR target/46631
* arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
into a 16-bit instruction.
2010-12-08 Michael Meissner <>
PR middle-end/42694
* builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
instruction, but do optimize if y is 0.5 or 1./3. since that
changes an expensive call into a cheaper one.
2010-12-08 Richard Guenther <>
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
instead of a division to divide by BITS_PER_UNIT.
2010-12-08 Richard Guenther <>
* gimplify.c (gimple_tree_eq): Assert hashes are equal only
when checking is enabled.
2010-12-07 Andrey Belevantsev <>
PR target/43603
* haifa-sched.c (sched_create_recovery_edges): Update
dominator info.
* sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
after deleting an empty block.
(tidy_control_flow): Also verify dominators.
(sel_remove_bb): Update dominator info after removing a block.
(sel_redirect_edge_and_branch_force): Assert that no unreachable
blocks will be created. Update dominator info.
(sel_redirect_edge_and_branch): Update dominator info when
basic blocks do not become unreachable.
(sel_remove_loop_preheader): Update dominator info.
2010-12-07 Richard Guenther <>
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
Reset alignment information.
(bump_vector_ptr): Likewise.
2010-12-07 John David Anglin <>
PR middle-end/46671
PR target/46685
* config/pa/pa.c (pa_function_section): New function.
2010-12-07 Ian Lance Taylor <>
Ralf Wildenhues <>
PR bootstrap/46810
* Disable AC_MSG_ERROR while looking for the C++
* configure: Rebuild.
2010-12-07 Paul Koning <>
* config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
values with sign rather than as unsigned.
2010-12-07 Paul Koning <>
* config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
(pdp11_function_section): New function.
2010-12-07 Joseph Myers <>
* config/mcore/mcore.c Don't include assert.h.
(layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
* config/spu/spu.c: Don't include assert.h.
(spu_sms_res_mii): Use gcc_assert.
2010-12-07 Sebastian Pop <>
PR tree-optimization/42327
* tree-data-ref.c (omega_setup_subscript): Call build_int_cst
instead of using integer_minus_one_node.
2010-12-07 Nathan Froyd <>
PR c++/45330
* params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
* doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
2010-12-07 Richard Guenther <>
PR tree-optimization/46832
* tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
that the call has a lhs.
2010-12-07 Yao Qi <>
* Add $(TARGET_H) to the regrename.o rule.
* regrename.c (struct du_head): Add new element length.
(sort_du_head, get_element, merge, merge_sort_comparison):
New functions of merge sort implementation to du_head list.
(regrename_optimize): Sort du_head linked list by length.
Iterate registers in a preferred-register-first order.
Move some code to ...
(check_new_reg_p): here. New function.
(create_new_chain): Initialize length.
(scan_rtx_reg): Increase length for non-debug insns.
* target.def: New hook preferred_rename_class.
* targhook.c (default_preferred_rename_class): New.
* targhook.h: Declare it.
* doc/tm.texi: Regenerate.
2010-12-07 Jakub Jelinek <>
PR debug/46799
* tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
(create_loop_fn): Add LOC argument, pass it to build_decl instead of
(create_parallel_loop): Add LOC argument, use it for OMP clauses
and GIMPLE_*OMP* statements.
(gen_parallel_loop): Determine locus for the parallel loop, pass it
to create_loop_fn and create_parallel_loop.
* cfgexpand.c (gimple_expand_cfg): For builtin functions, call
set_curr_insn_source_location (UNKNOWN_LOCATION).
2010-12-07 Joern Rennecke <>
Richard Guenther <>
PR target/46737
* config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
(bfin_reorder_loops): Change type of index to intptr_t.
2010-12-07 Richard Guenther <>
PR tree-optimization/46726
* tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
2010-12-07 Richard Guenther <>
* tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
virtual operands.
2010-12-07 Nicola Pero <>
* c-parser.c (c_parser_typeof_specifier): Removed special
treatment of objc_volatilized attribute for Objective-C.
2010-12-06 Vladimir Makarov <>
* ira.c (update_equiv_regs): Prohibit move insns if
pressure-sensitive scheduling was done.
2010-12-06 Nicola Pero <>
* c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
of c_process_expr_stmt() for the iterating and collection
expressions of an Objective-C fast enumeration loop.
2010-12-06 Jakub Jelinek <>
PR debug/45997
* dwarf2out.c (modified_type_die): If both is_const_type and
is_volatile_type is set, start with DW_TAG_const_type or
DW_TAG_volatile_type depending on where we get qualified type
in the recursive call.
PR target/43897
* config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
as a store into that register.
PR tree-optimization/46528
PR debug/46338
* profile.c (branch_prob): Make sure last is never set to a debug
PR debug/46771
* reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
PR rtl-optimization/46777
* cfglayout.c (duplicate_insn_chain): Avoid duplicating
also barrier after tablejump.
2010-12-06 Joern Rennecke <>
Richard Henderson <>
PR target/46740
* config/vax/vax.c (vax_output_int_move): Fold #if into if.
2010-12-06 Eric Botcazou <>
* config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
* config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
2010-12-06 Joern Rennecke <>
PR target/46735
* config/frv/ (gpr_or_int12_operand): Use IN_RANGE.
(gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
(int12_operand, int_2word_operand, uint16_operand): Likewise.
(fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
(uint5_operand, uint4_operand): Likewise.
* config/frv/frv.h (IN_RANGE_P): Delete.
(CONST_OK_FOR_P): Likewise.
* config/frv/ (*movqicc_internal2_int): Likewise.
(*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
(*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
(*movsicc_internal2_float, casesi): Likewise.
* config/frv/frv.c (frv_frame_offset_rtx): Likewise.
(frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
(frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
(frv_split_cond_move, frv_rtx_costs): Likewise.
PR target/46739
* config/mmix/mmix.c (mmix_intval): Split shift count.
2010-12-06 H.J. Lu <>
* config/i386/i386.c (m_COREI7): New.
(initial_ix86_tune_features): Turn on
2010-12-06 H.J. Lu <>
* config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
* config/i386/driver-i386.c (host_detect_local_cpu): Support
Sandy Bridge.
* config/i386/i386.c (override_options): Handle "corei7-avx".
* doc/invoke.texi: Document corei7-avx.
2010-12-06 Richard Guenther <>
PR tree-optimization/46806
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
coalesce different types.
2010-12-06 Richard Guenther <>
PR tree-optimization/46785
* tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
call statements as operand definition.
2010-12-06 Mingjie Xing <>
* doc/ Fix typo.
* doc/tm.texi: Regenerate.
2010-12-05 John David Anglin <>
* config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
last change.
2010-12-06 Nicola Pero <>
* c-family/c-common.h: Removed the declarations of all the objc_
callbacks, and moved them into c-objc.h. Removed
objc_ivar_visibility_kind and moved it into c-objc.h.
* c-family/c-objc.h: New file.
* c-family/c-common.c: Include c-objc.h.
* c-family/c-format.c: Same change.
* c-family/stub-objc.c: Same change.
* c-decl.c: Include c-family/c-objc.h.
* c-parser.c: Same change.
* c-typeck.c: Same change.
* (gtfiles): Added c-family/c-objc.h.
* (c-decl.o): Depend on c-family/c-objc.h.
(c-parser.o): same change.
(c-typeck.o): Same change.
(c-family/c-format.o): Same change.
(c-family/stub-objc.o): Same change.
(c-family/c-common.o): Same change.
(PLUGIN_HEADERS): Added c-family/c-objc.h.
2010-12-05 John David Anglin <>
* config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Ignore
--with-dwarf2 option.
2010-12-03 Jan Hubicka <>
* lto-streamer-in.c (input_cfg): Fix pasto.
2010-12-03 Jan Hubicka <>
* ipa.c (cgraph_externally_visible_p): Do not localize builtins
and functions with user asm defined names.
(varpool_externally_visible_p): Do not localize vars with user
asm defined names.
2010-12-03 Jan Hubicka <>
* dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
to prevent mangling with lto frontend.
2010-12-03 Jan Hubicka <>
* lto-cgraph.c (merge_profile_summaries): Fix thinko.
2010-12-03 Jan Hubicka <>
PR tree-optimization/46760
* cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
* cgraph.h (struct cgraph_node): Add count_materialization_scale.
* lto-cgraph.c (lto_output_edge): Fix assert.
(lto_output_node): Output count_materialization_scale.
(output_profile_summary): Output only runs and sum_max.
(input_node): Input count_materialization_scale.
(input_profile_summary): Read data into file specific gcov summary.
(merge_profile_summaries): New function.
(input_cgraph): Update call of input_profile_summary;
call merge_profile_summaries.
* lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
rescale counts at read in.
(intput_bb): Likewise.
(input_function): Update call of input_bb.
(lto_read_body): Update call of input_cfg.
* lto-streamer.h: Inlclude gcov-io.h
(lto_file_decl_data): Add gcov_ctr_summary.
2010-12-03 Dave Korn <>
* doc/ (Cond. Exec. Macros): Rename node from this ...
(Cond Exec Macros): ... to this.
* doc/tm.texi: Regenerate.
2010-12-03 Jason Merrill <>
PR debug/46123
* dwarf2out.c (gen_tagged_type_die): Don't put local types in
a declaration DIE.
2010-12-03 Nathan Froyd <>
* config/arm/arm.c (arm_legitimate_index_p): Split
slightly larger constants in the latter case.
(thumb2_legitimate_index_p): Likewise.
2010-12-03 Joseph Myers <>
* common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
* gcc.c (cc1_options): Add %{Qy:}.
2010-12-03 Joseph Myers <>
* gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
* config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
2010-12-03 Alexander Monakov <>
PR rtl-optimization/45354
* sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
(bb_has_removable_jump_to_p): This. Update all callers. Make static.
Allow BBs ending with a conditional jump. Forbid EDGE_CROSSING jumps.
* sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
2010-12-03 Laurynas Biveinis <>
* basic-block.h (struct edge_prediction): Remove forward declaration.
* tree-flow.h (struct edge_prediction): Move from here...
* predict.c (struct edge_prediction): here.
* cselib.h (struct elt_list): Move from here...
* cselib.c (struct elt_list): here.
2010-12-02 Ian Lance Taylor <>
* gcc.c (default_compilers): Add entry for ".go".
* common.opt: Add -static-libgo as a driver option.
* doc/install.texi (Configuration): Mention libgo as an option for
--enable-shared. Mention go as an option for --enable-languages.
* doc/invoke.texi (Overall Options): Mention .go as a file name
suffix. Mention go as a -x option.
* doc/frontends.texi (G++ and GCC): Mention Go as a supported language.
* doc/sourcebuild.texi (Top Level): Mention libgo.
* doc/standards.texi (Standards): Add section on Go language.
Move references for other languages into their own section.
* doc/contrib.texi (Contributors): Mention that I contributed the
Go frontend.
2010-12-03 Laurynas Biveinis <>
* tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
(const_call_expr_arg_iterator_d): Likewise.
(expanded_location): Likewise.
* c-tree.h (struct c_arg_tag_d): Likewise.
* dwarf2out.c (struct cfa_loc): Likewise.
(struct skeleton_chain_struct): Likewise.
* except.c (struct ttypes_filter): Likewise.
* cselib.h (struct cselib_val_struct): Likewise.
(elt_loc_list): Likewise.
(elt_list): Likewise.
* varasm.c (struct addr_const): Likewise.
* tree-flow.h (struct edge_prediction): Likewise.
(struct int_tree_map): Likewise.
(struct _edge_var_map): Likewise.
2010-12-02 H.J. Lu <>
PR target/46768
* config/i386/i386.c (initial_ix86_tune_features): Turn on
X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
2010-12-02 H.J. Lu <>
* config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
2010-12-02 Ian Lance Taylor <>
header files unordered_map, tr1/unordered_map, and ext/hash_map.
* configure, Rebuild.
2010-12-02 Eric Botcazou <>
PR target/46685
* config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
(sparc_expand_move): Call it to decide whether to emit the special
mov{si,di}_pic_label_ref patterns.
(sparc_legitimize_pic_address): Call it to decide whether to emit
the regular PIC sequence for labels. Fix long line.
(sparc_file_end): Set is_thunk for the PIC helper.
2010-12-02 Eric Botcazou <>
* tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
for a non-shared type.
2010-12-02 Sebastian Pop <>
PR middle-end/45297
* tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
2010-12-02 Joseph Myers <>
* config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
config/sparc/linux.h, config/sparc/linux64.h: Remove comments
mentioning /lib/elf.
2010-12-02 Joseph Myers <>
* config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
* config/frv/frv.h (LINK_SPEC): Remove %{b}.
* config/i386/netware.h (LINK_SPEC): Remove %{b}.
* config/i386/nto.h (LINK_SPEC): Remove %{b}.
* config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
* config/sol2.h (LINK_SPEC): Remove %{b}.
* config/svr4.h (LINK_SPEC): Remove %{b}.
2010-12-02 Joseph Myers <>
* config/i386/freebsd.h (LINK_SPEC): Cut long comment.
* config/i386/linux.h (LINK_SPEC): Cut long comment.
* config/i386/netware.h (LINK_SPEC): Remove %{V}.
* config/m32r/linux.h (LINK_SPEC): Cut long comment.
* config/m68k/linux.h (LINK_SPEC): Cut long comment.
* config/sparc/linux.h (LINK_SPEC): Cut long comment.
(ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
* config/sparc/linux64.h (LINK_SPEC): Cut long comment.
(ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
* config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2010-12-02 Joseph Myers <>
* gcc.c (trad_capable_cpp, default_compilers): Don't handle
2010-12-02 Joseph Myers <>
* config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
* config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
* config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
* config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
* config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
* config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
* config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
* config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
* config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
* config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
* config/sol2.h (ASM_SPEC): Don't handle -Wa,.
* config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
* config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
* config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
* config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
* config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
* config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
2010-12-02 Paul Koning <>
* config/pdp11/pdp11.c (output_jump): Map unsigned to signed
opcodes if CC_NO_OVERFLOW is set.
(notice_update_cc_on_set): Correct setting of CC0 as a side
effect; set CC_NO_OVERFLOW for cases where C flag is not meaningful.
2010-12-02 Ian Lance Taylor <>
* doc/install.texi (Configuration): Update default for
2010-12-02 Nathan Froyd <>
PR c/45062
* c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
2010-12-02 Sebastian Pop <>
PR tree-optimization/45199
* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
(stores_zero_from_loop): Call
* tree-data-ref.h (stride_of_unit_type_p): New.
* tree-loop-distribution.c (generate_memset_zero): Simplified.
Call stride_of_unit_type_p.
(build_rdg_partition_for_component): Do not call
rdg_flag_similar_memory_accesses when
flag_tree_loop_distribute_patterns is set.
2010-12-02 Richard Guenther <>
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
sign-changing conversions for induction detection.
2010-12-02 Richard Guenther <>
PR tree-optimization/46723
* tree-vect-loop.c (get_initial_def_for_induction): Strip
conversions from the induction evolution and apply it to
the result instead.
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
assigns for induction defs.
2010-12-02 Richard Guenther <>
* value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
the case we need to split the edge and not the block.
2010-12-02 Bernd Schmidt <>
DFA model for Core 2 and Core i7 scheduling.
* config/i386/ New DFA model for Core 2 and Core i7.
* config/i386/i386.c (ix86_option_override_internal): Update entries
for Core 2 and Core i7.
(ix86_issue_rate): Set issue rate to 3 [be realistic].
* config/i386/ Include "".
(define_attr cpu): Add "corei7".
2010-12-02 Maxim Kuvyrkov <>
Define tuning for Core 2 and Core i7.
* config/i386/i386-c.c (ix86_target_macros_internal): Update.
* config/i386/i386.c (core2_cost): Delete, use generic costs instead.
(m_CORE2): Replace with m_CORE2_{32,64}.
(m_CORE2I7{,_32,_64}): New macros.
(m_GENERIC32, m_GENERIC64): Update.
(initial_ix86_tune_features, x86_accumulate_outgoing_args,)
(x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
set m_CORE2I7_64 iff m_GENERIC64.
(processor_target_table): Use generic costs for Core 2 and Core i7.
(ix86_option_override_internal): Update entries for Core 2 and Core i7.
(ix86_issue_rate): Remove entry for Core 2.
(ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
* config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
(TARGET_CORE2): Update.
(PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
2010-12-02 Richard Guenther <>
* lto-streamer.h (LTO_major_version): Bump to 2.
2010-12-02 Richard Guenther <>
PR lto/44871
* gimple.c (canonical_type_hash_cache): New hashtable.
(gimple_type_hash): Make a wrapper around ...
(gimple_type_hash_1): ... this. Take gtc_mode argument.
(gimple_canonical_type_hash): Likewise.
(gtc_visit): Take a gtc_mode argument.
(gimple_types_compatible_p_1): Likewise. Do not compare struct
tag names or field names when computing canonical types.
(gimple_types_compatible_p): Adjust.
(visit): Take a gtc_mode argument.
(iterative_hash_gimple_type): Likewise. Do not hash struct tag
names or field names when computing hashes of canonical types.
(gimple_register_canonical_type): Use gimple_canonical_type_hash
for the hash.
(print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
(free_gimple_type_tables): Free canonical_type_hash_cache.
2010-12-02 Richard Guenther <>
Ira Rosen <>
PR tree-optimization/46663
* tree-vect-patterns.c (vect_recog_pow_pattern): Check that
FUNCTION_DECL exists and that it's a builtin.
2010-12-02 Jie Zhang <>
PR middle-end/46674
* varasm.c (compute_visible_aliases): Handle user set assembler name.
2010-12-01 Michael Meissner <>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
thinko regarding setting -mno-<xxx> debug switches.
(rs6000_rtx_costs): Add FMA. Delete old rtl based FMA costs.
2010-12-01 Joseph Myers <>
* intl.c: Don't include tm.h.
* (intl.o): Don't depend on $(TM_H).
2010-12-01 Sebastian Pop <>
* graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
unused warning.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2010-12-01 Sebastian Pop <>
* graphite-sese-to-poly.c (analyze_drs): Removed.
(build_scop_drs): Do not call analyze_drs.
(analyze_drs_in_stmts): New.
(insert_stmts): New.
(insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
(insert_out_of_ssa_copy_on_edge): Same.
(rewrite_close_phi_out_of_ssa): Call insert_stmts.
(rewrite_phi_out_of_ssa): Same.
(rewrite_cross_bb_scalar_dependence): Same.
(split_reduction_stmt): Move data references in the new basic blocks.
(translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
2010-12-01 Sebastian Pop <>
* sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
2010-12-01 Sebastian Pop <>
PR middle-end/45297
* graphite-poly.c (new_poly_bb): Returns a poly_bb_p. Do not take
the reduction bool in parameter. Clear PBB_IS_REDUCTION. Set GBB_PBB.
* graphite-poly.h (new_poly_bb): Update declaration.
(gbb_from_bb): Moved here...
(pbb_from_bb): New.
* graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
(graphite_stmt_p): Removed.
(try_generate_gimple_bb): Returns a gimple_bb_p. Do not pass in
sbitmap reductions. Always build a gimple_bb_p. Do not call
(build_scop_bbs_1): Do not pass in sbitmap reductions.
(build_scop_bbs): Same.
(gbb_from_bb): ... from here.
(add_conditions_to_constraints): Moved up.
(analyze_drs): New.
(build_scop_drs): Call analyze_drs. Remove all the PBBs that do
not contain data references.
(new_pbb_from_pbb): New.
(insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
block is split.
(rewrite_close_phi_out_of_ssa): Update call to
(rewrite_reductions_out_of_ssa): Now static.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
(split_pbb): New.
(split_reduction_stmt): Call split_pbb.
(translate_scalar_reduction_to_array): Pass in the scop, do not
pass in the sbitmap reductions.
(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
(rewrite_commutative_reductions_out_of_ssa_loop): Same.
(rewrite_commutative_reductions_out_of_ssa): Same.
(build_poly_scop): Call build_scop_bbs,
rewrite_reductions_out_of_ssa, and
rewrite_cross_bb_scalar_deps_out_of_ssa. Move build_scop_drs
before scop_to_lst.
* graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
Removed declaration.
(rewrite_reductions_out_of_ssa): Same.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
(build_scop_bbs): Same.
* graphite.c (graphite_transform_loops): Do not initialize reductions.
Do not call build_scop_bbs,
rewrite_reductions_out_of_ssa, and
* sese.h (struct gimple_bb): Add field pbb.
(GBB_PBB): New.
2010-12-01 Sebastian Pop <>
* graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
(rewrite_cross_bb_scalar_deps): Pass in the scop. Call
(rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
after the scop. Update call to rewrite_cross_bb_scalar_deps.
2010-12-01 Sebastian Pop <>
* sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
when replacing a constant in an ADDR_EXPR.
2010-12-01 Sebastian Pop <>
* graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
for the stride.
(lst_do_strip_mine): Same.
(scop_do_strip_mine): Same.
* graphite-poly.c (apply_poly_transforms): Update call to
* graphite-poly.h (scop_do_strip_mine): Update declaration.
2010-12-01 Jan Hubicka <>
* tree.c (build_common_builtin_nodes): Do not initialize
* builtins.c (expand_builtin_profile_func): Remove.
(expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
* builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
(__cyg_profile_func_enter, __cyg_profile_func_exit): New.
* gimplify.c (gimplify_function_tree): Reorganize code calling
profiling functions.
2010-12-01 Joseph Myers <>
* opts.c: Expand comment on tm.h include.
2010-12-01 Yao Qi <>
* config/arm/ ("vfp_register_operand"): Return true for
VFP_D0_D7_REGS classes.
2010-12-01 Joseph Myers <>
* common.opt (flag_stack_check): New Variable entry.
(fcompare-debug-second): Use Var.
* flags.h (flag_compare_debug, flag_stack_check): Remove.
* opts.c (flag_compare_debug): Remove.
(common_handle_option): Don't handle OPT_fcompare_debug_second.
Set opts->x_flag_stack_check for OPT_fstack_check_.
* toplev.c (flag_stack_check): Remove.
2010-12-01 Joseph Myers <>
* common.opt (main_input_filename, main_input_basename,
main_input_baselength): New Variable entries. From toplev.c.
* final.c (output_quoted_string): Move from toplev.c.
* output.h (output_quoted_string): Move from toplev.h.
* opts-global.c (read_cmdline_options): Use gcc_options pointer to
access main_input_filename, main_input_baselength and
* targhooks.c: Include intl.h and opts.h.
(option_affects_pch_p, default_get_pch_validity): Move from toplev.c.
* targhooks.h (option_affects_pch_p, default_get_pch_validity):
Move from toplev.h.
* toplev.c (main_input_filename, main_input_basename,
main_input_baselength): Move to common.opt.
(output_quoted_string): Move to final.c.
(warn_deprecated_use): Move to tree.c.
(option_affects_pch_p, default_get_pch_validity,
pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
* toplev.h (skip_leading_substring): Move to tree-dump.c.
(warn_deprecated_use): Move to tree.h.
(output_quoted_string): Move to output.h.
(main_input_filename, main_input_basename, main_input_baselength):
Move to common.opt.
(default_get_pch_validity, default_pch_valid_p): Move to targhooks.c.
* tree-dump.c (skip_leading_substring): Move from toplev.h.
* tree.c (warn_deprecated_use): Move from toplev.c.
* tree.h (warn_deprecated_use): Move from toplev.h.
* c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
config/mcore/mcore.c, config/mep/mep.c,
config/microblaze/microblaze.c, config/mips/mips.c,
config/mmix/mmix.c, config/mn10300/mn10300.c,
config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
config/picochip/picochip.c, config/s390/s390.c,
config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
varasm.c, xcoffout.c: Don't include toplev.h.
* (c-typeck.o, tree-inline.o, tree-cfg.o,
gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
varasm.o, xcoffout.o): Update dependencies.
* config/arm/t-arm (arm.o): Update dependencies.
* config/spu/t-spu-elf (spu.o): Update dependencies.
2010-12-01 Richard Guenther <>
PR tree-optimization/46730
* value-prof.c (gimple_ic): Always generate a separate merge BB.
2010-11-30 Ian Lance Taylor <>
* config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V. Remove
all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
* config/i386/linux64.h (ASM_SPEC): Likewise.
* config/i386/mingw-w64.h (ASM_SPEC): Likewise.
* config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
* config/i386/vxworks.h (ASM_SPEC): Likewise.
* config/i386/x86-64.h (ASM_SPEC): Likewise.
* config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
* config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2010-11-30 Nicola Pero <>
* c-decl.c (finish_function): Call objc_finish_function in
* c-typeck.c (convert_for_assignment): Do not call
2010-11-30 Richard Guenther <>
PR tree-optimization/46722
* tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
operands as arguments.
(execute_optimize_widening_mul): Also handle power of two as
2010-11-30 Dave Korn <>
PR middle-end/46709
* cgraphunit.c (process_function_and_variable_attributes): Fix
2010-11-30 Joseph Myers <>
* hwint.c: New. Extracted from toplev.c.
* hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
Move from toplev.h.
* toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
Move to hwint.c.
* toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
Move to hwint.h.
* builtins.c, combine.c, config/i386/winnt.c, double-int.c,
explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
tree-ssa-loop-niter.c, tree-vect-data-refs.c,
tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
tree-vrp.c: Don't include toplev.h.
* genattrtab.c, genconditions.c, genemit.c, genextract.c,
genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
toplev.h in generated output.
* (OBJS-common): Add hwint.o.
Dependencies for above files changed to remove toplev.h.
(hwint.o): New.
(insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on toplev.h.
* config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
* config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2010-11-30 Richard Guenther <>
PR tree-optimization/46717
* value-prof.c (gimple_ic): Preserve EH edges of the indirect
call. Manually create EH edges for the direct call and update
target PHI nodes.
2010-11-30 Joseph Myers <>
* diagnostic-core.h: Include bversion.h.
* toplev.h: Don't include input.h or bversion.h.
(parse_optimize_options): Don't declare here.
* alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
config/host-darwin.c, config/i386/host-cygwin.c,
config/i386/host-mingw32.c, config/i386/msformat-c.c,
config/i386/netware.c, config/i386/nwld.c,
config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
config/score/score3.c, config/score/score7.c,
config/sh/symbian-base.c, config/sh/symbian-c.c,
config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
graphite-blocking.c, graphite-clast-to-gimple.c,
graphite-dependences.c, graphite-flattening.c,
graphite-interchange.c, graphite-poly.c,
graphite-scop-detection.c, graphite.c, haifa-sched.c,
implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
lto-opts.c, lto-section-in.c, lto-section-out.c,
lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
include toplev.h.
* (TOPLEV_H): Remove. All uses changed to use
toplev.h. Dependencies for above files and c-family files changed
to remove $(TOPLEV_H) or toplev.h.
(C_TREE_H): Don't include $(TOPLEV_H).
(DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h. Add
* config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
config/t-darwin, config/t-sol2,
config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
Dependencies for above files changed to remove $(TOPLEV_H) or
2010-11-30 Richard Guenther <>
PR lto/44986
* gcc.c (main): Use the first input with a compiler as infile
for link spec processing.
2010-11-30 Richard Guenther <>
PR lto/45949
* cgraphunit.c (ipa_passes): Stop after errors from small IPA passes.
2010-11-30 Mingjie Xing <>
* gcc-plugin.h: Include coretypes.h.
* (FUNCTION_H): Add hard-reg-set.h.
2010-11-30 Laurynas Biveinis <>
* ggc-zone.c (ggc_pch_read): Fix conditional compilation.
* ggc-none.c (ggc_internal_alloc_zone_stat)
(ggc_internal_cleared_alloc_zone_stat): New.
2010-11-29 Joakim Tjernlund <>
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
(rs6000_emit_prologue): Don't set PIC register if
* config/rs6000/rs6000.opt (msingle-pic-base): New option.
* doc/invoke.texi (msingle-pic-base): Document.
2010-11-29 H.J. Lu <>
PR driver/46712
* (id): New.
Check and export LT_RCU_$id instead of LT_RCU.
2010-11-29 Zdenek Dvorak <>
PR tree-optimization/46675
* tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
in offset calculation.
2010-11-29 Jan Hubicka <>
* collect2.c (main): Do not imply verbose output with
LTO and linker plugin.
2010-11-29 Dodji Seketeli <>
* dwarf2out.c (print_die): Print the address of the current DIE or
of any DIE referenced by the current one.
2010-11-29 Dodji Seketeli <>
PR debug/46101
* dwarf2out.c (lookup_type_die_strip_naming_typedef): New function.
(scope_die_for, gen_type_die_for_member): Replace uses of
lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2010-11-29 Iain Sandoe <>
* config/darwin.c (darwin_mergeable_string_section): Remove blank line.
(darwin_asm_declare_object_name): Correct spelling.
(darwin_output_aligned_bss): Likewise.
2010-11-29 Iain Sandoe <>
Mike Stump <>
PR target/26427
PR target/33120
PR testsuite/35710
* config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
* config/darwin-protos.h (darwin_asm_declare_object_name): New.
(darwin_output_aligned_bss): Likewise.
(darwin_asm_output_aligned_decl_local): Likewise.
(darwin_asm_output_aligned_decl_common): Likewise.
(darwin_use_anchors_for_symbol_p): Likewise.
* config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
* config/darwin.c (emit_aligned_common): New var.
(darwin_init_sections): Check that the Darwin private zero-size section
marker is in range.
(darwin_text_section): Check for zero-sized objects.
(darwin_mergeable_string_section): Likewise.
(darwin_mergeable_constant_section): Likewise.
(machopic_select_section): Adjust to check for zero-sized objects.
Assert that OBJC meta data are non-zero sized.
(darwin_asm_declare_object_name): New.
(darwin_asm_declare_constant_name): Adjust for zero-sized
object sections.
(BYTES_ZFILL): Define.
(darwin_emit_weak_or_comdat): New.
(darwin_emit_local_bss): New.
(darwin_emit_common): New.
(darwin_output_aligned_bss): New.
(darwin_asm_output_aligned_decl_common): New.
(darwin_asm_output_aligned_decl_local): New.
(darwin_file_end): Disable subsections_via_symbols when section
anchoring is active.
(darwin_asm_output_anchor): Re-enable.
(darwin_use_anchors_for_symbol_p): New.
(darwin_override_options): Check for versions that can emit
aligned common. Update usage of flags to current.
* config/darwin-sections.def: Update comments and flags for
non-anchor sections. zobj_const_section, zobj_data_section,
zobj_bss_section, zobj_const_data_section: New.
* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
(ASM_OUTPUT_ALIGN): Make whitespace output consistent.
(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
(DARWIN_SECTION_ANCHORS): Define with a default of 0.
2010-11-29 Joseph Myers <>
* system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
Conditionally define.
* Don't test for mincore.
* configure: Regenerate.
* Regenerate.
* collect2-aix.c: Don't include <sys/mman.h>.
* collect2.c: Don't include <signal.h>.
(SIGCHLD): Don't define.
(prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
* config/alpha/alpha.c: Include "splay-tree.h" instead of
* config/arm/arm.c (arm_target_help): Use getenv instead of
* config/avr/driver-avr.c: Don't include <stdlib.h>.
* config/frv/frv.c: Don't include <ctype.h>.
* config/host-darwin.c: Don't include <sys/mman.h>.
* config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
(MAP_FAILED): Don't define.
* config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
* config/host-solaris.c: Don't include <sys/mman.h>.
* config/i386/cygming.h: Don't include <stdio.h>.
* config/i386/driver-i386.c: Don't include <stdlib.h>.
* config/i386/host-cygwin.c: Don't include <sys/mman.h>.
* config/iq2000/iq2000.c: Don't include <signal.h>.
* config/m32c/m32c-pragma.c: Don't include <stdio.h>.
* config/m68hc11/m68hc11.c: Don't include <stdio.h>.
* config/mep/mep-pragma.c: Don't include <stdio.h>.
* config/microblaze/microblaze.c: Don't include <signal.h>.
* config/mips/mips.c: Don't include <signal.h>.
* config/rs6000/host-darwin.c: Don't include <signal.h>.
* cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
* defaults.h (GET_ENVIRONMENT): Don't define.
* et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
* gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
(SIGCHLD, MAP_FAILED, kill): Don't define.
(process_command): Use getenv instead of GET_ENVIRONMENT.
* genhooks.c: Don't include <string.h>.
* ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
(MAP_FAILED): Don't define.
* ggc-page.c Don't include <sys/mman.h>.
* ggc-zone.c: Don't include <sys/mman.h>.
* graph.c: Include "config.h" instead of <config.h>.
* incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
* lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
(SIGCHLD, kill): Don't define.
* mips-tfile.c: Don't include <signal.h>.
* opts.c: Don't include <signal.h> or <sys/resource.h>.
(print_specific_help): Use getenv instead of GET_ENVIRONMENT.
* passes.c: Don't include <signal.h>, <sys/resource.h> or
* sparseset.h: Don't include <assert.h>.
* timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
* tlink.c: Don't include "libiberty.h".
* toplev.c: Don't include <signal.h> or <sys/times.h>.
* tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
* tree-switch-conversion.c: Don't include <signal.h>.
* vmsdbgout.c: Don't include <errno.h> or <string.h>.
2010-11-29 Nicola Pero <>
* c-parser.c (c_parser_objc_try_catch_statement): Renamed to
c_parser_objc_try_catch_finally_statement for consistency with the
C++ parser. Parse @catch(...) and pass NULL_TREE to
objc_begin_catch_clause() in that case. Improved error recovery.
Reorganized code to be almost identical to
2010-11-29 Joern Rennecke <>
PR tree-optimization/46621
* gimple.h: Don't include tm.h or hard-reg-set.h .
* (GIMPLE_H): Remove $(TM_H).
PR bootstrap/44756
* cppbuiltin.c: Include target.h .
Use targetm.float_words_big_endian.
2010-11-27 Jan Hubicka <>
* dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
and output cold_text_section_label.
(dwarf2out_init): Don't do that there.
(dwarf2out_finish): Handle cold section end label only if cold
section was used.
2010-11-27 Eric Botcazou <>
* tree-nested.c (remap_vla_decls): Fully expand value expressions of
VLA variables.
2010-11-27 Richard Guenther <>
* gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
(gimple_assign_ssa_name_copy_p): Likewise.
(gimple_assign_unary_nop_p): Use is_gimple_assign.
(is_gimple_cast): Remove.
(gimple_assign_single_p): Move ...
* gimple.h (gimple_assign_single_p): ... here.
(is_gimple_cast): Remove.
(gimple_assign_rhs_code): Simplify.
* gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
instead of is_gimple_cast.
* ipa-type-escape.c (look_for_casts): Likewise.
2010-11-26 Joseph Myers <>
* doc/options.texi (Enum, EnumValue): Document new record types.
(Enum): Document new option flag.
* opt-functions.awk
* optc-gen.awk: Handle enumerated option arguments.
* opth-gen.awk: Handle enumerated option arguments.
* opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
enum_value_to_arg): New.
(decode_cmdline_option): Handle enumerated arguments.
(read_cmdline_option): Handle CL_ERR_ENUM_ARG.
(set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
* opts.c (print_filtered_help, print_specific_help): Take
lang_mask arguments.
(print_filtered_help): Handle printing values of enumerated
options. Print possible arguments for enumerated options.
(print_specific_help): Update call to print_filtered_help.
(common_handle_option): Update calls to print_specific_help. Use
value rather than arg for OPT_fdiagnostics_show_location_. Don't
handle OPT_ffp_contract_, OPT_fexcess_precision_,
OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
OPT_fira_region_ here.
* opts.h (enum cl_var_type): Add CLVC_ENUM.
(struct cl_option): Add var_enum.
struct cl_enum, cl_enums, cl_enums_count): New.
(CL_ERR_ENUM_ARG): Define.
(CL_ERR_NEGATIVE): Update value.
(enum_value_to_arg): Declare.
* common.opt (flag_ira_algorithm, flag_ira_region,
flag_fp_contract_mode, flag_excess_precision_cmdline,
default_visibility, flag_tls_default): Remove Variable entries.
(help_enum_printed): New Variable.
(fdiagnostics-show-location=): Use Enum. Add associated
SourceInclude, Enum and EnumValue entries.
(fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
ftls-model=, fvisibility=): Use Enum, Var and Init. Add
associated Enum and EnumValue entries.
2010-11-26 Joern Rennecke <>
PR target/46623
* config/microblaze/microblaze.c (microblaze_block_move_straight):
(microblaze_option_override): Don't use C++ style comments.
(save_restore_insns): Remove unused variable base_offset.
(microblaze_expand_prologue): Remove unused variable insn.
(microblaze_secondary_reload): Adjust type to match target.h .
(microblaze_elf_in_small_data_p): Move declarations to start of block.
(microblaze_expand_move): Likewise.
* config/microblaze/microblaze.h (LARGE_INT):
Avoid signed / unsigned comparisons.
(ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
(ASM_FINISH_DECLARE_OBJECT): Likewise. Constify name.
2010-11-26 Michael Matz <>
* tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
* passes.c (init_optimization_passes): Remove superfluous
copy-prop pass.
2010-11-26 Richard Guenther <>
PR lto/46648
* gimple.c (gtc_visit): Do not return true for members of an
SCC still being processed but the current lattice value of
the member. Treat SCC members comparison state as lattice,
starting at equal, eventually dropping to unequal.
(gimple_types_compatible_p_1): Likewise.
2010-11-26 Richard Guenther <>
PR middle-end/46559
* dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
for location list processing.
2010-11-26 Richard Guenther <>
PR lto/46560
* cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
flags manually.
2010-11-26 Andreas Krebbel <>
* config/s390/s390.c (print_operand_address): Replace assert with
error message.
(print_operand): Replace assertions, gcc_unreachable and
fatal_insn with error messages.
2010-11-26 Richard Guenther <>
PR tree-optimization/46665
* tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2010-11-26 Ian Bolton <>
* config/arm/arm.c (arm_option_override): enable loop array
prefetching at -O3 for suitable targets, and configure params.
* config/arm/arm-protos.h (struct tune_params): Add fields for
configuring loop array prefetching.
2010-11-26 Christian Borntraeger <>
* config/s390/ (z196_crack): Add z196_g3 as possible slot.
2010-11-26 Richard Guenther <>
PR tree-optimization/46664
* tree-affine.c (aff_combination_to_tree): Add rest last.
2010-11-26 Michael Haubenwallner <>
PR target/33637
* Accept extra arguments for AS_FOR_TARGET,
* configure: Regenerated.
* Not quoting command, may have extra arguments.
2010-11-26 Richard Guenther <>
PR tree-optimization/46528
PR debug/46338
* profile.c (branch_prob): Do not split blocks based on locations
from debug statements.
2010-11-26 Jakub Jelinek <>
PR middle-end/46647
* builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
of host_integerp check. Use TREE_INT_CST_LOW instead of tree_low_cst.
PR bootstrap/45700
* tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
(build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
build6_loc): Define.
* fold-const.c (protected_set_expr_location_unshare): New inline.
(fold_convert_loc, pedantic_non_lvalue_loc): Use it.
(negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
pedantic_omit_one_operand_loc, omit_two_operands_loc,
fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
instead of buildN followed by SET_EXPR_LOCATION or
(fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
Use buildN_stat_loc instead of buildN_stat followed by
2010-11-26 Basile Starynkevitch <>
* (s-tm-texi): Remove spurous tab.
2010-11-26 Alexandre Oliva <>
PR debug/46258
* tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
debug stmts.
2010-11-26 Alexandre Oliva <>
* toplev.c (finalize): Add no_backend parameter. Don't finish
passes when preprocessing only. Adjust...
(do_compile): ... caller.
2010-11-25 John David Anglin <>
* config/pa/ (negdf2): Condition on !flag_signed_zeros instead of
(negsf2): Likewise.
Move fnegabs related patterns together. Only use fmpynfadd instruction
to negate a multiply if !flag_signed_zeros is true.
2010-11-25 Uros Bizjak <>
* gengtype-state.c (read_state_structures): Initialize "previous".
2010-11-25 Basile Starynkevitch <>
Jeremie Salvucci <>
* gengtype-state.c: Add new file.
* gengtype.c (type count): New variable.
(new_structure, find_param_structure, create_pointer)
(create_array): Use it to set state_number in types.
(dump_everything): Improve comment.
(main): Call read_state and write_state. Print type_count.
* gengtype.h (type_lineloc): New function.
(read_state, write_state): New declarations.
* (GENGTYPE_FLAGS): New variable.
(s-gtype): Run gengtype twice and generate gtype.state.
(build/gengtype-state.o): New rule.
(build/gengtype$(build_exeext)): Link gengtype-state.o.
(mostlyclean): Update comment. Remove gtype.state.
2010-11-25 Jakub Jelinek <>
PR middle-end/46637
* combine.c (try_combine): When substing i2dest for i2src, pass
1 as last argument even if
i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
2010-11-25 H.J. Lu <>
PR middle-end/46647
* builtins.c (target_char_cast): Check INTEGER_CST instead of
host_integerp. Replace tree_low_cst with TREE_INT_CST_LOW.
2010-11-25 Joseph Myers <>
* target.def (supports_split_stack, except_unwind_info): Take
gcc_options parameters.
* targhooks.c (default_except_unwind_info,
dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
gcc_options parameters.
* targhooks.h (default_except_unwind_info,
dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
Document that hooks must not be modified.
(TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
* doc/tm.texi: Regenerate.
&global_options to targetm.except_unwind_info.
* dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
dwarf2out_begin_prologue, dwarf2out_frame_init,
dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
&global_options to targetm.except_unwind_info.
* except.c (init_eh, finish_eh_generation,
output_one_function_exception_table): Pass &global_options to
* expr.c (build_personality_function): Pass &global_options to
* function.c (expand_function_end): Pass &global_options to
* hooks.c (hook_bool_bool_gcc_optionsp_false): New.
* hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
* opts.c (finish_options): Pass opts to targetm.except_unwind_info
and targetm.supports_split_stack. Remove assertions about opts
and opts_set.
(common_handle_option): Remove assertions about opts, opts_set and dc.
* tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
&global_options to targetm.except_unwind_info.
* tree.c (build_common_builtin_nodes: Pass &global_options to
* config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
(arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
thumb1_expand_prologue, thumb1_output_function_prologue,
arm_unwind_emit, arm_output_fn_unwind): Update calls to
* config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
* config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
(ia64_output_function_prologue, ia64_add_bundle_selector_before,
ia64_reorg, ia64_asm_unwind_emit): Update calls to
* config/pa/pa.c (pa_option_override): Pass &global_options to
* config/picochip/picochip-protos.h (picochip_except_unwind_info):
Remove prototype.
2010-11-25 Kai Tietz <>
* cgraphunit.c (process_function_and_variable_attributes):
Mark dllexport-ed function/variables as needed.
* ipa.c (cgraph_externally_visible_p): Make dllexport-ed
as externally visible.
2010-11-25 Alexander Monakov <>
PR rtl-optimization/46585
* sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
(vinsn_init): Skip computation of dependencies for local NOPs.
(vinsn_delete): Don't try to free regsets for local NOPs.
(setup_nop_and_exit_insns): Change definition of nop_pattern.
2010-11-25 Alexander Monakov <>
PR rtl-optimization/46602
* sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
(tidy_control_flow): Here.
2010-11-25 Joern Rennecke <>
Ralf Wildenhues <>
PR bootstrap/45888
* (s-tm-texi): Remove \r occurences from tmp-tm.texi.
Fix target.def pathname in timestamp comparison.
2010-11-24 Richard Henderson <>
* config/ia64/ (pmpyshr_operand): New.
* config/ia64/ia64.c (ia64_expand_unpack): New.
(ia64_expand_widen_mul_v4hi): New.
(ia64_expand_widen_sum): Update for pattern renames.
(ia64_expand_dot_prod_v8qi): Likewise.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ (vecwider): New mode attribute.
(vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
(vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
(pmpyshr2, pmpyshr2_u): New.
(vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
(vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
(mulv2si3): New.
(vec_pack_ssat_v4hi): Rename from pack2_sss.
(vec_pack_usat_v4hi): Rename from *pack2_uss.
(vec_pack_ssat_v2si): Rename from pack4_sss.
(vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
vec_select operation.
(vec_interleave_highv8qi): Similarly.
(mux1_alt): Rename from *mux1_alt.
(vec_extract_evenv8qi, vec_extract_oddv8qi): New.
(vec_interleave_lowv4hi): Rename from unpack2_l.
(vec_interleave_highv4hi): Rename from unpack2_h.
(mix2_r): Rename from *mix2_r.
(mix2_l): Similarly.
(vec_extract_evenodd_helper): New.
(vec_extract_evenv4hi, vec_extract_oddv4hi): New.
(vec_interleave_lowv2si): Rename from *unpack4_l.
(vec_interleave_highv2si): Rename from *unpack4_h.
(vec_extract_evenv2si, vec_extract_oddv2si): New.
(vec_interleave_lowv2sf): Rename from fmix_r.
(vec_interleave_highv2sf): Rename from *fmix_l.
(vec_extract_evenv2sf, vec_extract_oddv2sf): New.
(vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
(vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
(vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
2010-11-24 Nathan Froyd <>
* targhooks.c (default_except_unwind_info): Remove
* config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
* config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
* doc/tm.texi: Regenerate.
* system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
2010-11-24 Nathan Froyd <>
* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
* config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
* doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
* system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
2010-11-24 H.J. Lu <>
PR target/46519
* config/i386/i386.c (ix86_expand_call): Don't check
2010-11-24 H.J. Lu <>
PR target/46519
* config/i386/i386.c (upper_128bits_state): New.
(block_info_def): Remove upper_128bits_set and done. Add state,
referenced, count, processed and rescanned.
(check_avx256_stores): Updated.
(move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
Call note_stores only if needed. Set referenced and count.
(move_or_delete_vzeroupper_1): Updated. Set rescan_vzeroupper_p.
(rescan_move_or_delete_vzeroupper): New.
(move_or_delete_vzeroupper): Process and rescan all all basic
blocks instead of predecessor blocks of all exit points.
(ix86_option_override_internal): Enable vzeroupper optimization
only for -fexpensive-optimizations and not optimizing for size.
(use_avx256_p): Removed.
(init_cumulative_args): Don't set use_avx256_p.
(ix86_function_arg): Likewise.
(ix86_expand_move): Likewise.
(ix86_expand_vector_move_misalign): Likewise.
(ix86_local_alignment): Likewise.
(ix86_minimum_alignment): Likewise.
(ix86_expand_epilogue): Don't check use_avx256_p when generating
(ix86_expand_call): Likewise.
* config/i386/i386.h (machine_function): Remove use_vzeroupper_p
and use_avx256_p. Add rescan_vzeroupper_p.
2010-11-24 Joseph Myers <>
* toplev.c: Include <signal.h>.
2010-11-24 Richard Guenther <>
PR lto/43218
* lto-symtab.c (lto_cgraph_replace_node): Mark edges with
conflicting function signatures as non-inlineable.
2010-11-24 Jakub Jelinek <>
PR rtl-optimization/46614
* sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
(deps_analyze_insn): Mark JUMP_INSNs in
last_pending_memory_flush that weren't added through
flush_pending_lists with NON_FLUSH_JUMP_KIND.
(sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
on INSN_LIST instead of JUMP_P check on its operand.
* sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
2010-11-24 Richard Guenther <>
* lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
2010-11-24 Richard Guenther <>
PR lto/46606
* lto-streamer-in.c (input_gimple_stmt): When we cannot find
a FIELD_DECL that is type correct issue a warning and fixup
2010-11-24 Basile Starynkevitch <>
* doc/invoke.texi (Options for Debugging Your Program or GCC):
Explain static numbering of dump files.
2010-11-24 Joseph Myers <>
* common.opt (user_vect_verbosity_level): New Variable entry.
(ftree-vectorizer-verbose=): Mark as UInteger.
* flag-types.h (enum vect_verbosity_levels): Move from enum
verbosity_levels in tree-vectorizer.h.
* opts.c: Don't include tree.h.
(vect_set_verbosity_level): Move from tree-vectorizer.c. Use
gcc_options parameter; take integer option argument.
(common_handle_option): Update call to vect_set_verbosity_level.
* tree-vectorizer.c (user_vect_verbosity_level): Remove.
(vect_set_verbosity_level): Move to opts.c.
(vect_verbosity_level, vect_print_dump_info): Update for change of
enum name.
* tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
(vect_print_dump_info): Update for change of enum name.
* tree.h (vect_set_verbosity_level): Remove.
* (opts.o): Update dependencies.
2010-11-24 Jakub Jelinek <>
PR middle-end/46629
* cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
instead of insn with any_condjump_p.
2010-11-24 Mingjie Xing <>
* config/mips/ Change the description comment of the file
and update the copyright years.
(define_insn "<u>div<mode>3): Add loongson3a support.
(define_insn "<u>mod<mode>3"): Likewise.
* config/mips/ Rename mul<mode>3_mul3_ls2ef to
(define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
(define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
2010-11-23 Joseph Myers <>
* common.opt (initial_max_fld_align, flag_debug_asm,
flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
flag_print_asm_name, graph_dump_format, help_printed,
help_columns, flag_opts_finished): New Variable entries.
(fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
frandom-seed=): Mark deferred.
(fsched-verbose=): Use UInteger and Var.
* flags.h (set_struct_debug_option, flag_print_asm_name,
rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
graph_dump_format): Don't declare here.
* haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
* opts-global.c: Include dbgcnt.h and debug.h.
(decode_options): Pass location to finish_options.
(handle_common_deferred_options): Check flag_dump_all_passed.
Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
OPT_frandom_seed and OPT_frandom_seed_. Don't assert on
* opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
(set_struct_debug_option): Add location_t parameter. Update
recursive call. Use error_at.
(default_options_optimization): Use error_at.
(finish_options): Add location_t parameter. Use
opts->x_flag_opts_finished instead of first_time_p. Use
opts->x_optimize instead of optimize. Use error_at. Pass
location to inform.
(print_filtered_help): Use opts->x_help_printed to track what
options have been printed.
(print_specific_help): Use opts->x_help_columns to track number of
(common_handle_option): Pass locations and gcc_options pointers to
more functions. Use warning_at instead of fnotice and warning.
Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
OPT_fdebug_prefix_map_. Use error_at. Set
opts->x_initial_max_fld_align; don't set maximum_field_alignment.
Don't handle OPT_frandom_seed or OPT_frandom_seed_. Don't handle
(handle_param): Add location_r parameter. Use error_at.
(set_debug_level): Add location_r parameter. Use error_at and
(setup_core_dumping): Add diagnostic_context parameter.
(decode_d_option): Add gcc_options, location_t and
diagnostic_context parameters and use them instead of global
state. Use warning_at.
(enable_warning_as_error): Use error_at.
* opts.h (finish_options): Update prototype.
(set_struct_debug_option): Declare here.
* rtl.h (fix_sched_param): Remove.
* stor-layout.c (initial_max_fld_align): Remove.
* toplev.c (rtl_dump_and_exit, flag_print_asm_name,
graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
(process_options): Set maximum_field_alignment.
* tree.h (initial_max_fld_align) Don't declare here.
* (opts.o, opts-global.o): Update dependencies.
2010-11-23 Joseph Myers <>
* flag-types.h (struct visibility_flags): Don't declare here.
* flags.h (strip_off_ending, fast_math_flags_set_p,
fast_math_flags_struct_set_p): Declare here.
(visibility_options): Don't declare here.
* opts-common.c (option_enabled, get_option_state): Move from
* opts-global.c: Include diagnostic.h instead of
diagnostic-core.h. Include tree.h, langhooks.h, lto-streamer.h
and toplev.h.
(const_char_p, ignored_options, in_fnames, num_in_fnames,
write_langs, complain_wrong_lang, postpone_unknown_option_warning,
print_ignored_options, unknown_option_callback,
post_handling_callback, lang_handle_option, add_input_filename,
read_cmdline_options, initial_lang_mask, init_options_once,
set_default_handlers, decode_options): Move from opts.c.
(print_ignored_options): Use warning_at instead of saving and
restoring input_location.
* opts.c: Include <signal.h> and <sys/resource.h>. Include rtl.h
instead of expr.h. Don't include langhooks.h, except.h or
lto-streamer.h. Add more comments on includes.
(strip_off_ending, setup_core_dumping, decode_d_option): Move from
(visibility_options): Move to c-family/c-common.c.
(const_char_p, ignored_options, in_fnames, num_in_fnames,
write_langs, complain_wrong_lang, postpone_unknown_option_warning,
print_ignored_options, unknown_option_callback,
post_handling_callback, lang_handle_option, add_input_filename,
read_cmdline_options, initial_lang_mask, init_options_once,
set_default_handlers, decode_options): Move to opts-global.c.
(target_handle_option, default_options_optimization,
finish_options, common_handle_option): Remove static.
(option_enabled, get_option_state): Move to opts-common.c.
* opts.h (common_handle_option, target_handle_option,
finish_options, default_options_optimization): Declare.
* toplev.c: Don't include <signal.h> or <sys/resource.h>.
(setup_core_dumping, strip_off_ending, decode_d_option): Move to
* toplev.h (strip_off_ending, decode_d_option,
fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
declare here.
* (opts.o, opts-global.o): Update dependencies.
2010-11-23 Dave Korn <>
PR driver/42690
* gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
options, replace by call of pass-through-libs spec function to process
link_gcc_c_sequence spec.
(lto_libgcc_spec): Delete variable.
(static_specs[]): Remove related entry.
(static_spec_functions[]): Add new entry for pass-through-libs.
(main): Don't generate deleted lto_libgcc_spec.
(pass_through_libs_spec_func): New function to implement the new
pass-through-libs spec function.
* doc/invoke.texi (pass-through-libs): Document new spec function.
2010-11-23 Joseph Myers <>
* doc/options.texi (Warning, Optimization): Document.
2010-11-23 Jan Hubicka <>
(tree_decl_with_vis): Add implicit_section_name_p.
* targhooks.h (default_function_section): Declare.
* target.def (function_section): New hook.
* defaults.h (HOT_TEXT_SECTION_NAME,
* predict.c (choose_function_section): Remove.
(estimate_bb_frequencies): Do not use choose_function_section.
* coretypes.h (enum node_frequency): Move here from cgraph.h
* cgraph.h (enum node_frequency): Remove.
* varasm.c (initialize_cold_section_name, unlikely_text_section,
unlikely_text_section_p): Remove.
(named_subsection_entry): New structure.
(get_text_section): New function.
(default_function_section): New function.
(function_section_1): Break out from ...; handle profile info.
(function_section): ... here.
(unlikely_text_section): Remove.
(unlikely_text_section_p): Use function_section_1.
(assemble_start_function): Do not initialize cold section.
(default_section_type_flags): Do not special case cold subsection.
(switch_to_section): Likewise.
* output.h (get_text_section): Define.
* config/i386/winnt.c: Do not special case cold section.
* config/darwin-protos.h (darwin_function_section): Declare.
* config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
* config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
(TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
* config/ia64/ia64.c (ia64_hpux_function_section): New function.
* config/darwin.c (machopic_select_section): Use
(darwin_function_section): New function.
* config/darwin.h (HOT_TEXT_SECTION_NAME,
2010-11-23 Iain Sandoe <>
* config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2010-11-23 Jakub Jelinek <>
PR middle-end/46499
* cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
following unconditional jumps.
2010-11-23 Richard Guenther <>
* doc/md.texi (386 constraints): Clarify A constraint documentation.
2010-11-23 Basile Starynkevitch <>
Jeremie Salvucci <>
* gengtype.c (enum typekind, struct options)
(struct nested_ptr_data, struct pair, NUM_PARAM)
(enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
Move to gengtype.h.
(string_type, scalar_nonchar, scalar_nonchar, scalar_char):
Remove static, add zero state_number.
(typedefs, structures, param_structs, variables): Remove static.
(create_option): Remove.
(create_string_option, create_type_option, create_nested_option):
New functions.
(create_nested_ptr_option): Use create_nested_option.
(note_variable, adjust_field_rtx_def, adjust_field_type): Call the
new create*option functions.
(process_gc_options): Adjust for discriminated option.
(output_mangled_typename): Handle TYPE_NONE.
(walk_type): Test option kinds.
(write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
(write_func_for_structure, write_type, write_local, write_root)
(write_roots, note_def_vec, dump_options): Adjust for
discriminated option.
* gengtype.h (typedefs, structures, param_structs, variables
enum typekind): Move from gengtype.c
(enum option_kind): New discriminating enumeration.
(struct options): Becomes discriminated.
(struct nested_ptr_data): Nove from gengtype.c