- 11 Aug, 2012 4 commits
-
-
* lto-cgraph.c (output_cgraph): Rename to ... (output_symtab): ... this one. Update for LTO_section_symtab_nodes. (input_cgraph): Rename to ... (input_symtab): ... this one. Update for LTO_section_symtab_nodes. * lto-streamer-out.c (create_output_block): Do not set section_type. (produce_asm): Likewise. (lto_output_toplevel_asms): Likewise. (produce_asm_for_decls): Likewise. (lto_output): Use output_symtab. * lto-section-in.c (lto_section_name): Update. * lto-section-out.c (lto_destroy_simple_output_block): Remove section_type. * lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool; rename LTO_section_cgraph to LTO_section_symtab_nodes. (struct lto_header): Remove section_type. * lto.c (read_cgraph_and_symbols): Use input_symtab. From-SVN: r190312
Jan Hubicka committed -
Fixes issue 16. From-SVN: r190310
Ian Lance Taylor committed -
* cgraph.h (vector types for symtab_node): Add. * ipa-reference.c (ipa_reference_write_optimization_summary): Update for new symtab encoder. (ipa_reference_read_optimization_summary): Likewise. * lto-cgraph.c (output_varpool): Remove. (input_cgraph_opt_summary): Take symtab nodes vector as argument. (LTO_cgraph_tags): Rename to ... (LTO_symtab_tags): ... this one; add LTO_symtab_variable. (lto_cgraph_encoder_new): Rename to ... (lto_symtab_encoder_new): ... this on. (lto_cgraph_encoder_encode): Rename to ... (lto_symtab_encoder_encode): ... this one. (lto_cgraph_encoder_delete): Rename to ... (lto_symtab_encoder_delete): ... this one. (lto_cgraph_encoder_deref): Rename to ... (lto_symtab_encoder_deref): ... this one. (lto_cgraph_encoder_encode_body_p): Rename to ... (lto_symtab_encoder_encode_body_p): ... this one. (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode, lto_varpool_encoder_lookup, lto_varpool_encoder_deref): Remove. (lto_varpool_encoder_encode_initializer_p): Rename to ... (lto_symtab_encoder_encode_initializer_p): ... this one. (lto_set_varpool_encoder_encode_initializer): Rename to ... (lto_set_symtab_encoder_encode_initializer): ... this one. (lto_output_edge): Update. (lto_output_node): Update. (lto_output_varpool_node): Update; stream out LTO_symtab_variable tag. (lto_output_ref): Drop varpool_encoder; update. (add_node_to): Update. (add_references): Update. (output_outgoing_cgraph_edges): Update. (output_refs): Update. (compute_ltrans_boundary): Update. (output_cgraph): Update; output varpools too. (input_overwrite_node): Update. (output_varpool): Remove. (input_node): Update. (input_ref): Update. (input_edge): Update. (input_cgraph_1): Update; input varpool too; unify fixup code. (input_varpool_1): Remove. (input_refs): Update. (input_cgraph): Update. (output_node_opt_summary): Update. (input_cgraph_opt_section): Update. (input_cgraph_opt_summary): Update. * ipa-pure-const.c (pure_const_write_summary): Update. (pure_const_read_summary): Update. * lto-streamer-out.c (lto_write_tree): Update. (lto_output): Likewise. (produce_symtab): Update. (produce_asm_for_decls): Update. * ipa-inline-analysis.c (inline_read_section): Update. (inline_write_summary): Update. * ipa-prop.c (ipa_write_node_info): Update. (ipa_prop_read_section): Update. * lto-streamer.h (lto_cgraph_encoder_d): Rename to ... (lto_symtab_encoder_d): ... this one; add initializer. (lto_cgraph_encoder_t): Rename to ... (lto_symtab_encoder_t): ... this one. (lto_cgraph_encoder_size): Rename to ... (lto_symtab_encoder_size): ... this one. (lto_varpool_encoder_d): ... remove. (lto_varpool_encoder_t): Remove. (lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder add symtab_node_encoder. (lto_file_decl_data): Likewise. (lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup, lto_cgraph_encoder_new, lto_cgraph_encoder_encode, lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref, lto_varpool_encoder_lookup, lto_varpool_encoder_new, lto_varpool_encoder_encode, lto_varpool_encoder_delete, lto_varpool_encoder_encode_initializer_p): Remove. (lto_symtab_encoder_deref, lto_symtab_encoder_lookup, lto_symtab_encoder_t, lto_symtab_encoder_encode, lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p, lto_symtab_encoder_encode_initializer_p): New. From-SVN: r190309
Jan Hubicka committed -
From-SVN: r190308
GCC Administrator committed
-
- 10 Aug, 2012 21 commits
-
-
* config/i386/i386.md (isa): Add fma and fma4. (enabled): Handle fma and fma4. * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>. (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>. (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>. (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>. (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>. (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>. From-SVN: r190305
Uros Bizjak committed -
*fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns. From-SVN: r190304
Uros Bizjak committed -
* gcc.dg/torture/vector-shuffle1.c (f): Pass vectors indirectly to avoid warnings. (main): Adjust caller. From-SVN: r190302
Jakub Jelinek committed -
* config/i386/i386.md (simple LEA peephole2s): Add zero-extend variants of PLUS and MULT simple LEA patterns. Disable PLUS patterns for TARGET_OPT_AGU. From-SVN: r190301
Uros Bizjak committed -
2012-08-10 Richard Guenther <rguenther@suse.de> * Makefile.in (OBJS): Remove matrix-reorg.o. (matrix-reorg.o): Remove dependence rule. (GTFILES): Remove matrix-reorg.c. * matrix-reorg.c: Remove. * passes.c (init_optimization_passes): Do not schedule pass_ipa_matrix_reorg. * tree-pass.h (pass_ipa_matrix_reorg): Remove. * common.opt (fipa-matrix-reorg): Stub out. * doc/invoke.texi (fipa-matrix-reorg): Remove documentation. * gcc.dg/matrix/*.c: Adjust and move ... * gcc.dg/torture/: ... here. * gcc.dg/matrix: Remove directory. From-SVN: r190298
Richard Guenther committed -
2012-08-10 Richard Guenther <rguenther@suse.de> PR middle-end/54219 * fold-const.c (fold_ternary_loc): Do not reverse the mask when canonicalizing it when folding VEC_PERM_EXPR. * gcc.dg/torture/vector-shuffle1.c: New testcase. From-SVN: r190297
Richard Guenther committed -
gcc: 2012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR middle-end/54211 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace): Use cand_type to determine whether pointer arithmetic will be generated. gcc/testsuite: 2012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR middle-end/54211 * gcc.dg/tree-ssa/pr54211.c: New test. From-SVN: r190294
Bill Schmidt committed -
gcc: 2012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * doc/sourcebuild.texi: Document long_neq_int effective target. testsuite: 2012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * lib/target-supports.exp (check_effective_target_long_neq_int): New. * gcc.dg/tree-ssa/slsr-30.c: Check for long_neq_int effective target. From-SVN: r190293
Bill Schmidt committed -
2012-08-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/54109 * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_array_index): Remove. (forward_propagate_addr_expr_1): Adjust. * gcc.dg/torture/pr54109.c: New testcase. * gcc.dg/tree-ssa/forwprop-1.c: Adjust. * gcc.dg/tree-ssa/forwprop-2.c: Likewise. From-SVN: r190291
Richard Guenther committed -
tree-cfg.c (dump_function_to_file): Make sure to dump anonymous SSA names when there are no local decls. 2012-08-10 Richard Guenther <rguenther@suse.de> * tree-cfg.c (dump_function_to_file): Make sure to dump anonymous SSA names when there are no local decls. From-SVN: r190290
Richard Guenther committed -
* tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve. * tree-into-ssa.c (get_ssa_name_ann): Likewise. (mark_phi_for_rewrite): Likewise. (compute_global_livein): Use VEC_reserve outside the innermost loop and VEC_quick_push instead of VEC_safe_push in that loop. (update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing of new_ssa_names and old_ssa_names. Allocate phis_to_rewrite to the correct initial size. From-SVN: r190289
Steven Bosscher committed -
2012-08-10 Richard Guenther <rguenther@suse.de> * tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove. (need_creation): Remove. (get_representative_for): Use anonymous named SSA names. (create_expression_by_pieces): Likewise. (insert_into_preds_of_block): Likewise. (init_pre): Do not init removed vars. (fini_pre): Do not free need_creation. * tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous SSA names. * tree-ssa-loop-manip.c (create_iv): Likewise. * value-prof.c (gimple_divmod_fixed_value): Likewise. (gimple_mod_pow2): Likewise. (gimple_mod_subtract): Likewise. (gimple_ic): Likewise. (gimple_stringop_fixed_value): Likewise. * tree-ssa-phiopt.c (condstoretemp): Remove. (tree_ssa_phiopt_worker): Use anonymous named SSA names. (conditional_replacement): Likewise. (abs_replacement): Likewise. (cond_store_replacement): Likewise. (cond_if_else_store_replacement_1): Likewise. * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise. (rewrite_bittest): Likewise. * tree-ssa-reassoc.c (build_and_add_sum): Get type from callers and build anonymous SSA names. (undistribute_ops_list): Adjust. (eliminate_redundant_comparison): Use anonymous SSA names. (rewrite_expr_tree_parallel): Likewise. (get_reassoc_pow_ssa_name): Remove. (attempt_builtin_powi): Adjust. (reassociate_bb): Likewise. * tree-ssa-strlen.c (get_string_length): Use anonymous SSA names. * tree-switch-conversion.c (emit_case_bit_tests): Likewise. (build_arrays): Likewise. * tree-tailcall.c (adjust_return_value_with_ops): Likewise. (create_tailcall_accumulator): Likewise. * tree-vect-generic.c (expand_vector_divmod): Likewise. * tree-profile.c (gcov_type_tmp_var): Remove. (gimple_init_edge_profiler): Do not initialize it and use anonymous SSA names. (gimple_gen_ic_profiler): Likewise. (tree_profiling): Adjust. * tree-sra.c (build_ref_for_offset): Use anonymous SSA names. * tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise. (powi_as_mults_1): Likewise. (powi_as_mults): Likewise. (build_and_insert_call): Adjust. (build_and_insert_binop): Likewise. (build_and_insert_ref): Likewise. (build_and_insert_cast): Likewise. (gimple_expand_builtin_pow): Likewise. (gimple_expand_builtin_cabs): Likewise. (execute_optimize_bswap): Use anonymous SSA names. (convert_mult_to_widen): Likewise. (convert_plusminus_to_widen): Likewise. * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. * tree-ssa-propagate.c (update_call_from_tree): Likewise. * tree-if-conv.c (ifc_temp_var): Likewise. * tree-loop-distribution.c (generate_memset_builtin): Likewise. * tree-parloops.c (take_address_of): Likewise. * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. (vect_permute_load_chain): Likewise. * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise. (vect_handle_widen_op_by_const): Likewise. (vect_operation_fits_smaller_type): Likewise. (vect_recog_over_widening_pattern): Likewise. * tree-vect-stmts.c (vect_init_vector): Likewise. * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise. (simplify_float_conversion_using_ranges): Likewise. From-SVN: r190288
Richard Guenther committed -
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix builtin target mask of __builtin_ia32_rdseed_di_step. From-SVN: r190287
Michael Zolotukhin committed -
2012-08-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/54027 * tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR and LSHIFT_EXPR handling, force -fwrapv for the multiplication used to handle LSHIFT_EXPR with a constant. * gcc.dg/torture/pr54027.c: New testcase. From-SVN: r190286
Richard Guenther committed -
2012-08-10 Richard Guenther <rguenther@suse.de> * tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE is recorded as var. (SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME or its SSA_NAME_VAR. (SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter. * tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous SSA names by passing a type instead of a variable decl. (release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER. (copy_ssa_name_fn): Handle anonymous SSA names. (replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER. * tree-flow-inline.h (make_temp_ssa_name): New inline function. * tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER, dump SSA names without a name as <anon>. * cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are going to expand a decl. (gimple_expand_cfg): Assign all SSA names of a partition the decl we created for its leader. * tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs. (verify_ssa_name): Handle anonymous SSA names. (verify_def): Likewise. * tree-predcom.c (eliminate_temp_copies): Likewise. * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. * tree-ssa-live.c (var_map_base_init): Compute conflicts for anonymous SSA names with the same type. (mark_all_vars_used_1): Handle anonymous SSA names. (verify_live_on_entry): Likewise. * tree-ssa-coalesce.c (abnormal_corrupt): Remove. (create_outofssa_var_map): Adjust with respect to conflicts we compute for anonymous SSA names. Do not restrict abnormal coalescing. (coalesce_partitions): Do not restrict abnormal coalescing. Assert we only ever coalesce variables we computed conflicts for. * tree-ssa-ter.c (process_replaceable): Do not restrict TER of anonymous names. * expr.c (expand_expr_real_1): Handle anonymous SSA names expanded from IVOPTs by creating a raw REG here. * tree-cfg.c (replace_ssa_name): Handle anonymous SSA names. (dump_function_to_file): Dump anonymous SSA names alongside with their types in the variable list. (verify_gimple_return): Guard use of SSA_NAME_VAR. * tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol. (rewrite_into_ssa): Make SSA names anonymous. * tree-ssa-structalias.c (alias_get_name): Rewrite. * tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous SSA names. (warn_uninitialized_phi): Likewise. * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding anonymous SSA names to the expander. (determine_iv_cost): Anonymous SSA names are artificial. * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle anonymous SSA names. * lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR or if NULL, the type of the SSA name. * tree-inline.c (remap_ssa_name): Handle anonymous SSA names, remap names as anonymous where appropriate. (insert_init_stmt): Pass SSA names down to insert_init_debug_bind. * tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust according to what we create conflicts for in out-of-SSA coalescing. * tree-parloops.c (separate_decls_in_region_name): Handle anonymous SSA names. (add_field_for_name): Likewise. * tree.c (get_name): Handle SSA names. * tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for SSA_NAMEs. * tree-vect-loop-manip.c (adjust_debug_stmts): Use virtual_operand_p. * tree-sra.c (create_access_replacement): Give up generating a DECL_DEBUG_EXPR for SSA names in the memory reference. (replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR. * tree-complex.c (get_component_ssa_name): Handle anonymous SSA names. (set_component_ssa_name): Likewise. * tree-ssa-sccvn.c (visit_reference_op_load): Likewise. * tree-object-size.c (collect_object_sizes_for): Handle uninitialized SSA names properly. * ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of SSA_NAME_VAR. * ipa-split.c (test_nonssa_use): Likewise. (consider_split): Likewise. (mark_nonssa_use): Likewise. c-family/ * c-pretty-print.c (pp_c_expression): Handle anonymous SSA names. cp/ * error.c (dump_expr): Likewise. * g++.dg/plugin/selfassign.c: Adjust. * gcc.dg/plugin/selfassign.c: Likewise. * gcc.dg/strlenopt-11.c: Likewise. * gcc.dg/strlenopt-13.c: Likewise. * gcc.dg/no-strict-overflow-4.c: Likewise. * gcc.dg/strict-overflow-4.c: Likewise. * gcc.dg/tree-ssa/alias-11.c: Likewise. * gcc.dg/tree-ssa/alias-6.c: Likewise. * gcc.dg/tree-ssa/asm-3.c: Likewise. * gcc.dg/tree-ssa/pr18908.c: Likewise. * gcc.dg/tree-ssa/pr19431.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-21.c: Likewise. * gcc.dg/tree-ssa/phi-opt-10.c: Likewise. * gcc.dg/tree-ssa/phi-opt-7.c: Likewise. * gcc.dg/tree-ssa/slsr-27.c: Likewise. * gcc.dg/tree-ssa/slsr-28.c: Likewise. * gcc.dg/tree-ssa/slsr-29.c: Likewise. * gcc.dg/pr46309.c: Likewise. * gcc.dg/tree-ssa/loop-5.c: Likewise. From-SVN: r190284
Richard Guenther committed -
PR middle-end/54146 * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY parameter; honnor it. * ipa-inline.c (recursive_inlining): Update call of inline_call. (inline_small_functions): Likewise. (ipa_inline): Likewise. (inline_always_inline_functions): Likewise. (early_inline_small_functions): Likewise. (flatten_function): Do separate update of summary info. * ipa-inline.h (inline_update_overall_summary): Declare. (inline_call): Update. * ipa-inline-analysis.c (inline_merge_summary): Break out updating code to ... (inline_update_overall_summary): Likewise. From-SVN: r190283
Jan Hubicka committed -
Fixes Go issue 3921 for gccgo. From Shenghou Ma. From-SVN: r190282
Ian Lance Taylor committed -
* config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET. From-SVN: r190281
Richard Henderson committed -
* config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before performing the compare for the restart loop. From-SVN: r190280
Richard Henderson committed -
* config/rl78/rl78.c (rl78_alloc_physical_registers): Check for SET before extracting SET_SRC. (rl78_remove_unused_sets): Check for REG before extractnig REGNO. From-SVN: r190278
DJ Delorie committed -
From-SVN: r190277
GCC Administrator committed
-
- 09 Aug, 2012 15 commits
-
-
PR target/54089 * config/sh/sh-protos (shift_insns_rtx): Delete. (sh_ashlsi_clobbers_t_reg_p): Add. * config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns, ext_shift_amounts): Merge arrays of ints to array of structs. Adapt usage of arrays throughout the file. (shift_insns_rtx): Delete unused function. (sh_ashlsi_clobbers_t_reg_p): New function. * config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the final shift sequence will clobber T_REG. (ashlsi3_n): Split only if the final shift sequence will not clobber T_REG. (ashlsi3_n_clobbers_t): New insn_and_split. From-SVN: r190273
Oleg Endo committed -
* acinclude.m4: Update references to final C++11 standard. * include/bits/shared_ptr.h: Likewise. * include/bits/shared_ptr_base.h: Likewise. * include/bits/unique_ptr.h: Likewise. * include/std/chrono: Likewise. * include/std/thread: Likewise. From-SVN: r190271
Jonathan Wakely committed -
calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE instead of looking at sbitmap n_bits member directly. * calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE instead of looking at sbitmap n_bits member directly. * gcse.c (hoist_code): Likewise. * sched-rgn.c (split_edges): Likewise. * tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping, update_ssa): Likewise. From-SVN: r190268
Steven Bosscher committed -
i386.h (LIMIT_RELOAD_CLASS): Return preferred single unit register class for classes that contain registers... * config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred single unit register class for classes that contain registers form multiple units. (REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS, INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes. testsuite/ChangeLog: * gcc.c-torture/compile/20120727-1.c (dg-options): Add -mfpmath=387 for x86 targets. * gcc.c-torture/compile/20120727-2.c: New test. From-SVN: r190261
Uros Bizjak committed -
2012-08-09 Martin Jambor <mjambor@suse.cz> * cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to offset, updated all users. New field agg_contents. * ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR. (ipa_pass_through_data): New field agg_preserved. (ipa_ancestor_jf_data): Likewise. (ipa_member_ptr_cst): Removed. (ipa_agg_jf_item): New type. (ipa_agg_jump_function): Likewise. (ipa_jump_func): New field agg. Removed field member_cst. (ipa_get_jf_pass_through_agg_preserved): New function. (ipa_get_jf_ancestor_agg_preserved): Likewise. (ipa_get_jf_member_ptr_pfn): Removed. (ipa_find_agg_cst_for_param): Declare. (ipa_load_from_parm_agg): Likewise. * ipa-prop.c (param_analysis_info): Fields modified and visited_statements rename to parm_modified and parm_visited_statements respectively, added fields ref_modified, ref_visited_statements, pt_modified and pt_visited_statements. (ipa_print_node_jump_functions_for_edge): Do not dump const member functions. Dump agg_preserved flags and aggregate jump functions. (ipa_set_jf_simple_pass_through): Set also agg_preserved. (ipa_set_ancestor_jf): Likewise. (ipa_set_jf_arith_pass_through): Clear agg_preserved. (ipa_set_jf_member_ptr_cst): Removed. (is_parm_modified_before_stmt): Logic reversed, renamed to parm_preserved_before_stmt_p. Cache visited bitmap only for naked DECL parameters. All callers updated. (load_from_unmodified_param): Allow NULL parms_ainfo. (parm_ref_data_preserved_p): New function. (parm_ref_data_pass_through_p): Likewise. (ipa_load_from_parm_agg_1): Likewise. (ipa_load_from_parm_agg): Likewise. (compute_complex_assign_jump_func): Check if aggregate contents are preserved. (compute_complex_ancestor_jump_func): Likewise. (compute_scalar_jump_functions): Removed. (type_like_member_ptr_p): Also check field position are known and sane. (compute_pass_through_member_ptrs): Removed. (determine_cst_member_ptr): Likewise. (ipa_known_agg_contents_list): New type. (determine_known_aggregate_parts): New function. (compute_cst_member_ptr_arguments): Removed. (ipa_compute_jump_functions_for_edge): Compute all kinds of jump functions (scalar, aggregate and member pointer). (ipa_get_member_ptr_load_param): Incorporate into ipa_get_stmt_member_ptr_load_param, also pass back an offset. (ipa_note_param_call): Clear agg_contents. (ipa_analyze_indirect_call_uses): Also look for simple pointers loaded from aggregates. In such cases, store offset of the called field. (ipa_analyze_node): Initialize new fields of param_analysis_info. (update_jump_functions_after_inlining): Handle aggregate contents. (ipa_find_agg_cst_for_param): New function. (try_make_edge_direct_simple_call): Handle called aggregate values. (update_indirect_edges_after_inlining): Make sure aggregate preserving jump functions comply with type compatibility requirements. (ipa_edge_duplication_hook): Copy also aggregate jump functions. (ipa_write_jump_function): Stream agg_preserved flags and aggregate jump functions. Do not stream member pointer constant jump functions. (ipa_read_jump_function): Likewise. (ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info fields. (ipa_read_indirect_edge_info): Likewise. * testsuite/gcc.dg/ipa/iinline-4.c: New test. * testsuite/gcc.dg/ipa/iinline-5.c: Likewise. * testsuite/gcc.dg/ipa/iinline-6.c: Likewise. * testsuite/gcc.dg/ipa/iinline-7.c: Likewise. * testsuite/gcc.dg/lto/20120723_0.c: Likewise. * testsuite/gcc.dg/lto/20120723_1.c: Likewise. From-SVN: r190260
Martin Jambor committed -
PR target/39423 * config/sh/predicates.md (mem_index_disp_operand): New predicate. * config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new mem_index_disp_operand predicate. PR target/39423 * gcc.target/sh/pr39423-1.c: New. From-SVN: r190259
Oleg Endo committed -
PR target/51244 * config/sh/sh.md: Add negc extu sequence peephole. (movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate. (*movrt_negc): New insn. * config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to gen_movnegt. * config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t, sh_emit_compare_and_branch, sh_emit_compare_and_set): Use get_t_reg_rtx. (sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt. PR target/51244 * gcc.target/sh/pr51244-5: New. * gcc.target/sh/pr51244-6: New. From-SVN: r190258
Oleg Endo committed -
PR target/50751 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg): Use arith_reg_operand predicate instead of register_operand. * config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept only mem, simplify. From-SVN: r190257
Oleg Endo committed -
* config/alpha/alpha.c (alpha_pad_noreturn): Rename to ... (alpha_pad_function_end): ... this. Also insert NOP between sibling call and GP load. (alpha_reorg): Update call to alpha_pad_function_end. Expand comment. From-SVN: r190255
Uros Bizjak committed -
Changelog * config/i386/adxintrin.h: Remove guarding __ADX__ check. * config/i386/x86intrin.h: Likewise. * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove OPTION_MASK_ISA_ADX from needed options for __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64. (ix86_expand_builtin): Use add<mode>3_carry in expanding of IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64. testsuite/Changelog * gcc.target/i386/adx-addxcarry32-3.c: New. * gcc.target/i386/adx-addxcarry64-3.c: New. From-SVN: r190254
Michael Zolotukhin committed -
PR rtl-optimization/53701 * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment. Process not only expr's vinsns but all old vinsns from expr's history of changes. (update_and_record_unavailable_insns): Clarify comment. * gcc.dg/pr53701.c: New test. From-SVN: r190253
Andrey Belevantsev committed -
* reload.c (find_valid_class_1): New static function. (push_reload): Use it when reloading a SYMBOL_REG as the inner of a subreg. Keep better track of needed classes for the secondary memory case. * config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to GENERAL_REGS. * reload1.c (replaced_subreg): New static function. (gen_reload): Use it when deciding whether to use secondary memory. * gcc.c-torture/compile/20120727-1.c: New test. From-SVN: r190252
Bernd Schmidt committed -
re PR fortran/54199 (Superfluous diagnostic "is also the name of an intrinsic" for internal procedures) 2012-08-09 Tobias Burnus <burnus@net-b.de> PR fortran/54199 * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning for internal procedures. 2012-08-09 Tobias Burnus <burnus@net-b.de> PR fortran/54199 * gfortran.dg/intrinsic_shadow_4.f90: New. From-SVN: r190251
Tobias Burnus committed -
2012-08-09 Richard Guenther <rguenther@suse.de> * tree.h (SSA_VAR_P): Simplify. * tree-ssanames.c (make_ssa_name_fn): Strengthen assert. * fold-const.c (fold_comparison): Check for default def first before checking for PARM_DECL. * tree-complex.c (get_component_ssa_name): Likewise. * tree-inline.c (remap_ssa_name): Likewise. * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise. * tree-ssa-structalias.c (get_fi_for_callee): Likewise. (find_what_p_points_to): Likewise. * tree-ssa-operands.c (add_stmt_operand): Simplify. From-SVN: r190250
Richard Guenther committed -
This is a fix to prepare the xmlj_io.c file of gnu classpath to a coming API change in libxml2. Basically, we were previously accessing fields inside the xmlOutputBuffer struct of libxml2. In a coming version of libxml2, that won't be possible anymore. Client code will have to use accessor functions instead. For the gory details, there is an interestin note of Daniel Veillard (author of libxml2) at https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00007.html. This patch defines too accessor macros that, depending on the version of libxml2 we are using will either access the fields of xmlOutputBuffer directly, or use the new accessor function. Tested on x86_64-unknown-linux-gnu against trunk. libjava/classpath/ * native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT) (GET_XML_OUTPUT_BUFFER_SIZE): New macros. (xmljOutputWriteCallback): Use them. From-SVN: r190249
Dodji Seketeli committed
-