aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-09-17compare-elim.c (find_comparison_dom_walker): New classTrevor Saunders15-517/+424
* compare-elim.c (find_comparison_dom_walker): New class (find_comparisons_in_bb): Rename to find_comparison_dom_walker::before_dom_children (find_comparisons): Adjust * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and adjust. (init_walk_dominator_tree, fini_walk_dominator_tree): Remove * domwalk.h (dom_walk_data): Convert it To a class dom_walker. (init_walk_dominator_tree): Remove declaration. (fini_walk_dominator_tree): Remove declaration. * fwprop.c (single_def_use_dom_walker): New class (single_def_use_enter_block): Convert to single_def_use_dom_walker::before_dom_children. (single_def_use_leave_block): Convert to single_def_use_dom_walker::after_dom_children. (build_single_def_use_links): Adjust. * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New class. (find_candidates_in_block): Convert to find_candidates_dom_walker::before_dom_children. (execute_strength_reduction): Adjust. * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove. (sese_dom_walker): New class. (sese_dom_walker::sese_dom_walker): New constructor. (sese_dom_walker::~sese_dom_walker): New destructor. (build_sese_conditions_before): Convert to sese_dom_walker::before_dom_children. (build_sese_conditions_after): Convert to sese_dom_walker::after_dom_children. (build_poly_scop): Adjust * tree-into-ssa.c (rewrite_dom_walker): New class (rewrite_enter_block): Convert to rewrite_dom_walker::before_dom_children. (rewrite_leave_block): Convert to rewrite_dom_walker::after_dom_children. (rewrite_update_dom_walker): New class. (rewrite_update_enter_block): Convert to rewrite_update_dom_walker::before_dom_children. (rewrite_update_leave_block): Convert to rewrite_update_dom_walker::after_dom_children. (rewrite_blocks, rewrite_into_ssa): Adjust. (mark_def_dom_walker): New class. (mark_def_dom_walker::mark_def_dom_walker): New constructor. (mark_def_dom_walker::~mark_def_dom_walker): New destructor. (mark_def_sites_blocks): Convert to mark_def_dom_walker::before_dom_children. (mark_def_site_blocks): Remove. * tree-ssa-dom.c (dom_opt_dom_walker): New class. (tree_ssa_dominator_optimize): Adjust. (dom_thread_across_edge): Convert to method dom_opt_dom_walker::thread_across_edge. (dom_opt_enter_block): Convert to member function dom_opt_dom_walker::before_dom_children. (dom_opt_leave_block): Convert to member function dom_opt_dom_walker::after_dom_children. * tree-ssa-dse.c (dse_dom_walker): New class. (dse_enter_block): Convert to member function dse_dom_walker::before_dom_children. (tree_ssa_dse): Adjust. * tree-ssa-loop-im.c (invariantness_dom_walker): New class. (determine_invariantness_stmt): Convert to method invariantness_dom_walker::before_dom_children. (determine_invariantness): Remove (move_computations_dom_walker): New class. (move_computations_stmt): Convert to method move_computations_dom_walker::before_dom_children. (move_computations, tree_ssa_lim): Adjust. * tree-ssa-phiopt.c (nontrapping_dom_walker): new class (nt_init_block): Make method notrappping_dom_walker::before_dom_children. (nt_fini_block): Make method nontrapping_dom_walker::after_dom_children. (get_non_trapping): Adjust. * tree-ssa-pre.c (eliminate_dom_walker): New class. (eliminate_bb): Make method eliminate_dom_walker::before_dom_children. (eliminate_leave_block): Make method. eliminate_dom_walker::after_dom_children. (eliminate): Adjust * tree-ssa-strlen.c (strlen_dom_walker): New class. (strlen_enter_block): Make method strlen_dom_walker::before_dom_children. (strlen_leave_block): Make method strlen_dom_walker::after_dom_children. (tree_ssa_strlen): Adjust. * tree-ssa-uncprop.c (uncprop_dom_walker): New class. (tree_ssa_uncprop): Adjust. (uncprop_leave_block): Make method uncprop_dom_walker::after_dom_children. (uncprop_leave_block): Make method uncprop_dom_walker::before_dom_children. From-SVN: r202679
2013-09-18arm.c (thumb1_reorg): Search for flag setting insn before branch in same ↵Bin Cheng2-12/+32
basic block. * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before branch in same basic block. Check both src and dest of the move insn. From-SVN: r202678
2013-09-17rl78-real.md (bf): New pattern.Nick Clifton4-6/+72
* config/rl78/rl78-real.md (bf): New pattern. (bt): New pattern. * config/rl78/rl78.c (rl78_print_operand_1): Handle %B. (rl78_print_operand): Do not put a # before a %B. * config/rl78/rl78.opt: Tweak doc strings. From-SVN: r202676
2013-09-18Daily bump.GCC Administrator1-1/+1
From-SVN: r202675
2013-09-17reflect: Fix bug calling method on indirect value.Ian Lance Taylor1-1/+7
The gccgo-specific iword function was checking v.kind, but for a method value that is always Func. Fix to check v.typ.Kind() instead. From-SVN: r202670
2013-09-17constraints.md (Wcv): Allow up to $r31.DJ Delorie5-5/+27
* config/rl78/constraints.md (Wcv): Allow up to $r31. * config/rl78/rl78.c (rl78_asm_file_start: Likewise. (rl78_option_override): Likewise, if -mallregs. (is_virtual_register): Likewise. * config/rl78/rl78.h (reg_class): Extend VREGS to $r31. (REGNO_OK_FOR_BASE_P): Likewise. * config/rl78/rl78.opt (-mallregs): New. From-SVN: r202669
2013-09-17rl78.c (need_to_save): Change return type to bool.Nick Clifton2-20/+40
* config/rl78/rl78.c (need_to_save): Change return type to bool. For interrupt functions: save all call clobbered registers if the interrupt handler is not a leaf function. (rl78_expand_prologue): Always recompute the frame information. For interrupt functions: only select bank 0 if one of the bank 0 registers is going to be psuhed. From-SVN: r202667
2013-09-17constraints.md: For each W* constraint...DJ Delorie5-17/+151
* config/rl78/constraints.md: For each W* constraint, rename to C* and create a W* constraint that checks for an optional ES: prefix pattern also. * config/rl78/rl78.md (UNS_ES_ADDR): New. (es_addr): New. Used to wrap far addresses. * config/rl78/rl78-protos.h (rl78_es_addr): New. (rl78_es_base): New. * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec" wrapped far addresses. (rl78_print_operand_1): Unwrap far addresses before processing. (rl78_lo16): Wrap far addresses in unspecs. (rl78_es_addr): New. (rl78_es_base): New. (insn_ok_now): Check for not-yet-wrapped far addresses. (transcode_memory_rtx): Properly re-wrap far addresses. From-SVN: r202666
2013-09-17t-rtems: Add leon3 multilibs.Sebastian Huber2-2/+6
2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de> * config/sparc/t-rtems: Add leon3 multilibs. From-SVN: r202664
2013-09-17tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug when checking ↵Cong Hou4-1/+86
the dot production pattern. 2013-09-17 Cong Hou <congh@google.com> * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug when checking the dot production pattern. The type of rhs operand of multiply is now checked correctly. * gcc.dg/vect/vect-reduc-dot-s16c.c: Add a test case with dot product on two arrays with short and int types. This should not be recognized as a dot product pattern. From-SVN: r202663
2013-09-17re PR c++/58435 (Applying a type transformation to a list: const ignored)Paolo Carlini4-2/+56
/cp 2013-09-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58435 * pt.c (tsubst, [BOUND_TEMPLATE_TEMPLATE_PARM]): Take into account the cp_type_quals (r) too. /testsuite 2013-09-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58435 * g++.dg/cpp0x/alias-decl-38.C: New. From-SVN: r202662
2013-09-17re PR ipa/58332 (error: inlined_to pointer is set but no predecessors found)Jan Hubicka6-2/+44
PR middle-end/58332 * gcc.c-torture/compile/pr58332.c: New testcase. * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code. * ipa-inline.c (can_inline_edge_p): Do not downgrade FUNCTION_NOT_OPTIMIZED. * ipa-inline-analysis.c (compute_inline_parameters): Function not optimized is not inlinable unless it is alwaysinline. (inline_analyze_function): Force calls in not optimized function not inlinable. From-SVN: r202661
2013-09-17pr58387.c: New test.Jeff Law6-35/+119
* gcc.c-torture/execute/pr58387.c: New test. * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate edge implied equivalences into successor phis. * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into here from tree-ssa-threadedge.c. (mark_threaded_blocks): When threading through a joiner, if both successors of the joiner's clone reach the same block, verify the PHI arguments are equal. If not, cancel the jump threading request. * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into tree-ssa-threadupdate.c (thread_across_edge): Don't check PHI argument equality when threading through joiner block here. From-SVN: r202660
2013-09-17tree-flow.h (ssa_undefined_value_p): Remove prototype.Andrew MacLeod5-239/+254
2013-09-17 Andrew MacLeod <amacleod@redhat.com> * tree-flow.h (ssa_undefined_value_p): Remove prototype. * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here. (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized, make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c. * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c (has_undefined_value_p): New. Pass dependant parts of ssa_undefined_value_p. (uninit_undefined_value_p): Use has_undefined_value_p. (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized, make_pass_early_warn_uninitialized): Move from tree-ssa.c * tree-ssa.h: Adjust prototypes From-SVN: r202659
2013-09-17re PR ipa/58329 (ld: Invalid symbol type for plabel ↵Jan Hubicka1-0/+4
(.libs/libstdc++.lax/libc++11convenience.a/system_error.o, std::error_category::default_error_condition(int) const [clone .localalias.9]).) PR middle-end/58329 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias to return NULL. * ipa.c (function_and_variable_visibility): Likewise. * ipa-profile.c (ipa_profile): Likewise. From-SVN: r202658
2013-09-17re PR ipa/58329 (ld: Invalid symbol type for plabel ↵Jan Hubicka4-3/+23
(.libs/libstdc++.lax/libc++11convenience.a/system_error.o, std::error_category::default_error_condition(int) const [clone .localalias.9]).) PR middle-end/58329 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias to return NULL. * ipa.c (function_and_variable_visibility): Likewise. * ipa-profile.c (ipa_profile): Likewise. From-SVN: r202657
2013-09-17re PR ipa/58398 (gcc.dg/attr-ifunc-4.c runfail regression after r202111)Bernd Edlinger2-0/+8
2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de> PR ipa/58398 * cgraph.c (cgraph_function_body_availability): Check for ifunc attribute, and don't inline the resolver in this case. From-SVN: r202655
2013-09-17coverage.c (get_coverage_counts): Add missing newline.Teresa Johnson2-1/+5
2013-09-17 Teresa Johnson <tejohnson@google.com> * coverage.c (get_coverage_counts): Add missing newline. From-SVN: r202654
2013-09-17re PR tree-optimization/58088 (ICE in gcc.c)Kyrylo Tkachov4-17/+63
[gcc/] 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR tree-optimization/58088 * fold-const.c (mask_with_trailing_zeros): New function. (fold_binary_loc): Make sure we don't recurse infinitely when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2. Use mask_with_trailing_zeros where appropriate. [gcc/testsuite] 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR tree-optimization/58088 * gcc.c-torture/compile/pr58088.c: New test. From-SVN: r202652
2013-09-17target-supports.exp (check_effective_target_trampolines): Add MSP430 to the ↵Nick Clifton2-3/+20
list of targets that do not support trampolines. * lib/target-supports.exp (check_effective_target_trampolines): Add MSP430 to the list of targets that do not support trampolines. (check_profiling_available): Add MSP430 to the list of targets that do not support profiling. (check_effective_target_tls_runtime): Add MSP430 to the list of targets that do not support TLS. From-SVN: r202651
2013-09-17re PR libstdc++/58338 (Add noexcept to functions with a narrow contract)Marc Glisse8-45/+73
2013-09-17 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/58338 * include/bits/stl_vector.h (vector::vector(), vector::vector(const allocator_type&)): Merge. (_Vector_impl::_Vector_impl(_Tp_alloc_type const&), _Vector_impl::_Vector_impl(_Tp_alloc_type&&), _Vector_impl::_M_swap_data, _Vector_base::_Vector_base(const allocator_type&), _Vector_base::_Vector_base(allocator_type&&), _Vector_base::_Vector_base(_Vector_base&&), _Vector_base::~_Vector_base, vector::vector(const allocator_type&), vector::operator[], vector::operator[] const, vector::front, vector::front const, vector::back, vector::back const, vector::pop_back, vector::_M_erase_at_end): Mark as noexcept. * include/debug/vector (vector::vector(const _Allocator&), vector::operator[], vector::operator[] const, vector::front, vector::front const, vector::back, vector::back const, vector::pop_back, _M_requires_reallocation, _M_update_guaranteed_capacity, _M_invalidate_after_nth): Mark as noexcept. * include/profile/vector (vector::vector(const _Allocator&), vector::operator[], vector::operator[] const, vector::front, vector::front const, vector::back, vector::back const): Mark as noexcept. (vector::vector(vector&&, const _Allocator&)): Remove wrong noexcept. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Adjust line number. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Likewise. From-SVN: r202650
2013-09-17i386.c (distance_agu_use_in_bb): Proper initialization of 'prev' var to get ↵Yuri Rumyantsev2-1/+16
better distance estimation. * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization of 'prev' var to get better distance estimation. From-SVN: r202649
2013-09-17gthr-win32.c: CreateSemaphoreW instead of CreateSemaphoreA.Jacek Caban3-4/+10
2013-09-17 Jacek Caban <jacek@codeweavers.com> * config/i386/gthr-win32.c: CreateSemaphoreW instead of CreateSemaphoreA. * config/i386/gthr-win32.h: Likewise. From-SVN: r202648
2013-09-17tree-inline.h (struct copy_body_data): Add transform_parameter.Eric Botcazou7-32/+172
* tree-inline.h (struct copy_body_data): Add transform_parameter. * tree-inline.c (is_parameter_of): New predicate. (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if a parameter has been remapped. (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF. (optimize_inline_calls): Initialize transform_parameter. (copy_gimple_seq_and_replace_locals): Likewise. (tree_function_versioning): Likewise. (maybe_inline_call_in_expr): Likewise. From-SVN: r202647
2013-09-17* gcc.dg/tree-ssa/ldist-22.c (main): Return zero.Andreas Schwab2-1/+5
From-SVN: r202646
2013-09-17msp430-protos.h: Add prototypes for new functions.Nick Clifton7-23/+459
* config/msp430/msp430-protos.h: Add prototypes for new functions. * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for interrupt handlers. (is_attr_func): New function. (msp430_is_interrupt_func): New function. (is_naked_func): New function. (is_reentrant_func): New function. (is_critical_func): New function. (msp430_start_function): Add annotations for function attributes. (msp430_attr): New function. (msp430_attribute_table): New. (msp430_function_section): New function. (TARGET_ASM_FUNCTION_SECTION): Define. (msp430_builtin): New enum. (msp430_init_builtins): New function. (msp430_builtin_devl): New function. (msp430_expand_builtin): New function. (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTINS): Define. (TARGET_BUILTIN_DECL): Define. (msp430_expand_prologue): Add support for naked, interrupt, critical and reentrant functions. (msp430_expand_epilogue): Likewise. (msp430_print_operand): Handle 'O' character. * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define NO_TRAMPOLINES. * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT, UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR. (pushm): Use a 'n' rather than an 'i' constraint. (msp_return): Add generation of the interrupt return instruction. (disable_interrupts): New pattern. (enable_interrupts): New pattern. (push_intr_state): New pattern. (pop_intr_state): New pattern. (bic_SR): New pattern. (bis_SR): New pattern. * doc/extend.texi: Document MSP430 function attributes and builtin functions. From-SVN: r202645
2013-09-17re PR tree-optimization/58432 (ICE: in insert_value_copy_on_edge, at ↵Richard Biener4-0/+39
tree-outof-ssa.c:233) 2013-09-17 Richard Biener <rguenther@suse.de> PR tree-optimization/58432 * tree-loop-distribution.c (tree_loop_distribution): Also scan PHIs for outside loop uses and seed a partition from them. * gcc.dg/pr58432.c: New testcase. From-SVN: r202644
2013-09-17gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.Bin Cheng4-4/+98
* gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New. (restructure_reference): Call backtrace_base_for_ref. * gcc.dg/tree-ssa/slsr-39.c: New test. From-SVN: r202643
2013-09-17re PR target/57589 (Linux powerpc -mcpu=native returns pointer to variable ↵Alan Modra2-1/+6
on stack in driver-rs6000.c) PR target/57589 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch. From-SVN: r202642
2013-09-17Daily bump.GCC Administrator1-1/+1
From-SVN: r202641
2013-09-16* config/rl78/vregs.h: Add G10 register definitions.DJ Delorie2-0/+25
From-SVN: r202638
2013-09-16rl78.c (rl78_asm_file_start): Specify alternate vregs location for RL78/G10.DJ Delorie12-67/+111
* config/rl78/rl78.c (rl78_asm_file_start): Specify alternate vregs location for RL78/G10. (rl78_expand_prologue): Avoid SEL on G10. (rl78_expand_epilogue): Likewise. (rl78_peep_movhi_p): Can't move a constant to memory in HImode. * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define __RL78_G10__ when appropriate. (ASM_SPEC): Pass -mg10 along to the assembler. * config/rl78/rl78.md (sel_rb): Disable for G10. * config/rl78/rl78.opt: Add -mg10 option. * config/rl78/t-rl78: Add -mg10 multilib. * config/rl78/lib2mul.c: Enable for RL78/G10. * config/rl78/lib2div.c: Likewise. * config/rl78/lshrsi3.S: Use vregs.h. * config/rl78/cmpsi2.S: Likewise. * config/rl78/trampoline.S: Likewise. * config/rl78/mulsi2.S: Likewise. Disable for RL78/G10. From-SVN: r202637
2013-09-16Introduce -ftree-loop-vectorize optionXinliang David Li11-32/+76
From-SVN: r202636
2013-09-16pr58419.c: New test.Jeff Law3-0/+73
* gcc.c-torture/execute/pr58419.c: New test. * gcc.c-torture/execute/pr58431.c: New test. From-SVN: r202635
2013-09-16tm.texi.in (Cond Exec Macros): Remove node.Andreas Schwab3-20/+6
* doc/tm.texi.in (Cond Exec Macros): Remove node. (Condition Code): Don't reference it. * doc/tm.texi: Regenerate. From-SVN: r202634
2013-09-16re PR fortran/58356 (ICE with finalization and type extension)Tobias Burnus4-0/+34
2013-09-16 Tobias Burnus <burnus@net-b.de> PR fortran/58356 * class.c (generate_finalization_wrapper): Init proc_tree if not yet resolved. 2013-09-16 Tobias Burnus <burnus@net-b.de> PR fortran/58356 * gfortran.dg/finalize_19.f90: New. From-SVN: r202633
2013-09-16alpha.c: Include tree-ssanames.h.Jan-Benedict Glaw2-2/+3
* config/alpha.c: Include tree-ssanames.h. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r202631
2013-09-16re PR middle-end/58418 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in ↵Vladimir Makarov4-35/+76
32-bit mode)) 2013-09-16 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/58418 * lra-constraints.c (undo_optional_reloads): Consider all optional reload even if it did not get a hard reg. 2013-09-16 Vladimir Makarov <vmakarov@redhat.com> * gcc.target/i386/pr58418.c: New. From-SVN: r202630
2013-09-16dumpfile.c (dump_loc): Remove newline emission.Teresa Johnson11-391/+667
2013-09-16 Teresa Johnson <tejohnson@google.com> * dumpfile.c (dump_loc): Remove newline emission. * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline emission to dump_printf_loc calls where missing. (vect_mark_for_runtime_alias_test): Ditto. (vect_analyze_data_ref_dependence): Ditto. (vect_analyze_data_ref_dependences): Ditto. (vect_slp_analyze_data_ref_dependence): Ditto. (vect_slp_analyze_data_ref_dependences): Ditto. (vect_compute_data_ref_alignment): Ditto. (vect_update_misalignment_for_peel): Ditto. (vect_verify_datarefs_alignment): Ditto. (vector_alignment_reachable_p): Ditto. (vect_get_data_access_cost): Ditto. (vect_enhance_data_refs_alignment): Ditto. (vect_find_same_alignment_drs): Ditto. (vect_analyze_data_refs_alignment): Ditto. (vect_analyze_group_access): Ditto. (vect_analyze_data_ref_access): Ditto. (vect_analyze_data_ref_accesses): Ditto. (vect_prune_runtime_alias_test_list): Ditto. (vect_analyze_data_refs): Ditto. (vect_create_addr_base_for_vector_ref): Ditto. (vect_create_data_ref_ptr): Ditto. (vect_grouped_store_supported): Ditto. (vect_grouped_load_supported): Ditto. * value-prof.c (check_counter): Ditto. (check_ic_target): Ditto. * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto. (vect_recog_widen_mult_pattern): Ditto. (vect_recog_widen_sum_pattern): Ditto. (vect_recog_over_widening_pattern): Ditto. (vect_recog_widen_shift_pattern): Ditto. (vect_recog_rotate_pattern): Ditto. (vect_recog_vector_vector_shift_pattern): Ditto. (vect_recog_divmod_pattern): Ditto. (vect_recog_mixed_size_cond_pattern): Ditto. (vect_recog_bool_pattern): Ditto. (vect_pattern_recog_1): Ditto. (vect_pattern_recog): Ditto. * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto. (vect_is_simple_iv_evolution): Ditto. (vect_analyze_scalar_cycles_1): Ditto. (vect_get_loop_niters): Ditto. (vect_analyze_loop_1): Ditto. (vect_analyze_loop_form): Ditto. (vect_analyze_loop_operations): Ditto. (vect_analyze_loop_2): Ditto. (vect_analyze_loop): Ditto. (report_vect_op): Ditto. (vect_is_slp_reduction): Ditto. (vect_is_simple_reduction_1): Ditto. (vect_get_known_peeling_cost): Ditto. (vect_estimate_min_profitable_iters): Ditto. (vect_model_reduction_cost): Ditto. (vect_model_induction_cost): Ditto. (get_initial_def_for_induction): Ditto. (vect_create_epilog_for_reduction): Ditto. (vectorizable_reduction): Ditto. (vectorizable_induction): Ditto. (vectorizable_live_operation): Ditto. (vect_loop_kill_debug_uses): Ditto. (vect_transform_loop): Ditto. * tree-vect-stmts.c (vect_mark_relevant): Ditto. (vect_stmt_relevant_p): Ditto. (process_use): Ditto. (vect_mark_stmts_to_be_vectorized): Ditto. (vect_model_simple_cost): Ditto. (vect_model_promotion_demotion_cost): Ditto. (vect_model_store_cost): Ditto. (vect_get_store_cost): Ditto. (vect_model_load_cost): Ditto. (vect_get_load_cost): Ditto. (vect_init_vector_1): Ditto. (vect_get_vec_def_for_operand): Ditto. (vect_finish_stmt_generation): Ditto. (vectorizable_call): Ditto. (vectorizable_conversion): Ditto. (vectorizable_assignment): Ditto. (vectorizable_shift): Ditto. (vectorizable_operation): Ditto. (vectorizable_store): Ditto. (vectorizable_load): Ditto. (vectorizable_condition): Ditto. (vect_analyze_stmt): Ditto. (vect_transform_stmt): Ditto. (vect_is_simple_use): Ditto. * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto. (vect_can_advance_ivs_p): Ditto. (vect_update_ivs_after_vectorizer): Ditto. (vect_do_peeling_for_loop_bound): Ditto. (vect_gen_niters_for_prolog_loop): Ditto. (vect_update_inits_of_drs): Ditto. (vect_create_cond_for_alias_checks): Ditto. * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto. (vect_build_slp_tree_1): Ditto. (vect_supported_load_permutation_p): Ditto. (vect_analyze_slp_instance): Ditto. (vect_analyze_slp): Ditto. (vect_make_slp_decision): Ditto. (vect_detect_hybrid_slp): Ditto. (vect_bb_vectorization_profitable_p): Ditto. (vect_slp_analyze_bb_1): Ditto. (vect_update_slp_costs_according_to_vf): Ditto. (vect_get_mask_element): Ditto. (vect_transform_slp_perm_load): Ditto. (vect_schedule_slp_instance): Ditto. (vect_schedule_slp): Ditto. (vect_slp_transform_bb): Ditto. * profile.c (read_profile_edge_counts): Ditto. (compute_branch_probabilities): Ditto. * coverage.c (get_coverage_counts): Ditto. From-SVN: r202628
2013-09-16tree-core.h: Add missing comment lines from refactoring of tree.h.Diego Novillo2-2/+22
* tree-core.h: Add missing comment lines from refactoring of tree.h. From-SVN: r202627
2013-09-16gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept abstract ↵Jan Hubicka2-4/+24
functions; for static functions check the presence of body. * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept abstract functions; for static functions check the presence of body. From-SVN: r202626
2013-09-16[AArch64] Improve arm_neon.h vml<as>_lane handling.James Greenhalgh10-561/+1137
gcc/ * config/aarch64/aarch64-simd-builtins.def (fma): New. * config/aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): New. (aarch64_mla_elt_<vswap_width_name><mode>): Likewise. (aarch64_mls_elt<mode>): Likewise. (aarch64_mls_elt_<vswap_width_name><mode>): Likewise. (aarch64_fma4_elt<mode>): Likewise. (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise. (aarch64_fma4_elt_to_128v2df): Likewise. (aarch64_fma4_elt_to_64df): Likewise. (fnma<mode>4): Likewise. (aarch64_fnma4_elt<mode>): Likewise. (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. (aarch64_fnma4_elt_to_128v2df): Likewise. (aarch64_fnma4_elt_to_64df): Likewise. * config/aarch64/iterators.md (VDQSF): New. * config/aarch64/arm_neon.h (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation. (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise. gcc/testsuite/ * gcc.target/aarch64/fmla-intrinsic.c: New. * gcc.target/aarch64/mla-intrinsic.c: Likewise. * gcc.target/aarch64/fmls-intrinsic.c: Likewise. * gcc.target/aarch64/mls-intrinsic.c: Likewise. From-SVN: r202625
2013-09-16[AArch64] Implement vmul<q>_lane<q>_<fsu><16,32,64> intrinsics in CJames Greenhalgh7-287/+446
gcc/ * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New. (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. (aarch64_mul3_elt_to_128df): Likewise. (aarch64_mul3_elt_to_64v2df): Likewise. * config/aarch64/iterators.md (VEL): Also handle DFmode. (VMUL): New. (VMUL_CHANGE_NLANES) Likewise. (h_con): Likewise. (f): Likewise. * config/aarch64/arm_neon.h (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation. gcc/testsuite/ * gcc.target/aarch64/mul_intrinsic_1.c: New. * gcc.target/aarch64/fmul_intrinsic_1.c: Likewise. From-SVN: r202624
2013-09-16[AArch64] Fix parameters to vcvtx_highJames Greenhalgh2-2/+7
* config/aarch64/arm_neon.h (vcvtx_high_f32_f64): Fix parameters. From-SVN: r202623
2013-09-16alpha.c: Include tree-ssa.h.Jan-Benedict Glaw2-17/+24
* config/alpha.c: Include tree-ssa.h. From-SVN: r202621
2013-09-16tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.Richard Biener4-73/+141
2013-09-16 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd. (dot_rdg_1): Handle control_dd. (create_edge_for_control_dependence): New function. (create_rdg_edges): Add control dependences if asked for. (build_rdg): Likewise. (generate_loops_for_partition): If there are not necessary control stmts remove all their dependencies. (collect_condition_stmts, rdg_flag_loop_exits): Remove. (distribute_loop): Pass on control dependences. (tree_loop_distribution): Compute control dependences and remove restriction on number of loop nodes. * gcc.dg/tree-ssa/ldist-22.c: New testcase. From-SVN: r202619
2013-09-16Change log update for 202610-202612.Adam Butcher2-0/+59
From-SVN: r202615
2013-09-16ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early for internal ↵Jakub Jelinek2-0/+7
calls. * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early for internal calls. From-SVN: r202614
2013-09-16cse.c (try_const_anchors): Punt on CC modes.Richard Sandiford2-0/+9
gcc/ * cse.c (try_const_anchors): Punt on CC modes. From-SVN: r202613
2013-09-16Support using 'auto' in a function parameter list to introduce an implicit ↵Adam Butcher8-72/+353
template parameter. gcc/cp/ * cp-tree.h (type_uses_auto_or_concept): Declare. (is_auto_or_concept): Declare. * decl.c (grokdeclarator): Allow 'auto' parameters in lambdas with -std=gnu++1y or -std=c++1y or, as a GNU extension, in plain functions. * type-utils.h: New header defining ... (find_type_usage): ... this new function based on pt.c (type_uses_auto) for searching a type tree given a predicate. * pt.c (type_uses_auto): Reimplement via type-utils.h (find_type_usage). (is_auto_or_concept): New function. (type_uses_auto_or_concept): New function. * parser.h (struct cp_parser): Add fully_implicit_function_template_p. * parser.c (cp_parser_new): Initialize fully_implicit_function_template_p. (cp_parser_new): Initialize fully_implicit_function_template_p. (cp_parser_lambda_expression): Copy and restore value of fully_implicit_function_template_p as per other parser fields. (cp_parser_parameter_declaration_list): Count generic parameters and call ... (add_implicit_template_parms): ... this new function to synthesize them with help from type-utils.h (find_type_usage), ... (tree_type_is_auto_or_concept): ... this new static function and ... (make_generic_type_name): ... this new static function. (cp_parser_direct_declarator): Account for implicit template parameters. (cp_parser_lambda_declarator_opt): Finish fully implicit template if necessary by calling ... (finish_fully_implicit_template): ... this new function. (cp_parser_init_declarator): Likewise. (cp_parser_function_definition_after_declarator): Likewise. (cp_parser_member_declaration): Likewise. * Make-lang.in (cp/pt.o): Add dependency on type-utils.h. (cp/parser.o): Likewise. gcc/testsuite/ g++.dg/cpp0x/auto9.C: Downgrade two previously expected errors (now interpreted as implicit templates) to be expected pedwarns instead. From-SVN: r202612