summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* 2011-04-14 Richard Guenther <rguenther@suse.de>rguenth2011-04-141-0/+14
| | | | | | | | | | | | | | | | | | | * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data): Remove. (dse_initialize_block_local_data, dse_leave_block, record_voperand_set, get_stmt_uid): Likewise. (dse_possible_dead_store_p): Allow any kind of killing stmt. (dse_optimize_stmt): Remove voperand set handling code. Simplify and improve to handle any kind of killing stmt. (dse_record_phi): Remove. (dse_enter_block): Simplify. (tree_ssa_dse): Likewise. * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins. * gcc.dg/tree-ssa/ssa-dse-14.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172431 138bc75d-0d04-0410-961f-82ee72b054a4
* * cgraph.c (dump_cgraph_node): Do not dump inline summaries.hubicka2011-04-141-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cgraph.h (struct inline_summary): Move to ipa-inline.h (cgraph_local_info): Remove inline_summary. * ipa-cp.c: Include ipa-inline.h. (ipcp_cloning_candidate_p, ipcp_estimate_growth, ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary accesor. * lto-cgraph.c (lto_output_node): Do not stream inline summary. (input_overwrite_node): Do not set inline summary. (input_node): Do not stream inline summary. * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries. (cgraph_decide_inlining_incrementally): Do not try to estimate overall growth; we do not have inline parameters computed for that anyway. (cgraph_early_inlining): After inlining compute call_stmt_sizes. * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h (inline_summary_t): New type and VECtor. (debug_inline_summary, dump_inline_summaries): Declare. (inline_summary): Use VOCtor. (estimate_edge_growth): Kill hack computing call stmt size directly. * lto-section-in.c (lto_section_name): Add inline section. * ipa-inline-analysis.c: Include lto-streamer.h (node_removal_hook_holder, node_duplication_hook_holder): New holders (inline_node_removal_hook, inline_node_duplication_hook): New functions. (inline_summary_vec): Define. (inline_summary_alloc, dump_inline_summary, debug_inline_summary, dump_inline_summaries): New functions. (estimate_function_body_sizes): Properly compute size/time of outgoing calls. (compute_inline_parameters): Alloc inline_summary; do not compute size/time of incomming calls. (estimate_edge_time): Avoid missing time summary hack. (inline_read_summary): Read inline summary info. (inline_write_summary): Write inline summary info. (inline_free_summary): Free all hooks and inline summary vector. * lto-streamer.h: Add LTO_section_inline_summary section. * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies. * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating. * lto.c: Include ipa-inline.h (add_cgraph_node_to_partition, undo_partition): Use inline_summary accessor. (ipa_node_duplication_hook): Fix declaration. * Make-lang.in (lto.o): Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172430 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-141-0/+20
| | | | | | | | | | | | | | | | | | | | | | | * tree-vectorizer.h (vect_strided_store_supported): Add a HOST_WIDE_INT argument. (vect_strided_load_supported): Likewise. (vect_permute_store_chain): Return void. (vect_transform_strided_load): Likewise. (vect_permute_load_chain): Delete. * tree-vect-data-refs.c (vect_strided_store_supported): Take a count argument. Check that the count is a power of two. (vect_strided_load_supported): Likewise. (vect_permute_store_chain): Return void. Update after above changes. Assert that the access is supported. (vect_permute_load_chain): Likewise. (vect_transform_strided_load): Return void. * tree-vect-stmts.c (vectorizable_store): Update calls after above interface changes. (vectorizable_load): Likewise. (vect_analyze_stmt): Don't check for strided powers of two here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172428 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-14 Richard Guenther <rguenther@suse.de>rguenth2011-04-141-0/+10
| | | | | | | | | | | | | PR tree-optimization/48590 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and BUILT_IN_STACK_SAVE. * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172427 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/:nicola2011-04-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> * c-parser.c (c_parser_objc_class_declaration): Updated call to objc_declare_class. In gcc/c-family/: 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> * stub-objc.c (objc_declare_class): Updated argument name. In gcc/cp/: 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> * parser.c (cp_parser_objc_class_declaration): Updated for change in objc_declare_class(). In gcc/objc/: 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> * objc-act.c (objc_declare_class): Changed to take a single identifier as argument instead of a tree list. This means callers don't have to build temporary tree lists to call this function. (synth_module_prologue): Updated calls to objc_declare_class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172425 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-14 Richard Guenther <rguenther@suse.de>rguenth2011-04-141-0/+8
| | | | | | | | | | | | | | * tree.h (get_object_alignment_1): Declare. * builtins.c (get_object_alignment_1): Split out worker from ... (get_object_alignment): ... here. * fold-const.c (get_pointer_modulus_and_residue): Use get_object_alignment_1. * gcc.dg/fold-bitand-4.c: Move ... * c-c++-common/fold-bitand-4.c: ... here. Adjust slightly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172424 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-141-0/+10
| | | | | | | | | | | | | * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra type parameter. * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type parameter. Generalise code to handle arrays as well as vectors. (vect_setup_realignment): Update accordingly. * tree-vect-stmts.c (vectorizable_store): Likewise. (vectorizable_load): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172423 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-141-0/+5
| | | | | | | | * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain within the per-copy loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172422 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix email attribution in last commits.rsandifo2011-04-141-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172421 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-141-0/+5
| | | | | | | | * tree-vect-stmts.c (vectorizable_load): Print the number of copies in the dump file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172420 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-141-0/+5
| | | | | | | | * doc/options.texi (Negative): Explicitly mention that the Negative chain must be circular. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172419 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ada/froydnj2011-04-141-0/+5
| | | | | | | | | | | | | | | | | | | | | * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. gcc/ * function.h (block_chainon): Declare. * function.c (block_chainon): Define. gcc/cp/ * decl.c (poplevel): Use block_chainon. gcc/fortran// * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon. gcc/java/ * decl.c (poplevel): Use BLOCK_CHAIN and block_chainon. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172418 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):gjl2011-04-141-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New Includes (avr_init_builtins, avr_expand_builtin, avr_expand_delay_cycles, avr_expand_unop_builtin, avr_expand_binop_builtin ): New functions. (avr_builtin_id): New enum (struct avr_builtin_description): New struct (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins. (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU, UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR, UNSPECV_DELAY_CYCLES): new enumeration values (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS ("*rotlqi3_4"): rename insn to "rotlqi3_4" ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3", "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls", "fmulsu"): New insns * config/avr/avr-c.c: fix line endings (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP, __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR, __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP, __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL, __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU. * doc/extend.texi (AVR Built-in Functions): New node (Target Builtins): Add documentation of AVR built-in functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172416 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/44643gjl2011-04-141-0/+6
| | | | | | | | | * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY alone. Error if non-const data has attribute progmem. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172415 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (struct tree_constructor): Include tree_typed instead offroydnj2011-04-141-0/+7
| | | | | | | | | tree_common. * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as TS_TYPED instead of TS_COMMON. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172409 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.uros2011-04-131-2/+19
| | | | | | | | | | | | | | | | | | | | (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3. (sse2_psadbw): Merge with *avx_psadbw. (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3. (ssse3_phadddv4si3): Merge with *avx_phadddv4si3. (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3. (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3. (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3. (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3. (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128. (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3. (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3. (ssse3_psign<mode>3): Merge with *avx_psign<mode>3. (ssse3_palignrti): Merge with *avx_palignrti. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172403 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.froydnj2011-04-131-0/+11
| | | | | | | | | | | | | * tree-ssanames.c (fini_ssanames): VEC_free it. (make_ssa_name_fn): Update for VECness of free_ssanames. (release_ssa_name, release_dead_ssa_names): Likewise. * tree.h (struct tree_ssa_name): Include tree_typed instead of tree_common. * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as TS_TYPED instead of TS_COMMON. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172393 138bc75d-0d04-0410-961f-82ee72b054a4
* * postreload-gcse.c (gcse_after_reload_main): Add calls tofroydnj2011-04-131-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | statistics_counter_event. * tree-ssa-copyrename.c (stats): Define. (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to statistics_counter_event. * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define. (bswap_stats, widen_mul_stats): Define. (insert_reciprocals): Increment rdivs_inserted. (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment rfuncs_inserted. Add calls to statistics_counter_event. (execute_cse_sincos_1): Increment inserted. (execute_cse_sincos): Zeroize sincos_stats. Add call to statistics_counter_event. (execute_optimize_bswap): Zeroize bswap_stats. Increment fields of bswap_stats. Add calls to statistics_counter_event. (convert_mult_to_widen): Increment widen_mults_inserted. (convert_plusminus_to_widen): Increment maccs_inserted. (convert_mult_to_fma): Increment fmas_inserted. (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add calls to statistics_counter_event. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172392 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>vmakarov2011-04-131-0/+6
| | | | | | | | | | PR rtl-optimization/48455 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of `temp_costs->mem_cost'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172389 138bc75d-0d04-0410-961f-82ee72b054a4
* * ipa-inline.h: New file.hubicka2011-04-131-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ipa-inline-analysis.c: New file. Broken out of ... * ipa-inline.c: ... this file; update toplevel comment; include ipa-inline.h (inline_summary): Move to ipa-inline.h (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to ipa-inline-analysis.c. (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining; move to ipa-inline-analysis.c (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename to estimate_edge_growth. (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c; rename to estimate_size_after_inlining. (cgraph_mark_inline_edge): Update for new naming convention. (cgraph_check_inline_limits): Likewise. (cgraph_edge_badness): Likewise. (cgraph_decide_recursive_inlining): Likewise. (cgraph_decide_inlining_of_small_functions): Likewise. (cgraph_decide_inlining_incrementally): Likewise. (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c. (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c. (estimate_function_body_sizes): Move to ipa-inline-analysis.c. (compute_inline_parameters): Likewise. (compute_inline_parameters_for_current): Likewise. (pass_inline_parameters): Likewise. (inline_indirect_intraprocedural_analysis): Likewise. (analyze_function): Rename to inline_analyze_function; likewise. (add_new_function): Move to ipa-inline-analysis.c. (inline_generate_summary): Likewise. (inline_read_summary): Likewise. (inline_write_summary): Likewise. * Makefile.in (ipa-inline-analysis.c): New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172388 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.ro2011-04-131-0/+5
| | | | | | | * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172387 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (struct tree_int_cst, struct real_value): Include tree_typedfroydnj2011-04-131-0/+10
| | | | | | | | | | | | instead of tree_common. (struct tree_fixed_cst, struct tree_string, struct tree_complex): Likewise. * tree.c (initialize_tree_contains_struct): Mark such nodes as being TS_TYPED rather than TS_COMMON. * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172386 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix ChangeLog entry for PR target/45263gjl2011-04-131-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172385 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/45263gjl2011-04-131-0/+6
| | | | | | | | | * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Save R20 around calls of __tablejump_elpm__ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172384 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/48591jakub2011-04-131-0/+7
| | | | | | | | | | | | | * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is NULL. (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL. * gcc.dg/gomp/pr48591.c: New test. * testsuite/libgomp.c/pr48591.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172379 138bc75d-0d04-0410-961f-82ee72b054a4
* * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.bernds2011-04-131-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps. (cfi_vec): New typedef. (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index. (cie_cfi_vec): New static variable. (cie_cfi_head): Delete. (add_cfi): Accept a cfi_vec * as first argument. All callers and declaration changed. Use vector rather than list operations. (new_cfi): Don't initialize the dw_cfi_next field. (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector rather than list operations. (lookup_cfa): Use vector rather than list operations. (output_cfis): New argument upto. Accept a cfi_vec rather than a dw_cfi_ref list head as argument. All callers changed. Iterate over the vector using upto as a maximum index. (output_all_cfis): New static function. (output_fde): Use vector rather than list operations. Use the new upto argument for output_cfis rather than manipulating a list. (dwarf2out_begin_prologue): Change initializations to match new struct members. (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index from the vector length rather than searching for the end of a list. Use output_all_cfis. (convert_cfa_to_fb_loc_list): Use vector rather than list operations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172369 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rx/rx.md (movmemsi): Do not use this pattern whennickc2011-04-131-0/+5
| | | | | | | volatile pointers are involved. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172368 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (pinsrbits): Remove.uros2011-04-131-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | (sse2_packsswb): Merge with *avx_packsswb. (sse2_packssdw): Merge with *avx_packssdw. (sse2_packuswb): Merge with *avx_packuswb. (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi. (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi. (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi. (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi. (vec_interleave_highv4si): Merge with *avx_interleave_highv4si. (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si. (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>. (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>. (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>. (*sse4_1_pinsrq): Merge with *avx_pinsrq. (sse2_loadld): Merge with *avx_loadld. (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx. (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx. (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx. (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx. (vec_concatv2di): Merge with *vec_concatv2di_avx. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172365 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ada/froydnj2011-04-131-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. * gcc-interface/misc.c (gnat_init_ts): New function. (LANG_HOOKS_INIT_TS): Define. gcc/ * c-decl.c (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. * print-tree.c (print_node): Likewise. * tree-inline.c (copy_tree_r): Likewise. * c-lang.c (LANG_HOOKS_INIT_TS): Define. * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED instead of TS_COMMON. * lto-streamer-out.c (lto_output_tree_pointers): Likewise. * tree.c (initialize_tree_contains_struct): Handle TS_TYPED. (copy_node_stat): Zero TREE_CHAIN only if necessary. (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these... (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL): ...and these... (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these... * tree.h: ...here. (TREE_CHAIN): Check for a TS_COMMON structure. (TREE_TYPE): Check for a TS_TYPED structure. gcc/c-family/ * c-common.h (c_common_init_ts): Declare. * c-common.c (c_common_init_ts): Define. gcc/cp/ * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move tree_contains_struct initialization to... * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_* macros. * cp-objcp-common.h (cp_common_init_ts): Declare. * cp-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. gcc/fortran/ * f95-lang.c (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. gcc/go/ * go-lang.c (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. gcc/java/ * java-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. gcc/lto/ * lto-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN. * lto.c (lto_fixup_common): Likewise. gcc/objc/ * objc-lang.c (objc_init_ts): Move code for this function... * objc-act.c (objc_common_init_ts): ...here. Define. * objc-act.h (objc_common_init_ts): Declare. gcc/objcp/ * objcp-lang.c (objcxx_init_ts): Call objc_common_init_ts and cp_common_init_ts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172359 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.c (call_ABI_of_interest): Callpthaugen2011-04-121-0/+5
| | | | | | | | cgraph_get_create_node instead of cgraph_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172345 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/:nicola2011-04-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * c-parser.c (c_parser_initelt): Updated call to objc_build_message_expr. (c_parser_postfix_expression): Likewise. In gcc/c-family/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * c-objc.h (objc_build_message_expr): Updated prototype. * stub-objc.c (objc_build_message_expr): Likewise. In gcc/objc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * objc-act.c (objc_build_message_expr): Accept two arguments instead of one so that callers can simply pass the arguments without having to create a temporary chain to hold them. In gcc/cp/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * parser.c (cp_parser_objc_message_expression): Updated call to objc_build_message_expr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172338 138bc75d-0d04-0410-961f-82ee72b054a4
* ChangeLog gcc/ktietz2011-04-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 2011-04-12 Kai Tietz <ktietz@redhat.com> * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add MASK_MS_BITFIELD_LAYOUT bit. ChangeLog gcc/testsuite 2011-04-12 Kai Tietz <ktietz@redhat.com> * g++.dg/ext/bitfield2.C: Add for i?86/x86_64-*-mingw* targets the additional -mno-ms-bitfields and -Wno-packed-bitfield-compat options. * g++.dg/ext/bitfield3.C: Likewise. * g++.dg/ext/bitfield4.C: Likewise. * g++.dg/ext/bitfield5.C: Likewise. * gcc.dg/bitfld-15.c: Likewise. * gcc.dg/bitfld-16.c: Likewise. * gcc.dg/bitfld-17.c: Likewise. * gcc.dg/bitfld-18.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172336 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (update_cfg_for_uncondjump): Instead of testing at_endjakub2011-04-121-0/+7
| | | | | | | | | assert it is always true. (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump moves. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172329 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/:nicola2011-04-121-0/+5
| | | | | | | | | | | | | | | | 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * c-parser.c (c_lex_one_token): Rewritten conditional used when compiling Objective-C to be more efficient. In gcc/objc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, avoid calling identifier_global_value() multiple times. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172327 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-12 Axel Freyn <axel-freyn@gmx.de>jsm282011-04-121-0/+5
| | | | | | | | * opts-common.c (decode_cmdline_options_to_array): Remove variable argv_copied. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172325 138bc75d-0d04-0410-961f-82ee72b054a4
* * recog.h, genoutput.c, optabs.c: Revert last patch.rsandifo2011-04-121-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172321 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix PR target/48090ramana2011-04-121-0/+5
| | | | | | | | | | | 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> PR target/48090 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172318 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-121-0/+8
| | | | | | | | | | | * recog.h (insn_operand_data): Add an "allows_mem" field. * genoutput.c (output_operand_data): Initialize it. * optabs.c (maybe_legitimize_operand_same_code): New function. (maybe_legitimize_operand): Use it when matching the original op->value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172316 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-121-0/+17
| | | | | | | | | | | | | | | | | | | | * genpreds.c (process_define_predicate): Move most processing to gensupport.c. Continue to validate the expression. * genrecog.c (did_you_mean_codes, compute_predicate_codes) (process_define_predicate): Move processing to gensupport.c. (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases. * gensupport.c (did_you_mean_codes): Moved from genrecog.c. (compute_predicate_codes): Moved from genrecog.c. Add lineno argument. (valid_predicate_name_p): New function, split out from old genpreds.c:process_define_predicate. (process_define_predicate): New function, combining code from old genpreds.c and genrecog.c functions. (process_rtx): Call it for DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172315 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-04-121-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the size of a '%A' memory reference. (T_DREG, T_QREG): New neon_builtin_type_bits. (arm_init_neon_builtins): Assert that the load and store operands are neon_struct_operands. (locate_neon_builtin_icode): Provide the neon_builtin_type_bits. (NEON_ARG_MEMORY): New builtin_arg. (neon_dereference_pointer): New function. (arm_expand_neon_args): Add a neon_builtin_type_bits argument. Handle NEON_ARG_MEMORY. (arm_expand_neon_builtin): Update after above interface changes. Use NEON_ARG_MEMORY for loads and stores. * config/arm/predicates.md (neon_struct_operand): New predicate. * config/arm/iterators.md (V_two_elem): Tweak formatting. (V_three_elem): Use BLKmode for accesses that have no associated mode. (V_four_elem): Tweak formatting. * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>) (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>) (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>) (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>) (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>) (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>) (neon_vst4<mode>): Replace pointer operand with a memory operand. Use %A in the output template. (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>) (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>) (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve the width of the memory access. Remove post-increment. * config/arm/neon-testgen.ml: Allow addresses to have an alignment. gcc/testsuite/ * gcc.target/arm/neon-vld3-1.c: New test. * gcc.target/arm/neon-vst3-1.c: New test. * gcc.target/arm/neon/v*.c: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172314 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/v850/v850.c (expand_prologue): Do not use the CALLTnickc2011-04-121-0/+7
| | | | | | | | | instruction for interrupt handlers if the target is the basic V850 architecture. (expand_epilogue): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172313 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/48549jakub2011-04-121-0/+8
| | | | | | | | | | | | * combine.c (propagate_for_debug): Also stop after BB_END of this_basic_block. Process LAST and just stop processing after it. (combine_instructions): If last_combined_insn has been deleted, set last_combined_insn to its PREV_INSN. * g++.dg/opt/pr48549.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172311 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-12 Richard Guenther <rguenther@suse.de>rguenth2011-04-121-0/+17
| | | | | | | | | | | | | | | | | | | | | | PR tree-optimization/46076 * gimple.h (struct gimple_statement_call): Add fntype field. (gimple_call_fntype): Adjust. (gimple_call_set_fntype): New function. * gimple.c (gimple_build_call_1): Set the call function type. * gimplify.c (gimplify_call_expr): Preserve the function type the frontend used for the call. (gimplify_modify_expr): Likewise. * lto-streamer-in.c (input_gimple_stmt): Input the call stmts function type. * lto-streamer-out.c (output_gimple_stmt): Output the call stmts function type. * tree-ssa.c (useless_type_conversion_p): Function pointer conversions are useless. * gcc.dg/tree-ssa/pr46076.c: Un-XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172310 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-12 Martin Jambor <mjambor@suse.cz>jamborm2011-04-121-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cgraph.h (cgraph_node): Remove function declaration. (cgraph_create_node): Declare. (cgraph_get_create_node): Likewise. * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1. Updated all callers. (cgraph_node): Renamed to cgraph_create_node, assert that a node for the decl does not already exist. Call cgraph_get_create_node instead of cgraph_node. (cgraph_get_create_node): New function. (cgraph_same_body_alias): Update comment. (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node, assert it does not return NULL. (cgraph_update_edges_for_call_stmt): Likewise. (cgraph_clone_edge): Likewise. (cgraph_create_virtual_clone): Likewise. (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node instead of cgraph_node. (cgraph_add_new_function): Call cgraph_create_node or cgraph_get_create_node instead of cgraph_node. * cgraphbuild.c (record_reference): Call cgraph_get_create_node instead of cgraph_node. (record_eh_tables): Likewise. (mark_address): Likewise. (mark_load): Likewise. (build_cgraph_edges): Call cgraph_get_create_node instead of cgraph_node. (rebuild_cgraph_edges): Likewise. * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node instead of cgraph_node. (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of cgraph_node. * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call cgraph_create_node instead of cgraph_node. * c-decl.c (finish_function): Call cgraph_get_create_node instead of cgraph_node. * lto-cgraph.c (input_node): Likewise. * lto-streamer-in.c (input_function): Likewise. * varasm.c (mark_decl_referenced): Likewise. (assemble_alias): Likewise. gcc/c-family/ * c-gimplify.c (c_genericize): Call cgraph_get_create_node instead of cgraph_node. gcc/cp/ * cp/class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node instead of cgraph_node. * cp/decl2.c (cxx_callgraph_analyze_expr): Likewise. (cp_write_global_declarations): Likewise. * cp/optimize.c (maybe_clone_body): Likewise. * cp/semantics.c (maybe_add_lambda_conv_op): Likewise. * cp/mangle.c (mangle_decl): Likewise. * cp/method.c (make_alias_for_thunk): Likewise. (use_thunk): Likewise. gcc/ada/ * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node instead of cgraph_node. gcc/fortran/ * trans-decl.c (gfc_generate_function_code): Call cgraph_get_create_node instead of cgraph_node. gcc/objc/ * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node instead of cgraph_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172307 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-12 Martin Jambor <mjambor@suse.cz>jamborm2011-04-121-0/+10
| | | | | | | | | | | | | | * tree-inline.c (tree_function_versioning): Call cgraph_get_node instead of cgraph_node and assert it does not return NULL. * lto-streamer-in.c (lto_read_body): Likewise. * omp-low.c (new_omp_context): Likewise. (create_task_copyfn): Likewise. * tree-emutls.c (lower_emutls_function_body): Likewise. * matrix-reorg.c (transform_allocation_sites): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172306 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c/48552jakub2011-04-121-0/+7
| | | | | | | | | | | | * c-typeck.c (build_asm_expr): Error out on attempts to use void type outputs or inputs for constraints that allow reg or don't allow memory. * gcc.dg/pr48552-1.c: New test. * gcc.dg/pr48552-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172298 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>cltang2011-04-121-0/+10
| | | | | | | | | | | | | | Richard Earnshaw <rearnsha@arm.com> PR target/48250 * config/arm/arm.c (arm_legitimize_reload_address): Update cases to use sign-magnitude offsets. Reject unsupported unaligned cases. Add detailed description in comments. * config/arm/arm.md (reload_outdf): Disable for ARM mode; change condition from TARGET_32BIT to TARGET_ARM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172297 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (struct typed_tree): New.froydnj2011-04-121-0/+13
| | | | | | | | | | | | | | | (struct tree_common): Include it instead of tree_base. (TREE_TYPE): Update for new location of type field. (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly. (DECL_USER_ALIGN, DECL_PACKED): Likewise. (union tree_node): Add typed field. * treestruct.def (TS_TYPED): New. * lto-streamer.c (check_handled_ts_structures): Handle it. * tree.c (MARK_TS_TYPED): New macro. (MARK_TS_COMMON): Call it instead of MARK_TS_BASE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172295 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfghooks.c (redirect_edge_and_branch_force): Localize variable.ebotcazou2011-04-111-1/+7
| | | | | | | | (force_nonfallthru): Do not alter the loop nest if no basic block was created. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172281 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (VI): New mode iterator.uros2011-04-111-9/+22
| | | | | | | | | | | | | | | | | | | | (SSEMODEI): Remove. (AVX256MODEI): Ditto. (AVXMODEF4P): Ditto. (avxvecpsmode): Ditto. (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator. (sse2_andnot<mode>3): New expander. (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator. (<any_logic:code><mode>3): Use VI mode iterator. (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3 and *avx_<any_logic:code><mode>3. Use VI mode iterator. (*andnottf3): Handle AVX three-operand constraints. (*<any_logic:code>tf3): Handle AVX three-operand constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172280 138bc75d-0d04-0410-961f-82ee72b054a4