blob: 917704a07464d6c2b156a9a89045ed2890a000a9 [file] [log] [blame]
2010-12-31 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (powerpc-*-darwin*): Update reference to
Apple Developer Tools.
2010-12-31 Ken Werner <ken.werner@de.ibm.com>
* config/arm/sync.md (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 <gerald@pfeifer.com>
* doc/sourcebuild.texi (Top Level): Adjust link to libgo.
2010-12-31 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific): Remove reference to interix.com.
2010-12-31 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.h (PRINT_OPERAND): Delete.
* config/pdp11/pdp11.c (TARGET_PRINT_OPERAND,
TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
(pdp11_asm_print_operand, pdp11_asm_print_operand_punct_valid_p):
New function.
* config/pdp11/pdp11.md (tablejump): Fix generated assembly.
2010-12-31 Joern Rennecke <amylaar@spamcop.net>
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.
(MULTILIB_DEFAULTS, MIPS_ABI_DEFAULT, SUBTARGET_CC1_SPEC): Likewise.
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 <mingjie.xing@gmail.com>
* config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change
TARGET_LOONGSON_2EF to TARGET_LOONGSON_VECTORS.
* config/mips/mips.c (mips_shift_truncation_mask): Likewise.
2010-12-30 Joseph Myers <joseph@codesourcery.com>
* config/openbsd.opt: New.
* config.gcc (alpha*-*-openbsd*,
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123],
i[34567]86-*-openbsd*, m68k*-*-openbsd*, mips*-*-openbsd*,
sparc64-*-openbsd*, vax-*-openbsd*): Use openbsd.opt.
2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
patterns.
2010-12-30 Eric Botcazou <ebotcazou@adacore.com>
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 <joseph@codesourcery.com>
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 <froydnj@codesourcery.com>
PR target/44606
* reload1.c (choose_reload_regs): Don't look for equivalences for
output reloads of constant loads.
2010-12-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* 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 <hongjiu.lu@intel.com>
* 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 <hongjiu.lu@intel.com>
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 <ni1d@arrl.net>
* config/pdp11/pdp11.md (movmemhi, movmemhi1): Correct
constraints.
* config/pdp11/pdp11.c (output_block_move): Rewrite.
2010-12-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/47060
* tree-parloops.c (reduction_phi): Return NULL if PHI is NULL.
2010-12-29 Paul Koning <ni1d@arrl.net>
* 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,
ASM_OUTPUT_ALIGNED_LOCAL): New macros.
(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
2010-12-30 Joern Rennecke <amylaar@spamcop.net>
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 <jakub@redhat.com>
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 <sebastian.pop@amd.com>
* Makefile.in (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 <rguenther@suse.de>
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 <hongjiu.lu@intel.com>
Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386-builtin-types.def (PUSHORT): New.
(INT_FTYPE_PUSHORT): Likewise.
(INT_FTYPE_PUNSIGNED): Likewise.
(INT_FTYPE_PULONGLONG): Likewise.
Remove "DEF_FUNCTION_TYPE (UINT16)".
* config/i386/i386.c (ix86_builtins): Remove
IX86_BUILTIN_RDRAND16, IX86_BUILTIN_RDRAND32 and
IX86_BUILTIN_RDRAND64. Add IX86_BUILTIN_RDRAND16_STEP,
IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP.
(bdesc_special_args): Remove IX86_BUILTIN_RDRAND16,
IX86_BUILTIN_RDRAND32 and IX86_BUILTIN_RDRAND64.
(ix86_init_mmx_sse_builtins): Handle IX86_BUILTIN_RDRAND16_STEP,
IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP.
(ix86_expand_builtin): Likewise.
(ix86_expand_special_args_builtin): Remove UINT16_FTYPE_VOID.
* config/i386/i386.md (UNSPEC_RDRAND): New.
(UNSPECV_RDRAND): Removed.
(rdrand<mode>): Likewise.
(rdrand<mode>_1): Also set FLAGS_REG. Replace UNSPECV_RDRAND
with UNSPEC_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 <sebastian.pop@amd.com>
* Makefile.in (graphite.o): Add dependence on DIAGNOSTIC_H.
* graphite.c: Include diagnostic.h.
2010-12-28 Sebastian Pop <sebastian.pop@amd.com>
* Makefile.in (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 <ni1d@arrl.net>
* config/pdp11/pdp11.md: Correct length attribute for float
literal case.
2010-12-28 Jie Zhang <jie@codesourcery.com>
* builtins.c (SLOW_UNALIGNED_ACCESS): Remove.
2010-12-27 Joseph Myers <joseph@codesourcery.com>
* config/freebsd.opt (assert=, defsym=, profile, pthread,
rpath-link=, rpath=, soname=): New Driver options.
2010-12-26 Martin Jambor <mjambor@suse.cz>
* tree.c (get_binfo_at_offset): Use BINFO_TYPE instead of TREE_TYPE,
compare TYPE_MAIN_VARIANTs of types.
2010-12-26 Andreas Schwab <schwab@linux-m68k.org>
* config/m68k/t-linux (M68K_MLIB_CPU): Only include 680x0 CPUs.
2010-12-24 Alexander Monakov <amonakov@ispras.ru>
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 <sebastian.pop@amd.com>
Richard Guenther <rguenther@suse.de>
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 <sebastian.pop@amd.com>
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
loop_nest.
* 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
LOOP_VINFO_LOOP_NEST.
* tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
free_dependence_relations.
* tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.
(LOOP_VINFO_LOOP_NEST): New.
2010-12-23 Martin Jambor <mjambor@suse.cz>
* ipa.c (cgraph_remove_unreachable_nodes): Update former_clone_of even
when not checking.
2010-12-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac (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.
* config.in: 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.
* config/sol2-gld.h [TARGET_DL_ITERATE_PHDR && HAVE_LD_EH_FRAME_HDR]
(LINK_EH_SPEC): Define.
2010-12-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* 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/tm.texi.in (Run-time Target, Register Arguments)
(Scheduling, Macros for Initialization, Misc): Likewise.
* doc/tm.texi: Renerate.
2010-12-23 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
reference documentation for functions in the API is in the header
files.
(Messaging with the GNU Objective-C runtime, Dynamically
registering methods, Forwarding hook): New sections.
2010-12-22 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/47019
* sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
2010-12-22 Nathan Froyd <froydnj@codesourcery.com>
* 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):
Likewise.
(check_call): Likewise.
* tree-ssa.c (useless_type_conversion_p): Likewise.
2010-12-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.md ("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 <mjambor@suse.cz>
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
constants.
* ipa-prop.c (compute_known_type_jump_func): Use
get_ref_base_and_extent and get_binfo_at_offset instead of
gimple_get_relevant_ref_binfo.
(compute_known_type_jump_func): Likewise.
(update_jump_functions_after_inlining): Do not derive types from
constants.
(try_make_edge_direct_virtual_call): Likewise.
* tree.c (get_binfo_at_offset): Get type from non-artificial fields.
2010-12-22 Joseph Myers <joseph@codesourcery.com>
* 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 <abel@ispras.ru>
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 <aoliva@redhat.com>
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.
(DECL_HAS_VALUE_EXPR_P): Accept RESULT_DECL.
* dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
DECL_VALUE_EXPR.
* 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 <jie@codesourcery.com>
* config/arm/arm.c (output_move_double): Update the comment
above the function to reflect the current implementation.
2010-12-21 Steven Bosscher <steven@gcc.gnu.org>
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
init_ic_make_global_vars.
(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 <jakub@redhat.com>
PR target/46880
* config/i386/sse.md (sse2_loadlpd, sse2_movsd): Fix shufpd source
operand.
2010-12-21 Ira Rosen <irar@il.ibm.com>
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
them.
2010-12-21 Steven Bosscher <steven@gcc.gnu.org>
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 <steven@gcc.gnu.org>
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 <jakub@redhat.com>
PR rtl-optimization/47008
* postreload.c (reload_combine_note_store): Also handle
PRE_MODIFY and POST_MODIFY.
2010-12-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* 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 <jh@suse.cz>
PR middle-end/47000
* tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.
2010-12-21 Jie Zhang <jie@codesourcery.com>
* config/arm/arm-ldmstm.ml: Fix a typo in comment.
2010-12-21 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45852
* expr.c (store_expr): Ignore alt_rtl if equal to target,
but has side-effects.
2010-12-21 Anatoly Sokolov <aesok@post.ru>
* 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.
(TARGET_PREFERRED_RELOAD_CLASS): Define.
2010-12-20 Joseph Myers <joseph@codesourcery.com>
* config/alpha/linux.h (OPTION_GLIBC): Define differently if
SINGLE_LIBC.
* config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
Define differently if SINGLE_LIBC.
* config/rs6000/linux.h (OPTION_GLIBC): Define differently if
SINGLE_LIBC.
* config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
SINGLE_LIBC.
* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
SINGLE_LIBC instead of OPTION_GLIBC.
(*-*-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 <rth@redhat.com>
* config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
* config/mn10300/mn10300.md (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 <scliu@faraday-tech.com>
Mingfeng Wu <mingfeng@faraday-tech.com>
* config/arm/arm-cores.def: Add Faraday CPU support -
fa526/fa626/fa606te/fa626te/fmp626/fa726te.
* config/arm/arm-tune.md: 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/arm.md (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/fa526.md: New file.
* config/arm/fa606te.md: New file.
* config/arm/fa626te.md: New file.
* config/arm/fmp626.md: New file.
* config/arm/fa726te.md: New file.
2010-12-20 Yvan Roux <yvan.roux@st.com>
* config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
condition on IT instruction for early termination.
2010-12-20 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
(DBX_REGISTER_NUMBER): 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.
(DBX_REGISTER_NUMBER): Undefine.
* 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 <iains@gcc.gnu.org>
Jan Hubicka <jh@suse.cz>
PR middle-end/46916
* opts.c (finish_options): Enable -freorder-functions
when -freorder-blocks-and-partition is active.
2010-12-20 Iain Sandoe <iains@gcc.gnu.org>
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 <Ralf.Wildenhues@gmx.de>
* 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 <ak@linux.intel.com>
PR lto/46905
* collect2.c (main): Handle -fno-lto.
* opts.c (common_handle_option): Handle -fno-lto.
2010-12-19 Eric Botcazou <ebotcazou@adacore.com>
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/sparc.md (load_pcrel_sym): Add operand #3.
2010-12-19 Dave Korn <dave.korn.cygwin@gmail.com>
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 <cltang@codesourcery.com>
* 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 <jakub@redhat.com>
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 <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_try_catch_finally_statement): Call
objc_maybe_warn_exceptions.
(c_parser_objc_synchronized_statement): Call
objc_maybe_warn_exceptions.
2010-12-18 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46985
* tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
return it immediately.
2010-12-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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 <kai.tietz@onevision.com>
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
function instead of KEEP_AGGREGATE_RETURN_POINTER.
(ix86_handle_callee_pop_aggregate_return): New handler.
(ix86_attribute_table): Add new attribute
callee_pop_aggregate_return.
* doc/extend.texi (callee_pop_aggregate_return): Add
attribute documentation.
2010-12-18 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
Only set sjlj exceptions for NeXT/m32.
2010-12-18 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
Only expose when not building for target.
2010-12-17 Joseph Myers <joseph@codesourcery.com>
* 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 <rth@redhat.com>
* 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 <bonzini@gnu.org>
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
typename.
(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 <joseph@codesourcery.com>
* config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define.
* config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
(DBX_REGISTER_NUMBER): Undefine.
* config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
* config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
Define.
* 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[34567]86-*-solaris2*,
i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
2010-12-17 H.J. Lu <hongjiu.lu@intel.com>
* 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 <joseph@codesourcery.com>
* 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 <ams@codesourcery.com>
* config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
operand order for plus.
Drop redundant % from constraints.
2010-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
_floatunstisf.
* config/spu/spu.md ("floattisf2"): New expander.
("floatunstisf2"): New insn pattern and splitter.
("cgt_ti_m1"): New insn pattern.
2010-12-17 Bernd Schmidt <bernds@codesourcery.com>
* 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 <amonakov@ispras.ru>
PR middle-end/46761
* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
to use unadjusted UB.
2010-12-17 Dodji Seketeli <dodji@redhat.com>
* 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 <jh@suse.cz>
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
call_stmt_cannot_inline_p.
2010-12-16 Joseph Myers <joseph@codesourcery.com>
* 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
headerpad_max_install_names.
2010-12-16 Sebastian Pop <sebastian.pop@amd.com>
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 <jakub@redhat.com>
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 <ebotcazou@adacore.com>
* 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 <konrad@gaisler.com>
Eric Botcazou <ebotcazou@adacore.com>
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/sparc.md (cpu attribute): Add leon. Reorganize.
Include leon.md scheduling description.
* config/sparc/leon.md: 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 <jakub@redhat.com>
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 <sebastian.pop@amd.com>
PR tree-optimization/46404
* graphite-clast-to-gimple.c (gloog): Call scev_reset.
2010-12-16 Anatoly Sokolov <aesok@post.ru>
* config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2010-12-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* 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 <jakub@redhat.com>
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 <cltang@codesourcery.com>
PR target/46883
* config/arm/arm.md
(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 <jh@suse.cz>
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 <joseph@codesourcery.com>
* config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
extra_options twice.
2010-12-15 Joseph Myers <joseph@codesourcery.com>
* doc/tm.texi.in (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
US_SOFTWARE_GOFAST.
* 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
US_SOFTWARE_GOFAST.
2010-12-14 Jan Hubicka <jh@suse.cz>
* 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
headerpad_max_install_names.
2010-12-14 Jan Hubicka <jh@suse.cz>
* tree.c (get_file_function_name): Avoid using random seed on
GLOBAL_sub_I and GLOBAL_sub_D.
2010-12-15 Martin Jambor <mjambor@suse.cz>
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
edges.
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
parameters.
* 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
BINFO_VIRTUALS is not NULL.
(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
gimple_fold_obj_type_ref.
* 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
gimple_fold_obj_type_ref.
2010-12-15 Alexander Monakov <amonakov@ispras.ru>
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 <joseph@codesourcery.com>
* config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
* config.gcc (xstormy16-*-elf): Don't use svr4.h.
2010-12-15 Joseph Myers <joseph@codesourcery.com>
* config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (rx-*-elf*): Don't use svr4.h.
2010-12-14 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/46845
* sese.c (scalar_evolution_in_region): Handle scop parameters
before scev analysis.
2010-12-14 Sebastian Pop <sebastian.pop@amd.com>
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 <sebastian.pop@amd.com>
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 <joseph@codesourcery.com>
* config/arc/arc.h (LIB_SPEC): Define.
* config.gcc (arc-*-elf*): Don't use svr4.h.
2010-12-14 Joseph Myers <joseph@codesourcery.com>
* 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 <jh@suse.cz>
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 <joseph@codesourcery.com>
* 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 <th.r.klein@web.de>
* 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 <jakub@redhat.com>
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 <jh@suse.cz>
PR middle-end/46667
* varasm.c (assemble_start_function): Do not call
resolve_unique_section.
* cfgexpand.c (gimple_expand_cfg): Resolve it here.
2010-12-14 Alexander Monakov <amonakov@ispras.ru>
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 <kaushik.phatak@kpitcummins.com>
* config/h8300/h8300.md (define_split) : Add condition for
"and with single_zero" splitter to handle 16-bit const operands.
* config/h8300/h8300.md (define_split) : Add condition for
"ior with single_one" splitter to handle 16-bit const operands.
* config/h8300/h8300.md (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 <jh@suse.cz>
PR middle-end/45388
* ipa.c (cgraph_build_static_cdtor_1): Break out from ... Add FINAL
parameter.
(cgraph_build_static_cdtor): ... here.
(build_cdtor): Use cgraph_build_static_cdtor_1.
2010-12-13 Joseph Myers <joseph@codesourcery.com>
* config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
2010-12-14 Bernd Schmidt <bernds@codesourcery.com>
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.
(MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
(find_memory, find_memory_store): New static functions.
(can_move_insns_across): New function.
* Makefile.in (df-problems.o): Update dependencies.
2010-12-13 Joseph Myers <joseph@codesourcery.com>
* config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
(DBX_REGISTER_NUMBER): Undefine.
* config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
(DBX_REGISTER_NUMBER): Undefine.
* config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
2010-12-13 Jack Howarth <howarth@bromo.med.uc.edu>
Joseph Myers <joseph@codesourcery.com>
PR bootstrap/46650
* system.h: Include cstring for cxx bootstrap.
2010-12-13 Jakub Jelinek <jakub@redhat.com>
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 <froydnj@codesourcery.com>
PR target/46040
* config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
(arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
2010-12-13 Joseph Myers <joseph@codesourcery.com>
* config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Define.
* config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
2010-12-13 Joseph Myers <joseph@codesourcery.com>
* config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
Don't use svr4.h.
2010-12-13 Joseph Myers <joseph@codesourcery.com>
* config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Undefine.
* config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Define.
* config.gcc (mn10300-*-*): Don't use svr4.h.
2010-12-13 Joseph Myers <joseph@codesourcery.com>
* config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and redefine.
(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
2010-12-13 Alexandre Oliva <aoliva@redhat.com>
PR debug/46756
* jump.c (mark_all_labels): Skip debug insns.
2010-12-13 Alexandre Oliva <aoliva@redhat.com>
PR debug/46782
* cfgcleanup.c (try_forward_edges): Skip debug insns.
2010-12-12 Jan Hubicka <jh@suse.cz>
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
flag_reorder_functions.
2010-12-12 Finn Thain <fthain@telegraphics.com.au>
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 <sebastian.pop@amd.com>
PR tree-optimization/43023
* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
Removed.
(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
fuse_partitions_with_similar_memory_accesses.
2010-12-10 Jakub Jelinek <jakub@redhat.com>
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 <rguenther@suse.de>
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 <dave.korn.cygwin@gmail.com>
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
implementation.
* 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/tm.texi.in (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
prototype.
2010-12-10 Nathan Froyd <froydnj@codesourcery.com>
* c-typeck.c (readonly_error): Delete.
2010-12-10 Jakub Jelinek <jakub@redhat.com>
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 <burnus@net-b.de>
PR fortran/46540
* configure.ac: Handle --disable-libquadmath-support.
* doc/install.texi: Document --disable-libquadmath and
--disable-libquadmath-support
* configure: Regenerate.
* config.in: Regenerate.
2010-12-10 Jack Howarth <howarth@bromo.med.uc.edu>
Iain Sandoe <iains@gcc.gnu.org>
PR 43751/target
* config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
2010-12-10 Iain Sandoe <iains@gcc.gnu.org>
* 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 <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_class_definition): Recognize
Objective-C 2.0 class extensions.
2010-12-10 Iain Sandoe <iains@gcc.gnu.org>
* 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 <amylaar@spamcop.net>
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 <ni1d@arrl.net>
* 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/pdp11.md (movdi, movsi, movdf, movsf): Use
output_move_multiple.
(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 <joseph@codesourcery.com>
* config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (vax-*-linux*): Don't use svr4.h.
2010-12-09 Nathan Froyd <froydnj@codesourcery.com>
* c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* doc/extend.texi (Attribute Syntax): Correct description of
attributes in pointer declarators.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Define.
* config.gcc (mep-*-*): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Define.
* config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Don't define.
* config.gcc (mcore-*-elf): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (iq2000*-*-elf*): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
* config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
WCHAR_TYPE_SIZE): Define.
* config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
* config.gcc (fr30-*-elf): Don't use svr4.h.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* 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 <rguenther@suse.de>
PR middle-end/46844
* gimple-fold.c (canonicalize_constructor_val): Canonicalize addresses.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* 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
undefine.
* config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
undefine.
* 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
undefine.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* 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 <mjambor@suse.cz>
* ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
zero is the first phi parameter.
2010-12-09 Martin Jambor <mjambor@suse.cz>
* 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
adjustment.
2010-12-09 Martin Jambor <mjambor@suse.cz>
PR middle-end/46734
* tree-sra.c (splice_param_accesses): Check that there are not
multiple ADDRESSABLE types.
2010-12-09 Joseph Myers <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* 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,
LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC): Likewise.
* 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 <joseph@codesourcery.com>
* 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 <rguenther@suse.de>
* 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 <rguenther@suse.de>
* 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 <rguenther@suse.de>
* 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 <jakub@redhat.com>
* config/s390/s390.md (*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/altivec.md (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 <yao@codesourcery.com>
* config/arm/arm.c (arm_preferred_rename_class): Implement targethook
PREFERRED_RENAME_CLASS.
2010-12-08 Ian Lance Taylor <iant@google.com>
* doc/sourcebuild.texi (Front End): Remove reference to
snapshot-README and snapshot-index.html.
2010-12-08 Ian Lance Taylor <iant@google.com>
* doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
to update_web_docs_svn.
(Front End): Likewise.
2010-12-08 Iain Sandoe <iains@gcc.gnu.org>
* gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
x86_64-*-darwin* to with_cpu:-core2.
* gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
with movd for darwin assembler.
* gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
(*vec_concatv2di_rex64_sse): Ditto.
2010-12-08 Richard Guenther <rguenther@suse.de>
Sebastian Pop <sebastian.pop@amd.com>
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
GIMPLE_ASSIGN.
(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 <mikestump@comcast.net>
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 <jakub@redhat.com>
PR middle-end/46844
* regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg parameter.
2010-12-08 Richard Earnshaw <rearnsha@arm.com>
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 <meissner@linux.vnet.ibm.com>
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 <rguenther@suse.de>
* 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 <rguenther@suse.de>
* gimplify.c (gimple_tree_eq): Assert hashes are equal only
when checking is enabled.
2010-12-07 Andrey Belevantsev <abel@ispras.ru>
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 <rguenther@suse.de>
* 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 <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/46671
PR target/46685
* config/pa/pa.c (pa_function_section): New function.
(TARGET_ASM_FUNCTION_SECTION): Define.
2010-12-07 Ian Lance Taylor <iant@google.com>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR bootstrap/46810
* configure.ac: Disable AC_MSG_ERROR while looking for the C++
preprocessor.
* configure: Rebuild.
2010-12-07 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
values with sign rather than as unsigned.
2010-12-07 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
(pdp11_function_section): New function.
2010-12-07 Joseph Myers <joseph@codesourcery.com>
* 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 <sebastian.pop@amd.com>
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 <froydnj@codesourcery.com>
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 <rguenther@suse.de>
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 <yao@codesourcery.com>
* Makefile.in: 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.in: New hook TARGET_PREFERRED_RENAME_CLASS.
* doc/tm.texi: Regenerate.
2010-12-07 Jakub Jelinek <jakub@redhat.com>
PR debug/46799
* tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
instead of BUILTINS_LOCATION.
(create_loop_fn): Add LOC argument, pass it to build_decl instead of
BUILTINS_LOCATION.
(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 <amylaar@spamcop.net>
Richard Guenther <rguenther@suse.de>
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 <rguenther@suse.de>
PR tree-optimization/46726
* tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
2010-12-07 Richard Guenther <rguenther@suse.de>
* tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
virtual operands.
2010-12-07 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_typeof_specifier): Removed special
treatment of objc_volatilized attribute for Objective-C.
2010-12-06 Vladimir Makarov <vmakarov@redhat.com>
* ira.c (update_equiv_regs): Prohibit move insns if
pressure-sensitive scheduling was done.
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* 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 <jakub@redhat.com>
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
stmt.
PR debug/46771
* reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
on DEBUG_INSNs.
PR rtl-optimization/46777
* cfglayout.c (duplicate_insn_chain): Avoid duplicating
also barrier after tablejump.
2010-12-06 Joern Rennecke <amylaar@spamcop.net>
Richard Henderson <rth@redhat.com>
PR target/46740
* config/vax/vax.c (vax_output_int_move): Fold #if into if.
2010-12-06 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
* config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
2010-12-06 Joern Rennecke <amylaar@spamcop.net>
PR target/46735
* config/frv/predicates.md (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.
(GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
(ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
(CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
(CONST_OK_FOR_P): Likewise.
* config/frv/frv.md (*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 <hongjiu.lu@intel.com>
* config/i386/i386.c (m_COREI7): New.
(initial_ix86_tune_features): Turn on
X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
2010-12-06 H.J. Lu <hongjiu.lu@intel.com>
* 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 <rguenther@suse.de>
PR tree-optimization/46806
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
coalesce different types.
2010-12-06 Richard Guenther <rguenther@suse.de>
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 <mingjie.xing@gmail.com>
* doc/tm.texi.in: Fix typo.
* doc/tm.texi: Regenerate.
2010-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
last change.
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* 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.
* c-config-lang.in (gtfiles): Added c-family/c-objc.h.
* Makefile.in (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 <dave.anglin@nrc-cnrc.gc.ca>
* config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Ignore
--with-dwarf2 option.
2010-12-03 Jan Hubicka <jh@suse.cz>
* lto-streamer-in.c (input_cfg): Fix pasto.
2010-12-03 Jan Hubicka <jh@suse.cz>
* 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 <jh@suse.cz>
* dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
to prevent mangling with lto frontend.
2010-12-03 Jan Hubicka <jh@suse.cz>
* Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
* lto-cgraph.c (merge_profile_summaries): Fix thinko.
2010-12-03 Jan Hubicka <jh@suse.cz>
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 <dave.korn.cygwin@gmail.com>
* doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
(Cond Exec Macros): ... to this.
* doc/tm.texi: Regenerate.
2010-12-03 Jason Merrill <jason@redhat.com>
PR debug/46123
* dwarf2out.c (gen_tagged_type_die): Don't put local types in
a declaration DIE.
2010-12-03 Nathan Froyd <froydnj@codesourcery.com>
* config/arm/arm.c (arm_legitimate_index_p): Split
VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases. Permit
slightly larger constants in the latter case.
(thumb2_legitimate_index_p): Likewise.
2010-12-03 Joseph Myers <joseph@codesourcery.com>
* common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
* gcc.c (cc1_options): Add %{Qy:}.
2010-12-03 Joseph Myers <joseph@codesourcery.com>
* 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 <amonakov@ispras.ru>
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 <laurynas.biveinis@gmail.com>
* basic-block.h (struct edge_prediction): Remove forward declaration.
* tree-flow.h (struct edge_prediction): Move from here...
* predict.c (struct edge_prediction): ...to here.
* cselib.h (struct elt_list): Move from here...
* cselib.c (struct elt_list): ...to here.
2010-12-02 Ian Lance Taylor <iant@google.com>
* 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 <laurynas.biveinis@gmail.com>
* 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 <hongjiu.lu@intel.com>
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 <hongjiu.lu@intel.com>
* config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
2010-12-02 Ian Lance Taylor <iant@google.com>
* configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX. Check for C++
header files unordered_map, tr1/unordered_map, and ext/hash_map.
* configure, config.in: Rebuild.
2010-12-02 Eric Botcazou <ebotcazou@adacore.com>
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 <ebotcazou@adacore.com>
* tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
for a non-shared type.
2010-12-02 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/45297
* tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
with MEM_REFs as POINTER_PLUS_EXPR.
2010-12-02 Joseph Myers <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* gcc.c (trad_capable_cpp, default_compilers): Don't handle
-ftraditional.
2010-12-02 Joseph Myers <joseph@codesourcery.com>
* 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 <ni1d@arrl.net>
* 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 <iant@google.com>
* doc/install.texi (Configuration): Update default for
--with-boot-ldflags.
2010-12-02 Nathan Froyd <froydnj@codesourcery.com>
PR c/45062
* c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
!funcdef_flag.
2010-12-02 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/45199
* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
(stores_zero_from_loop): Call
mem_write_stride_of_same_size_as_unit_type_p.
* 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 <rguenther@suse.de>
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
sign-changing conversions for induction detection.
2010-12-02 Richard Guenther <rguenther@suse.de>
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 <rguenther@suse.de>
* 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 <bernds@codesourcery.com>
DFA model for Core 2 and Core i7 scheduling.
* config/i386/core2.md: 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/i386.md: Include "core2.md".
(define_attr cpu): Add "corei7".
2010-12-02 Maxim Kuvyrkov <maxim@codesourcery.com>
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.
(PROCESSOR_CORE2): Remove.
2010-12-02 Richard Guenther <rguenther@suse.de>
* lto-streamer.h (LTO_major_version): Bump to 2.
2010-12-02 Richard Guenther <rguenther@suse.de>
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 <rguenther@suse.de>
Ira Rosen <irar@il.ibm.com>
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 <jie@codesourcery.com>
PR middle-end/46674
* varasm.c (compute_visible_aliases): Handle user set assembler name.
2010-12-01 Michael Meissner <meissner@linux.vnet.ibm.com>
* 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 <joseph@codesourcery.com>
* intl.c: Don't include tm.h.
* Makefile.in (intl.o): Don't depend on $(TM_H).
2010-12-01 Sebastian Pop <sebastian.pop@amd.com>
* 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 <sebastian.pop@amd.com>
* 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 <sebastian.pop@amd.com>
* sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
2010-12-01 Sebastian Pop <sebastian.pop@amd.com>
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):
Removed.
(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
new_poly_bb.
(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
insert_out_of_ssa_copy_on_edge.
(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_commutative_reductions_out_of_ssa,
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_commutative_reductions_out_of_ssa,
rewrite_reductions_out_of_ssa, and
rewrite_cross_bb_scalar_deps_out_of_ssa.
* sese.h (struct gimple_bb): Add field pbb.
(GBB_PBB): New.
2010-12-01 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
New.
(rewrite_cross_bb_scalar_deps): Pass in the scop. Call
handle_scalar_deps_crossing_scop_limits.
(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 <sebastian.pop@amd.com>
* sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
when replacing a constant in an ADDR_EXPR.
2010-12-01 Sebastian Pop <sebastian.pop@amd.com>
* 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
scop_do_strip_mine.
* graphite-poly.h (scop_do_strip_mine): Update declaration.
2010-12-01 Jan Hubicka <jh@suse.cz>
* tree.c (build_common_builtin_nodes): Do not initialize
BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
* builtins.c (expand_builtin_profile_func): Remove.
(expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
BUILT_IN_PROFILE_FUNC_EXIT.
* 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 <joseph@codesourcery.com>
* opts.c: Expand comment on tm.h include.
2010-12-01 Yao Qi <yao@codesourcery.com>
* config/arm/predicates.md ("vfp_register_operand"): Return true for
VFP_D0_D7_REGS classes.
2010-12-01 Joseph Myers <joseph@codesourcery.com>
* 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 <joseph@codesourcery.com>
* 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
main_input_basename.
* 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.
* Makefile.in (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 <rguenther@suse.de>
PR tree-optimization/46730
* value-prof.c (gimple_ic): Always generate a separate merge BB.
2010-11-30 Ian Lance Taylor <iant@google.com>
* 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 <nicola.pero@meta-innovation.com>
* c-decl.c (finish_function): Call objc_finish_function in
Objective-C.
* c-typeck.c (convert_for_assignment): Do not call
objc_type_quals_match().
2010-11-30 Richard Guenther <rguenther@suse.de>
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
multiplication.
2010-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
PR middle-end/46709
* cgraphunit.c (process_function_and_variable_attributes): Fix
cut'n'pasteo.
2010-11-30 Joseph Myers <joseph@codesourcery.com>
* 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.
* Makefile.in (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 <rguenther@suse.de>
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 <joseph@codesourcery.com>
* 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.
* Makefile.in (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
bversion.h.
* 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
toplev.h.
2010-11-30 Richard Guenther <rguenther@suse.de>
PR lto/44986
* gcc.c (main): Use the first input with a compiler as infile
for link spec processing.
2010-11-30 Richard Guenther <rguenther@suse.de>
PR lto/45949
* cgraphunit.c (ipa_passes): Stop after errors from small IPA passes.
2010-11-30 Mingjie Xing <mingjie.xing@gmail.com>
* gcc-plugin.h: Include coretypes.h.
* Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2010-11-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* 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 <Joakim.Tjernlund@transmode.se>
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
(rs6000_emit_prologue): Don't set PIC register if
TARGET_SINGLE_PIC_BASE.
* config/rs6000/rs6000.opt (msingle-pic-base): New option.
* doc/invoke.texi (msingle-pic-base): Document.
2010-11-29 H.J. Lu <hongjiu.lu@intel.com>
PR driver/46712
* exec-tool.in (id): New.
Check and export LT_RCU_$id instead of LT_RCU.
2010-11-29 Zdenek Dvorak <rakdver@kam.uniff.cz>
PR tree-optimization/46675
* tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
in offset calculation.
2010-11-29 Jan Hubicka <jh@suse.cz>
* collect2.c (main): Do not imply verbose output with
LTO and linker plugin.
2010-11-29 Dodji Seketeli <dodji@redhat.com>
* 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 <dodji@redhat.com>
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 <iains@gcc.gnu.org>
* 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 <iains@gcc.gnu.org>
Mike Stump <mrs@gcc.gnu.org>
PR target/26427
PR target/33120
PR testsuite/35710
* config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
(ASM_OUTPUT_LOCAL): Likewise.
* 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.
(TARGET_ASM_OUTPUT_ANCHOR): Define.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
(DARWIN_SECTION_ANCHORS): Set to 1.
* 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.
(L2_MAX_OFILE_ALIGNMENT): Define.
(ASM_OUTPUT_ALIGNED_BSS): Define.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
(SECTION_NO_ANCHOR): Define.
(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
(DARWIN_SECTION_ANCHORS): Define with a default of 0.
2010-11-29 Joseph Myers <joseph@codesourcery.com>
* system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
(O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
Conditionally define.
(GET_ENVIRONMENT): Poison.
* configure.ac: Don't test for mincore.
* configure: Regenerate.
* config.in: 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
<splay-tree.h>.
* config/arm/arm.c (arm_target_help): Use getenv instead of
GET_ENVIRONMENT.
* 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
<sys/types.h>.
(MAP_FAILED): Don't define.
* ggc-page.c Don't include <sys/mman.h>.
(MAP_ANONYMOUS, MAP_FAILED): Don't define.
* ggc-zone.c: Don't include <sys/mman.h>.
(MAP_ANONYMOUS, MAP_FAILED): Don't define.
* 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
<sys/times.h>.
* 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 <nicola.pero@meta-innovation.com>
* 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
cp_parser_objc_try_catch_finally_statement.
2010-11-29 Joern Rennecke <amylaar@spamcop.net>
PR tree-optimization/46621
* gimple.h: Don't include tm.h or hard-reg-set.h .
* Makefile.in (GIMPLE_H): Remove $(TM_H).
PR bootstrap/44756
* cppbuiltin.c: Include target.h .
(define_builtin_macros_for_type_sizes):
Use targetm.float_words_big_endian.
2010-11-27 Jan Hubicka <jh@suse.cz>
* 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 <ebotcazou@adacore.com>
* tree-nested.c (remap_vla_decls): Fully expand value expressions of
VLA variables.
2010-11-27 Richard Guenther <rguenther@suse.de>
* 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 <joseph@codesourcery.com>
* 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.
(CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
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 <amylaar@spamcop.net>
PR target/46623
* config/microblaze/microblaze.c (microblaze_block_move_straight):
Use XALLOCAVEC.
(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_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
(ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
(ASM_FINISH_DECLARE_OBJECT): Likewise. Constify name.
2010-11-26 Michael Matz <matz@suse.de>
* 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 <rguenther@suse.de>
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 <rguenther@suse.de>
PR middle-end/46559
* dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
for location list processing.
2010-11-26 Richard Guenther <rguenther@suse.de>
PR lto/46560
* cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
flags manually.
2010-11-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* 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 <rguenther@suse.de>
PR tree-optimization/46665
* tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2010-11-26 Ian Bolton <ian.bolton@arm.com>
* 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 <borntraeger@de.ibm.com>
* config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
2010-11-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46664
* tree-affine.c (aff_combination_to_tree): Add rest last.
2010-11-26 Michael Haubenwallner <michael.haubenwallner@salomon.at>
PR target/33637
* configure.ac: Accept extra arguments for AS_FOR_TARGET,
LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
* configure: Regenerated.
* exec-tool.in: Not quoting command, may have extra arguments.
2010-11-26 Richard Guenther <rguenther@suse.de>
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 <jakub@redhat.com>
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
protected_set_expr_location.
(fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
Use buildN_stat_loc instead of buildN_stat followed by
SET_EXPR_LOCATION.
2010-11-26 Basile Starynkevitch <basile@starynkevitch.net>
* Makefile.in (s-tm-texi): Remove spurous tab.
2010-11-26 Alexandre Oliva <aoliva@redhat.com>
PR debug/46258
* tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
debug stmts.
2010-11-26 Alexandre Oliva <aoliva@redhat.com>
* toplev.c (finalize): Add no_backend parameter. Don't finish
passes when preprocessing only. Adjust...
(do_compile): ... caller.
2010-11-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
flag_unsafe_math_optimizations.
(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 <ubizjak@gmail.com>
* gengtype-state.c (read_state_structures): Initialize "previous".
2010-11-25 Basile Starynkevitch <basile@starynkevitch.net>
Jeremie Salvucci <jeremie.salvucci@free.fr>
* 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.
* Makefile.in (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 <jakub@redhat.com>
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 <hongjiu.lu@intel.com>
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 <joseph@codesourcery.com>
* 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
prototypes.
* doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
Document that hooks must not be modified.
(TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
* doc/tm.texi: Regenerate.
* defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
&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,
gate_convert_to_eh_region_ranges,
output_one_function_exception_table): Pass &global_options to
targetm.except_unwind_info.
* expr.c (build_personality_function): Pass &global_options to
targetm.except_unwind_info.
* function.c (expand_function_end): Pass &global_options to
targetm.except_unwind_info.
* 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
targetm.except_unwind_info.
* 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
arm_except_unwind_info.
* config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
parameter.
* config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
parameter.
(ia64_output_function_prologue, ia64_add_bundle_selector_before,
ia64_reorg, ia64_asm_unwind_emit): Update calls to
ia64_except_unwind_info.
* config/pa/pa.c (pa_option_override): Pass &global_options to
targetm.except_unwind_info.
* config/picochip/picochip-protos.h (picochip_except_unwind_info):
Remove prototype.
2010-11-25 Kai Tietz <kai.tietz@onevision.com>
* 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 <amonakov@ispras.ru>
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 <amonakov@ispras.ru>
PR rtl-optimization/46602
* sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
(tidy_control_flow): Here.
2010-11-25 Joern Rennecke <amylaar@spamcop.net>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR bootstrap/45888
* Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
Fix target.def pathname in timestamp comparison.
2010-11-24 Richard Henderson <rth@redhat.com>
* config/ia64/predicates.md (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/vect.md (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 <froydnj@codesourcery.com>
* targhooks.c (default_except_unwind_info): Remove
MUST_USE_SJLJ_EXCEPTIONS case.
* config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
* config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
* doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
* doc/tm.texi: Regenerate.
* system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
2010-11-24 Nathan Froyd <froydnj@codesourcery.com>
* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
__FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
* 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 <hongjiu.lu@intel.com>
PR target/46519
* config/i386/i386.c (ix86_expand_call): Don't check
TREE_THIS_VOLATILE.
2010-11-24 H.J. Lu <hongjiu.lu@intel.com>
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
vzeroupper.
(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 <joseph@codesourcery.com>
* toplev.c: Include <signal.h>.
2010-11-24 Richard Guenther <rguenther@suse.de>
PR lto/43218
* lto-symtab.c (lto_cgraph_replace_node): Mark edges with
conflicting function signatures as non-inlineable.
2010-11-24 Jakub Jelinek <jakub@redhat.com>
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 <rguenther@suse.de>
* lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
2010-11-24 Richard Guenther <rguenther@suse.de>
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
with a VIEW_CONVERT_EXPR.
2010-11-24 Basile Starynkevitch <basile@starynkevitch.net>
* doc/invoke.texi (Options for Debugging Your Program or GCC):
Explain static numbering of dump files.
2010-11-24 Joseph Myers <joseph@codesourcery.com>
* 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.
* Makefile.in (opts.o): Update dependencies.
2010-11-24 Jakub Jelinek <jakub@redhat.com>
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 <mingjie.xing@gmail.com>
* config/mips/loongson.md: 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/mips.md: Rename mul<mode>3_mul3_ls2ef to
mul<mode>3_mul3_loongson.
(define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
(define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
2010-11-23 Joseph Myers <joseph@codesourcery.com>
* 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
OPT_fstack_limit.
* 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
columns.
(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
OPT_fsched_verbose_.
(handle_param): Add location_r parameter. Use error_at.
(set_debug_level): Add location_r parameter. Use error_at and
warning_at.
(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.
* Makefile.in (opts.o, opts-global.o): Update dependencies.
2010-11-23 Joseph Myers <joseph@codesourcery.com>
* 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.c.
* 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,
decode_cmdline_options_to_array_default_mask,
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
toplev.c.
(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,
decode_cmdline_options_to_array_default_mask,
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
opts.c.
* toplev.h (strip_off_ending, decode_d_option,
fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
declare here.
* Makefile.in (opts.o, opts-global.o): Update dependencies.
2010-11-23 Dave Korn <dave.korn.cygwin@gmail.com>
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 <joseph@codesourcery.com>
* doc/options.texi (Warning, Optimization): Document.
2010-11-23 Jan Hubicka <jh@suse.cz>
* tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
(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,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
* 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,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
* config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
(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.
(darwin_function_section): New function.
* config/darwin.h (HOT_TEXT_SECTION_NAME,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
(TARGET_ASM_FUNCTION_SECTION): Define.
* system.h (HOT_TEXT_SECTION_NAME,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2010-11-23 Iain Sandoe <iains@gcc.gnu.org>
* 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 <jakub@redhat.com>
PR middle-end/46499
* cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
following unconditional jumps.
2010-11-23 Richard Guenther <rguenther@suse.de>
* doc/md.texi (386 constraints): Clarify A constraint documentation.
2010-11-23 Basile Starynkevitch <basile@starynkevitch.net>
Jeremie Salvucci <jeremie.salvucci@free.fr>
* 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
(create_string_option, create_type_option, create_nested_option)
(create_nested_ptr_option): New functions
(struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
(UNION_OR_STRUCT_P): Move from gengtype.c
* gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
discriminated options.
2010-11-23 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
twice. Avoid re-allocating the ops vector all the time.
2010-11-23 Richard Guenther <rguenther@suse.de>
* tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
is_gimple_min_invariant, group tree code checks to allow
combining them.
(stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
of is_gimple_reg.
2010-11-23 Eric Botcazou <ebotcazou@adacore.com>
* config.gcc (sparc*-*-*): Reorder.
2010-11-23 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c (header_dot_h_frul, source_dot_c_frul):
Remove ENABLE_CHECKING around DBGPRINTF.
2010-11-22 Joseph Myers <joseph@codesourcery.com>
* common.opt (exit_after_options, write_symbols, debug_info_level,
use_gnu_debug_info_extensions): New Variable entries.
(fprofile-dir=): Use Var.
* flag-types.h (enum debug_info_level): Rename to enum
debug_info_levels.
* flags.h (write_symbols, debug_info_level,
use_gnu_debug_info_extensions): Remove declarations.
* opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
(set_struct_debug_option): Make static variables const.
(use_gnu_debug_info_extensions): Remove.
(set_debug_level, print_filtered_help, print_specific_help,
fast_math_flags_set_p): Take gcc_options parameters and use them
in place of global variables.
(print_filtered_help): Make new_help non-static.
(print_specific_help): Update call to print_filtered_help.
(common_handle_option): Update calls to print_specific_help. Use
gcc_options structure for more settings. Make --help table
const. Don't handle OPT_fprofile_dir_ here. Update calls to
set_debug_level.
* toplev.c (profile_data_prefix): Remove.
* toplev.h (profile_data_prefix, exit_after_options): Remove
declarations.
(fast_math_flags_set_p): Update prototype.
* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
Update call to fast_math_flags_set_p.
2010-11-22 Richard Henderson <rth@redhat.com>
PR target/46434
* config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
return the address register extracted.
(crx_decompose_address): Update the extracted address register.
2010-11-22 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
PR driver/43335
* gcc.c (main): Don't crash when lto-wrapper program is not found.
2010-11-22 Joern Rennecke <amylaar@spamcop.net>
PR target/46608
* config/picochip/picochip.c (picochip_secondary_reload): Make static.
* config/picochip/picochip-protos.h: Don't include "target.h" .
(picochip_secondary_reload): Don't declare.
PR target/46613
* config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
* config/m32c/m32c.c (m32c_conditional_register_usage): No longer
static.
2010-11-22 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/46609
* gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
(source_dot_c_frul): Likewise.
2010-11-22 Basile Starynkevitch <basile@starynkevitch.net>
* gimple-pretty-print.c (dump_bb_header): Add check for cfun.
2010-11-22 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/44970
* Makefile.in (fwprop.o) Add sparseset.h.
* fwprop.c: Include sparseset.h
(struct find_occurrence_data, find_occurrence_callback,
find_occurrence): Remove.
(active_defs, active_defs_check, register_active_defs,
update_df_init, update_uses): New.
(update_df): Rewrite.
(try_fwprop_subst, forward_propagate_asm): Add calls to
update_df_init and update_df.
(fwprop_init): Allocate active_defs and active_defs_check.
(fwprop_done): Free them.
(fwprop, fwprop_addr): Adjust comments.
* df.h (df_uses_create): Declare.
* df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
(df_ref_create): Return result of df_ref_create_structure directly.
(df_ref_create_structure): Call df_install_ref_incremental when
no collection_rec is passed.
(df_ref_record): Do not create multiword hard reg info when no
collection_rec is passed.
(df_uses_create): New.
2010-11-21 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/43057
* fold-const.c (pedantic_non_lvalue_loc): Unshare x before
setting location.
2010-11-22 Richard Guenther <rguenther@suse.de>
* gimple-fold.c (maybe_fold_reference): When canonicalizing
MEM_REFs, preserve volatileness.
* cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
addresses.
2010-11-22 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
2010-11-22 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/45652
* alias.c (get_reg_base_value): New.
* rtl.h (get_reg_base_value): Add prototype.
* sel-sched.c (init_regs_for_mode): Use it. Don't use registers with
non-null REG_BASE_VALUE for renaming.
2010-11-22 Jeremie Salvucci <jeremie.salvucci@free.fr>
Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c: Include xregex.h and obstack.h
Added comments about role of get_output_file_with_visibility and
our regexpr machinery.
(frul_actionrout_t, struct file_rule_st): New.
(hader_dot_h_frul, source_dot_c_frul): New functions.
(NULL_REGEX, NULL_FRULACT): New.
(files_rules): New.
(matching_file_name_substitute): New function.
(get_output_file_with_visibility): Updated comments and rewritten
to use the new files_rules machinery.
* Makefile.in (XREGEX_H): Added variable.
(build/gengtype.o): Added dependencies for xregex.h and obstack.h
2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
* system.h (FUNCTION_ARG_BOUNDARY): Really poison.
2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
* target.def (conditional_register_usage): Define.
* reginfo.c (init_reg_sets_1): Call
targetm.conditional_register_usage.
* system.h (CONDITIONAL_REGISTER_USAGE): Poison.
* doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
for making it a hook.
* doc/tm.texi: Regenerate.
* config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/arc/arc.c (arc_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/arm/arm.c (arm_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/bfin/bfin-protos.h (conditional_register_usage): Delete.
* config/bfin/bfin.c (conditional_register_usage): Move code into...
(bfin_conditional_register_usage): ...here. New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
* config/cris/cris.c (cris_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
* config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
* config/frv/frv.c (frv_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
* config/i386/i386.c (ix86_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
* config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
Delete.
* config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
* config/mep/mep.c (mep_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
* config/mips/mips.c (mips_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
* config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/mn10300/mn10300.c (mn10300_conditional_register_usage):
...here. New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
* config/pa/pa.c (pa_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
Delete.
* config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
* config/rx/rx.c (rx_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
* config/s390/s390.c (s390_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/score/score.c (score_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/sh/sh.c (sh_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
* config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
* config/spu/spu.c (spu_conditional_register_usage): Make static.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
* config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
* config/v850/v850.c (v850_conditional_register_usage): ...here.
New function.
(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2010-11-21 Jan Hubicka <jh@suse.cz>
Dominique d'Humieres <dominiq@lps.ens.ft>
PR target/46510
* tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
finalize external decls.
2010-11-21 Joseph Myers <joseph@codesourcery.com>
* system.h (strerror): Poison.
2010-11-21 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
for infq/huge_valq.
2010-11-21 Richard Henderson <rth@redhat.com>
PR rtl-optimization/46571
* gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
(compute_hash_table_work): Use NONDEBUG_INSN_P.
2010-11-21 Paul Koning <ni1d@arrl.net>
* config/mips/pdp11.md (negsi2): Fix wrong code.
2010-11-21 Paul Koning <ni1d@arrl.net>
* config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
* config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2010-11-21 Eric Botcazou <ebotcazou@adacore.com>
* config/mips/mips.c (machine_function): Rename load_label_length to
load_label_num_insns.
(mips_load_label_length): Rename to...
(mips_load_label_num_insns): ...this. Adjust to first renaming.
(mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
2010-11-21 Uros Bizjak <ubizjak@gmail.com>
PR target/46533
* config/alpha/predicates.md (direct_call_operand): Return false
for !TARGET_SMALL_TEXT targets.
2010-11-20 Joseph Myers <joseph@codesourcery.com>
* doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
(HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
* doc/tm.texi: Regenerate.
* system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
HANDLE_PRAGMA_WEAK): Poison.
* config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
(HANDLE_PRAGMA_WEAK): Don't undefine.
* config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
(HANDLE_PRAGMA_WEAK): Don't undefine.
* config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
(HANDLE_PRAGMA_PACK): Don't undefine.
* config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
* config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
* config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
* config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
PR target/31100
* config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
* config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
* config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2010-11-20 Jan Hubicka <jh@suse.cz>
* cgraph.c (ld_plugin_symbol_resolution_names): New.
(dump_cgraph_node): Dump resolution.
* cgraph.h (ld_plugin_symbol_resolution_names): Declare.
(cgraph_comdat_can_be_unshared_p): Dclare.
* lto-streamer-out.c (produce_symtab): Use
cgraph_comdat_can_be_unshared_p.
* ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
(cgraph_comdat_can_be_unshared_p): New function based on logic
in cgraph_externally_visible_p.
(cgraph_externally_visible_p): Use it.
(varpool_externally_visible_p): Virtual tables can be unshared.
* varpool.c (dump_varpool_node): Dump resolution.
2010-11-20 Jan Hubicka <jh@suse.cz>
* stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/46202
* Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
(AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
shell quoting.
(STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
(install-strip): New target.
(STRIPPROG): New variable, exported if STRIP is set.
* doc/install.texi (Final install): Minor markup and code style
fixes. Document install-strip target.
2010-11-20 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
pdp11_regno_reg_class): New functions.
* config/pdp11/pdp11.md (define_constants): Add register numbers.
* config/pdp11/pdp11.c (pdp11_regno_reg_class,
pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
functions.
* config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
frame pointer and argument pointer pseudo-registers.
(ARG_POINTER_REGNUM): Define.
(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
argument pointer.
(FIRST_PARM_OFFSET): Update for argument pointer.
(INITIAL_FRAME_POINTER_OFFSET): Delete.
(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
(REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
frame pointer and argument pointer.
2010-11-20 Jakub Jelinek <jakub@redhat.com>
PR debug/46561
* tree-parloops.c (try_create_redunction_list): Ignore debug stmts
when looking for immediate uses.
PR tree-optimization/45830
* stmt.c (expand_switch_using_bit_tests_p): New function.
(expand_case): Use it.
* tree.h (expand_switch_using_bit_tests_p): New prototype.
* tree-switch-conversion.c (struct switch_conv_info): Add
bit_test_uniq, bit_test_count and bit_test_bb fields.
(check_range): Fix a comment.
(check_process_case): Compute bit_test_uniq and bit_test_count.
(create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
allocation.
(free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
(constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
(array_value_type): New function.
(build_one_array): Use it, if it returned different type,
fold_convert all constructor fields and convert back to the
wider type in the generated code.
(process_switch): Initialize bit_test_uniq, bit_test_count and
bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p
returned true.
2010-11-19 Michael Matz <matz@suse.de>
PR tree-optimization/46077
* tree-chrec.c (eq_evolutions_p): Accept some expressions.
2010-11-19 Anatoly Sokolov <aesok@post.ru>
* config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
function.
(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2010-11-19 Uros Bizjak <ubizjak@gmail.com>
* mode-switching.c (optimize_mode_switching): Use
FOR_BB_INSNS instead of open-coded loop.
* cfgrtl.c (redirect_branch_edge): Ditto.
2010-11-19 Joern Rennecke <amylaar@spamcop.net>
PR target/46436
* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
to accomodate 32 bit HOST_WIDE_INT.
(m68hc11_emit_logical): Remove unused variable insn.
(m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
this_insn_uses_iy before use.
PR target/46434
* config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2010-11-19 Joseph Myers <joseph@codesourcery.com>
PR c/46547
* c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
* c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2010-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
* doc/extend.texi (Function attributes): Document PowerPC target
attributes that are supported.
(Pragmas): Document that PowerPC now supports target pragmas.
* doc/options.texi (TargetVariable): Document TargetVariable,
HeaderInclude, and SourceInclude.
* doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
-ffp-contract=off.
* optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
SourceInclude directives. Fix a cut+paste error with target save
enum variables. Sort enums in the structures after ints and
before shorts.
* opth-gen.awk: Ditto.
* configure.ac: Add support for HeaderInclude and SourceInclude option
directives to add the appropriate files to the dependency lists.
* configure: Regenerate.
* Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
(OPTIONS_C_EXTRA): New variable for SourceInclude.
(OPTIONS_H): Add $(OPTIONS_H_EXTRA).
(options.o): Add $(OPTIONS_C_EXTRA) dependency.
(gcc-options.o): Ditto.
* opt-include.awk: New awk script to handle HeaderInclude and
TargetInclude.
* config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
gets saved in the target options.
* config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
* config/rs6000/sysv4.opt (-mbit-align): Ditto.
(-mprototype): Ditto.
(-mbit-word): ditto.
(-mregnames): Ditto.
(-msecure-plt): Ditto.
(-mbss-plt): Ditto.
* config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
(-mpowerpc-gfxopt): Ditto.
(-mmfcrf): Ditto.
(-mpopcntb): Ditto.
(-mfprnd): Ditto.
(-mcmpb): Ditto.
(-mmmfpgpr): Ditto.
(-maltivec): Ditto.
(-mhard-dfp): Ditto.
(-mmulhw): Ditto.
(-mdlmzb): Ditto.
(-mmultiple): Ditto.
(-mstring): Ditto.
(-mpopcntd): Ditto.
(-mfriz): Ditto.
(-mvsx): Ditto.
(-mno-update): Ditto.
(-mavoid-indexed-addresses): Ditto.
(-mtls-markers): Ditto.
(-msched-epilog): Ditto.
(-msched-prolog): Ditto.
(-maix-struct-return): Ditto.
(-msvr4-struct-return): Ditto.
(-mxl-compat): Ditto.
(-mrecip-precision): Ditto.
(-mfp-in-toc): Ditto.
(-msum-in-toc): Ditto.
(-mvrsave): Ditto.
(-mblock-move-inline-limit=): Ditto.
(-misel): Ditto.
(-mpaired): Ditto.
(-mlongcall): Ditto.
(-mgen-cell-microcode): Ditto.
(-mwarn-cell-microcode): Ditto.
(-mwarn-altivec-long): Ditto.
(-mprioritize-restricted-insns=): Ditto.
(-msingle-float): Ditto.
(-mdouble-float): Ditto.
(-msimple-fpu): Ditto.
(-mxilinx-fpu): Ditto.
* config/rs6000/aix64.opt (-mpe): Ditto.
* config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
(rs6000_cpu): Move variable to be a target variable. Rename
cmodel to rs6000_current_cmodel because of macro conflict. Merge
-mdebug=<xxx> variables into a single int.
(rs6000_always_hint): Ditto.
(rs6000_sched_groups): Ditto.
(rs6000_align_branch_targets): Ditto.
(rs6000_sched_costly_dep): Ditto.
(rs6000_sched_insert_nops): Ditto.
(rs6000_long_double_type_size): Ditto.
(rs6000_ieeequad): Ditto.
(rs6000_altivec_abi): Ditto.
(rs6000_spe): Ditto.
(rs6000_spe_abi): Ditto.
(rs6000_float_gprs): Ditto.
(rs6000_darwin64_abi): Ditto.
(can_override_loop_align): Ditto.
(rs6000_sdata): Ditto.
(rs6000_tls_size): Ditto.
(rs6000_current_abi): Ditto.
(rs6000_traceback): Ditto.
(rs6000_alignment_flags): Ditto.
(rs6000_current_cmodel): Ditto.
(rs6000_recip_control): Ditto.
(rs6000_cpu_index): Ditto.
(rs6000_tune_index): Ditto.
(rs6000_debug): Ditto.
(rs6000_target_flags_explict): Ditto.
* config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
declaration.
* config/rs6000/linux64.h (rs6000_current_cmode): Rename from
cmodel. Change all uses.
* config/rs6000/rs6000.c (rs6000_always_hint): Move to
rs6000.opt. Combine -mdebug=<xxx> variables into a single int.
Rename cmodel to rs6000_current_cmodel.
(rs6000_sched_groups): Ditto.
(rs6000_align_branch_targets): Ditto.
(rs6000_sched_costly_dep): Ditto.
(rs6000_sched_insert_nops): Ditto.
(rs6000_long_double_type_size): Ditto.
(rs6000_ieeequad): Ditto.
(rs6000_altivec_abi): Ditto.
(rs6000_spe): Ditto.
(rs6000_spe_abi): Ditto.
(rs6000_float_gprs): Ditto.
(rs6000_darwin64_abi): Ditto.
(can_override_loop_align): Ditto.
(rs6000_sdata): Ditto.
(rs6000_tls_size): Ditto.
(rs6000_current_abi): Ditto.
(rs6000_traceback): Ditto.
(rs6000_alignment_flags): Ditto.
(rs6000_current_cmodel): Ditto.
(rs6000_recip_control): Ditto.
(rs6000_cpu_index): Ditto.
(rs6000_tune_index): Ditto.
(rs6000_debug): Ditto.
(rs6000_target_flags_explict): Ditto.
(rs6000_sched_insert_nops_str): Make static.
(rs6000_sched_costly_dep_str): Ditto.
(rs6000_recip_name): Ditto.
(rs6000_abi_name): Ditto.
(rs6000_sdata_name): Ditto.
(enum rs6000_traceback_name): Move to rs6000-opts.h.
(rs6000_parse_tls_size_option): Delete.
(rs6000_valid_attribute_p): New function for target attributes and
pragmas.
(rs6000_function_specific_save): Ditto.
(rs6000_function_specific_restore): Ditto.
(rs6000_function_specific_print): Ditto.
(rs6000_can_inline_p): Ditto.
(rs6000_set_current_function): Ditto.
(rs6000_inner_target_options): Ditto.
(rs6000_debug_target_options): Ditto.
(rs6000_pragma_target_parse): Ditto.
(TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
attributes and pragmas.
(TARGET_OPTION_SAVE): Ditto.
(TARGET_OPTION_RESTORE): Ditto.
(TARGET_OPTION_PRINT): Ditto.
(TARGET_CAN_INLINE_P): Ditto.
(TARGET_SET_CURRENT_FUNCTION): Ditto.
(POWER_MASKS): Move to file level scope from the
rs6000_option_override_internal function.
(POWERPC_MASKS): Ditto.
(ISA_*_MASKS): Ditto.
(struct rs6000_ptt): Ditto.
(processor_target_table): Ditto.
(rs6000_cpu_name_lookup): Map cpu name to an index in
processor_target_table.
(rs6000_debug_reg_global): Print more information on processor
options for -mdebug=reg.
(rs6000_init_hard_regno_mode_ok): Add support for target
attributes and pragmas. Merge all -mdebug=<xxx> fields into one.
Allow -mdebug=val1,val2. Rename cmodel variable.
(rs6000_option_override_internal): Ditto.
(rs6000_option_override): Ditto.
(rs6000_handle_option): Ditto.
(rs6000_conditional_register_usage): Add debug trace message.
(struct rs6000_opt_mask): New for target attribute/pragma support.
(rs6000_opt_masks): Ditto.
(struct rs6000_opt_var): Ditto.
(rs6000_opt_vars): Ditto.
(rs6000_previous_function): Ditto.
* config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
wasn't already included.
(enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
(enum processor_type): Ditto.
(rs6000_cpu): Ditto.
(enum fpu_type_t): Ditto.
(fpu_type): Ditto.
(enum rs6000_dependence_cost): Ditto.
(enum rs6000_nop_insertion): Ditto.
(enum group_termination): Ditto.
(rs6000_long_double_type_size): Ditto.
(rs6000_ieeequad): Ditto.
(rs6000_altivec_abi): Ditto.
(rs6000_spe_abi): Ditto.
(rs6000_spe): Ditto.
(rs6000_float_gprs): Ditto.
(rs6000_alignment_flags): Ditto.
(rs6000_sched_insert_nops): Ditto.
(enum rs6000_vector): Ditto.
(enum rs6000_abi): Ditto.
(rs6000_current_opt): Ditto.
(rs6000_debug_*): Delete.
(MASK_DEBUG*): Combine -mdebug=xxxx into one int.
(TARGET_DEBUG*): Ditto.
* config/rs6000/rs6000-opts.h: New header file to define the enums
that are used in target variables that are now defined in rs6000.opt.
* config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
rs6000-opts.h.
(rs6000_sdata): Ditto.
(rs6000_abi_name): Delete.
(rs6000_sdata_name): Ditto.
(rs6000_tls_size_string): Ditto.
2010-11-19 Joseph Myers <joseph@codesourcery.com>
* common.opt (debug_struct_ordinary, debug_struct_generic): New
Variable entries.
* dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
should_emit_struct_debug): Move from opts.c.
* flag-types.h (enum debug_struct_file): Move from opts.c.
* flags.h (should_emit_struct_debug): Remove.
(base_of_path): Declare.
(set_struct_debug_option): Add gcc_options parameter.
* optc-gen.awk, opth-gen.awk: Handle array variables.
* opts.c (enum debug_struct_file, debug_struct_ordinary,
debug_struct_generic): Remove.
(set_struct_debug_option): Add gcc_options parameter.
(base_of_path): Remove static.
(main_input_basename, main_input_baselength, matches_main_base,
dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
Remove.
* toplev.c (main_input_basename, main_input_baselength): Define
here.
* toplev.h (main_input_basename, main_input_baselength): Declare
here.
2010-11-19 Joseph Myers <joseph@codesourcery.com>
* common.opt (flag_instrument_functions_exclude_functions,
flag_instrument_functions_exclude_files): New Variable definitions.
* flags.h (flag_instrument_functions_exclude_p): Don't declare.
* gimplify.c (char_p): Declare type and vectors.
(flag_instrument_functions_exclude_p): Moved from opts.c. Make static.
* opts.c (flag_instrument_functions_exclude_functions,
flag_instrument_functions_exclude_files): Remove.
(add_comma_separated_to_vector): Take void **.
(flag_instrument_functions_exclude_p): Move to gimplify.c.
(common_handle_option): Use options structure for
-finstrument-functions-exclude- options.
2010-11-19 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (Var): Document effects of Defer.
(Defer): Document.
* opt-functions.awk (var_type, var_set): Handle deferred options.
* opts-common.c (set_option): Handle CLVC_DEFER.
* common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
fstack-limit-symbol=): Mark as deferred.
* opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
plugin.h.
(print_filtered_help): Don't report state of CLVC_DEFER options.
(common_handle_option): Move code for OPT_fcall_used_,
OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
OPT_fstack_limit_symbol_ to opts-global.c.
(option_enabled, get_option_state): Handle CLVC_DEFER.
* opts.h: Include vec.h.
(enum cl_var_type): Add CLVC_DEFER.
(cl_deferred_option): Define type and vectors.
(handle_common_deferred_options): Declare.
* opts-global.c: New.
* toplev.c (toplev_main): Call handle_common_deferred_options
* Makefile.in (OPTS_H): Include $(VEC_H).
(OBJS-common): Include opts-global.o.
(opts.o): Update dependencies.
(opts-global.o): Add dependencies.
2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_protocol_definition): Pass attributes
to objc_declare_protocols.
2010-11-19 Richard Guenther <rguenther@suse.de>
PR lto/45789
* lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
IDENTIFIERs do not stream TREE_TYPE.
* lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2010-11-19 Christian Borntraeger <borntraeger@de.ibm.com>
* config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2010-11-19 Jakub Jelinek <jakub@redhat.com>
PR target/45870
* dwarf2out.c (const_ok_for_output_1): Don't complain about
non-delegitimized TLS UNSPECs.
2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu>
Ian Lance Taylor <iant@google.com>
* config/darwin-c.c (darwin_additional_format_types): Export.
2010-11-18 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
pointer.
2010-11-18 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
* config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
* config/pdp11/pdp11.opt (-mabshi): Delete.
2010-11-19 Mingjie Xing <mingjie.xing@gmail.com>
* resource.h (struct resources): Fix typo in the comment.
2010-11-19 Uros Bizjak <ubizjak@gmail.com>
PR target/46546
* config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2010-11-18 Richard Henderson <rth@redhat.com>
PR middle-end/46515
* function.c (maybe_copy_prologue_epilogue_insn): Rename from
maybe_copy_epilogue_insn; handle prologue insns as well.
* rtl.h, cfglayout.c: Update for rename.
* recog.c (peep2_attempt): Copy prologue/epilogue data for
RTX_FRAME_RELATED_P insns.
2010-11-18 Jakub Jelinek <jakub@redhat.com>
PR middle-end/46534
* builtins.c (fold_builtin_printf): Don't copy and modify string
before build_string_literal, instead modify what
build_string_literal returned.
2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
PR c/33193
* c-typeck.c (build_unary_op): Call build_real_imag_expr for
REALPART_EXPR and IMAGPART_EXPR.
2010-11-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46172
* tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
function.
(slpeel_tree_peel_loop_to_edge): Call it.
2010-11-18 Jeff Law <law@redhat.com>
PR middle-end-optimization/46297
* postreload.c (reload_combine_note_store): Deal with embedded
side effects in MEM expressions.
2010-11-18 Richard Guenther <rguenther@suse.de>
PR lto/45089
* dwarf2out.c (add_AT_die_ref): Work around LTO losing types
when checking is not enabled.
2010-11-18 Richard Guenther <rguenther@suse.de>
PR lto/46525
* gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
type leaders.
(gimple_register_canonical_type): Also cache the canoncial type
for non type leaders.
2010-11-18 Richard Guenther <rguenther@suse.de>
* lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2010-11-18 Alexander Monakov <amonakov@ispras.ru>
PR middle-end/46518
* sel-sched-ir.c (init_expr): Use the correct type for
target_available.
* sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2010-11-17 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
as well as -mrelocatable at the same time.
2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com>
PR target/46422
* config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
Call the clz builtin.
2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
Steve Ellcey <sje@cup.hp.com>
PR middle-end/31490
* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
if section attribute used.
2010-11-17 Jan Hubicka <jh@suse.cz>
* builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
expand errno setting variant when optimizing for size.
2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
* postreload.c (reload_combine): Call control_flow_insn_p only once.
Reverse backward loop. Fix formatting issues.
2010-11-17 Paolo Bonzini <bonzini@gnu.org>
* c-parser.c (c_token_is_qualifier,
c_parser_next_token_is_qualifier): New.
(c_parser_declaration_or_fndef, c_parser_struct_declaration):
Improve error message on specs->tagdef_seen_p.
(c_parser_struct_or_union_specifier): Improve error recovery.
(c_parser_declspecs): Move exit condition on C_ID_ID early.
Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
using c_parser_next_token_is_qualifier; extend it to cover
a ctsk_tagdef typespec and !typespec_ok in general.
2010-11-17 Richard Guenther <rguenther@suse.de>
* value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
(gimple_mod_pow2_value_transform): Likewise.
(gimple_mod_subtract_transform): Likewise.
2010-11-17 Richard Guenther <rguenther@suse.de>
PR lto/46504
* gimple.c (gimple_register_canonical_type): Make sure to only
make type leaders canonical types.
2010-11-17 Michael Matz <matz@suse.de>
* timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
* tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
(pass_build_ssa): ... but here.
* cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
* tree-emutls.c (pass_ipa_lower_emutls): Ditto.
* df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
* predict.c (rebuild_frequencies): Ditto.
* tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
* emit-rtl.c (verify_rtl_sharing): Ditto.
* tree-cfgcleanup.c (repair_loop_structures): Ditto.
* tree-ssa-live.c (remove_unused_locals): Ditto.
* cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
* tree-ssa.c (pass_early_warn_uninitialized,
execute_update_addresses_taken, pass_update_address_taken): Ditto.
* tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
* passes.c (pass_postreload, execute_todo): Ditto.
* tree-ssanames.c (pass_release_ssa_names): Ditto.
2010-11-17 Joseph Myers <joseph@codesourcery.com>
* doc/invoke.texi (-dy): Remove.
* langhooks-def.h (lhd_do_nothing_i): Don't declare.
(LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
* langhooks.c (lhd_do_nothing_i): Remove.
* langhooks.h (lang_hooks.parse_file): Take no arguments.
* toplev.c (set_yydebug): Remove.
(compile_file): Update call to lang_hooks.parse_file.
(decode_d_option): Don't handle -dy.
2010-11-17 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/46440
* combine.c (update_cfg_for_uncondjump): When changing
an indirect jump into unconditional jump, remove BARRIERs
from bb's footer.
2010-11-17 Joseph Myers <joseph@codesourcery.com>
* opts.c (target_handle_option): Do not assert that loc ==
UNKNOWN_LOCATION.
2010-11-17 Jakub Jelinek <jakub@redhat.com>
Richard Guenther <rguenther@suse.de>
PR middle-end/45838
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
call_may_clobber_ref_p_1): Return true for __sync_* and some
OpenMP builtins that act as threading barriers.
2010-11-17 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46498
* tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
(xtensa_function_arg_boundary): ...this.
* config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
thinko in declaration.
(picochip_function_arg, picochip_arg_partial_bytes): Pass proper
number of parameters to picochip_function_arg_boundary.
(picochip_arg_advance): Likewise.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
PR target/46512
* config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
under check for type.
2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
* ifcvt.c (dead_or_predicable): Fix typo.
2010-11-16 Richard Henderson <rth@redhat.com>
* config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
* config/s390/s390.opt (mfused-madd): Remove.
* config/s390/s390.c (s390_rtx_costs): Handle FMA.
(TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
* config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
(fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2010-11-16 Richard Henderson <rth@redhat.com>
* config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
* config/rs6000/rs6000.opt (mfused-madd): Remove.
* config/rs6000/altivec.md (altivec_vmaddfp): Remove.
(*altivec_vmaddfp_1): Remove.
(*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
(altivec_mulv4sf3): Expand to FMA directly.
(*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
(*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
* config/rs6000/paired.md (paired_madds0): Use FMA.
(paired_madds1): Likewise.
(*paired_madd): Rename from paired_madd; use FMA.
(*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
consider TARGET_FUSED_MADD wrt rs6000_recip_control.
(bdesc_3arg): Update CODE_FOR_* for pattern renames.
(rs6000_emit_madd): Use fma_optab.
(rs6000_emit_msub): Use fms_optab.
(rs6000_emit_nmsub): Expand the FMA pattern directly.
* config/rs6000/rs6000.md (FMA_F): New mode iterator.
(*fmasf4_fpr): Rename from fmasf4_fpr.
(*nfmasf4_fpr): Rename from *fnmasf4_fpr.
(*nfmssf4_fpr): Rename from *fnmssf4_fpr.
(*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
(*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
(*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
(*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
(*fmadf4_fpr): Rename from fmadf4_fpr.
(*nfmadf4_fpr): Rename from *fnmadf4_fpr.
(*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
(*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
(*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
(fmasf4, fmadf4): Macroize into...
(fma<FMA_F>4): ... here.
(fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
(nfma<FMA_F>4, nfms<FMA_F>4): New.
* config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
TARGET_FUSED_MADD.
* config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
(*vsx_fmadd<mode>4_1): Remove.
(vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
(vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
(vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
(*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
(*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
(*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
(*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2010-11-16 Richard Henderson <rth@redhat.com>
* config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
(fmasf4, fnmadf4, fnmasf4): Likewise.
(unnamed plus+mult insns and splitters): Delete.
2010-11-16 Richard Henderson <rth@redhat.com>
* config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
(fnma<VSF>4): Rename from fnms_<VSF>.
(fms<VSF>4): Rename from fms_<VSF>.
(fma<VDF>4): Rename from fma_<VDF>.
(fms<VDF>4): Rename from fms_<VDF>.
(nfma<VDF>4): Rename from fnma_<VDF>.
(nfms<VDF>4): Rename from fnms_<VDF>.
(fnma<VDF>4, fnms<VDF>4): New expanders.
(floatunsdisf2): Update for the renames.
(*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
* config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/46490
* combine.c (expand_compound_operation): Fix thinko.
2010-11-16 Richard Henderson <rth@redhat.com>
PR target/46470
* recog.c (peep2_attempt): Convert frame-related info when possible.
(peep2_fill_buffer): Allow frame-related insns into the buffer.
(peephole2_optimize): Allow peep2_attempt to fail.
2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/46315
* rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
* rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
extracted from...
* dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
(remove_reg_equal_equiv_notes_for_defs): ...this.
(delete_unmarked_insns): Adjust to above renaming.
* ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
referring to registers set in the insns being moved, if any.
* df-core.c (df_ref_dump): New function extracted from...
(df_refs_chain_dump): ...here. Call it.
(df_regs_chain_dump): Likewise.
* df-problems.c (df_chain_dump): Print 'e' for uses in notes.
* df-scan.c (df_scan_start_dump): Likewise. Fix long line.
2010-11-16 Andreas Schwab <schwab@linux-m68k.org>
PR rtl-optimization/46395
* postreload.c (reload_combine): Invalidate register use
information on all control flow insns.
* config/m68k/m68k.c (m68k_delegitimize_address): Also expect
LABEL_REF in UNSPEC operand.
2010-11-16 Jan Hubicka <jh@suse.cz>
* cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
when !flag_toplevel_reorder do not remove unless variable is
COMDAT or ARTIFICIAL.
* ipa.c (varpool_can_remove_if_no_refs): ... here.
(cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
* cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
* varpool.c (decide_is_variable_needed): Do not handle visibility
issues.
(varpool_finalize_decl): Likewise.
(varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
update outdated comment on DECL_RTL_SET_P check.
2010-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/sol2.h (NM_FLAGS): Define.
* doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
* doc/tm.texi: Update.
2010-11-16 Nick Clifton <nickc@redhat.com>
* config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
(msubsf4): Rename to fmssf4, and use fma.
(nmaddsf4): Rename to fnmasf4 and use fma.
(nmsubsf4): Rename to fnmssf4 and use fma.
2010-11-16 Joern Rennecke <amylaar@spamcop.net>
PR target/44762
* config/score/score3.c (score3_return_in_memory): Constify arguments.
(score3_in_small_data_p, score3_function_value): Likewise.
(score3_trampoline_init): Use LCT_NORMAL.
(score3_print_operand): Initialize code as UNKNOWN.
* config/score/predicates.md (score_load_multiple_operation):
Remove unused variable.
(score_store_multiple_operation): Likewise.
* config/score/score7.c (score7_return_in_memory): Constify arguments.
(score7_in_small_data_p, score7_function_value): Likewise.
(score7_trampoline_init): Use LCT_NORMAL.
(score7_print_operand): Initialize code as UNKNOWN.
* config/score/score3.h (score3_return_in_memory): Update prototype.
(score3_in_small_data_p, score3_function_value): Likewise.
* config/score/score-protos.h (score_function_value): Likewise.
* config/score/score7.h (score7_return_in_memory): Update prototype.
(score7_in_small_data_p, score7_function_value): Likewise.
* config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
(score_return_in_memory, score_pass_by_reference): Constify arguments.
(score_output_mi_thunk, score_function_prologue): Don't return a value.
(score_function_epilogue, score_in_small_data_p): Likewise.
(score_option_override, score_asm_trampoline_template): Likewise.
(score_trampoline_init, score_print_operand): Likewise.
(score_print_operand_address, score_prologue): Likewise.
(score_epilogue, score_call, score_call_value): Likewise.
(score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
(score_function_arg_advance): Likewise. Make static.
(score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
(score_function_arg, score_legitimate_address_p): Make static.
(score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
* config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
* config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
Allow (W) == HOST_BITS_PER_WIDE_INT.
PR java/46386
* config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
* config/t-pnt16-warn (java/constants.o-warn): Likewise.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* config/arc/arc.c: Delete pasto.
* config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2010-11-16 Anatoly Sokolov <aesok@post.ru>
* config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
* config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
(mn10300_preferred_reload_class,
mn10300_preferred_output_reload_class): New functions.
2010-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
(htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
(mnemonic_htab_callback, gen_mnemonic_attr): New functions.
(init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* builtins.c (std_gimplify_va_arg_expr): Use
targetm.calls.function_arg_boundary.
* function.c (assign_parms, locate_and_pad_parm): Likewise.
* calls.c (struct arg_data): Update comment.
* defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
* target.def (function_arg_boundary): Define.
* targhooks.h (default_function_arg_boundary): Declare.
* targhooks.c (default_function_arg_boundary): Define.
* doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
TARGET_FUNCTION_ARG_BOUNDARY.
(FUNCTION_ARG_BOUNDARY): Delete.
(TARGET_FUNCTION_ARG_BOUNDARY): New.
* doc/tm.texi: Regenerate.
* system.h (FUNCTION_ARG_BOUNDARY): Poison.
* config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/arc/arc.c (arc_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
* config/arm/arm.c (arm_needs_doubleword_align): Make static.
(arm_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
* config/frv/frv.c (frv_function_arg_boundary): Make static.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
* config/i386/i386.c (ix86_function_arg_boundary): Make static.
(ix86_compat_function_arg_boundary): Take and return unsigned int.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
* config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/m32c/m32c.c (m32c_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/mcore/mcore.c (mcore_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
* config/mips/mips.c (mips_function_arg_boundary): Make static.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/pa/pa.c (pa_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/picochip/picochip-protos.h
(picochip_get_function_arg_boundary): Delete.
* config/picochip/picochip.c (picochip_get_function_arg_boundary):
Rename to...
(picochip_function_arg_boundary): ...this. Make static.
(picochip_function_arg, picochip_arg_partial_bytes): Adjust.
(picochip_arg_advance): Adjust.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
* config/rs6000/rs6000.c (function_arg_boundary): Rename to...
(rs6000_function_arg_boundary): ...this. Make static.
(rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/rx/rx.c (rx_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/sparc/sparc.c (sparc_function_arg_boundary): Define.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
* config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
* config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
* config/xtensa/xtensa.c (function_arg_boundary): Rename to...
(xtensa_function_arg_boundary): ...this. Make static.
(TARGET_FUNCTION_ARG_BOUNDARY): Define.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* expr.c (alignment_for_piecewise_move): New function.
(widest_int_mode_for_size): New function.
(move_by_pieces, move_by_pieces_ninsns): Call them.
(can_store_by_pieces, store_by_pieces_1): Likewise.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* gcc.c (char_p): Define. Define a VEC of it.
(n_linker_options, n_assembler_options, n_preprocessor_options):
Delete.
(linker_options, assembler_options, preprocessor_options): Convert
to a VEC.
(add_preprocessor_option): Adjust.
(add_assembler_option): Adjust.
(add_linker_option): Adjust.
(do_specs_vec): New function.
(do_spec_1): Call it. Adjust for new types.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
(sreal.o, statistics.o, stringpool.o): Likewise.
2010-11-16 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44545
* tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
statements are not reassociatable.
(reassociate_bb): Likewise.
2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
* bitmap.c: Delete unnecessary includes.
* ebitmap.c: Likewise.
* et-forest.c: Likewise.
* sreal.c: Likewise.
* statistics.c: Likewise.
* stringpool.c: Likewise.
* double-int.c: Add comment for inclusion of tm.h.
2010-11-16 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (visit_unary_op): Rename to ...
(visit_nary_op): ... this.
(visit_binary_op): Remove.
(visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2010-11-16 Richard Guenther <rguenther@suse.de>
PR middle-end/45172
* tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2010-11-16 Nick Clifton <nickc@redhat.com>
* config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
record is packed.
2010-11-15 Richard Henderson <rth@redhat.com>
* fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
DOT_PROD_EXPR.
2010-11-15 Richard Henderson <rth@redhat.com>
* config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively. Use
fma rtx_code.
2010-11-15 Richard Henderson <rth@redhat.com>
* config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
and *mulsubsf4 respectively. Use fma rtx_code.
2010-11-15 Joseph Myers <joseph@codesourcery.com>
* gcc.c: Include "vec.h".
(argbuf): Make into a VEC.
(argbuf_length, argbuf_index): Remove.
(alloc_args, clear_args, store_arg, execute, insert_wrapper,
do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
* Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
(gcc.o): Depend on $(VEC_H).
2010-11-15 Richard Henderson <rth@redhat.com>
* loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
via FMA if unsafe math.
(insert_var_expansion_initialization): Handle FMA.
(combine_var_copies_in_loop_exit): Likewise.
2010-11-15 Richard Henderson <rth@redhat.com>
* config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
* config/ia64/ia64.opt: Remove mfused-madd.
* config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
* config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
* config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
* config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
* config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
* config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
(*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
(fmav2sf4): Rename from fpma; use FMA code.
(fmsv2sf4): Rename from fpms; use FMA code.
(fnmav2sf4): Rename from *fpnma; use FMA code.
* config/ia64/ia64.md (MODE_SDF): New iterator.
(suffix): New mode attribute.
(*maddsf4, *msubsf4, *nmaddsf4): Remove.
(fmssf4): Rename from *fmssf4.
(fnmasf4): Rename from *nfmasf4.
(*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
(*nmadddf4, *nmadddf4_truncsf): Remove.
(fmsdf4): Rename from *fmsdf4.
(fnmadf4): Rename from *nfmadf4.
(*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
(*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
(*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
(*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
(fmsxf4): Rename from *fmsxf4.
(fnmaxf4): Rename from *nfmaxf4.
(*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
(*fnmaxf_trunc_<MODE_SDF>): New.
2010-11-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46461
* tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
a gimple val.
2010-11-15 Ian Lance Taylor <iant@google.com>
* godump.c: New file.
* common.opt (fdump-go-spec=): New option.
* tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
(TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
(TYPE_SYMTAB_IS_DIE): Define.
(struct tree_type): Change GTY for symtab field to use
TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
to pick the union field.
* debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
(dump_go_spec_init): Declare.
* toplev.c (process_options): Handle flag_dump_go_spec.
* debug.c: Include "tree.h".
(do_nothing_debug_hooks): Set tree_type_symtab_field.
* dwarf2out.c (dwarf2_debug_hooks): Likewise.
* dbxout.c (dbx_debug_hooks): Likewise.
(xcoff_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise. Do not define if
SDB_DEBUGGING_INFO is not defined.
* doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
(Overall Options): Document -fdump-go-spec.
* Makefile.in (OBJS-common): Add godump.o.
(debug.o): Add dependency on $(TREE_H).
(godump.o): New target.
(GTFILES): Add $(srcdir)/godump.c.
2010-11-15 Jakub Jelinek <jakub@redhat.com>
PR debug/46095
* config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
marking r11 set RTX_FRAME_RELATED_P if offset is too large for
style < 0, add REG_FRAME_RELATED_EXPR.
PR debug/46387
* rtl.h (vt_equate_reg_base_value): New prototype.
* alias.c (vt_equate_reg_base_value): New function.
* var-tracking.c (vt_init_cfa_base): Use it.
2010-11-15 Jan Hubicka <jh@suse.cz>
Diego Novillo <dnovillo@google.com>
PR lto/41528
* doc/lto.texi: Add.
* doc/gccint.texi: Add reference to lto.texi.
* doc/invoke.texi: Update user documentation for LTO.
Move internal flags to lto.texi
2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
* c-typeck.c (build_unary_op): Use
objc_build_incr_expr_for_property_ref to build the pre/post
increment/decrement of an Objective-C property ref, and skip the
lvalue_or_else check in that case.
2010-11-15 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/46349
* tree-sra.c (contains_bitfld_comp_ref_p): New function.
(contains_vce_or_bfcref_p): Likewise.
(sra_modify_assign): Use them.
2010-11-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46467
* tree-ssa-structalias.c (do_structure_copy): Properly treat
variables without subvars.
2010-11-15 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (file header): Picochip name change.
* config/picochip/picochip.md (file header): Likewise.
* config/picochip/predicates.md (file header): Likewise.
* config/picochip/dfa_space.md (file header): Likewise.
* config/picochip/dfa_speed.md (file header): Likewise.
* config/picochip/picochip.h(file header): Likewise.
* config/picochip/constraints.md (file header): Likewise.
* config/picochip/picochip-protos.h (file header): Likewise.
* config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
* config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
* config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
* config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
* config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
* config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
* config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
* config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
* config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
* config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
* config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
* config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
* config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
* config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2010-11-15 Richard Guenther <rguenther@suse.de>
PR bootstrap/46474
* tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2010-11-15 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16.c (direct_return): Do not generate a
direct return for interrupt handlers.
2010-11-15 Joern Rennecke <amylaar@spamcop.net>
* Makefile.in (tm.texi): Replace with rule for:
($(srcdir)/doc/tm.texi).
(s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
$(srcdir)/doc/tm.texi .
(TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
tm.texi .
PR target/46427
* config/m32r/m32r.c: Remove unused variables frame_size and insn.
PR bootstrap/45444
* config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
(arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
PR target/46432
* config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2010-11-15 Richard Guenther <rguenther@suse.de>
PR lto/44150
* lto-opts.c (lto_write_options): Write -fexceptions even if
not set by the user.
2010-11-13 Paolo Bonzini <bonzini@gnu.org>
PR c/46462
* c-decl.c (declspecs_add_type): Make variables with error types
integers.
* c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
do not start a declaration before an Objective-C foreach.
(c_parser_declaration_or_fndef): Improve recovery after unknown
type name.
(c_parser_for_statement): Hoist entrance of "foreach context"
before ifs, add corresponding reset where it was missing. Do
not set objc_could_be_foreach_context for C.
2010-11-14 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/45722
* tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
this is a reference to a component.
* ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
(ipa_note_param_call): Adjust comment.
2010-11-14 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c (machine_function): Remove
initialized_mips16_gp_pseudo_p.
(mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
detect whether a pseudo has already been created. Unconditionally
create a new one if not.
(mips_pic_base_register): Only call mips16_gp_pseudo_reg when
expanding to rtl. Create a new pseudo otherwise, if allowed.
2010-11-13 Richard Earnshaw <rearnsha@arm.com>
PR target/43440
* tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
* tm.texi: Regenerated.
* output.h (decode_reg_name_and_count): Declare.
* varasm.c (decode_reg_name_and_count): New function.
(decode_reg_name): Reimplement using decode_reg_name_and_count.
* reginfo.c (fix_register): Use decode_reg_name_and_count and
iterate over all regs used.
* stmt.c (expand_asm_operands): Likewise.
* arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
(ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
multiple machine registers.
2010-11-13 Eric Botcazou <ebotcazou@adacore.com>
* stor-layout.c (place_union_field): Do not put location information
on offset expressions.
(place_field): Likewise.
(finalize_record_size): Likewise on size expressions.
(finalize_type_size): Likewise.
(layout_type): Likewise.
2010-11-13 Alexandre Oliva <aoliva@redhat.com>
PR debug/42889
* df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
* df-core.c (df_set_bb_dirty_nonrl): Remove.
* df.h (df_set_bb_dirty_nonlr): Likewise.
2010-11-13 Uros Bizjak <ubizjak@gmail.com>
* config/mips/mips.md (call_internal): Pass curr_insn to
mips_split_call.
(call_internal_direct): Ditto.
(call_value_internal): Ditto.
(call_value_internal_direct): Ditto.
(call_value_multiple_internal): Ditto.
* config/mips/mips.c (mips_split_call): Do not copy
CALL_INSN_FUNCTION_USAGE here.
2010-11-13 Mingming Sun <mingm.sun@gmail.com>
* doc/invoke.texi (MIPS Options): Add loongson3a processor.
* config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
(define_insn "prefetch"): Add TARGET_LOONGSON_3A.
* config/mips/mips.h (TARGET_LOONGSON_3A): Define.
(TUNE_LOONGSON_3A): Define.
(TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
(MIPS_ISA_LEVEL_SPEC): Add loongson3a.
* config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
(mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
(mips_rtx_cost_data): Add Loongson-3A.
2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
switches.
2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
* dwarf2out.c (macinfo_entry): New struct.
(output_comp_unit): Emit the section start label here and flag that we
will emit an info section.
(dwarf2out_start_source_file): Save data in a macinfo entry rather than
emitting directly.
(dwarf2out_end_source_file): Likewise.
(dwarf2out_define): Likewise.
(dwarf2out_undef): Likewise.
(output_macinfo): New.
(dwarf2out_init): Do not emit debug section switches here, allocate a
vec for macinfo, when required.
(dwarf2out_finish): First switch to debug_abbrev_section here.
debug_line_section, debug_macinfo_section, Likewise.
Check that the pubtypes table has at least one unpruned entry before
trying to emit it.
2010-11-13 Paolo Bonzini <bonzini@gnu.org>
PR c/20385
* c-parser.c (c_parser_next_token_starts_declaration): Rename to...
(c_parser_next_tokens_start_declaration): ... this. Handle 2nd
token lookahead.
(c_parser_compound_statement_nostart, c_parser_label,
c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
(c_parser_declaration_or_fndef): Detect the case now matched by
c_parser_next_tokens_start_declaration, give error and correct it.
2010-11-13 Paolo Bonzini <bonzini@gnu.org>
* c-tree.h (enum c_typespec_kind): Add ctsk_none.
(struct c_declspecs): Replace tagdef_seen_p and type_seen_p
with typespec_kind.
* c-decl.c (build_null_declspecs): Initialize typespec_kind.
(shadow_tag_warned, check_compound_literal_type): Adjust
uses of tag_defined_p.
(declspecs_add_type): Set typespec_kind.
* c-parser.c (c_parser_declaration_or_fndef,
c_parser_declspecs, c_parser_struct_declaration,
c_parser_parameter_declaration, c_parser_type_name,
c_parser_objc_diagnose_bad_element_prefix): Adjust uses
of type_seen_p.
* c-typeck.c (c_cast_expr): Use typespec_kind instead of
tag_defined_p, pass ctsk_firstref through.
2010-11-13 Paolo Bonzini <bonzini@gnu.org>
* c-format.c (enum format_specifier_kind, kind_descriptions): New.
(struct format_wanted_type): Replace field "name" with "kind", add
"format_start" and "format_length".
(check_format_info_main): Fill in new fields. Fill in
FORMAT_WANTED_TYPES even for missing arguments. Move checks
after the final NUL outside the while loop. Do not include
width and precision modifiers in the format_start/format_length
of the main format.
(check_format_types): Remove FORMAT_START and FORMAT_LENGTH
arguments. Compute WANTED_TYPE first so that format_type_warning
can be called for missing arguments. Adjust calls to
format_type_warning.
(format_type_warning): Fetch as much information as possible
from format_wanted_type. Adjust printing now that every
warning has a "descr", as well as for missing argument warnings
and to include % sign for format specifiers.
2010-11-12 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/46204
* sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
Update all callers. Do not recompute topological order. Adjust
fallthrough edges following a degenerate conditional jump.
2010-11-12 Joseph Myers <joseph@codesourcery.com>
* opts-common.c (control_warning_option): New.
* opts.c (set_default_handlers): New.
(decode_options): Use set_default_handlers and
control_warning_option.
(common_handle_option): Update call to enable_warning_as_error.
(enable_warning_as_error): Take gcc_options parameters. Use
control_warning_option.
* opts.h (set_default_handlers, control_warning_option): Declare.
2010-11-12 Joseph Myers <joseph@codesourcery.com>
* Makefile.in (OPTS_H): Define.
(c-decl.o, c-family/c-common.o, c-family/c-opts.o,
c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
opts-common.o, toplev.o, passes.o, matrix-reorg.o,
ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
* gcc.c (driver_handle_option): Take location_t parameter.
(process_command, do_self_spec): Update calls to
read_cmdline_option.
* langhooks-def.h (lhd_handle_option): Take location_t parameter.
* langhooks.c (lhd_handle_option): Take location_t parameter.
* langhooks.h (handle_option): Take location_t parameter.
* lto-opts.c (lto_reissue_options): Update call to set_option.
* opts-common.c (handle_option): Make static. Take location_t
parameter and pass it to other functions.
(handle_generated_option): Take location_t parameter and pass it
to other functions.
(read_cmdline_option): Take location_t parameter and pass it to
other functions. Use warning_at and error_at.
(set_option): Take location_t parameter and pass it to other
functions.
* opts.c (common_handle_option): Take location_t parameter and
pass it to other functions.
(enable_warning_as_error): Make static. Take location_t parameter
and pass it to other functions.
(lang_handle_option): Take location_t parameter and pass it to
other functions.
(target_handle_option): Take location_t parameter.
(read_cmdline_options, maybe_default_option,
maybe_default_options, default_options_optimization,
decode_options): Take location_t parameter and pass it to other
functions.
* opts.h: Include input.h.
(struct cl_option_handler_func, decode_options, set_option,
handle_generated_option, read_cmdline_option): Take location_t
parameters.
(handle_option, enable_warning_as_error): Remove.
* toplev.c (toplev_main): Update call to decode_options.
2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de>
* graphite-cloog-util.c (oppose_constraint,
cloog_matrix_to_ppl_constraint,
new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
CLooG isl uses unsigned integers. This triggered a warning.
2010-11-12 Joern Rennecke <amylaar@spamcop.net>
PR target/46438
* config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
(xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
(xtensa_function_arg_1): De-constify cum.
(xtensa_expand_prologue): Use add_reg_note.
PR target/46435
* config/cris/cris.c (saved_regs_mentioned): Delete.
(cris_reload_address_legitimized): Cast itype to enum reload_type.
Remove unused variable op0p.
(cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
(cris_emit_movem_store): Use add_reg_note.
PR bootstrap/46456
* cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
* function.c (expand_function_end): Set the locator of the prologue on
the stack checking insns.
2010-11-12 Richard Henderson <rth@redhat.com>
* config.gcc [xtensa] (extra_options): Add fused-madd.opt.
* config/xtensa/xtensa.opt (mfused-madd): Remove.
* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
MASK_FUSED_MADD.
* config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
(fnmasf4): Rename from mulsubsf3; use fma.
2010-11-12 Joern Rennecke <amylaar@spamcop.net>
Richard Henderson <rth@redhat.com>
PR target/46428
* config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
* config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
comparison.
2010-11-12 Pat Haugen <pthaugen@us.ibm.com>
* opts-common.c (decode_cmdline_option): Initialize separate_args.
2010-11-12 Jan Hubicka <jh@suse.cz>
* doc/invoke.texi (early-inlining-insns): Update default.
* params.def (early-inlining-insns): Default to 10.
2010-11-12 Olivier Hainque <hainque@adacore.com>
* config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
2010-11-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/mips/iris6.h [!IRIX_USING_GNU_LD]
(SUPPORTS_INIT_PRIORITY): Define.
2010-11-12 Joern Rennecke <amylaar@spamcop.net>
PR target/46430
* config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
* config/avr/driver-avr.c (avr_device_to_arch): Always return value.
(avr_device_to_data_start, avr_device_to_startfiles): Likewise.
(avr_device_to_devicelib): Likewise.
* config/avr/avr.md (zero_extendqihi2): Put variable declarations
into block.
(zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
(zero_extendhidi2, zero_extendsidi2): Likewise.
* config/avr/avr.c (avr_num_arg_regs): Constify type.
(avr_return_addr_rtx): De-constify tem.
(avr_rotate_bytes): Move declarations to start of block.
Don't use variable length array. Put nested if/else into block.
PR rtl-optimization/46433
* var-tracking.c: Include tm_p.h .
PR bootstrap/44756
PR build/44767
* doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
should be unsigned.
(STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
* doc/tm.texi: Regenerate.
PR target/46412
* config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
* config/bfin/bfin.c: Include sel-sched.h .
(bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
(expand_interrupt_handler_prologue): Remove unused variable insn.
(bfin_load_pic_reg): Likewise.
(bfin_rtx_costs): Make code / outer_code variables of type
enum rtx_code, copied from re-named parameters.
(bfin_local_alignment): Change align argument and return type
to unsigned.
(bfin_adjust_cost): Remove unused variable insn_type.
Declare variables at start of block.
(struct loop_info): Rename to...
(struct loop_info_d).
(workaround_rts_anomaly): Change type of icode to int.
(harmless_null_pointer_p): Cast REGNO (..) to int before comparison
with int-typed variable.
(note_np_check_stores): Likewise.
(trapping_loads_p): Remove unused variable pat.
(bfin_expand_binop_builtin): Use expand_normal.
(bfin_expand_unop_builtin): Likewise.
(bfin_expand_builtin): Likewise. Set tmode before use.
PR middle-end/44769
* final.c (split_double): Don't use BITS_PER_WORD directly in
shift count.
PR target/46431
* config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
assignment.
PR target/46450
* config/stormy16/stormy16.c (xstormy16_expand_prologue):
Use add_reg_note.
(xstormy16_function_arg): Dereference cum.
(xstormy16_expand_builtin): Use expand_normal.
Change type of omode to enum machine_mode.
(combine_bnp): Rename and to and_insn.
PR target/46437
* config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
localreg.
2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
PR debug/46375
* emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2010-11-11 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
PR lto/46376
* lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2010-11-11 Nathan Froyd <froydnj@codesourcery.com>
PR c/44782
* common.opt (fmax-errors=): New option.
* opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
* diagnostic.h (struct diagnostic_context): Add max_errors field.
* diagnostic.c (diagnostic_initialize): Initialize it.
(diagnostic_action_after_output): Exit if more than max_errors
have been output.
* doc/invoke.texi (Warning Options): Add -fmax-errors.
(-fmax-errors): Document.
2010-11-11 Richard Henderson <rth@redhat.com>
* optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2010-11-11 Richard Henderson <rth@redhat.com>
* config/fused-madd.opt: New file.
* config.gcc [i386-*, x86_64-*] (extra_options): Use it.
* config/i386/i386.c (ix86_extra_costs): Handle FMA.
(TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
* config/i386/i386.opt (mfused-madd): Remove.
* config/i386/sse.md (split_fma): Remove.
(split_fms, split_fnma, split_fnms): Remove.
2010-11-12 Jakub Jelinek <jakub@redhat.com>
PR target/46088
* config/i386/i386.md (*ashl<mode>3_cconly,
*<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
change nonimmediate_operand predicate to register_operand.
2010-11-11 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (gengtype-lex.c): Include bconfig.h first.
2010-11-11 Jan Hubicka <jh@suse.cz>
* opts.c (finish_options): Do not error on -flto-partition alone.
* doc/invoke.texi (-fwhopr): Merge into -flto section.
(-flto-partition): Document none.
* gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
* lto-wrapper.c: Update comment.
(run_gcc): Update LTO option parsing.
* opts.c (finish_options): add support -flto-partition=none
(common_handle_option): Remove fwhopr.
* common.opt: Turn fwhopr into flto.
* collect2.c (main): Update option handling.
* cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
* ipa-split.c (execute_split_functions): Remove flag_whopr.
* ipa.c (function_and_variable_visibility): Remove flag_whopr.
* ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
* varpool.c (decide_is_variable_needed): Remove flag_whopr.
2010-11-11 Jan Hubicka <jh@suse.cz>
PR tree-optimize/40436
* ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
(eliminated_by_inlining_prob): ... this one; return 50% probability
for SRA.
(estimate_function_body_sizes): Update use of
eliminated_by_inlining_prob; estimate static function size
for 2 instructions.
2010-11-11 Joern Rennecke <amylaar@spamcop.net>
PR target/44749
* config/mep/mep-protos.h (mep_legitimize_reload_address): Always
declare. Change type of argument four to type int.
(mep_secondary_input_reload_class): Returns enum reg_class.
(mep_secondary_output_reload_class): Likewise.
(mep_function_value): Change types of arguments to cont_tree.
* config/mep/mep.c (mep_legitimize_reload_address): Change type of
argument four to type int.
(mep_secondary_input_reload_class): Returns enum reg_class.
(mep_secondary_output_reload_class): Likewise.
(mep_function_value): Change types of arguments to cont_tree.
* config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
mep_regno_reg_class to enum reg_class.
2010-11-11 Richard Henderson <rth@redhat.com>
* tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
that the target has the exact fma operation that we matched.
2010-11-11 Joseph Myers <joseph@codesourcery.com>
* reginfo.c (fix_register): Avoid inserting English word in
diagnostic sentence. Use %qs for quoting and %'.
2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/driver-i386.c (host_detect_local_cpu): Support
Intel processor family 6, model 0x2c.
2010-11-11 Joseph Myers <joseph@codesourcery.com>
* opts.c (warning_as_error_callback,
register_warning_as_error_callback): Remove.
(enable_warning_as_error): Don't use warning_as_error_callback.
* opts.h (register_warning_as_error_callback): Remove.
2010-11-11 Richard Henderson <rth@redhat.com>
* tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
in between the MULT and the PLUS/MINUS.
2010-11-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/46388
* expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
BLKmode mode for it.
(expand_expr_real_1): Similarly for op0.
2010-11-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
Document optional target selector.
2010-11-11 Dave Korn <dave.korn.cygwin@gmail.com>
* lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
assembling high and low parts of size if not using 32-bit HWINT; else
use DECL_SIZE_UNITS, not DECL_SIZE.
2010-11-11 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/46383
* ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
offsets.
(compute_complex_ancestor_jump_func): Likewise.
* tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2010-11-11 Jakub Jelinek <jakub@redhat.com>
PR debug/46150
* tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
true if expr1->hash != expr2->hash.
2010-11-10 Joseph Myers <joseph@codesourcery.com>
* cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
diagnostics with lowercase letters.
* cgraphunit.c (verify_cgraph_node): Start diagnostics with
lowercase letters.
* collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
diagnostic.
* config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
lowercase letters.
* config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
Remove trailing ' ' from diagnostic.
* config/avr/avr.c (print_operand_address): Start diagnostic with
a lowercase letter and remove trailing '.'.
* config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
* config/bfin/bfin.c (bfin_option_override): Start diagnostics
with lowercase letters. Use %' in diagnostics. Remove trailing
'.' from diagnostics.
(bfin_handle_longcall_attribute): Use %' in diagnostic.
* config/cris/cris.c (cris_split_movdx,
cris_expand_pic_call_address): Start diagnostics with lowercase
letters.
(cris_asm_output_label_ref): Use %' in diagnostic.
* config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
letter.
* config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
lowercase letter.
* config/darwin-c.c (version_as_macro): Start diagnostic with a
lowercase letter.
* config/darwin-driver.c (darwin_default_min_version): Use %' in
diagnostic.
* config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
diagnostic.
* config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
diagnostics.
* config/i386/i386.c (ix86_option_override_internal): Write
diagnostic as a single sentence without trailing '.'. Use %' in
diagnostics.
(ix86_function_sseregparm, classify_argument): Start diagnostics
with lowercase letters.
(ix86_expand_prologue): Use %' in diagnostic.
* config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
diagnostic.
* config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
lowercase letter.
* config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
diagnostic.
* config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
'`' in help text.
* config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
lowercase letter.
* config/mep/mep.c (mep_validate_vliw): Start diagnostics with
lowercase letters.
* config/microblaze/microblaze.c (microblaze_handle_option):
Remove trailing '.' from diagnostic.
(print_operand): Start diagnostic with a lowercase letter.
* config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/picochip/picochip.c (picochip_option_override,
picochip_emit_save_register, picochip_function_arg,
picochip_output_label, picochip_output_internal_label,
picochip_asm_output_opcode, picochip_output_cbranch,
picochip_output_compare, picochip_output_branch,
picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
diagnostics. Start diagnostics with lowercase letters. Use %' in
diagnostics.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Use
"SPE" capitalization. Start diagnostic with a lowercase letter.
(rs6000_handle_option): Start diagnostics with lowercase letters.
(def_builtin): Remove trailing '.' from diagnostic.
(rs6000_savres_routine_name): Start diagnostic with a lowercase
letter.
* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
diagnostic.
* config/rx/rx.c (rx_handle_option): Start diagnostic with a
lowercase letter.
* config/s390/s390.c (s390_option_override) Start diagnostics with
lowercase letters. Use %' in diagnostic.
* config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
lowercase letters.
* config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
diagnostic.
* config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
diagnostic.
* config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
diagnostic.
* config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/spu/spu.c (spu_option_override): Start diagnostics with
lowercase letters. Use %qs for quoting in diagnostics.
(spu_check_builtin_parm): Remove trailing '.' from diagnostics.
Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
* config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
from diagnostic.
* convert.c (convert_to_integer, convert_to_vector): Use %' in
diagnostics.
* dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
letter and use "cannot" spelling.
* expmed.c (extract_fixed_bit_field): Start diagnostic with
lowercase letter and format as a single sentence without '.'.
* ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
Use %' in diagnostics.
* ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
Use %' in diagnostics.
* ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
Use %' in diagnostics.
* graph.c (clean_graph_dump_file): Use %' in diagnostic.
* graphite-poly.c (graphite_read_scop_file): Start diagnostics
with lowercase letters and remove tailing '.' and '\n'.
* lto-cgraph.c (input_profile_summary): Start diagnostic with
lowercase letter and remove trailing '.'.
(input_cgraph): Start diagnostics with lowercase letters and
remove trailing '\n'.
* opts.c (finish_options, common_handle_option): Start diagnostics
with lowercase letters and remove trailing '.'. Fix typo in
diagnostic.
* passes.c (position_pass): Start diagnostic with lowercase letter.
* plugin.c (add_new_plugin, parse_plugin_arg_opt,
register_callback, try_init_one_plugin): Start diagnostics with
lowercase letters.
* reload1.c (spill_failure): Use %' in diagnostic.
(gen_reload): Start diagnostic with a lowercase letter.
* stor-layout.c (place_field): Start diagnostic with a lowercase
letter.
* toplev.c (open_auxiliary_file): Use %' in diagnostic.
* tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
Start diagnostics with lowercase letters, remove trailing '.' and
use %' in diagnostics.
* tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
(verify_ssa): Don't split diagnostic across two error calls.
Spell out "number" and use %' in diagnostic.
* value-prof.c (visit_hist, check_counter): Start diagnostics with
lowercase letters.
2010-11-10 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/46419
* config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
(_mm_cvtpu16_ps): Ditto.
2010-11-10 Joseph Myers <joseph@codesourcery.com>
* common.opt (flag_excess_precision_cmdline, flag_generate_lto,
warn_larger_than, larger_than_size, warn_frame_larger_than,
frame_larger_than_size, flag_gen_aux_info, flag_shlib,
default_visibility, flag_tls_default): New Variable declarations.
(aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
(v): Declare as Common and document here.
* flags.h (default_visibility, flag_generate_lto,
warn_larger_than, larger_than_size, warn_frame_larger_than,
frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
flag_shlib, flag_excess_precision_cmdline): Remove.
(set_Wstrict_aliasing): Update prototype.
* gcc.c (verbose_flag): Remove.
(driver_handle_option): Add diagnostic_context parameter. Don't
handle OPT_v explicitly here. Set verbose_flag to 1 rather than
incrementing it.
* opts-common.c (handle_option): Pass dc to handler.
* opts.c (warn_larger_than, larger_than_size,
warn_frame_larger_than, frame_larger_than_size,
default_visibility): Remove.
(common_handle_option): Add diagnostic_context parameter.
(set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
gcc_options parameters.
(lang_handle_option, target_handle_option, read_cmdline_options,
decode_options): Add diagnostic_context parameters.
(finish_options): Access option state through opts pointer where
possible.
(common_handle_option): Access option state through opts pointer
where possible. Do not set local static variable verbose. Do not
explicitly handle OPT_v, OPT_Wstrict_aliasing_,
OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
OPT_fwhopr_. Do not explicitly set .opt file variables for
OPT_aux_info or OPT_pedantic_errors. Use dc for diagnostic context.
(set_Wstrict_aliasing): Add gcc_options parameter.
* opts.h (struct cl_option_handler_func): Add diagnostic_context
parameter to handler.
(decode_options): Add diagnostic_context parameter.
* toplev.c (dump_base_name, dump_dir_name, aux_base_name,
asm_file_name, flag_generate_lto, flag_gen_aux_info,
aux_info_file_name, flag_shlib, flag_tls_default,
flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
(toplev_main): Pass global_dc to decode_options.
* toplev.h (dump_base_name, dump_dir_name, aux_base_name,
aux_info_file_name, asm_file_name): Remove.
* tree.h (flag_tls_default): Remove.
2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
PR target/45986
* config/sparc/sparc.c (sparc_delegitimize_address): New function.
(TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
* config.gcc (i[34567]86-*-*): Include tbmintrin.h.
(x86_64-*-*): Likewise.
* config/i386/cpuid.h: Define TBM bit.
* config/i386/driver-i386.c (host_detect_local_cpu): Define
and set has_tbm.
* config/i386/i386-c.c (ix86_target_macros_internal): Check
isa_flag for TBM.
* config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
(OPTION_MASK_ISA_TBM_UNSET): New.
(ix86_handle_option): Handle -mtbm.
(isa_opts): Add -mtbm.
(enum pta_flags): Add PTA_TBM.
(ix86_option_override_internal): Add TBM support.
(ix86_valid_target_attribute_inner_p): Handle -mtbm.
(IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
(IX86_BUILTIN_BEXTRI64): Likewise.
(bdesc_args): Add TBM intrinsics.
(ix86_expand_builtin): Add TBM specific case.
* config/i386/i386.h (TARGET_TBM): New for TBM.
* config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
(tbm_bextri_<mode>): Likewise.
(*tbm_blcfill_<mode>): Likewise.
(*tbm_blci_<mode>): Likewise.
(*tbm_blcic_<mode>): Likewise.
(*tbm_blcmsk_<mode>): Likewise.
(*tbm_blcs_<mode>): Likewise.
(*tbm_blsfill_<mode>): Likewise.
(*tbm_blsic_<mode>): Likewise.
(*tbm_t1mskc_<mode>): Likewise.
(*tbm_tzmsk_<mode>): Likewise.
* config/i386/i386.opt: Add -mtbm.
* config/i386/tbmintrin.h (__bextri_u32): New.
(__blcfill_u32): Likewise.
(__blci_u32): Likewise.
(__blcic_u32): Likewise.
(__blcmsk_u32): Likewise.
(__blcs_u32): Likewise.
(__blsfill_u32): Likewise.
(__blsic_u32): Likewise.
(__t1mskc_u32): Likewise.
(__tzmsk_u32): Likewise.
(__bextri_u64): Likewise.
(__blcfill_u64): Likewise.
(__blci_u64): Likewise.
(__blcic_u64): Likewise.
(__blcmsk_u64): Likewise.
(__blcs_u64): Likewise.
(__blsfill_u64): Likewise.
(__blsic_u64): Likewise.
(__t1mskc_u64): Likewise.
(__tzmsk_u64): Likewise.
* config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
* doc/invoke.texi: Document -mtbm.
* doc/extend.texi: Document TBM built-in functions.
2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
* config.gcc (i[34567]86-*-*): Include bmiintrin.h.
(x86_64-*-*): Likewise.
* config/i386/cpuid.h: Define BMI bit.
* config/i386/driver-i386.c (host_detect_local_cpu): Define
and set has_bmi.
* config/i386/i386-c.c (ix86_target_macros_internal): Check
isa_flag for BMI.
* config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
(OPTION_MASK_ISA_BMI_UNSET): New.
(ix86_handle_option): Handle -mbmi.
(isa_opts): Add -mbmi.
(enum pta_flags): Add PTA_BMI.
(ix86_option_override_internal): Add BMI support.
(ix86_valid_target_attribute_inner_p): Handle -mbmi.
(IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
(IX86_BUILTIN_BEXTR64): Likewise.
(IX86_BUILTIN_CTZS): Likewise.
(bdesc_args): Add BMI intrinsics.
(ix86_expand_args_builtin): Add BMI specific cases.
* config/i386/i386.h (TARGET_BMI): New for BMI.
(CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
(CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
* config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
(UNSPEC_TZCNT): Likewise.
(ctz<mode>2): Add tzcnt, and handle 16 bit operands.
(bmi_andn_<mode>): New for BMI.
(bmi_bextr_<mode>): Likewise.
(bmi_blsi_<mode>): Likewise.
(bmi_blsmsk_<mode>): Likewise.
(bmi_blsr_<mode>): Likewise.
* config/i386/i386.opt: Add -mbmi.
* config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
* config/i386/bmiintrin.h (__lzcnt_u16): New.
(__tzcnt_u16): Likewise.
(__andn_u32): Likewise.
(__bextr_u32): Likewise.
(__blsi_u32): Likewise.
(__blsmsk_u32): Likewise.
(__blsr_u32): Likewise.
(__lzcnt_u32): Likewise.
(__tzcnt_u32): Likewise.
(__andn_u64): Likewise.
(__bextr_u64): Likewise.
(__blsi_u64): Likewise.
(__blsmsk_u64): Likewise.
(__blsr_u64): Likewise.
(__lzcnt_u64): Likewise.
(__tzcnt_u64): Likewise.
* doc/invoke.texi: Document -mbmi and -mno-bmi.
* doc/extend.texi: Document BMI built-in functions.
2010-11-10 Jan Hubicka <jh@suse.cz>
PR tree-optimize/46228
* doc/invoke.texi (comdat-sharing-probability): Document.
* ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
* params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2010-11-10 Jan Hubicka <jh@suse.cz>
PR tree-optimize/46228
* cgraph.c (cgraph_propagate_frequency): Fix typo.
2010-11-10 H.J. Lu <hongjiu.lu@intel.com>
PR tree-optimization/46414
* tree-inline.c (estimate_move_cost): Check preferred vector
mode for vector type.
2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2010-11-10 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/45971
* tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
for phi nodes analyzable by scev.
2010-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44964
* ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2010-11-10 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/46351
PR tree-optimization/46377
* tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
aggregate bit-fields.
2010-11-10 Joseph Myers <joseph@codesourcery.com>
* doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
* doc/tm.texi: Regenerate.
* opts-common.c (tm.h): Don't include.
(target_option_translations): Remove.
(decode_cmdline_options_to_array): Don't handle translating options.
* system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
* config/darwin-driver.c: Don't condition includes on
CROSS_DIRECTORY_STRUCTURE.
(darwin_default_min_version): Make static.
(darwin_driver_init): New. Call darwin_default_min_version if not
CROSS_DIRECTORY_STRUCTURE.
* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
(DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
(ASM_SPEC): Add %{static}.
(darwin_default_min_version): Don't declare.
(darwin_driver_init): Declare.
(GCC_DRIVER_HOST_INITIALIZATION): Define to call
darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
* config/darwin.opt (all_load, allowable_client,
arch_errors_fatal, bind_at_load, bundle, bundle_loader,
dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
exported_symbols_list, filelist, findirect-virtual-calls,
flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
framework, fterminated-vtables, gfull, gused, image_base, init,
install_name, multi_module, multiply_defined,
multiply_defined_unused, no_dead_strip_inits_and_terms,
seg_addr_table, seg_addr_table_filename, segaddr,
segs_read_only_addr, segs_read_write_addr, single_module,
umbrella, unexported_symbols_list, weak_reference_mismatches,
Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
Zno_dead_strip_inits_and_terms, Zsingle_module): New.
* config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
(ASM_SPEC): Add %{static}.
(SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
* config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
(DRIVER_SELF_SPECS): Handle options formerly in
TARGET_OPTION_TRANSLATE_TABLE.
* config/mep/mep.opt (mfar): New.
* config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
(DRIVER_SELF_SPECS): Define. Handle options formerly in
TARGET_OPTION_TRANSLATE_TABLE.
* config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
(SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
* config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
ffix-and-continue, findirect-data): New.
* config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
* config/rx/rx.opt (nofpu): Make into alias of mnofpu.
(mnofpu): Define mask and use Report here.
2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_emit_prologue): Report the stack
size if -fstack-usage is used.
2010-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46398
* tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2010-11-10 Joern Rennecke <amylaar@spamcop.net>
PR target/44760
* config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
(REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
GP_REG_OR_PSEUDO_STRICT_P.
* config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
unexpected alternative.
(*movsf_internal): Likewise.
(indirect_jump): Replace call to non-existant function with call to
internal_error.
(tablejump): Likewise.
* config/iq2000/iq2000.c: Include df.h .
(iq2000_function_arg_advance): Use CONST_CAST2.
(compute_frame_size, iq2000_expand_prologue): Remove unused variables.
(iq2000_can_eliminate): Call leaf_function_p instead of testing for
a non-zero function address.
(iq2000_initial_elimination_offset): Add gcc_unreachable for
unexpected value of FROM.
(symbolic_expression_p): Delete.
(iq2000_function_value): Constify func.
(expand_one_builtin): Use expand_normal.
(iq2000_print_operand): Don't print VALUE if calculating it failed.
PR rtl-optimization/44764
* addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
PR target/46407
* config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
* config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
with ATTRIBUTE_UNUSED.
(valid_psw_flag): Constify parameter which.
(rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
PR target/46415
* config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
(mmix_dbx_register_number): Likewise.
* config/mmix/mmix.c: Include df.h .
(mmix_local_alignment): Change argument basic_align and return type
to unsigned.
(mmix_dbx_register_number): Change argument and return type to
unsigned.
(mmix_expand_prologue): Use add_reg_note.
PR target/46417
* config/spu/spu.c (spu_expand_insv): Remove unused variables.
(spu_split_store): Use aform.
(spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2010-11-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
PR/46268
* doc/gty.texi (GTY Options): Clarify that variable_size produces
allocators taking size in bytes, compare with length option. Add
size calculation example.
(Invoking the garbage collector): Ensure that sentences are
followed by two spaces. Describe that pointer fields must be
initialized at ggc_collect call.
(Troubleshooting): New section.
2010-11-09 Jan Hubicka <jh@suse.cz>
PR tree-optimization/40436
* ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
* tree-inline.c (estimate_num_insns): Inexpensive builtins are like
normal instructions; be sure bultin is not implemented in this file;
compute non-zero return cost.
(init_inline_once): Reduce builtin_call_cost to 1; set return cost.
* tree-inline.h (eni_weights_d): Add return cost.
2010-11-09 Joseph Myers <joseph@codesourcery.com>
* c-parser.c (c_parser_struct_declaration): Handle declaration
specifiers followed by CPP_CLOSE_BRACE.
2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
split occurs before reload, and we allocate memory at the time of
the split, not during expansion. Add attributes.
(floatsi<mode>2_lfiwax_mem): Ditto.
(floatunssi<mode>2_lfiwzx): Ditto.
(floatunssi<mode>2_lfiwzx_mem): Ditto.
(floatsidf2): Ditto.
(floatunssisf2): Ditto.
(floatunssidf2): Ditto.
(fix_trunc<mode>si2): Ditto.
(fix_trunc<mode>si2_stfiwx): Ditto.
(fix_trunc<mode>si2_internal): Ditto.
(fix_trunc<mode>si2): Ditto.
(fix_trunc<mode>di2): Ditto.
(fixuns_trunc<mode>si2_stfiwx): Ditto.
(floatsisf2): Ditto.
(floatdidf2_mem): Ditto.
(floatunsdidf2_mem): Ditto.
(floatunsdidf2): Ditto.
(floatdisf2_internal1): Ditto.
(floatdisf2_mem): Ditto.
(floatunsdisf2_mem): Ditto.
(floatsi<mode>2_lfiwax_mem2): Delete.
(floatunssi<mode>2_lfiwzx_mem2): Ditto.
(fix_trunc<mode>si2_mem): Ditto.
(fixuns_trunc<mode>si2_mem): Ditto.
(round32<mode>2_fprs): New combiner insn to combine (double)(int)
type operations to reduce copying the values to multiple memory slots.
(roundu32<mode>2_fprs): Ditto.
* config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
PRE_INC, PRE_DEC, PRE_MODIFY.
(rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
* config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
Delete prototype.
2010-11-09 Jakub Jelinek <jakub@redhat.com>
PR target/43808
* cfgexpand.c (partition_stack_vars): Call
update_alias_info_with_stack_vars unconditionally.
(update_alias_info_with_stack_vars): Allow unused
unreferenced vars when not optimizing.
2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/46036
* tree-if-conv.c (predicate_bbs): Call unshare_expr before
add_to_dst_predicate_list.
2010-11-09 Jakub Jelinek <jakub@redhat.com>
PR debug/46171
* df-problems.c (struct dead_debug_use, struct dead_debug): Move
earlier.
(df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
argument, call dead_debug_reset when adding REG_UNUSED note.
(dead_debug_reset): New function.
(df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
df_create_unused_note callers.
2010-11-09 Anatoly Sokolov <aesok@post.ru>
* config/fr30/fr30.c: Include "df.h".
2010-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46355
* tree-loop-distribution.c (tree_loop_distribution): Do not
distribute loops without a single exit.
2010-11-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR rtl-optimization/46237
* ira-conflicts.c (ira_build_conflicts): Record conflicts for call
saved hard regs if they might get partially clobbered.
2010-11-09 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2010-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46177
* tree-loop-distribution.c (prop_phis): Remove.
(generate_builtin): Re-use the old loop exit edge to avoid
needing to update PHI nodes.
2010-11-09 Joern Rennecke <amylaar@spamcop.net>
* config/i386/i386.c (ix86_expand_split_stack_prologue): Change
type of args_size to unsigned HOST_WIDE_INT.
PR target/44755
* config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
* config/t-pnt16-warn: New file.
* config/picochip/picochip.c (picochip_emit_stack_allocate):
Use add_reg_note.
(picochip_emit_save_register): Likewise.
(picochip_emit_restore_register): Remove variable insn.
(picochip_legitimize_address): Don't use C++ style comments.
(picochip_legitimize_reload_address): Likewise.
(reorder_var_tracking_notes): Remove variable vliw_start.
(picochip_reorg): Cast first arguemnt to emit_note_after to
enum insn_note.
(picochip_expand_builtin_2op): Use EXPAND_NORMAL.
(picochip_expand_builtin_3op): Likewise.
(picochip_expand_builtin_2opvoid): Likewise.
(picochip_expand_array_get, picochip_expand_array_put): Likewise.
(picochip_expand_array_testport): Likewise.
(picochip_init_builtins): Remove unused variables.
* config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
to unsigned long, and output it as such.
(ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
* config/picochip/picochip.md (movhicc): Remove nonsense statement.
(schedType): Cast result of picochip_schedule_type to
enum attr_schedType.
PR target/44759
* config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
conditional to type of S.
(mn10300_function_arg): Remove unused variable align.
(mn10300_arg_partial_bytes): Likewise.
* config/mn10300/mn10300.md (attribute cpu): Cast value to
enum attr_cpu.
2010-11-09 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/46392
* gengtype-parse.c (type): Call get_input_file_name to get file name.
2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
* tree.h (contains_placeholder_p): Fix comment.
(type_contains_placeholder_p): Adjust comment.
* tree.c (contains_placeholder_p): Fix comment.
(type_contains_placeholder_1): Do not recurse on pointed-to types and
adjust comment.
(type_contains_placeholder_p): Add comment.
2010-11-09 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
output of byte values.
2010-11-09 Jakub Jelinek <jakub@redhat.com>
PR middle-end/46360
* tree-ssa-propagate.c (update_call_from_tree): Fix for use
not in SSA mode.
2010-11-09 Richard Guenther <rguenther@suse.de>
PR middle-end/46221
* varasm.c (compute_visible_aliases): New function.
(remove_unreachable_alias_pairs): Aliases make a target available
even though we reclaimed the cgraph node.
(finish_aliases_1): Likewise.
* Makefile.in (varasm.o): Add pointer-set.h dependency.
2010-11-09 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300-modes.def: New file.
2010-11-09 Basile Starynkevitch <basile@starynkevitch.net>
Jeremie Salvucci <jeremie.salvucci@free.fr>
* gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
(plugin_files, get_file_basename, get_file_realbasename)
(get_file_langdir, error_at_line, gt_files, this_file)
(system_h_file, read_input_list, create_field_all)
(get_file_srcdir_relative_path, get_file_basename)
(get_file_langdir, get_file_gtfilename)
(get_output_file_with_visibility, get_output_file_name)
(struct flist, put_mangled_filename, walk_type)
(put_mangled_filename, finish_root_table, write_roots): Use
input_file-s.
(lang_dir_names, num_lang_dirs): Remove static.
(get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
(main): Use input_file-s.
* gengtype.h: (struct input_file_st, input_file): New type.
(struct fileloc): Use it.
(gt_files, num_gt_files, this_file, system_h_file)
(input_file_by_name, get_file_srcdir_relative_path): Use input_file.
(get_input_file_name): New function.
(get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
use input_file.
(lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
(get_output_file_name): Ditto.
* gengtype-lex.l (yybegin): Use input_file.
* gengtype-parse.c (parse_error): Use input_file.
2010-11-08 Xinliang David Li <davidxl@google.com>
PR tree-optimization/46316
* tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
* double-int.h (double_int_mul_with_sign): New function.
* double-int.c (double_int_mul_with_sign): New function.
2010-11-08 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2010-11-08 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (negsi2): Fix wrong code.
2010-11-08 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
to 8 bits.
2010-11-08 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/46378
* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
turn on ISA 2.04 rounding instructions for power5.
* config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
not ISA 2.02.
PR target/45585
* config/rs6000/darwin.md (movdi_low): Allow DImode values to be
in FPR registers.
(movdi_low_st): Ditto.
2010-11-08 Joern Rennecke <amylaar@spamcop.net>
Richard Henderson <rth@redhat.com>
PR target/44758
* config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
(attribute acc_group): Cast value to enum attr_acc_group.
(*movdi_nodouble+6): Use gen_int_mode.
* config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
if RTX_CODE is defined or not.
* config/frv/frv.c (enum frv_io_type): New enum, broken out of
struct frv_io.
(frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
(frv_frame_access, frv_expand_prologue): Remove unused variables.
(frv_expand_block_clear): Likewise.
(frv_trampoline_init): Use LCT_NORMAL.
(struct frv_packet_group): New struct, broken out of type of
frv_packet.
(frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
use cast in loop counter increment.
(frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
assigning to io->type.
(bdesc_set): Use rtx_code UNKNOWN in initializer.
(bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
(bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
(bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
(frv_read_argument): Use expand_normal.
PR target/44757
* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
lm32_legitimate_constant_p.
* config/lm32/lm32.md (ashlsi3): Remove unused variable.
* config/lm32/lm32.c (gen_int_relational): Make new block for
LE / LT / LEU / LTU case. Declare variables at start of block.
(lm32_block_move_inline): Use XALLOCAVEC.
2010-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype (get_output_file_for_structure): Ensure type is union
or struct.
(write_splay_tree_allocator_def): Use
get_output_file_with_visibility.
2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_handle_arch_option): Set type and flags
to defined values in case of an error.
(s390_option_override): Skip further processing if the -march
parameter wasn't recognized.
2010-11-08 Joern Rennecke <amylaar@spamcop.net>
* caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
assert that REG is a hard register number before using it as an index.
PR bootstrap/46358
* config/i386/i386.c (ix86_expand_split_stack_prologue):
Avoid warnings when HOST_WIDE_INT is 32 bit.
2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
PR target/46208
* config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
(sparc_promote_prototypes): Likewise.
(sparc_promote_function_mode): Promote in 32-bit mode as well.
(sparc_return_in_memory): Remove superfluous parentheses.
(sparc_struct_value_rtx): Fix long lines.
(sparc_function_value_1): Promote in 32-bit mode as well.
2010-11-08 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/45352
* sel-sched.c (find_best_expr): Do not set pneed_stall when
the variable_issue hook is not implemented.
(fill_insns): Remove dead variable stall_iterations.
(init_seqno_1): Force EBB start for resetting sched cycles on any
successor blocks of the rescheduled region.
(sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
(reset_sched_cycles_in_current_ebb): Add debug printing.
New variable issued_insns. Advance state when we have issued
issue_rate insns.
2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype (main): Get here's position using POS_HERE macro for
do*typedef calls.
2010-11-07 Ian Lance Taylor <iant@google.com>
PR target/46089
* config/i386/i386.c (split_stack_fn_large): New static variable.
(ix86_expand_split_stack_prologue): Handle large model.
2010-11-07 Andreas Schwab <schwab@linux-m68k.org>
* config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
all possible addressing modes.
2010-11-07 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/46346
* tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c: Revert previous patch.
* config/mips/mips.md: Likewise.
2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c (mips_rtx_costs): Handle FMA.
* config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
(*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
(*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
(*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
to use FMA.
(fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
(fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
(fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
(fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2010-11-06 Simon Martin <simartin@users.sourceforge.net>
PR c/43384
* c-decl.c (lookup_label): Labels can only be referenced in a
function's scope.
(store_parm_decls_oldstyle): Skip erroneous parameters.
2010-11-06 Anatoly Sokolov <aesok@post.ru>
* config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
LIBCALL_VALUE): Remove macros.
* config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
TARGET_FUNCTION_VALUE_REGNO_P): Define.
(fr30_function_value_regno_p, fr30_function_value,
fr30_libcall_value): New functions.
2010-11-06 Joern Rennecke <amylaar@spamcop.net>
PR middle-end/46314
* target.def (generate_internal_label): New asm_out hook.
* output.h (default_generate_internal_label): Declare.
* varasm.c (default_generate_internal_label): Define.
2010-11-06 Iain Sandoe <iains@gcc.gnu.org>
PR target/44981
* doc/extend.tex (format): Document NSString extension.
(format_arg): Likewise.
(Darwin Format Checks): New section.
* doc/tm.texi: Document string object hooks (generated).
* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
(TARGET_STRING_OBJECT_REF_TYPE_P): New.
(TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
* target.def (objc_construct_string_object): Rename, amend
documentation.
(string_object_ref_type_p): New hook.
(check_string_object_format_arg): New hook.
* c-parser.c (c_parser_attributes): Allow objective-c class names as
attribute identifiers.
* config/darwin-c.c (darwin_cfstring_ref_p): New.
(darwin_check_cfstring_format_arg): New.
(darwin_additional_format_types): New.
* config/darwin-protos.h (darwin_cfstring_ref_p) New.
(darwin_check_cfstring_format_arg): New.
* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
(TARGET_STRING_OBJECT_REF_TYPE_P): New.
(TARGET_N_FORMAT_TYPES): New.
(TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2010-11-06 Eric Botcazou <ebotcazou@adacore.com>
Pascal Obry <obry@adacore.com>
* config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine. Use 33
in 64-bit mode and 17 otherwise.
2010-11-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR debug/45939
* var-tracking.c (emit_note_insn_var_location): Make sure that
call related var location notes come before the normal ones.
2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
PR target/46326
* config/i386/i386.c (ix86_delegitimize_address): Fix a typo
in the last change.
2010-11-05 Ian Lance Taylor <iant@google.com>
* explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2010-11-05 Jakub Jelinek <jakub@redhat.com>
PR c/44772
* c-decl.c (warn_cxx_compat_finish_struct): Don't call
pointer_set_contains if DECL_NAME is NULL.
2010-11-05 Ian Lance Taylor <iant@google.com>
PR target/46084
* explow.c (allocate_dynamic_stack_space): If flag_split_stack,
request enough additional space for alignment, and force alignment.
2010-11-05 Kai Tietz <kai.tietz@onevision.com>
* config/i386/i386.c (legitimate_pic_address_disp_p):
Handle UNSPEC_PCREL.
(ix86_legitimate_address_p): Likewise.
(legitimize_pic_address): Likewise.
(output_pic_addr_const): Likewise.
(ix86_delegitimize_address): Likewise.
(ix86_find_base_term): Likewise.
(memory_address_length): Likewise.
(x86_output_mi_thunk): Handle special case x64
for non local binding.
* config/i386/i386.md (UNSPEC_PCREL): New.
* config/i386/winnt.c (i386_pe_binds_local_p):
Allow weak symbol for x64 windows with non-local binding.
2010-11-05 Jakub Jelinek <jakub@redhat.com>
PR target/45670
* expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
instead of EXPAND_NORMAL for base expansion.
2010-11-05 Uros Bizjak <ubizjak@gmail.com>
* config.gcc: Support --with-fpmath=avx for x86.
* config/i386/avxmath.h: New.
* doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2010-11-05 Ian Lance Taylor <iant@google.com>
* tree.h (struct tree_type): Don't use descbits in GTY annotation.
* gengtype.c (walk_type): Don't recognize descbits option.
2010-11-05 Joseph Myers <joseph@codesourcery.com>
* defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
WORD_SWITCH_TAKES_ARG): Remove.
* doc/options.texi (Args): Document.
* doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
* doc/tm.texi: Regenerate.
* opt-functions.awk (switch_flags): Handle Args.
* opts-common.c: Update comment on tm.h include.
(decode_cmdline_option): Handle options with multiple arguments.
Don't check WORD_SWITCH_TAKES_ARG for unknown options.
* opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
CL_COMMON): Update values.
* system.h (WORD_SWITCH_TAKES_ARG): Poison.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/darwin.opt (Zsegaddr, sectalign, sectcreate,
sectobjectsymbols, sectorder, segcreate, segprot): New.
2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
256bit AVX register is used.
(ix86_expand_vector_move_misalign): Likewise.
(ix86_expand_vector_move): Replace use_avx256_p with
VALID_AVX256_REG_MODE.
2010-11-05 Joern Rennecke <amylaar@spamcop.net>
PR target/44750
* config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
change. Set $@-warn.o to -Wno-error.
PR bootstrap/44756
* expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
comparing it to a signed value.
PR middle-end/44766
* expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
PR bootstrap/44770
* haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
to i.
PR target/44754
* config/m32c/m32c.c (m32_function_arg): Rename declaration to...
(m32c_function_arg). Add comma between arguments two and three.
(m32c_promote_prototypes): Remove declaration.
(current_function_special_page_vector): Likewise.
(m32c_regno_reg_class): Change return type to enum reg_class.
(m32c_pushm_popm): Use add_reg_note.
(m32c_push_rounding): Change return type to unsigned int.
(m32c_legitimize_reload_address): Cast argument 11 to push_reload to
enum reload_type.
(m32c_insert_attributes): Constify variable name.
(m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
(m32c_prepare_shift): Remove variable lref.
(m32c_expand_movcc): Remove variable cmp.
(m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
(m32c_compare_redundant): Remove variable op2.
* config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
(m32c_pragma_memregs): Assign the number to target_memregs.
(m32c_pragma_address): Remove variable var_str.
* config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
enum reg_class.
(LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
* config/m32c/bitops.md (andsi3): Add default case to switch.
(iorsi3, xorsi3): Likewise.
* config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
* config/m32c/jump.md (call, call_value): Likewise.
* config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
(m32c_regno_reg_class): Likewise.
(current_function_special_page_vector): Declare.
2010-11-05 Jakub Jelinek <jakub@redhat.com>
* cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
PR tree-optimization/46099
* tree-parloops.c (take_address_of): Add GSI argument. Return NULL
if it is NULL and uid wasn't found in the hash table. Just fold the
result if it is NULL otherwise. Insert other potentially needed
stmts right before current stmt instead of on the entry edge.
(struct elv_data): Add gsi and reset fields.
(eliminate_local_variables_1): Adjust caller. If take_address_of
failed for debug stmt, set dta->reset and return.
(eliminate_local_variables_stmt): Change STMT argument for GSI,
pass GSI through to the callback, handle resetting of debug stmts.
(eliminate_local_variables): Adjust caller. Process debug stmts
in second phase.
PR middle-end/43690
* gimplify.c (gimplify_asm_expr): If a "m" input is a
{pre,post}{in,de}crement, fail.
PR debug/46307
* tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
* tree-pretty-print.c (dump_generic_node): Likewise.
(op_code_prio): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
2010-11-04 Paul Koning <ni1d@arrl.net>
* doc/md.texi (Machine Constraints): Correct formatting in PDP-11
constraints.
2010-11-04 Chao-ying Fu <fu@mips.com>
* configure.ac: Test assembler support for DSP Rev1 mult.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
* config/mips/mips.c (CODE_FOR_mips_mult): New define.
(CODE_FOR_mips_multu): New define.
(mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
dspr2_32 to dsp_32.
(mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
* config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
New define_expand patterns.
* config/mips/constraints.md (ka): Update the constraint to test
ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
* config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
mips_multu): Delete.
* config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
Change target constraint to "ka".
Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
(!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
Emit the accumulator destination when ISA_HAS_DSP_MULT.
(<u>msubsidi4): Add comments. Test ISA_HAS_DSP.
Emit the accumulator destination when ISA_HAS_DSP_MULT.
(<u>maddsidi4): Likewise.
* doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
2010-11-04 Paul Koning <ni1d@arrl.net>
* doc/md.texi (Machine Constraints): Add PDP-11 constraints.
2010-11-04 Paul Koning <ni1d@arrl.net>
* doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
Fixed using the Objective-C 2.0 dot-syntax with class names.
* c-parser.c (c_parser_next_token_starts_declspecs): In
Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
(c_parser_next_token_starts_declaration): Same.
(c_parser_postfix_expression): Parse the Objective-C 2.0
dot-syntax with a class name.
2010-11-04 Pat Haugen <pthaugen@us.ibm.com>
* final.c (compute_alignments): Compute/free loop info all the time.
* config/rs6000/rs6000.h (LOOP_ALIGN): Define.
* config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
* config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
* config/rs6000/rs6000.c (cfgloop.h): Include.
(can_override_loop_align): New.
(rs6000_option_override_internal): Set it.
(TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
(rs6000_loop_align): New function.
(rs6000_loop_align_max_skip): Likewise.
2010-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR driver/45703
* collect2.c (main): Print --help output to stdout. Do not
exit right away, so ld --help is appended. Add empty lines
to separate output suitably.
2010-11-04 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46233
* ipa-pure-const.c (local_pure_const): Do noreturn discovery
after calling analyze_function, not before.
PR target/46234
* config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
instead of build_va_arg_indirect_ref.
* config/spu/spu.c (spu_va_start): Likewise.
* config/s390/s390.c (s390_va_start): Likewise.
2010-11-03 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/46292
* lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
if the innermode is not vector mode, determine the mode of a subreg
by using mode_for_size of inner_size.
2010-11-04 Richard Guenther <rguenther@suse.de>
PR rtl-optimization/46183
* gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
(execute_rtl_pre): Likewise.
(execute_rtl_hoist): Likewise.
2010-11-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46068
* ipa-split.c (consider_split): Remove gcc_unreachable.
2010-11-04 Richard Guenther <rguenther@suse.de>
* tree-nested.c (build_addr): Use build_fold_addr_expr.
2010-11-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45991
* gimplify.c (force_gimple_operand_1): Use the provded test
function in the initial test.
2010-11-04 Jeff Law <law@redhat.com>
* ira.c (validate_equiv_mem): Remove code to avoid invalidation
of readonly memory equivalances for const/pure calls.
2010-11-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45733
* tree-vect-stmts.c (reverse_vec_elements): Honor the
permute builtins function return type.
2010-11-04 Joern Rennecke <amylaar@spamcop.net>
PR middle-end/44765
* emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
as an index, check it is not INVALID_REGNUM.
PR bootstrap/44756
* ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
unsignedp.
* reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
PR bootstrap/44756
* function.c (thread_prologue_and_epilogue_insns): Add
ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
PR bootstrap/44756
* varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
PR target/44750
* config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
(pdp11_preferred_reload_class): Rename class to rclass.
(pdp11_preferred_output_reload_class): Likewise.
* config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
ALL_COMPILERFLAGS .
(java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
PR bootstrap/44756
* genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
iteration variables to enum machine_mode.
PR target/44751
* config/h8300/h8300.c: Include df.h.
(push, pop): Use add_reg_note.
(compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
(compute_a_shift_cc): Likewise.
(expand_a_shift): Argument code has type enum rtx_code.
(struct shift_insn): Member cc_valid has type enum attr_cc.
(struct shift_info) <cc_inline, cc_special>: Likewise.
enum attr_cc.
* config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
(compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
2010-11-04 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/46213
* tree-vect-loop.c (vect_is_simple_reduction_1): Handle
MINUS_EXPR only if the first operand is reduction operand.
2010-11-04 Richard Guenther <rguenther@suse.de>
Richard Henderson <rth@redhat.com>
* tree.def (FMA_EXPR): New tree code.
* expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
* gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
* tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
* tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
* tree-ssa-math-opts.c (convert_mult_to_fma): New function.
(execute_optimize_widening_mul): Call it. Reorganize to allow
dead stmt removal. Move TODO flags ...
(pass_optimize_widening_mul): ... here.
* flag-types.h (enum fp_contract_mode): New enum.
* common.opt (flag_fp_contract_mode): New variable.
(-ffp-contract): New option.
* opts.c (common_handle_option): Handle it.
* doc/invoke.texi (-ffp-contract): Document.
* tree.h (fold_fma): Declare.
* builtins.c (fold_fma): New function.
(fold_builtin_fma): Likewise.
(fold_builtin_3): Call it for fma.
* fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
* optabs.c (optab_for_tree_code): Handle FMA_EXPR.
* config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
New expanders.
* doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
named patterns.
* genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
* optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
(fms_optab, fnma_optab, fnms_optab): New defines.
* gimplify.c (gimplify_expr): Handle binary truth expressions
explicitly. Handle FMA_EXPR.
* tree-vect-stmts.c (vectorizable_operation): Handle ternary
operations.
2010-11-04 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
Richard Guenther <rguenther@suse.de>
* passes.c (init_optimization_passes): Move veclower after SSA.
* tree-vect-generic.c (uniform_vector_p): New function.
(expand_vector_operations_1): Handle conversion.
(pass_lower_vector): Update SSA form.
2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
* configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
plugin capabilities.
* configure: Regenerate.
2010-11-03 Xinliang David Li <davidxl@google.com>
PR target/46200
* tree-ssa-loop-ivopts.c (get_computation_cost_at):
Adjust cbase if the use stmt is after iv update.
2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
* config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_expand_prologue): Remove unnecessary
comment. Pass true to the last argument of output_stack_adjust.
2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
PR target/46295
* config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
if 256bit AVX register is used.
2010-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
xsmindp/xsmaxdp on VSX for single precision min/max.
* config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
(vsx_sminsf3): Ditto.
2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
* combine.c (try_combine): Fix formatting issues, improve comments and
fix a pasto.
2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
* tree-tailcall.c (find_tail_calls): Convert the operands to the type
of the result before building binary expressions.
2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
PR rtl-optimization/45865
* Makefile.in (df-problems.o): Revert revision 164552.
* basic-block.h (enum bb_flags): Likewise.
* cfgcleanup.c (block_was_dirty): Likewise.
(try_forward_edges): Likewise.
(try_crossjump_bb): Likewise.
(try_head_merge_bb): Likewise.
(try_optimize_cfg): Likewise.
(cleanup_cfg): Likewise.
* df-core.c (df_set_bb_dirty): Likewise.
* df-problems.c: Likewise.
(df_simulate_find_uses): Likewise.
(MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
(find_memory, find_memory_store): Likewise.
(can_move_insns_across): Likewise.
* df.h (can_move_insns_across): Likewise.
* ifcvt.c (find_memory): Likewise.
(dead_or_predicable): Likewise.
2010-11-03 Richard Guenther <rguenther@suse.de>
PR middle-end/46288
* predict.c (strip_predict_hints): Simply DCE builtin expect if
the result is unused.
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46009
* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
cond_if_else_store_replacement if bb1 and bb2 have the same
single successor.
(cond_store_replacement): Use gimple_assign_single_p, don't
check if rhs is SSA_NAME or invariant. Call release_defs for
assign.
(cond_if_else_store_replacement): New function.
2010-11-03 Richard Guenther <rguenther@suse.de>
* opts.c (finish_options): Properly check for all WHOPR
flags before complaining about -flto-partition.
2010-11-04 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
(rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
TARGET_SECURE_PLT.
* config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
* config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
on input, "r" on output.
2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented -fobjc-std=objc1 flag.
* doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
option.
* doc/standards.texi (Standards): Updated the section on
Objective-C; mention support for Objective-C 2.0 features and the
new -fstd-objc=objc1 flag to disable them.
2010-11-03 Richard Guenther <rguenther@suse.de>
PR middle-end/46241
* dwarf2out.c (scope_die_for): Properly detect global scope.
2010-11-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46190
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
Properly compute peel iterations.
2010-11-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46286
* tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
re-allocated vector data.
2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
PR target/46285
* config/i386/i386.c (ix86_expand_call): Conditionally decorate
calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
is completed.
2010-11-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46217
* tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
flag matches.
(execute_update_addresses_taken): Likewise.
2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
PR bootstrap/44335
* targhooks.c (targhook_words_big_endian): New function.
(targhook_float_words_big_endian): Likewise.
* targhooks.h (targhook_words_big_endian): Declare.
(targhook_float_words_big_endian): Likewise.
* target.def (words_big_endian, float_words_big_endian): New hooks.
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46165
* tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
a normal call into noreturn call.
2010-11-03 Richard Guenther <rguenther@suse.de>
PR middle-end/46251
* builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
not INDIRECT_REFs.
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46107
* cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
if cfg_hook_duplicate_loop_to_header_edge failed.
2010-11-03 Ian Lance Taylor <iant@google.com>
PR lto/46273
* config.gcc: Don't set lto_binary_reader.
* doc/install.texi (Prerequisites): Remove libelf paragraphs.
(Configuration): Mention --disable-lto. Remove --with-libelf
paragraph.
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR debug/46252
* reload1.c (delete_dead_insn): Use prev_active_insn instead of
prev_real_insn.
* gcse.c (insert_insn_end_basic_block): Likewise.
PR rtl-optimization/46034
PR rtl-optimization/46212
PR rtl-optimization/46248
* combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
before i0dest -> i0src substitution and pass 1 instead of 0 as last
argument to subst on i2pat.
2010-11-02 Ian Lance Taylor <iant@google.com>
* configure.ac: Use AC_SYS_LARGEFILE.
* configure: Rebuild.
* config.in: Rebuild.
2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
* builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
fold_convert.
* c-typeck.c (build_function_call_vec): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
* cgraphunit.c (assemble_thunk): Likewise.
* config/sparc/sparc.c (sparc_fold_builtin): Likewise.
* fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
(fold_binary_loc, fold_ternary_loc): Likewise.
* gimple-fold.c (get_symbol_constant_value): Likewise.
* gimple-low.c (lower_builtin_setjmp): Likewise.
* gimple.c (gimple_cond_get_ops_from_tree): Likewise.
* gimplify.c (gimplify_init_constructor): Likewise.
* lambda.h (build_linear_expr): Likewise.
* omp-low.c (omp_reduction_init): Likewise.
* tree-inline.c (remap_ssa_name): Likewise.
* tree-object-size.c (compute_object_sizes): Likewise.
* tree-sra.c (init_subtree_with_zero): Likewise.
(sra_ipa_modify_assign): Likewise.
* tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
* tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
(eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
(undistribute_ops_list): Likewise.
* tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
* tree-vect-stmts.c (vectorizable_call): Likewise.
* tree.c (build_vector_from_ctor, build_one_cst): Likewise.
(build_zero_cst): Handle more cases directly. Update comment.
2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
* config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
* config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
and call ix86_split_call_vzeroupper instead of
ix86_split_call_pop_vzeroupper.
(*call_pop_1_vzeroupper): Likewise.
(*sibcall_pop_1_vzeroupper): Likewise.
(*call_value_pop_0_vzeroupper): Likewise.
(*call_value_pop_1_vzeroupper): Likewise.
(*sibcall_value_pop_1_vzeroupper): Likewise.
2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
2010-11-02 Eric Botcazou <ebotcazou@adacore.com>
* basic-block.h (insert_insn_end_bb_new): Delete.
* cfgrtl.c (insert_insn_end_bb_new): Likewise.
2010-11-02 Uros Bizjak <ubizjak@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
(ix86_split_call_pop_vzeroupper): Likewise.
* config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
(ix86_expand_call): Conditionally decorate calls with
UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
(ix86_split_call_vzeroupper): New.
(ix86_split_call_pop_vzeroupper): Likewise.
* config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
(*call_pop_0_vzeroupper): New insn_and_split pattern.
(*call_pop_1_vzeroupper): Likewise.
(*sibcall_pop_1_vzeroupper): Likewise.
(*call_0_vzeroupper): Likewise.
(*call_1_vzeroupper): Likewise.
(*sibcall_1_vzeroupper): Likewise.
(*call_1_rex64_vzeroupper): Likewise.
(*call_1_rex64_ms_sysv_vzeroupper): Likewise.
(*call_1_rex64_large_vzeroupper): Likewise.
(*sibcall_1_rex64_vzeroupper): Likewise.
(*call_value_pop_0_vzeroupper): Likewise.
(*call_value_pop_1_vzeroupper): Likewise.
(*sibcall_value_pop_1_vzeroupper): Likewise.
(*call_value_0_vzeroupper): Likewise.
(*call_value_0_rex64_vzeroupper): Likewise.
(*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
(*call_value_1_vzeroupper): Likewise.
(*sibcall_value_1_vzeroupper): Likewise.
(*call_value_1_rex64_vzeroupper): Likewise.
(*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
(*call_value_1_rex64_large_vzeroupper): Likewise.
(*sibcall_value_1_rex64_vzeroupper): Likewise.
2010-11-02 Ian Lance Taylor <iant@google.com>
PR lto/46273
* config.gcc: Revert last patch: set lto_binary_reader.
2010-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46149
* tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
non-indirect MEM_REF variants.
2010-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46216
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac (*-*-irix6*): Disable set_have_as_tls.
(*-*-osf*): Likewise.
* configure: Regenerate.
2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/driver-i386.c (host_detect_local_cpu): Updated
for Intel Core 2 and Core i7.
2010-11-02 Maxim Kuvyrkov <maxim@codesourcery.com>
Model decoder of Core 2/i7 for multipass scheduling.
* config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
New type to hold target-specific data for multipass scheduling.
(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
* config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
Core 2/i7.
(core2i7_secondary_decoder_max_insn_size,)
(core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
New static variables.
([const_]ix86_first_cycle_multipass_data_t): New typedefs.
([_]ix86_first_cycle_multipass_data): New static variable.
(core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
Implement targetm.sched hooks.
(core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
of ...
(core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
Implement new targetm.sched hooks.
(ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
targetm.sched hook to install multipass scheduling hooks on demand.
* doc/tm.texi.in: Document new targetm.sched hooks.
* doc/tm.texi: Regenerate.
* haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
(first_cycle_multipass_data_t): New typedef.
(struct choice_entry: target_data): New field.
(max_issue): Add first_cycle_insn_p parameter. Call new target hooks
to allow target model restrictions not represented in DFA.
(choose_ready, schedule_block): Update.
(sched_extend_ready_list, sched_finish_ready_list): Call new target
hooks to initialize target-specific data for multipass scheduling.
* sched-int.h (max_issue): Update declaration.
* sel-sched.c (choose_best_insn): Update.
* target.def (first_cycle_multipass_{begin, issue, backtrack},)
(first_cycle_multipass_{init, fini}): Define and document new
targetm.sched hooks.
2010-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46184
* tree-vect-loop.c (vectorizable_reduction): Try to obtain the
input vector type from the reduction operand as well.
2010-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46177
* tree-loop-distribution.c (prop_phis): Use
mark_virtual_phi_result_for_renaming.
2010-11-02 Martin Jambor <mjambor@suse.cz>
PR middle-end/46120
* tree.c (get_binfo_at_offset): Bail out on artificial
fields. Identify primary bases according to their offsets.
2010-11-02 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/45875
* gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
(gimple_get_relevant_ref_binfo): Detect primary bases according to
their field offset.
2010-11-02 Ian Lance Taylor <iant@google.com>
* doc/install.texi (Configuration): Note in two places that Java
is not enabled by default.
2010-11-02 Ian Lance Taylor <iant@google.com>
* doc/install.texi (Prerequisites): Remove libelf paragraphs.
(Configuration): Mention --disable-lto. Remove --with-libelf
paragraph.
2010-11-02 Ian Lance Taylor <iant@google.com>
* configure.ac: Remove elf_getshdrstrndx test. Don't substitute
LTO_BINARY_READER or LTO_USE_LIBELF. Remove LIBELFLIBS and
LIBELFINC. Remove HAVE_libelf.
* config.gcc: Don't set lto_binary_reader.
* Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
(LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
(LIBS): Remove $(LIBELFLIBS).
(INCLUDES): Remove $(LIBELFINC).
* configure: Rebuild.
* config.in: Rebuild.
2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
* config/microblaze/microblaze-protos.h (function_arg): Delete.
(function_arg_advance): Delete.
* config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
(FUNCTION_ARG): Delete.
* config/microblaze/microblaze.c (function_arg_advance): Rename to...
(microblaze_function_arg_advance): ...this. Make static. Take a
const_tree and a bool.
(function-arg): Rename to...
(microblaze_function_arg): ...this. Make static. Take a const_tree
and a bool.
(microblaze_expand_prologue): Call targetm.calls.function_arg and
targetm.calls.function_arg_advance.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
Merge from FSF "apple/trunk" branch.
* config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
* config/darwin.opt: .. to here.
(matt-stubs): New option.
* config/i386/darwin.opt: Delete.
* config/i386/i386.h (MACHOPIC_ATT_STUB): New.
(MACHO_DYNAMIC_NO_PIC_P): New.
(MACHOPIC_INDIRECT): New.
(MACHOPIC_PURE): New.
* config/i386/darwin.h (DARWIN_X86) Define to 1.
(MACHOPIC_ATT_STUB): New.
(CC1_SPEC): Do not remove mdynamic-no-pic.
Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
(FUNCTION_PROFILER): Correct over-length line.
(SUBTARGET_OVERRIDE_OPTIONS): New.
(MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
* config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
(legitimate_constant_p): Handle mdynamic-no-pic.
(ix86_legitimate_address_p): Likewise.
(ix86_legitimize_address): Likewise.
(ix86_expand_move): Likewise.
(machopic_output_stub): Update for ATT-style stubs and
mdynamic-no-pic.
* config/darwin-protos.h (machopic_symbol_defined_p): New.
* config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
TARGET_DYNAMIC_NO_PIC: Remove.
Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
* config/rs6000/rs6000.c (darwin_rs6000_override_options):
Remove handling of mdynamic-no-pic.
* config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
Define if required.
(machopic_symbol_defined_p): Do not try to use current_function_decl
when generating _get_pc thunks within stubs.
(machopic_indirect_data_reference): Rework for direct conditionals
rather than #ifdefs, add x86 mdynamic-no-pic
(machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
defined value.
(darwin_override_options): Handle mdynamic-no-pic here.
* config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
(machopic_lazy_symbol_ptr3_section): New.
(machopic_picsymbol_stub2_section): New.
(machopic_picsymbol_stub3_section): New.
* config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
(MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
(HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
Moved common definition from x86 and rs6000.
(MACHO_DYNAMIC_NO_PIC_P): Override value.
(MACHOPIC_INDIRECT): Likewise.
(MACHOPIC_PURE): Likewise.
* config.gcc (x86-darwin-*): Remove darwin.opt.
2010-11-02 Jakub Jelinek <jakub@redhat.com>
PR debug/46255
* tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
instead of gsi_last_bb.
2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
* config/i386/i386.c (cpu_names): Add "corei7".
* config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
Tune alignment for Intel Core i7
* config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
(enum processor_type): Update comment. Add entries for Core i7.
* config/i386-c.c (ix86_target_macros_internal): Update.
* config/i386.c (m_COREI7{_32,_64}): New macros.
(m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
(processor_target_table): Tune alignment for Core i7.
(ix86_option_override_internal): Use PROCESSOR_COREI7_*.
* doc/invoke.texi: Document "corei7" option value.
2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
H.J. Lu <hjl.tools@gmail.com>
Basic support for Intel Core i7
* i386.c (ix86_option_override_internal): Add entry for corei7, use
generic tuning. Use generic32 when compiling for 32-bit ABI.
2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.c (darwin_asm_named_section): Check for __DWARF
sections and call darwin_asm_dwarf_section() to handle them.
(darwin_asm_dwarf_section): New.
(darwin_file_start): Remove code emitting dwarf section symbols.
2010-11-02 Chung-Lin Tang <cltang@codesourcery.com>
* Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
explicitly disable stack protection when building libgcc.
(CRTSTUFF_CFLAGS): Same, for crtbegin/end.
2010-11-01 Jason Merrill <jason@redhat.com>
* fold-const.c (fold_indirect_ref_1): Handle folding
POINTER_PLUS_EXPR to ARRAY_REF.
2010-11-01 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
(sh_delegitimize_address): New function.
2010-11-01 Joseph Myers <joseph@codesourcery.com>
* config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
(CC1_SPEC): Don't handle -target.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
options.
* config/darwin.opt (Zallowable_client, Zbundle_loader,
Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
Zweak_reference_mismatches, client_name, compatibility_version,
current_version, dylinker_install_name, pagezero_size,
read_only_relocs, seg1addr, segs_read_only_addr,
segs_read_write_addr, sub_library, sub_umbrella): New.
* config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
* config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/freebsd.opt: New.
* config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/rpath.opt: New.
* config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
(alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
Use rpath.opt.
2010-11-01 Joseph Myers <joseph@codesourcery.com>
* common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
* defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
(DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
* doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
(WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
Document that options in .opt files do not need to be included.
* doc/tm.texi: Regenerate.
* gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
* opts-common.c: Update comment on tm.h include.
(decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
* system.h (SWITCH_TAKES_ARG): Poison.
* config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
in darwin.opt.
(LINK_COMMAND_SPEC_A): Don't include %{x}.
* config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
* config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
* config/freebsd.h (SWITCH_TAKES_ARG): Remove.
* config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
* config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
* config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
* config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
* config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
* config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
* config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
* config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
* config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
* config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
* config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
* config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
* config/openbsd.h (SWITCH_TAKES_ARG): Remove.
* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
* config/score/score.h (SWITCH_TAKES_ARG): Remove.
* config/sol2.h (SWITCH_TAKES_ARG): Remove.
* config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
* config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
* config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
* config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2010-11-01 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md: Use iterators.
(addqi3, subqi3, iorsi3, xorsi3): Delete.
2010-11-01 Steve Ellcey <sje@cup.hp.com>
* defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
GCC_INSN_FLAGS_H.
* libgcov.c (__gcov_indirect_call_profiler): Set
VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
PR tree-optimization/46259
Revert:
2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
build_vector_from_val.
2010-11-01 DJ Delorie <dj@redhat.com>
* config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
as well as an assertion.
2010-11-01 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
complex modes in memory.
2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
* tree.c (build_vector_from_val): Use useless_type_conversion_p.
2010-11-01 Jakub Jelinek <jakub@redhat.com>
PR target/45250
* var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
(cfa_base_offset): New variable.
(compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
(adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
is NULL.
(vt_init_cfa_base): Initialize cfa_base_offset.
2010-11-01 Alan Modra <amodra@gmail.com>
PR target/46030
* config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
and savres_strategy.
(stack_info): New file scope var.
(rs6000_init_machine_status): Init stack_info.
(SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
(SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this. Update all refs.
(rs6000_savres_strategy): Rewrite.
(rs6000_stack_info): Use "stack_info" in place of local "info".
Return cached stack info when reload_completed unless ENABLE_CHECKING
in which case confirm newly calculated stack info matches old info.
Delay calculation of lr_save_p, set it for out of line gp save/restore
as well as fp. Call rs6000_savres_strategy from here..
(rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
(rs6000_output_function_prologue): Use info->savres_strategy to
determine whether fp save/restore externs need to be emitted.
2010-10-31 Jason Merrill <jason@redhat.com>
* tree.h (EXPR_LOC_OR_HERE): New macro.
* builtins.c (c_strlen): Use it.
* c-decl.c (build_enumerator): Likewise.
* gimplify.c (internal_get_tmp_var): Likewise.
(shortcut_cond_expr): Likewise.
(gimplify_one_sizepos): Likewise.
2010-10-31 Richard Henderson <rth@redhat.com>
* config/i386/cygming.h (TARGET_SEH): New.
(MAX_STACK_ALIGNMENT): New. Disable alignment for SEH.
(TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
(TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
(ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
(ASM_DECLARE_FUNCTION_SIZE): New.
* config/i386/i386-protos.h: Update.
* config/i386/i386.c (ix86_option_override_internal): Enable
flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
(ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
(ix86_compute_frame_layout): For SEH, disable
use_fast_prologue_epilogue, move frame pointer to the end of
the frame. Initialize hfp_save_offset.
(ix86_expand_prologue): Honor hfp_save_offset. Emit blockage
at end of prologue for SEH.
(ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
emit blockage at beginning of epilogue.
(ix86_expand_binary_operator): After reload, emit LEA if needed.
(ix86_output_call_insn): New.
* config/i386/i386.h (TARGET_SEH): New.
(struct machine_function): Add member seh.
* config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
* config/i386/winnt.c (struct seh_frame_state): New.
(i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
i386_pe_start_function, i386_pe_end_function): New.
* dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
as CFA_STORE in rules 12 and 13.
2010-10-31 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/46142
* tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
accommodate third function argument.
2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
* tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
* fold-const.c (build_zero_vector): Use build_vector_from_val.
* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
(get_initial_def_for_reduction): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
* tree.c (build_one_cst): Likewise.
(build_vector_from_val): Use types_compatible_p for assert.
2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
* emit-rtl.c (mark_used_flags): New function.
(set_used_flags, reset_used_flags): Call it.
2010-10-30 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/44569
* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
2010-10-30 H.J. Lu <hongjiu.lu@intel.com>
PR target/46195
* config/i386/i386.c (contains_aligned_value_p): Renamed to ...
(ix86_compat_aligned_value_p): This.
(ix86_old_function_arg_boundary): Renamed to ...
(ix86_compat_function_arg_boundary): This. Updated.
(ix86_contains_aligned_value_p): New.
(ix86_function_arg_boundary): Align long double parameters on
stack to 4byte in 32bit.
2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* c-parser.c (c_parser_objc_at_property_declaration): Removed
parsing of RID_COPIES and RID_IVAR. Updated call to
objc_add_property_declaration.
* c-typecheck.c (build_component_ref): Call
objc_maybe_build_component_ref instead of objc_build_setter_call.
Use objc_is_property_ref to improve Objective-C checks.
(cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
of objc_build_getter_call.
2010-10-29 Paul Koning <ni1d@arrl.net>
* doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
(REG_OK_STRICT): Move description.
2010-10-29 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
2010-10-29 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
2010-10-29 Paul Koning <ni1d@arrl.net>
PR/41822
* config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
2010-10-29 Richard Henderson <rth@redhat.com>
PR rtl-opt/46226
* stmt.c (expand_asm_operands): Call do_pending_stack_adjust
for asm goto.
2010-10-29 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
register to register move.
2010-10-29 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (print_operand_address): Correct handling
of integer constant addresses, delete vax-only logic.
2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (picochip_is_short_branch): Simplify
a conditional expression.
2010-10-29 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
instruction encoding.
2010-10-29 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
Andrew Pinski <pinskia@gmail.com>
* tree.h (build_vector_from_val): Declare.
* tree.c (build_vector_from_val): New function.
* c-typeck.c (build_binary_op): Handle vector shifting.
* doc/extend.texi: Description of the vector shifting operation.
2010-10-29 Paul Koning <pkoning@equallogic.com>
* config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
pdp11_secondary_memory_needed): Declare.
* config/pdp11/predicates.md (float_operand): New predicate.
* config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
(cbranchdf4, movdf): Change predicate.
(movsf): Handle FPU register case.
(truncdfsf2, extendsfdf2): Add FPU register case.
* config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
(pdp11_register_move_cost): Update cost matrix.
(pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
pdp11_preferred_output_reload_class, pdp11_secondary_reload,
pdp11_secondary_memory_needed): New function.
(pdp11_return_in_memory): Add other float types.
* config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
(SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
(PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
REGISTER_MOVE_COST): Delete.
(BASE_RETURN_VALUE_REG): Add other float types.
2010-10-29 Nick Clifton <nickc@redhat.com>
* doc/invoke.texi: Document -mam34 and -mtune options.
* config/mn10300/mn10300.c (mn10300_tune_string): New variable.
(mn10300_tune_cpu): New variable.
(mn10300_handle_option): Handle -mam34 and -mtune options.
(mn10300_option_override): Convert tune string into tune cpu variable.
(mn10300_legitimate_constant_p): Delete unused local variable.
(is_load_insn): New function.
(is_store_insn): New function.
(mn10300_adjust_schedule_cost): New function.
(TARGET_SCHED_ADJUST_COST): Define.
* config/mn10300/mn10300.opt (mam34): New option.
(mtune): New option.
* config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
(enum processor_type): Add AM34.
(TARGET_AM34): Define.
* config/mn10300/mn10300.md (attr cpu): Add am34.
Add pipeline description.
(movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
Remove unneeded alternatives. Add timing attribute.
(pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
float_conditional_branch, jump, indirect_jump, tablejump,
call_internal, call_value_internal, zero_extendqisi2_am33,
zero_extendqisi2_mn10300, zero_extendhisi2_am33,
zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
return_internal_regs, store_movm, return, call_next_insn):
Add timing attribute.
(am33_subsi3): Add missing clobber of CC_REG.
(am33_andsi3, mn10300_andsi3): Fix compile time warnings.
(udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
extendqisi2): Fix predicates.
(call_internal, call_internal_value): Separate alternatives.
* config/mn10300/t-mn10300: Add AM34 multilib.
2010-10-29 Paolo Bonzini <bonzini@gnu.org>
* config/sh/sh.c (sh_promote_function_mode): Use
default_promote_function_mode if !sh_promote_prototypes.
2010-10-28 Paolo Bonzini <bonzini@gnu.org>
* recog.c (split_all_insns): Remove dead code.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
functions.
(cris_function_incoming_arg, cris_function_arg_advance): New functions.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/lm32/lm32-protos.h (lm32_function_arg): Delete.
* config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
Take a const_tree and a bool.
(mcore_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/mcore/mcore-protos.h (mcore_function_arg): Delete.
* config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
Take a const_tree and a bool.
(mcore_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/h8300/h8300-protos.h (function_arg): Delete.
* config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/h8300/h8300.c (function_arg): Rename to...
(h8300_function_arg): ...this. Make static. Take a const_tree and
a bool.
(h8300_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
to...
* config/arc/arc.c (arc_function_arg): ...here and...
(arc_function_arg_advance): ...here. New functions.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/crx/crx-protos.h (crx_function_arg): Delete.
(crx_function_arg_advance): Delete.
* config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/crx/crx.c (crx_function_arg): Make static. Take a
const_tree and a bool.
(crx_function_arg_advance): Make static. Take a const_tree and a bool.
(enough_regs_for_param): Take a const_tree.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
(m68hc11_function_arg_advance): Delete.
* config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
Take a const_tree and a bool.
(m68hc11_function_arg_advance): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
(xstormy16_function_arg_advance): Delete.
* config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
Take a const_tree and a bool.
(xstormy16_function_arg_advance): Likewise. Return void, updating
the CUM parameter instead.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/moxie/moxie-protos.h (moxie_function_arg): Delete.
* config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
(MOXIE_FUNCTION_ARG_SIZE): Move to...
* config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
(moxie_function_arg): Make static. Take a const_tree and a bool.
(moxie_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/mn10300/mn10300-protos.h (function_arg): Delete.
* config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/mn10300/mn10300.c (function_arg): Rename to...
(mn10300_function_arg): ...this. Make static. Take a const_tree
and a bool.
(mn10300_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/iq2000/iq2000-protos.h (function_arg): Delete.
(function_arg_advance): Delete.
* config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/iq2000/iq2000.c (function_arg): Rename to...
(iq2000_function_arg): ...this. Make static. Take a const_tree and
a bool.
(function_arg_advance): Rename to...
(iq2000_function_arg_advance): ...this. Make static. Take a
const_tree and a bool.
(iq2000_expand_prologue): Call iq2000_function_arg_advance and
iq2000_function_arg.
(iq2000_pass_by_reference): Call iq2000_function_arg).
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
* config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/fr30/fr30.c (fr30_num_arg_regs): Make static. Take a
const_tree.
(fr30_function_arg): New function.
(fr30_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
* config/frv/frv-protos.h (frv_function_arg): Delete.
(frv_function_arg_advance): Delete.
* config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/frv/frv.c (frv_function_arg): Rename to...
(frv_function_arg_1): Make static. Take const_tree and bool arguments.
(frv_function_arg, frv_function_incoming_arg): New functions.
(frv_function_arg_advance): Make static. Take a const_tree and a bool.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-28 Uros Bizjak <ubizjak@gmail.com>
PR target/46153
* config/i386/sse.md (sse_movhlps_exp): Use destination
returned from ix86_fixup_binary_operands to expand insn.
(sse_movlhps_exp): Ditto.
(sse_loadhps_exp): Ditto.
(sse_loadlps_exp): Ditto.
(sse2_loadhpd_exp): Ditto.
(sse2_loadlpd_exp): Ditto.
2010-10-28 Andrew Stubbs <ams@codesourcery.com>
* config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
constants in thumb2.
2010-10-28 Eric Botcazou <ebotcazou@adacore.com>
* combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
arithmetics in masking operations.
(contains_muldiv): Likewise.
(try_combine): Likewise.
(find_split_point): Likewise.
(combine_simplify_rtx): Likewise.
(simplify_if_then_else): Likewise.
(simplify_set): Likewise.
(expand_compound_operation): Likewise.
(expand_field_assignment): Likewise.
(make_extraction): Likewise.
(extract_left_shift): Likewise.
(make_compound_operation): Likewise.
(force_to_mode): Likewise.
(make_field_assignment): Likewise.
(reg_nonzero_bits_for_combine): Likewise.
(simplify_shift_const_1): Likewise.
(simplify_comparison): Likewise.
2010-10-27 Nathan Froyd <froydnj@codesourcery.com>
* config/ia64/ia64-protos.h (ia64_function_arg): Delete.
(ia64_function_arg_advance): Delete.
* config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/ia64/ia64.c (ia64_function_arg): Rename to...
(ia64_function_arg_1): ...this. Make static. Take const_tree and
bool arguments.
(ia64_function_arg, ia64_function_incoming_arg): New functions.
(ia64_function_arg_advance): Make static. Take a const_tree and
a bool.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-27 Steve Ellcey <sje@cup.hp.com>
* doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
(TARGET_GET_RAW_ARG_MODE): New.
* doc/tm.texi: Regenerate.
* target.def (get_raw_result_mode): New.
(get_raw_arg_mode): New.
* targhooks.c (default_get_reg_raw_mode): New.
* targhooks.h (default_get_reg_raw_mode): New.
* builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
(apply_result_size): Ditto.
* config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
(TARGET_GET_RAW_RESULT_MODE): Define.
(TARGET_GET_RAW_ARG_MODE): Ditto.
2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
for newer Solaris 10 release.
(sparc_fallback_frame_state): Likewise.
2010-10-27 Jason Merrill <jason@redhat.com>
* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
variables sooner.
2010-10-27 Jie Zhang <jie@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
* haifa-sched.c (ISSUE_POINTS): Remove.
(max_issue): Don't issue more than issue_rate instructions.
2010-10-27 Ian Lance Taylor <iant@google.com>
PR target/46197
* config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
(split_stack_return): Replace UNSPEC_STACK_CHECK with
UNSPECV_SPLIT_STACK_RETURN.
2010-10-27 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-protos.h (init_cumulative_args): Add an int.
* config/i386/i386.c (block_info): New.
(BLOCK_INFO): Likewise.
(call_avx256_state): Likewise.
(check_avx256_stores): Likewise.
(move_or_delete_vzeroupper_2): Likewise.
(move_or_delete_vzeroupper_1): Likewise.
(move_or_delete_vzeroupper): Likewise.
(use_avx256_p): Likewise.
(function_pass_avx256_p): Likewise.
(flag_opts): Add -mvzeroupper.
(ix86_option_override_internal): Turn on MASK_VZEROUPPER by
default for TARGET_AVX. Turn off MASK_VZEROUPPER if TARGET_AVX
is disabled.
(ix86_function_ok_for_sibcall): Disable sibcall if we need to
generate vzeroupper.
(init_cumulative_args): Add an int to indicate caller. Set
use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
based on return type.
(ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
caller_pass_avx256_p based on argument type.
(ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
is used, but not returned by caller.
(ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
(ix86_local_alignment): Set use_avx256_p if 256bit AVX register
is used.
(ix86_minimum_alignment): Likewise.
(ix86_expand_special_args_builtin): Set target to
GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
(ix86_reorg): Run the vzeroupper optimization if needed.
* config/i386/i386.h (ix86_args): Add caller.
(INIT_CUMULATIVE_ARGS): Updated.
(machine_function): Add use_vzeroupper_p, use_avx256_p,
caller_pass_avx256_p, caller_return_avx256_p,
callee_pass_avx256_p and callee_return_avx256_p.
* config/i386/i386.opt (-mvzeroupper): New.
* config/i386/predicates.md (vzeroupper_operation): Removed.
* config/i386/sse.md (avx_vzeroupper): Removed.
(*avx_vzeroupper): Removed.
(avx_vzeroupper): New.
* doc/invoke.texi: Document -mvzeroupper.
2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
* config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
* config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
* config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
Olivier Hainque <hainque@adacore.com>
* config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
of EBP. Do not restore reg #9. Remove +1 adjustment to EIP and set
fs->signal_frame instead.
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (cp_parser_objc_at_property_declaration): Removed
parsing of RID_COPIES and RID_IVAR.
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_at_property_declaration): Recognize
RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
Do not use objc_set_property_attr, but use local variables
instead. Detect repeated usage of setter, getter and ivar
attributes. Improved error processing when a setter name does not
end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
that the token is a keyword. Updated call to
objc_add_property_declaration.
2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_at_property): Renamed to
c_parser_objc_at_property_declaration. Updated calls to
objc_add_property_variable, now objc_add_property_declaration.
Code rewritten to be much more robust in recovering from syntax
errors. Added comments.
(c_parser_objc_property_attrlist): Removed.
(c_parser_external_declaration): Updated calls to
c_parser_objc_at_property, now
c_parser_objc_at_property_declaration.
(c_parser_objc_methodprotolist): Same change.
2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md (split_stack_return): Put back unspec_volatile.
2010-10-26 Jan Hubicka <jh@suse.cz>
* ipa.c (process_references): Enqueue all referenced nodes;
mark as reachable only non-external nodes.
(cgraph_remove_unreachable_nodes): All referenced nodes should
be enqueued; remove bogues node->needed check.
2010-10-26 Jan Hubicka <jh@suse.cz>
* cgraphbuild.c (build_cgraph_edges): Use ipa-reference
to represent OMP.
2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md (split_stack_return): Replace
unspec_volatile with unspec.
2010-10-26 Jonathan Wakely <jwakely.gcc@gmail.com>
* doc/install.texi: Fix typo in --with-sysroot description.
2010-10-26 Jan Hubicka <jh@suse.cz>
* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
Use info provided by linker plugin.
2010-10-26 Jason Merrill <jason@redhat.com>
* varasm.c (constructor_static_from_elts_p): Don't require a
CONSTRUCTOR to have elements to be suitable for static
initialization. Allow ARRAY_TYPE as well.
2010-10-26 Jan Hubicka <jh@suse.cz>
PR middle-end/45736
* cgraph.c (cgraph_set_readonly_flag): Rename to...
(cgraph_set_const_flags) ... this one; get also looping argument;
clear constructor/destructor flags.
(cgraph_set_pure_flag): Likewise.
(cgraph_set_looping_const_or_pure_flag): Remove.
(cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
to optimize away static ctors/dtors; it does not work on inline clones;
external functions can always be rmeoved.
(cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
inline clones; in LTO external functions always can go.
(cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
(cgraph_mark_address_taken_node): Assert that we are not taking
address of inline clone.
(cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
external functions.
* ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
address taken.
(ipcp_initialize_node_lattices): Only local functions can be
handled without cloning.
* cgraph.h (cgraph_set_readonly_flag,
cgraph_set_looping_const_or_pure_flag): Remove.
(cgraph_set_const_flag): Declare.
(cgraph_set_pure_flag): Update.
* ipa-pure-const (propagate_pure_const, local_pure_const): Update
flags setting code.
* ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
look at inline clones; fix handling of external definitions.
(cgraph_postorder): Do not look at inline clones in the first pass.
(function_and_variable_visibility): Drop constructors/destructor
flags at pure and const functions.
* tree-profile.c (tree_profiling): Update.
* ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
address taken; external functions do not account to whole program size.
(cgraph_decide_inlining): Likewise; do not try to inline
functions already inlined.
2010-10-26 Jie Zhang <jie@codesourcery.com>
* doc/invoke.texi: Improve documentation of
-fstrict-volatile-bitfields.
2010-10-26 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/46167
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
is basic block for the statement.
2010-10-26 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
current definition of struct_real_format.
2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
PR target/44948
* config/i386/i386.c (ix86_old_function_arg_boundary): New.
(ix86_function_arg_boundary): Always align parameters on stack
in 64bit and align parameters with alignment >= 16byte on stack
in 32bit. Warn alignment change.
2010-10-26 Ian Lance Taylor <iant@google.com>
PR middle-end/45687
* ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
offset.
2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
Implement opaque-enum-specifiesr for C++0x
* tree.h (ENUM_IS_OPAQUE): New.
* dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
2010-10-26 Jie Zhang <jie@codesourcery.com>
* stor-layout.c (layout_decl): Use the field's type to
determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
* config/arm/arm.c (arm_override_options): Default to
-fstrict-volatile-bitfields.
2010-10-25 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md: Add define_constants for register
numbers, branch offset limits.
* config/pdp11/pdp11.c: Use named constants instead of numbers.
* config/pdp11.pdp11.h: Ditto.
2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
* configure.ac: Use $cpu_type instead of $target to define the nop.
* configure: Regenerate.
2010-10-25 Jie Zhang <jie@codesourcery.com>
* combine.c (try_combine): If insns need to be kept around, check that
they can be copied in the merged instruction.
2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
* reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
has been modified.
(convert_regs_2): Likewise. Adjust calls to convert_regs_1.
(convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
it has been modified.
2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
2010-10-24 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md: Change length attribute to be in bytes.
* config/pdp11/pdp11.c (output_jump): Ditto.
2010-10-24 Ian Lance Taylor <iant@google.com>
* config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
* cfglayout.c (fixup_reorder_chain): When ensuring that there is at
least one insn with a locus corresponding to an edge's goto_locus,
disregard non-fallthru edges to the exit block and merge the blocks
created for the same goto_locus.
2010-10-23 Joseph Myers <joseph@codesourcery.com>
* gcc.c (n_switches_alloc_debug_check): New.
(set_option_handlers): New.
(process_command): Use set_option_handlers.
(do_self_spec): Pass spec-generated options through option handlers.
(main): Also save and restore n_switches_alloc when swapping
switch arrays.
2010-10-23 Richard Henderson <rth@redhat.com>
PR target/46144
* config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
(*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
Honor matching operands when splitting to XOR.
2010-10-23 Ian Lance Taylor <iant@google.com>
* tree-vrp.c (extract_range_from_binary_expr): If
flag_non_call_exceptions don't eliminate division by zero.
* simplify-rtx.c (simplify_binary_operation_1): Likewise.
2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
__ORDER_PDP_ENDIAN__.
* libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
(struct DWstruct): Define based on __BYTE_ORDER__.
* config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
(struct INTstruct): Define based on __BYTE_ORDER__.
* config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
(LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
* system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
* config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
* doc/tm.texi: Regenerate.
* doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
(__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
2010-10-23 Jie Zhang <jie@codesourcery.com>
PR rtl-optimization/37360
* config/mips/mips.c (cached_can_issue_more): New local variable.
(mips_sched_reorder_1): New.
(mips_sched_reorder): Use mips_sched_reorder_1.
(mips_sched_reorder2): New.
(mips_variable_issue): Set cached_can_issue_more.
(TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
instead of mips_sched_reorder.
Revert:
2008-09-09 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/37360
* haifa-sched.c (max_issue): Do not assert that we never issue more
insns than issue_rate. Add comment.
2010-10-22 Eric Botcazou <ebotcazou@adacore.com>
* gimplify.c (gimplify_variable_sized_compare): Preserve the source
location info of the expression.
2010-10-22 DJ Delorie <dj@redhat.com>
* doc/extend.texi (Named Address Spaces): Document the M32C named
address space.
* config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
__far address space.
* config/m32c/m32c.h (ADDR_SPACE_FAR): New. Add support for
"__far" address space for R8C and M16C processor variants.
* config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
(far_addr_space_p): New.
(encode_pattern_1): Add sign and zero extend support.
(m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
(m32c_extra_constraint_p2): Add SF constraint.
(m32c_legitimate_address_p): Support __far addresses.
(m32c_addr_space_pointer_mode): New.
(m32c_addr_space_address_mode): New.
(m32c_addr_space_legitimate_address_p): New.
(m32c_addr_space_legitimize_address): New.
(m32c_addr_space_subset_p): New.
(m32c_addr_space_convert): New.
(conversions): Add __far operand patterns.
(m32c_prepare_move): Force constants into registers for __far moves.
(m32c_split_move): __far moves are always split.
* config/m32c/addsub.md (addsi3_1): Support SImode symbols.
* config/m32c/mov.md (mov<mode>_far_op1): New.
(mov<mode>_far_op2): New.
(movqi_op): Add __far (SF) support.
(movhi_op): Likewise.
(movsi_splittable): Split A1A0 also.
2010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
Andrew Pinski <pinskia@gmail.com>
* c-typeck.c (build_array_ref): Handle subscripting of vectors.
* doc/extend.texi: New paragraph
2010-10-22 Paul Koning <ni1d@arrl.net>
* config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
2010-10-22 DJ Delorie <dj@redhat.com>
* config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
2010-10-22 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
2010-10-22 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_builtin_vectorized_function): Add
cases for __builtin_fma and __builtin_fmaf.
2010-10-22 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
NEG+USE for vectors as well.
* config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
and splitter.
2010-10-22 Joseph Myers <joseph@codesourcery.com>
* gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
SWITCH_CURTAILS_COMPILATION): Remove.
* doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
* doc/tm.texi: Regenerate.
* system.h (SWITCH_CURTAILS_COMPILATION): Poison.
2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
* config/i386/bdver1.md: New file.
* config/i386/i386.md (include "bdver1.md"): Invoke the
pipeline description for bdver1.
(x86_sahf_1): Add "bdver1_decode" attribute.
(*cmpfp_i_mixed): Likewise.
(*cmpfp_i_sse): Likewise.
(*cmpfp_i_i387): Likewise.
(*cmpfp_iu_mixed): Likewise.
(*cmpfp_iu_sse): Likewise.
(*cmpfp_iu_387): Likewise.
(*swap<mode>,*swap<mode>_1): Likewise.
(fixuns_trunc<mode>hi2): Likewise.
(fix_trunc<mode>si_sse): Likewise.
(x86_fnstcw_1): Likewise.
(x86_fldcw_1): Likewise.
(*floatsi<mode>2_vector_mixed_with_temp): Likewise.
(*floatsi<mode>2_vector_mixed): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
(*floatsi<mode>2_vector_sse_with_temp): Likewise.
(*floatsi<mode>2_vector_sse): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
(*mul<mode>3_1): Likewise.
(*mulsi3_1_zext): Likewise.
(*mulhi3_1): Likewise.
(*mulqi3_1): Likewise.
(*<u>mul<mode><dwi>3_1): Likewise.
(*<u>mulqihi3_1): Likewise.
(*<s>muldi3_highpart_1): Likewise.
(*<s>mulsi3_highpart_1): Likewise.
(*<s>mulsi3_highpart_zext): Likewise.
(x86_64_shld): Likewise.
(x86_shld): Likewise.
(x86_64_shrd): Likewise.
(x86_shrd): Likewise.
(sqrtxf2): Likewise.
(sqrt_extend<mode>xf2_i387): Likewise.
(*sqrt<mode>2_sse): Likewise.
* config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
(sse_cvtsi2ssq): Likewise.
(sse_cvtss2si): Likewise.
(sse_cvtss2si_2): Likewise.
(sse_cvtss2siq): Likewise.
(sse_cvtss2siq_2): Likewise.
(sse_cvttss2si): Likewise.
(sse_cvttss2siq): Likewise.
(sse2_cvtpi2pd): Likewise.
(sse2_cvttpd2pi): Likewise.
(sse2_cvtsi2sd): Likewise.
(sse2_cvtsi2sdq): Likewise.
(sse2_cvtsd2si): Likewise.
(sse2_cvtsd2si_2): Likewise.
(sse2_cvtsd2siq): Likewise.
(sse2_cvtsd2siq_2): Likewise.
(sse2_cvttsd2si): Likewise.
(sse2_cvttsd2siq): Likewise.
(*sse2_cvtpd2dq): Likewise.
(*sse2_cvttpd2dq): Likewise.
(sse2_cvtsd2ss): Likewise.
(sse2_cvtss2sd): Likewise.
(*sse2_cvtpd2ps): Likewise.
(sse2_cvtps2pd): Likewise.
2010-10-22 Richard Guenther <rguenther@suse.de>
PR middle-end/46137
* gimple-fold.c (gimplify_and_update_call_from_tree): Properly
remove the virtual operands if they are not needed.
2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
* config/i386/i386.c (processor_costs bdver1_cost): Update
insn costs and architectural parameters for bdver1.
2010-10-22 Richard Guenther <rguenther@suse.de>
* gimple.h (gimple_register_canonical_type): Declare.
* gimple.c (gimple_canonical_types): New global hashtable.
(struct gimple_type_leader_entry_s): New type.
(gimple_type_leader): New global cache.
(gimple_lookup_type_leader): New function.
(gtc_visit): Query the proper cache.
(gimple_types_compatible_p): Likewise.
(gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
(gimple_canonical_type_eq): New function.
(gimple_register_canonical_type): Likewise.
(print_gimple_types_stats): Adjust for gimple_canonical_types.
(free_gimple_type_tables): Likewise. Free gimple_type_leader.
* tree-ssa.c (useless_type_conversion_p): Do not dispatch to
gimple_types_compatible_p for LTO.
2010-10-22 Uros Bizjak <ubizjak@gmail.com>
PR target/46098
* config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
(avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
(*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
(<sse>_movu<ssemodesuffix>): New expander.
(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
(avx_movdqu<avxmodesuffix>): New expander.
(*sse2_movdqu): Rename from sse2_movdqu.
(sse2_movdqu): New expander.
2010-10-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45720
* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
Handle negative step.
(vect_enhance_data_refs_alignment): Likewise.
* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
(vect_create_cond_for_align_checks): Likewise.
(vect_create_cond_for_alias_checks): Likewise.
2010-10-22 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/46126
* tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
vectorizable_shift in case of basic block vectorization.
2010-10-22 Joseph Myers <joseph@codesourcery.com>
* target.h (enum opt_levels, struct default_options): New.
* target.def (handle_ofast): Remove hook.
(target_option.optimization): Change to
target_option.optimization_table.
* doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
(CAN_DEBUG_WITHOUT_FP): Remove.
* doc/tm.texi: Regenerate.
* opts.c (maybe_default_option, maybe_default_options,
default_options_table): New.
(default_options_optimization): Take extra parameters. Don't
assert that global_options and global_options_set are in use. Use
maybe_default_options.
(decode_options): Pass extra parameters to
default_options_optimization.
* common.opt (falign-loops): Use value 0 with Var.
(frerun-cse-after-loop, ftree-ter): Remove Init.
* system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
TARGET_OPTION_OPTIMIZATION): Remove.
* targhooks.c (empty_optimization_table): New.
* targhooks.h (empty_optimization_table): Declare.
* toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
* config/alpha/alpha.c (alpha_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/arm/arm.c (arm_option_optimization: Change to
arm_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/avr/avr.c (avr_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/cris/cris.c (cris_option_optimization): Change to
cris_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/crx/crx.c (crx_option_optimization): Change to
crx_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/fr30/fr30.c (fr30_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/frv/frv.c (frv_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/h8300/h8300.c (h8300_option_optimization): Change to
h8300_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/i386/i386.c (ix86_option_optimization): Change to
ix86_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
as initializer.
* config/ia64/ia64.c (ia64_option_optimization): Change to
ia64_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
initializer.
* config/iq2000/iq2000.c (iq2000_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/lm32/lm32.c (lm32_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/m32r/m32r.c (m32r_option_optimization): Change to
m32r_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
CAN_DEBUG_WITHOUT_FP): Remove.
* config/mcore/mcore.c (mcore_option_optimization): Change to
mcore_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/mep/mep.c (mep_option_optimization): Change to
mep_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/microblaze/microblaze.c
(microblaze_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/mips/mips.c (mips_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/mmix/mmix.c (mmix_option_optimization): Change to
mmix_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/mn10300/mn10300.c (mn10300_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/pa/pa.c (pa_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/pdp11/pdp11.c (pdp11_option_optimization): Change to
pdp11_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/picochip/picochip.c (picochip_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/rs6000/rs6000.c (rs6000_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/rx/rx.c (rx_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/s390/s390.c (s390_option_optimization): Change to
s390_option_optimization_table.
(s390_option_override): Update comment.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/score/score.c (score_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/sh/sh.c (sh_option_optimization): Change to
sh_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
(sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
(sh_option_override, expand_block_move, multcosts, find_barrier,
barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
* config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
(LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
instead of TARGET_SMALLCODE.
* config/sh/sh.opt (mspace): Make into an alias for -Os.
* config/sparc/sparc.c (sparc_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
TARGET_OPTION_OPTIMIZATION_TABLE): New.
* config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/v850/v850.c (v850_option_optimization): Change to
v850_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
* config/xtensa/xtensa.c (xtensa_option_optimization): Change to
xtensa_option_optimization_table.
(TARGET_OPTION_OPTIMIZATION): Change to
TARGET_OPTION_OPTIMIZATION_TABLE.
* config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
2010-10-21 Iain Sandoe <iains@gcc.gnu.org>
Based on the CFString implementation in FSF apple/trunk branch.
* target.def (objc_construct_string): New Hook.
* doc/tm.texi (objc_construct_string): Document.
* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
* config/t-darwin: Amend build rules for darwin.o.
* config/darwin.opt: Add cfstrings flags.
* config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
(darwin_objc_construct_string): New.
* config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
* config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
* config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
(darwin_fold_builtin): Likewise.
(darwin_build_constant_cfstring): Likewise.
(darwin_objc_construct_string): Likewise.
(darwin_cfstring_p): Likewise.
(darwin_enter_string_into_cfstring_table): Likewise.
* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
* config/darwin.c (darwin_running_cxx): New var.
(machopic_select_section): Return cfstring_constant_object_section.
(darwin_override_options): Set darwin_running_cxx.
(add_builtin_field_decl): New.
(darwin_init_cfstring_builtins): New.
(darwin_build_constant_cfstring): New.
(darwin_fold_builtin): New.
(cfstring_hash): New.
(cfstring_eq): New.
(darwin_enter_string_into_cfstring_table): New.
* config/darwin-sections.def (cfstring_constant_object_section): New.
* config/darwin.h (TARGET_FOLD_BUILTIN): Define.
(TARGET_OBJC_CONSTRUCT_STRING): Define.
2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
* config/alpha/alpha.c (alpha_build_builtin_va_list): Use
TYPE_STUB_DECL instead of TREE_CHAIN.
* config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
* config/s390/s390.c (s390_build_builtin_va_list): Likewise.
* config/sh/sh.c (sh_build_builtin_va_list): Likewise.
* config/spu/spu.c (spu_build_builtin_va_list): Likewise.
* config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
Likewise.
* config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
2010-10-22 Jie Zhang <jie@codesourcery.com>
* expr.c (emit_group_load_1): Update calls to extract_bit_field.
(copy_blkmode_from_reg): Likewise.
(read_complex_part): Likewise.
(expand_expr_real_1): Calculate packedp and pass it to
extract_bit_field.
* expr.h (extract_bit_field): Update declaration.
* calls.c (store_unaligned_arguments_into_pseudos): Update call
to extract_bit_field.
* expmed.c (extract_fixed_bit_field): Update calls to
extract_fixed_bit_field.
(store_split_bit_field): Likewise.
(extract_bit_field_1): Add new argument packedp.
(extract_bit_field): Add new argument packedp.
(extract_fixed_bit_field): Add new argument packedp and let
packed attribute override volatile.
* stmt.c (expand_return): Update call to extract_bit_field.
2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
* config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
* ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
of gcc_checking_assert.
* sel-sched.c (code_motion_process_successors): Likewise.
2010-10-21 Eric Botcazou <ebotcazou@adacore.com>
* cfgcleanup.c (try_forward_edges): Do not throw away previous steps
when stopping because of a different locus on edge or insn.
(try_optimize_cfg): Add comment.
* cfgrtl.c (rtl_merge_blocks): Tweak log message. If the destination
block is a forwarder block, propagate locus on the edge.
(cfg_layout_merge_blocks): Likewise.
2010-10-21 Uros Bizjak <ubizjak@gmail.com>
PR target/45946
* config/i386/i386.md (*pushti2): New insn pattern.
(pushti2 splitter): New insn splitter.
(*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
DWI mode iterator.
2010-10-21 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11-protos.md (arith_operand,
const_immediate_operand, expand_shift_operand,
immediate15_operand): Delete
* config/pdp11/pdp11.c: Ditto.
* config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
EXTRA_CONSTRAINT): Delete.
* config/pdp11/pdp11.md (various): Use standard constraints
instead of removed ones.
* config/pdp11/constraints.md: New file.
* config/pdp11/predicates.md: New file.
2010-10-21 Bingfeng Mei <bmei@broadcom.com>
PR c/45834
* alias.c (true_dependence_1): Remove obsolete check for QImode.
(may_alias_p): Ditto.
2010-10-21 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/45875
* tree.c (get_binfo_at_offset): Remove initial zero offset test.
2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
* tree-into-ssa.c (rewrite_update_enter_block): Remove unused
variables.
(create_new_def_for): Likewise.
2010-10-21 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300.c: Fold code to 80-character width.
Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
MEM, CONST_INT and CONST_DOUBLE.
(targetm): Move initialization to end of file.
(print_operand): Rename to mn10300_print_operand.
(print_operand_address): Rename to mn10300_print_operand_address.
(can_use_return_insn): Rename to mn10300_can_use_return_insn.
(expand_prologue): Rename to mn10300_expand_prologue.
(expand_epilogue): Rename to mn10300_expand_epilogue.
(initial_offset): Rename to mn10300_initial_offset.
(function_arg): Rename to mn10300_function_arg.
(mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
(symbolic_operand): Rename to mn10300_symbolic_operand.
(legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
(legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
* config/mn10300/mn10300-protos.h: Update prototypes.
* config/mn10300/mn10300.h: Fold code to 80-character width.
Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
MEM, CONST_INT and CONST_DOUBLE.
(CPP_SPEC): Move to...
(TARGET_CPU_CPP_BUILTINS): ... here.
* config/mn10300/mn10300.md: Fold code to 80-character width.
Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
MEM, CONST_INT and CONST_DOUBLE.
2010-10-21 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/46049
PR tree-optimization/46052
* tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
(vect_get_slp_defs): Add arguments.
* tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
operands to vect_get_slp_defs.
(vectorizable_reduction): Fix comment, pass scalar operands to
vect_get_slp_defs.
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
type to determine number of units in the created vector.
(vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
(vectorizable_conversion): Fix comment.
(vectorizable_shift): New function.
(vectorizable_operation): Move code that handles shifts to
vectorizable_shift.
(vectorizable_type_demotion): Fix comment, pass scalar operands to
vect_get_slp_defs.
(vectorizable_type_promotion, vectorizable_store): Likewise.
(vectorizable_condition): Fix comment.
(vect_analyze_stmt): Call vectorizable_shift.
(vect_transform_stmt): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
Use it as the operand to create vectors for, except reduction
initial definition and store. Use operands type.
(vect_get_slp_defs): Add new arguments. Pass them to
vect_get_constant_vectors.
2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
* basic-block.h (single_succ_edge): Use gcc_checking_assert.
(single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
* cfghooks.c (fixup_reorder_chain): Likewise.
* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
* cgraph.c (cgraph_add_thunk): Likewise.
(cgraph_create_edge_1): Likewise.
(cgraph_create_virtual_clone): Likewise.
* ddg.c (add_cross_iteration_register_deps): Likewise.
* dwarf2out.c (modified_type_die): Likewise.
* emit-rtl.c (set_mem_alias_set): Likewise.
* ggc-zone.c (zone_allocate_marks): Likewise.
* gimple-iterator.c (gsi_move_to_bb_end): Likewise.
* gimple.c (iterative_hash_gimple_type): Likewise.
* graphite-scop-detection.c (create_single_entry_edge): Likewise.
(create_single_exit_edge): Likewise.
* haifa-sched.c (choose_ready): Likewise.
* lto-streamer-in.c (input_gimple_stmt): Likewise.
* passes.c (execute_todo): Likewise.
* sched-ebb.c (begin_schedule_ready): Likewise.
* sel-sched.c (code_motion_process_successors): Likewise.
* tree-call-cdce.c (gen_conditions_for_pow): Likewise.
* tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
* tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
(phi_arg_index_from_use, phi_ssa_name_p): Likewise.
* tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
* tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
(ssa_conflicts_add): Likewise.
* tree-ssa-copy.c (replace_exp): Likewise.
* tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
* tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
* tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
(compute_antic): Likewise.
* tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
(add_dependence): Likewise.
(process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
* tree-vrp.c (supports_overflow_infinity): Likewise.
(make_overflow_infinity, negative_overflow_infinity): Likewise.
(avoid_overflow_infinity, register_new_assert_for): Likewise.
(process_assert_insertions_for): Likewise.
* var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
(dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
(intersect_loc_chains, variable_merge_over_cur): Likewise.
2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
* cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
* reload1.c (has_nonexceptional_receiver): Likewise.
* tree-into-ssa.c (rewrite_update_enter_block): Likewise.
(create_new_def_for): Likewise.
* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
(merge_phi_nodes): Likewise.
(has_abnormal_incoming_edge_p): Delete.
2010-10-21 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
2010-10-21 Richard Guenther <rguenther@suse.de>
Michael Matz <matz@suse.de>
PR tree-optimization/45764
* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
Adjust initial misalignment for negative DR_STEP.
(vect_find_same_alignment_drs): Two DRs with different DR_STEP
do not have the same alignment over the whole iteration domain.
2010-10-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46111
* tree-parloops.c (take_address_of): Re-organize for MEM_REF.
2010-10-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
2010-10-21 Tristan Gingold <gingold@adacore.com>
* config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
* config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
2010-10-21 Tristan Gingold <gingold@adacore.com>
* config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
signal_frame.
* config/alpha/alpha.c (alpha_function_arg): Adjust call.
2010-10-21 Tristan Gingold <gingold@adacore.com>
* config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
* config/ia64/vms.h (TARGET_DEFAULT): Ditto.
2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
* basic-block.h (find_fallthru_edge): Define.
* cfgcleanup.c (merge_blocks_move): Use it.
(try_crossjump_bb): Likewise.
* cfglayout.c (fixup_reorder_chains): Likewise.
(fixup_fallthru_exit_predecessor): Likewise.
* cfgrtl.c (rtl_split_edge): Likewise.
(rtl_verify_flow_info): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* gimple-pretty-print.c (dump_implicit_edges): Likewise.
* ifcvt.c (block_fallthru): Likewise.
* reload1.c (fixup_abnormal_edges): Likewise.
* sched-ebb.c (being_schedule_ready): Likewise.
(schedule_ebb): Likwise.
* sched-rgn.c (find_single_block_region): Likewise.
* sel-sched-ir.c (bb_ends_ebb_p): Likewise.
* tree-complex.c (expand_complex_move): Likewise.
* sched-int.h (find_fallthru_edge): Rename to...
(find_fallthru_edge_from): ...this.
* haifa-sched.c (find_fallthru_edge): Rename to...
(find_fallthru_edge_from): ...this. Use new find_fallthru_edge.
(init_before_recovery): Call find_fallthru_edge_from.
* sel-sched-ir.c (merge_fences): Likewise.
* sel-sched.c (in_fallthru_bb_p): Likewise.
(move_cond_jump): Likewise.
2010-10-20 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11.md (various): Fix conditions on a number of
insn to check for target 11/40 or higher.
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (c_parser_objc_method_type): Mark inline. Return a
bool instead of a tree.
(c_parser_objc_method_decl): Added bool argument. Updated call to
objc_build_method_signature.
(c_parser_objc_method_definition): Do not call
objc_set_method_type. Updated calls to c_parser_objc_method_type,
c_parser_objc_method_decl and objc_start_method_definition.
(c_parser_objc_methodproto): Do not call objc_set_method_type.
Updated calls to c_parser_objc_method_type,
c_parser_objc_method_decl and objc_add_method_declaration.
2010-10-20 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45919
* tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
array members.
PR tree-optimization/46066
* tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
instead of gsi_last_bb.
2010-10-20 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_option_override): Always disable
function-cse in 16-bit mode. Indirect calls are always worse than
direct calls as there is no 16-bit indirect call opcode.
(m32c_override_options_after_change): New, likewise.
2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
* ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
emitting the conditional move in the inner mode of the SUBREG.
2010-10-20 Anatoly Sokolov <aesok@post.ru>
* config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
* config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
* config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
(ia64_preferred_reload_class): Make static. Change rclass argument
and result types from enum reg_class to reg_class_t.
2010-10-20 Pat Haugen <pthaugen@us.ibm.com>
* tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
call for single operand expression.
2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
* tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
if there is a call statement to pure or const function in the block.
2010-10-20 Paul Koning <pkoning@equallogic.com>
Fix several build errors for pdp11 target.
* config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
(cbranchdf4): Conditional on TARGET_FPU.
(movdf): Ditto; correct alternatives check.
(movmemhi): Fix predicate and constraint.
* config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
2010-10-20 Richard Guenther <rguenther@suse.de>
PR lto/45667
* lto-streamer-out.c (output_gimple_stmt): Fix typo.
* tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
(verify_gimple_assign_single): Disable ADDR_EXPR type check
when in LTO.
2010-10-20 Vladimir Makarov <vmakarov@redhat.com>
PR fortran/42169
* ira-emit.c (store_can_be_removed_p): Return false instead of
gcc_unreachable.
2010-10-20 Dmitry Melnik <dm@ispras.ru>
* fold-const.c (fold_binary_loc): New transformation.
2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
PR target/46085
* config/i386/sse.md (reduc_splus_v8sf): Updated.
(reduc_splus_v4df): Likewise.
2010-10-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45860
* tree-ssa-phiopt.c (cond_store_replacement): Do not do
conditional store replacement for non-register type stores.
2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
* stor-layout.c (skip_simple_constant_arithmetic): New function.
(self_referential_size): Use it instead of skip_simple_arithmetic.
2010-10-20 Olivier Hainque <hainque@adacore.com>
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
If the current function calls eh_return, claim live all registers
that we need to check for liveness otherwise.
2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
* c-decl.c (c_write_global_declarations): Call
objc_write_global_declarations when compiling Objective-C.
* c-lang.c (finish_file): Removed.
2010-10-19 DJ Delorie <dj@redhat.com>
* doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
(TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
(TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
(TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
* doc/tm.texi: Regenerate.
* targhooks.h (default_label_align_after_barrier_max_skip,
default_loop_align_max_skip, default_label_align_max_skip,
default_jump_align_max_skip): Declare.
* target.def (label_align_after_barrier_max_skip): New.
(loop_align_max_skip): New.
(label_align_max_skip): New.
(jump_align_max_skip): New.
* system.h (poison): Add those macros to the list.
* final.c (LABEL_ALIGN_MAX_SKIP): Remove.
(LOOP_ALIGN_MAX_SKIP): Remove.
(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
(JUMP_ALIGN_MAX_SKIP): Remove.
(default_label_align_after_barrier_max_skip): New.
(default_loop_align_max_skip): New.
(default_label_align_max_skip): New.
(default_jump_align_max_skip): New.
(compute_alignments): Use the new hooks.
(shorten_branches): Likewise.
2010-10-19 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
* config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
(fma4i_fmadd_<mode>): New.
(*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
fma4_fm*_<mode> and adjust to be pre-reload splitters to the
standard fma patterns.
(fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
enable for FMA.
(*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
(*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
(*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
2010-10-19 Paul Koning <pkoning@equallogic.com>
* lower-subreg.c (resolve_shift_zext): Delete conditional code for
WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
2010-10-19 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
(fmadf4, *fmsdf4, *nfmadf4): New.
(fmaxf4, *fmsxf4, *nfmaxf4): New.
2010-10-19 Michael Eager <eager@eagercon.com>
* config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
Use sjlj unwind info for exceptions.
2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
PR fortran/43414
* dwarf2out.c (add_calling_convention_attribute): Flag main
Fortran subroutine with DW_AT_main_subprogram.
2010-10-19 Nick Clifton <nickc@redhat.com>
* config/rx/rx.c (rx_function_value): Small integer types are
promoted to SImode.
(rx_promote_function_mode): New function.
(TARGET_PROMOTE_FUNCTION_MODE): Define.
2010-10-19 Nick Clifton <nickc@redhat.com>
* config/mep/mep.c (mep_print_operand): Use
targetm.strip_name_encoding.
(mep_output_aligned_common): Likewise.
2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
2010-10-18 Richard Henderson <rth@redhat.com>
* simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
(fma (neg a) (neg b) c) and (fma a (neg b) c).
2010-10-18 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
(bdesc_multi_arg): Remove the corresponding builtins.
* config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
(UNSPEC_FMA4_FMSUBADD): Remove.
(UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
* config/i386/sse.md (FMA4MODEF4): Remove.
(FMAMODE): Add.
(fma<mode>4): New expander.
(*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
(*fma4i_fmsub_<mode>): Similarly.
(*fma4i_fnmadd_<mode>): Similarly.
(*fma4i_fnmsub_<mode>): Similarly.
(fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
with the first operand.
(fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
of explicit arithmetic. Macroize with AVXMODEF2P.
(*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
(xop_frcz<mode>2): Macroize with FMAMODE.
(xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
the first operand.
* config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
extra negations.
(_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
(_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
(_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
(_mm256_msub_ps, _mm256_msub_pd): Likewise.
(_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
(_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
(_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
(_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
PR rtl-optimization/45966
* combine.c (try_combine): If added_sets_2, deal with the case
where i0 feeds i1 and i1 feeds i2.
2010-10-18 Jan Hubicka <jh@suse.cz>
* ipa.c (cgraph_externally_visible_p): Handle externally visible and
preserve flags before trying to guess on visibility.
(varpool_externally_visible_p): New function.
(function_and_variable_visibility): Use it.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented parsing @synthesize and @dynamic for Objective-C.
* c-parser.c (c_parser_external_declaration): Recognize
RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
(c_parser_objc_at_synthesize_declaration): New.
(c_parser_objc_at_dynamic_declaration): New.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_class_declaration): After finding an
error, parse the whole declaration then reset parser->error.
2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/46041
* tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
* builtins.c (mode_has_fma): Ditto.
2010-10-18 Steve Ellcey <sje@cup.hp.com>
PR target/36898
PR middle-end/43760
* config/ia64/ia64.c (rws_access_regno): Remove predicate check.
2010-10-18 Joseph Myers <joseph@codesourcery.com>
* config/i386/i386.c (ix86_option_override_internal): Define and
use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
default.
* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
(USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
* c-parser.c (c_parser_objc_type_name): Adapted to new parser the
following Objective-C change:
2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
Radar 4301047
* c-parse.in (objc_quals): Build objc qualifier list same way
as gcc-3.3
2010-10-18 Jan Hubicka <jh@suse.cz>
* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
function_and_variable_visibility): Revert accidental commit.
2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
* c-parser.c (c_parser_typeof_specifier): Adapted to new parser
the following Objective-C change:
2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4204796
* c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
'volatilized' type used in a typeof operator.
2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
* tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
* tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
rewrite modelled on gimple_purge_dead_eh_edges.
(gimple_purge_all_dead_abnormal_call_edges): New function.
* tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
directly instead of through gimple_purge_dead_abnormal_call_edges.
* tree-ssa-pre.c (need_ab_cleanup): New static variable.
(eliminate): Set bit in need_ab_cleanup for the basic block if we have
removed AB side-effects from one of its statements.
(init_pre): Initialize need_ab_cleanup.
(fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
are set in need_ab_cleanup. Free need_ab_cleanup afterward.
2010-10-18 Jakub Jelinek <jakub@redhat.com>
PR c/46015
* c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
on computed goto argument.
2010-10-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45967
* tree-ssa-structalias.c (type_could_have_pointers): Remove.
(could_have_pointers): Likewise.
(handle_rhs_call, handle_const_call, handle_pure_call,
find_func_aliases, intra_create_variable_infos): Remove calls to them.
(struct fieldoff): Add must_have_pointers field.
(type_must_have_pointers): New function.
(field_must_have_pointers): Likewise.
(push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
Adjust field merging.
(create_function_info_for): May-have-pointers of varinfo is
almost always true.
(create_variable_info_for_1): Likewise.
2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
* config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
of operands to vec_concat.
2010-10-18 Richard Guenther <rguenther@suse.de>
PR lto/44950
* tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
also clear references to entries of it.
2010-10-18 Andi Kleen <ak@linux.intel.com>
PR other/43448
* gccbug.in: Remove.
* Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
(doc, distclean, install-common): Remove reference to gccbug.
* configure: Regenerate.
* configure.ac (all_outputs): Remove gccbug.
* doc/configfiles.texi: Remove references to gccbug.
* doc/sourcebuild.texi: Dito.
2010-10-18 Jakub Jelinek <jakub@redhat.com>
PR middle-end/46019
* fold-const.c (fold_binary_loc): If integer_pow2p has
TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
Jeremie Salvucci <jeremie.salvucci@free.fr>
* gengtype.c (verbosity_level): Add variable.
(set_gc_used): Count variables for verbosity.
(close_output_files): Backing up files, counting written ones
verbosily.
(write_types): Count emitted functions for verbosity. Added
debug messages.
(write_enum_defn): Count structures for verbosity. Added debug
messages.
(gengtype_long_options): Add "verbose" & "backupdir".
(print_usage): Ditto.
(main): Verbose display of parsed files.
* gengtype.h (verbosity_level): Add declaration.
2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c (parse_program_options): Add allocation of
plugin_files, and correct test on nb_plugin_files.
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
Radar 4133425
* c-decl.c (undeclared_variable): Issue diagnostic on
private 'ivar' access.
2010-10-17 Uros Bizjak <ubizjak@gmail.com>
PR target/46051
* config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
generated sequence to match *avx_vperm2f128<mode>_nozero.
(vec_interleave_lowv4df): Ditto.
(vec_interleave_highv8sf): Ditto.
(vec_interleave_lowv8sf): Ditto.
2010-10-17 Kai Tietz <kai.tietz@onevision.com>
* libgcov.c (create_file_directory): Enable it for win32 case.
(gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
* doc/gcov.texi (GCOV_PREFIX): Adjusted.
(GCOV_PREFIX_SKIP): Likewise.
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (GNU Objective-C runtime API): New section.
(Modern GNU Objective-C runtime API): New section.
(Traditional GNU Objective-C runtime API): New section.
(Executing code before main): Mention that this section is
specific to the GNU Objective-C runtime.
(Garbage Collection): Same.
2010-10-17 Uros Bizjak <ubizjak@gmail.com>
* c-parser.c (c_parser_for_statement): Move initialization of
cond and incr before if.
2010-10-17 Anatoly Sokolov <aesok@post.ru>
* target.def (preferred_output_reload_class): New hook.
* doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_preferred_output_reload_class): New function.
* targhooks.h (default_preferred_output_reload_class): Declare.
* reload.c (find_dummy_reload): Change rclass argument type from
enum reg_class to reg_class_t. Change this_alternative array type
from enum reg_class to reg_class_t.
Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
(push_reload): Change preferred_class variable type to reg_class_t.
Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
* recog.c (reg_fits_class_p): Change result type to bool. Change cl
argument type from enum reg_class to reg_class_t. Use
HARD_REGISTER_NUM_P predicate.
* recog.h (reg_fits_class_p): Update prototype.
* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
* config/i386/i386-protos.h (ix86_preferred_output_reload_class):
Remove.
* config/i386/i386.c (ix86_preferred_output_reload_class): Make
static. Change regclass argument and result types from enum reg_class
to reg_class_t.
(TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
* c-parser.c (c_parser_objc_class_instance_variables): Update to use
visibility enum, and handle @package.
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (What you can and what you cannot do in +load):
Document that sending messages to constant string objects in +load
is not guaranteed to work.
2010-10-16 Jan Hubicka <jh@suse.cz>
PR middle-end/44206
* ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
existence of refrences before removing the function.
2010-10-16 Jan Hubicka <jh@suse.cz>
* cgraph.c (dump_cgraph_node): Dump same_comdat_group,
only_called_at_startup and only_called_at_exit.
(cgraph_propagate_frequency): Compute only_called_at_startup and
only_called_at_exit.
* cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
only_called_at_exit.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
flags.
* predict.c (compute_function_frequency): Initialize the new flags.
2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
* gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
on the bounds of its domain.
* tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
2010-10-16 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
* config/avr/avr-protos.h (preferred_reload_class): Remove.
* config/avr/avr.c (preferred_reload_class): Remove.
* config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
* config/pa/pa.c (emit_move_sequence): Update comment
* config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
* config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
* config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
* config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
* config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
* config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
* config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
* config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
* config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
* config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
* config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
* config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
* config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
2010-10-16 Joseph Myers <joseph@codesourcery.com>
* opts.c (set_fast_math_flags,
set_unsafe_math_optimizations_flags): Make static.
* toplev.h (set_fast_math_flags,
set_unsafe_math_optimizations_flags): Remove prototypes.
2010-10-16 Joseph Myers <joseph@codesourcery.com>
* config/arm/arm.c (arm_option_optimization): Set
flag_section_anchors to 1 not 2.
* config/i386/i386.c (ix86_option_override_internal): Check
global_options_set.x_flag_zee and
global_options_set.x_flag_omit_frame_pointer.
(ix86_option_optimization): Don't set flag_omit_frame_pointer and
flag_zee to 2.
* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_flag_omit_frame_pointer.
* config/rs6000/rs6000.c (rs6000_option_init_struct): Set
opts->x_flag_section_anchors to 1 not 2.
* config/sh/sh.c (sh_option_optimization): Don't set
flag_schedule_insns to 2.
(sh_option_override): Check
global_options_set.x_flag_schedule_insns.
* opts.c (finish_options): Check opts_set->x_flag_section_anchors.
2010-10-16 Kai Tietz <kai.tietz@onevision.com>
* configure.ac: Make sure inhibit_libc remains false for mingw targets
as cross.
* configure: Regenerated.
2010-10-15 Xinliang David Li <davidxl@google.com>
* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
function.
(use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
into a recursive function.
2010-10-15 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
(*movdfcc_1): ditto.
2010-10-15 Joseph Myers <joseph@codesourcery.com>
* target.def (target_option.init_struct): New hook.
* doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
* doc/tm.texi: Regenerate.
* hooks.c (hook_void_gcc_optionsp): New.
* hooks.h (hook_void_gcc_optionsp): Declare.
* langhooks-def.h (lhd_init_options_struct): Remove.
(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
* langhooks.c (lhd_init_options_struct): Remove.
* opts.c (init_options_struct): Also call
targetm.target_option.init_struct.
* config/i386/i386.c (ix86_option_init_struct,
TARGET_OPTION_INIT_STRUCT): New.
(ix86_option_optimization): Move some settings to
ix86_option_init_struct.
* config/pdp11/pdp11.c (pdp11_option_init_struct,
TARGET_OPTION_INIT_STRUCT): New.
(pdp11_option_optimization): Move some settings to
pdp11_option_init_struct.
* config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
rs6000_option_init_struct. Use options structure pointer.
(TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
* config/s390/s390.c (s390_option_init_struct,
TARGET_OPTION_INIT_STRUCT): New.
(s390_option_optimization): Don't set
flag_asynchronous_unwind_tables here.
* config/sh/sh.c (sh_option_init_struct,
TARGET_OPTION_INIT_STRUCT): New.
(sh_option_optimization): Don't set flag_finite_math_only here.
* config/spu/spu.c (spu_option_optimization): Replace by
spu_option_optimization. Use options structure pointer.
(TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
* doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
* doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
SIGN_EXTRACT and ZERO_EXTRACT which were missing.
(Standard names): Document fma.
* doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
__FP_FAST_FMAF, __FP_FAST_FMAL.
* builitns.c (expand_builtin_mathfn_ternary): New function for
expanding ternary math functions, like fma.
(expand_builtin): Call it for the fma builtins.
* simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
ops at present.
* tree-vect-stmts.c (vectorizable_call): Allow 3 argument
vectorizable functions to support vectorizing fma.
* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
Handle fma builtins.
* config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
(UNSPEC_VSX_MSUB): Ditto.
(UNSPEC_VSX_NMADD): Ditto.
(UNSPEC_VSX_NMSUB): Ditto.
(vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
of UNSPEC. Renumber combiner patterns.
(vsx_fmsub<mode>4*): Ditto.
(vsx_fnmadd<mode>4*): Ditto.
(vsx_fnmsub<mode>4*): Ditto.
* config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
(altivec_vmaddfp): Rewrite to use FMA rtl if no fused
multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
(altivec_vmaddfp_1): Ditto.
(altivec_vmaddfp_2): Ditto.
(atlivec_mulv4sf3): Ditto.
(altivec_vnmsubfp): Ditto.
(altivec_vnmsubfp_1): Ditto.
(altivec_vnmsubfp_2): Ditto.
(altivec_vnmsubfp_3): Delete.
* config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
(fmasf4_fpr): Ditto.
(fmssf4_fpr): Ditto.
(fnmasf4_fpr): Ditto.
(fnmssf4_fpr): Ditto.
(fmadf4): Ditto.
(fmadf4_fpr): Ditto.
(fmsdf4_fpr): Ditto.
(fnmadf4_fpr): Ditto.
(fnmsdf4_fpr): Ditto.
* optabs.h (OTI_fma): Add fma optab.
(fma_optab): Ditto.
* genopinit.c (optabs): Set fma optab.
* rtl.def (FMA): Add FMA rtl.
* tree.h (mode_has_fma): New function to return if MODE supports a
fast multiply and add instruction.
* builtins.c (mode_has_fma): Ditto.
2010-10-15 Jan Hubicka <jh@suse.cz>
* lto-streamer-out.c (write_symbol): Use pointer set of seen
objects instead of bitmap.
(produce_symtab): Likewise; output defined symbols first.
2010-10-15 Jie Zhang <jie@codesourcery.com>
* doc/invoke.texi: Add -fstrict-volatile-bitfields to
Option Summary and Index.
2010-10-15 Richard Guenther <rguenther@suse.de>
* tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
for automatic variables again.
2010-10-15 Joseph Myers <joseph@codesourcery.com>
* doc/extend.texi (Variable Length): Don't refer to VLAs not
conforming to C99.
2010-10-15 Joseph Myers <joseph@codesourcery.com>
* config/rx/rx.c (rx_option_optimization): Change to
rx_override_options_after_change. Don't change
flag_lto_compression_level. Don't check for changes to whether
FPU instructions can be used. Check and set only
flag_finite_math_only, not other fast-math flags.
(rx_option_override): Call rx_override_options_after_change.
(TARGET_OPTION_OPTIMIZATION): Remove.
(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2010-10-15 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_option_optimization): Don't
disable section anchors for lang_hooks.name[4] != 'O'.
2010-10-15 Joseph Myers <joseph@codesourcery.com>
* config/frv/frv.c (frv_option_optimization,
TARGET_OPTION_OPTIMIZATION): Remove.
* config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2010-10-15 Michael Matz <matz@suse.de>
* cgraphunit.c (clone_of_p): Define unconditionally.
2010-10-15 Richard Guenther <rguenther@suse.de>
PR lto/45957
* tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
* ifcvt.c (find_active_insn_before): New function.
(find_active_insn_after): New function.
(cond_exec_process_if_block): Use new functions to replace
prev_active_insn() and next_active_insn().
2010-10-14 Yao Qi <yao@codesourcery.com>
PR target/45447
* config/arm/arm.c (arm_build_builtin_va_list): Assign
va_list_name to TYPE_STUB_DECL (va_list_type).
2010-10-14 Jan Hubicka <jh@suse.cz>
PR middle-end/45621
* cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
redirected to clone, be happy.
* cgraph.h (cgraph node): Enable former_clone_of unconditinally.
* cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
former_clone_of unconditionally.
2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
Merge from FSF apple 'trunk' branch.
2006 Fariborz Jahanian <fjahanian@apple.com>
Radars 4436866, 4505126, 4506903, 4517826
* c-parser.c (c_parser, objc_property_attr_context) New flag.
(c_lex_one_token): Handle property attributes.
(c_parser_external_declaration): Handle @property.
(c_parser_declaration_or_fndef): Warn on invalid attributes before
@alias, @class, @end and @property objc keywords.
(c_parser_objc_methodprotolist): Handle @property.
(c_parser_objc_property_attrlist): New.
(c_parser_objc_at_property): New.
* c-typeck.c (build_component_ref): Handle CLASS.property syntax.
(build_modify_expr): Likewise.
2010-10-14 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46008
* tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
2010-10-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44913
* tree-data-ref.c (disjoint_objects_p): Remove.
(dr_may_alias_p): Simplify. Only hand the base object to
the alias-oracle.
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
some more trees, bail out instead of asserting.
(ptr_derefs_may_alias_p): Likewise. Export.
(refs_may_alias_p_1): Handle STRING_CSTs.
* tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2010-10-14 Joseph Myers <joseph@codesourcery.com>
PR c/45969
* c-typeck.c (build_binary_op): Don't try to compute a semantic
type with excess precision for boolean operations.
2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c: Include getopt.h and version.h.
(lang_bitmap, struct outf, outf_p)
(get_output_file_with_visibility, oprintf): Definitions moved to
gengtype.h
(output_files, header_file, srcdir, srcdir_len, this_file)
(do_dump): No more static variables.
(do_debug): New.
(dbgprint_count_type_at): Added new function.
(gengtype_long_options): New.
(print_usage, print_version, parse_program_options): New.
(main): Call parse_program_options, and removed old option
handling code. Added some debug output.
* gengtype.h: Updated copyright year.
(lang_bitmap, struct outf, outf_p, header_file, oprintf)
(get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
Moved from gengtype.c to here.
(do_debug, read_state_filename, write_state_filename): New variables.
(DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
* Makefile.in:
(REVISION): Always defined.
(version.o): Removed ifdef REVISION_c.
(s-gtype): Pass arguments to build/gengtype program.
(build/version.o): Added building rule.
(build/gengtype$(build_exeext)): Added build/version.o.
2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
* config/darwin-c.c (darwin_cpp_builtins): Define __weak and
__strong macros.
2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
* sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
may_trap_or_fault_p instead of may_trap_p predicate.
* tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
(substitute_placeholder_in_expr): Likewise.
* tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
flag on MEM_REF nodes.
(copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
flags on INDIRECT_REF nodes.
2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
* config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
(arm*-*-uclinux*eabi) <tm_file>: Likewise.
(arm*-*-eabi*) <tm_file>: Likewise.
(frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
(frv-*-*linux*) <tm_file>: Likewise.
* config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
and associated helper macros.
* config/frv/frv-abi.h: Delete.
2010-10-14 Richard Guenther <rguenther@suse.de>
PR lto/44561
* tree.def (NULLPTR_TYPE): New tree code.
* dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
* dwarf2out.c (is_base_type): Likewise.
(gen_type_die_with_usage): Likewise.
* sdbout.c (plain_type_1): Likewise.
* tree.c (build_int_cst_wide): Likewise.
* gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
2010-10-14 Joseph Myers <joseph@codesourcery.com>
* params.c (params_finished): New.
(add_params): Assert !params_finished.
(finish_params): New.
(set_param_value_internal): Take params and params_set
parameters. Assert params_finished.
(set_param_value, maybe_set_param_value): Take params and
params_set parameters. Update calls to set_param_value_internal.
(set_default_param_value): Assert !params_finished. Don't use
set_param_value_internal.
(default_param_value, init_param_values): New.
* params.h (struct param_info): Change value to default_value.
Remove set.
(set_param_value, maybe_set_param_value): Add params and
params_set parameters.
(PARAM_VALUE): Get parameters from global_options.
(PARAM_SET_P): Remove.
(finish_params, default_param_value, init_param_values): New.
* common.opt (param_values): New Variable.
* config/arm/arm.c (arm_option_override): Pass extra arguments to
maybe_set_param_value.
* config/i386/i386.c (ix86_option_override_internal): Pass extra
arguments to maybe_set_param_value.
* config/picochip/picochip.c (picochip_option_override): Pass
extra arguments to maybe_set_param_value.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
extra arguments to maybe_set_param_value.
* config/s390/s390.c (s390_option_override): Use
maybe_set_param_value instead of set_param_value. Pass extra
arguments to maybe_set_param_value.
* config/sparc/sparc.c (sparc_option_override): Pass extra
arguments to maybe_set_param_value.
* config/spu/spu.c (spu_option_override): Pass extra arguments to
maybe_set_param_value.
* opts.c (handle_param): Take opts and opts_set parameters.
Update call to set_param_value.
(initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
initial_loop_invariant_max_bbs_in_loop): Remove.
(init_options_once): Don't set them.
(init_options_struct): Initialize parameters structures.
(default_options_optimization): Use default_param_value when
restoring defaults. Update calls to maybe_set_param_value.
(finish_options): Update calls to maybe_set_param_value.
(common_handle_option): Update calls to handle_param and
set_param_value.
* toplev.c (DEFPARAM): Update definition for changes to param_info.
(general_init): Call finish_params.
2010-10-14 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
(DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
(FIRST_PSEUDO_REGISTER): Increase by one.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
(HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
(MODES_TIEABLE): Call mn10300_modes_tieable.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
(LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
(CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
(SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
(mn10300_cc_status_mdep): Delete.
(CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
* config/mn10300/mn10300 (mn10300_option_override): Stop disabling
the combine-stack-adjust pass.
(print_operand): Use the mode of the comparison operation to
select the comparison suffix.
(notice_update_cc): Delete.
(mn10300_secondary_reload_class): Remove test for stack pointer
based arithmetic.
(output_tst): Rename to mn10300_output_cmp.
(impossible_plus_operand): Move into predicates.md.
(mn10300_legitimize_address): Make static.
(mn10300_legitimate_address_p): Make static. Only allow SI sized
constant pic operands.
(mn10300_legitimate_constant_p): New function.
(mn10300_case_values_threshold): Make static.
(mn10300_hard_regno_mode_ok): New function.
(mn10300_modes_tieable): New function.
(mn10300_select_cc_mode): New function.
* config/mn10300/predicates.md (impossible_plus_operand): Define.
* config/mn10300/mn10300-protos.h: Tidy.
(mn10300_legitimate_constant_p, mn10300_modes_tieable)
(mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
* config/mn10300/mn10300.md (cc attribute): Delete. Replace
with clobbers or sets of CC_REG.
(CC_REG): Define.
(mov*): Remove use of CLR instruction.
(cbranch_si4_<code>): New pattern/split.
(integer_conditional_branch): New pattern.
(cbranch_sf4_<code>): New pattern/split.
(float_conditional_branch): New pattern.
(casesi): Use addsi3 pattern instead of movsi pattern to add and
move a value at the same time.
(cc0 peepholes): Remove.
2010-10-14 Andrey Belevantsev <abel@ispras.ru>
* sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
on RTX_FRAME_RELATED_P insns and the insn to which
NOTE_INSN_EPILOGUE_BEG is attached.
* sched-vis.c (print_value): Allow NULL value.
2010-10-14 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/45570
* sel-sched-ir.c (cfg_preds_1): When walking out of the region,
assert that we are pipelining outer loops. Allow returning
zero predecessors.
2010-10-14 Andrey Belevantsev <abel@ispras.ru>
* sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
(tidy_control_flow): Tidy vertical space.
(sel_remove_bb): New variable idx. Use it to remember the basic
block index before deleting the block.
(sel_remove_empty_bb): Remove dead code, simplify and insert to ...
(sel_merge_blocks): ... here.
* sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
2010-10-14 Jakub Jelinek <jakub@redhat.com>
* cse.c (is_dead_reg): Change into inline function that is not
called through for_each_rtx.
(set_live_p): Adjust caller.
(insn_live_p): Don't reset DEBUG_INSNs here.
(struct dead_debug_insn_data): New data.
(count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
(delete_trivially_dead_insns): If there is just one setter for the
dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
and add DEBUG_INSN for it right before the removed setter and
use the DEBUG_EXPR instead of the dead pseudo.
2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
* et-forest.c (et_nca): Return NULL immediately when
the dominance forest has disjoint components.
2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
* ira.c (setup_class_hard_regs): Fix typo in indexing
ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
* graph.c (inbb): New variable.
(start_bb): Set inbb to 1 if output is inside of a building block.
(end_bb): Check if output is inside of a building block.
2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/45912
* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
regno of registers instead of their index to compute the alignment.
2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_build_const_vector): Check vector
mode instead of scalar mode.
(ix86_build_signbit_mask): Likewise.
(ix86_expand_fp_absneg_operator): Updated.
(ix86_expand_copysign): Likewise.
(ix86_expand_int_vcond): Likewise.
(ix86_emit_swdivsf): Likewise.
(ix86_sse_copysign_to_positive): Likewise.
(ix86_expand_sse_fabs): Likewise.
* config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
* config/i386/sse.md (copysign<mode>3): Likewise.
(sse2_cvtudq2ps): Likewise.
(vec_unpacku_float_hi_v4si): Likewise.
(vec_unpacku_float_lo_v4si): Likewise.
* config/i386/i386.c (ix86_builtins): Add
IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
(bdesc_args): Likewise.
(ix86_builtin_vectorized_function): Support
IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
and IX86_BUILTIN_CVTPS2DQ256.
(ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
* config/i386/sse.md (STORENT_MODE): New.
(VEC_FLOAT_MODE): Likewise.
(VEC_EXTRACT_MODE): Likewise.
(*avx_cvtdq2pd256_2): Likewise.
(vec_pack_trunc_v4df): Likewise.
(vec_interleave_highv8sf): Likewise.
(vec_interleave_lowv8sf): Likewise.
(storent<mode>): Macroized.
(<code><mode>2: absneg): Likewise.
(copysign<mode>3): Likewise.
(vec_extract<mode>): Likewise.
PR target/44180
* config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
for V8SFmode.
2010-10-13 Richard Guenther <rguenther@suse.de>
H.J. Lu <hongjiu.lu@intel.com>
* config/i386/sse.md (reduc_splus_v8sf): Add.
(reduc_splus_v4df): Likewise.
(vec_unpacks_hi_v8sf): Likewise.
(vec_unpacks_lo_v8sf): Likewise.
(*avx_cvtps2pd256_2): Likewise.
(vec_unpacks_float_hi_v8si): Likewise.
(vec_unpacks_float_lo_v8si): Likewise.
(vec_interleave_highv4df): Likewise.
(vec_interleave_lowv4df): Likewise.
2010-10-13 Richard Guenther <rguenther@suse.de>
PR objc/45878
* gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
alone if there are no virtual methods.
2010-10-13 Richard Henderson <rth@redhat.com>
* expr.c (build_personality_function): Take parameter LANG instead
of parameter NAME. Build the name based on the lang prefix and the
unwind method in use.
* tree.c (lhd_gcc_personality): Update call to
build_personality_function.
2010-10-13 Richard Guenther <rguenther@suse.de>
PR objc/45878
* tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
* cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
Canonicalize input operands of ASM_OPERANDS insns.
2010-10-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45788
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
EH update until fixup-cfg.
2010-10-13 Julian Brown <julian@codesourcery.com>
* config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
from CORE_REGS and GENERAL_REGS classes.
* config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
final constraint for register preferencing.
2010-10-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45970
* tree-ssa-alias.h (stmt_kills_ref_p): Declare.
* tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
(stmt_kills_ref_p): Likewise.
* tree-ssa-dse.c (dse_optimize_stmt): Use it.
2010-10-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45982
* tree-ssa-structalias.c (make_constraints_to): New function.
(make_constraint_to): Implement in terms of make_constraints_to.
(find_func_aliases): Properly make return values of pure/const
functions escape if they assign to sth that is not a pointer.
2010-10-13 Richard Guenther <rguenther@suse.de>
PR middle-end/45874
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
Fixup the CFG when EH was fixed up.
2010-10-13 Ira Rosen <irar@il.ibm.com>
* tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
Use operand's type for POINTER_PLUS_EXPR.
2010-10-13 Alexandre Oliva <aoliva@redhat.com>
* c-parser.c (c_parser_for_statement): Initialize incr.
2010-10-12 Xinliang David Li <davidxl@google.com>
PR tree-optimization/45972
* tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
with too many arguments.
2010-10-12 Jakub Jelinek <jakub@redhat.com>
PR fortran/45636
* tree-ssa-forwprop.c: Include expr.h.
(constant_pointer_difference, simplify_builtin_call): New functions.
(tree_ssa_forward_propagate_single_use_vars): Call
simplify_builtin_call on builtin calls.
2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
(*adddi3_extend_sp32): Likewise.
(*subdi3_insn_sp32): Likewise.
(*subdi3_extend_sp32): Likewise.
(*negdi2_sp32): Use negative test for consistency.
2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
* libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
(LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
* config/fixed-bit.h: Likewise.
* config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
* config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
* system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
* doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
(DF_SIZE): Likewise.
* doc/tm.texi: Regenerate.
2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/predicates.md (scc_rev_comparison_operator): New.
* config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
(*isel_reversed_unsigned_<mode>): New.
* config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
as valid comparisons and adjust operands and output appropriately.
(rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
* config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
DATA_ALIGNMENT and add COND parameter. Update comments above.
(DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
(LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/45958
* exec-tool.in: Support '-plugin' as the second option to the linker.
2010-10-12 Richard Henderson <rth@redhat.com>
PR middle-end/45962
* cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
(expand_stack_vars): Assert large base allocated when used.
2010-10-12 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (get_constraint_for_1): Constants
only point to nonlocal, not anything.
2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
unwind info for exceptions.
2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR testsuite/45851
* doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
Document optional target selector.
2010-10-12 Joseph Myers <joseph@codesourcery.com>
* flag-types.h: New.
* Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
(FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
options.h.
(OPTIONS_H): Define.
(c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
of options.h.
* configure.ac (tm_include_list): Include options.h not flags.h.
* configure: Regenerate.
* flags.h: Include flag-types.h. Include options.h at top of file
again.
(enum debug_info_type, enum debug_info_level, enum
debug_info_usage, enum symbol_visibility, struct visibility_flags,
enum ira_algorithm, enum ira_region, enum excess_precision, enum
graph_dump_types, enum stack_check_type,
enum warn_strict_overflow_code): Move to flag-types.h
* opth-gen.awk: Include flag-types.h in options.h.
2010-10-12 Jakub Jelinek <jakub@redhat.com>
* expr.c (store_expr): Share code for STRING_CST and
MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
check if target is a MEM.
* rtl.h: Include hashtab.h.
(iterative_hash_rtx): New prototype.
* rtl.c (iterative_hash_rtx): New function.
* dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
(output_loc_list): Return immediately if emitted is set, set it.
(hash_loc_operands, hash_locs, hash_loc_list,
compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
optimize_location_lists_1, optimize_location_lists): New function.
(dwarf2out_finish): Call optimize_location_lists.
* Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR testsuite/45974
Revert:
* Makefile.in ($(lang_checks_parallel))
($(lang_checks_parallelized)): Use single quotes for
$(RUNTESTFLAGS), to allow passing quoted content.
2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
actual_oldval. Use __builtin_expect.
(SUBWORD_VAL_CAS): Likewise.
2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
* recog.c (nonmemory_operand): Call immediate_operand for
CONSTANT_P operands.
2010-10-11 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (movmem<mode>): Macroize expander from
movmem{si,di} using SWI48 mode iterator.
(*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
*strmovsi_rex_1 using P mode iterator.
(*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
(*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
(*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
(*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
(setmem<mode>): Macroize expander from setmem{si,di} using
SWI48 mode iterator.
(*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
*strsetsi_rex_1 using P mode iterator.
(*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
(*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
(*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
(*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
(*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
(*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
(strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
mode iterator.
(*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
*strlenqi_rex_1 using P mode iterator.
2010-10-11 Bernd Schmidt <bernds@codesourcery.com>
PR bootstrap/45445
* ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
static functions.
(mark_ref_live, mark_ref_dead): Use them.
(make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
Save the original reg, and use the new functions.
(check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
changed.
(check_and_make_def_conflict): Save the original reg.
2010-10-11 Martin Jambor <mjambor@suse.cz>
PR middle-end/45699
* gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
thunks.
2010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Makefile.in ($(lang_checks_parallel))
($(lang_checks_parallelized)): Use single quotes for
$(RUNTESTFLAGS), to allow passing quoted content.
PR bootstrap/35855
* opt-functions.awk (BEGIN): New section.
(lower, upper, digit, alnum): New variables.
(static_var, opt_sanitized_name): Use alnum instead of character
classes, for non-C locale.
* optc-gen.awk: Likewise.
* opth-gen.awk: Likewise.
2010-10-11 Anatoly Sokolov <aesok@post.ru>
* target.def (preferred_reload_class): New hook.
* doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_preferred_reload_class): New function.
* targhooks.h (default_preferred_reload_class): Declare.
* reload.c (find_dummy_reload): Change preferred_class variable type
from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
target hook.
(find_reloads): Change goal_alternative array type from int to
reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
(push_reload, find_reloads_address_part): Use
TARGET_PREFERRED_RELOAD_CLASS target hook.
* reload1.c (emit_input_reload_insns): Ditto.
* ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
hook. Change rclass argument and secondary_class variable types from
'enum reg_class' to reg_class_t.
* config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
* config/i386/i386-protos (ix86_preferred_reload_class): Remove.
* config/i386/i386.c (ix86_preferred_reload_class): Make static.
Change regclass argument and result types from enum reg_class to
reg_class_t.
(TARGET_PREFERRED_RELOAD_CLASS): Define.
2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
* simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
in masking operations.
(simplify_const_unary_operation): Likewise.
(simplify_binary_operation_1): Likewise.
(simplify_const_binary_operation): Likewise.
(simplify_const_relational_operation): Likewise.
(simplify_ternary_operation): Likewise.
(simplify_immed_subreg): Likewise.
2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/45862
* doc/tm.texi.in (SUPPORTS_WEAK): Update.
(TARGET_SUPPORTS_WEAK): New.
* doc/tm.texi: Regenerate.
* defaults.h (SUPPORTS_WEAK): Update comment.
(TARGET_SUPPORTS_WEAK): New.
* dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
* varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
SUPPORTS_WEAK.
(merge_weak, declare_weak, do_assemble_alias, supports_one_only,
make_decl_one_only): Likewise.
* config/pa/som.h (SUPPORTS_WEAK): Rename defines to
TARGET_SUPPORTS_WEAK.
(SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
instead of SUPPORTS_WEAK.
2010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
* vec.h (VEC_qsort): Define.
* dbxout.c (output_used_types): Use it.
* df-scan.c (df_sort_and_compress_refs): Likewise.
(df_sort_and_compress_mws): Likewise.
* genautomata.c (uniq_sort_alt_states): Likewise.
(evaluate_equiv_classes): Likewise.
(output_trans_table): Likewise.
(output_state): Likewise.
* gimplify.c (compare_case_labels): Likewise.
* graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
* ipa.c (build_cdtor_fns): Likewise.
* lto.c (lto_wpa_write_files): Likewise.
* sel-sched.c (fill_vec_av_set): Likewise.
* tree-predcom.c (determine_roots_comp): Likewise.
* tree-sra.c (sort_and_spliace_var_accesses): Likewise.
(splice_param_accesses): Likewise.
* tree-ssa-live.c (dump_enumerated_decls): Likewise.
* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
(reassociate_bb): Likewise.
* tree-ssa-sccvn.c (sort_scc): Likewise.
* tree-ssa-structalias.c (sort_fieldstack): Likewise.
2010-10-11 Ian Lance Taylor <iant@google.com>
* tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
TREE_THIS_NOTRAP when appropriate.
(get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
* gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
newly created MEM_REF.
2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
Nathan Froyds patch to hooks FUNCTION_ARG etc.
* config/picochip/picochip-protos.h (picochip_function_arg): Delete.
(picochip_incoming_function_arg): Delete.
(picochip_arg_advance): Delete.
* config/picochip/picochip.h (FUNCTION_ARG): Delete.
(FUNCTION_INCOMING_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/picochip/picochip.c (picochip_function_arg): Take a
const_tree and a bool.
(picochip_incoming_function_arg): Likewise.
(picochip_arg_advance): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/45955
* ipa.c (build_cdtor): Delete endless loop.
2010-10-07 Andi Kleen <ak@linux.intel.com>
* Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
checksum-options.
(checksum-options): Add.
(cc1-dummy): Remove.
(cc1-checksum): Change to run checksum over object files
and options only.
* dummy-checksum.c: Remove.
* genchecksum.c: Update copyright.
(usage): Allow multiple arguments.
(BLOCKSIZE): Add.
(dosum): Change for incremental checksum. Remove C output.
(main): Iterate over all argument files. Add C output.
2010-10-11 Joseph Myers <joseph@codesourcery.com>
* params.c (set_param_value_internal): New.
(set_param_value): Use set_param_value_internal.
(maybe_set_param_value, set_default_param_value): New.
* params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
(maybe_set_param_value, set_default_param_value): Declare.
* config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
* config/i386/i386.c (ix86_option_override_internal): Use
maybe_set_param_value.
* config/ia64/ia64.c (ia64_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(ia64_option_optimization): Move some code to
ia64_option_default_params.
* config/picochip/picochip.c (picochip_option_override): Use
maybe_set_param_value.
* config/rs6000/rs6000.c (rs6000_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(rs6000_option_override_internal): Use maybe_set_param_value.
(rs6000_option_optimization): Move some code to
rs6000_option_default_params.
* config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
* config/sh/sh.c (sh_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(sh_option_optimization): Move some code to sh_option_default_params.
* config/sparc/sparc.c (sparc_option_override): Use
maybe_set_param_value.
* config/spu/spu.c (spu_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(spu_option_optimization): Move some code to spu_option_default_params.
(spu_option_override): Use maybe_set_param_value.
* doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
* doc/tm.texi: Regenerate.
* ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
* opts.c (init_options_once): Use PARAM_VALUE not direct access to
compiler_params.
(default_options_optimization): Use maybe_set_param_value.
(finish_options): Use maybe_set_param_value.
* target.def (target_option.default_params): New hook.
* toplev.c (general_init): Call targetm.target_option.default_params.
2010-10-11 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/45902
* tree-vect-slp.c (vect_get_constant_vectors): Use statement's
vector type for constants, unless it's a pointer.
2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2010-10-11 Jakub Jelinek <jakub@redhat.com>
PR target/45870
* config/i386/i386.c (ix86_delegitimize_tls_address): New function.
(ix86_delegitimize_address): Use it.
2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
* opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2010-10-10 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
to cum struct in the call to function_arg_advance.
(alpha_function_arg_advance): Mark named as unused.
2010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c (mips_handle_option): Make "value" with
ATTRIBUTE_UNUSED.
2010-10-09 Richard Henderson <rth@redhat.com>
PR rtl-opt/33721
* explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
required_align, tidy the code a bit. Emit split_stack code in the
right place. Mark the return value with the alignment properly.
* expr.h (allocate_dynamic_stack_space): Update decl.
* builtins.c (expand_builtin_apply): Update call to
allocate_dynamic_stack_space.
(expand_builtin_alloca): Likewise. Remove TARGET parameter.
* calls.c (initialize_argument_information): Update call to
allocate_dynamic_stack_space.
(expand_call): Likewise.
* cfgexpand.c (get_decl_align_unit): Don't limit alignment.
Don't update_stack_alignment here.
(alloc_stack_frame_space): Make ALIGN unsigned.
(stack_var_cmp): Sort by alignment too.
(partition_stack_vars): Don't merge large and small alignment vars.
(expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
Take care when BASE is not virtual_stack_vars_rtx.
(expand_stack_vars): Allocate dynamic stack space for large
alignment variables.
(expand_one_stack_var): Update all to expand_one_stack_var_at.
(defer_stack_allocation): True for large alignment vars.
(update_stack_alignment): Merge into ...
(expand_one_var): ... here.
(gimple_expand_cfg): Place code from expand_stack_vars.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/pdp11/pdp11.c (pdp11_function_arg): New function.
(pdp11_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
* libgcc2.c: Likewise.
2010-10-09 Richard Guenther <rguenther@suse.de>
PR lto/45956
* lto-streamer-in.c (lto_register_var_decl_in_symtab):
Properly check if a decl is an automatic var.
2010-10-09 Richard Guenther <rguenther@suse.de>
PR lto/45947
* tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/mmix/mmix-protos.h (mmix_function_arg): Delete.
* config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/mmix/mmix.c (mmix_function_arg): Rename to...
(mmix_function_arg_1): ...this. Make static. Take a const_tree and
bool arguments.
(mmix_function_arg): New function.
(mmix_function_incoming_arg): New function.
(mmix_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/vax/vax.c (vax_function_arg): New function.
(vax_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/pa/pa-protos.h (function_arg): Delete.
* config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/pa/pa.c (function_arg): Rename to...
(pa_function_arg): ...this. Make static. Take a const_tree and
a bool.
(pa_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/m68k/m68k.c (m68k_function_arg): New function.
(m68k_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/avr/avr-protos.h (function_arg): Delete.
(function_arg_advance): Delete.
* config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/avr/avr.c (function_arg): Rename to...
(avr_function_arg): ...this. Make static. Take a const_tree and
a bool.
(function_arg_advance): Rename to...
(avr_function_arg_advance): ...this. Make static. Take a
const_tree and a bool.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/alpha/alpha-protos.h (function_arg): Delete.
* config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
* config/alpha/alpha.c (function_arg): Rename to...
(alpha_function_arg): ...this. Make static. Take a const_tree and
a bool. Delete TARGET_ABI_UNICOSMK code.
(alpha_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
* config/mep/mep-protos.h (mep_function_arg): Delete.
(mep_function_arg_advance): Delete.
* config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/mep/mep.c (mep_function_arg): Make static. Take a
const_tree and a bool.
(mep_function_arg_advance): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45945
* tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/45612
* ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
Test LABEL_DECLs as well. Fix formatting issues.
(verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
whose label is present in NON_SSA_VARS.
(mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
as well. Fix formatting issues.
(visit_bb): Fix typos and formatting issue.
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
PR tree-optimization/45950
* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
before initializing vno->op.
2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
* config.gcc (bfin*-rtems*): Add newlib-stdint.h.
* config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
PR target/45913
* config/i386/i386.c (ix86_binary_operator_ok): Support
"andhi/andsi/anddi" as a zero-extending move.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* builtins.c (fold_call_stmt): Don't copy gimple call arguments
into a temporary array.
2010-10-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45903
* simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
of {A,L}SHIFTRT of MEM.
2010-10-08 Richard Guenther <rguenther@suse.de>
* lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
Re-construct BLOCK_VARS.
(lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
* lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
* tree.c (free_lang_data_in_block): Remove.
(free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
Do not touch the BLOCK tree.
* expr.c (expand_expr_real_1): Allow externals.
2010-10-08 Richard Guenther <rguenther@suse.de>
* lto-streamer-out.c (lto_output_ts_block_tree_pointers):
Do not output BLOCK_SUBBLOCKS.
* lto-streamer-in.c (lto_input_ts_block_tree_pointers):
Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
Re-construct BLOCK_SUBBLOCKS of parent block.
(lto_input_ts_binfo_tree_pointers): Reserve exact space needed
for BINFO_BASE_ACCESSES.
2010-10-08 Joseph Myers <joseph@codesourcery.com>
* Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
(TREE_H): Include $(FLAGS_H) instead of options.h.
(opts-common.o): Depend on $(FLAGS_H) instead of options.h.
* c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
* common.opt (flag_complex_method, flag_evaluation_order,
flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
Variable declarations.
* configure.ac (tm_include_list): Include flags.h instead of options.h.
* configure: Regenerate.
* flags.h: Condition out contents for target libraries. Include
options.h at end of file.
(flag_complex_method, flag_ira_algorithm, flag_ira_region,
flag_evaluation_order, flag_warn_unused_result): Remove.
* gcc.c (main): Intialize global_options with global_options_init.
* langhooks-def.h (lhd_init_options_struct): Declare.
(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
(LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
* langhooks.c (lhd_init_options_struct): New.
* langhooks.h (struct lang_hooks): Add init_options_struct.
Update comment on init_options.
* optc-gen.awk: Generate initializer for global_options_init, not
global_options.
* opth-gen.awk: Condition out structure declarations for target
libraries. Declare global_options_init.
* opts-common.c: Include flags.h instead of options.h.
* opts.c (flag_warn_unused_result): Remove.
(read_cmdline_options): Take gcc_options parameters. Pass them to
read_cmdline_option.
(initial_lang_mask, initial_min_crossjump_insns,
initial_max_fields_for_field_sensitive,
initial_loop_invariant_max_bbs_in_loop): Define at file scope.
(init_options_once): New. Split out of decode_options.
(init_options_struct): New. Split out of decode_options.
(decode_cmdline_options_to_array_default_mask): New.
(default_options_optimization): New. Split out of decode_options.
(decode_options): Move most code to other functions. Update call
to read_cmdline_options.
(finish_options): New. Split out of decode_options.
* opts.h (decode_options): Add gcc_options parameters.
(init_options_once, init_options_struct,
decode_cmdline_options_to_array_default_mask): New.
* toplev.c (flag_complex_method, flag_ira_algorithm,
flag_ira_region, flag_evaluation_order): Remove.
(general_init): Use global_options_init for initial flag values
for global_dc.
(toplev_main): Call init_options_once, init_options_struct,
lang_hooks.init_options_struct,
decode_cmdline_options_to_array_default_mask and
lang_hooks.init_option before decode_options. Update arguments to
decode_options.
* tree.h: Include flags.h instead of options.h.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/sparc/sparc-protos.h (function_arg_advance, function-arg):
Delete.
* config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
(FUNCTION_INCOMING_ARG): Delete.
* config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
(function_arg_slotno): Likewise. Take bool arguments.
(sparc_arg_partial_bytes): Update call to it.
(function_arg): Rename to...
(sparc_function_arg_1): ...this. Take bool arguments.
(sparc_function_arg, sparc_function_incoming_arg): New functions.
(function_arg_advance): Rename to...
(sparc_function_arg_advance): ...this. Take bool argument.
(TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
(TARGET_FUNCTION_INCOMING_ARG): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/bfin/bfin-protos.h (function_arg, function_arg_advance):
Delete.
* config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/bfin/bfin.c (function_arg_advance): Rename to...
(bfin_function_arg_advance): ...this. Make static. Take const_tree
and bool arguments.
(function_arg): Rename to...
(bfin_function_arg): ...this. Make static. Take const_tree and bool
arguments.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/score/score-protos.h (score_function_arg): Delete.
(score_function_arg_advance): Delete.
* config/score/score3.h (score3_function_arg_advance): Take a
const_tree and a bool.
(score3_function_arg): Likewise.
* config/score/score7.h (score7_function_arg_advance): Likewise.
(score7_function_arg): Likewise.
* config/score/score3.c (score3_classify_arg): Likewise.
(score3_function_arg_advance, score3_function_arg): Likewise.
* config/score/score7.c (score7_classify_arg): Likewise.
(score7_function_arg_advance, score7_function_arg): Likewise.
* config/score/score.c (score_function_arg_advance): Likewise.
(score_function_arg): Likewise. De-const-ify `cum' argument.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/s390/s390-protos.h (s390_function_arg_advance): Delete.
(s390_function_arg): Delete.
* config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/s390/s390.c (s390_function_arg_float): Take a const_tree.
(s390_function_arg_integer): Likewise.
(s390_function_arg_advance): Make static. Take a const_tree and
a bool.
(s390_function_arg): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/spu/spu-protos.h (spu_function_arg): Delete.
* config/spu/spu.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Move code to ...
* config/spu/spu.c (spu_function_arg_advance): New function.
(spu_function_arg): Make static. Take a const_tree and a bool.
(spu_setup_incoming_varargs): Call spu_function_arg_advance.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
(init_vn_nary_op_from_op): New function.
(init_vn_nary_op_from_stmt): New function.
(vn_nary_op_lookup_1): New function.
(sizeof_vn_nary_op): New function.
(alloc_vn_nary_op_noinit): New function.
(alloc_vn_nary_op): New function.
(vn_nary_op_insert_into): New function.
(vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
(vn_nary_op_lookup): Likewise.
(vn_nary_op_lookup_stmt): Likewise.
(vn_nary_op_insert_pieces): Likewise.
(vn_nary_op_insert): Likewise.
(vn_nary_op_insert_stmt): Likewise.
(copy_nary): Likewise.
(set_value_id_for_result): New function.
(set_hashtable_value_ids): Call it.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
* config/fr30/fr30.md (leave_func): Rewrite without post_inc.
2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
* config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
* config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2010-10-08 Alexandre Oliva <aoliva@redhat.com>
PR debug/45656
* cse.c (cse_extended_basic_block): Preserve cc0 info across
debug isnsn. Skip them when searching for cc0 setter.
(set_live_p): Skip debug insns when searching for cc0 user.
2010-10-08 Alexandre Oliva <aoliva@redhat.com>
PR debug/45673
PR debug/45604
PR debug/45419
PR debug/45408
* tree-pretty-print.c (dump_generic_node): Explicitly dump the
type of MEM_REFs to INTEGER_CSTs.
2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
* config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
m68hc11_print_operand_address.
2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
* builtins.c (rewrite_call_expr): Move code to...
(rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
(rewrite_call_expr_array): New function.
(fold_builtin_sprintf_chk_1): New function.
(fold_builtin_sprintf_chk): Call it.
(gimple_fold_builtin_sprintf_chk): Likewise.
(fold_builtin_snprintf_chk_1): New function.
(fold_builtin_snprintf_chk): Call it.
(gimple_fold_builtin_snprintf_chk): Likewise.
(gimple_rewrite_call_expr): Delete.
2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
* config.host: Update copyright year.
2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
* config.host (host_lto_plugin_soname): New shell variable.
* configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
* config.in: Regenerate.
* configure: Regenerate.
* gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
LTO plugin shared library.
2010-10-07 Richard Henderson <rth@redhat.com>
* target.h (enum unwind_info_type): Move ...
* coretypes.h: ... here.
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Fast enumeration protocol): Mention that
'unsigned int' can also be used instead of 'unsigned long' in
countByEnumeratingWithState:objects:count:.
2010-10-07 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (struct access): New field grp_assignment_write.
(dump_access): Dump grp_assignment_write.
(build_accesses_from_assign): Set grp_assignment_write.
(sort_and_splice_var_accesses): Aggregate grp_assignment_write.
(mark_read_status): Renamed to mark_rw_status, individual values
renamed too.
(analyze_access_subtree): Changed type of mark_write to
mark_read_status. Fixed propagating of mark_read and
mark_write. Changed benefit estimate. Updated comment.
2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
PR Tree-Vect/45847
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
check for vectype_out returned by get_vectype_for_scalar_type().
2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
PR target/45805
* config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
constraint, add register specifier in instruction template.
(neon_vec_pack_trunc_<mode>): Likewise.
(neon_vec_<US>mult_<mode>): Add register specifier to
instruction template.
2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
* config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
cygwin2.o.
(cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
(extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
* config/i386/t-cygwin (cygwin1.o): Delete build rule.
(cygwin2.o): Likewise.
* config/i386/cygwin1.c: Delete file.
* config/i386/cygwin2.c: Likewise.
* config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
make all {%!mno-cygwin} ones unconditional.
(STARTFILE_SPEC): Likewise.
(REAL_LIBGCC_SPEC): Likewise.
(LIB_SPEC): Likewise.
(CXX_WRAP_SPEC): Likewise.
(LINK_SPEC): Likewise.
(CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
(CYGWIN_MINGW_SUBDIR_LEN): Likewise.
(cygwin_gplusplus_include_dir): Delete now-unused array.
(GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
(cygwin_gplusplus_tool_include_dir): Delete now-unused array.
(GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
(cygwin_gplusplus_backward_include_dir): Delete now-unused array.
(GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
(cygwin_local_include_dir): Delete now-unused array.
(LOCAL_INCLUDE_DIR): Don't redefine to point to it.
(cygwin_cross_include_dir): Delete now-unused array.
(CROSS_INCLUDE_DIR): Don't redefine to point to it.
(cygwin_tool_include_dir): Delete now-unused array.
(TOOL_INCLUDE_DIR): Don't redefine to point to it.
(cygwin_standard_include_dir): Delete now-unused array.
(STANDARD_INCLUDE_DIR): Don't redefine to point to it.
(GEN_CVT_ARRAY): Delete now-unused macro definition.
(cvt_to_mingw): Delete now-unused array.
(mingw_scan): Remove prototype of deleted function.
(GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
* config/i386/cygming.opt (mcygwin): Delete target-specific option.
* doc/invoke.texi (-mcygwin): Don't document removed option.
(-mno-cygwin): Likewise.
2010-10-07 Richard Guenther <rguenther@suse.de>
* machmode.h (mode_for_vector): Declare.
* stor-layout.c (mode_for_vector): New function, split out from ...
(layout_type): ... here.
* tree-vectorizer.h (current_vector_size): Declare.
* tree-vect-stmts.c (perm_mask_for_reverse): Check if the
mask vector type is available.
(get_vectype_for_scalar_type): Rename to ...
(get_vectype_for_scalar_type_and_size): ... this. Get a vector
size argument.
(get_vectype_for_scalar_type): New wrapper around
get_vectype_for_scalar_type_and_size using current_vector_size.
(get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
* tree-vect-loop.c (vect_analyze_loop_2): Split out core part
of vect_analyze_loop here.
(vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
* tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
to autodetect.
* config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
V8SF to V8SI conversion builtin.
2010-10-07 Richard Guenther <rguenther@suse.de>
* target.def (autovectorize_vector_sizes): New target hook.
* targhooks.c (default_autovectorize_vector_sizes): New function.
* targhooks.h (default_autovectorize_vector_sizes): Declare.
* doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
Document.
* doc/tm.texi: Update.
* config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
2010-10-07 Richard Guenther <rguenther@suse.de>
* target.def (units_per_simd_word): Rename to ...
(preferred_simd_mode): ... this. Return mode instead of size.
* targhooks.c (default_units_per_simd_word): Rename to ...
(default_preferred_simd_mode): ... this. Return word_mode.
* targhooks.h (default_preferred_simd_mode): Declare.
* config/arm/arm.c (arm_units_per_simd_word): Rename to ...
(arm_preferred_simd_mode): ... this. Re-implement.
* config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
(ix86_preferred_simd_mode): ... this. Re-implement.
* config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
(sparc_preferred_simd_mode): ... this. Re-implement.
* config/mips/mips.c (mips_units_per_simd_word): Rename to ...
(mips_preferred_simd_mode): ... this. Re-implement.
* config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
(rs6000_preferred_simd_mode): ... this. Re-implement.
* tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
* doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
(TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
* doc/tm.texi: Update.
2010-10-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45869
* tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
of pointers.
2010-10-07 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
rather than sign extension by hand.
2010-10-07 Jan Hubicka <jh@suse.cz>
PR middle-end/45926
* ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
2010-10-07 Richard Guenther <rguenther@suse.de>
PR bootstrap/45914
* configure.ac: Fix typo.
* configure: Regenerated.
2010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
define_builtin_std where it's unnecessary.
* config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
2010-10-06 Anatoly Sokolov <aesok@post.ru>
* doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
* doc/tm.texi.in: Regenerate.
* system.h (CLASS_LIKELY_SPILLED_P): Poison.
* targhooks.c (default_class_likely_spilled_p): Don't use the
CLASS_LIKELY_SPILLED_P macro.
* config/arm/arm.md: Update comment.
2010-10-06 Jan Hubicka <jh@suse.cz>
* ipa.c (cgraph_remove_unreachable_nodes): External references can
always be removed.
(cgraph_externally_visible_p): We can not bring local comdats that
are known to linker; fix handling of internal visibility.
(function_and_variable_visibility): Likewise.
2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/45394
* combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
(struct rtx_subst_pair): Remove AFTER field.
(propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
(propagate_for_debug): Remove MOVE parameter and adjust.
(try_combine): In the special case where I2 is a PARALLEL, combine only
destinations of SETs and set I2SRC to the I2 source.
Adjust calls to propagate_for_debug throughout.
* reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
insns.
2010-10-06 Olivier Hainque <hainque@adacore.com>
* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
switch on insn codes as sequence of ifs.
2010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
be UI_NONE for picochip.
(picochip_option_override): Do not disable exception flags.
* config/picochip/picochip-protos.h (picochip_except_unwind_info):
Declare.
2010-10-06 Richard Guenther <rguenther@suse.de>
* Makefile.in (regmove.o): Depend on $(TARGET_H).
2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented fast enumeration for Objective-C.
* c-parser.c (objc_could_be_foreach_context): New.
(c_lex_one_token): Recognize RID_IN keyword in a potential
Objective-C foreach context.
(c_parser_declaration_or_fndef): Added parameter. Accept
Objective-C RID_IN keyword as terminating a declaration; in that
case, return the declaration in the new parameter.
(c_parser_extenral_declaration): Updated calls to
c_parser_declaration_or_fndef.
(c_parser_declaration_or_fndef): Same change.
(c_parser_compound_statement_nostart): Same change.
(c_parser_label): Same change.
(c_parser_objc_methodprotolist): Same change.
(c_parser_omp_for_loop): Same change.
(c_parser_for_statement): Detect and parse Objective-C foreach
statements.
(c_parser_omp_for_loop): Updated call to check_for_loop_decls().
* c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
fast enumeration parsing code to turn off the c99 error but still
perform checks on the loop declarations.
* c-tree.h (check_for_loop_decls): Updated declaration.
* doc/objc.texi: Document fast enumeration.
2010-10-06 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
(MDR_REGNUM): Define.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
(REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
(INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
(REGISTER_NAMES): Add MDR.
(DWARF2_DEBUGGING_INFO): Define to 1.
* config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
(F): New function. Sets RTX_FRAME_RELATED_P.
(mn10300_gen_multiple_store): Use F.
(expand_prologue): Use F. Use gen_movsf() to push floating
point registers.
(expand_epilogue): Use gen_movsf() to pop floating point registers.
(mn10300_option_override): Disable combine stack adjust pass.
2010-10-06 Thomas Schwinge <thomas@schwinge.name>
PR target/45901
* config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
2010-10-06 Jakub Jelinek <jakub@redhat.com>
* builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
BUILT_IN_TOUPPER): Mark as leaf.
PR middle-end/45838
* omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
2010-10-05 Anatoly Sokolov <aesok@post.ru>
* config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(m68hc11_class_likely_spilled_p): New function.
2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_method_definition): Updated comment.
2010-10-05 Jan Hubicka <jh@suse.cz>
* doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
Document.
* opts.c (decode_options): Handle lto partitions.
* common.opt (flto-partition=1to1, flto-partition=balanced): New.
* params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
2010-10-05 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (assemble_function): Output thunks and aliases before
the function itself.
2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (picochip_option_override): Disable
exception flags for picochip.
2010-10-05 Joseph Myers <joseph@codesourcery.com>
* opts-common.c (handle_option, handle_generated_option,
read_cmdline_option, set_option): Add diagnostic_context
parameter. Update calls among these functions.
(set_option): Don't use global_dc.
* opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
(decode_options): Pass global_dc to enable_warning_as_error.
(common_handle_option): Pass global_dc to enable_warning_as_error.
(enable_warning_as_error): Add diagnostic_context parameter.
Document parameters. Don't use global_dc. Pass
diagnostic_context parameter to handle_generated_option.
* opts.h (set_option, handle_option, handle_generated_option,
read_cmdline_option, enable_warning_as_error): Add
diagnostic_context parameter.
* Makefile.in (lto-opts.o): Update dependencies.
* coretypes.h (struct diagnostic_context, diagnostic_context):
Declare here.
* diagnostic.h (diagnostic_context): Don't declare typedef here.
* gcc.c (process_command): Pass global_dc to read_cmdline_option.
* langhooks-def.h (struct diagnostic_context): Don't declare here.
(lhd_print_error_function, lhd_initialize_diagnostics): Declare
using diagnostic_context typedef.
* langhooks.c (lhd_initialize_diagnostics): Declare using
diagnostic_context typedef.
* langhooks.h (struct diagnostic_context): Don't declare here.
(initialize_diagnostics, print_error_function): Declare using
diagnostic_context typedef.
* lto-opts.c: Include diagnostic.h.
(lto_reissue_options): Pass global_dc to set_option. Pass
DK_UNSPECIFIED not 0.
* plugin.c (plugins_internal_error_function): Declare using
diagnostic_context typedef.
* plugin.h (struct diagnostic_context): Don't declare here.
(plugins_internal_error_function): Declare using
diagnostic_context typedef.
2010-10-05 Olivier Hainque <hainque@adacore.com>
Nicolas Roche <roche@adacore.com>
* config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
* config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
2010-10-05 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/45752
* tree-vect-slp.c (vect_get_mask_element): Remove static
variables, make them function arguments.
(vect_transform_slp_perm_load): Pass new arguments to
vect_get_mask_element.
2010-10-05 Richard Guenther <rguenther@suse.de>
* value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
(gimple_mod_pow2): Likewise.
(gimple_mod_subtract): Likewise.
(gimple_ic): Likewise.
(gimple_stringop_fixed_value): Likewise.
* tree-profile.c (tree_init_edge_profiler): Mark profile
functions nothrow and leaf.
(add_abnormal_goto_call_edges): Remove.
(tree_gen_edge_profiler): Work on SSA form.
(tree_gen_ic_profiler): Likewise. Simplify.
(do_tree_profiling): Update SSA form.
(pass_tree_profile): Remove.
(do_tree_profiling): Likewise.
(gate_tree_profile_ipa): New function.
(pass_ipa_tree_profile): New.
(tree_profiling): Re-write as IPA pass. Properly drop const/pure
state of instrumented functions.
* passes.c (init_optimization_passes): Remove early non-SSA
inlining. Move profiling after early optimizations.
* ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
(pass_ipa_early_inline): Likewise.
* tree-pass.h (pass_ipa_early_inline): Remove.
(pass_tree_profile): Likewise.
(pass_ipa_tree_profile): Declare.
2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
* config/s390/s390.c (z196_cost): New.
(s390_handle_arch_option): Add -march=z196.
(s390_option_override): Use the new cost function and use the z10
defaults also for z196.
(legitimate_reload_constant_p): Adjust comment.
(legitimate_reload_fp_constant_p): New function.
(s390_preferred_reload_class): Distingiush between FP and Int constants.
(preferred_la_operand_p): Avoid la with index on z196.
(s390_adjust_priority): Trigger also for z196.
(s390_issue_rate): Issue rate for z196 is 3.
(s390_z10_fix_long_loop_prediction): Rename to ...
(s390_fix_long_loop_prediction): ... this.
(s390_reorg): Apply the z10 adjustments also for z196.
(s390_loop_unroll_adjust): Do this also for z196.
* config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
(enum processor_flags): Add PF_Z196.
(TARGET_AVOID_CMP_AND_BRANCH): New macro.
(TARGET_CPU_Z196, TARGET_Z196): New macros.
* config.gcc: Enable z196 for --with-arch.
* config/s390/2817.md: New file.
* config/s390/2084.md: New type for multiply and add.
* config/s390/2097.md: Likewise.
* config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
(UNSPECV_ATOMIC_OP): New constants.
(fmadddf, fmaddsf): New values for type attribute.
(z196prop): New insn attribute.
(cpu, cpu_facility): Add z196.
(ATOMIC_Z196): New code iterator.
(noxa): New code attribute.
(gk): New mode attribute.
(*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
Support load zero for fp constants.
(fixuns_truncdddi2, fixuns_trunctddi2)
(fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
for z196.
(fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
(popcounthi2, popcountqi2): New expander.
(*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
(floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
(sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
insn definition.
(add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
(*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
(*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
(*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
(*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
(*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
(*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
(*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
(*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
(*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
(*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
(*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
(*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
Support new z196 instructions.
2010-10-05 Richard Guenther <rguenther@suse.de>
PR middle-end/45877
* gimple-fold.c (gimplify_and_update_call_from_tree): Handle
case where gimplification optimizes away the stmt.
2010-10-04 Jakub Jelinek <jakub@redhat.com>
PR debug/45849
* var-tracking.c (strip_pointer_flags): New function.
(emit_note_insn_var_location): If rtx_equal_p check failed,
retry on locations simplified with simplify_replace_fn_rtx
and strip_pointer_flags as its callback.
2010-10-04 Jan Hubicka <jh@suse.cz>
* gimple-fold.c (static_object_in_other_unit_p): Rename to...
(can_refer_decl_in_current_unit_p): ... this one; reverse return
value; handle comdats too.
(canonicalize_constructor_val): Use it; handle function_decls
correctly.
(gimple_fold_obj_type_ref_known_binfo): Likewise.
* gimple.c (get_base_address): Accept all kinds of decls.
2010-10-04 Joseph Myers <joseph@codesourcery.com>
* flags.h (g_switch_value, g_switch_set): Remove.
* opts.c (g_switch_value, g_switch_set): Remove.
* config/g.opt (G): Add Var(g_switch_value).
* config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
(alpha_option_override): Check global_options_set.x_g_switch_value
instead of g_switch_set.
(alpha_in_small_data_p): Remove cast in comparison with
g_switch_value.
* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
g_switch_value to unsigned HOST_WIDE_INT.
* config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
with g_switch_value.
(frv_handle_option): Don't handle -G here.
(frv_option_override): Check global_options_set.x_g_switch_value
instead of g_switch_set. Don't modify g_switch_set.
(frv_in_small_data_p): Remove cast in comparison with g_switch_value.
* config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
g_switch_value to unsigned HOST_WIDE_INT.
* config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
(ia64_option_override): Check global_options_set.x_g_switch_value
instead of g_switch_set.
* config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
Remove.
(lm32_in_small_data_p): Remove cast in comparison with
g_switch_value.
* config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
HOST_WIDE_INT.
* config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
(m32r_init): Check global_options_set.x_g_switch_value instead of
g_switch_set.
(m32r_in_small_data_p): Remove cast in comparison with
g_switch_value.
(m32r_file_start): Format g_switch_value with %d.
* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
* config/microblaze/microblaze.c (microblaze_handle_option): Don't
handle -G here.
(microblaze_option_override): Check
global_options_set.x_g_switch_value instead of g_switch_set.
* config/mips/mips.c (mips_handle_option): Don't handle -G here.
(mips_option_override): Check global_options_set.x_g_switch_value
instead of g_switch_set.
* config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
(rs6000_file_start): Format g_switch_value with %d.
(small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
comparisons with g_switch_value.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_g_switch_value instead of g_switch_set.
* config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_g_switch_value instead of g_switch_set.
* config/score/score.c (score_handle_option): Don't handle -G here.
* config/score/score3.c (score3_option_override): Check
global_options_set.x_g_switch_value instead of g_switch_set.
* config/score/score7.c (score7_option_override): Check
global_options_set.x_g_switch_value instead of g_switch_set.
2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
* common.opt (fira-coalesce): Remove.
* doc/invoke.texi (flag_ira_coalesce): Remove.
* ira-color.c (allocno_coalesced_p): Move before
copy_freq_compare_func.
processed_coalesced_allocno_bitmap): Ditto.
(update_conflict_hard_regno_costs): Don't use
ALLOCNO_FIRST_COALESCED_ALLOCNO.
(allocno_cost_compare_func, print_coalesced_allocno): Remove.
(assign_hard_reg): Assume no coalesced allocnos.
(get_coalesced_allocnos_attributes): Remove.
(bucket_allocno_compare_func): Assume no coalesced allocnos.
(push_allocno_to_stack): Ditto.
(remove_allocno_from_bucket_and_push): Use
ira_print_expanded_allocno instead of print_coalesced_allocno.
(push_allocnos_to_stack): Assume uncoalesced allocnos.
(all_conflicting_hard_regs_coalesced): Ditto. Rename to
all_conflicting_hard_regs.
(setup_allocno_available_regs_num): Assume uncoalesced allocnos.
(setup_allocno_left_conflicts_size): Ditto.
(put_allocno_into_bucket): Ditto.
(copy_freq_compare_func): Remove.
(copy_freq_compare_func, merge_allocnos): Move before
coalesced_pseudo_reg_freq_compare.
coalesced_allocno_conflict_p): Ditto.
(coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
parameter. Assume it true.
(color_allocnos): Assume uncoalesced allocnos. Use
ira_print_expanded_allocno instead of print_coalesced_allocno.
(ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
parameter.
* ira.c: Remove comment about coalescing.
2010-10-04 Joseph Myers <joseph@codesourcery.com>
* config/mips/mips.h (target_flags_explicit): Declare for
GENERATOR_FILE.
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
2010-10-04 Matthias Klose <doko@ubuntu.com>
* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
multilib osdirname if it exists.
* config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2010-10-04 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45876
* fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
arg0's type or its unsigned counterpart as utype. Convert
arg1 to utype unconditionally.
2010-10-04 Julian Brown <julian@codesourcery.com>
* expr.c (expand_assignment): Add assertion to prevent emitting
null rtx for movmisalign pattern.
(expand_expr_real_1): Likewise.
* config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
(arm_vector_alignment_reachable): New.
(TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
(neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
(arm_print_operand): Include alignment qualifier in %A.
* config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
(movmisalign<mode>): New expander.
(movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
insn patterns.
2010-10-04 Joseph Myers <joseph@codesourcery.com>
* optc-gen.awk: Define global_options_set. Don't define
target_flags_explicit.
* opth-gen.awk: Declare global_options_set. Define
target_flags_explicit as macro.
* opts-common.c (handle_option): Take opts_set and generated_p
parameters.
(handle_generated_option, read_cmdline_option, set_option): Take
opts_set parameter.
(set_option): Use opts_set instead of hardcoding target_flags and
target_flags_explicit.
* opts.c (sel_sched_switch_set, profile_arc_flag_set,
flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
flag_value_profile_transformations_set, flag_peel_loops_set,
flag_branch_probabilities_set, flag_inline_functions_set,
flag_ipa_cp_set, flag_ipa_cp_clone_set,
flag_predictive_commoning_set, flag_unswitch_loops_set,
flag_gcse_after_reload_set): Remove.
(common_handle_option, lang_handle_option, target_handle_option):
Take opts_set parameter. Assert that it is &global_options_set.
(common_handle_option): Don't set _set variables. Check opts_set
instead of such variables.
(enable_warning_as_error): Pass &global_options_set to
handle_generated_option.
* opts.h (cl_option_handler_func.handler, set_option,
handle_option, handle_generated_option, read_cmdline_option): Add
opts_set parameters.
(handle_option): Add generated_p parameter.
* config/i386/i386.c (ix86_function_specific_save,
ix86_function_specific_restore): Updat for renaming of
target_flags_explicit field.
* config/i386/i386.opt (target_flags_explicit): Rename to
ix86_target_flags_explicit.
* config/ia64/ia64.c (ia64_override_options_after_change): Check
global_options_set.x_flag_selective_scheduling and
global_options_set.x_flag_selective_scheduling2, not
sel_sched_switch_set.
* flags.h (sel_sched_switch_set,
flag_speculative_prefetching_set): Remove.
* gcc.c (driver_handle_option): Take opts_set parameter. Assert
that it is &global_options_set.
(process_command): Pass &global_options_set to read_cmdline_option.
* lto-opts.c (lto_reissue_options): Pass &global_options_set to
set_option.
* toplev.c (target_flags_explicit): Remove.
2010-10-04 Jan Hubicka <jh@suse.cz>
PR middle-end/45871
* tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
use get_ref_base_and_offset to handle references.
(fold_const_aggregate_ref): Update.
2010-10-04 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/45572
* ipa-prop.c (ipa_make_edge_direct_to_target): Call
ipa_check_create_node_params.
* ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
2010-10-04 Yao Qi <yao@codesourcery.com>
* doc/passes.texi: Clean up.
2010-10-03 Ian Lance Taylor <iant@google.com>
* c-typeck.c (lookup_field): If -fplan9-extensions, permit
referring to a field using a typedef name.
(find_anonymous_field_with_type): New static function.
(convert_to_anonymous_field): New static function.
(convert_for_assignment): If -fplan9-extensions, permit converting
pointer to struct to pointer to anonymous field.
* c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
(is_duplicate_field): New static function.
(detect_field_duplicates_hash): If -fplan9-extensions, check for
typedef names duplicating field names.
(detect_field_duplicates): Likewise.
* doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
(C Dialect Options): Document -fplan9-extensions.
* doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
* tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
revision 164914.
(vect_create_data_ref_ptr): Likewise.
* tree-vect-stmts.c (vectorizable_store): Likewise.
(perm_mask_for_reverse): Likewise.
(reverse_vec_elements): Likewise.
(vectorizable_load): Likewise.
2010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
* cppbuiltin.c: New file.
* cppbuiltin.h: New file.
* Makefile.in: Take into account cppbuiltin.{h,c}.
2010-10-03 Andi Kleen <ak@linux.intel.com>
* lto-cgraph.c (input_cgraph): Check for missing sections.
2010-10-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
to nonimmediate_operand. Force operand 2 to register when allowed.
(*<shiftrt_insn><mode>3_mask): Ditto.
(*<rotate_insn><mode>3_mask): Ditto.
2010-10-02 H.J. Lu <hongjiu.lu@intel.com>
PR tree-optimization/45720
PR tree-optimization/45764
* tree-vect-data-refs.c (vect_analyze_data_ref_access):
Don't accept backwards consecutive accesses.
(vect_create_data_ref_ptr): Disallow negative steps.
* tree-vect-stmts.c (vectorizable_store): Allow negative steps.
(perm_mask_for_reverse): Removed.
(reverse_vec_elements): Likewise.
(vectorizable_load): Don't handle negative steps.
2010-10-02 Jan Hubicka <jh@suse.cz>
* tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
call destination is known.
2010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/45820
* config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
earlier.
2010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/install.texi (Configuration): Document build_configargs,
host_configargs, target_configargs.
2010-10-01 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
(*<shiftrt_insn><mode>3_mask): Ditto.
(*<rotate_insn><mode>3_mask): Ditto.
2010-10-01 Steve Ellcey <sje@cup.hp.com>
PR tree-optimization/44716
* config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
(HOT_TEXT_SECTION_NAME): Define.
2010-10-01 Nick Clifton <nickc@redhat.com>
* common.opt: Add -fcombine-stack-adjustments.
* opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
* combine-stack-adj.c (gate_handle_stack_adjustments): Check
flag_combine_stack_adjustments.
* doc/invoke.texi: Document the new option.
2010-10-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45854
* tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
2010-10-01 Anthony Green <green@moxielogic.com>
* config.gcc: Fix moxie-*-rtems* configuration.
2010-10-01 Richard Guenther <rguenther@suse.de>
* dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
(gen_decl_die): Likewise.
2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
to the function code for SPU MD builtins.
(spu_expand_builtin): Update.
* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
sjlj_except_unwind_info.
2010-10-01 Tristan Gingold <gingold@adacore.com>
* configure.ac: Define the nop insn for avr*-*-*
* configure: Regenerate.
2010-10-01 Alan Modra <amodra@gmail.com>
PR target/45807
* config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
extend toc_restore_insn.
2010-09-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43959
* function.c (gimplify_parameters): Use create_tmp_reg instead of
create_tmp_var.
2010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_expand_prologue): Set
current_function_static_stack_size.
2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac: Check for Solaris 8 ld with .hidden support.
* configure: Regenerate.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/45758
* graphite.c (graphite_initialize): Call scev_reset.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* sese.h (scev_analyzable_p): Return false for real or floating
point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
and ps.
* graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
domain.
* graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
Do not allocate ub_expr, it is passed in initialized.
2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c (init_cloog_input_file): New.
(build_cloog_prog): Dump CLooG input file when
flag_graphite_dump_cloog is set. This is disabled on trunk.
* graphite-cloog-compat.h (cloog_program_dump_cloog): New.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (graphite_verify): Remove call to
verify_dominators for CDI_POST_DOMINATORS.
* sese.h: Remove comment about CDI_POST_DOMINATORS.
(recompute_all_dominators): Remove call to free_dominance_info
for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
for CDI_POST_DOMINATORS.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
over pbb_dim_iter_domain.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-flattening.c: Fix comments.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* Makefile.in (OBJS-common): Add graphite-flattening.o.
(graphite-flattening.o): New rule.
* common.opt (floop-flatten): New flag.
* doc/invoke.texi (-floop-flatten): Documented.
* graphite-flattening.c: New.
* graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
* graphite-poly.h (flatten_all_loops): Declared.
(lst_remove_loop_and_inline_stmts_in_loop_father): New.
* tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
is set, also set flag_graphite.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (cloog_checksum): New.
* graphite-poly.h (cloog_checksum): Declared.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (pbb_number_of_iterations): Removed.
(pbb_number_of_iterations_at_time): Correctly compute the number
of iterations in the transformed loop.
* graphite-poly.h (pbb_number_of_iterations): Removed.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.h (lst_update_scattering_seq): Removed.
(lst_update_scattering): Correctly handle outermost loop dewey
renumbering.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
lst_strip_mine_profitable_p. Call lst_niter_for_loop.
* graphite-poly.h (lst_niter_for_loop): New.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (apply_poly_transforms): Do not abort when the
transform read from disk is not legal. Call fatal_error instead.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
(print_scop_header): Removed. Inlined in the only call place...
(print_scop): ... here.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (dot_deps): Avoid set but not used warning.
(dot_deps_stmt): Same.
* graphite-poly.c (dot_lst): Same.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-blocking.c (scop_do_strip_mine): Do not call
graphite_legal_transform.
(scop_do_block): Same.
2010-09-30 Vladimir Kargov <kargov@gmail.com>
* graphite-scop-detection.c (graphite_can_represent_loop): Correct the
description.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* tree-scalar-evolution.c (instantiate_array_ref): New.
(instantiate_scev_r): Also handle ARRAY_REFs.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
RESULT_DECL, and FIELD_DECL. Return false for an
SSA_NAME_IS_DEFAULT_DEF.
(compute_scalar_evolution_in_loop): Do not further analyze the
scalar evolution when no_evolution_in_loop_p returns true.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* tree-chrec.h (evolution_function_is_affine_p): Do not check
whether CHREC_LEFT is invariant. A function is affine when
CHREC_RIGHT is invariant.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (reduction_phi_p): Remove check for
is_gimple_reg.
(rewrite_degenerate_phi): Same.
(rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
2010-09-30 Vladimir Kargov <kargov@gmail.com>
* graphite-scop-detection.c (graphite_can_represent_scev,
graphite_can_represent_expr, stmt_has_simple_data_refs_p,
graphite_can_represent_loop): Remove outermost_loop.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/45229
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
handle GIMPLE_CALLs with no LHS.
2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
* graphite-poly.c (init_graphite_out_file): New.
(init_graphite_in_file): New.
(apply_poly_transforms): Updated to enable reading and writing of
multiple scop files.
2010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
* graphite-scop-detection.c (graphite_can_represent_scev): Remove
redundant checks.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (precision_for_value): Adjust
computation of precision by 1.
2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
* graphite-cloog-util.c (openscop_read_cloog_matrix): New.
(openscop_read_polyhedron_matrix): New.
* graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
(openscop_read_N_int): Same.
* graphite-poly.c (openscop_read_N_int): New.
(openscop_read_one_int): New.
(openscop_read_N_string): New.
(openscop_read_one_string): New.
(openscop_read_powerset_matrix): New.
(graphite_read_transforms): Remove.
(graphite_read_scatt): New.
(graphite_read_scop_file): New.
(apply_poly_transforms): Updated to call graphite_read_scop_file.
2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-poly.c: Change include order.
2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
(cloog_matrix_nrows): New.
2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
* graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
from matrix lines.
* graphite-poly.c (openscop_print_scattering_function_1): Same.
(print_scattering_function_1): Same.
(openscop_print_pbb_domain): Same.
(openscop_print_scop_context): Same.
(print_scop_context): Same.
2010-09-30 Riyadh Baghdad <baghdadi.mr@gmail.com>
* graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
(openscop_print_pdr_polyhedron): Print pph.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
priority signed types.
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (max_signed_precision_type): Remove
the call to lang_hooks.types.type_for_size. Call
build_nonstandard_integer_type.
2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
* graphite-cloog-util.c (openscop_print_cloog_matrix): New.
(openscop_print_polyhedron_matrix): New.
* graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
* graphite-poly.c (openscop_print_pdr_polyhedron): Same.
(openscop_print_pdr_powerset): New.
(openscop_print_powerset_matrix): New.
(openscop_print_scattering_function_1): New.
(print_scattering_function): Add support for scattering names and
OpenScop format.
(graphite_write_transforms): Remove.
(print_pdr_access_layout): Updated to support OpenScop format.
(print_pdr): Same.
(openscop_print_pbb_domain): New.
(print_pbb_body): Added a parameter to allow indicating that pbb_body
is not provided.
(print_pbb): Updated to call the new print_pbb_body.
(openscop_print_scop_context): New.
(print_scop_header): New.
(print_scop): Updated to call print_scop_header.
* graphite-poly.h: Document OpenScop format.
2010-09-30 Anatoly Sokolov <aesok@post.ru>
* config/cris/m32c.c (cris_memory_move_cost): New.
(cris_register_move_cost): Make static. Change arguments type from
enum reg_class to reg_class_t.
(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
* config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
* config/cris/cris-protos.h (cris_register_move_cost): Remove.
2010-09-30 Jakub Jelinek <jakub@redhat.com>
PR target/45843
* config/i386/i386.c (ix86_gimplify_va_arg): Use
INTVAL (XEXP (slot, 1)) as prev_size.
2010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/45837
* config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
* config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
defined.
* config/rs6000/option-defaults.h (toplevel): Change #if
TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
global option changes.
2010-09-30 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
PR tree-optimization/31261
* fold-const.c (fold_binary): Optimize ((A & N) + B) & M
for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
2010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR bootstrap/45796
* Makefile.in (build/gen%$(build_exeext)): Move rule after all
special-casing for generators and turn into ...
((genprog:%=build/gen%$(build_exeext))): ... this static pattern
rule, for better error messages in case of toplevel dependency errors.
(genprog): Add hooks, rename to ...
(genprogerr): ... this, and let genprog also contain check,
checksum, condmd.
((genprog:%=build/gen%$(build_exeext))): Rename to ...
((genprogerr:%=build/gen%$(build_exeext))): ... this.
(build/genhooks$(build_exeext)): Remove now-unneeded dependency.
2010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
for GMP, MPFR and MPC.
2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/sparc/sparc.opt (mimpure-text): Move ...
* config/sol2.opt: ... here. Correct description.
* config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
* doc/invoke.texi (Option Summary, SPARC Options): Move
-mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
(Option Summary, Solaris 2 Options): ... here.
(Submodel Options, Solaris 2 Options): New menu entry.
(SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
(Solaris 2 Options): ... here.
2010-09-30 Michael Eager <eager@eagercon.com>
* extend.texi (interrupt_handler): Add MicroBlaze to list.
(save_volatiles): Describe option for MicroBlaze.
* invoke.texi: Add MicroBlaze Options.
* contrib.texi: Add acknowledgment.
* md.texi: Add MicroBlaze d and z constraints.
* install.texi: Add microblaze-*-elf.
* configure.ac: Add microblaze-*-* to target list.
* configure: Regenerate.
* config.gcc: Add microblaze*-*-*, microblaze*-linux*.
* config/microblaze/microblaze-protos.h: New.
* config/microblaze/crti.s: New.
* config/microblaze/predicates.md: New.
* config/microblaze/linux.h: New.
* config/microblaze/microblaze.md: New.
* config/microblaze/constraints.md: New.
* config/microblaze/crtn.s: New.
* config/microblaze/microblaze.opt: New.
* config/microblaze/microblaze-c.c: New.
* config/microblaze/t-microblaze: New.
* config/microblaze/microblaze.c: New.
* config/microblaze/microblaze.h: New.
2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
* c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
parse @optional/@required and set the flags as appropriate.
2010-09-30 Nathan Froyd <froydnj@codesourcery.com>
* config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
2010-09-30 Joseph Myers <joseph@codesourcery.com>
* opt-functions.awk (static_var): Update comment.
(var_ref): Return offsetof expression or -1, not variable address.
* optc-gen.awk: Generate structure field initializers instead of
static variables. Expect -1 for missing variables instead of null
pointer. Add gcc_options parameters to generated functions.
* opth-gen.awk: Generate structure fields for static variables.
Add gcc_options parameters to generated functions.
* common.opt (optimize, optimize_size): Add variables.
* config/i386/i386-c.c (ix86_pragma_target_parse): Pass
&global_options to cl_target_option_restore.
* config/i386/i386.c (ix86_valid_target_attribute_p): Pass
&global_options to cl_optimization_restore, cl_target_option_save
and cl_target_option_restore.
(ix86_set_current_function): Pass &global_options to
cl_target_option_restore.
* config/pdp11/pdp11.h (optimize): Remove.
* config/rs6000/rs6000.h (optimize): Remove.
* config/sh/sh.h (optimize): Remove.
* config/xtensa/xtensa.h (optimize): Remove.
* coretypes.h (struct gcc_options): Declare.
* diagnostic.c (diagnostic_initialize): Initialize
context->option_state.
(diagnostic_report_diagnostic): Pass option_state to
option_enabled hook.
* diagnostic.h (diagnostic_context.option_enabled): Add void *
parameter.
(diagnostic_context.option_state): New field.
* final.c (final_start_function, final, final_scan_insn): Rename
optimize parameter to optimize_p.
* flags.h (optimize, optimize_size): Remove.
* function.c (invoke_set_current_function_hook): Pass
&global_options to cl_optimization_restore.
* gcc.c (driver_handle_option): Take gcc_options parameter.
Assert that it is &global_options.
(process_command): Pass &global_options to read_cmdline_option.
* ipa-pure-const.c (suggest_attribute): Pass &global_options to
option_enabled.
* lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
&global_options to set_option.
* opts-common.c (handle_option, handle_generated_option,
read_cmdline_option, set_option): Take explicit gcc_options
parameters. Use option_flag_var.
(option_flag_var): New.
* opts.c (common_handle_option, lang_handle_option,
target_handle_option): Take gcc_options parameter. Assert that it
is &global_options.
(read_cmdline_options): Pass &global_options to read_cmdline_option.
(print_filtered_help): Use option_flag_var. Pass &global_options
to option_enabled.
(common_handle_option): Use option_flag_var.
(option_enabled): Take opts parameter. Use option_flag_var.
(get_option_state): Take gcc_options parameter. Use
option_flag_var. Pass gcc_options parameter to option_enabled.
(enable_warning_as_error): Pass &global_options to
handle_generated_option.
* opts.h (struct cl_option): Change flag_var to flag_var_offset.
(cl_option_handler_func.handler): Take gcc_options parameter.
(option_enabled, get_option_state, set_option, handle_option,
handle_generated_option, read_cmdline_option): Take gcc_options
parameters.
* toplev.c (optimize, optimize_size): Remove.
(print_switch_values): Pass &global_options to option_enabled.
(option_affects_pch_p): Use option_flag_var. Pass &global_options
to get_option_state.
(general_init): Initialize global_dc->option_state.
* tree.c (build_optimization_node): Pass &global_options to
cl_optimization_save.
(build_target_option_node): Pass &global_options to
cl_target_option_save.
2010-09-30 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (type_consists_of_records_p): Do not check for trailing
zero sized bit-fields.
2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
(c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
(c_parser_objc_class_declaration): Same change.
(c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
RID_TRY and RID_AT_CATCH instead of RID_CATCH.
(c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
and RID_AT_PUBLIC instead of RID_PUBLIC.
(c_parser_statement_after_labels): Use RID_AT_TRY instead of
RID_TRY and RID_AT_CATCH instead of RID_CATCH.
2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
* doc/install.texi (Binaries): Update link to HP-UX porting centre.
Add links to current providers of packages for Solaris and IRIX.
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
* c-parser.c: Applied change originally in c-parse.in.
2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
Radar 4281748
* c-decl.c (start_decl): Check for redeclaration of class name.
* c-parse.in (after_type_declarator): Recognize CLASSNAME.
2010-09-29 Steve Ellcey <sje@cup.hp.com>
* config/ia64/ia64.c (ia64_builtin_decl): New.
(TARGET_BUILTIN_DECL): Define.
(ia64_builtins): New.
(ia64_init_builtins): Save decls in ia64_builtins.
2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
PR target/40457
* postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
(move2add_use_add3_insn): Likewise.
(reload_cse_move2add): Likewise.
* rtlanal.c (get_full_rtx_cost): New function.
* rtl.h (struct full_rtx_costs): New.
(init_costs_to_max, init_costs_to_zero, costs_lt_p,
costs_add_n_insns): New inline functions.
(get_full_rtx_cost): Declare.
PR c/45054
* reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
invariants. Check for reg_equiv_invariant.
(reload): Assert that spilled_pseudos is empty when returning.
2010-09-29 Kai Tietz <kai.tietz@onevision.com>
* config/i386/mingw32.h (TARGET_64BIT): replaced by
TARGET_64BIT_DEFAULT in #if check.
2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
* varasm.c (assemble_alias): Add error message for unsupported ifunc.
2010-09-29 Mike Stump <mikestump@comcast.net>
* config/darwin.h (flag_mkernel): Remove.
(flag_apple_kext): Likewise.
2010-09-29 Joseph Myers <joseph@codesourcery.com>
Jack Howarth <howarth@bromo.med.uc.edu>
* config/darwin.opt (undefined): Add.
2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
PR testsuite/45664
* configure.ac: Add --enable-indirect-function option.
* config.gcc: Add default_gnu_indirect_function.
* config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
(HAVE_GNU_INDIRECT_FUNCTION): ... this.
* varasm.c (do_assemble_alias): Adjust for macro name change.
* configure: Rebuilt.
* doc/install.texi: Document --enable-indirect-function.
2010-09-29 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (Variable, Var, Init): Update documentation
without reference to VarExists.
(VarExists): Remove.
* common.opt, config/i386/i386.opt, config/linux.opt,
config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
Don't use VarExists.
2010-09-29 Joseph Myers <joseph@codesourcery.com>
* optc-gen.awk: Generate global_options initializer instead of
individual variables. Add x_ prefix to names of structure members.
* opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
names of structure members.
* doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
* doc/tm.texi: Regenerate.
* alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
* builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
* c-parser.c (disable_extension_diagnostics,
restore_extension_diagnostics): Update names of cpp_options members.
* combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
* common.opt (fcompare-debug-second): Don't use Var.
* config/alpha/alpha.h (target_flags): Remove.
* config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
* config/bfin/bfin.h (target_flags): Remove.
* config/cris/cris.h (target_flags): Remove.
* config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
cl_target_option members.
* config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
(ix86_function_specific_print, ix86_valid_target_attribute_tree,
ix86_can_inline_p): Update names of cl_target_option members.
* config/i386/i386.h (ix86_isa_flags): Remove.
* config/lm32/lm32.h (target_flags): Remove.
* config/mcore/mcore.h (mcore_stack_increment): Remove.
* config/mcore/mcore.md (addsi3): Remove extern declaration of
flag_omit_frame_pointer.
* config/mep/mep.h (target_flags): Remove.
* config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
* config/mmix/mmix.h (target_flags): Remove.
* config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
flag_expensive_optimizations): Remove.
* config/s390/s390.h (flag_pic): Remove.
* config/score/score-conv.h (target_flags): Remove.
* config/sh/sh.h (sh_fixed_range_str): Remove.
* config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
* dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
* df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
* diagnostic.c (diagnostic_initialize): Update names of
diagnostic_context members.
* diagnostic.h (diagnostic_context): Rename inhibit_warnings and
warn_system_headers.
(diagnostic_report_warnings_p): Update for new names.
* dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
* emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
HARD_FRAME_POINTER_IS_ARG_POINTER.
* flags.h (flag_compare_debug): Declare.
* ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
* opts.c (flag_compare_debug): Define.
(common_handle_option): Update names of diagnostic_context
members. Handle -fcompare-debug-second.
(fast_math_flags_struct_set_p): Update names of cl_optimization
members.
* reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
* regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
* reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
* reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
* resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
* rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
* sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
* stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (picochip_output_internal_label):
This function can now be called for debug CFI labels, which can come
in the middle of a vliw instruction. Postpone until end of vliw.
2010-09-29 Richard Guenther <rguenther@suse.de>
* tree.h (SCOPE_FILE_SCOPE_P): New macro.
(DECL_FILE_SCOPE_P): Use it.
(TYPE_FILE_SCOPE_P): New macro.
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): In Objective-C, when dealing with
a CPP_NAME which is a reserved word, clearly separate cases for
OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): In Objective-C, do not replace
token->value with the canonical spelling. Do exactly like C and
C++ and leave it as it is.
2010-09-28 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (alpha_builtins): New.
(alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
(alpha_builtin_function): New.
(alpha_add_builtins, alpha_init_builtins): Use it.
2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/standards.texi (Standards): Expanded the section on
Objective-C and Objective-C++.
2010-09-28 DJ Delorie <dj@redhat.com>
PR target/45800
* config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
volatile MEMs.
2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
* c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
attributes on methods.
(c_parser_objc_method_definition): Handle attributes.
(c_parser_objc_methodproto): Likewise.
(c_parser_objc_maybe_method_attributes): New.
(c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
missing definition, similar to that in ObjC++.
2010-09-28 Richard Henderson <rth@redhat.com>
* defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
(MUST_USE_SJLJ_EXCEPTIONS): Remove.
(CONFIG_SJLJ_EXCEPTIONS): Remove.
(STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
(STACK_CHECK_PROTECT): Likewise.
* dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
(dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
(dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
(dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
(dwarf2out_assembly_start): Likewise.
* except.c (init_eh): Use targetm.except_unwind_info.
(finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
(output_one_function_exception_table): Likewise.
* final.c: Unconditionally include dwarf2out.h.
(final_start_function): Unconditionally call dwarf2out routines.
(final_end_function, final_scan_insn): Likewise.
* function.c (expand_function_end): Use targetm.except_unwind_info.
* opts.c (decode_options): Use targetm.except_unwind_info.
* system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
* target.def (debug_unwind_info, except_unwind_info): New.
* target.h (enum unwind_info_type): New.
* targhooks.c (default_debug_unwind_info): New.
(default_except_unwind_info): New.
(dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
* targhooks.h: Declare them.
* tree-tailcall.c: Include "target.h"
(suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
* Makefile.in (tree-tailcall.o): Update.
* tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
(lhd_gcc_personality): Likewise.
* doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
(TARGET_EXCEPT_UNWIND_INFO): New.
(DWARF2_UNWIND_INFO): Update.
(TARGET_DEBUG_UNWIND_INFO): New.
* doc/tm.texi: Rebuild.
* c-family/c-cppbuiltin.c (c_cpp_builtins): Use
targetm.except_unwind_info.
* config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
(arm_except_unwind_info): New.
(arm_compute_func_type): Use it.
(arm_expand_prologue, thumb_pushpop): Likewise.
(thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
(arm_unwind_emit, arm_output_fn_unwind): Likewise.
* config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
* config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
(DWARF2_UNWIND_INFO): Remove.
(MUST_USE_SJLJ_EXCEPTIONS): Remove.
(ARM_EABI_UNWIND_TABLES): Remove.
* config/ia64/ia64.c (ia64_debug_unwind_info): New.
(TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
(ia64_except_unwind_info): New.
(ia64_output_function_prologue): Use it.
(ia64_add_bundle_selector_before): Likewise.
(ia64_reorg, ia64_asm_unwind_emit): Likewise.
* config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
(TARGET_UNWIND_INFO): Remove.
* config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
* c-parser.c (c_parser_objc_class_definition): Adjust prototype.
(c_parser_objc_protocol_definition): Likewise.
(c_parser_external_declaration): Provide dummy attribute arguments.
(c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
(c_parser_objc_class_definition): Handle attributes.
(c_parser_objc_protocol_definition): Likewise.
2010-09-28 Tobias Burnus <burnus@net-b.de>
PR fortran/40569
PR fortran/40568
* toplev.h (save_decoded_options, save_decoded_options_count):
New global variables.
* toplev.c (save_decoded_options, save_decoded_options_count):
Export variables.
2010-09-28 Ian Lance Taylor <iant@google.com>
* config/i386/i386.c (ix86_supports_split_stack): Test
HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
2010-09-28 Ian Lance Taylor <iant@google.com>
PR target/45815
* opts.c (decode_options): Don't test whether the target supports
split stack if flag_split_stack == 0.
2010-09-28 Jan Hubicka <jh@suse.cz>
* builtin-attrs.def (ATTR_LEAF): New attribute.
(ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
* sync-builtins.def: Annotate all builtins by leaf.
* omp-builtins.def: Annotate all builtins by leaf.
* builtins.def: Annotate relevant builtins with leaf attribute.
(ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
leaf.
2010-09-28 Jan Hubicka <jh@suse.cz>
* tree-ssa-ccp.c (fold_ctor_reference): New function.
(fold_const_aggregate_ref): Use it.
* fold-const.c (canonicalize_constructor_val): Check that we don't fold
into external static.
2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/44452
* config/i386/i386.opt (mvect8-ret-in-mem): Define.
* config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
(ix86_solaris_return_in_memory): Remove.
* config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
* config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
(TARGET_SUBTARGET_DEFAULT): Redefine.
* config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
* config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
(TARGET_SUBTARGET_DEFAULT): Redefine.
* doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
-mvect8-ret-in-mem.
(i386 and x86-64 Options): Document -mvect8-ret-in-mem.
2010-09-29 Alan Modra <amodra@gmail.com>
PR target/45807
* config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
* config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
* config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
Delete.
* config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
(rs6000_emit_prologue): Don't just create frame save info for r2,
actually save r2.
2010-09-28 Richard Henderson <rth@redhat.com>
* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
when 8 bytes are requested.
2010-09-28 Tristan Gingold <gingold@adacore.com>
* config/avr/avr.c (expand_prologue): Set
current_function_static_stack_size.
2010-09-28 Tristan Gingold <gingold@adacore.com>
* config/alpha/alpha.md: Change the initial condition of the
probing loop.
2010-09-28 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (*avx_<umaxmin:code><mode>3):
Split from *avx_<maxmin:code><mode>3.
(*avx_<smaxmin:code><mode>3): Ditto.
* config/i386/i386.md (maxmin): Remove code iterator.
2010-09-27 Ian Lance Taylor <iant@google.com>
* config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
requires assembler support for CFI directives.
2010-09-27 Richard Henderson <rth@redhat.com>
* dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
2010-09-27 Hans-Peter Nilsson <hp@axis.com>
* emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
that AFTER is not in the range FROM..TO, inclusive.
2010-09-27 Hans-Peter Nilsson <hp@axis.com>
Bernd Schmidt <bernds@codesourcery.com>
PR rtl-optimization/45792
* cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
If not all insns are to be merged, for each edge, stash the
next candidate after the to-be-merged insns before doing the
merge, and use them for the retry at the new insertion point.
Handle CC0 targets when retrying.
2010-09-27 Ian Lance Taylor <iant@google.com>
* common.opt (fsplit-stack): New option.
* opts.c (decode_options): Set flag_split_stack to final value.
* target.def (supports_split_stack): New hook.
* gcc.c (STACK_SPLIT_SPEC): Define.
(LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
* doc/invoke.texi (Option Summary): Mention -fsplit-stack.
(Code Gen Options): Document -fsplit-stack.
* doc/extend.texi (Function Attributes): Mention no_split_stack.
(Function Attributes): Document no_split_stack.
* doc/tm.texi.in (Stack Smashing Protection): Add @hook
TARGET_SUPPORTS_SPLIT_STACK.
* doc/tm.texi: Rebuild.
* function.c (thread_prologue_and_epilogue_insns): If
flag_split_stack, add split stack prologue.
* explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
* varasm.c (saw_no_split_stack): New static variable.
(assemble_start_function): Set saw_no_split_stack if the function
has the no_split_stack attribute.
(file_end_indicate_split_stack): New function.
* output.h (file_end_indicate_split_stack): Declare.
* libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
and function.
* doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
routines.
* config/i386/i386.c (ix86_option_override_internal): Don't set
expand_builtin_va_start to NULL if -fsplit-stack.
(ix86_function_regparm): Reduce local regparm by 1 for 32-bit
-fsplit-stack.
(ix86_va_start): If -fsplit-stack, get overflow pointer from
scratch register set by prologue.
(ix86_code_end): If -fsplit-stack, call
file_end_indicate_split_stack.
(ix86_supports_split_stack): New static function.
(SPLIT_STACK_AVAILABLE): Define.
(split_stack_prologue_scratch_regno): New static function.
(split_stack_fn): New static variable.
(ix86_expand_split_stack_prologue): New function.
(ix86_live_on_entry): New static function.
(ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
(output_pic_addr_const): Likewise.
(i386_asm_output_addr_const_extra): Likewise.
(ix86_expand_call): Change return type to rtx. Return the new
call instruction.
(TARGET_SUPPORTS_SPLIT_STACK): Define.
(TARGET_EXTRA_LIVE_ON_ENTRY): Define.
* config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
(split_stack_prologue, split_stack_return): New insns.
(split_stack_space_check): New insn.
* config/i386/i386.h (struct machine_function): Add
split_stack_varargs_pointer field.
* config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
* config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
* config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
Declare.
(ix86_expand_call): Update declaration.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Type encoding): Added the new 'long double' (D)
code. Added byref, which was missing in the list of codes.
Explain that enumeration values are encoded as the integer type
that the compiler uses to store them. Explain and make examples
of how 'const' interacts with pointers, and the complication of
the encoding of 'const char *'.
(Legacy type encoding): New subsection, explaining that GCC emits
incorrect type encodings for the NeXT runtime for compatibility
reasons.
(@@encode): New subsection, explaining @encode and particularly
that protocol qualifiers are not recognized inside an @encode()
expression.
(Method signatures): New subsection, explaining how method
signatures are encoded.
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers. Removed small
change in build_conditional_expr that had been added when fixing
PR objc/27377 and which did the same check in a less complete way.
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
* c-typeck.c (build_conditional_expr): Call objc_have_common_type when
looking for objective-c common pointer types.
2005-06-22 Ziemowit Laski <zlaski@apple.com>
Radar 4154928
* c-typeck.c (build_conditional_expr): For two ObjC pointer types,
use their ObjC common type.
2010-09-27 Richard Guenther <rguenther@suse.de>
* dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
2010-09-27 Jie Zhang <jie@codesourcery.com>
* print-tree.c (print_node): Print in-constant-pool.
2010-09-27 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
(UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
(MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
(ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
2010-09-26 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
from pro_epilogue_adjust_stack_<mode>_{1,2}.
(pro_epilogue_adjust_stack_<mode>_add): Rename from
pro_epilogue_adjust_stack_<mode>_3.
* config/i386/i386.c (pro_epilogue_adjust_stack): Update for
renamed pro_epilogue_adjust_stack_{si,di}_add.
(ix86_expand_prologue): Use indirect functions. Update for renamed
pro_epilogue_adjust_stack_{si,di}_sub.
2010-09-26 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (movmsk_df): New insn.
(signbitdf): Split out of signbit<mode>2. Generate movmsk_df
sequence for TARGET_SSE_MATH.
2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c (mips_builtin_decls): Declare.
(mips_init_builtins): Store function declarations in
mips_builtin_decls.
(mips_builtin_decl): New function.
(TARGET_BUILTIN_DECL): Define.
2010-09-25 Kai Tietz <kai.tietz@onevision.com>
Richard Henderson <rth@redhat.com>
* config/i386/cygwin.asm: Include auto-host.h.
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
(__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
alignment code from the 64-bit path. Use gas local labels.
* config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
from _di_2. Remove the useless constant integer argument.
(pro_epilogue_adjust_stack_<mode>_3): New.
(allocate_stack_worker_probe_<mode>): Macroize from
allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
* config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
(__chkstk_ms): New function.
* config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
* config/i386/t-interix: Likewise.
* configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
(HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
(HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
* configure, config.in: Rebuild.
2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
* tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
statements because of the return slot optimization.
2010-09-25 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/avr/avr-protos.h (class_likely_spilled_p): Remove.
* config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(class_likely_spilled_p): Rename to...
(avr_class_likely_spilled_p): ...this. Make static. Change argument
type to reg_class_t.
2010-09-24 Jan Hubicka <jh@suse.cz>
* lto-symtab.c (lto_symtab_entry_def): Add guessed field.
(lto_symtab_resolve_symbols): Set it.
(lto_symtab_merge_decls_1): Do not compute used_from_object_file;
store resolution field in cgraph/varpool.
* cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
(cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
(cgraph_dump_node): Drop used_from_object_file.
(cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
(cgraph_function_body_availability): Use decl_replaceable_p.
(cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
(cgraph_can_remove_if_no_direct_calls_and_refs): Use
cgraph_used_from_object_file_p.
(cgraph_will_be_removed_from_program_if_no_direct_calls): Use
cgraph_used_from_object_file_p.
(resolution_used_from_other_file_p): New functoin.
(cgraph_used_from_object_file_p): New predicate.
* cgraph.h: Include plugin-api.h
(struct cgraph_local_info): Remove used_from_object_file.
(struct cgraph_node): Add resolution field.
(struct varpool_node): Likewise; remove used_from_object_file;
reove const_value_known.
(cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
(resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
varpool_used_from_object_file_p): Declare.
(varpool_get_node, varpool_extra_name_alias): Update prototype.
* tree.h (DECL_REPLACEABLE_P): Remove.
(decl_replaceable_p, decl_binds_to_current_def_p): Declare.
* final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
input_overwrite_node, input_node, input_varpool_node): Stream
resolution.
* expr.c (expand_expr_real_1): Use const_value_known_p
* ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
const_value_known.
(cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
(function_and_variable_visibility): Set resolution for local vars
and functions; use varpool_used_from_object_file_p.
* varasm.c (resolution_to_local_definition_p, resolution_local_p): New
static functions.
(default_binds_local_p_1): Use resolutoin info.
(decl_binds_to_current_def_p, decl_replaceable_p): New functions.
* varpool.c (varpool_get_node): Constify.
(const_value_known_p): Do not use vnode->const_value_known;
use decl_replaceable_p.
(varpool_finalize_decl): Do not set const_value_known.
(cgraph_variable_initializer_availability): Use decl_replaceable_p
(varpool_extra_name_alias): Return new node.
(varpool_used_from_object_file_p): New function.
2010-09-24 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
(TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
(do_spill): Use REG_CFA_OFFSET.
(ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
as appropriate.
(ia64_expand_epilogue): Likewise.
(process_set): Split into ...
(process_cfa_adjust_cfa): this,
(process_cfa_register): this,
(process_cfa_offset): and this new function.
(ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
instead of REG_FRAME_RELATED_EXPR.
2010-09-24 Olivier Hainque <hainque@adacore.com>
* config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
2010-09-24 Jan Hubicka <jh@suse.cz>
* doc/extend.texi: (attribute leaf): Document.
* tree.c (local_define_builtin): Handle ECF_LEAF.
(build_common_builtin_nodes): Set ECF_LEAF where needed.
* tree.h (ECF_LEAF): New.
* ipa-reference.c (propagate_bits): For leaf calls propagate ever
overwrittable and unavailable functions.
(ipa_init): Put all_module_statics into optimization_summary_obstack.
(copy_global_bitmap): Do not copy all_module_statics.
(read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
(propagate): Handle overwritable and unavailable leaf functions;
initialize global info for overwritable and unavailable leaf functions;
do not free all module statics.
(ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
local statics.
* calls.c (flags_from_decl_or_type): Handle leaf.
* tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
abnormal gotos.
2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c: Reindented.
* gengtype.h: Reindented.
* gengtype-parse.c: Reindented.
2010-09-24 Jan Hubicka <jh@suse.cz>
PR tree-optimization/45738
PR tree-optimization/45741
* expr.c (string_constant): Allow CONST_DECL too;
check that DECL_INITIAL is set.
* varpool.c (const_value_known_p): Only look into VAR_DECL
and CONST_DECL.
2010-09-24 Joseph Myers <joseph@codesourcery.com>
* common.opt (undef): New.
2010-09-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45234
* rtl.h (enum global_rtl_index): Add
GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
(LAST_VIRTUAL_POINTER_REGISTER): Define.
(virtual_preferred_stack_boundary_rtx,
VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
(LAST_VIRTUAL_REGISTER): Increase by one.
(REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
instead of LAST_VIRTUAL_REGISTER.
* function.c (instantiate_new_reg): Handle
virtual_preferred_stack_boundary_rtx.
* emit-rtl.c (init_virtual_regs): Handle
VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
(init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
* explow.c (round_push): If crtl->preferred_stack_boundary
is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
virtual_preferred_stack_boundary_rtx alignment instead of
crtl->preferred_stack_boundary alignment.
(allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
macros. Never decrease crtl->preferred_stack_boundary,
use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
instead of PREFERRED_STACK_BOUNDARY. Don't modify
stack_pointer_delta in dynamic allocation, even when size
is constant.
(probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
macro.
* print-rtl.c (print_rtx): Handle
VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
* config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
* config/frv/frv.c (frv_emit_movsi): Likewise.
* config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
* config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
Likewise.
Revert:
2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/45234
* calls.c (expand_call): Make sure that all variable sized
adjustments are multiple of preferred stack boundary after
stack alignment.
2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
Dominique Dhumieres <dominiq@lps.ens.fr>
PR bootstrap/45751
* config/darwin-driver.c (darwin_default_min_version):
Adjust size passed to memcpy in two places.
2010-09-24 Richard Guenther <rguenther@suse.de>
* c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
Make sure to not call set_type_context with error_mark_node.
* langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
2010-09-24 Richard Guenther <rguenther@suse.de>
* Makefile.in (OBJS-onestep): Remove.
(ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
(libbackend.a): Remove onestep support.
(libbackend.o): Remove.
* configure.ac (--enable-intermodule): Remove.
* configure: Regenerate.
2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
* cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
reaching the end of a block if it occurs at a DEBUG_INSN.
2010-09-09 Tristan Gingold <gingold@adacore.com>
PR target/44242
* config/vms/vms-crt0-64.c: Removed.
* config/vms/vms-crt0.c: Removed.
* config/vms/vms-psxcrt0-64.c: Removed.
* config/vms/vms-psxcrt0.c: Removed.
* config/vms/vms-ucrt0.c: New file.
* config/vms/t-vms64: Removed.
* config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
* config.gcc (alpha-dec-vms): Use t-vms.
2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
underfull hbox in DVI output.
(-fobjc-class-cxx-cdtors): Same change.
(-fobjc-exceptions): Tidied up documentation. Explain what the
option does, but moved the (lenghty) description of the exception
syntax into objc.texi.
(-fobjc-gc): Explain that the option is not useful with the GNU
runtime.
(-fzero-link): Explain that the GNU runtime always works in
"zero-link" mode.
* doc/objc.texi: All sections: simplified @node declarations
removing specification of next, previous, up node.
(Objective-C): Updated introduction.
(Garbage Collection): Updated. The bohem-gc library is now
included in gcc itself. Mention that this section only applies to
the GNU Objective-C runtime.
(compatibility_alias): Small tidy up.
(Exceptions): New section mostly containing text previously in the
description of the -fobjc-exception command-line option.
(Synchronization): Same.
2010-09-24 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (ix86_code_end): Move the initialization of
xops array near the consumer. Use AX_REG and SP_REG instead of
numerical constants.
2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
* c-typeck.c (convert_arguments): Use warning 'too many arguments to
method [methodname]' for an Objective-C method instead of the less
satisfactory 'too many arguments to function' (with no method name).
2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
* tree-flow.h (execute_update_addresses_taken): Remove parameter.
* tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
(execute_update_addresses_taken): Remove parameter. Execute the
optimization unconditionally.
* passes.c (execute_function_todo): Call execute_update_addresses_taken
unconditionally if TODO_rebuild_alias is set, else only when optimizing
if TODO_update_address_taken is set.
2010-09-23 Anatoly Sokolov <aesok@post.ru>
* config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
* config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
(arm_output_addr_const_extra): Make static.
2010-09-23 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
define as unspec_volatile.
("nops"): Define as unspec_volatile. Use fputs to write to
asm_out_file directly. Output NOPs on separate lines using while loop.
* config/i386/i386.c (ix86_code_end): Use fputs to write to
asm_out_file directly. Output NOPs on separate lines using while loop.
2010-09-23 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45565
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
Make sure to adjust the fndecl before replacing the stmt.
2010-09-23 Richard Guenther <rguenther@suse.de>
PR middle-end/45750
* gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
gimplifying MEM_REF.
2010-09-23 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (toc_relative_ok): Delete.
(rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
PR rtl-optimization/44374
* 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.
(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.
(MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
(find_memory, find_memory_store): New static functions.
(can_move_insns_across): New function.
* Makefile.in (df-problems.o): Update dependencies.
2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
PR java/44095
* config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
is specified and the suffix of the file isn't ".c".
* config/sparc/linux64.h (ASM_SPEC): Likewise.
2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
* doc/cppopts.texi: Fix markup of index entry.
* doc/extend.texi (Constructing Calls): Fix markup of
__builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
(Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
(Vague Linkage, C++ Attributes): Fix markup of index entries and
keywords.
* doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
avoid long lines.
(C Dialect Options, C++ Dialect Options, Warning Options)
(Debugging Options, Spec Files, Darwin Options)
(i386 and x86-64 Options, MIPS Options)
(RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
index entries, avoid abbreviations, allow URLs to wrap, avoid
long lines, avoid overlong pages from long @itemx lists.
* doc/objc.texi (Garbage Collection): Allow URLs to wrap.
* doc/standards.texi (Standards): Likewise.
* doc/trouble.texi (Incompatibilities): Fix markup of index entry.
2010-09-22 Joseph Myers <joseph@codesourcery.com>
* opts-common.c (prune_options): Make static. Work with decoded
options.
(decode_cmdline_options_to_array): Call prune_options. Don't
resize option array here.
* opts.h (prune_options): Remove prototype.
* gcc.c (process_command): Take decoded options; don't call
decode_cmdline_options_to_array here. Use decoded options for argv[0].
(main): Call decode_cmdline_options_to_array here instead of
prune_options. Update call to process_command.
* config/darwin-driver.c: Include opts.h.
(darwin_default_min_version): Work with decoded options. Don't
handle -b or -V here.
* config/darwin.h (darwin_default_min_version): Update prototype.
(GCC_DRIVER_HOST_INITIALIZATION): Update call to
darwin_default_min_version.
* config/i386/cygwin.h (mingw_scan): Update prototype.
(GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
* config/i386/cygwin1.c: Include opts.h.
(mingw_scan): Work with decoded options.
* config/i386/t-cygwin (cygwin1.o): Update dependencies.
* config/t-darwin (darwin-driver.o): Update dependencies.
2010-09-22 Joseph Myers <joseph@codesourcery.com>
* common.opt (-assemble, -compile, -coverage, -debug, -dump,
-dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
-for-assembler, -for-assembler=, -for-linker, -for-linker=,
-force-link, -force-link=, -language, -language=,
-library-directory, -library-directory=, -no-canonical-prefixes,
-no-standard-libraries, -no-warnings, -optimize, -output,
-output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
-pipe, -prefix, -prefix=, -preprocess, -print-file-name,
-print-file-name=, -print-libgcc-file-name,
-print-multi-directory, -print-multi-lib,
-print-multi-os-directory, -print-prog-name, -print-prog-name=,
-print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
-profile, -save-temps, -shared, -specs, -specs=, -static,
-symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
symbolic): New.
(fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
* gcc.c (A Short Introduction to Adding a Command-Line Option):
Remove comment.
(cc1_options): Correct specs for passing down --help,
--target-help and --help=*. Add spec for passing down --version.
(struct option_map, option_map, target_option_translations,
translate_options): Remove.
(driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
and OPT__target_help instead of OPT_fversion, OPT_fhelp,
OPT_fhelp_ and OPT_ftarget_help.
(process_command): Don't call translate_options. Call
decode_cmdline_options_to_array before checking for
-no-canonical-prefixes using decoded options.
* opts-common.c (tm.h): Update comment on #include.
(find_opt): Allow abbreviations of long options.
(struct option_map, option_map): New.
(decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
and -mno handling.
(target_option_translations): New.
(decode_cmdline_options_to_array): Handle
TARGET_OPTION_TRANSLATE_TABLE in driver.
* opts.c (common_handle_option): Don't handle OPT_fhelp,
OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
2010-09-22 Richard Guenther <rguenther@suse.de>
* tree-inline.c (optimize_inline_calls): Schedule cleanups
only if we inlined something. Block compaction and conditional
folding are done by cfg cleanup. Schedule update-address-taken.
(tree_function_versioning): Remove redundant call to number_blocks.
* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
folding is done by cfg cleanup.
* passes.c (init_optimization_passes): Remove update-address-taken
pass after IPA inlining.
2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
* postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
to update conditions. Fix reg_mode[] check.
2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.md (movhicc): Use expand to check whether
movhicc is available and split it after reload.
2010-09-22 Richard Guenther <rguenther@suse.de>
* tree-ssanames.c (release_dead_ssa_names): Do not remove
callee edges here.
* passes.c (init_optimization_passes): Remove early CFG cleanup.
* tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
(pass_cleanup_cfg): Likewise.
(execute_fixup_cfg): Cleanup.
* tree-pass.h (pass_cleanup_cfg): Remove.
2010-09-22 Martin Jambor <mjambor@suse.cz>
* gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
builtins if it is true.
(fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
parameter.
2010-09-22 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (struct access): New field grp_no_warning.
(create_access_replacement): Set TREE_NO_WARNING according to
grp_no_warning.
(create_artificial_child_access): Use build_ref_for_model and set
grp_no_warning if build_user_friendly_ref_for_offset fails.
(propagate_subaccesses_across_link): Likewise.
2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
PR target/35664
* config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
('f'): Likewise.
2010-09-22 Tristan Gingold <gingold@adacore.com>
* config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
2010-09-22 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
* config/i386/i386.c (decide_alg): Update for rename.
2010-09-22 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/45739
* simplify-rtx.c (simplify_binary_operation_1): Optimize even
vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
2010-09-21 Anatoly Sokolov <aesok@post.ru>
* config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
* config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
Remove.
* config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
(TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/23710
* c-parser.c (c_parser_objc_method_definition): Check the return
value of objc_start_method_definition and if false is returned,
parse the method definition but emit no code.
2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/25965
* c-decl.c (detect_field_duplicates): If compiling Objective-C,
call objc_get_interface_ivars ().
2010-09-21 Kai Tietz <kai.tietz@onevision.com>
PR target/45694
* config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
static chain-register is used for 64-bit.
2010-09-21 Richard Guenther <rguenther@suse.de>
* dwarf2out.c (is_cu_die): New function.
(add_pubtype): Use it.
(gen_subprogram_die): Likewise.
(gen_struct_or_union_type_die): Likewise.
(dwarf2out_finish): Likewise.
(comp_unit_die): Rename to ...
(single_comp_unit_die): ... this.
(comp_unit_die): New function lazily constructing and
returning single_comp_unit_die.
(is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
base_type_die, subrange_type_die, modified_type_die,
lower_bound_default, add_bound_info, add_prototyped_attribute,
dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
force_decl_die, gen_namespace_die, dwarf2out_decl,
dwarf2out_start_source_file, dwarf2out_end_source_file,
prune_unused_types, dwarf2out_finish): Use it.
(gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
the global list of translation-unit decls.
(dwarf2out_init): Do not create single_comp_unit_die here.
(force_decl_die): Handle TRANSLATION_UNIT_DECL.
2010-09-21 Richard Guenther <rguenther@suse.de>
* dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
for bool for C++.
2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
* config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
(qhs_extenddi_cstr): Likewise.
* config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
them for the source operand.
2010-09-21 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_split_ashl): Rename single_width variable
to half_width. Use GET_MODE_BITSIZE to calculate mode size.
(ix86_split_ashr): Ditto.
(ix86_split_lshr): Ditto.
2010-09-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45580
* tree-ssa-propagate.c (substitute_and_fold): Always replace
regular uses.
* gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
virtuals fold the call into a regular indirect one.
2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/42775
* cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
scheduling is enabled.
2010-09-20 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/45728
* expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
gen_lowpart_common first and if that fails, force_reg first
before calling gen_lowpart.
PR middle-end/45678
* cfgexpand.c (expand_one_stack_var_at): Use
crtl->max_used_stack_slot_alignment as max_align, instead
of maximum of that and PREFERRED_STACK_BOUNDARY.
Don't call update_stack_alignment.
2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
* langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
* langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
* system.h (LANG_HOOKS_HASH_TYPES): Poison.
* tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
(build_nonstandard_integer_type): Likewise.
(build_range_type_1): New function, built from...
(build_range_type): ...this. Call build_range_type_1.
(build_nonshared_range_type): New function.
(build_array_type_1): New function, built from...
(build_array_type: ...this. Call build_array_type_1.
(build_nonshared_array_type): New function.
* tree.h (build_nonshared_range_type): Declare.
(build_nonshared_array_type): Likewise.
2010-09-20 Anatoly Sokolov <aesok@post.ru>
* config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(arm_class_likely_spilled_p): New function.
2010-09-20 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
indirect functions.
(ix86_split_ashl): Ditto.
(ix86_split_ashr): Ditto.
(ix86_split_lshr): Ditto.
(ix86_adjust_counter): Ditto.
2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
* c-family/c-common.h (constant_string_class): Documented with
comment identical to the one already in c-common.c.
2010-09-20 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (any_cfis_emitted): New static variable.
(add_fde_cfi): Set it.
(dwarf2out_frame_debug): Clear it before processing,
if it is set afterwards, flush any queued reg saves.
PR debug/45124
* dwarf2out.c (add_accessibility_attribute): Assume
DW_ACCESS_private as the default for dwarf_version > 2
and DW_TAG_class_type parent.
(gen_inheritance_die): Assume DW_ACCESS_public as the default
for dwarf_version > 2 and parent other than DW_TAG_class_type.
2010-09-20 Rafael Carre <rafael.carre@gmail.com>
PR target/45726
* arm.md (arm_movt): Only enable on machines with MOVT.
2010-09-20 Jie Zhang <jie@codesourcery.com>
* config/arm/arm.c (arm_address_offset_is_imm): New.
(arm_early_store_addr_dep): New.
(arm_early_load_addr_dep): New.
* config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
(arm_early_load_addr_dep): Declare.
(arm_address_offset_is_imm): Declare.
* config/arm/cortex-m4.md: New file.
* config/arm/cortex-m4-fpu.md: New file.
* config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
(attr generic_sched): Exclude cortexm4.
(attr generic_vfp): Exclude cortexm4.
2010-09-20 Richard Guenther <rguenther@suse.de>
PR middle-end/45704
* gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
2010-09-20 Jan Hubicka <jh@suse.cz>
PR tree-optimize/45605
* cgraph.h (const_value_known_p): Declare.
(varpool_decide_const_value_known): Remove.
* tree-ssa-ccp.c (get_base_constructor): Use it.
* lto-cgraph.c (compute_ltrans_boundary): Likewise.
* expr.c (string_constant): Likewise.
* tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
* ipa.c (ipa_discover_readonly_nonaddressable_var,
function_and_variable_visibility): Likewise.
* gimplify.c (gimplify_call_expr): Likewise.
* gimple-fold.c (get_symbol_constant_value): Likewise.
* varpool.c (varpool_decide_const_value_known): Replace by...
(const_value_known_p): ... this one; handle other kinds of DECLs
too and work for automatic vars.
(varpool_finalize_decl): Use const_value_known_p.
2010-09-20 Rafael Carre <rafael.carre@gmail.com>
PR target/45726
* arm.md (arm_movtas_ze): Only enable on machine with MOVT.
2010-09-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45705
* tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
2010-09-20 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/45695
* combine.c (try_combine): When splitting a two set pattern,
make sure the pattern which will be put into i2 doesn't use REGs
or MEMs set by insns in between i2 and i3.
2010-09-19 Jan Hubicka <jh@suse.cz>
PR lto/44246
* lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
processing same node twice.
2010-09-19 Anatoly Sokolov <aesok@post.ru>
* config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(bfin_class_likely_spilled_p): New function
2010-09-19 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/45714
* tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
created in vectorizable_call instead of the original statement in
def stmt updates.
2010-09-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386-protos.h (split_double_mode): New prototype.
(split_di, split_ti): Remove prototypes.
* config/i386/i386.c (split_double_mode): New function.
(split_di, split_ti): Remove.
(ix86_expand_branch): Use split_double_mode.
(ix86_split_to_parts): Ditto.
(ix86_split_ashl): Ditto.
(ix86_split_ashr): Ditto.
(ix86_split_lshr): Ditto.
(ix86_force_to_memory): Ditto.
* config/i386/i386.md: Use split_double_mode in double-mode splitters.
2010-09-18 Jan Hubicka <jh@suse.cz>
PR tree-optimization/45453
* cgraphunit.c (cgraph_finalize_function): Consider comdat & external
virtual functions are reachable.
* ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
* ipa.c (cgraph_remove_unreachable_nodes): Likewise.
* ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
when modifying function.
2010-09-18 Jan Hubicka <jh@suse.cz>
PR tree-optimization/45605
* cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
* gimple-fold.c (static_object_in_other_unit_p): New function.
(canonicalize_constructor_val): Use it.
(get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
returning NULL.
(gimple_fold_obj_type_ref_known_binfo): Use
static_object_in_other_unit_p.
2010-09-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45709
* tree-inline.c (copy_phis_for_bb): Delay commit of edge
insertions until after all PHI nodes of the block are processed.
2010-09-18 Tijl Coosemans <tijl@coosemans.org>
* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
2010-09-18 Kai Tietz <kai.tietz@onevision.com>
* config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
2010-09-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45709
* tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
(dot_deps_stmt): Same.
* graphite-poly.c (dot_lst): Same.
* graphite-scop-detection.c (dot_all_scops): Same.
(dot_scop): Same.
2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
Revert:
2009-12-16 Ben Elliston <bje@au.ibm.com>
* tree-data-ref.c (dot_rdg_1): Added back.
(dot_rdg): Same. Added "#if 0" around system call.
2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
Richard Henderson <rth@redhat.com>
* config/i386/i386.c (initial_ix86_tune_features): Add
X86_TUNE_PAD_SHORT_FUNCTION.
(ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
(ix86_count_insn): New.
(ix86_pad_short_function): Likewise.
(ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
* config/i386/i386.h (ix86_tune_indices): Add
X86_TUNE_PAD_SHORT_FUNCTION.
(TARGET_PAD_SHORT_FUNCTION): New.
* config/i386/i386.md (UNSPEC_NOPS): New.
(nops): Likewise.
2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/45234
* calls.c (expand_call): Make sure that all variable sized
adjustments are multiple of preferred stack boundary after
stack alignment.
2010-09-17 DJ Delorie <dj@redhat.com>
* config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
passed an invalid value, print an error instead of ICEing.
(valid_psw_flag): New.
(rx_expand_builtin): Call it for setpsw/clrpsw.
(rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
* config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
(bitclr_in_memory): Likewise.
(clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/45678
* cfgexpand.c (update_stack_alignment): New.
(get_decl_align_unit): Use it.
(expand_one_stack_var_at): Call update_stack_alignment.
2010-09-17 Richard Guenther <rguenther@suse.de>
* lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
Properly copy the read string.
2010-09-17 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (Variable): Document.
* optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
generate target_flags declarations explicitly. Don't define
VarExists variables for the driver.
* common.opt (target_flags): New Variable record.
(flag_dump_unnumbered, flag_dump_unnumbered_links,
flag_var_tracking, flag_var_tracking_assignments,
flag_var_tracking_assignments_toggle): Don't mark variables with
VarExists.
* config/i386/i386.c (ix86_isa_flags): Don't define here.
* config/i386/i386.opt (ix86_isa_flags): Define here.
* config/mcore/mcore.c (mcore_stack_increment): Don't define here.
* config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
VarExists.
* flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
* print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
Only define for generator programs.
* rtlanal.c (target_flags): Remove.
* toplev.c (flag_var_tracking, flag_var_tracking_assignments,
flag_var_tracking_assignments_toggle): Remove.
2010-09-17 Michael Matz <matz@suse.de>
PR tree-optimization/43432
* tree-vect-data-refs.c (vect_analyze_data_ref_access):
Accept backwards consecutive accesses.
(vect_create_data_ref_ptr): If step is negative generate
decreasing IVs.
* tree-vect-stmts.c (vectorizable_store): Reject negative steps.
(perm_mask_for_reverse, reverse_vec_elements): New functions.
(vectorizable_load): Handle loads with negative steps when easily
possible.
2010-09-03 Jan Hubicka <jh@suse.cz>
* lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
* config/v850/v850.c (v850_function_value_regno_p): Make static.
Adjust comments. Declare.
(TARGET_FUNCTION_VALUE_REGNO_P): Define.
* config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
2010-09-17 Richard Guenther <rguenther@suse.de>
* common.opt (combine): Remove.
* gcc.c (default_compilers): Remove specs testing combine.
The C compilers no longer can combine.
(option_map): Remove -combine.
(display_help): Remove -combine.
(driver_handle_option): Remove OPT_combine handling.
(compile_input_file_p): Remove.
(do_spec): Remove code concerning combine.
(main): Likewise.
* doc/invoke.texi: Remove traces of -combine.
* lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
2010-09-17 Richard Guenther <rguenther@suse.de>
PR middle-end/45678
* builtins.c (fold_builtin_memory_op): Always properly adjust
alignment of memory accesses.
2010-09-16 Jan Hubicka <jh@suse.cz>
* lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
processing clone.
2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
* config/i386/i386.c (predict_jump): Add prototype.
(flag_opts): Add -m8bit-idiv.
(ix86_split_idivmod): New.
* config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
Add 2 splitters for SI/DI mode divide.
(divmod<mode>4_1): New pattern.
(udivmod<mode>4_1): Likewise.
(testdi_ccno_1): Likewise.
* config/i386/i386.opt (m8bit-idiv): New.
* doc/invoke.texi: Document -m8bit-idiv.
2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
PR bootstrap/45680
* config/i386/i386.c (min_insn_size): Moved out of the
ASM_OUTPUT_MAX_SKIP_PAD ifdef.
2010-09-16 Jan Hubicka <jh@suse.cz>
* lto-cgraph.c (lto_output_node): Fix handling of clones.
* ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
unreachable clones with reachable clones.
* tree-inline.c (copy_bb): Fix sanity checking when producing
unreachable clone.
2010-09-16 Anatoly Sokolov <aesok@post.ru>
* config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
(TARGET_MEMORY_MOVE_COST): Define.
(m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
2010-09-16 Alexander Monakov <amonakov@ispras.ru>
* sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
maybe_tidy_empty_bb.
Revert:
2010-09-06 Alexander Monakov <amonakov@ispras.ru>
* sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2010-09-16 Joseph Myers <joseph@codesourcery.com>
* target.def (target_option.optimization): New hook.
* doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
TARGET_OPTION_OPTIMIZATION hook.
* doc/tm.texi: Regenerate.
* hooks.c (hook_void_int_int): New.
* hooks.h (hook_void_int_int): Declare.
* opts.c: Don't include tm_p.h.
(decode_options): Use targetm.target_option.optimization instead
of OPTIMIZATION_OPTIONS.
* system.h (OPTIMIZATION_OPTIONS): Poison.
* config/arm/arm-protos.h (arm_optimization_options): Remove.
* config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
(arm_optimization_options): Rename to arm_option_optimization.
Make static.
* config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
* config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
(cris_option_optimization): New.
* config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
* config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
(crx_option_optimization): New.
* config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
* config/frv/frv-protos.h (frv_optimization_options): Remove.
* config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
(frv_optimization_options): Rename to frv_option_optimization.
Make static.
* config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
* config/h8300/h8300.c (h8300_option_optimization): New.
(TARGET_OPTION_OPTIMIZATION): Define.
* config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
* config/i386/i386-protos.h (optimization_options): Remove.
* config/i386/i386.c (optimization_options): Rename to
ix86_option_optimization. Make static.
(TARGET_OPTION_OPTIMIZATION): Define.
* config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
* config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
* config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
(ia64_optimization_options): Rename to ia64_option_optimization.
Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
* config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
commented-out definition.
* config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
instead of OPTIMIZATION_OPTIONS.
* config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
(m32r_option_optimization): New.
* config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
* config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
Remove.
* config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
(mcore_option_optimization): New.
* config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
* config/mep/mep-protos.h (mep_optimization_options): Remove.
* config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
(mep_optimization_options): Rename to mep_option_optimization.
Make static. Take unused level and size parameters.
* config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
* config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
(mmix_option_optimization): New.
* config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
* config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
(pdp11_option_optimization): New.
* config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
* config/rs6000/rs6000-protos.h (optimization_options): Remove.
* config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
(optimization_options): Rename to rs6000_option_optimization.
Make static.
* config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
* config/rx/rx-protos.h (rx_set_optimization_options): Remove.
* config/rx/rx.c (rx_set_optimization_options): Rename to
rx_option_optimization. Make static. Take unused level and size
parameters.
(TARGET_OPTION_OPTIMIZATION): Define.
* config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
* config/s390/s390-protos.h (optimization_options): Remove.
* config/s390/s390.c (optimization_options): Rename to
s390_option_optimization. Make static. Don't mark size parameter
unused.
(TARGET_OPTION_OPTIMIZATION): Define.
* config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
* config/sh/sh-protos.h (sh_optimization_options): Remove.
* config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
(sh_optimization_options): Rename to sh_option_optimization. Make
static. Don't mark parameters unused.
* config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
* config/spu/spu-protos.h (spu_optimization_options): Remove.
* config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
(spu_optimization_options): Rename to spu_option_optimization.
Make static.
* config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
* config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
(v850_option_optimization): New.
* config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
* config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
(xtensa_option_optimization): New.
* config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
2010-09-16 Joseph Myers <joseph@codesourcery.com>
* doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
(C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
* doc/tm.texi: Regenerate.
* system.h (OVERRIDE_OPTIONS): Poison.
* target.def (override): Default to hook_void_void.
* targhooks.c (default_target_option_override): Remove.
* genmodes.c, machmode.def: Update comments mentioning
OVERRIDE_OPTIONS.
* config/alpha/alpha-modes.def: Update comment mentioning
alpha_override_options.
* config/alpha/alpha-protos.h (override_options): Remove.
* config/alpha/alpha.c (override_options): Rename to
alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
(TARGET_OPTION_OVERRIDE): Define.
* config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
of OVERRIDE_OPTIONS.
* config/arc/arc-protos.h (arc_init): Remove.
* config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
(arc_init): Rename to arc_option_override. Make static.
* config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
(OVERRIDE_OPTIONS): Remove.
* config/arm/arm-protos.h (arm_override_options): Remove.
* config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
(arm_override_options): Rename to arm_option_override. Make
static. Call SUBTARGET_OVERRIDE_OPTIONS.
* config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
* config/arm/arm.md: Update comment referring to arm_override_options.
* config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
instead of OVERRIDE_OPTIONS.
* config/avr/avr-protos.h (avr_override_options): Remove.
* config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
(avr_override_options): Rename to avr_option_override. Make static.
* config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
* config/bfin/bfin-protos.h (override_options): Remove (twice).
* config/bfin/bfin.c (override_options): Rename to
bfin_option_override. Make static.
(TARGET_OPTION_OVERRIDE): Define.
* config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
* config/cris/cris-protos.h (cris_override_options): Remove.
* config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
(cris_override_options): Rename to cris_option_override. Make static.
* config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
* config/frv/frv-protos.h (frv_override_options): Remove.
* config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
(frv_override_options): Rename to frv_option_override. Make static.
* config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
* config/h8300/h8300-protos.h (h8300_init_once): Remove.
* config/h8300/h8300.c (h8300_init_once): Rename to
h8300_option_override. Make static.
(TARGET_OPTION_OVERRIDE): Define.
* config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
* config/i386/i386-protos.h (override_options): Remove.
* config/i386/i386.c (override_options): Rename to
ix86_option_override_internal. Make static. Comments referring
to this function and callers changed.
(ix86_option_override): New.
(TARGET_OPTION_OVERRIDE): Define.
* config/i386/i386.h (OVERRIDE_OPTION): Remove.
* config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
* config/ia64/ia64.c (ia64_file_start): Update comment referring
to ia64_override_options.
* config/iq2000/iq2000-protos.h (override_options): Remove.
* config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
(override_options): Rename to iq2000_option_override. Make static.
* config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
* config/lm32/lm32-protos.h (lm32_override_options): Remove.
* config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
(lm32_override_options): Rename to lm32_option_override. Make static.
* config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
* config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
(m32r_option_override): New.
(m32r_init): Update comment.
* config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
* config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
* config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
(m68hc11_override_options): Rename to m68hc11_option_override.
Make static. Return void.
* config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
* config/m68k/m68k-protos.h (override_options): Remove.
* config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
(override_options): Rename to m68k_option_override. Make static.
* config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
* config/mcore/mcore-protos.h (mcore_override_options): Remove.
* config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
(mcore_override_options): Rename to mcore_option_override. Make
static.
* config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
* config/mep/mep-protos.h (mep_override_options): Remove.
* config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
(mep_override_options): Rename to mep_option_override. Make static.
* config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
* config/mmix/mmix-protos.h (mmix_override_options): Remove.
* config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
(mmix_override_options): Rename to mmix_option_override. Make static.
* config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
* config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
* config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
(mn10300_override_options): Rename to mn10300_option_override.
Make static.
* config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
* config/moxie/moxie-protos.h (moxie_override_options): Remove.
* config/moxie/moxie.c (moxie_override_options): Rename to
moxie_option_override. Make static.
(TARGET_OPTION_OVERRIDE): Define.
* config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
* config/picochip/picochip-protos.h (picochip_override_options):
Remove. Update comment referring to picochip_override_options.
* config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
(picochip_override_options): Rename to picochip_option_override.
Make static. Update comment and definition of
TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
* config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
* config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
* config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
instead of OVERRIDE_OPTIONS.
* config/rs6000/rs6000-modes.def: Update comment referring to
rs6000_override_options.
* config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
* config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
(rs6000_override_options): Rename to
rs6000_option_override_internal. Make static. Commented
referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
(rs6000_option_override): New.
* config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
instead of OVERRIDE_OPTIONS.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
* config/s390/s390-protos.h (override_options): Remove.
* config/s390/s390.c (override_options): Rename to
s390_option_override. Make static.
(TARGET_OPTION_OVERRIDE): Define.
* config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
* config/score/score-protos.h (score_override_options): Remove.
* config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
(score_override_options): Rename to score_option_override. Make
static.
* config/score/score.h (OVERRIDE_OPTIONS): Remove.
Update comment referring to override_options.
* config/score/score3.c (score3_override_options): Rename to
score3_option_override.
* config/score/score3.h (score3_override_options): Rename to
score3_option_override.
* config/score/score7.c (score7_override_options): Rename to
score7_option_override.
* config/score/score7.h (score7_override_options): Rename to
score7_option_override.
* config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
* config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
(sparc_override_options): Rename to sparc_option_override. Make
static. Call SUBTARGET_OVERRIDE_OPTIONS.
* config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
* config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
instead of OVERRIDE_OPTIONS.
* config/spu/spu-protos.h (spu_override_options): Remove.
* config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
(spu_override_options): Rename to spu_option_override. Make
static.
* config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
* config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
OVERRIDE_OPTIONS.
* config/vax/vax-protos.h (override_options): Remove.
* config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
(override_options): Rename to vax_option_override. Make static.
Call SUBTARGET_OVERRIDE_OPTIONS.
* config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
* config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
* config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
* config/xtensa/xtensa-protos.h (override_options): Remove.
* config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
(override_options): Rename to xtensa_option_override. Make static.
* config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
2010-09-16 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45623
* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
(get_constraint_for_component_ref): If computing a constraint
for the rhs handle type punning through unions.
(get_constraint_for_address_of): Adjust.
(get_constraint_for_1): Likewise.
(get_constraint_for): Likewise.
(get_constraint_for_rhs): New function.
(do_structure_copy): Adjust.
(make_constraint_to): Likewise.
(handle_const_call): Likewise.
(find_func_aliases): Likewise.
(process_ipa_clobber): Likewise.
(create_variable_info_for): Likewise.
2010-09-16 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.c: Fix documentation.
* tree-vectorizer.h (vinfo_for_stmt): Add documentation.
(set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
is_pattern_stmt_p, is_loop_header_bb_p,
stmt_vinfo_set_inside_of_loop_cost,
stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
known_alignment_for_access_p): Likewise.
* tree-vect-loop.c: Fix documentation.
(vect_get_cost): Start function name from new line.
* tree-vect-data-refs.c: Fix documentation.
* tree-vect_stmts.c: Likewise.
(vect_create_vectorized_promotion_stmts): Always free vec_tmp.
(vectorizable_store): Free vec_oprnds if allocated.
(vectorizable_condition): Initialize several variables to avoid
warnings.
* tree-vect-slp.c: Fix documentation.
2010-09-16 Richard Guenther <rguenther@suse.de>
* tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
is TS_TRANSLATION_UNIT_DECL.
(initialize_tree_contains_struct): Adjust.
(all_translation_units): New global vector.
(build_translation_unit_decl): New function.
* tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
(struct tree_translation_unit_decl): New.
(all_translation_units): Declare.
(union tree_node): Add translation_unit_decl member.
(build_translation_unit_decl): Declare.
* treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
* lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
New function.
(pack_value_fields): Call it.
(lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
(lto_output_ts_translation_unit_decl_tree_pointers): New function.
(lto_output_tree_pointers): Call it.
* lto-streamer-in.c (lto_input_tree_ref): Handle references
to TRANSLATION_UNIT_DECL.
(unpack_ts_translation_unit_decl_value_fields): New function.
(unpack_value_fields): Call it.
(lto_input_ts_translation_unit_decl_tree_pointers): New function.
(lto_input_tree_pointers): Call it.
* lto-streamer.c (check_handled_ts_structures): Adjust.
* lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
* c-decl.c (all_translation_units): Remove.
(pop_scope): Use build_translation_unit_decl.
(collect_all_refs): Adjust.
(for_each_global_decl): Likewise.
(c_write_global_declarations): Likewise.
2010-09-16 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/45686
* fold-const.c (fold_checksum_tree): Change slot from const void **
to void **, use CONST_CAST_TREE to store into *slot.
2010-09-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md: Remove unneeded empty conditions and
preparation statements from expanders.
* config/i386/mmx.md: Ditto.
* config/i386/sse.md: Ditto.
2010-09-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/45593
* reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
insns that were in delay slots as stand-alone insns.
2010-09-15 Ian Lance Taylor <iant@google.com>
* incpath.c (remove_duplicates): If name is not a directory, issue
a warning rather than an error.
2010-09-15 Martin Jambor <mjambor@suse.cz>
PR middle-end/45644
* tree-sra.c (create_access): Check for bit-fields directly.
2010-09-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45633
* tree-cfg.c (verify_gimple_assign_binary): Allow
MINUS_EXPR with lhs and rhs1 pointer vector and
rhs2 sizetype vector.
* expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
or vector pointer use TER to optimize pointer subtraction.
2010-09-15 Jie Zhang <jie@codesourcery.com>
* config/arm/vfp.md (cmpsf_trap_vfp): Change type from
fcmpd to fcmps.
2010-09-15 Ian Lance Taylor <iant@google.com>
* config/i386/i386.md (truncxf<mode>2): Fix indentation.
2010-09-15 Ian Lance Taylor <iant@google.com>
* function.c (get_arg_pointer_save_area): Set
arg_pointer_save_area_init to true.
2010-09-15 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (generate_subtree_copies): Updated comment.
(handle_unscalarized_data_in_subtree): Removed parameter lhs which is
obtained from the statement iterator instead.
(load_assign_lhs_subreplacements): Removed parameters lhs and
right_offset, which is obtained from top_racc instead. Parameter lacc
is now expected to be the root of the processed tree rather than root's
first child. Updated all callers.
2010-09-15 Joseph Myers <joseph@codesourcery.com>
* config/pdp11/pdp11.c (register_move_cost): Rename to
pdp11_register_move_cost.
* config/pdp11/pdp11-protos.h (register_move_cost): Rename to
pdp11_register_move_cost.
* config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
pdp11_register_move_cost instead of register_move_cost.
2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
* config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
pattern for vmovn. Expansion in case of non
-mvectorize-with-neon-quad.
(neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
non- -mvectorize-with-neon-quad case.
(move_lo_quad_<mode>): New expansion to vmov into low part.
(move_hi_quad_<mode>): New expansion to vmov into high part.
(move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
(move_lo_quad_v4sf): Likewise.
(move_lo_quad_v8hi): Likewise.
(neon_move_lo_quad_<mode>): Instruction pattern for vmov into
low part.
(neon_move_hi_quad_<mode>): Instruction pattern for vmov into
high part.
* config/arm/iterators.md (ANY128): New mode iterator.
(V_narrow_pack): New mode attribute.
(V_HALF): Add attribute.
(V_DOUBLE): Add attribute.
(V_mode_nunits): Add attribute.
2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
* config/alpha/alpha.c (alpha_expand_prologue): If stack checking
is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2010-09-15 Olivier Hainque <hainque@adacore.com>
Jose Ruiz <ruiz@adacore.com>
* config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
* config/alpha/osf5-unwind.h: New file.
2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/45672
* config/mips/mips.c (mips_units_per_simd_word): Correct return type.
* config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
* config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* c-lang.h (struct lang_type): Add variable_size GTY option.
2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/45672
* config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_lea_for_add_ok): Return false if
result isn't used in memory address.
2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
* defaults.h (UNITS_PER_SIMD_WORD): Removed.
* config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
* target.def: Add units_per_simd_word to vectorize.
* targhooks.c (default_units_per_simd_word): New.
* targhooks.h (default_units_per_simd_word): Likewise.
* config/arm/arm.c (arm_units_per_simd_word): Likewise.
(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
* config/mips/mips.c (mips_units_per_simd_word): Likewise.
(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
* config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
* config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
* tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
* tree-vect-stmts.c: Don't include "tm_p.h".
(get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
with targetm.vectorize.units_per_simd_word.
* system.h (UNITS_PER_SIMD_WORD): Poisoned.
* config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
* config/i386/i386.c (ix86_units_per_simd_word): Make it static.
(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
* doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
* doc/tm.texi: Regenerated.
2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
* tree-vect-stmts.c: Include "tm_p.h".
* config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
out of RTX_CODE.
2010-09-14 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
location of generated statement. Changed all callers.
(build_ref_for_model): New parameter loc which used to set location of
all generated expressions. Changed all callers.
(generate_subtree_copies): Likewise.
(init_subtree_with_zero): Likewise.
(sra_modify_expr): Set locations of all generated statements and
expressions to the location the original statement.
(handle_unscalarized_data_in_subtree): Likewise.
(load_assign_lhs_subreplacements): Likewise.
(sra_modify_constructor_assign): Likewise.
(sra_modify_assign): Likewise.
2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
PR target/45277
PR target/45363
PR target/45407
* doc/install.texi (sparc*-*-*): New section.
(sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2010-09-14 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45567
* builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
(expand_builtin): Adjust caller.
(expand_builtin_unop): Only use subtarget if it has the right mode.
2010-09-14 Tristan Gingold <gingold@adacore.com>
* configure.ac (plugins): Fix typos.
* configure: Regenerate.
2010-09-14 Jakub Jelinek <jakub@redhat.com>
PR debug/45660
* dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
gen_type_die for function/method return type.
2010-09-14 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/45470
* tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
can throw an exception.
* tree-vect-stmts.c (vectorizable_call): Likewise.
2010-09-14 DJ Delorie <dj@redhat.com>
PR target/44749
* config/mep/mep-protos.h (mep_save_register_info,
mep_reinit_regs, mep_init_regs): Declare.
* config/mep/mep.c: Move all target definitions to the end of the
file to avoid the need for duplicate declarations.
(mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
(mep_reorg_erepeat): Remove unused variables.
(mep_expand_builtin): Likewise.
* config/mep/mep-pragma.c: Don't include rtl.h.
(INVALID_REGNUM): New.
(mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
functions.
(mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
Avoid enum/integer math.
2010-09-13 Joseph Myers <joseph@codesourcery.com>
PR target/44749
* config/mep/t-mep (GTM_H): Add insn-constants.h.
* config/mep/mep.c (mep_conditional_register_usage): Take no
parameters.
* config/mep/mep-protos.h (mep_conditional_register_usage): Update
prototype.
* config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
call to mep_conditional_register_usage.
2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
PR debug/43937
* varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
the DECL as well.
2010-09-13 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/45617
* combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
even if low N bits of X aren't known to be zero.
2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386-protos.h (ix86_units_per_simd_word): New.
* config/i386/i386.c (initial_ix86_tune_features): Add
X86_TUNE_VECTORIZE_DOUBLE.
(ix86_units_per_simd_word): New.
* config/i386/i386.h (ix86_tune_indices): Add
X86_TUNE_VECTORIZE_DOUBLE.
(TARGET_VECTORIZE_DOUBLE): New.
(UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
* tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
(new_temp_expr_table): Allocate call_cnt vector.
(free_temp_expr_table): Free it.
(process_replaceable): Add call_cnt parm and set in vector.
(find_replaceable_in_bb): Skip replacement if def/use span a call.
(debug_ter): Dump call_cnt value, remove stderr uses.
2010-09-13 Jan Hubicka <jh@suse.cz>
* tree.c (build_zero_cst): New.
* tree.h (build_zero_cst): Declare.
* tree-ssa-ccp.c (get_constant_value): Accept general operands.
(get_base_constructor): Break out from ...
(fold_const_aggregate_ref): Here; handle empty constructors.
2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/arm/arm.md: (define_attr "conds"): Update comment.
* config/arm/sync.md (arm_sync_compare_and_swapsi): Change
conds attribute to clob.
(arm_sync_compare_and_swapsi): Likewise.
(arm_sync_compare_and_swap<mode>): Likewise.
(arm_sync_lock_test_and_setsi): Likewise.
(arm_sync_lock_test_and_set<mode>): Likewise.
(arm_sync_new_<sync_optab>si): Likewise.
(arm_sync_new_nandsi): Likewise.
(arm_sync_new_<sync_optab><mode>): Likewise.
(arm_sync_new_nand<mode>): Likewise.
(arm_sync_old_<sync_optab>si): Likewise.
(arm_sync_old_nandsi): Likewise.
(arm_sync_old_<sync_optab><mode>): Likewise.
(arm_sync_old_nand<mode>): Likewise.
2010-09-13 Olivier Hainque <hainque@adacore.com>
* fwprop.c (forward_propagate_and_simplify): Only attach a
REG_EQUAL note to an insn if the destination is a register.
* gcse.c (try_replace_reg): Likewise.
2010-09-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45611
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
(copy_ref_info): Likewise.
2010-09-13 Alexandre Oliva <aoliva@redhat.com>
PR debug/45604
PR debug/45419
PR debug/45408
* tree-pretty-print.c (dump_generic_node): Disregard top-level
types of MEM_REF pointer types to the same type.
2010-09-13 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/41087
* ifcvt.c (noce_get_condition): Don't allow conditions with
side-effects.
2010-09-12 Anatoly Sokolov <aesok@post.ru>
* config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
* config/frv/frv-protos.h (frv_register_move_cost): Remove.
* config/frv/frv.c (frv_register_move_cost): Make static. Change
arguments type to reg_class_t. Add mode argument.
(frv_memory_move_cost): New.
(TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
* config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2010-09-10 Jan Hubicka <jh@suse.cz>
* tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2010-09-10 Richard Guenther <rguenther@suse.de>
* tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
* tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
* lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
not stream TYPE_DEBUG_REPRESENTATION_TYPE.
* lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2010-09-10 Richard Guenther <rguenther@suse.de>
* dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
* dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/45634
* tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
of string folding is of integral type.
2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
* doc/invoke.texi (-x): Fix typo.
2010-09-10 Richard Guenther <rguenther@suse.de>
PR debug/44115
* tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
Output DECL_DEBUG_EXPR.
* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
Input DECL_DEBUG_EXPR.
2010-09-10 Richard Guenther <rguenther@suse.de>
* tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
(build_index_type): Implement in terms of build_range_type.
(build_range_type): Do not allow NULL_TREE type, improve
hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
if we didn't hash.
* c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
create a distinct copy of the type.
2010-09-10 Kai Tietz <kai.tietz@onevision.com>
* configure: Regenerated.
* config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
* config/arm/cortex-a9-neon.md: New and partially generated.
* config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
2010-09-10 Richard Guenther <rguenther@suse.de>
* tree.h (build_index_2_type): Remove.
* tree.c (build_index_2_type): Remove.
2010-09-10 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/45630
* dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
(implicit_ptr_descriptor): Return NULL if dwarf_strict.
2010-09-10 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/44972
* tree-sra.c: Include toplev.h.
(build_ref_for_offset): Entirely reimplemented.
(build_ref_for_model): New function.
(build_user_friendly_ref_for_offset): New function.
(analyze_access_subtree): Removed build_ref_for_offset check.
(propagate_subaccesses_across_link): Likewise.
(create_artificial_child_access): Use
build_user_friendly_ref_for_offset.
(propagate_subaccesses_across_link): Likewise.
(ref_expr_for_all_replacements_p): Removed.
(generate_subtree_copies): Updated comment. Use build_ref_for_model.
(sra_modify_expr): Use build_ref_for_model.
(load_assign_lhs_subreplacements): Likewise.
(sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
checks for return values of build_ref_for_offset.
* ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
build_ref_for_offset.
* ipa-prop.h: Include gimple.h
* ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
(ipa_analyze_indirect_call_uses): Update comment.
* Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
(IPA_PROP_H): Likewise.
2010-09-10 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/44972
* ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
calling build_ref_for_offset.
2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
* config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
* config/arm/arm-tune.md: Regenerate.
* doc/invoke.texi (ARM Options): Document it.
2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
* config/i386/i386.c: Include sched-int.h.
(TARGET_SCHED_DISPATCH): Defined.
(TARGET_SCHED_DISPATCH_DO): Defined.
(DISPATCH_WINDOW_SIZE): Defined.
(MAX_DISPATCH_WINDOWS): Defined.
(MAX_INSN): Defined.
(MAX_IMM): Defined.
(MAX_IMM_SIZE): Defined.
(MAX_IMM_32): Defined.
(MAX_IMM_64): Defined.
(MAX_LOAD): Defined.
(MAX_STORE): Defined.
(BIG): Defined.
(dispatch_group): New.
(num_allowable_groups): New.
(group_name): New.
(sched_insn_info_s): New.
(dispatch_windows_s): New.
(imm_info_s): New.
(dispatch_window_list): New.
(dispatch_window_list1): New.
(get_mem_group): New.
(is_cmp): New.
(dispatch_violation): New.
(is_branch): New.
(is_prefetch): New.
(init_window): New.
(allocate_window): New.
(init_dispatch_sched): New.
(is_end_basic_block): New.
(process_end_window): New.
(allocate_next_window): New.
(find_constant_1): New.
(find_constant): New.
(get_num_immediates): New.
(has_immediate): New.
(get_insn_path): New.
(get_insn_group): New.
(count_num_restricted): New.
(fits_dispatch_window): New.
(add_insn_window): New.
(add_to_dispatch_window): New.
(debug_dispatch_window_file): New.
(debug_dispatch_window): New.
(debug_insn_dispatch_info_file): New.
(debug_ready_dispatch): New.
(do_dispatch): New.
(has_dispatch): New.
* config/i386/i386.h (debug_ready_dispatch): Declared.
(debug_dispatch_window): Declared.
* config/i386/i386.opt (mdispatch-scheduler): New flag.
* doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
(TARGET_SCHED_DISPATCH_DO): New.
* doc/tm.texi: Regererated.
* haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
ready_remove_first_dispatch
(schedule_block): Call targetm.sched.dispatch and
targetm.sched.dispatch_do.
(sched_init): Call targetm.sched.dispatch and
targetm.sched.dispatch_do.
(ready_remove_first_dispatch): New.
(number_in_ready): New.
(get_ready_element): New.
* hooks.c (hook_bool_rtx_int_false): New.
(hook_void_rtx_int): New.
* hooks.h (hook_bool_rtx_int_false): Declared.
(hook_void_rtx_int): Declared.
* sched-int.h (IS_DISPATCH_ON): Defined.
(IS_CMP): Defined.
(DISPATCH_VIOLATION): Defined.
(FITS_DISPATCH_WINDOW): Defined.
(DISPATCH_INIT): Defined.
(ADD_TO_DISPATCH_WINDOW): Defined.
(get_ready_element): Declared.
(number_in_ready): Declared.
* target.def (dispatch): Defined.
(dispatch_do): Defined.
2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/45312
* reload1.c (merge_assigned_reloads): Remove.
(reload_as_needed): Don't call it.
2010-09-09 Anatoly Sokolov <aesok@post.ru>
* config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
* config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2010-09-09 Matthias Klose <doko@ubuntu.com>
PR bootstrap/43847
* configure.ac (--enable-plugin): Enhance for cross builds.
* configure: Regenerate.
2010-09-09 Jan Hubicka <jh@suse.cz>
PR tree-optimization/45598
* tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
string folding is of integral type.
2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
* configure.ac (gnu_indirect_function): New test.
* configure: Rebuilt.
* config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
* defaults.h (IFUNC_ASM_TYPE): Provide default.
* doc/extend.texi (Function Attributes): Document ifunc.
* varasm.c (do_assemble_alias): Deal with ifuncs too.
2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (picochip_reorg): Check for note_p for
epilogue instruction move.
2010-09-09 Jan Hubicka <jh@suse.cz>
* collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
command line to allow more partitions than input files.
2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/44554
* ira.c (ira): Switch off sharing spill slots if setjmp is called.
2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/40386
* ira.c (pseudo_for_reload_consideration_p): Don't use
flag_ira_share_spill_slots.
2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
point zero operands that fit into a single GPR.
(s390_preferred_reload_class): Ensure we only return general-purpose
register classes.
* config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
floating-point zero operands into GPRs.
("*mov<mode>_64"): Likewise.
("mov<mode>"): Likewise using lhi.
2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/s390/s390.c (s390_symref_operand_p): Return false for
literal pool references.
(s390_check_qrst_address): Update caller.
2010-09-09 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (ext_register_operand): Check that
SUBREG_REG is really a register before looking for REGNO.
(reg_not_xmm0_operand): Handle SUBREGs correctly.
(nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
2010-09-09 Jakub Jelinek <jakub@redhat.com>
* rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
* rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
* print-rtl.c (print_rtx): Likewise.
* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
* cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
for ADDR_EXPR with non-addressable object.
* dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
(struct dw_val_struct): Add v.val_decl_ref.
(dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
Handle DW_OP_GNU_implicit_pointer.
(size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
(get_ref_die_offset_label): New function.
(implicit_ptr_descriptor): New function.
(mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
(loc_descriptor): Likewise.
(gen_variable_die): Put even definitions into decl_die_table.
(resolve_addr_in_expr): Resolve still unresolved
DW_OP_GNU_implicit_pointer operands, if it can't be resolved
return false.
(dwarf2out_finish): Call output_location_lists after outputting
.debug_info and .debug_abbrev instead of before.
2010-09-09 Roland McGrath <roland@redhat.com>
* dwarf2out.c (DWARF_REF_SIZE): Define.
(size_of_loc_descr): Use it for DW_OP_call_ref.
2010-09-09 Alan Modra <amodra@gmail.com>
* doc/invoke.text: Reinstate mcmodel=medium.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
CMODEL_MEDIUM as default.
* config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
* config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
(toc_relative_ok, offsettable_ok_by_alignment): New functions.
(rs6000_emit_move): Reinstate mcmodel=medium optimization.
2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/45250
* config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
(builtin_longjmp): Likewise.
(allocate_stack): Use hard_frame_pointer_rtx instead of
frame_pointer_rtx.
* config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
* config/pa/pa.c (pa_internal_arg_pointer): Declare.
(pa_can_eliminate): Likewise.
(TARGET_INTERNAL_ARG_POINTER): Define.
(TARGET_CAN_ELIMINATE): Define.
(hppa_expand_prologue): Use hard frame pointer instead of soft frame
pointer.
(hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
(pa_internal_arg_pointer, pa_can_eliminate,
pa_initial_elimination_offset): New.
* config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
(HARD_FRAME_POINTER_REGNUM): Set to register three.
(INITIAL_FRAME_POINTER_OFFSET): Delete.
(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
Define.
(DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
* config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
(FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
new soft frame pointer.
* config/pa/pa64-regs.h: Likewise.
2010-09-08 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
numerical constant.
(EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
2010-09-08 Alexandre Oliva <aoliva@redhat.com>
PR debug/45531
* cfglayout.c (fixup_reorder_chain): Skip debug insns.
2010-09-08 Alexandre Oliva <aoliva@redhat.com>
PR debug/45419
PR debug/45408
* tree-pretty-print.c (dump_generic_node): Disregard top-level
qualifiers in otherwise equal MEM_REF pointer types.
* fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
* tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/44392
* config/arm/arm.md (bswapsi2): Handle condition correctly
for armv6 and optimize_size.
2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR other/18555
* doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2010-09-08 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386-protos.h (ix86_can_use_return_insn_p,
symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
ix86_expand_strlen, legitimate_pic_address_disp_p,
ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
ix86_check_movabs, ix86_secondary_memory_needed): Change function
prototype to bool.
* config/i386/i386.c (return_in_memory_32, return_in_memory_64,
return_in_memory_ms_64, ix86_check_movabs,
symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
legitimate_pic_address_disp_p, ix86_binary_operator_ok,
ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
ix86_secondary_memory_needed): Change to bool. Return
"true" and "false" values.
* config/i386/i386.md: Return "true" and "false" values.
2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/sourcebuild.texi (Effective-Target Keywords): Document
run_expensive_tests.
2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* toplev.c (output_stack_usage): Use lbasename instead of basename.
2010-09-08 Martin Jambor <mjambor@suse.cz>
PR other/45443
* doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
at -O3.
2010-09-08 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_types, type_hash_cache): Move to GC memory.
(visit): Adjust.
(iterative_hash_gimple_type): Likewise.
(gimple_type_hash): Likewise.
(gimple_register_type): Likewise.
(print_gimple_types_stats): Likewise.
(free_gimple_type_tables): Likewise.
2010-09-08 Michael Matz <matz@suse.de>
PR tree-optimization/43430
* tree-vect-stmts.c (vectorizable_condition): Support multiple
copies for conditional statements if it's not part of a reduction.
2010-09-08 Michael Matz <matz@suse.de>
PR tree-optimization/33244
* tree-ssa-sink.c (statement_sink_location): Don't sink into
empty loop latches.
2010-09-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45578
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
Be more careful when transfering alignment information to
the new induction variable.
(copy_ref_info): Likewise.
2010-09-08 Richard Guenther <rguenther@suse.de>
* tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
* c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
2010-09-08 Arnaud Charlet <charlet@adacore.com>
* c-tree.h, c-decl.c (build_enumerator): Add location parameter.
* c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
PR doc/45587
* doc/md.texi: Fixed modes on several standard pattern names.
2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
* config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
(ashl<mode>3): ...this.
(loongson_psra<V_suffix>): Rename to...
(ashr<mode>3): ...this.
(loongson_psrl<V_suffix>): Rename to...
(lshr<mode>3): ...this.
* config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
(CODE_FOR_loongson_psllw): Define.
(CODE_FOR_loongson_psrlh): Define.
(CODE_FOR_loongson_psrlw): Define.
(CODE_FOR_loongson_psrah): Define.
(CODE_FOR_loongson_psraw): Define.
2010-09-07 Richard Henderson <rth@redhat.com>
* tree-vect-data-refs.c: Include tm_p.h.
* Makefile.in (tree-vect-data-refs.o): Update deps.
* config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
Move delarations outside #ifdef RTX_CODE.
2010-09-07 Richard Henderson <rth@redhat.com>
* final.c (rest_of_handle_final): Unconditionally do
output_function_exception_table before assemble_end_function.
2010-09-07 Jan Hubicka <jh@suse.cz>
* tree-inline.c (tree_inlinable_function_p): Do not test
DECL_REPLACEABLE_P.
* ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
update_callee_keys, cgraph_decide_inlining): Test function availability.
* cif-code.def (OVERWRITABLE): New code.
2010-09-07 H.J. Lu <hjl.tools@gmail.com>
Jack Howarth <howarth@bromo.med.uc.edu>
PR target/36502
PR target/42313
PR target/44651
* config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
(PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
MAX macro.
2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
* unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc: Don't append t-android for Android targets.
* config/t-android: Removed.
2010-09-07 Richard Henderson <rth@redhat.com>
* target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
* doc/tm.texi.in: Add doc marker.
* doc/tm.texi: Rebuild.
* except.c (switch_to_exception_section): Always build.
(output_one_function_exception_table): Move section switch,
personality output, and label output ...
(output_function_exception_table): ... here. Use the new
personality hook.
* config/ia64/ia64.c (ia64_asm_emit_except_personality,
ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
TARGET_ASM_INIT_SECTIONS): New.
(ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
make static.
(TARGET_ASM_UNWIND_EMIT): Update to match.
* config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
* config/arm/arm.c (arm_asm_emit_except_personality): New.
(arm_asm_init_sections): New.
(TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.md: Remove unused variable.
2010-09-07 Anatoly Sokolov <aesok@post.ru>
* config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
* config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
(m32r_memory_move_cost): New function.
2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc: Append t-android for Android targets.
* config/t-android: New.
2010-09-07 Richard Henderson <rth@redhat.com>
* target.def (unwind_emit_before_insn): New hook.
* doc/tm.texi.in: Add @hook marker for it.
* doc/tm.texi: Rebuild.
* final.c (final_scan_insn): Respect unwind_emit_before_insn.
2010-09-07 Martin Jambor <mjambor@suse.cz>
PR fortran/43665
* ipa-cp.c (ipcp_versionable_function_p): Return false if there
are any type attributes.
2010-09-07 Jan Hubicka <jh@suse.cz>
* tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
array_ref_low_bound in string access folding.
2010-09-07 Uros Bizjak <ubizjak@gmail.com>
PR target/45206
* config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
eh_return fixup sequence.
2010-09-07 Jan Hubicka <jh@suse.cz>
* gimple-fold.c (maybe_fold_reference): Verify that operand is
gimple_min_invariant.
2010-09-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45569
* tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
nor CONSTRUCTOR can trap.
* tree-complex.c (update_complex_assignment): Update EH info.
2010-09-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45569
* tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
* passes.c (execute_function_todo): Do not verify anything if
we saw errors.
2010-09-07 Richard Guenther <rguenther@suse.de>
* tree-pretty-print.c (dump_generic_node): Dump void types as void.
2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
PR target/43137
* config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
New define_mode_attrs.
* config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
(zero_extend<mode>di2, extend<mode>di2 and related splits): New.
(thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
Remove pool_range attribute.
(arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
pool_range and neg_pool_range attributes.
* config/arm/thumb2.md (thumb2_zero_extendsidi2,
thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
thumb2_extendhidi2, thumb2_extendqidi2): Delete.
2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
check glibc.
2010-09-06 Uros Bizjak <ubizjak@gmail.com>
PR target/22152
* config/i386/mmx.md (*mov<mode>_internal_rex64,
*mov<mode>_internal_avx, *mov<mode>_internal,
*movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
*movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
2010-09-06 Mark Mitchell <mark@codesourcery.com>
* c-typeck.c (do_warn_double_promotion): Remove.
* doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
Objective-C++ too.
2010-09-06 Anatoly Sokolov <aesok@post.ru>
* config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
* config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
argument type to reg_class_t. Change result type to bool.
(TARGET_CLASS_LIKELY_SPILLED_P): Define.
2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/19850
* gthr-posix.h (__gthread_objc_thread_detach): Use
_objc_thread_attribs when detaching a thread.
* gthr-posix95.h (__gthread_objc_thread_detach): Same change.
2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
PR target/45524
* configure.ac (enable_decimal_float): Set to $default_decimal_float.
* configure: Regenerated.
2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* combine.c (try_combine): Set subst_low_luid to i0.
2010-09-06 Richard Guenther <rguenther@suse.de>
* tree.def (MISALIGNED_INDIRECT_REF): Remove.
* tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
(build_aligned_type): Declare.
* tree.c (check_qualified_type): Also compare TYPE_ALIGN.
(check_aligned_type): New function.
(build_aligned_type): Likewise.
* expr.c (expand_assignment): Handle misaligned stores via
TARGET_MEM_REF and MEM_REF using movmisalign_optab.
(expand_expr_real_1): Likewise.
(safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
* tree-vect-stmts.c (vectorizable_store): Do not build
MISALIGNED_INDIRECT_REF but initialize alignment information.
(vectorizable_load): Likewise.
* builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
handling.
* cfgexpand.c (expand_debug_expr): Likewise.
* dwarf2out.c (loc_list_from_tree): Likewise.
* fold-const.c (maybe_lvalue_p): Likewise.
(operand_equal_p): Likewise.
(build_fold_addr_expr_with_type_loc): Likewise.
* gimplify.c (gimplify_addr_expr): Likewise.
(gimplify_expr): Likewise.
* tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
(verify_gimple_assign_single): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
(tree_could_trap_p): Likewise.
* tree-predcom.c (ref_at_iteration): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
(op_code_prio): Likewise.
(op_symbol_code): Likewise.
* tree-ssa-ccp.c (get_value_from_alignment): Likewise.
* tree-ssa-loop-im.c (for_each_index): Likewise.
(gen_lsm_tmp_name): Likewise.
* tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
(find_interesting_uses_address): Likewise.
* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
(ao_ref_init_from_vn_reference): Likewise.
* tree.c (staticp): Likewise.
(build1_stat): Likewise.
(reference_alias_ptr_type): Likewise.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
* config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
MISALIGNED_INDIRECT_REF handling.
2010-09-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45534
* tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
(create_mem_ref): Do verify the created TARGET_MEM_REF is valid
on the target.
(maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
valid on the target.
2010-09-06 Andreas Schwab <schwab@redhat.com>
* configure.ac: Quote argument of AC_MSG_WARN.
* configure: Regenerate.
2010-09-06 Alexander Monakov <amonakov@ispras.ru>
* sel-sched.c (move_cond_jump): Correct arguments to
maybe_tidy_empty_bb.
* sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2010-09-06 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/44919
* sel-sched.c (move_cond_jump): Remove assert, check that
the several blocks case can only happen with mutually exclusive
insns instead. Rewrite the movement code to support moving through
several basic blocks.
2010-09-06 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (iptrsize): New mode attribute.
(tp_seg): Ditto.
(*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
mode iterator.
(*add_tp_<mode>): Ditto from *add_tp_{si,di}.
(stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
(stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
(stack_tls_protect_set_<mode>): Ditto from
stack_tls_protect_set_{si,di}. Use %@ to output segment register
of thread base pointer load.
(stack_tls_protect_test_<mode>): Ditto from
stack_tls_protect_test_{si,di}. Use %@ to output segment register
of thread base pointer load.
(stack_protect_set): Rewrite using indirect functions.
(stack_protect_test): Ditto.
* config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
(ix86_print_operand): Handle '@'.
2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
* tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
MINUS_EXPR.
2010-09-05 Mark Mitchell <mark@codesourcery.com>
* doc/invoke.texi: Document -Wdouble-promotion.
* c-typeck.c (convert_arguments): Check for implicit conversions
from float to double.
(do_warn_double_promotion): New function.
(build_conditional_expr): Use it.
(build_binary_op): Likewise.
2010-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45535
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
dereferencing it.
(indirect_refs_may_alias_p): Likewise.
2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
* config/sh/sh.c (sh_option_override): Make static.
Adjust comments. Declare.
(sh_function_value_regno_p): Likewise.
(sh_register_move_cost): Modify the arguments, make static.
Adjust comments. Declare.
(TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
TARGET_FUNCTION_VALUE_REGNO_P): Define.
* config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
REGISTER_MOVE_COST): Delete.
* config/sh/sh-protos.h (sh_override_options): Delete.
(sh_register_move_cost): Delete.
(sh_function_value_regno_p): Delete.
2010-09-04 Anatoly Sokolov <aesok@post.ru>
* config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
m32r_function_value_regno_p): New functions.
(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
TARGET_FUNCTION_VALUE_REGNO_P): Declare.
* config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
FUNCTION_VALUE_REGNO_P): Remove.
2010-09-04 Jan Hubicka <jh@suse.cz>
* gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Use
fold_read_from_constant_string.
* gimple.h (canonicalize_constructor_val): Declare.
* gimple-fold.c (canonicalize_constructor_val): New function.
(get_symbol_constant_value):Use it.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
2010-09-04 Jan Hubicka <jh@suse.cz>
* tree-switch-conversion.c (build_one_array): Set constructor to be
static.
* varpool.c (varpool_finalize_decl): Compute const_value_known.
2010-09-04 Richard Guenther <rguenther@suse.de>
PR bootstrap/45519
* tree-flow.h (force_gimple_operand_1): Declare.
(force_gimple_operand_gsi_1): Likewise.
* gimplify.c (force_gimple_operand_1): New worker taking a
gimple predicate for ...
(force_gimple_operand): ... which now wraps it.
(force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
last change.
* tree-ssa-address.c (gimplify_mem_ref_parts): Use
force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
(create_mem_ref): Likewise.
2010-09-04 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (sse_reg_operand): New predicate.
* config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
predicate for operand 1.
(XFmode push splitter): Use fp_register_operand predicate
for operand 1.
(*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
(SF-DF float_extend push splitter): Add reload_completed insn
predicate.
({SF,DF}-XF float_extend_push splitter): Macroize splitter using
MODEF mode macro. Add reload_completed insn predicate.
2010-09-04 Paolo Bonzini <bonzini@gnu.org>
* df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
(struct df_extract_ref): Remove.
(union df_ref_d): Remove extract_ref member.
(df_ref_create): Remove last three arguments.
(DF_REF_LOC): Remove DF_REF_EXTRACT case.
* df-scan.c (df_ref_record): Remove last three arguments, do not
pass them to df_ref_create_structure.
(df_uses_record): Remove first and last three arguments. Replace
first argument with DF_REF_REGULAR, adjust calls to remove the
width, offset and mode. Always call recursively on the second
and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
(df_ref_create_structure): Remove first argument.
(struct df_scan_problem_data): Remove ref_extract_pool.
(df_scan_free_internal): Do not free it.
(df_scan_alloc): Do not allocate it.
(df_ref_create): Remove last three arguments, do not pass them to
df_ref_create_structure.
(df_free_ref): Remove DF_REF_EXTRACT case.
(df_notes_rescan): Adjust call to df_uses_record.
(df_ref_equal_p, df_ref_compare, df_ref_create_structure):
Remove DF_REF_EXTRACT case.
(df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
and SUBREG definitions.
(df_get_conditional_uses): Remove references to width/offset/mode,
adjust call to df_ref_create_structure.
(df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
calls to df_uses_record and df_ref_record.
* fwprop.c (update_df): Remove references to width/offset/mode,
adjust call to df_ref_create.
2010-09-03 Jan Hubicka <jh@suse.cz>
* ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
(build_cdtor_fns): Update use of build_cdtor.
2010-09-03 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (SeparateAlias): Document.
* opt-functions.awk (switch_flags): Handle SeparateAlias.
* opth-gen.awk: Generate enumeration names for options marked
SeparateAlias, but not for those marked Ignore.
* opts-common.c (generate_canonical_option): Don't output separate
argument for options marked CL_SEPARATE_ALIAS.
(decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
* opts.h (CL_SEPARATE_ALIAS): New.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
CL_COMMON): Adjust definitions.
* config/i386/darwin.opt, config/mips/sde.opt: New.
* common.opt (fdump-final-insns): New.
* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
i386/darwin.opt.
(mips*-sde-elf*): Add mips/sde.opt.
* config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
-mno-data-in-code and -mcode-xonly here.
* defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
* gcc.c (option_map): Add "j" to --dump entry.
(translate_options): Don't translate -d to -foutput-class-dir= here.
2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
* tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
DR_IS_WRITE.
(compute_all_dependences): Same.
(create_rdg_edge_for_ddr): Same.
* tree-data-ref.h (DR_IS_WRITE): New.
(ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
* tree-if-conv.c (write_memrefs_written_at_least_once): Same.
(write_memrefs_written_at_least_once): Same.
* tree-predcom.c (suitable_component_p): Same.
(determine_roots_comp): Same.
(execute_load_motion): Same.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
(vect_enhance_data_refs_alignment): Same.
(vect_analyze_group_access): Same.
2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
PR testsuite/42843
* Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
(PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
2010-09-03 Marcin Baczynski <marbacz@gmail.com>
* dwarf2out.c (file scope): Remove #if0'd code.
(gen_subprogram_die): Same.
2010-09-03 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45484
* dwarf2out.c (flush_queued_reg_saves): Rename to...
(dwarf2out_flush_queued_reg_saves): ... this. No longer static.
(dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
* dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
* config/i386/i386.c (output_set_got): Call it.
2010-09-03 Michael Matz <matz@suse.de>
PR middle-end/45415
* tree-sra.c (sra_modify_assign): If we modify the statement,
say so.
* tree-ssa.c (verify_ssa): Check number of operands and links
per statement to agree.
2010-09-03 Uros Bizjak <ubizjak@gmail.com>
Iain Sandoe <iains@gcc.gnu.org>
PR target/45476
* config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
* config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2010-09-03 Richard Guenther <rguenther@suse.de>
* lto-streamer-out.c (output_function): Output function
start and end loci.
* lto-streamer-in.c (input_function): Input function start
and end loci.
2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
* Makefile.in: Add aclocal.m4 dependency to dfp.m4.
* configure: Regenerate.
* aclocal.m4: Regenerate.
2010-09-03 Jan Hubicka <jh@suse.cz>
PR lto/44812
* lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
on functions/variables in other partition.
2010-09-03 Jan Hubicka <jh@suse.cz>
* cgraph.h (struct varpool_node): Add const_value_known.
(varpool_decide_const_value_known): Declare.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
* lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
(input_varpool_node): Restore const_value_known.
* tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
initializer folding.
* ipa.c (ipa_discover_readonly_nonaddressable_var,
function_and_variable_visibility): Compute const_value_known.
* gimple-fold.c (get_symbol_constant_value): Use varpool for
initializer folding.
* varpool.c (varpool_decide_const_value_known): New function.
2010-09-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md: Remove empty preparation statements
from splitters.
2010-09-03 Jan Hubicka <jh@suse.cz>
* passes.c (rest_of_decl_compilation): Do not add local vars into
varpool.
* varpool.c (varpool_get_node, varpool_node): Sanity check that only
static or extern vars are in varpool.
(varpool_finalize_decl): Sanity check that only static vars are
finalized.
2010-09-03 Jakub Jelinek <jakub@redhat.com>
PR debug/45500
* dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
not just generic vectors with BLKmode.
2010-09-03 Richard Guenther <rguenther@suse.de>
* tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
Move TMR_OFFSET to second operand. Add TMR_INDEX2.
* tree.h (TMR_SYMBOL): Remove.
(TMR_BASE, TMR_OFFSET): Adjust.
(TMR_INDEX2): New.
* alias.c (ao_ref_from_mem): Use TMR_BASE.
* builtins.c (get_object_alignment): Merge TMR_BASE and
TMR_SYMBOL handling.
* cfgexpand.c (expand_debug_expr): Use TMR_BASE.
* gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
handling. Also allow TARGET_MEM_REF as base address.
(walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
* gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
base. Gimplify TMR_INDEX2.
* tree-cfg.c (verify_types_in_gimple_reference): Adjust.
* tree-dfa.c (get_ref_base_and_extent): Likewise.
(get_addr_base_and_unit_offset): Likewise.
* tree-eh.c (tree_could_trap_p): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
(create_mem_ref_raw): Merge symbol and base. Move 2ndary
base to index2.
(get_address_description): Reconstruct addres description
from merged TMR_BASE and TMR_INDEX2.
(maybe_fold_tmr): Fold propagated addresses.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
MEM_REF and TARGET_MEM_REF paths.
(indirect_refs_may_alias_p): Likewise.
* tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
instead of TMR_SYMBOL.
* tree-ssa-operands.c (get_tmr_operands): Simplify.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
according to changes ...
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
Split TARGET_MEM_REF into two fields plus the base.
* tree.c (mem_ref_offset): Simplify.
* tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
Strip NOPs when folding MEM_REF addresses.
* tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
* gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
(fold_gimple_assign): ... not here.
2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
* config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
* config/mips/mips.c (mips_shift_truncation_mask): New function.
(TARGET_SHIFT_TRUNCATION_MASK): Define.
2010-09-02 Richard Henderson <rth@redhat.com>
* configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
instead of readelf in the test.
(gcc_cv_as_cfi_sections_directive): Check for correct relocation
in the .debug_frame section for coff targets.
* configure: Rebuild.
2010-09-02 Anatoly Sokolov <aesok@post.ru>
* config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
* config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(m32c_class_likely_spilled_p): Make static. Change argument type to
reg_class_t. Change result type to bool.
2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.opt (-mfriz): New switch to control whether
to convert (double)(long) into a single FRIZ instruction or not
when -ffast-math is used.
* config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
(vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
or FRIZ instruction if -ffast-math.
* config/rs6000/rs6000.md (friz): Ditto.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2010-09-02 Joseph Myers <joseph@codesourcery.com>
* opth-gen.awk (quote, comma): Remove unused variables.
2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
* arm.c (arm_override_options): Correct fall-back code to use
SUBTARGET_CPU_DEFAULT.
2010-09-02 Julian Brown <julian@codesourcery.com>
* config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
unspecs.
(vcond<mode>, vcondu<mode>): New expanders.
(neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
comparisons with zero.
(neon_vcle<mode>, neon_vclt<mode>): New patterns.
* config/arm/constraints.md (Dz): New constraint.
2010-09-02 Anatoly Sokolov <aesok@post.ru>
* target.def (class_likely_spilled_p): New hook.
* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_class_likely_spilled_p): New function.
* targhooks.h (default_class_likely_spilled_p): Declare.
* regs.h (CLASS_LIKELY_SPILLED_P): Remove.
* combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
Use fixed_reg_set instead of fixed_regs.
* cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
* calls.c (avoid_likely_spilled_reg): Ditto.
* ira-conflicts.c (ira_build_conflicts): Ditto.
* ira.c (update_equiv_regs): Ditto.
* mode-switching.c (create_pre_exit): Ditto.
* regmove.c (find_matches): Ditto.
(regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
* reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
(small_register_class_p): New inline function.
(push_secondary_reload, find_reusable_reload, find_reloads): Use
small_register_class_p instead of SMALL_REGISTER_CLASS_P.
* config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/i386/i386.c (ix86_class_likely_spilled_p): New.
(TARGET_CLASS_LIKELY_SPILLED_P): Define.
2010-09-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44937
PR tree-optimization/45412
* ipa-split.c (split_function): Properly remove PHI nodes.
2010-09-02 Joseph Myers <joseph@codesourcery.com>
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
2010-09-02 Joseph Myers <joseph@codesourcery.com>
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2010-09-02 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (nonmemory_operand): New mode attribute.
(push memory peephole2): Macroize peepholes using SWI mode iterator.
(move immediate to memory peephole2): Macroize peepholes using
SWI124 mode iterator.
(non-pairable NOT peephole2): Macroize peepholes using SWI124
mode iterator.
(simple lea add peephole2): Macroize peepholes using SWI48
mode iterator.
(simple lea mult peephole2): Ditto.
(imul by 3,5,9 to lea peephole2): Ditto.
(mov $-1, reg peephole2): Macroize peepholes using SWI248
mode iterator.
(imul $32bit_imm,mem,reg peephole2): Ditto.
(imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2010-09-02 Ian Bolton <ian.bolton@arm.com>
* tree-ssa-loop-prefetch.c: Fix comment at head of file.
2010-09-02 Olivier Hainque <hainque@adacore.com>
PR middle-end/44763
* ira-color.c (SORTGT): New macro, helper for qsort callbacks.
(allocno_priority_compare_func): Use it instead of a straight
difference computation over priorities.
2010-09-02 Andi Kleen <ak@linux.intel.com>
* opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2010-09-02 Ira Rosen <irar@il.ibm.com>
* tree-vectorizer.h (get_later_stmt): New function.
(vect_analyze_data_ref_dependences): Add argument.
* tree-vect-loop.c (vect_analyze_loop): Update call to
vect_analyze_data_ref_dependences.
* tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
New function.
(vect_analyze_data_ref_dependence): Add argument for basic block
dependencies. Check dependencies in basic block vectorization.
(vect_analyze_data_ref_dependences): Add argument and update call to
vect_analyze_data_ref_dependences.
* tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
(vect_bb_vectorizable_with_dependencies): New.
(vect_slp_analyze_bb): Check dependencies in basic block.
(vect_schedule_slp_instance): Insert stores before the last store in
SLP instance.
2010-09-02 Uros Bizjak <ubizjak@gmail.com>
PR target/45476
* config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2010-09-01 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45458
* bb-reorder.c (add_labels_and_missing_jumps): Treat
bbs ending with throwing insns like blocks ending with a call.
(fix_up_fall_thru_edges): Likewise.
2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
* config/m32c/m32c-protos.h (m32c_function_arg): Delete.
(m32c_function_arg_advance): Delete.
* config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
comments. Take a const_tree and a bool. Declare.
(m32c_function_arg_advance): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-09-01 Uros Bizjak <ubizjak@gmail.com>
PR target/45476
* config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
* config/i386/mingw32.h: ... here.
2010-09-01 Andi Kleen <ak@linux.intel.com>
PR lto/45475
* lto-streamer-in.c (lto_input_ts_target_option): Add.
(lto_input_tree_pointers): Call lto_input_ts_target_option.
* lto-streamer-out (lto_output_ts_target_option): Add.
(lto_output_tree_pointers): Call lto_output_ts_target_option.
2010-09-01 Kai Tietz <kai.tietz@onevision.com>
PR/target 45452
* config/i386/cygwin.h: Change order of specified import libraries.
* config/i386/mingw32.h: Likewise.
* config/i386/t-cygwin: Likewise.
* config/i386/t-mingw32: Likewise.
* config/i386/t-mingw-w32: Likewise.
* config/i386/t-mingw-w64: Likewise.
2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/neon-schedgen.ml (core): New type.
(allCores): List of supported cores.
(availability_table): Add supported cores.
(collate_bypasses): Accept core as a parameter.
(worst_case_latencies_and_bypasses): Accept core as a parameter.
(emit_insn_reservations): Accept core as a parameter. Use tuneStr
and coreStr to get tune attribute and prefix for functional units.
(emit_bypasses): Accept core name and use it.
(calculate_per_core_availability_table): New.
(filter_core): New.
(calculate_core_availability_table): New.
(main): Use calculate_core_availablity_table.
* config/arm/cortex-a8-neon.md: Update copyright year.
Regenerated from ml file and merged in.
(neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
cortex_a8_neon_mrc.
2010-09-01 Ian Bolton <ian.bolton@arm.com>
* Makefile.in (tree-switch-conversion.o): Update dependencies.
2010-09-01 Richard Guenther <rguenther@suse.de>
* alias.c (ao_ref_from_mem): Adjust.
* builtins.c (get_object_alignment): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
* gimple.c (get_base_address): Likewise.
* tree-dfa.c (get_ref_base_and_extent): Likewise.
(get_addr_base_and_unit_offset): Likewise. Fix for
both TMR_SYMBOL and TMR_BASE being set.
* tree-eh.c (tree_could_trap_p): Likewise.
* gimplify.c (gimplify_expr): Do not attempt to gimplify
TMR_SYMBOL. Always gimplify TMR_BASE.
* tree-cfg.c (verify_types_in_gimple_reference): Verify
TMR_BASE if there is a TMR_SYMBOL.
* tree-pretty-print.c (dump_generic_node): Adjust.
* tree-ssa-address.c (addr_for_mem_ref): Likewise.
(tree_mem_ref_addr): Likewise.
(create_mem_ref_raw): Likewise.
(move_fixed_address_to_symbol): Likewise.
(create_mem_ref): Likewise.
(dump_mem_address): Likewise.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
Fix for both TMR_SYMBOL and TMR_BASE being set.
(indirect_refs_may_alias_p): Likewise.
* tree-ssa-operands.c (get_tmr_operands): Adjust.
* tree.def (TARGET_MEM_REF): Adjust documentation.
2010-09-01 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
Rename from X86_TUNE_ADD_ESP_4.
<IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
<IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
<IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
(TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
(TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
(TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
(TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
* config/i386/i386.c (initial_ix86_tune_features)
<X86_TUNE_SINGLE_POP>: Invert members.
<X86_TUNE_DOUBLE_POP>: Ditto.
<X86_TUNE_SINGLE_PUSH>: Ditto.
<X86_TUNE_DOUBLE_PUSH>: Ditto.
* config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
No longer exported.
(push peephole2 patterns): Macroize peepholes using P mode iterator.
Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
(pop peephole2 patterns): Macroize peepholes using P mode iterator.
Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
* gimplify.c (gimplify_init_constructor): Do not create a temporary for
a volatile LHS if the constructor has only one element.
2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
PR bootstrap/45321
* tree.c (stdarg_p): Make fntype parameter const.
* tree.h (stdarg_p): Likewise.
(function_args_iterator): Remove unused fntype field.
(function_args_iter_init): Do not initialize fntype
field. Make fntype parameter const.
2010-09-01 Richard Guenther <rguenther@suse.de>
* tree-vrp.c (adjust_range_with_scev): Use number of iteration
estimate.
(vrp_visit_phi_node): Delay using SCEV till we balloon the range.
(execute_vrp): Compute number of iteration estimates.
* cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
* tree-flow.h (estimate_numbers_of_iterations): Likewise.
* tree-data-ref.c (estimated_loop_iterations): Adjust.
* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
Infer loop bounds from undefined behavior based on a new parameter.
(estimate_numbers_of_iterations): Likewise.
(scev_probably_wraps_p): Adjust.
* tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2010-09-01 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
where appropriate.
(xstormy16_legitimate_address_p): Use true and false instead of 1
and 0.
(xstormy16_expand_prologue): Delete unused local variable 'insn'.
(xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
magic constant 2.
(xstormy16_expand_call): Fix comment at start of function.
2010-09-01 Nick Clifton <nickc@redhat.com>
* config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
when pushing accumulator register.
(rx_get_stack_layout): Always save call clobbered registers inside
interrupt handlers.
* config/rx/rx-modes.def: Fix descriptive comment at start of file.
2010-09-01 Uros Bizjak <ubizjak@gmail.com>
* config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
* libgcc-std.ver (GCC_4.6.0): Define version.
2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
* tree-nested.c (convert_all_function_calls): Iterate until after the
sum of static chains in the nest doesn't change.
2010-08-31 Anatoly Sokolov <aesok@post.ru>
* config/m32c/m32c.c (classes_intersect): Remove.
(m32c_preferred_reload_class, m32c_secondary_reload_class): Use
reg_classes_intersect_p instead of classes_intersect.
(class_can_hold_mode): Change arguments type from enum reg_class to
reg_class_t. Use reg_class_contents instead of class_contents.
(m32c_register_move_cost): Make static. Change arguments type from
enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
classes_intersect. Use reg_class_contents instead of class_contents.
(m32c_memory_move_cost): Make static. Change arguments type from
enum reg_class to reg_class_t.
(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
* config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
* config/m32c/m32c-protos.h (m32c_register_move_cost,
m32c_memory_move_cost): Remove.
2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
* config/arm/arm-protos.h (arm_function_arg_advance): Delete.
(arm_function_arg): Delete.
(arm_needs_doubleword_align): Take a const_tree.
* config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
(aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
(arm_function_arg): Make static. Take a const_tree and a bool.
(arm_function_arg_advance): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-08-31 Andi Kleen <ak@linux.intel.com>
* common.opt (fwhopr=): Update for -fwhopr=jobserver
* doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
* lto-wrapper.c (run_gcc): Add jobserver mode.
* opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
argument.
2010-08-31 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
(popsi1): Ditto.
(*popdi1_epilogue): Ditto.
(*popsi1_epilogue): Ditto.
(popsi, popdi peephole2 patterns): Update peepholes for changed
pop{si,di}1 and *pop{si,di}1_epilogue patterns.
(pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
(*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
* config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
(override_options): Do not initialize removed ix86_gen_pop1.
(gen_pop): New static function.
(ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
(release_scratch_register_on_entry): Ditto.
(ix86_restore_reg_using_pop): Ditto.
(ix86_expand_epilogue): Ditto.
2010-08-31 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45461
* builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
* config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
semicolons.
2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
* doc/extend.texi: Fix documentation of the return value of
__builtin_choose_expr.
2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
* config/v850/v850-protos.h (function_arg): Delete.
* config/v850/v850.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Move code to...
* config/v850/v850.c (v850_function_arg_advance): ...here.
(v850_function_arg): Make static. Take a const_tree and a bool.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
* config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
these...
(ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
...and these...
* config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
..to here..
(ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
...and here.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
* config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
Delete.
* config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/rx/rx.c (rx_function_arg_size): Make static.
(rx_function_arg): Likewise.
(rx_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-08-31 John Tytgat <John.Tytgat@aaug.net>
* config/arm/arm.c (arm_override_options): Remove superfluous test.
Fix indentation.
2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
* dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
(dwarf2out_decl) <CONST_DECL>: Likewise.
2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
Stack usage support
* common.opt (-fstack-usage): New option.
* doc/invoke.texi (Debugging options): Document it.
* builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
allocate_dynamic_stack_space.
(expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
and propagate it to allocate_dynamic_stack_space.
(expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
* calls.c (initialize_argument_information): Pass TRUE as 4th
argument to allocate_dynamic_stack_space.
(expand_call): Set current_function_has_unbounded_dynamic_stack_size
to 1 when pushing a variable-sized argument onto the stack. Pass
TRUE as 4th argument to allocate_dynamic_stack_space.
Update current_function_pushed_stack_size.
(emit_library_call_value_1): Likewise.
* explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
attempt to find an upper bound. Remove redundant code for the
SETJMP_VIA_SAVE_AREA case.
* expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
* function.h (struct stack_usage): New structure.
(current_function_static_stack_size): New macro.
(current_function_dynamic_stack_size): Likewise.
(current_function_pushed_stack_size): Likewise.
(current_function_dynamic_alloc_count): Likewise.
(current_function_has_unbounded_dynamic_stack_size): Likewise.
(current_function_allocates_dynamic_stack_space): Likewise.
(struct function): Add new field 'su'.
* function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
add the value of the dynamic offset to the dynamic stack usage.
(gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
for variable-sized objects.
(prepare_function_start): Allocate cfun->su if flag_stack_usage.
(rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
* gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
BUILT_IN_ALLOCA for variable-sized objects.
* output.h (output_stack_usage): Declare.
* toplev.c (stack_usage_file): New file pointer.
(output_stack_usage): New function.
(open_auxiliary_file): Likewise.
(lang_dependent_init): Open file if flag_stack_usage is set.
(finalize): Close file if stack_usage_file is not null.
* tree.h (ALLOCA_FOR_VAR_P): New macro.
* config/alpha/alpha.c (compute_frame_size): New function.
(alpha_expand_prologue): Use it.
(alpha_start_function): Likewise.
(alpha_expand_epilogue): Likewise. Set stack usage info.
* config/i386/i386.c (ix86_expand_prologue): Likewise.
* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
* config/mips/mips.c (mips_expand_prologue): Likewise.
* config/pa/pa.c (hppa_expand_prologue): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2010-08-30 Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/45427
* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
Handle the case that the exit is never taken correctly.
(number_of_iterations_ne): Pass exit_must_be_taken to
number_of_iterations_ne_max.
2010-08-30 Catherine Moore <clm@codesourcery.com>
* config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
Infer -mdspr2 for the the 74K.
2010-08-30 Jakub Jelinek <jakub@redhat.com>
PR debug/45419
* tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
PR middle-end/45423
* gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
and TRUTH_{AND,OR,XOR}_EXPR.
* c-parser.c (c_parser_omp_atomic): Handle boolean
{PRE,POST}_{INC,DEC}REMENT.
2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
* config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
(function_arg): Delete.
* config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
(FUNCTION_INCOMING_ARG): Delete.
* config/xtensa/xtensa.c (function_arg_advance): Rename to...
(xtensa_function_arg_advance): ...this. Make static. Take a const_tree
and a bool.
(function_arg): Rename to...
(xtensa_function_arg_1): ...this. Make static. Take a const_tree and
a bool.
(xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
(TARGET_FUNCTION_INCOMING_ARG): Define.
2010-08-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/21602
* builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
using points-to information.
2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
* config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2010-08-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45449
* tree-ssa-live.c (remove_unused_locals): Also remove address-taken
variables.
2010-08-30 Joseph Myers <joseph@codesourcery.com>
* opts.h (CL_ERR_NEGATIVE): Define.
* opts.c (unknown_option_callback): Don't postpone warnings for
options marked with CL_ERR_NEGATIVE.
* opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
for negative versions of CL_REJECT_NEGATIVE options.
2010-08-30 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (zero_extendsidi2_1): Rename from
zero_extendsidi2_32.
(zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
using SWI12 mode iterator.
(zero_extendhisi2_and): Merge insn pattern and corresponding spliter
to define_insn_and_split pattern.
(zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
using SWI24 mode iterator.
(*zero_extendqi<mode>2_and): Macroize insn from
*zero_extendqi{hi,si}2_and using SWI24 mode iterator.
(*zero_extendqi<mode>2_movzbl_and): Macroize insn from
*zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
SWI24 mode iterator.
(*zero_extendqi<mode>2_movzbl): Ditto from
*zero_extendqi{hi,si}2_movzbl.
(extendsidi2_1): Rename from extendsidi2_32.
(extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
SWI12 mode iterator.
2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
* config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
general purpose registers.
(HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
* config/ia64/ia64.md (*movcci): Change to named pattern. Deal
with general purpose registers and memory operands. Add associated
CCImode post-reload splitter.
* config/ia64/div.md: Change BImode to CCImode throughout.
2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
* config/ia64/ia64.md (cstorebi4): Fix thinko.
2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (reorder_var_tracking_notes): This
function was dropping debug insns which caused PR45299.
2010-08-28 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (extsuffix): New code attribute.
(sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
(sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
and sse4_1_zero_extendv4qiv4si2.
(sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
and sse4_1_zero_extendv2qiv2di2.
(sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
and sse4_1_zero_extendv4hiv4si2.
(sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
and sse4_1_zero_extendv2hiv2di2.
(sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
and sse4_1_zero_extendv2siv2di2
(<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
using any_extend code iterator.
(*avx_<s>mulv8hi3_highpart): Macroize insn from
*avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
(*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
* config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
gen_sse4_1_sign_extend* functions.
(struct builtin_description bdesc_args): Ditto.
2010-08-27 Xinliang David Li <davidxl@google.com>
PR/45422
* tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
(iv_ca_set_no_cp): Update used inv expr count.
(iv_ca_set_cp): Ditto.
(iv_ca_new): Initialize new member.
(iv_ca_free): Free memory.
2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
* config/sh/sh-protos.h (sh_function_arg): Delete.
(sh_function_arg_advance): Delete.
* config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
(PASS_IN_REG_P): Eliminate cast.
* config/sh/sh.c (sh_function_arg_advance): Make static. Take a
const_tree and a bool.
(sh_function_arg): Likewise.
(sh_output_mi_thunk): Call sh_function_arg_advance) and
sh_function_arg.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (push_regs): Emit movml for interrupt handler
when possible.
(sh_expand_epilogue): Likewise.
* config/sh/sh.md (movml_push_banked): New insn.
(movml_pop_banked): Likewise.
2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
* genautomata.c (gen_regexp_repeat, gen_regexp_allof,
gen_regexp_oneof, gen_regexp_sequence): Use the string found
in vector element 0 rather than the original string when there's
only one element.
(gen_regexp): Remove extra semicolon.
* config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
thumb2_movsf_vfp): Set attribute "insn".
* config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
if_not_move, if_shift_move, if_move_shift, if_shift_shift,
if_not_arith, if_arith_not, cond_move_not): Likewise.
2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
New declaration.
(rs6000_allocate_stack_temp): Ditto.
(rs6000_expand_convert_si_to_sfdf): Ditto.
* config/rs6000/rs6000.c (rs6000_override_options): Adjust long
line. Update the options set if power6 or power7 server/embedded
type options are used. If we give a warning for no vsx under
-mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
(rs6000_allocate_stack_temp): New function to allocate a stack
tempoary and adjust the address so it meets either REG+OFFSET or
REG+REG addressing requirements.
(rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
that they can be used with the LFIWAX/LFIWZX instrucitons.
(rs6000_expand_convert_si_to_sfdf): New helper funciton for
converting signed/unsigned SImode to either SFmode/DFmode.
* config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
whether certain instructions can be generated.
(TARGET_FCTIDZ): Ditto.
(TARGET_STFIWX): Ditto.
(TARGET_LFIWAX): Ditto.
(TARGET_LFIWZX): Ditto.
(TARGET_FCFIDS): Ditto.
(TARGET_FCFIDU): Ditto.
(TARGET_FCFIDUS): Ditto.
(TARGET_FCTIDUZ): Ditto.
(TARGET_FCTIWUZ): Ditto.
* config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
(UNSPEC_FCTID): Ditto.
(UNSPEC_LFIWAX): Ditto.
(UNSPEC_LFIWZX): Ditto.
(UNSPEC_FCTIWUZ): Ditto.
(rreg): Use correct constraints.
(SI_CONVERT_FP): New mode attribute for floating point conversion
tests.
(E500_CONVERT): Ditto.
(lfiwax): New insns for converting from integer to floating point
utilizing newer instructions. Attempt to optimize conversions
that come from memory so that we don't load the value into a GPR,
spill it to the stack and reload it into a FPR.
(floatsi<mode>2_lfiwax): Ditto.
(floatsi<mode>2_lfiwax_mem): Ditto.
(floatsi<mode>2_lfiwax_mem2): Ditto.
(lfiwzx): Ditto.
(floatunssi<mode>2_lfiwzx): Ditto.
(floatunssi<mode>2_lfiwzx_mem): Ditto.
(floatunssi<mode>2_lfiwzx_mem2): Ditto.
(floatdidf2_mem): Ditto.
(floatunsdidf2_fcfidu): Ditto.
(floatunsdidf2_mem): Ditto.
(floatunsdisf2): Ditto.
(floatunsdisf2_fcfidus): Ditto.
(floatunsdisf2_mem): Ditto.
(floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
Use FCFID on 32-bit hosts that support it.
(floatsidf2_internal): Ditto.
(floatunssisf2): Ditto.
(floatunssidf2): Ditto.
(floatunssidf2_internal): Ditto.
(floatsisf2): Ditto.
(floatdidf2): Ditto.
(floatdidf2_fpr): Ditto.
(floatunsdidf2): Ditto.
(floatdisf2): Ditto.
(floatdisf2_fcfids): Ditto.
(floatdisf2_internal1): Ditto.
(fixuns_truncsfsi2): Delete, merge into common pattern for both
SF/DF. Add power7 support.
(fix_truncsfsi2): Ditto.
(fixuns_truncdfsi2): Ditto.
(fixuns_truncdfdi2): Ditto.
(fix_truncdfsi2): Ditto.
(fix_truncdfsi2_internal): Ditto.
(fix_truncdfsi2_internal_gfxopt): Ditto.
(fix_truncdfsi2_mfpgpr): Ditto.
(fctiwz): Ditto.
(btruncdf2): Ditto.
(btruncdf2_fpr): Ditto.
(btructsf2): Ditto.
(ceildf2): Ditto.
(ceildf2_fpr): Ditto.
(ceilsf2): Ditto.
(floordf2): Ditto.
(floordf2_fpr): Ditto.
(floorsf2): Ditto.
(rounddf2): Ditto.
(rounddf2_fpr): Ditto.
(roundsf2): Ditto.
(fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
(fix_trunc<mode>di2): Ditto.
(fixuns_trunc<mode>si2): Ditto.
(fixuns_trunc<mode>di2): Ditto.
(fctiwz_<mode>): Ditto.
(btrunc<mode>2): Ditto.
(btrunc<mode>2_fpr): Ditto.
(ceil<mode>2): Ditto.
(ceil<mode>2_fpr): Ditto.
(floor<mode>2): Ditto.
(float<mode>2_fpr): Ditto.
(round<mode>2): Ditto.
(round<mode>2_fpr): Ditto.
(fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
(fixuns_trunc<mode>si2_stfiwx): Ditto.
(fix_truncdfsi2_internal): Ditto.
(fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
converted value on stack, loaded into GPR, and then stored into
the final destination.
(fix_trunc<mode>di2_fctidz): New pattern for targets supporting
FCTIDZ.
(lrint<mode>di2): New insn, provide the lrint builtin functions.
(ftruncdf2): Delete, unused.
(fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
* config/rs6000/vsx.md (toplevel): Update copyright year.
(VSr2): Use "ws" contraint for DFmode, not "!r#r".
(VSr3): Ditto.
2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
Jeremie Salvucci <jeremie.salvucci@free.fr>
* gengtype.c (output_type_enum): Test the right union member.
2010-08-27 Uros Bizjak <ubizjak@gmail.com>
PR target/41484
* config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
operands for operand 1.
(sse4_1_extendv4qiv4si2): Ditto.
(sse4_1_extendv2qiv2di2): Ditto.
(sse4_1_extendv4hiv4si2): Ditto.
(sse4_1_extendv2hiv2di2): Ditto.
(sse4_1_extendv2siv2di2): Ditto.
(sse4_1_zero_extendv8qiv8hi2): Ditto.
(sse4_1_zero_extendv4qiv4si2): Ditto.
(sse4_1_zero_extendv2qiv2di2): Ditto.
(sse4_1_zero_extendv4hiv4si2): Ditto.
(sse4_1_zero_extendv2hiv2di2): Ditto.
(sse4_1_zero_extendv2siv2di2): Ditto.
(*sse4_1_extendv8qiv8hi2): Remove insn pattern.
(*sse4_1_extendv4qiv4si2): Ditto.
(*sse4_1_extendv2qiv2di2): Ditto.
(*sse4_1_extendv4hiv4si2): Ditto.
(*sse4_1_extendv2hiv2di2): Ditto.
(*sse4_1_extendv2siv2di2): Ditto.
(*sse4_1_zero_extendv8qiv8hi2): Ditto.
(*sse4_1_zero_extendv4qiv4si2): Ditto.
(*sse4_1_zero_extendv2qiv2di2): Ditto.
(*sse4_1_zero_extendv4hiv4si2): Ditto.
(*sse4_1_zero_extendv2hiv2di2): Ditto.
(*sse4_1_zero_extendv2siv2di2): Ditto.
2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
* config/mips/mips-protos.h (mips_function_arg_advance): Delete
(mips_function_arg): Delete.
(mips_function_arg_boundary): Take a const_tree.
* config/mips/mips.c (mips_function_arg_boundary): Likewise.
(mips_arg_info): Likewise.
(mips_setup_incoming_varargs): Call mips_function_arg_advance
instead of FUNCTION_ARG_ADVANCE.
(mips_function_arg_advance): Adjust prototype. Make static.
(mips_function_arg): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
* config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
(function_arg): Delete.
(function_arg_boundary): Take a const_tree.
* config/rs6000/rs6000.c (function_arg_boundary): Likewise.
(rs6000_spe_function_arg): Likewise.
(rs6000_parm_start): Likewise.
(rs6000_arg_size): Likewise.
(rs6000_darwin64_record_arg_advance_recurse): Likewise.
(rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
(rs6000_mixed_function_arg): Likewise.
(function_arg): Rename to...
(rs6000_function_arg): ...this.
(function_arg_advance): Rename to...
(rs6000_function_arg_advance_1): ...this
(rs6000_function_arg_advance): New function. Call it.
(setup_incoming_varargs): Call rs6000_function_arg_advance_1.
(rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
(rs6000_function_value): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.md (enabled): Test the value of arch_enabled
rather than just using it.
2010-08-27 Olivier Hainque <hainque@adacore.com>
Eric Botcazou <ebotcazou@adacore.com>
* dse.c (group_info.base_mem, get_group_info): Use BLKmode to
cover all the possible offsets from this base.
(scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
2010-08-26 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/44485
* calls.c (flags_from_decl_or_type): For const or pure
noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
together with ECF_CONST resp. ECF_PURE.
* builtins.c (expand_builtin): Use flags_from_decl_or_type
instead of querying flags directly.
* tree-ssa-loop-niter.c (finite_loop_p): Likewise.
* tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
2010-08-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45255
* tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
and externals are also invariant.
2010-08-25 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/44858
* combine.c (try_combine): If recog_for_combine added CLOBBERs to
newi2pat, make sure they don't affect newpat.
PR rtl-optimization/45400
* combine.c (simplify_shift_const_1) <case SUBREG>: Only use
SUBREG_REG if both modes are of MODE_INT class.
2010-08-25 Julian Brown <julian@codesourcery.com>
* config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
* config/arm/arm.md (generic_sched): No for Cortex-A5.
(generic_vfp): Likewise.
(cortex-a5.md): Include.
* config/arm/cortex-a5.md: New.
2010-08-25 Richard Guenther <rguenther@suse.de>
* alias.c (get_alias_set): Assign a single alias-set to all pointers.
* gimple.c (gimple_get_alias_set): Remove special handling
for pointers.
2010-08-25 Bernd Schmidt <bernds@codesourcery.com>
PR middle-end/45355
* combine.c (try_combine): Use reg_overlap_mentioned_p rather than
dead_or_set_p when computing i0_feeds_i2_n.
* combine.c (find_split_point): Undo canonicalization of multiply-add
to (minus x (mult)) when it seems likely that this will increase the
chances of a split.
2010-08-25 Richard Guenther <rguenther@suse.de>
PR lto/44562
* lto-streamer.c (lto_record_common_node): Do not mess with
TYPE_CANONICAL when not in lto.
* gimple.c (gimple_register_type): Likewise.
2010-08-25 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45316
* tree-ssa-pre.c (eliminate): Properly clean EH info.
2010-08-25 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45393
* tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
and clean EH info. Avoid SSA update.
(execute_cse_sincos): Cleanup the CFG if it has changed.
2010-08-25 Richard Guenther <rguenther@suse.de>
PR middle-end/45379
* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
TARGET_MEM_REF in alignment computation.
2010-08-25 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45059
* tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
type conversions from newop{1,2}. Assert t is a comparison and
newop{1,2} after the stripping are gimple vals.
2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
* config/arm/iterators.md (VU, SE, V_widen_l): New.
(V_unpack, US): New.
* config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
(vec_unpack<US>_lo_<mode>): Likewise.
(neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
(neon_vec_unpack<US>_lo_<mode>): Likewise.
(vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
(vec_widen_<US>mult_hi_<mode>): Likewise.
(neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
(neon_vec_<US>mult_hi_<mode>"): Likewise.
(neon_unpack<US>_<mode>): Widening move intermediate step for
vectorizing without -mvectorize-with-neon-quad.
(neon_vec_<US>mult_<mode>): Widening multiply intermediate step
for vectorizing without -mvectorize-with-neon-quad.
* config/arm/predicates.md (vect_par_constant_high): Check for
high-half lanes of a vector.
(vect_par_constant_low): Check for low-half lanes of a vector.
2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c (struct ifc_dr): New.
(IFC_DR): New.
(DR_WRITTEN_AT_LEAST_ONCE): New.
(DR_RW_UNCONDITIONALLY): New.
(memref_read_or_written_unconditionally): Use the cached values
when possible.
(write_memref_written_at_least_once): Same.
(if_convertible_loop_p): Initialize and free DR->aux fields.
2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
* gimple.c (gimple_could_trap_p_1): Not static anymore.
Pass an extra bool parameter include_mem.
(gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
(gimple_assign_rhs_could_trap_p): Same.
* gimple.h (gimple_could_trap_p_1): Declared.
* tree-data-ref.h (same_data_refs_base_objects): New.
(same_data_refs): New.
* tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
(write_memrefs_written_at_least_once): New.
(ifcvt_memrefs_wont_trap): New.
(operations_could_trap): New.
(ifcvt_could_trap_p): New.
(if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
Gets a vector of data refs.
(if_convertible_stmt_p): Same.
(if_convertible_loop_p_1): New.
(if_convertible_loop_p): Call if_convertible_loop_p_1.
2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
* common.opt (ftree-loop-if-convert-stores): New flag.
* doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
* tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
the created statement before GSI.
(if_convertible_phi_p): Allow virtual phi nodes when
flag_loop_if_convert_stores is set.
(if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
Do not handle types that do not match is_gimple_reg_type.
Remove loop and bb parameters. Call gimple_could_trap_p instead of
when flag_loop_if_convert_stores is set, as LHS can contain
memory refs.
(if_convertible_stmt_p): Remove loop and bb parameters. Update calls
to if_convertible_gimple_assign_stmt_p.
(if_convertible_loop_p): Update call to if_convertible_stmt_p.
(replace_phi_with_cond_gimple_assign_stmt): Renamed
predicate_scalar_phi. Do not handle virtual phi nodes.
(ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
Call predicate_scalar_phi.
(insert_gimplified_predicates): Insert the gimplified predicate of a BB
just after the labels for flag_loop_if_convert_stores, otherwise
insert the predicate in the end of the BB.
(predicate_mem_writes): New.
(combine_blocks): Call predicate_all_scalar_phis. When
flag_loop_if_convert_stores is set, call predicate_mem_writes.
(tree_if_conversion): Call mark_sym_for_renaming when
flag_loop_if_convert_stores is set.
(main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
flag_loop_if_convert_stores is set.
2010-08-24 Anatoly Sokolov <aesok@post.ru>
* config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
(pa_function_value): Make static.
(override_options): Rename to...
(pa_option_override): ...this. Make static.
(TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
TARGET_OPTION_OVERRIDE): Define.
* config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
Remove.
* config/pa/pa-protos.h (override_options): Remove.
2010-08-24 Richard Guenther <rguenther@suse.de>
PR middle-end/45379
* tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
if addr->index is NULL or zero.
* tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
TARGET_MEM_REF more properly.
(indirect_ref_may_alias_decl_p): Likewise.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
* alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
2010-08-23 Anatoly Sokolov <aesok@post.ru>
* config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
(m32c_override_options): Rename to...
(m32c_option_override): ...this. Make static.
(TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
* config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
Remove.
* config/m32c/m32c-protos.h (m32c_override_options,
m32c_function_value_regno_p): Remove.
2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
Fix a typo in a previous commit.
2010-08-23 Kai Tietz <kai.tietz@onevision.com>
* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
Pre-initialize innerloop_iters to one.
2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
* tree-flow.h (may_be_nonaddressable_p): New definition. Make the
existing static function global.
* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
is changed to global.
* tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
may_be_nonaddressable_p on base, and don't collect this reference
if the address of the base could not be taken.
2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
enable the compiler to autovectorize mathmetical functions for
power7 using the Mathematical Acceleration Subsystem library.
* config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
handle which vector math library we have.
(rs6000_override_options): Add -mveclibabi=mass support.
(rs6000_builtin_vectorized_libmass): New function to handle auto
vectorizing math functions that are in the MASS library.
(rs6000_builtin_vectorized_function): Call it.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mveclibabi=mass.
2010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR boehm-gc/34544
* gthr-posix.h (__gthread_active_init): Delete.
(__gthread_active_p): Do activity check here.
Don't include errno.h on hppa-hpux. Update comment.
* gthr-posix95.h (__gthread_active_init): Delete.
(__gthread_active_p): Do activity check here.
Don't include errno.h on hppa-hpux. Update comment.
* config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
* config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
add -lpthread when -mt or -pthread is specified.
* config/pa/pa-hpux11.h (LIB_SPEC): likewise.
(LINK_GCC_C_SEQUENCE_SPEC): Define.
* config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
(stublib.c, pthread_default_stacksize_np-stub.o,
pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
$(T)libgcc_stub.a): Add methods.
* config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
(stublib.c, pthread_default_stacksize_np-stub.o,
pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
* config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
pthread_mutex_unlock): New stubs.
2010-08-22 Joseph Myers <joseph@codesourcery.com>
* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
options.
* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
"-l".
* cppspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
* doc/tm.texi: Regenerate.
* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
(driver_handle_option): Allow driver options needing no special
processing.
(process_command): Decode options before call to
lang_specific_driver. Pass decoded options to
lang_specific_driver.
* gcc.h (lang_specific_driver): Update prototype.
* gccspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* opts-common.c (option_ok_for_language, generate_option,
generate_option_input_file): New.
(decode_cmdline_option): Use option_ok_for_language.
(decode_cmdline_options_to_array): Use generate_option_input_file.
(handle_generated_option): Use generate_option.
* opts.h (generate_option, generate_option_input_file): Declare.
2010-08-22 Anatoly Sokolov <aesok@post.ru>
* config/mips/mips.c (mips_override_options): Rename to...
(mips_option_override): ...this. Make static.
(TARGET_OPTION_OVERRIDE): Define.
(mips_in_small_data_p): Update comment.
* config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
(FIXED_REGISTERS): Update comment.
* config/mips/mips-protos.h (mips_override_options): Remove.
2010-08-21 Olivier Hainque <hainque@adacore.com>
* config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
2010-08-21 Olivier Hainque <hainque@adacore.com>
* config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
2010-08-20 Jan Hubicka <jh@suse.cz>
* tree-pass.h (pass_ipa_cdtor_merge): New function.
* cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
heap allocated.
(record_cdtor_fn): Move to ipa.c; do not test for
have_ctors_dtors.
(build_cdtor): Move to ipa.c; add code avoiding construction
when target have ctors/dtors and there is only one ctor/dtor at given
priority.
(compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
sort; reverse order of constructors.
(cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
(cgraph_finalize_function): Do not call record_cdtor_fn.
(cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
(cgraph_build_static_cdtor): Move to ipa.c.
* ipa.c: Include target.h and tree-iterator.h.
(cgraph_build_static_cdtor, static_ctors, static_dtors,
record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
pass_ipa_cdtor_merge): New.
* passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
* ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
bounds access.
2010-08-20 Jan Hubicka <jh@suse.cz>
PR c++/45307
PR c++/17736
* cgraph.h (cgraph_only_called_directly_p,
cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
static cdtors.
* cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
are not needed.
(cgraph_finalize_function): Static cdtors are reachable.
(cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
2010-08-20 Jan Hubicka <jh@suse.cz>
* lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
flag_wpa.
* lto-streamer-out.c (lto_output): Likewise.
* passes.c (ipa_write_optimization_summaries): Initialize statement
uids.
2010-08-20 Olivier Hainque <hainque@adacore.com>
* tree.h (alias_diag_flags): New enum.
(alias_pair): Add an 'emitted_diags' field.
* varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
(assemble_alias): Initialize emitted_diags of new pairs.
2010-08-20 Eric Botcazou <ebotcazou@adacore.com>
* config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
* config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
* config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
(STACK_CHECK_PROTECT): Define.
* config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
(output_probe_stack_range): Likewise.
(rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
builtin stack checking is enabled.
* config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
* config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
(probe_stack_range): New insn.
2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
PR target/45336
* config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
short first.
* config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
char first.
2010-08-20 Jakub Jelinek <jakub@redhat.com>
PR target/45336
* config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
to cover zero extension into 64-bit register.
(*sse2_pextrw): Likewise.
(*sse4_1_pextrd_zext): New insn.
2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
revert r163410, partially revert r163267.
* config/rs6000/darwin.h (LIB_SPEC): Remove.
* config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
Darwin versions.
2010-08-20 Jakub Jelinek <jakub@redhat.com>
PR middle-end/44974
* builtins.c (expand_builtin): Don't optimize away
calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
2010-08-20 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (ashift %rsp splitter): Remove splitter.
(pro_epilogue_adjust_stack_di_2): Use "l" constraint for
alternative 1 of operand 2.
2010-08-20 Jakub Jelinek <jakub@redhat.com>
Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (simplify_unary_operation_1): Optimize
(sign_extend (zero_extend (...)) and
({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
2010-08-20 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/45353
* sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
after bb_note is a BARRIER.
2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
* config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
linking libgcc.a.
2010-08-20 Jakub Jelinek <jakub@redhat.com>
Michael Matz <matz@suse.de>
* tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
* ggc-common.c (ggc_mark_root_tab): New function, split out from...
(ggc_mark_roots): ...here.
2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
* vec.h (FOR_EACH_VEC_ELT): Define.
* c-decl.c: Use it.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraph.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/mips/mips.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* dbxout.c: Likewise.
* df-scan.c: Likewise.
* dominance.c: Likewise.
* dse.c: Likewise.
* dwarf2out.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* function.c: Likewise.
* gcse.c: Likewise.
* genattr.c: Likewise.
* ggc-common.c: Likewise.
* gimplify.c: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* haifa-sched.c: Likewise.
* ifcvt.c: Likewise.
* implicit-zee.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-struct-reorg.c: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-emit.c: Likewise.
* lambda-code.c: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-opts.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.c: Likewise.
* lto-symtab.c: Likewise.
* matrix-reorg.c: Likewise.
* opts.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* sdbout.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched.c: Likewise.
* sese.c: Likewise.
* stor-layout.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-emutls.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-loop-linear.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* value-prof.c: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
* vmsdbgout.c: Likewise.
2010-08-19 Nathan Sidwell <nathan@codesourcery.com>
Richard Guenther <richard.guenther@gmail.com>
* gimplify.c (gimplify_modify_expr): When assigning to volatiles,
copy the src value and return a copy.
* doc/extend.texi (Volatiles): Move from C++ to C and expand.
(C++ Volatiles): Adjust to describe C++ semantics only.
2010-08-20 Joseph Myers <joseph@codesourcery.com>
* doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
be zero or nonzero.
* doc/tm.texi: Regenerate.
* defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
* df-scan.c (df_get_exit_block_use_set), reginfo.c
(init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
* config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
to 1.
2010-08-20 Olivier Hainque <hainque@adacore.com>
* config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
an extra nop past a sibling call at the very end.
2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
PR bootstrap/45350
* combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
a comment.
2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
* target.def (function_arg, function_incoming_arg): Remove const
qualifier on CUMULATIVE_ARGS parameter.
* targhooks.h (default_function_arg, default_function_incoming_arg):
Likewise.
* targhooks.c (default_function_arg, default_function_incoming_arg):
Likewise.
* config/i386/i386.c (ix86_function_arg): Likewise.
2010-08-19 Jakub Jelinek <jakub@redhat.com>
PR target/45336
* simplify-rtx.c (simplify_unary_operation_1): Optimize nested
SIGN_EXTENDs or ZERO_EXTENDs.
2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
PR target/42172
* combine.c (combine_validate_cost): New arg I0. All callers changed.
Take its cost into account if nonnull.
(insn_a_feeds_b): New static function.
(combine_instructions): Look for four-insn combinations.
(can_combine_p): New args PRED2, SUCC2. All callers changed. Take
them into account when computing all_adjacent and looking for other
uses.
(combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
changed. Treat them like I1DEST and I1_NOT_IN_SRC.
(try_combine): New arg I0. Handle four-insn combinations.
(distribute_notes): New arg ELIM_I0. All callers changed. Treat it
like ELIM_I1.
2010-08-19 Jason Merrill <jason@redhat.com>
PR c++/45307
* gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
if ctor is empty.
(gimplify_modify_expr_rhs): Adjust.
2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
* cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
bitmap_bit_p.
* config/bfin/bifn.c (bfin_discover_loop): Likewise.
* dominance.c (iterate_fix_dominators): Likewise.
* dse.c (set_usage_bits): Likewise.
(set_position_unneeded, record_store): Likewise.
* gimple-fold.c (get_maxval_strlen): Likewise.
* haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
* ipa-inline.c (update_caller_keys): Likewise.
* ipa-split.c (verify_non_ssa_vars): Likewise.
* ipa-type-escape.c (mark_type, close_type_seen): Likewise.
(close_type_exposed_parameter, close_type_full_escape): Likewise.
(close_addressof_down): Likewise.
* ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
(setup_allocno_left_conflicts_size): Likewise.
(ira_reassign_conflict_allocnos): Likewise.
(ira_reassign_pseudos): Likewise.
* ira-emit.c (change_loop): Likewise.
* loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* predict.c (expr_expected_value_1): Likewise.
* regstat.c (regstat_bb_compute_ri): Likewise.
* sel-sched.c (create_block_for_bookkeeping): Likewise.
(track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
* stmt.c (expand_case): Likewise.
* tree-eh.c (emit_eh_dispatch): Likewise.
* tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
* tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
Likewise.
(rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
(rdg_build_components): Likewise.
* tree-object-size.c (collect_object_sizes_for): Likewise.
* tree-sra.c (convert_callers): Likewise.
* tree-ssa-coalesce.c (live_track_add_partition): Likewise.
* tree-ssa-live.c (mark_all_vars_used_1): Likewise.
* tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
2010-08-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*lea_1): Use P mode iterator.
(lea add splitter): Also handle DImode operands.
(DImode lea add splitter): Use x86_64_immediate_operand for operand 2
predicate. Do not use ix86_lea_for_add_ok.
(zext DImode lea add splitter): Use ix86_lea_for_add_ok.
(lea ashift splitter): Also handle DImode operands.
(DImode lea ashift splitter): Remove splitter.
2010-08-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
ix86_binary_operator_ok.
2010-08-19 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/44691
* sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
is not a register.
2010-08-19 Ian Bolton <ian.bolton@arm.com>
PR target/45070
* config/arm/arm.c (arm_output_epilogue): Ensure that return
value of size 1-3 is handled correctly.
2010-08-19 Ian Bolton <ian.bolton@arm.com>
* tree-switch-conversion.c (gen_inbound_check): Ensure that the
type for the conditional has wide enough range.
2010-08-18 Uros Bizjak <ubizjak@gmail.com>
PR target/45327
* config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
ix86_binary_operator_ok.
2010-08-18 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
<default>: Swap operands 1 and 2 for alternative 2 to use existing
code to output insn mnemonic. Fix comment.
(*addsi_1_zext): Add r-r-0 alternative 1.
<TYPE_LEA>: Split insn to lea.
<default>: Handle alternative 1.
(*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
multi-level if_then_else RTX to set "type" attribute.
<default>: Handle alternative 2.
(*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
Use cond RTX instead of multi-level if_then_else RTX to set
"type" attribute.
<default>: Handle alternatives 2 and 4.
(lea splitters): Update calls to ix86_lea_for_add_ok.
* config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
argument.
* config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
2010-08-18 Richard Guenther <rguenther@suse.de>
* tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
use operand helpers.
2010-08-18 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/45292
* optabs.c (expand_bool_compare_and_swap): Expand pending
pops before trying the optab.
2010-08-18 Yao Qi <yao@codesourcery.com>
PR target/45094
* config/arm/arm.c (output_move_double): Fix typo generating
instructions ('ldr'->'str').
2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
PR rtl-optimization/42575
* optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
live ranges.
2010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/arm/arm-protos.h (arm_expand_sync): New.
(arm_output_memory_barrier, arm_output_sync_insn): New.
(arm_sync_loop_insns): New.
* config/arm/arm.c (FL_ARCH7): New.
(FL_FOR_ARCH7): Include FL_ARCH7.
(arm_arch7): New.
(arm_print_operand): Support %C markup.
(arm_legitimize_sync_memory): New.
(arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
(arm_process_output_memory_barrier, arm_output_memory_barrier): New.
(arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
(arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
(arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
(arm_process_output_sync_insn, arm_output_sync_insn): New.
(arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
* config/arm/arm.h (struct arm_sync_generator): New.
(TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
(TARGET_HAVE_MEMORY_BARRIER): New.
(TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
* config/arm/arm.md: Include sync.md.
(UNSPEC_MEMORY_BARRIER): New.
(VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
(VUNSPEC_SYNC_OP):New.
(VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
(sync_result, sync_memory, sync_required_value): New attributes.
(sync_new_value, sync_t1, sync_t2): Likewise.
(sync_release_barrier, sync_op): Likewise.
(length): Add logic to length attribute defintion to call
arm_sync_loop_insns when appropriate.
* config/arm/sync.md: New file.
2010-08-17 Jakub Jelinek <jakub@redhat.com>
* tree.h (host_integerp): Add ATTRIBUTE_PURE when not
ENABLE_TREE_CHECKING.
(tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
and GCC >= 4.3.
2010-08-17 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
or optimizing for size, always avoid lea if possible.
* config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
2010-08-17 Iain Sandoe <iains@gcc.gnu.org>
* unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
Dunmmy function with NULL return unless the target is
OSX >= 10.6 (Darwin10).
2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
PR target/45258
* gcc.c (spec_function): Add remove-outfile.
(remove_outfile_spec_function): New function.
* config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
* invoke.texi (replace-outfile): Document.
2010-08-17 Uros Bizjak <ubizjak@gmail.com>
PR target/45296
* reginfo.c (globalize_reg): Reject stack registers.
2010-08-17 Richard Guenther <rguenther@suse.de>
* tree-ssa-dom.c (struct edge_info): Use a VEC for the
list of conditional equivalences.
(free_all_edge_infos): Adjust.
(record_equivalences_from_incoming_edge): Likewise.
(record_cond): Likewise.
(build_and_record_new_cond): Likewise.
(record_conditions): Likewise.
(dom_opt_leave_block): Likewise.
2010-08-17 Kai Tietz <kai.tietz@onevision.com>
* doc/invoke.texi (ms-extension): Add documentation.
2010-08-17 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
2010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
PR c/40563
* c-decl.c (diagnose_uninitialized_cst_member): New function.
(finish_decl): Use it to issue a -Wc++-compat warning about
uninitialized const field in struct or union.
(finish_struct): Use strip_array_types.
2010-08-17 Jakub Jelinek <jakub@redhat.com>
* function.c (block_fragments_nreverse, blocks_nreverse_all): New
functions.
(reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
(reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
call block_nreverse here.
(blocks_nreverse): Rename decl temporary to block.
2010-08-16 Bernd Schmidt <bernds@codesourcery.com>
* config/arm/thumb2.md (thumb2_notsi_shiftsi,
thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
thumb2_iorsi3): Delete.
(orsi_notsi_si): No longer a named pattern.
(orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
* config/arm/predicates.md (shift_amount_operand): New.
(mult_operator): New.
* config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
attr enabled): New.
(iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
arch matches t2.
(not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
(not_shiftsi_compare0): Likewise, renamed from
arm_notsi_shiftsi_compare0.
(not_shiftsi_compare0_scratch): Likweise, renamed from
arm_notsi_shiftsi_compare0_scratch.
(cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
(cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
(arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
so that the register alternative is disabled when the shift_operator
is MULT. Use "M" as the constraint for constants.
(arith_shiftsi splitter): Enable for TARGET_32BIT.
(arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
constraint for constants.
(arith_shiftsi_compare0_scratch): Likewise.
(sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
Handle Thumb2 alternative.
2010-08-16 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (NoDriverArg): Document.
* gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
-MDX and -MMDX.
* opt-functions.awk (switch_flags): Handle NoDriverArg.
* opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
marking for CL_NO_DRIVER_ARG options when in the driver.
* opts.h (CL_NO_DRIVER_ARG): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
CL_COMMON): Update values.
2010-08-16 Joseph Myers <joseph@codesourcery.com>
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
2010-08-16 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_types_in_gimple_reference): Verify
TARGET_MEM_REF a bit.
* tree-ssa-address.c (addr_for_mem_ref): Adjust.
(create_mem_ref_raw): Always create TMR_OFFSET, store the
alias pointer type via it.
(copy_mem_ref_info): Adjust.
(maybe_fold_tmr): Likewise.
* tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
(reference_alias_ptr_type): Likewise.
* tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
adjust documentation of TMR_OFFSET operand.
* alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
use the alias pointer type.
* expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
initialize mem attrs but the TMR itself.
* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
similar to MEM_REF.
* tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
* tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
(unshare_and_remove_ssa_names): Likewise.
(copy_ref_info): Adjust.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
TARGET_MEM_REF case.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
at TMR_ORIGINAL.
* tree.h (TMR_ORIGINAL): Remove.
* gimple.c (get_base_address): For TARGET_MEM_REF with a
symbol return that.
* tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
with a symbol.
(get_addr_base_and_unit_offset): Likewise.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
TARGET_MEM_REFs.
(indirect_ref_may_alias_decl_p): Likewise.
(refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
2010-08-15 Uros Bizjak <ubizjak@gmail.com>
* doc/invoke.texi (-fomit-frame-pointer): Document that starting
with GCC version 4.6, the default setting (when not optimizing
for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
been changed to -fomit-frame-pointer.
2010-08-15 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
Darwin10. Do not link libgcc.a for Darwin >= 9.
2010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
* doc/invoke.texi (Warning Options): Fix terminology and markup
in the description of how unknown warning options are handled.
2010-08-15 Ira Rosen <irar@il.ibm.com>
* tree-vect-data-refs.c (vect_setup_realignment): Support realignment
in basic blocks.
(vect_supportable_dr_alignment): Check alignment for basic blocks.
* tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
data references.
(vect_bb_vectorization_profitable_p): New function.
(vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
check if it's worthwhile to vectorize the basic block.
2010-08-14 Anatoly Sokolov <aesok@post.ru>
* reload.h (register_move_cost, memory_move_secondary_cost,
secondary_reload_class): Adjust prototype.
* rtl.h (reg_class_subset_p): Adjust prototype.
* reload.c (secondary_reload_class): Change arguments type from
enum reg_class to reg_class_t. Change result type to reg_class_t.
* reginfo.c (register_move_cost, reg_class_subset_p): Change
arguments type from enum reg_class to reg_class_t.
(memory_move_secondary_cost): Change arguments type from
enum reg_class to reg_class_t. Change type of saved_flags to
reg_class_t.
* config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
Remove macros.
(mips_cost): Remove.
(struct mips_rtx_cost_data): Moved to mips.c.
* config/mips/mips-protos.h (mips_register_move_cost): Remove.
* config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
(mips_cost): Make static.
(mips_canonicalize_move_class): Change argument type to reg_class_t.
Change result type to reg_class_t.
(mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
type from enum reg_class to reg_class_t.
(mips_register_move_cost): Make static. Change arguments
type from enum reg_class to reg_class_t.
(mips_memory_move_cost): New function.
(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
PR rtl-optimization/43358
* ira-lives.c (process_single_reg_class_operands): Adjust the costs
of a single hard register, using simplify_subreg_regno to decide
what that register should be.
2010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
* config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
* config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
(loongson_pmull<V_suffix>): Rename to...
(mul<mode>3): ...this and use MULT instead of an UNSPEC.
2010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
* configure.ac: Enable -fomit-frame-pointer on darwin
which support dwarf2.
* config/i386/i386.c (override_options): Same.
2010-08-13 Jie Zhang <jie@codesourcery.com>
* config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
2010-08-12 Joseph Myers <joseph@codesourcery.com>
* gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
-MMD.
2010-08-12 Changpeng Fang <changpeng.fang@amd.com>
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
up dot_prod pattern searching if a stmt is outside the loop.
2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
Uros Bizjak <ubizjak@gmail.com>
* config.gcc: Handle --enable-frame-pointer.
* configure.ac: Add --enable-frame-pointer.
* configure: Regenerated.
* config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
(override_options): If not configured with --enable-frame-pointer,
enable -fomit-frame-pointer (but not for TARGET_MACHO or when
optimizing for size), -fasynchronous-unwind-tables and
-maccumulate-outgoing-args by default.
2010-08-12 Jakub Jelinek <jakub@redhat.com>
* builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
PR middle-end/45262
* fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
-a overflows. Normalize the range.
2010-08-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45232
* tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
for types with undefined overflow.
(reassociate_bb): Allow re-associating of bit and min/max
operations for types with undefined overflow.
* tree-ssa-forwprop.c (associate_plusminus): New function.
(tree_ssa_forward_propagate_single_use_vars): Call it.
2010-08-12 Richard Guenther <rguenther@suse.de>
* tree-flow.h (struct ptr_info_def): Add align and misalign fields.
* tree-ssa-alias.c (get_ptr_info): Move ...
* tree-ssanames.c (get_ptr_info): ... here. Initialize
align and misalign fields conservatively.
* tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
derive alignment information.
(evaluate_stmt): Derive alignment information from memory
allocation functions.
* tree.h (get_pointer_alignment): Make unsigned.
* builtins.c (get_object_alignment): Use alignment information we
have computed for pointers.
(get_pointer_alignment): Likewise. Make conservative, return
and unsigned value.
(expand_builtin_strlen): Adjust.
(expand_builtin_memcmp): Likewise.
(expand_builtin_strcmp): Likewise.
(expand_builtin_strncmp): Likewise.
(get_builtin_sync_mem): Use at least mode alignment.
(fold_builtin_memset): Adjust.
(fold_builtin_memory_op): Likewise.
* gimple-pretty-print.c (dump_gimple_phi): Alongside alias
information also dump pointer alignment knowledge.
(dump_gimple_stmt): Likewise.
2010-08-12 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (LONG_TYPE_SIZE): Remove.
(EMPTY_FIELD_BOUNDARY): Remove.
* config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
2010-08-12 Jakub Jelinek <jakub@redhat.com>
PR debug/45259
* caller-save.c (save_call_clobbered_regs): Only swap notes with
DEBUG_INSNs if n_regs_saved.
2010-08-12 Wei Guozhi <carrot@google.com>
PR target/44999
* config/arm/arm.md (andsi3): Change to zero extension if possible.
* config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
* ira-int.h (ira_remove_allocno_copy_from_list): Remove.
* ira-build.c (ira_remove_allocno_copy_from_list): Remove.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
the case removed in the previous patch, when the only phi argument
is defined in the same loop as the phi node itself. Handle it
separately from the invariant case by both propagating it outside
the region and replacing the phi node with an assign.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
constant phi nodes with one argument are is_gimple_min_invariant
and SSA_NAME_IS_DEFAULT_DEF.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-cloog-util.c (oppose_constraint):
Extend loop counter's value range (CLOOG_ORG).
(cloog_matrix_to_ppl_constraint): Same.
(new_Constraint_System_from_Cloog_matrix): Same.
* graphite-cloog-compat.h (matrix_num_type): New.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite.c (graphite_initialize): Do not initialize
CLooG and initialize the Parma Polyhedra Library
manually when using CLOOG_ORG.
(graphite_finalize): Do not finalize CLooG and finalize
the Parma Polyhedra Library manually when using CLOOG_ORG.
* graphite-cloog-compat.h (cloog_initialize): Hide function
when using CLOOG_ORG.
(cloog_finalize): Same.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c (free_scattering): Change
CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
(CLOOG_ORG).
(build_cloog_prog): Same.
* graphite-cloog-compat.h (cloog_domain): Removed.
(cloog_scattering): New.
(cloog_set_domain): Removed.
(cloog_set_scattering): New.
(cloog_next_domain): Removed.
(cloog_next_scattering): New.
(cloog_set_next_domain): Removed.
(cloog_set_next_scattering): New.
(CloogScatteringList): New.
(CloogScattering): New.
(cloog_scattering_free): New.
(new_Cloog_Scattering_from_ppl_Polyhedron): New.
* graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
New.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c (build_cloog_prog): Extend with
CloogState.
(set_cloog_options): Same.
(print_clast_stmt): Same.
(scop_to_clast): Same.
(print_generated_program): Same.
(gloog): Same.
* graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
(scop_to_clast): Extend with CloogState.
* graphite-cloog-util.c: Include graphite-cloog-compat.h
(new_Cloog_Domain_from_ppl_Polyhedron):
Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
(new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
(new_Cloog_Domain_from_ppl_Polyhedron): Same.
* graphite-cloog-util.h (build_cloog_prog): Same.
* graphite-cloog-copat.h (build_cloog_prog): New.
(CloogState): New.
(cloog_state_malloc): New.
(cloog_state_free): New.
(cloog_loop_malloc): New.
(cloog_options_malloc): New.
(cloog_statement_alloc): New.
(cloog_domain_from_cloog_matrix): New.
(new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
(new_Cloog_Domain_from_ppl_Polyhedron): New.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
type of NAME now depends on used CLooG version.
(clast_to_gcc_expression): Replace expr_* with clast_expr_*.
(gcc_type_for_clast_expr): Same.
(print_clast_stmt): Replace pprint with clast_pprint.
* graphite-cloog-compat.h: Provide compatibility macros for
CLooG Legacy.
(clast_name_p): New.
(clast_expr_term): New.
(clast_expr_red): New.
(clast_expr_bin): New.
(clast_pprint): New.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
compatible to newer CLooG releases (CLOOG_ORG).
(build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
(scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
* graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
(build_cloog_prog) : New.
(cloog_program_extract_scalars): New.
(cloog_program_scatter): New.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
conditionally (CLOOG_ORG).
* graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
(cloog_statement_usr): New.
(cloog_domain): Same.
(cloog_set_domain): Same.
(cloog_next_domain): Same.
(cloog_set_next_domain): Same.
(cloog_program_nb_scattdims): Same.
(cloog_program_set_nb_scattdims): Same.
(cloog_program_names): Same.
(cloog_program_set_names): Same.
(cloog_program_set_context): Same.
(cloog_program_set_loop): Same.
(cloog_program_blocklist): Same.
(cloog_program_set_blocklist): Same.
(cloog_program_scaldims): Same.
(cloog_program_set_scaldims): Same.
(cloog_names_nb_parameters): Same.
(cloog_names_set_nb_parameters): Same.
(cloog_names_parameters): Same.
(cloog_names_set_parameters): Same.
(cloog_names_set_nb_iterators): Same.
(cloog_names_set_iterators): Same.
(cloog_names_set_nb_scattering): Same.
(cloog_names_set_scattering): Same.
(cloog_statement_set_usr): Same.
(cloog_loop_set_next): Same.
(cloog_loop_set_domain): Same.
(cloog_loop_set_block): Same.
(cloog_block_list_next): Same.
(cloog_block_list_set_next):
(cloog_block_list_set_block): Same.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
a bool.
(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
(rewrite_commutative_reductions_out_of_ssa_loop): Same.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
when something has been changed.
(rewrite_commutative_reductions_out_of_ssa): Same.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (propagate_expr_outside_region): Also
handle the case when def is in the sese region.
(rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
for invariant expressions.
(rewrite_cross_bb_phi_deps): Removed.
(rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
rewrite_cross_bb_phi_deps.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c
(rewrite_commutative_reductions_out_of_ssa_loop): Call
scev_analyzable_p only on is_gimple_reg
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (propagate_expr_outside_region): New.
(rewrite_close_phi_out_of_ssa): Propagate constant values or
parametric expressions outside the scop region.
(rewrite_cross_bb_scalar_deps): Same.
* sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
SSA_NAME_DEF_STMT only on SSA_NAMEs.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* tree-scalar-evolution.c (instantiate_scev_name): Do not
instantiate default definitions.
2010-08-11 Vladimir Kargov <kargov@gmail.com>
Sebastian Pop <sebastian.pop@amd.com>
* cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
(loop_exits_from_bb_p): New.
* cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
(loop_exits_from_bb_p): Declared.
* graphite-scop-detection.c (scopdet_basic_block_info): Call
loop_exits_to_bb_p.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
extra parameter for the region. Call scev_analyzable_p.
(rewrite_reductions_out_of_ssa): Update call to
rewrite_close_phi_out_of_ssa.
(rewrite_cross_bb_phi_deps): Same.
(rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
parameter for the region. Call scev_analyzable_p.
(rewrite_commutative_reductions_out_of_ssa): Update call to
rewrite_commutative_reductions_out_of_ssa_loop.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
SSA scalar phi nodes that can be scev_analyzable_p.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
handle SSA_NAME_IS_DEFAULT_DEF.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* sese.c (rename_uses): Handl unconditionally gimple_debug statements.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
case non close-phi nodes with one argument.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* sese.h (scev_analyzable_p): Scevs could be expressions without
chrecs and still be scev_analyzable_p.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
* cfgloop.h (struct loop): Remove single_iv field.
* graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
(scop_canonicalize_loops): Removed.
(scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
over all the loop phi nodes in loop->header.
(build_poly_scop): Remove use of scop_canonicalize_loops.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
handle GIMPLE_CALL.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* tree-chrec.c (chrec_apply): Should only apply to the specified
variable. Also handle multivariate chains of recurrences that
satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
(debug_clast_name_indexes_1): Removed.
(debug_clast_name_indexes): Removed.
(pbb_to_depth_to_oldiv): Removed.
(build_iv_mapping): Replace the use of rename_map with iv_map.
(translate_clast_user): Remove uses of rename_map. Allocate and
free iv_map.
(translate_clast_for_loop): Remove uses of rename_map.
(translate_clast_for): Same.
(translate_clast_guard): Same.
(translate_clast): Same.
(gloog): Same.
* graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
* graphite-sese-to-poly.c (scev_analyzable_p): Moved...
* sese.c (set_rename): Now static.
(rename_variables_in_stmt): Removed.
(rename_uses): New.
(is_parameter): Removed.
(is_iv): Removed.
(expand_scalar_variables_call): Removed.
(expand_scalar_variables_ssa_name): Removed.
(expand_scalar_variables_expr): Removed.
(expand_scalar_variables_stmt): Removed.
(expand_scalar_variables): Removed.
(rename_variables): Removed.
(remove_condition): Removed.
(get_true_edge_from_guard_bb): Removed.
(get_false_edge_from_guard_bb): Removed.
(struct igp): Removed.
(default_before_guard): Removed.
(convert_for_phi_arg): Removed.
(add_guard_exit_phis): Removed.
(insert_guard_phis): Removed.
(graphite_copy_stmts_from_block): Now also uses iv_map and a
region. Do not copy conditions. Do not copy induction variables.
Call rename_uses.
(copy_bb_and_scalar_dependences): Allocate a local rename_map for
the translated statement. Use the iv_map for the induction
variable renaming.
* sese.h (copy_bb_and_scalar_dependences): Update declaration.
(set_rename): Removed declaration.
(scev_analyzable_p): ...here.
* tree-chrec.c (chrec_apply_map): New.
* tree-chrec.h (chrec_apply_map): Declared.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
insert_loop_close_phis.
* sese.c (name_defined_in_loop_p): Removed.
(expr_defined_in_loop_p): Removed.
(alive_after_loop): Removed.
(close_phi_not_yet_inserted_p): Removed.
(struct alep): Removed.
(add_loop_exit_phis): Removed.
(insert_loop_close_phis): Removed.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-cloog-util.c
(cloog_matrix_to_ppl_constraint): Fix flipped condition.
* graphite-poly.c
(psct_scattering_dim_for_loop_depth): Same.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-cloog-util.h: Added cloog.h.
* graphite-blocking.c: Removed cloog.h.
* graphite-dependences.c: Same.
* graphite-interchange.c: Same.
* graphite-poly.c: Same.
* graphite-ppl.c: Same.
* graphite-scop-detection.c: Same.
* graphite-sese-to-poly.c:
Removed cloog.h.
Removed graphite-clast-to-gimple.h.
(check_poly_representation): Removed (unused).
* graphite-sese-to-poly.h
(check_poly_representation): Removed (unused).
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* Makefile.in (OBJS-common): Added graphite-cloog-util.o.
(graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
(graphite-cloog-util.o): New.
(graphite-ppl.o): Added graphite-cloog-util.h.
* graphite-clast-to-gimple.c:
Added graphite-cloog-util.h to include statements.
* graphite-cloog-util.c: New.
(new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
(new_Cloog_Domain_from_ppl_Polyhedron): Same.
(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
(new_C_Polyhedron_from_Cloog_Matrix): Same.
(insert_constraint_into_matrix): Same.
(ppl_Constrain_System_number_of_constraints): Same.
(new_Cloog_Matrix_from_ppl_Constraint_System): Same.
(oppose_constraint): Same.
(cloog_matrix_to_ppl_constraint): Same.
(new_Constraint_System_from_Cloog_Matrix): Same.
* graphite-cloog-util.h: New.
(new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
(new_Cloog_Domain_from_ppl_Polyhedron): Same.
(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
(new_C_Polyhedron_from_Cloog_Matrix): Same.
(insert_constraint_into_matrix): Same.
* graphite-ppl.c:
Added graphite-cloog-util.h to include statements.
(new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
(new_Cloog_Domain_from_ppl_Polyhedron): Same.
(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
(new_C_Polyhedron_from_Cloog_Matrix): Same.
(insert_constraint_into_matrix): Same.
(ppl_Constrain_System_number_of_constraints): Same.
(new_Cloog_Matrix_from_ppl_Constraint_System): Same.
(oppose_constraint): Same.
(cloog_matrix_to_ppl_constraint): Same.
(new_Constraint_System_from_Cloog_Matrix): Same.
* graphite-ppl.h:
(new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
graphite-cloog-util.h.
(new_Cloog_Domain_from_ppl_Polyhedron): Same.
(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
(new_C_Polyhedron_from_Cloog_Matrix): Same.
(insert_constraint_into_matrix): Same.
2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* graphite-clast-to-gimple.c
(precision_for_value): Resolve value_* calls to matching mpz_* calls.
(precision_for_interval): Same.
(gcc_type_for_interval): Same.
(compute_type_for_level): Same.
* graphite-interchange.c
(lst_interchange_profitable_p): Same.
* graphite-poly.c
(psct_scattering_dim_for_loop_depth): Same.
* graphite-ppl.c
(ppl_max_for_le_pointset): Same.
(ppl_min_for_le_pointset): Same.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
(rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
rewrite_close_phi_out_of_ssa.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
rename_map.
* sese.c (debug_rename_map): Same.
(get_rename): Same.
(set_rename): Same.
(rename_variables_in_stmt): Same.
(expand_scalar_variables_call): Same.
(expand_scalar_variables_ssa_name): Same.
(expand_scalar_variables_expr): Same.
(expand_scalar_variables_stmt): Same.
(expand_scalar_variables): Same.
(rename_variables): Same.
(graphite_copy_stmts_from_block): Same.
(copy_bb_and_scalar_dependences): Same.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (copy_renames): Removed.
(translate_clast_for): Do not call copy_renames.
(translate_clast_guard): Same.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
(rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
before rewrite_cross_bb_scalar_deps.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
Early return in when flag_associative_math is not set.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
of SSA copies on edges except for loop->latch.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
Split out of rewrite_reductions_out_of_ssa.
* graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
Declared.
* graphite.c (graphite_transform_loops): Call it.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
2010-08-11 Alexander Monakov <amonakov@ispras.ru>
* dbgcnt.def (graphite_scop): New counter.
* graphite.c: Include dbgcnt.h.
(graphite_transform_loops): Use new counter to limit transformations.
* Makefile.in (graphite.o): Depend on DBGCNT_H.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* passes.c (init_optimization_passes): Add pass_graphite.
Schedule a pass_copy_prop before pass_graphite_transforms.
* timevar.def (TV_GRAPHITE): Declared.
* tree-pass.h (pass_graphite): Declared.
* tree-ssa-loop.c (pass_graphite): New.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
Remove calls to rename_nb_iterations and rename_sese_parameters.
* graphite-clast-to-gimple.h (gloog): Update declaration.
* graphite.c (graphite_transform_loops): Update call to gloog.
* sese.c (rename_variables_in_expr): Removed.
(rename_nb_iterations): Removed.
(rename_sese_parameters): Removed.
* sese.h (rename_nb_iterations): Removed.
(rename_sese_parameters): Removed.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (gloog): Remove call to
sese_adjust_liveout_phis.
* graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
(rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
rewrite_phi_out_of_ssa.
* sese.c (get_vdef_before_sese): Removed.
(sese_adjust_vphi): Removed.
(sese_adjust_liveout_phis): Removed.
* sese.h (sese_adjust_liveout_phis): Removed.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
argument for the place after which to insert the out of SSA copy.
(rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
(rewrite_phi_out_of_ssa): Same.
(rewrite_cross_bb_scalar_deps): Same.
(insert_copyout): Removed.
(insert_copyin): Removed.
(translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
insert_out_of_ssa_copy_on_edge instead of insert_copyout and
insert_copyin.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
(rewrite_reductions_out_of_ssa): Same.
(rewrite_commutative_reductions_out_of_ssa): Same.
(build_poly_scop): Do not call these functions.
* graphite-sese-to-poly.h (build_poly_scop): Declared.
(rewrite_reductions_out_of_ssa): Declared.
(rewrite_commutative_reductions_out_of_ssa): Declared.
* graphite.c (graphite_transform_loops): Call on every scop
rewrite_commutative_reductions_out_of_ssa before calling
rewrite_reductions_out_of_ssa and build_scop_bbs.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (dot_deps): Make system call to dotty run
in background.
(dot_deps_stmt): Same.
* graphite-poly.c (dot_lst): Same.
2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
phi_arg_in_outermost_loop.
(remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
(remove_invariant_phi): Same.
2010-08-11 Anatoly Sokolov <aesok@post.ru>
* target.def (output_addr_const_extra): New hook.
* doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_asm_output_addr_const_extra): New function.
* targhooks.h (default_asm_output_addr_const_extra): Declare.
* final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
target hook.
* config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
* config/i386/i386-protos.h (output_addr_const_extra): Remove.
* config/i386/i386.h (output_addr_const_extra): Rename to...
(i386_asm_output_addr_const_extra): ...this. Make static.
(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2010-08-11 Richard Henderson <rth@redhat.com>
* config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
2010-08-11 Nick Clifton <nickc@redhat.com>
* config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
* config/stormy16/stormy16-lib2-cmpsi2.c: New file.
* config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
stormy16-lib2-cmpsi.c.
* config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
-O2.
2010-08-11 Joseph Myers <joseph@codesourcery.com>
* opts.h (struct cl_option_handler_func): Make handler take
cl_decoded_option structure as parameter, not individual elements.
(struct cl_option_handlers): Make callbacks take cl_decoded_option
structure as parameter, not individual elements.
(handle_option): Take cl_decoded_option structure as parameter,
not individual elements.
(handle_generated_option): Declare.
* opts-common.c (handle_option): Take cl_decoded_option structure
as parameter, not individual elements. Update calls to callback
and handler functions.
(handle_generated_option): New.
(read_cmdline_option): Update calls to callback functions and
handle_option.
* opts.c (common_handle_option, complain_wrong_lang,
unknown_option_callback, post_handling_callback,
lang_handle_option, target_handle_option): Take cl_decoded_option
structure as parameter, not individual elements.
(lang_handle_option, target_handle_option, common_handle_option):
Assert option has at most one argument.
(enable_warning_as_error): Call handle_generated_option instead of
handle_option. Do not pass -Werror argument as argument of
generated option.
2010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
(SUBWORD_BOOL_CAS): Likewise.
(SUBWORD_SYNC_OP): Likewise.
(SUBWORD_TEST_AND_SET): Likewise.
(FETCH_AND_OP_WORD): Parenthesise INF_OP
(SUBWORD_SYNC_OP): Likewise.
(OP_AND_FETCH_WORD): Likewise.
2010-08-10 Xinliang David Li <davidxl@google.com>
* tree-ssa-loop-ivopts.c (get_address_cost): Properly
compute max/min offset in address.
2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
* ira-live.c: Include sbitmap.h.
(remove_some_program_points_and_update_live_ranges): Use sbitmaps.
Compress live ranges even more.
2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
* coverage.c (ctr_labels): Delete.
2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
PR bootstrap/45177
* config/arm/arm.c (multiple_operation_profitable_p): Move xscale
test here from arm_gen_load_multiple_1.
(arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
multiple_operation_profitable_p.
2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
* tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
(fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
2010-08-10 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
after saving registers. Assert that SSE registers are only saved
with a sufficiently aligned frame.
(ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
remove stack_realign_fp handling.
(ix86_expand_prologue): Save int registers before stack_realign_fp,
and do not mark the stack alignment as frame related.
(ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
* dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
saves when re-aligning the stack.
2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
* basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
* cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
(alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
* dwarf2out.c (struct die_struct): Move die_tag to the end.
2010-08-09 Sofiane Naci <sofiane.naci@arm.com>
* config/arm/iterators.md: New file.
* config/arm/arm.md: Include iterators.md.
(QHSI): Move to new file.
(LTUGEU, cnb, optab, ior_xor): Likewise.
* config/arm/iwmmxt.md (VMMX): Move to new file.
(VSHFT, MMX_char): Likewise.
* config/arm/neon.md (VD): Move to new file.
(VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
(VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
(VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
(V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
(V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
(V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
(V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
(V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
(scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
(Is_d_reg, V_mode_nunits): Likewise.
* config/arm/vec-common.md (VALL): Move to new file.
(VALLW, VINT, VINTW): Likewise.
2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
PR middle-end/45182
* combine.c (make_compound_operation): Don't try to convert
shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
2010-08-10 Richard Guenther <rguenther@suse.de>
* tree.h (get_object_alignment): Adjust prototype.
* builtins.c (get_object_alignment): Return unsigned int,
drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
and TARGET_MEM_REF properly.
(get_pointer_alignment): Adjust.
* emit-rtl.c (get_mem_align_offset): Adjust comment.
(set_mem_attributes_minus_bitpos): Adjust.
* tree-ssa-ccp.c (get_value_from_alignment): Adjust.
2010-08-10 Richard Guenther <rguenther@suse.de>
* tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
(copy_prop_visit_assignment): Simplify.
(copy_prop_visit_stmt): Also visit assignments from
constants.
(copy_prop_visit_phi_node): Use operand_equal_p.
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
* ipa-split.c (find_split_points): Free stack.
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
* tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
* tree.c (tree_node_kind): Delete corresponding entries.
2010-08-09 H.J. Lu <hongjiu.lu@intel.com>
* alias.c (may_alias_p): Remove unused ret.
2010-08-09 Bingfeng Mei <bmei@broadcom.com>
* ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
alias_sets_conflict_p.
(walk_mems_1): Moved from alias.c.
(insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
in alias.c.
(add_inter_loop_mem_dep): Use insns_may_alias_p now.
* cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
* alias.c (walk_mems_2): Moved to ddg.c.
(walk_mems_1): Ditto.
(insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
to ddg.c.
(nonoverlapping_memrefs_p): Add flag to guard offset-based memory
disambiguation.
*(may_alias_p): New function to check whether two memory expression
may alias or not. Currently used in buidling inter-iteration memory
dependence.
*alias.h (nonoverlapping_memrefs_p): New flag as third argument.
(insn_alias_sets_conflict_p): Removed
*rtl.h (may_alias_p): New function prototype.
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
* tree.c (nreverse): Assert that we don't have a BLOCK.
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
* builtins.c (fold_builtin_next_arg): Use stdarg_p.
* config/arm/arm.c (arm_get_pcs_model): Likewise.
* config/avr/avr.c (init_cumulative_args): Likewise.
* config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
* config/m68k/m68k.c (m68k_return_pops_args): Likewise.
* config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
* config/rs6000/rs6000.c (init_cumulative_args): Likewise.
* dwarf2out.c (gen_subprogram_die): Likewise.
* function.c (allocate_struct_function): Likewise.
* c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
(deserves_ellipsis): Delete.
2010-08-09 Richard Guenther <rguenther@suse.de>
* tree-ssa-copy.c (cached_last_copy_of): Remove.
(valueize_val): New function.
(get_last_copy_of): Remove.
(set_copy_of_val): Simplify.
(dump_copy_of): Likewise.
(copy_prop_visit_cond_stmt): Use valueize_val.
(copy_prop_visit_phi_node): Properly handle unvisited names.
Drop code managing copy-of chains.
(init_copy_prop): Adjust.
(fini_copy_prop): Likewise.
(execute_copy_prop): Remove obsolete comment.
2010-08-09 Richard Guenther <rguenther@suse.de>
PR middle-end/44632
* function.c (gimplify_parameters): Do not clear addressable
bit of the original parameter.
2010-08-09 Richard Guenther <rguenther@suse.de>
PR middle-end/45212
* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
alignment from MEM_REF offset only if we took it from the
base object.
2010-08-09 Eric Fisher <joefoxreal@gmail.com>
* doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
* c-tree.h (build_arg_info): Declare.
* c-decl.c (build_arg_info): Define.
(get_parm_info): Call it. Delete initialization code.
* c-parser.c (c_parser_parms_declarator): Likewise.
(c_parser_parms_list_declaractor): Likewise.
2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
* c-tree.h (c_arg_tag): Define. Define a VEC containing it.
(struct c_arg_info): Change type of tags field.
* c-decl.c (grokdeclarator): Update for changed type of tags field.
(get_parm_info): Likewise.
(store_parm_decls_newstyle): Likewise.
2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
(branch_island_list): Delete.
(branch_islands): Declare.
(add_compiler_branch_island): Adjust for branch_islands instead of
branch_island_list.
(macho_branch_islands): Likewise.
(no_previous_def): Likewise.
(get_prev_label): Likewise.
2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR boehm-gc/34544
* gthr-posix.h (__gthread_start): Delete.
(__gthread_active_init): Use pthread_default_stacksize_np instead of
pthread_create to determine if hpux pthreads are active.
* gthr-posix95.h (__gthread_start): Delete.
(__gthread_active_init): Likewise use pthread_default_stacksize_np.
2010-08-08 Kai Tietz <kai.tietz@onevision.com>
* config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
_WIN64 not expanded.
2010-08-07 Uros Bizjak <ubizjak@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
PR target/45213
* config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
to output 32bit SFmode immediate as 8 byte sign extended value.
2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
(SUBWORD_BOOL_CAS): Likewise.
(SUBWORD_SYNC_OP): Likewise.
(SUBWORD_TEST_AND_SET): Likewise.
(FETCH_AND_OP_WORD): Parenthesise INF_OP
(SUBWORD_SYNC_OP): Likewise.
(OP_AND_FETCH_WORD): Likewise.
2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
* config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
(arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
(arm_adjust_cost): Split into xscale_sched_adjust_cost and a
generic part.
(cortex_a9_sched_adjust_cost): New function.
(xscale_sched_adjust_cost): New function.
* config/arm/arm-protos.h (struct tune_params): New field
sched_adjust_cost.
* config/arm/arm-cores.def: Adjust costs for cortex-a9.
2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
PR target/44942
* config/sparc/sparc.c (function_arg_advance): Always take into account
the padding, if any.
2010-08-06 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (struct prop_value_d): Add mask member.
(dump_lattice_value): Dump it.
(get_default_value): Adjust.
(get_constant_value): Likewise.
(set_value_varying): Likewise.
(set_lattice_value): Make sure to not go up the lattice
with bitwise constant values.
(get_value_for_expr): Handle ADDR_EXPRs.
(value_to_double_int): New function.
(get_value_from_alignment): Likewise.
(do_dbg_cnt): Adjust.
(ccp_lattice_meet): Handle partially constant values.
(bit_value_unop_1): New function.
(bit_value_binop_1): Likewise.
(bit_value_unop): Likewise.
(bit_value_binop): Likewise.
(evaluate_stmt): Track partially constant values if
flag_tree_bit_ccp is set.
(ccp_fold_stmt): Dump if we folded a predicate.
(ccp_visit_stmt): Adjust.
* common.opt (ftree-bit-ccp): New flag.
* doc/invoke.texi (ftree-bit-ccp): Document.
* opts.c (decode_options): Enable bit-CCP at -O1.
2010-08-06 Alan Modra <amodra@gmail.com>
* doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
and -mrelocatable-lib description.
2010-08-05 Bernd Schmidt <bernds@codesourcery.com>
From Martin Thuresson <martint@google.com>
* postreload.c (reload_cse_simplify_operands): Use
SET_REGNO_RAW instead of SET_REGNO.
* caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
SET_REGNO.
* ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
instead of SET_REGNO.
* rtl.h (SET_REGNO_RAW): New macro.
2010-08-05 Eric Botcazou <ebotcazou@adacore.com>
* rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
computations. Fix formatting issues.
(num_sign_bit_copies1): Likewise.
(canonicalize_condition): Likewise.
2010-08-05 Richard Henderson <rth@redhat.com>
* toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
(floor_log2): Use clz_hwi.
(exact_log2): Use ctz_hwi.
* toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
* builtins.c (fold_builtin_bitop): Use them.
* simplify-rtx.c (simplify_const_unary_operation): Likewise.
* combine.c (get_pos_from_mask): Use ctz_hwi.
* double-int.c (double_int_ctz): Likewise.
* explow.c (force_reg): Likewise.
* tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
2010-08-05 Richard Henderson <rth@redhat.com>
PR target/45189
* config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
the alignment constant is properly sign-extended.
2010-08-05 Richard Guenther <rguenther@suse.de>
* expr.c (store_expr): Use emit_block_move only if both
source and target are MEMs. Use store_bit_field if only
the target is a MEM.
2010-08-05 Richard Henderson <rth@redhat.com>
PR debug/45188
* dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
(INCOMING_RETURN_ADDR_RTX): Likewise.
(dwarf2out_do_frame): Remove conditional compilation.
(dwarf2out_frame_init): Likewise.
2010-08-05 Nicolas Setton <setton@adacore.com>
* gcov.c (flag_display_progress): New static variable.
(main): Display progress info on standard output if requested.
(options): Add -d/--display-progress.
(print_usage): Print them.
(process_args): Handle them.
* doc/gcov.texi: Document them.
2010-08-05 Martin Jambor <mjambor@suse.cz>
* ipa-cp.c (ipcp_discover_new_direct_edges): New function.
(ipcp_insert_stage): Redirect only edges not flagged with
indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
discovered constants.
2010-08-05 Martin Jambor <mjambor@suse.cz>
* ipa-prop.h (enum ipa_lattice_type): Changed comments.
(struct ipa_param_descriptor): New fields types and
cannot_devirtualize.
(ipa_param_cannot_devirtualize_p): New function.
(ipa_param_types_vec_empty): Likewise.
(ipa_make_edge_direct_to_target): Declare.
* ipa-cp.c: Fixed first stage driver name in initial comment,
described devirtualization there too.
(ipcp_analyze_node): Call ipa_analyze_params_uses.
(ipcp_print_all_lattices): Print devirtualization info.
(ipa_set_param_cannot_devirtualize): New function.
(ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
lattice to BOTTOM.
(ipcp_init_stage): Merged into...
(ipcp_generate_summary): ...its caller.
(ipcp_change_tops_to_bottom): Also process type lists.
(ipcp_add_param_type): New function.
(ipcp_copy_types): Likewise.
(ipcp_propagate_types): Likewise.
(ipcp_propagate_stage): Also propagate types.
(ipcp_need_redirect_p): Variable jump_func moved to its scope block.
Also return true if propagated types require it.
(ipcp_update_callgraph): Dump redirection info.
(ipcp_process_devirtualization_opportunities): New function.
(ipcp_const_param_count): Include known type information.
(ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
on new node. Fixed formatting.
* ipa-prop.c (make_edge_direct_to_target): Renamed to
ipa_make_edge_direct_to_target and changed all callers. Made
externally visible.
(ipa_node_duplication_hook): Duplicate types vector.
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
redirect outgoing calls for which we can't get a decl from the
statement. Check that we can get a decl from the call statement.
* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
ipa_analyze_params_uses only when ipa-cp is disabled.
* tree-inline.c (get_indirect_callee_fndecl): Removed.
(expand_call_inline): Do not call get_indirect_callee_fndecl.
* params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
* Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
2010-08-05 Uros Bizjak <ubizjak@gmail.com>
* expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
temporary. Emit move from temporary to accum, so REG_EQUAL note will
be attached to this insn in correct mode.
2010-08-05 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_decompose_address): Check for SI_REG
using REGNO of base_reg directly.
2010-08-05 Jie Zhang <jie@codesourcery.com>
PR tree-optimization/45144
* tree-sra.c (type_consists_of_records_p): Return false
if the record contains bit-field.
2010-08-04 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (struct ix86_frame): Remove padding and
to_allocate members.
(ix86_compute_frame_layout): Don't store them.
(ix86_can_use_return_insn_p): Use a more direct and more obviously
correct condition for the position of the stack pointer.
(ix86_expand_prologue): Compute remaining stack allocation based
on the ultimate stack pointer offset.
(ix86_expand_epilogue): Use more obvious expressions testing for
the stack pointer already pointing to the saved registers.
* config/i386/i386.c (ix86_expand_epilogue): Eliminate code
duplication deconstructing the frame pointer. Simplify
deallocation of the local stack frame.
* reg-notes.def (CFA_EXPRESSION): New.
* dwarf2out.c (dwarf2out_frame_debug): Handle it.
(dwarf2out_frame_debug_cfa_expression): New.
(dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
* config/i386/i386.h (struct machine_frame_state): Add realigned flag.
* config/i386/i386.c (ix86_expand_prologue): Set it.
(ix86_expand_epilogue): Clear it.
(ix86_emit_save_reg_using_mov): For registers saved in a realigned
context, add REG_CFA_EXPRESSION notes.
* config/i386/i386.h (struct machine_frame_state): Rename from
machine_cfa_state. Add members tracking SP and FP regardless
of the current CFA register.
(ix86_cfa_state): Remove.
* config/i386/i386.c (struct ix86_frame): Add reg_save_offset
and sse_reg_save_offset members.
(ix86_compute_frame_layout): Set them.
(gen_push): Increment sp_offset too.
(choose_baseaddr_len, choose_baseaddr): New.
(ix86_emit_save_reg_using_mov): New.
(ix86_emit_save_regs_using_mov): Use it.
(ix86_emit_save_sse_regs_using_mov): Likewise.
(ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
compare vs the saved red_zone_offset.
(pro_epilogue_adjust_stack): Adjust sp_offset.
(ix86_adjust_stack_and_probe): Likewise.
(ix86_expand_prologue): Set up, use, and validate the new
frame_state_info members. Use gen_frame_mem.
(ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
(ix86_emit_restore_reg_using_pop): Likewise. Use and update the
new frame_state_info members.
(ix86_emit_leave): Likewise.
(ix86_emit_restore_regs_using_mov): Likewise. Don't check for
out-of-range stack pointer offsets here.
(ix86_emit_restore_sse_regs_using_mov): Likewise.
(ix86_expand_epilogue): Use and validate the new frame_state_info
members. Break up and simplify the logic selecting the
restore_regs_via_mov code path. Ensure that there will be no
out-of-range stack pointer offsets.
* config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
* config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
argument name to reflect the expected tree; fix indentation.
(ix86_asm_output_function_label): Output the entire 32-bit
ms_hook here as bytes ...
(ix86_expand_prologue): ... not here as insns. Attach the
unwind info for the ms_hook to a blockage insn.
(ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
(ix86_ms_bitfield_layout_p): Fix indentation.
* config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
* config/i386/i386.c (ix86_using_red_zone): New.
(ix86_compute_frame_layout, ix86_add_cfa_restore_note,
ix86_expand_prologue, ix86_force_to_memory): Use it.
* config/i386/i386.c (ix86_expand_prologue): Simplify logic
saving the int registers.
* dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
and DWARF2_UNWIND_INFO conditional compilation.
2010-08-04 Richard Henderson <rth@redhat.com>
PR debug/45171
* dwarf2out.c (gen_typedef_die): Don't re-generate the die of
an is_naming_typedef_decl.
2010-08-04 Bernd Schmidt <bernds@codesourcery.com>
PR rtl-optimization/45162
* df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
* dce.c (word_dce_process_block): Likewise.
2010-08-04 Steve Ellcey <sje@cup.hp.com>
PR target/44583
* config/ia64/constraints.md (Z): New.
* config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
(xfreg_or_signed_fp01_operand): New.
* config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
with fr_reg_or_signed_fp01_operand and constraint G with Z.
(subsf3): Ditto.
(*maddsf4): Ditto.
(*msubsf4): Ditto.
(adddf3): Ditto.
(adddf3_trunc): Ditto.
(subdf3): Ditto.
(*subdf3_trunc): Ditto.
(*madddf4): Ditto.
(*madddf4_trunc): Ditto.
(*msubdf4): Ditto.
(*msubdf4_trunc): Ditto.
(addxf3): Replace xfreg_or_fp01_operand with
xfreg_or_signed_fp01_operand and constraint G with Z.
(*addxf3_truncsf): Ditto.
(*addxf3_truncdf): Ditto.
(subxf3): Ditto.
(*subxf3_truncsf): Ditto.
(*subxf3_truncdf): Ditto.
(*maddxf4): Ditto.
(*maddxf4_truncsf): Ditto.
(*maddxf4_truncdf): Ditto.
(*msubxf4): Ditto.
(*msubxf4_truncsf): Ditto.
(*msubxf4_truncdf): Ditto.
2010-08-04 Richard Guenther <rguenther@suse.de>
* alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
if either alias-set is zero.
2010-08-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
* tree-ssa-ccp.c: ... here.
* tree-ssa-copy.c: ... and here.
* tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
value_range_t): Move ...
* tree-vrp.c: ... here.
* tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
(substitute_and_fold): Adjust prototype.
* tree-ssa-propagate.c (replace_uses_in): Adjust.
(replace_phi_args_in): Likewise.
(substitute_and_fold): Take callback to query lattice instead
of pointer to lattice. Replace SSA name defs with lattice
values first.
* tree-ssa-ccp.c (ccp_finalize): Adjust.
* tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
(get_value): New function.
(fini_copy_prop): Adjust.
* tree-vrp.c (vrp_finalize): Adjust.
2010-08-04 Richard Guenther <rguenther@suse.de>
PR middle-end/45176
* expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
points-to set for original MEM_REF.
2010-08-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (get_constant_value): New function.
(get_rhs_assign_op_for_ccp): Remove.
(valueize_op): New function.
(ccp_fold): Use get_constant_value and valueize_op.
(fold_const_aggregate_ref): Likewise.
(ccp_fold_stmt): Likewise.
(visit_assignment): Simplify.
2010-08-04 Richard Guenther <rguenther@suse.de>
* Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
* double-int.h (double_int_ctz): Declare.
* double-int.c (double_int_ctz): New function.
2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
* config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
Define.
picochip_expand_movmemhi : Expand movmem pattern.
* config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
Declare.
* config/picochip/picochip.md (movmemhi) : New pattern.
2010-08-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
2010-08-03 Bernd Schmidt <bernds@codesourcery.com>
* simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
NEG as operand of a MULT by merging it with the other operand.
* combine.c (make_compound_operation): Use trunc_int_for_mode when
generating a MULT with constant. Canonicalize PLUS and MINUS involving
MULT.
* config/arm/constraints.md (M): Examine only 32 bits of a
HOST_WIDE_INT.
* config/arm/predicates.md (power_of_two_operand): Likewise.
2010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
non-NOTE insns.
2010-08-03 Jan Hubicka <jh@suse.cz>
* ipa-split.c (struct split_point): Add split_part_set_retval.
(find_retval): Forward declare.
(test_nonssa_use, mark_nonssa_use): Special case return by reference.
(consider_split): Compute current->split_part_set_retval.
(visit_bb): Do not look into return value.
(split_function): Handle !split_part_set_retval
2010-08-03 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (completely_scalarize_record): New parameter REF, create
its own access->expr intead of using build_ref_for_offset.
2010-08-03 Joseph Myers <joseph@codesourcery.com>
* config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
* config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
* config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
* config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
* config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
DEFAULT_SWITCH_TAKES_ARG.
* config/rx/rx.opt (-patch=): Remove option.
* config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
* defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
* doc/invoke.texi (RX Options): Remove -patch=.
* gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
(option_map): Remove --profile-blocks, --quiet and --silent.
2010-08-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
* config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
(ix86_expand_branch): Add op0 and op1 arguments. Do not access
ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
Update calls to ix86_expand_compare and ix86_expand_branch.
(ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
ix86_expand_compare.
(ix86_expand_compare): Add op0 and op1 arguments. Do not access
ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
Make static.
(ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
and ix86_compare_op1. Update calls to ix86_expand_compare.
(ix86_expand_int_movcc): Ditto.
(ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
* config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
(ix86_expand_setcc): Ditto.
(ix86_expand_compare): Remove prototype.
* config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
ix86_compare_op0 and ix86_compare_op1. Update calls
to ix86_expand_branch to directly pass operands[1] and operands[2].
(cbranchxf4): Ditto.
(cbranch<MODEF:mode>4): Ditto.
(cbranchcc4): Ditto.
(cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
Update calls to ix86_expand_setcc to directly pass operands[2] and
operands[3].
(cstorexf4): Ditto.
(cstore<MODEF:mode>4): Ditto.
(cstorecc4): Ditto.
2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
PR target/45063
* caller-save.c (save_call_clobbered_regs): Remove regs from
hard_regs_saved when they are set.
2010-08-02 Uros Bizjak <ubizjak@gmail.com>
PR target/41089
* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
as volatile.
2010-08-02 Sebastian Pop <sebastian.pop@amd.com>
* common.opt (ftree-loop-distribute-patterns): New.
* invoke.texi (-ftree-loop-distribute-patterns): Documented.
* opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
at -O3.
* tree-data-ref.c (stores_zero_from_loop): New.
* tree-data-ref.h (stores_zero_from_loop): Declared.
* tree-loop-distribution.c (tree_loop_distribution): Call
stores_zero_from_loop.
(tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
* postreload.c (reload_cse_simplify_operands): Take attribute enabled
into account.
* final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
* config/arm/arm.c (thumb1_code): New variable.
(arm_override_options): Set it.
(thumb1_final_prescan_insn): Keep track of condition code status.
(arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
jumps that depend on them.
* config/arm/arm.h (thumb1_code): Declare variable.
(struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
thumb1_cc_mode.
(CC_STATUS_INIT): New macro.
* config/arm/constraints.md (Pd): New constraint.
* config/arm/predicates.md (noov_comparison_operator): New predicate.
* config/arm/arm.md (is_thumb1): New define_attr.
(conds): Set default to "clob" when generating Thumb1 code.
(thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
code are set. Use two-operand assembly syntax.
(thumb1_subsi3_insn): Condition codes are set. Now a properly named
pattern.
(thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
codes are set. Use two-operand assembly syntax.
(zero_extendhisi splitter): Remove constraints.
(thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
thumb1_movsf_insn): Set conds attribute as appropriate.
(cbranchsi4_insn): Use condition code status from struct
machine_function to determine whether the comparison can be eliminated.
Discourage the alternative using high registers.
(movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
subsi3_cbranch): Delete.
(movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
one subtract and one cbranch insn.
* config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
thumb2_movdf_soft_insn): Delete patterns.
* config/arm/arm.md (arm_pool_range, thumb2_pool_range,
arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
(pool_range, neg_pool_range): Use them to define defaults.
(movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
and allow for TARGET_32BIT.
PR target/40457
* config/arm/arm.h (arm_regs_in_sequence): Declare.
* config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
load_multiple_sequence, store_multiple_sequence): Delete
declarations.
(arm_gen_load_multiple, arm_gen_store_multiple): Adjust
declarations.
* config/arm/ldmstm.md: New file.
* config/arm/arm.c (arm_regs_in_sequence): New array.
(load_multiple_sequence): Now static. New args SAVED_ORDER,
CHECK_REGS. All callers changed.
If SAVED_ORDER is nonnull, copy the computed order into it.
If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
(store_multiple_sequence): Now static. New args NOPS_TOTAL,
SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
If SAVED_ORDER is nonnull, copy the computed order into it.
If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
like REGS. Handle Thumb mode.
(arm_gen_load_multiple_1): New function, broken out of
arm_gen_load_multiple.
(arm_gen_store_multiple_1): New function, broken out of
arm_gen_store_multiple.
(arm_gen_multiple_op): New function, with code from
arm_gen_load_multiple and arm_gen_store_multiple moved here.
(arm_gen_load_multiple, arm_gen_store_multiple): Now just
wrappers around arm_gen_multiple_op. Remove argument UP, all callers
changed.
(gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
* config/arm/predicates.md (commutative_binary_operator): New.
(load_multiple_operation, store_multiple_operation): Handle more
variants of these patterns with different starting offsets. Handle
Thumb-1.
* config/arm/arm.md: Include "ldmstm.md".
(ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
peepholes): Delete.
* config/arm/ldmstm.md: New file.
* config/arm/arm-ldmstm.ml: New file.
* config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
if statement which adds extra costs to frame-related expressions.
2010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.c (COSTS_N_INSNS): Remove definition.
2010-08-01 Uros Bizjak <ubizjak@gmail.com>
PR target/45142
* config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
alternative 2.
(vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
split V4SI operands.
2010-08-01 Anatoly Sokolov <aesok@post.ru>
* config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
* config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
* config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
(TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
2010-07-31 Kai Tietz <kai.tietz@onevision.com>
* cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
LOCAL_INCLUDE_DIR.
2010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
used in the call to optab_for_tree_code. Fix the second
is_widening_mult_p call. Check that both unwidened operands
have the same sign.
2010-07-31 John Tytgat <John.Tytgat@aaug.net>
* config/arm/arm.c (arm_function_arg): Remove superfluous test.
2010-07-31 Anatoly Sokolov <aesok@post.ru>
* config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
2010-07-30 DJ Delorie <dj@redhat.com>
* config/rx/predicates.md (rx_constshift_operand): New.
* config/rx/rx.md (zs_cond): New.
(cbranchsi4): Remove mode.
(*cbranchsi4_<code>): Likewise.
(*tstbranchsi4_<code>): New.
(*tstbranchsi4r_<code>): New.
(*tstbranchsi4m_eq): New.
(*tstbranchsi4m_ne): New.
(cbranchsf4): Remove mode.
(*cbranchsf4_<code>): Likewise.
2010-07-30 Bernd Schmidt <bernds@codesourcery.com>
* rtlanal.c (simplify_subreg_regno): Don't treat
HARD_FRAME_POINTER_REGNUM specially.
2010-07-30 Joseph Myers <joseph@codesourcery.com>
* common.opt (-G): Don't define option here.
* config/g.opt: New.
* config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
rs6000/powerpc and score targets.
* opts.c (common_handle_option): Don't handle -G here.
* config/alpha/alpha.c (alpha_handle_option): Handle -G.
* config/frv/frv.c (frv_handle_option): Handle -G.
* config/ia64/ia64.c (ia64_handle_option): Handle -G.
* config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
* config/m32r/m32r.c (m32r_handle_option): Handle -G.
* config/mips/mips.c (mips_handle_option): Handle -G.
* config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
* config/score/score.c (score_handle_option): Handle -G.
2010-07-30 Anatoly Sokolov <aesok@post.ru>
* config/mmix/mmix.c: Include basic-block.h.
2010-07-30 Jakub Jelinek <jakub@redhat.com>
PR debug/45055
PR rtl-optimization/45137
* rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
prototypes.
* emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
New functions.
* combine.c (next_nonnote_nondebug_insn): Removed.
* ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
* haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
* sched-deps.c (sched_analyze_insn): Likewise.
(fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
* rtlanal.c (canonicalize_condition): Likewise.
* postreload.c (reload_combine_recognize_pattern): Likewise.
(reload_cse_move2add): Use next_nonnote_nondebug_insn.
2010-07-29 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (int_cond): Remove code iterator.
(fp_cond): Ditto.
(cbranch<mode>4): Use ordered_comparison_operator predicate
for operator0.
(cstore<mode>4): Ditto for operator1.
(mov<SWIM:mode>cc and corresponding splitter): Ditto.
(add<mode>cc): ditto.
2010-07-30 Richard Guenther <rguenther@suse.de>
PR middle-end/45141
* expr.c (expand_expr_real_1): Check for not handled base address.
2010-07-30 Richard Guenther <rguenther@suse.de>
* ipa-prop.c (ipa_modify_formal_parameters): Use
build_distinct_type_copy.
2010-07-30 Anthony Green <green@moxielogic.com>
* config/moxie/rtems.h: New file.
* config.gcc: Add moxie-rtems support.
2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
* dce.c (run_word_dce): Take flag_dce into account. Clear and restore
df flags as in run_fast_df_dce.
2010-07-29 Jakub Jelinek <jakub@redhat.com>
Revert:
2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
* rtl.def (NOTE): Swap operands 4 and 5.
* rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
Adjust accordingly.
* gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
2010-07-29 Jakub Jelinek <jakub@redhat.com>
PR debug/45110
* dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
(gen_formal_types_die): Add DW_AT_object_pointer in methods.
(gen_subprogram_die): Likewise. Remove it when removing declaration's
formal parameters.
(gen_decl_die): Change return type to dw_die_ref, return what
gen_formal_parameter_die returned.
2010-07-29 Martin Jambor <mjambor@suse.cz>
* dbgcnt.def (eipa_sra): New counter.
* tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
2010-07-29 Xinliang David Li <davidxl@google.com>
PR bootstrap/45119
* tree-ssa-loop-ivopts.c (get_address_cost): Revert change
in revision 162652.
2010-07-29 Richard Guenther <rguenther@suse.de>
* timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
(TV_TREE_STORE_CCP): Likewise.
(TV_TREE_REDPHI): Likewise.
2010-07-29 Richard Guenther <rguenther@suse.de>
* double-int.h (double_int_and_not): New function.
* combine.c (try_combine): Use it.
* tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
PR rtl-optimization/42575
* dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
Argument AU removed. All callers changed. Ignore artificial refs.
Use return value of df_word_lr_simulate_defs to decide whether an insn
is necessary.
(fast_dce): Rename arg to WORD_LEVEL.
(run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
static.
(pass_fast_rtl_byte_dce): Delete.
* dce.h (run_word_dce): Declare.
* df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
All callers changed. Simplify code to only deal with two-word regs.
* df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
(DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
(DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
(DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
(struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
(df_word_lr_mark_ref): Declare.
(df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
df_word_lr_simulate_uses): Declare or rename from byte variants.
(df_byte_lr_simulate_artificial_refs_at_top,
df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
declarations.
(df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
(enum df_mm): Delete.
* df-byte-scan.c: Delete file.
* df-problems.c (df_word_lr_problem_data): Renamed from
df_byte_lr_problem_data, all members deleted except for
WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
(df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
df_byte_lr_get_regno_len, df_byte_lr_check_regs,
df_byte_lr_confluence_0): Delete functions.
(df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
callers changed.
(df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
Don't initialize members that were deleted, don't try to discover data
about registers. Ignore hard regs.
(df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
(df_word_lr_mark_ref): New function.
(df_word_lr_bb_local_compute): Renamed from
df_byte_bb_lr_local_compute; all callers changed. Use
df_word_lr_mark_ref. Assert that artificial refs don't include
pseudos. Ignore hard registers.
(df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
Assert that exit block uses don't contain pseudos.
(df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
(df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
callers changed. Ignore hard regs.
(df_word_lr_transfer_function): Renamed from
df_byte_lr_transfer_function; all callers changed.
(df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
(df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
changed.
(df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
callers changed.
(problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
confluence operator 0 set to NULL.
(df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
callers changed.
(df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
Return bool, true if bitmap changed or insn otherwise necessary.
All callers changed. Simplify using df_word_lr_mark_ref.
(df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
all callers changed. Simplify using df_word_lr_mark_ref.
* lower-subreg.c: Include "dce.h"
(decompose_multiword_subregs): Call run_word_dce if df available.
* Makefile.in (lower-subreg.o): Adjust dependencies.
(df-byte-scan.o): Delete.
* timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
2010-07-29 Richard Guenther <rguenther@suse.de>
* tree.c (build_vector): Assert that the vector constant
has enough elements.
(build_vector_from_ctor): Pad with trailing zeros.
2010-07-29 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45120
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Handle offset in DEREFs properly.
(get_constraint_for_1): Handle MEM_REF offset properly.
2010-07-29 Richard Guenther <rguenther@suse.de>
PR middle-end/45034
* convert.c (convert_to_integer): Always use an unsigned
type for narrowed negate and bitwise not.
2010-07-29 Ira Rosen <irar@il.ibm.com>
* tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
to outer loop when creating reduction epilogue for double reduction,
and switch back to the inner loop when updating the phi nodes.
Update uses of outer loop exit phi nodes in double reduction (instead
of uses of reduction).
2010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
popcount on power7 and parity on power6 systems.
(rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
(rs6000_emit_parity): Add support for power6 prtyd/prtyw
instructions.
* config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
(UNSPEC_PARITY): Ditto.
(SFDF): New iterator for SF/DF.
(rreg2): New mode attribute for floating register constraint.
(TARGET_FLOAT): New mode attribute for whether single/double float
is supported.
(popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
pattern.
(parity<mode>2_cmpb): New insn for parity on power6 and newer
machines.
(copysign<mode>3): Combine copysignsf3, copysigndf3 into one
pattern. Add support for fcpsgn instruction added in power6.
(copysignsf3): Delete.
(copysigndf3): Delete.
(copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
instead of if_then_else in RTL to avoid problems with -0.
* config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
of if_then_else to mirror scalar code.
(vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
rs6000.md.
* config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
instead of if_then_else.
2010-07-28 Xinliang David Li <davidxl@google.com>
* tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
(dump_cand): Dump var_before/after.
(htab_inv_expr_eq): New function.
(htab_inv_expr_hash): New function.
(tree_ssa_iv_optimize_init): Support pseudo invariants.
(add_candidate_1): consider base type precision.
(set_use_iv_cost): New parameter.
(adjust_setup_cost): Use profile information.
(get_address_cost): Do not hard code width in computing address
offset limits.
(compare_aff_trees): New function.
(get_loop_invariant_expr_id): New function.
(get_computation_cost_at): New parameter and use profile information.
(get_computation_cost): New parameter.
(determine_use_iv_cost_generic): Pass new parameter.
(determine_use_iv_cost_address): Ditto.
(determine_use_iv_cost_condition): Ditto.
(autoinc_possible_for_pair): Ditto.
(determine_use_iv_costs): More dumps.
(iv_ca_get_num_inv_exprs): New function.
(iv_ca_recount_cost): Consider loop invariants in register pressure
cost.
(iv_ca_add_use): New parameter.
(iv_ca_dump): Better dumping.
(iv_ca_extend): New parameter.
(try_add_cand_for): Attempt to get better partial solution.
(try_improve_iv_set): Pass new parameter to iv_ca_extend.
(create_new-ivs): More dumps.
(rewrite_use_compare): Ditto.
(free_loop_data): More cleanup.
(treee_ssa_iv_optimize_finalize): Ditto.
2010-07-28 Kai Tietz <kai.tietz@onevision.com>
* config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
* config/i386/i386.c (ix86_profile_before_prologue): New.
(override_options): Add special handling for -mfentry.
(ix86_function_regparm): Likewise.
(ix86_function_sseregparm): Likewise.
(ix86_frame_pointer_required): Likewise.
(ix86_expand_prologue): Check for ms_hook_prologue.
(x86_function_profiler): Adjust mcount output.
(TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
* config/i386/i386.opt (mfentry): New.
* doc/invoke.texi (mfentry): Add documentation.
* doc/tm.texi: Regenerated..
* doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
* final.c (final_start_function): Replace macro
PROFILE_BEFORE_PROLOGUE by target hook.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* target.def (profile_before_prologue): New hook.
* targhooks.c (default_profile_before_prologue): New.
* targhooks.h (default_profile_before_prologue): New.
2010-07-28 Jakub Jelinek <jakub@redhat.com>
PR debug/45105
* gcse.c (hoist_code): Use FOR_BB_INSNS macro.
PR debug/45103
* dwarf2out.c (dwarf2out_var_location): Always consider
NOTE_DURING_CALL_P notes, even when not followed by real instructions.
2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
PR rtl-optimization/45107
* gcse.c (hash_scan_set): Use max_distance for gcse-las.
2010-07-28 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
(set_lattice_value): Do not query an old default value.
(get_value_for_expr): New function. Properly canonicalize
float values.
(ccp_visit_phi_node): Use it.
2010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
* config/arm/arm.c (arm_pcs_default): Remove static.
* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
__ARM_PCS_VFP to indicate soft/hard-float calling convention.
(arm_pcs_default): Declare.
2010-07-28 Iain Sandoe <iains@gcc.gnu.org>
* config/rs6000/rs6000.c (rs6000_override_options):
Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
... to darwin_rs6000_override_options.
(rs6000_return_in_memory): Update preceding comment for darwin
64 bit ABI. Use TARGET_MACHO inline.
(rs6000_darwin64_struct_check_p): New.
(function_arg_advance): Use rs6000_darwin64_struct_check_p.
(function_arg): Likewise.
(rs6000_arg_partial_bytes): Likewise.
(rs6000_function_value): Likewise.
2010-07-28 Andi Kleen <ak@linux.intel.com>
* lto-opts.c (lto_file_read_options): Add loop over all inputs.
2010-07-28 Richard Guenther <rguenther@suse.de>
PR middle-end/44903
* builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
targets try harder to not generate unaligned accesses.
2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
PR rtl-optimization/45101
* gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
for gcse-las.
2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/44885
* tree-sra.c (find_param_candidates): Skip pointer types to arrays
with non-aliased component.
2010-07-28 Joseph Myers <joseph@codesourcery.com>
* config/darwin-driver.c (SWITCH_TAKES_ARG,
WORD_SWITCH_TAKES_ARG): Remove.
* cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
* defaults.h (DEFAULT_SWITCH_TAKES_ARG,
DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
(SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
definitions from gcc.c.
* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
defaults.h.
* gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
Move to defaults.h.
* opts-common.c: Include tm.h.
(decode_cmdline_option): Use SWITCH_TAKES_ARG and
WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
Handle more than one argument. Set canonical_option_num_elements.
(decode_cmdline_options_to_array): Set
canonical_option_num_elements and trailing elements of
canonical_option.
* opts.h (struct cl_decoded_option): Allow four elements in
canonical_option. Add field canonical_option_num_elements.
* Makefile.in (opts-common.o): Update dependencies.
2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/44790
PR middle-end/44993
* expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
sure the base has address_mode before adding the offset.
2010-07-27 Xinliang David Li <davidxl@google.com>
* tree-flow.h (create_mem_ref): Add one new parameter.
* tree-ssa-address.c (create_mem_ref): New parameter.
(addr_to_parts): Ditto.
(move_variant_to_index): New function.
* tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
4 and 5.
* rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
* gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
CODE_LABELs and NOTEs.
* caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
* combine.c (try_combine): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* print-rtl.c (print_rtx): Start REG_NOTES on a new line.
2010-07-27 Joseph Myers <joseph@codesourcery.com>
* coretypes.h (struct cl_option_handlers): Declare.
* hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
* hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
* langhooks-def.h (lhd_handle_option): Declare.
(LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
* langhooks.c (lhd_handle_option): New.
* langhooks.h (struct lang_hooks): Update prototype and return
value type of handle_option hook.
* optc-gen.awk: Generate target_flags_explicit definition for the
driver.
* opts-common.c: Include diagnostic.h.
(handle_option): Move from opts.c. Update prototype and return
value type. Use handlers structure.
(read_cmdline_option): Move from opts.c. Update prototype. Use
handlers structure.
(set_option): Move from opts.c.
* opts.c (common_handle_option): Update prototype and return value
type. Update calls to handle_option and enable_warning_as_error.
(unknown_option_callback, post_handling_callback,
lang_handle_option, target_handle_option): New.
(handle_option, read_cmdline_option): Move to opts-common.c.
(read_cmdline_options): Update prototype. Update call to
read_cmdline_option.
(decode_options): Initialize and use handlers structure.
(set_option): Move to opts-common.c.
(enable_warning_as_error): Update prototype. Update call to
handle_option.
* opts.h (struct cl_option_handler_func, struct
cl_option_handlers): New.
(handle_option, enable_warning_as_error): Update prototypes.
(read_cmdline_option): Declare.
* Makefile.in (opts-common.o): Update dependencies.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/arm/arm.c (params.h): Include.
(arm_override_options): Tune gcse-unrestricted-cost.
* config/arm/t-arm (arm.o): Define dependencies.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
PR target/42495
PR middle-end/42574
* basic-block.h (get_dominated_to_depth): Declare.
* dominance.c (get_dominated_to_depth): New function, use
get_all_dominated_blocks as a base.
(get_all_dominated_blocks): Use get_dominated_to_depth.
* gcse.c (occr_t, VEC (occr_t, heap)): Define.
(hoist_exprs): Remove.
(alloc_code_hoist_mem, free_code_hoist_mem): Update.
(compute_code_hoist_vbeinout): Add debug print outs.
(hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
* params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
quadratic behavior.
* params.h (MAX_HOIST_DEPTH): New macro.
* doc/invoke.texi (max-hoist-depth): Document.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
PR rtl-optimization/40956
* config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
constants.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
PR target/42495
PR middle-end/42574
* config/arm/arm.c (legitimize_pic_address): Use
gen_calculate_pic_address pattern to emit calculation of PIC address.
(will_be_in_index_register): New function.
(arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
(thumb1_legitimate_address_p): Use it provided !strict_p.
* config/arm/arm.md (calculate_pic_address): New expand and split.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
PR target/42495
PR middle-end/42574
* config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
* config/arm/arm.md (define_split "J", define_split "K"): Make
IRA/reload friendly.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
* gcse.c (insert_insn_end_basic_block): Update signature, remove
unused checks.
(pre_edge_insert, hoist_code): Update.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
PR target/42495
PR middle-end/42574
* gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
* gcse.c (hoist_code): Generate new pseudo for every new set insn.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
PR rtl-optimization/40956
PR target/42495
PR middle-end/42574
* gcse.c (compute_code_hoist_vbeinout): Consider more expressions
for hoisting.
(hoist_code): Count occurences in current block too.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
* gcse.c (struct expr:max_distance): New field.
(doing_code_hoisting_p): New static variable.
(want_to_gcse_p): Change signature. Allow constrained hoisting of
simple expressions, don't change behavior for PRE. Set max_distance.
(insert_expr_in_table): Set new max_distance field.
(hash_scan_set): Update.
(hoist_expr_reaches_here_p): Stop search after max_distance
instructions.
(find_occr_in_bb): New static function. Use it in ...
(hoist_code): Calculate sizes of basic block before any changes are
done. Pass max_distance to hoist_expr_reaches_here_p.
(one_code_hoisting_pass): Set doing_code_hoisting_p.
* params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
(PARAM_GCSE_UNRESTRICTED_COST): New parameters.
* params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
macros.
* doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
Document.
2010-07-27 Jeff Law <law@redhat.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
* gcse.c (compute_transpout, transpout): Remove, move logic
to prune_expressions.
(compute_pre_data): Move pruning of trapping expressions ...
(prune_expressions): ... here. New static function.
(compute_code_hoist_data): Use it.
(alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
2010-07-27 Xinliang David Li <davidxl@google.com>
* tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
(rewrite_use_address): Adjust iv update position when needed.
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
* dbgcnt.def (hoist_insn): New debug counter.
* gcse.c (hoist_code): Use it.
2010-07-27 Xinliang David Li <davidxl@google.com>
* tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
(niter_for_single_dom_exit): Passes additional parameter.
(iv_period): Fix comments.
(may_eliminate_iv): Handles multiple exit loops properly.
(free_tree_niter_desc): New function.
(free_loop_data): Frees up loop iteration descriptors.
2010-07-27 Jakub Jelinek <jakub@redhat.com>
PR target/44542
* cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
instead of MAX_SUPPORTED_STACK_ALIGNMENT.
(expand_one_var): Don't consider DECL_ALIGN for variables for
which expand_one_stack_var_at has been already called.
PR testsuite/44701
* doc/md.texi: Clarify m and es constraints on PowerPC and m and S
constraints on IA-64.
2010-07-27 Jie Zhang <jie@codesourcery.com>
PR target/44290
Revert:
2010-07-23 Jie Zhang <jie@codesourcery.com>
* tree-sra.c (ipa_sra_preliminary_function_checks): Return
false if ! tree_versionable_function_p.
2010-07-27 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (add_data_member_location_attribute): Use
add_AT_unsigned instead of add_AT_int if offset is non-negative.
2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
* postreload.c (try_replace_in_use): New static function.
(reload_combine_recognize_const_pattern): Use it here. Allow
substituting into a final add insn, and substituting into a memory
reference in an insn that sets the reg.
2010-07-27 Joseph Myers <joseph@codesourcery.com>
* common.opt (o): Add MissingArgError.
* doc/options.texi (MissingArgError): Document.
* hooks.c (hook_bool_constcharptr_size_t_false): Remove.
* hooks.h (hook_bool_constcharptr_size_t_false): Remove.
* langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
(LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
* langhooks.h (struct lang_hooks): Remove missing_argument.
* optc-gen.awk: Handle MissingArgError and output new structure
field initializers.
* opts.c (read_cmdline_option): Use missing_argument_error field
instead of missing_argument langhook.
* opts.h (struct cl_option): Add missing_argument_error field.
* system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
PR target/29090
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
Darwin64 ABI, for zero-sized objects.
2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
PR target/35491
PR target/29090
Merge from Apple local 4.2.1.
2005-05-11 Stan Shebs <shebs@apple.com>
Fix 64-bit varargs for Darwin (Radar 4028089).
* config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
Add argument, add case for 8-byte register half-filled with a float.
(rs6000_darwin64_record_arg_advance_recurse): Detect and handle
single-precision floats specially.
2010-07-27 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/44152
* tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
complex numbers for further check.
(vect_supported_load_permutation_p): Check nodes with
complex numbers.
2010-07-27 Joseph Myers <joseph@codesourcery.com>
* langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
(LANG_HOOKS_INIT_OPTIONS): Update default definition.
(LANG_HOOKS_INITIALIZER): Add new hooks.
* langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
* langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
and complain_wrong_lang_p. Update init_options prototype.
* c-objc-common.c (c_initialize_diagnostics): First call
c_common_initialize_diagnostics.
* c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
* coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
* hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
(hook_uint_void_0): New.
* hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
(hook_uint_void_0): New.
* opts-common.c (decode_cmdline_option,
decode_cmdline_options_to_array): Also fill in canonical_option field.
* opts.c (complain_wrong_lang): Use langhook to determine whether
to complain instead of special-casing LTO.
(decode_options): Separate lang_mask determination with
option_lang_mask hook from call of init_options hook.
* opts.h (struct cl_decoded_option): Add canonical_option.
2010-07-27 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45083
* tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
* postreload.c (reload_combine_recognize_const_pattern): Move test
for limiting the insn movement to the right scope.
PR rtl-optimization/45051
* reload1.c (delete_output_reload): Use refers_to_regno_p rather
than reg_mentioned_p.
2010-07-26 Richard Henderson <rth@redhat.com>
PR target/44132
* tree-emutls.c: New file.
* Makefile.in (OBJS-common): Add it.
* tree-pass.h (pass_ipa_lower_emutls): Declare.
* passes.c (init_optimization_passes): Add it.
* dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
* expr.c (emutls_var_address): Delete.
(expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
* output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
(emutls_finish): Delete.
* toplev.c (compile_file): Don't call it.
* tree.h (emutls_decl): Delete.
* varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
(emutls_finish, emutls_finalize_control_var): Delete.
(emutls_object_type): Move to tree-emutls.c.
(EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
default_emutls_var_fields, get_emutls_object_type,
get_emutls_init_templ_addr, emutls_decl, emutls_common_1
default_emutls_var_init): Likewise.
(get_variable_section): Don't special case emutls.
(assemble_variable, do_assemble_alias, categorize_decl_for_section,
default_elf_select_section, default_unique_section,
default_encode_section_info): Likewise.
* varpool.c (decide_is_variable_needed): Likewise.
* gimple-iterator.c (update_call_edge_frequencies): New
(gsi_insert_on_edge_immediate): Use it.
(gsi_insert_seq_on_edge_immediate): Likewise.
(gsi_commit_one_edge_insert): Likewise.
* config/i386/i386.c (x86_64_elf_select_section): Don't handle
SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
(x86_64_elf_unique_section): Likewise.
2010-07-26 Jan Hubicka <jh@suse.cz>
* lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
GTY((skip)).
2010-07-26 Anatoly Sokolov <aesok@post.ru>
* target.def (output_source_filename): New hook.
* doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
* doc/tm.texi: Regenerate.
* toplev.c (output_file_directive) Remove function.
* toplev.h (output_file_directive) Remove.
* output.h (default_asm_output_source_filename,
output_file_directive): Declare.
* varasm.h (default_asm_output_source_filename,
output_file_directive): New functions.
* config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
* config/mips/mips-protos.h (mips_output_filename): Remove.
* config/mips/mips.c (mips_output_filename): Make Static.
(TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
2010-07-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43784
* tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
if the destination is used by the call.
2010-07-26 Richard Guenther <rguenther@suse.de>
PR middle-end/45073
* gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
SSA updating on being in SSA form.
2010-07-26 Richard Guenther <rguenther@suse.de>
PR middle-end/45056
* gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
2010-07-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45071
* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
adjust op->opcode.
2010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
* config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
save_r31, return_r31, save_interrupt, return_interrupt,
save_all_interrupt, return_all_interrupt, L_save_r2_r31,
L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
new ABI requirements.
(save_r6_r9, L_callt_save_r6_r9): Remove.
* config/v850/predicates.md (even_reg_operand, disp23_operand,
const_float_1_operand const_float_0_operand): New Predicates.
(pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
pattern_is_ok_for_epilogue): Update as per the ABI requirements.
* config/v850/t-v850: Update multilibs for new target variants.
(save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
* config/v850/t-v850e: Likewise.
* config/v850/v850.c (v850_issue_rate): New.
(v850_strict_argument_naming): New.
(function_arg): Modify to generate a different ABI.
(print_operand): Update case 'z' to support float modes.
(output_move_single): Modify to generate appropriate and better
assembly.
(v850_float_z_comparison_operator, v850_select_cc_mode,
v850_float_nz_comparison_operator, v850_gen_float_compare,
v850_gen_compare): New functions to support comparison of float values.
(ep_memory_offset): Add support for V850E2 targets.
(INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
(INTERRUPT_REGPARM_NUM): Remove.
(compute_register_save_size): Add extra case to save/restore long call.
(use_prolog_function): New function to support prologue.
(expand_prologue): Add support for V850E2 targets and modified
as per the current ABI requirements.
(expand_epilogue): Likewise.
(construct_restore_jr): Modify based on TARGET_LONG_CALLS.
(construct_save_jarl): Likewise.
(construct_dispose_instruction): Update as per the current ABI
requirements.
(construct_prepare_instruction): Likewise.
* config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
(TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
(CPP_SPEC): Updated to support v850e2 targets.
(STRICT_ALIGNMENT): Modified.
(FIRST_PSEUDO_REGISTER): Updated to add even registers.
(FIXED_REGISTERS): Likewise.
(CALL_USED_REGISTERS): Likewise.
(CONDITIONAL_REGISTER_USAGE): Updated.
(HARD_REGNO_MODE_OK): Updated.
(reg_class): Updated to add even registers.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(REGNO_REG_CLASS): Updated for CC registers.
(REG_CLASS_FROM_LETTER): Added support for even registers.
(REGNO_OK_FOR_BASE_P): Updated for CC registers.
(STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
ARG_POINTER_REGNUM): Updated.
(FUNCTION_ARG_ADVANCE): Define.
(REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
(OUTGOING_REG_PARM_STACK_SPACE): Remove.
(EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
(GO_IF_LEGITIMATE_ADDRESS): Updated.
(SELECT_CC_MODE): Define.
(REGISTER_NAMES): Updated to add psw and fcc registers.
(ADDITIONAL_REGISTER_NAMES): Updated.
(ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
(JUMP_TABLES_IN_TEXT_SECTION): Updated.
* config/v850/v850.md (define_constants): Define new constants.
(type): Update store,bit1,macc,div,fpu and single attributes.
(cpu): New attribute.
(cc): Add set_z attribute.
(unsign23byte_load, sign23byte_load, unsign23hword_load,
sign23hword_load, 23word_load, 23byte_store, 23hword_store,
23word_store): New instructions for 23-bit displacement load and store.
(movqi_internal, movhi_internal): Update the attributes.
(movsi, movsi_internal_v850e): Updated to support v850e2 targets.
(movsi_internal_v850e, movsi_internal, movsf_internal): Update
the attributes.
(v850_tst1): Modified using CC_REGNUM.
(tstsi): Remove.
(cmpsi): Modified as define_expand from define_insn.
(cmpsi_insn, cmpsf, cmpdf): New instructions.
(addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
one_cmplsi2): Clobber the CC_REGNUM register.
(v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
(setf_insn, set_z_insn, set_nz_insn): New instructions for
v850e2v3 target.
(movsicc_normal_cc, movsicc_reversed_cc): New instructions.
(movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
targets.
(sasf_1, sasf_2): Remove.
(sasf): New instruction.
(rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
targets. CC_REGNUM register is clobbered and attributes are
updated.
(branch_z_normal, branch_z_invert, branch_nz_normal,
branch_nz_invert): New branch related instructions.
(jump): Updated the attributes.
(switch): Update to support new targets. CC_REGNUM register is
clobbered and attributes are updated.
(call_internal_short, call_internal_long, call_value_internal_short,
call_value_internal_long): Updated the attributes.
(zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
clobbered and attributes are updated.
(extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
Update to support new targets. CC_REGNUM register is clobbered.
(ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
instructions.
(lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
are updated.
(ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
point instructions defined for V850e2v3 target.
(callt_save_interrupt, callt_return_interrupt, return_interrupt):
Add support for V850E2 targets and CC_REGNUM register is clobbered.
(callt_save_all_interrupt, callt_restore_all_interrupt): Add
support for new targets.
* config/v850/v850-modes.def: New file.
* config/v850/v850.opt(mstrict-align): Remove.
(mno-strict-align, mjump-tables-in-data-section, mv850e2,
mv850e2v3): New command line options for V850.
* config.gcc: Update the newly added files.
* doc/invoke.texi: Update the newly added command line options for
V850 target.
2010-07-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45052
* ipa-pure-const.c (check_stmt): Check volatileness.
2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
PR target/44707
* config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
* config/sparc/sparc.c: Include reload.h.
(legitimize_tls_address): Rename into...
(sparc_legitimize_tls_address): ...this.
(legitimize_pic_address): Rename into...
(sparc_legitimize_pic_address): ...this.
(sparc_expand_move): Adjust to above renaming.
(sparc_tls_referenced_p): Likewise.
(sparc_legitimize_tls_address): Likewise.
(sparc_legitimize_pic_address): Likewise.
(sparc_legitimize_address): Likewise.
(sparc_output_mi_thunk): Likewise.
(sparc_legitimize_reload_address): New global function. Recognize
(lo_sum (high ...) ...) patterns generated by earlier passes.
* config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
PR target/44484
* config/sparc/predicates.md (memory_reg_operand): Delete.
* config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
(*sync_compare_and_swap): Encode the address form in the pattern.
(*sync_compare_and_swapdi_v8plus): Likewise.
2010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
Streamline paragraph on compatibility with the system compiler.
2010-07-24 Steven Bosscher <steven@gcc.gnu.org>
PR middle-end/45035
* alias.c (true_dependence_1): Fix thinko in merge of old
true_dependence and canon_true_dependence.
2010-07-23 Jan Hubicka <jh@suse.cz>
* lto-streamer-out.c (write_symbol): Fix visibilities of external
references.
2010-07-23 Le-Chun Wu <lcwu@google.com>
* omega.c (omega_eliminate_redundant): Remove a self-assign statement.
* tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
and an unnecessary assignment.
* dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
self-assign warning.
* config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
unnecessary self-init.
2010-07-23 Richard Guenther <rguenther@suse.de>
PR lto/43071
* gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
for -flto and -fwhopr.
2010-07-23 Kai Tietz <kai.tietz@onevision.com>
PR target/41943
* Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
(stmp-int-hdrs): Prefix/postfix headers by include_next.
* config.gcc (user_headers_inc_next_pre): New.
(user_headers_inc_next_post): Likewise.
(*-w64-mingw*): Use for float.h post-fixing, and for
stddef.h/stdarg.h pre-fixing by include_next.
* configure.ac (user_headers_inc_next_post): New.
(user_headers_inc_next_pre): New.
* configure: Regenerated.
2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac: Don't disable TLS on Solaris 8/9 by default
Set tga_func for Solaris 2/x86 resp. SPARC.
Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
(LIB_THREAD_LDFLAGS_SPEC): Define.
(LIB_TLS_SPEC): Define. Check for required Sun ld version.
* configure: Regenerate.
* config.in: Regenerate.
* config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
-pthread, -threads, LIB_TLS_SPEC with -pthread.
* doc/install.texi (Specific, *-*-solaris2*): Document use of
alternate thread libraries on Solaris 8.
Document TLS patch requirements.
* doc/sourcebuild.texi (Add Options): Sort alphabetically.
Document tls.
PR target/18788
* config/sol2.h (LIB_SPEC): Link with thread libraries even with
-shared.
2010-07-23 Jakub Jelinek <jakub@redhat.com>
* tree.h (struct tree_base): Add nameless_flag bitfield.
(TYPE_NAMELESS, DECL_NAMELESS): Define.
* omp-low.c (create_omp_child_function, scan_omp_parallel,
scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
DECL_ARTIFICIAL where needed.
* dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
(type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
has DECL_NAMELESS set.
2010-07-23 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/44915
* ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
* ipa-inline.c (cgraph_mark_inline_edge): Likewise.
(analyze_function): Likewise.
2010-07-23 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/44914
* tree-sra.c (sra_modify_function_body): Return true if CFG was
changed, add purging dead eh edges.
(ipa_sra_modify_function_body): Return true if CFG was changed,
simplify purging dead eh edges.
(modify_function): Return true if CFG was changed.
(perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
was changed.
(ipa_early_sra): Likewise.
2010-07-23 Jie Zhang <jie@codesourcery.com>
PR target/44290
* attribs.c (decl_attributes): Insert "noinline" and "noclone"
if "naked".
* tree-sra.c (ipa_sra_preliminary_function_checks): Return
false if ! tree_versionable_function_p.
2010-07-23 Nathan Froyd <froydnj@codesourcery.com>
* builtins.def (BUILT_IN_ARGS_INFO): Remove.
* ipa-pure-const.c (special_builtlin_state): Remove
BUILT_IN_ARGS_INFO case.
* tree-stdarg.c (execute_optimize_stdarg): Likewise.
* builtins.c (expand_builtin): Likewise.
(expand_builtin_args_info): Remove.
* doc/tm.texi (__builtin_args_info): Remove.
(__builtin_next_arg): Adjust to not refer to __builtin_args_info.
* doc/tm.text.in: Likewise.
2010-07-23 Richard Guenther <rguenther@suse.de>
* lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
(lto_symtab_merge_decls_2): Likewise.
* tree-ssa.c (useless_type_conversion_p): Likewise.
* lto-streamer-in.c (input_gimple_stmt): Likewise.
* gimple.c (gtc_visited2, gtc_ob2): Remove.
(struct type_pair_d): Make same_p an array indexed by mode.
Update comment.
(lookup_type_pair): Update initialization.
(struct sccs): Adjust same_p type.
(gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
Adjust.
(print_gimple_types_stats): Likewise.
* gimple.h (enum gtc_mode): New.
(gimple_types_compatible_p): Adjust prototype.
2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
* dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
again after processing insn.
2010-07-23 Jie Zhang <jie@codesourcery.com>
* tree-sra.c (ipa_sra_preliminary_function_checks): Dump
proper words when !tree_versionable_function_p.
2010-07-23 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45037
* tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
2010-07-23 Jie Zhang <jie@codesourcery.com>
* doc/extend.texi: Remove IP2K from the description of naked attribute.
Add MCORE instead.
2010-07-10 Andi Kleen <ak@linux.intel.com>
PR lto/44992
* lto-opts.c (lto_write_options): Add NULL file_data argument to
lto_get_section_name.
* lto-section-out.c (lto_destroy_simple_output_block): Likewise.
* lto-streamer-out.c (produce_asm): Likewise.
(copy_function): Likewise.
(produce_symtab): Likewise.
(produce_asm_for_decls): Likewise.
* lto-streamer.c (lto_get_section_name): Add file_data argument.
Rewrite to add random postfix to LTO sections.
* lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
(lto_get_section_name): Add file_data argument to prototype.
2010-07-10 Andi Kleen <ak@linux.intel.com>
* lto-section-in.c (lto_section_name): Synchronize names
with lto_get_section_name.
2010-07-10 Andi Kleen <ak@linux.intel.com>
* lto-opts.c (lto_read_file_options): Check for missing section.
2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
* ira.c (check_allocation): Correctly handle the case where an allocno
with two objects was allocated to a single reg.
2010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
* tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
(is_widening_mult_p): Likewise.
(convert_to_widen): Use them.
(convert_plusminus_to_widen): Likewise. Handle fixed-point types as
well as integer ones.
2010-07-22 Steven Bosscher <steven@gcc.gnu.org>
* alias.c (true_dependence_1): New function, merged version of
true_dependence and canon_true_dependence.
(true_dependence): Simplify.
(canon_true_dependence): Simplify.
2010-07-22 Richard Henderson <rth@redhat.com>
PR target/45027
* config/i386/i386.c (setup_incoming_varargs_64): Force the use
of V4SFmode for the SSE saves; increase stack alignment if needed.
(ix86_gimplify_va_arg): Don't increase stack alignment here.
2010-07-22 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/45028
* recgprop.c (copyprop_hardreg_forward_1): If changed is true,
call cprop_find_used_regs again via note_uses.
2010-07-22 Eric Botcazou <ebotcazou@adacore.com>
* alias.c (get_alias_set): Fix formatting issues.
2010-07-22 Steve Ellcey <sje@cup.hp.com>
PR middle-end/44878
* stmt.c (expand_value_return): Call promote_function_mode with
a for_return argument of 2 when returning by reference.
2010-07-22 Dodji Seketeli <dodji@redhat.com>
PR debug/45024
* dwarf2out.c (scope_die_for): Don't fall back to the compilation
unit DIE if we can find the scope DIE.
2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
* ira-build.c (ira_create_object): New arg SUBWORD; all callers
changed. Initialize OBJECT_SUBWORD.
(ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
(ira_create_allocno_objects): Renamed from ira_create_allocno_object;
all callers changed.
(merge_hard_reg_conflicts): Iterate over allocno subobjects.
(finish_allocno): Likewise.
(move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
(remove_low_level_allocnos): Likewise.
(update_bad_spill_attribute): Likewise.
(setup_min_max_allocno_live_range_point): Likewise.
(sort_conflict_id_map): Likewise.
(ira_flattening): Likewise. Use ior_hard_reg_conflicts.
(ior_hard_reg_conflicts): New function.
(ior_allocate_object_conflicts): Renamed first argument to OBJ.
(compress_conflict_vecs): Iterate over objects, not allocnos.
(ira_add_live_range_to_object): New function.
(object_range_compare_func): Renamed from allocno_range_compare_func.
All callers changed.
(setup_min_max_conflict_allocno_ids): For allocnos with multiple
subobjects, widen the min/max range of the lowest-order object to
potentially include all other such low-order objects.
* ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
(check_allocation): Likewise. Use more fine-grained tests for register
conflicts.
* ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
allocno subobjects.
(assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
choices about which bits to set in each set. Don't use
ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
using the multiple sets we computed.
(push_allocno_to_stack): Iterate over allocno subobjects.
(all_conflicting_hard_regs_coalesced): New static function.
(setup_allocno_available_regs_num): Use it.
(setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
subobjects.
(coalesced_allocno_conflict): Test subobject 0 in each allocno.
(setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
by ALLOCNO_NUM_OBJECTS.
(calculate_spill_cost): Likewise.
(color_pass): Express if statement in a more normal way.
(ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
(slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
(setup_slot_coalesced_allocno_live_ranges): Likewise.
(allocno_reload_assign): Likewise.
(ira_reassign_pseudos): Likewise.
(fast_allocation): Likewise.
* ira-conflicts.c (build_conflict_bit_table): Likewise.
(print_allocno_conflicts): Likewise.
(ira_build_conflicts): Likewise.
(allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
callers changed. Test subword 0 of each allocno for conflicts.
(build_object_conflicts): Renamed from build_allocno_conflicts. All
callers changed. Iterate over allocno subobjects.
* ira-emit.c (modify_move_list): Iterate over allocno subobjects.
* ira-int.h (struct ira_allocno): New member: num_objects.
Rename object to objects and change it into an array.
(ALLOCNO_OBJECT): Add new argument N.
(ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
(ira_create_allocno_objects): Renamed from ira_create_allocno_object.
(ior_hard_reg_conflicts): Declare.
(ira_add_live_range_to_object): Declare.
(ira_allocno_object_iterator): New.
(ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
(FOR_EACH_ALLOCNO_OBJECT): New macro.
* ira-lives.c (objects_live): Renamed from allocnos_live; all
uses changed.
(allocnos_processed): New sparseset.
(make_object_born): Renamed from make_allocno_born; take an
ira_object_t argument. All callers changed.
(make_object_dead): Renamed from make_allocno_dead; take an
ira_object_t argument. All callers changed.
(update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
All callers changed.
(mark_pseudo_regno_live): Iterate over allocno subobjects.
(mark_pseudo_regno_dead): Likewise.
(mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
functions.
(mark_ref_live): Detect subword accesses and call
mark_pseudo_regno_subword_live as appropriate.
(mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
(process_bb_nodes_live): Deal with object-related updates first; set
and test bits in allocnos_processed to avoid computing allocno
statistics more than once.
(create_start_finish_chains): Iterate over objects, not allocnos.
(print_object_live_ranges): New function.
(print_allocno_live_ranges): Use it.
(ira_create_allocno_live_ranges): Allocate and free allocnos_processed
and objects_live.
2010-07-22 Richard Guenther <rguenther@suse.de>
PR lto/42451
* gimple.c (gtc_next_dfs_num): New global.
(struct sccs): Make value a union, add integer same_p member.
(gtc_visit): New function.
(gimple_types_compatible_p_1): New function, split out from ...
(gimple_types_compatible_p): ... here. Start a DFS walk here.
(iterative_hash_gimple_type): Adjust for sccs change.
2010-07-22 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/44891
* tree-sra.c: Include gimple-pretty-print.h.
(replace_uses_with_default_def_ssa_name): Renamed to
get_repl_default_def_ssa_name, return the new SSA name instead of
replacing the old one.
(sra_modify_assign): Dump a message when removing a load, if the LHS
is an SSA_NAME, do not do any propagation, just set the RHS to a
default definition SSA NAME, type convert if necessary.
* Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
2010-07-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45017
* tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
TYPE_PRECISION of integral types in addition to size.
2010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
when no C library is specified.
2010-07-22 Martin Jambor <mjambor@suse.cz>
* ipa-prop.h (struct ipa_node_params): Updated comment.
(struct ipa_edge_args): Likewise.
* Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
2010-07-22 Martin Jambor <mjambor@suse.cz>
* cgraphunit.c (verify_edge_count_and_frequency): New function.
(verify_cgraph_node): Verify frequencies of indirect edges.
* tree-inline.c (tree_function_versioning): Update frequencies of
indirect edges.
2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/43698
* config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
Set *arm_rev to be predicable.
2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.h (LINK_COMMAND_SPEC): Split into...
(LINK_COMMAND_SPEC_A): New.
(DSYMUTIL): New.
(DSYMUTIL_SPEC): New.
* config/darwin9.h (LINK_COMMAND_SPEC): Remove.
(DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
* calls.c (load_register_parameters): Move check for zero
sized items so that only the call to
mem_overlaps_already_clobbered_arg_p () is protected.
2010-07-22 Jan Hubicka <jh@suse.cz>
* ipa-pure-const.c (varying_state): Break out from ...
(get_function_state): ... here; always return varying_state
when state would be NULL otherwise.
(remove_node_data): Do not free varying state.
2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
PR bootstrap/44970
PR middle-end/45009
* postreload.c: Include "target.h".
(reload_combine_closest_single_use): Don't take DEBUG_INSNs
into account.
(fixup_debug_insns): Don't copy the rtx.
(reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
Don't copy when replacing. Call fixup_debug_insns in the case where
we merged one add with another.
(reload_combine_recognize_pattern): Fail if there aren't any uses.
Try harder to determine whether we're picking a valid index register.
Don't set store_ruid for an insn we're going to scan in the
next iteration.
(reload_combine): Remove unused code.
(reload_combine_note_use): When updating use information for
an old insn, ignore a use that occurs after store_ruid.
* Makefile.in (postreload.o): Update dependencies.
* function.c (record_hard_reg_sets): Restrict the previous change
to cases where the incoming nominal mode is the same as the
incoming promoted mode and everything happens in MODE_INT.
2010-07-21 Jakub Jelinek <jakub@redhat.com>
PR debug/45015
* var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
ASM_OPERANDS_OUTPUT_IDX.
(adjust_insn): For inline asm with multiple sets ensure first
ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
the insn.
2010-07-21 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
comparison for avoiding xmm register saves. Emit the xmm register
saves explicitly.
* config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
(UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
(sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
Remove patterns and the associated splitters.
2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
and imagine parts of a complex, so that they can have the same
base and fall into the same group.
2010-07-21 Richard Guenther <rguenther@suse.de>
PR lto/45018
* tree.c (find_decls_types_r): Do not follow TREE_CHAIN
of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
2010-07-21 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/44900
* tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
(sra_modify_assign): Move gsi to the next statmenent unconditionally.
2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
PR middle-end/44738
* tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
2010-07-21 Richard Guenther <rguenther@suse.de>
PR middle-end/45013
* tree-ssa.c (useless_type_conversion_p): Dispatch to
gimple_types_compatible_p only when in lto.
* gimple.c (gimple_types_compatible_p): Use canonical types
to speed up comparison.
2010-07-21 Richard Guenther <rguenther@suse.de>
* tree-flow.h (referenced_var): Move define ...
* tree-flow-inline.h (referenced_var): ... here as an inline
function. Assert here ...
* tree-dfa.c (referenced_var_lookup): ... instead of here.
* tree-ssa.c (maybe_optimize_var): Check if the variable
is in referenced vars.
(execute_update_addresses_taken): Remove old broken check.
* gimple-pretty-print.c (pp_points_to_solution): Use
referenced_var_lookup.
* tree-into-ssa.c (dump_decl_set): Likewise.
2010-07-21 Jakub Jelinek <jakub@redhat.com>
PR debug/45003
* var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
* dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
ZERO_EXTEND here.
2010-07-20 Richard Henderson <rth@redhat.com>
* vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
* config/arm/arm.md (thumb1_addsi3): Add alternative and split for
computing the sum of the stack pointer and a large constant.
* config/arm/constraints.md (M): Remove superfluous parentheses.
(Pc): New constraint.
2010-07-20 Jakub Jelinek <jakub@redhat.com>
PR debug/45006
* cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
operand's type if exp is tcc_unary class tree.
2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
Reverse sense of if_then_else condition.
2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
* config/rs6000/rs6000.c (rs6000_override_options): Set
rs6000_block_move_inline_limit appropriately.
(expand_block_move): Use rs6000_block_move_inline_limit.
* doc/invoke.texi (mblock-move-inline-limit): Document.
2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
* postreload.c (fixup_debug_insns): Remove arg REGNO. New args
FROM and TO. All callers changed. Don't look for tracked uses,
just scan the RTL for DEBUG_INSNs and substitute.
(reload_combine_recognize_pattern): Call fixup_debug_insns.
(reload_combine): Ignore DEBUG_INSNs.
2010-07-20 Jakub Jelinek <jakub@redhat.com>
* var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
depth to 8 from 5.
PR debug/45003
* cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
instead of the result's type.
2010-07-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44977
* tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
SSA form.
2010-07-20 Richard Guenther <rguenther@suse.de>
* lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
(lto_symtab_merge_decls_2): Likewise.
* gimple.h (gimple_types_compatible_p): Declare.
* gimple.c (gimple_queue_type_fixup): Remove.
(gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
(gimple_compatible_complete_and_incomplete_type_p): New function.
(gimple_types_compatible_p): Adjust.
(gimple_register_type): Remove type fixup code.
(print_gimple_types_stats): Adjust.
(free_gimple_type_tables): Likewise.
* lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
* tree-ssa.c (useless_type_conversion_p): Likewise.
2010-07-20 Richard Guenther <rguenther@suse.de>
PR middle-end/44971
PR middle-end/44988
* tree-ssa.c (maybe_optimize_var): New function split out from ...
(execute_update_addresses_taken): ... here.
(non_rewritable_mem_ref_base): Likewise.
(execute_update_addresses_taken): Do not iterate over all referenced
vars but just all local decls and parms.
Properly check call and asm arguments and rewrite call arguments.
2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
* config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
to top level.
* config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
definitions ...
* config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
New macro.
* config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
* gengtype.c (start_root_entry): New function, split out from
write_root. Check whether V is null and raise an error if so.
(write_field_root): Check for V being null. Don't raise an error here;
set V to null instead.
(write_root): Update comment above function. Use start_root_entry.
2010-07-19 Xinliang David Li <davidxl@google.com>
PR testsuite/44932
* tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
def edges.
(find_uninit_use): Add dump.
(is_use_properly_guarded): Ditto.
(warn_uninitialized_phi): Ditto.
(execute_late_warn_uninitialized): Ditto.
2010-07-19 Richard Guenther <rguenther@suse.de>
PR middle-end/44941
* expr.c (emit_block_move_hints): Move zero size check first.
Move asserts to more useful places.
* calls.c (load_register_parameters): Check for zero size.
2010-07-19 Richard Henderson <rth@redhat.com>
* tree-optimize.c (execute_all_early_local_passes): New. Change
cgraph_state here ...
(execute_early_local_optimizations): ... not here. Remove.
(pass_early_local_passes, pass_all_early_optimizations): Update.
2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
* postreload.c (reload_combine_closest_single_use): Ignore the
number of uses for DEBUG_INSNs.
(fixup_debug_insns): New static function.
(reload_combine_recognize_const_pattern): Use it. Don't let the
main loop be affected by DEBUG_INSNs.
Really disallow moving adds past a jump insn.
(reload_combine_recognize_pattern): Don't update use_ruid here.
(reload_combine_note_use): Do it here.
(reload_combine): Use control_flow_insn_p rather than JUMP_P.
2010-07-19 Bingfeng Mei <bmei@broadcom.com>
* ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
of a loop.
* loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
* config/i386/darwin.h: Define darwin_emit_branch_islands.
(TARGET_MACHO_BRANCH_ISLANDS): New.
(FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
* config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
default value.
* config/i386/i386.c (output_pic_addr_const): Do not emit
branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
(x86_output_mi_thunk): Adjust symbol creation.
* config/rs6000/darwin.h: Define darwin_emit_branch_islands.
Remove out of date comment.
* config/rs6000/rs6000.c (print_operand): Adjust symbol.
(DARWIN_LINKER_GENERATES_ISLANDS): Remove.
(DARWIN_GENERATE_ISLANDS): Ditto.
(output_call): Do not emit branch islands unless
darwin_emit_branch_islands is set.
* config/darwin.c: Declare darwin_emit_branch_islands.
(machopic_indirect_data_reference): Do not emit unless
darwin_emit_branch_islands is set.
(darwin_override_options): Set darwin_emit_branch_islands
where it is needed.
* config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/sourcebuild.texi (Effective-Target Keywords): Document
sse_runtime, sse2_runtime.
2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c (mips16_build_call_stub): Zero-extend the
low half of a single-register SCmode return value before ORing
it with the high half.
* config/mips/mips16.S (MERGE_GPRf): Likewise.
2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/44805
* config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
on all targets.
2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
PR target/42235
* postreload.c (reload_cse_move2add): Return bool, true if anything.
changed. All callers changed.
(move2add_use_add2_insn): Likewise.
(move2add_use_add3_insn): Likewise.
(reload_cse_regs): If reload_cse_move2add changed anything, rerun
reload_combine.
(RELOAD_COMBINE_MAX_USES): Bump to 16.
(last_jump_ruid): New static variable.
(struct reg_use): New members CONTAINING_MEM and RUID.
(reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
(reload_combine_split_one_ruid, reload_combine_split_ruids,
reload_combine_purge_insn_uses, reload_combine_closest_single_use
reload_combine_purge_reg_uses_after_ruid,
reload_combine_recognize_const_pattern): New static functions.
(reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
is true for our reg and that we have available index regs.
(reload_combine_note_use): New args RUID and CONTAINING_MEM. All
callers changed. Use them to initialize fields in struct reg_use.
(reload_combine): Initialize last_jump_ruid. Be careful when to
take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
Call reload_combine_recognize_const_pattern.
(reload_combine_note_store): Update REAL_STORE_RUID field.
2010-07-16 Jason Merrill <jason@redhat.com>
* Makefile.in (opts-common.o): Depend on options.h.
2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
* tree.c (build_common_builtin_nodes): Use build_function_type_list
instead of build_function_type.
* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
* cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
do all the work.
(rs6000_emit_int_cmove): Use function pointers for insn generation.
Don't force values into registers unnecessarily.
(output_isel): Assert that we're not given conditions we can't handle.
Delete corresponding code.
* config/rs6000/rs6000.md (isel_signed_<mode>): Use
scc_comparison_operator constraint. Permit 0 for the consequent
operand. Permit any GPR for the alternative operand.
(isel_unsigned_<mode>): Likewise.
2010-07-16 Jakub Jelinek <jakub@redhat.com>
PR target/44942
* config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
argument to const_tree.
* config/i386/i386.c (function_arg_advance): If padding needs to be
inserted before argument, increment cum->words by number of padding
words as well.
(contains_aligned_value_p): Change argument to const_tree.
(ix86_function_arg_boundary): Change second argument to const_tree.
2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
PR target/42235
* function.c (record_hard_reg_sets): New static function.
(assign_parm_setup_reg): If an optab for extending exists and the
generated code clobbbers no hard regs, emit the insn directly and
create a REG_EQUIV note.
2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
* c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
TREE_CHAIN.
* c-typeck.c (push_init_level): Likewise.
(process_init_element): Likewise.
2010-07-15 Anatoly Sokolov <aesok@post.ru>
* tree.h (enum tree_index): Add TI_INTEGER_THREE.
(integer_three_node): Add.
* tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
* builtins.c (expand_builtin_prefetch): Use common tree nodes instead
of call build_int_cst.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
* tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
(find_interesting_uses_address): Ditto.
* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
* tree-eh.c (lower_eh_constructs_2): Ditto.
* tree-vect-loop.c (get_initial_def_for_induction): Ditto.
* c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
* expmed.c (expand_divmod): Ditto.
* tree-mudflap.c (mx_register_decls): Ditto.
* varasm.c (array_size_for_constructor): Ditto.
* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
* c-parser.c (c_parser_postfix_expression): Ditto.
2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
* postreload.c (last_label_ruid, first_index_reg, last_index_reg):
New static variables.
(reload_combine_recognize_pattern): New static function, broken out
of reload_combine.
(reload_combine): Use it. Only initialize first_index_reg and
last_index_reg once.
2010-07-15 Richard Henderson <rth@redhat.com>
* cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
when done.
2010-07-15 Jan Hubicka <jh@suse.cz>
* lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
comdats for broken gold.
(lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
* tree.h (TREE_RTL_OPERAND_CHECK): Delete.
2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
* tree.h (DECL_CHAIN): Define.
* alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
* c-decl.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.
* cfgexpand.c: Likewise.
* cgraph.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* config/alpha/alpha.c: Likewise.
* config/arm/arm.c: Likewise.
* config/frv/frv.c: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/winnt-cxx.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/iq2000/iq2000.c: Likewise.
* config/mep/mep.c: Likewise.
* config/mips/mips.c: Likewise.
* config/pa/som.h: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/s390/s390.c: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/symbian-cxx.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/spu/spu.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/vxworks.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
* coverage.c: Likewise.
* dbxout.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* expr.c: Likewise.
* function.c: Likewise.
* gimple-low.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimplify.c: Likewise.
* integrate.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-split.c: Likewise.
* ipa-struct-reorg.c: Likewise.
* ipa-type-escape.c: Likewise.
* langhooks.c: Likewise.
* lto-cgraph.c: Likewise.
* omp-low.c: Likewise.
* stor-layout.c: Likewise.
* tree-cfg.c: Likewise.
* tree-complex.c: Likewise.
* tree-dfa.c: Likewise.
* tree-dump.c: Likewise.
* tree-inline.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-nested.c: Likewise.
* tree-object-size.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR target/44877
* config/spu/spu.c (spu_expand_builtin_1): Allow references
(as well as pointers) as argument to mask_for_load builtins.
2010-07-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44946
* tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
with accessing only padding properly.
2010-07-15 Jan Hubicka <jh@suse.cz>
* ipa.c (function_and_variable_visibility): Variables marked as used
should not be localized.
2010-07-15 Jan Hubicka <jh@suse.cz>
* cgraph.c: Include lto-streamer.h
(change_decl_assembler_name): Work when assembler name hash is at place.
(cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
be sure to rename it to avoid name clash.
* ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
Localize hidden symbols only when locally defined.
2010-07-15 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
2010-07-15 Magnus Granberg <zorry@gentoo.org>
Kevin F. Quinn <kevquinn@gentoo.org>
* builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
* common.opt: Add -Wtrampolines.
* doc/invoke.texi: Add -Wtrampolines.
2010-07-15 Jie Zhang <jie@codesourcery.com>
* config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
cortex_a8_issue_ls.
2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
* config/i386/cygwin.h (LIBGCJ_SONAME): Update.
* config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.c (reg_names): Remove prototype.
(call_used_regs): Likewise.
2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
* config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
"unused" with attribute "used".
(__JCR_END__): Likewise.
* config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
"used" attribute.
(__JCR_LIST__): Replace attribute "unused" with attribute "used".
2010-07-14 Richard Guenther <rguenther@suse.de>
* lto-streamer-in.c (maybe_fixup_handled_component): Remove.
(maybe_fixup_decls): Likewise.
(input_gimple_stmt): Do not fixup anything.
* lto-streamer-out.c (output_gimple_stmt): Make sure all
non-automatic variable uses are wrapped inside a MEM_REF.
2010-07-14 Richard Henderson <rth@redhat.com>
* passes.c (rest_of_decl_compilation): Do not call assemble_variable
for functions.
* varasm.c (assemble_variable): Remove early exit for functions;
assert that we're given a variable.
2010-07-14 Jie Zhang <jie@codesourcery.com>
* config/arm/cortex-a8.md (cortex_a8_alu): Don't use
cortex_a8_default when neon_type is not none.
2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
* lower-subreg.c (subreg_context): New static bitmap.
(decompose_multiword_subregs): Allocate and free it.
(find_decomposable_subregs): Set a bit in it for a register that
occurs in a subreg that changes mode but not size.
(can_decompose_p): Test it instead of non_decomposable_context.
2010-07-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44824
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
is_gimple_mem_ref_addr.
(tree_ssa_forward_propagate_single_use_vars): Do not propagate
non-decl_address_invariant_p addresses.
2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
* reload.c (find_reloads): Revert code to penalize small register
classes that was brought in with the IRA merge.
2010-07-14 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
as base of ARRAY_REFs.
2010-07-14 Richard Guenther <rguenther@suse.de>
PR middle-end/44930
* tree-pretty-print.c (do_niy): Do not print a newline.
2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
* ira-int.h (struct ira_object): New.
(ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
(struct ira_allocno): Remove members min, max,
conflict_allocno_array, conflict_id, conflict_allocno_array_size,
conflict_allocnos_num and conflict_vec_p. Add new member object.
(OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
an ira_object_t rather than ira_allocno_t. All uses changed.
(ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
contains a vector of ira_object_t; all uses changed.
(ira_objects_num): Declare variable.
(ira_create_allocno_object): Declare function.
(ira_conflict_vector_profitable_p): Adjust prototype.
(ira_allocate_conflict_vec): Renamed from
ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
(ira_allocate_object_conflicts): Renamed from
ira_allocate_allocno_conflicts; first arg now ira_object_t.
(struct ira_object_iterator): New.
(ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
(ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
to conflict_vec_p. All uses changed.
(ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
Changed to take into account that conflicts are now tracked for
objects.
* ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
Args changed to accept ira_object_t. All uses changed.
(allocnos_conflict_p): New static function.
(collected_conflict_objects): Renamed from collected_allocno_objects;
now a vector of ira_object_t. All uses changed.
(build_conflict_bit_table): Changed to take into account that
conflicts are now tracked for objects.
(process_regs_for_copy, propagate_copies, build_allocno_conflicts)
(print_allocno_conflicts, ira_build_conflicts): Likewise.
* ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
setup_allocno_left_conflicts_size, allocno_reload_assign,
fast_allocation): Likewise.
* ira-lives.c (make_hard_regno_born, make_allocno_born)
process_single_reg_class_operands, process_bb_node_lives): Likewise.
* ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
Likewise.
* ira-build.c (ira_objects_num): New variable.
(ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
contains a vector of ira_object_t; all uses changed.
(ira_object_id_map_vec): Corresponding change.
(object_pool): New static variable.
(initiate_allocnos): Initialize it.
(finish_allocnos): Free it.
(ira_create_object, ira_create_allocno_object, create_allocno_objects):
New functions.
(ira_create_allocno): Don't set members that were removed.
(ira_set_allocno_cover_class): Don't change conflict hard regs.
(merge_hard_reg_conflicts): Changed to take into account that
conflicts are now tracked for objects.
(ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
allocate_conflict_bit_vec, ira_allocate_object_conflicts,
compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
setup_min_max_allocno_live_range_point, allocno_range_compare_func,