1. 29 Apr, 2014 4 commits
  2. 28 Apr, 2014 18 commits
    • [AArch64] Improve vst4_lane intrinsics · ba081b77
      gcc/
      
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_types_storestruct_lane_qualifiers): New.
      	(TYPES_STORESTRUCT_LANE): Likewise.
      	* config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
      	(st3_lane): Likewise.
      	(st4_lane): Likewise.
      	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
      	(vec_store_lanesci_lane<mode>): Likewise.
      	(vec_store_lanesxi_lane<mode>): Likewise.
      	(aarch64_st2_lane<VQ:mode>): Likewise.
      	(aarch64_st3_lane<VQ:mode>): Likewise.
      	(aarch64_st4_lane<VQ:mode>): Likewise.
      	* config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
      	* config/aarch64/arm_neon.h
      	(__ST2_LANE_FUNC): Rewrite using builtins, update use points to
      	use new macro arguments.
      	(__ST3_LANE_FUNC): Likewise.
      	(__ST4_LANE_FUNC): Likewise.
      	* config/aarch64/iterators.md (V_TWO_ELEM): New.
      	(V_THREE_ELEM): Likewise.
      	(V_FOUR_ELEM): Likewise.
      
      From-SVN: r209880
      James Greenhalgh committed
    • Add a class hierarchy diagram to gimple.texi · 1bc6d43c
      2014-04-28  David Malcolm  <dmalcolm@redhat.com>
      
      	* doc/gimple.texi: Replace the description of the now-defunct
      	union gimple_statement_d with a diagram showing the
      	gimple_statement_base class hierarchy and its relationships to
      	the GSS_ and GIMPLE_ enums.
      
      From-SVN: r209879
      David Malcolm committed
    • [AArch64] Relax modes_tieable_p and cannot_change_mode_class · 97e1ad78
      gcc/
      
      	* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
      	* config/aarch64/aarch64.c
      	(aarch64_cannot_change_mode_class): Weaken conditions.
      	(aarch64_modes_tieable_p): New.
      	* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
      
      From-SVN: r209878
      James Greenhalgh committed
    • sync.md (AINT mode_iterator): Move definition. · bf245bf4
      	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
      	(loadsync_<mode>): Change mode.
      	(load_quadpti, store_quadpti): New.
      	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
      	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
      
      From-SVN: r209873
      Pat Haugen committed
    • Enable ada for aarch64-linux · bc76a4d5
              * gcc-interface/Makefile.in: Support aarch64-linux.
      
      From-SVN: r209871
      Richard Henderson committed
    • tree-sra.c (sra_modify_expr): Generate new memory accesses with same alias type… · 28151221
      tree-sra.c (sra_modify_expr): Generate new memory accesses with same alias type as the original statement.
      
      2014-04-28  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-sra.c (sra_modify_expr): Generate new memory accesses with
      	same alias type as the original statement.
      	(subreplacement_assignment_data): New type.
      	(handle_unscalarized_data_in_subtree): New type of parameter,
      	generate new memory accesses with same alias type as the original
      	statement.
      	(load_assign_lhs_subreplacements): Likewise.
      	(sra_modify_constructor_assign): Generate new memory accesses with
      	same alias type as the original statement.
      
      testsuite/
              * gcc.dg/tree-ssa/sra-14.c: New test.
      
      From-SVN: r209868
      Martin Jambor committed
    • exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, add… · 93582885
      exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, add 'Suffix' parameter and adjust comment.
      
      	* exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix,
      	add 'Suffix' parameter and adjust comment.
      	(Get_External_Name_With_Suffix): Delete.
      	* exp_dbug.adb (Get_External_Name_With_Suffix): Merge into...
      	(Get_External_Name): ...here.  Add 'False' default to Has_Suffix, add
      	'Suffix' parameter.
      	(Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name.
      	Call Get_External_Name instead of Get_External_Name_With_Suffix.
      	(Get_Secondary_DT_External_Name): Likewise.
      	* exp_cg.adb (Write_Call_Info): Likewise.
      	* exp_disp.adb (Export_DT): Likewise.
      	(Import_DT): Likewise.
      	* comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC
      	parameter with False default.
      	* comperr.adb (Compiler_Abort): Likewise.  Adjust accordingly.
      	* types.h (Fat_Pointer): Rename into...
      	(String_Pointer): ...this.  Add comment on interfacing rules.
      	* fe.h (Compiler_Abort): Adjust for above renaming.
      	(Error_Msg_N): Likewise.
      	(Error_Msg_NE): Likewise.
      	(Get_External_Name): Likewise.  Add third parameter.
      	(Get_External_Name_With_Suffix): Delete.
      	* gcc-interface/decl.c (STDCALL_PREFIX): Define.
      	(create_concat_name): Adjust call to Get_External_Name, remove call to
      	Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming.
      	* gcc-interface/trans.c (post_error): Likewise.
      	(post_error_ne): Likewise.
      	* gcc-interface/misc.c (internal_error_function): Likewise.
      
      From-SVN: r209866
      Eric Botcazou committed
    • tree-pass.h (TODO_verify_il): Define. · 9ba5fb43
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-pass.h (TODO_verify_il): Define.
      	(TODO_verify_all): Complete properly.
      	* passes.c (execute_function_todo): Move existing loop-closed
      	SSA verification under TODO_verify_il.
      	(execute_one_pass): Trigger TODO_verify_il at todo-after time.
      	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
      	Fix tree sharing issue.
      
      From-SVN: r209865
      Richard Biener committed
    • re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info) · 22869a37
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/60092
      	* builtins.def (DEF_C11_BUILTIN): Add.
      	(BUILT_IN_ALIGNED_ALLOC): Likewise.
      	* coretypes.h (enum function_class): Add function_c11_misc.
      	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
      	BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
      	(call_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	(mark_all_reaching_defs_necessary_1): Likewise.
      	(propagate_necessity): Likewise.
      	(eliminate_unnecessary_stmts): Likewise.
      	* tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
      
      	ada/
      	* gcc-interface/utils.c: Define flag_isoc11.
      
      	lto/
      	* lto-lang.c: Define flag_isoc11.
      
      	* gcc.dg/tree-ssa/alias-32.c: New testcase.
      	* gcc.dg/vect/pr60092.c: Likewise.
      
      From-SVN: r209863
      Richard Biener committed
    • tree-vrp.c (vrp_var_may_overflow): Remove. · 771c9501
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-vrp.c (vrp_var_may_overflow): Remove.
      	(vrp_visit_phi_node): Rather than bumping to +-INF possibly
      	with overflow immediately bump to one before that value and
      	let iteration figure out overflow status.
      
      	* gcc.dg/tree-ssa/vrp91.c: New testcase.
      	* gcc.dg/Wstrict-overflow-14.c: XFAIL.
      	* gcc.dg/Wstrict-overflow-15.c: Likewise.
      	* gcc.dg/Wstrict-overflow-18.c: Remove XFAIL.
      
      From-SVN: r209862
      Richard Biener committed
    • configure.ac: Do valgrind header checks unconditionally. · 279a935f
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	* configure.ac: Do valgrind header checks unconditionally.
      	Add --enable-valgrind-annotations.
      	* system.h: Guard valgrind header inclusion with
      	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
      	* alloc-pool.c (pool_alloc, pool_free): Use
      	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
      	to guard possibly dead code.
      	* config.in: Regenerated.
      	* configure: Likewise.
      
      From-SVN: r209861
      Richard Biener committed
    • re PR tree-optimization/60902 (ffmpeg built with gcc 4.9 RC produces incorrect flac playback code) · 07357f2f
      	PR tree-optimization/60902
      	* tree-ssa-threadedge.c
      	(record_temporary_equivalences_from_stmts_at_dest): Only iterate
      	over real defs when invalidating outputs from statements that do not
      	produce useful outputs for threading.
      
      From-SVN: r209860
      Jeff Law committed
    • re PR tree-optimization/60979 (ICE: in gimple_redirect_edge_and_branch_force, at… · 6c6aa8e6
      re PR tree-optimization/60979 (ICE: in gimple_redirect_edge_and_branch_force, at tree-cfg.c:5544, w/ -O -ftree-loop-linear or -fgraphite-identity)
      
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/60979
      	* graphite-scop-detection.c (scopdet_basic_block_info): Reject
      	SCOPs that end in a block with a successor with abnormal
      	predecessors.
      
      	* gcc.dg/graphite/pr60979.c: New testcase.
      
      From-SVN: r209859
      Richard Biener committed
    • [ARM/AArch64] Use signed chars in gcc.dg/pr60114.c. · 9540b3c3
      	PR c/60983
      	* gcc.dg/pr60114.c: Use signed chars.
      
      From-SVN: r209858
      Kyrylo Tkachov committed
    • re PR c++/59120 ([c++11] ICE with invalid template alias) · a3879fa1
      /cp
      2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59120
      	* parser.c (cp_parser_alias_declaration): Check return value of
      	cp_parser_require.
      
      /testsuite
      2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59120
      	* g++.dg/cpp0x/alias-decl-43.C: New.
      
      From-SVN: r209857
      Paolo Carlini committed
    • tree-pass.h (execute_pass_list): Adjust prototype. · 2cbf2d95
      2014-04-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-pass.h (execute_pass_list): Adjust prototype.
      	* passes.c (pass_manager::execute_early_local_passes):
      	Adjust.
      	(do_per_function): Change callback signature, push all actual
      	work to the callbals.
      	(do_per_function_toporder): Likewise.
      	(execute_function_dump): Adjust.
      	(execute_function_todo): Likewise.
      	(clear_last_verified): Likewise.
      	(verify_curr_properties): Likewise.
      	(update_properties_after_pass): Likewise.
      	(execute_pass_list_1): Split out from ...
      	(execute_pass_list): ... here.  Adjust.
      	(execute_ipa_pass_list): Likewise.
      	* cgraphunit.c (cgraph_add_new_function): Adjust.
      	(analyze_function): Likewise.
      	(expand_function): Likewise.
      	* cgraph.c (release_function_body): Free dominance info
      	here instead of asserting it was magically freed elsewhere.
      
      From-SVN: r209856
      Richard Biener committed
    • configure.ac: Tweak GAS check for LEON instructions on SPARC. · ba21a04a
      	* configure.ac: Tweak GAS check for LEON instructions on SPARC.
      	* configure: Regenerate.
      	* config/sparc/sparc.opt (muser-mode): New option.
      	* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
      	for LEON3.
      	(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
      	* doc/invoke.texi (SPARC options): Document -muser-mode.
      
      From-SVN: r209850
      Eric Botcazou committed
    • Daily bump. · b976509f
      From-SVN: r209848
      GCC Administrator committed
  3. 27 Apr, 2014 4 commits
    • regex_automaton.h (_NFA<>::_M_insert_repeat): Add _S_opcode_repeat support to… · a670a9bb
      regex_automaton.h (_NFA<>::_M_insert_repeat): Add _S_opcode_repeat support to distingush a loop from _S_opcode_alternative.
      
      2014-04-27  Tim Shen  <timshen91@gmail.com>
      
      	* include/bits/regex_automaton.h (_NFA<>::_M_insert_repeat):
      	Add _S_opcode_repeat support to distingush a loop from
      	_S_opcode_alternative.
      	* include/bits/regex_automaton.tcc (_State_base::_M_print,
      	_State_base::_M_dot, _NFA<>::_M_eliminate_dummy,
      	_StateSeq<>::_M_clone): Likewise.
      	* include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
      	Likewise.
      	* include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise.
      	* include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_ecma):
      	Uglify local variable __i.
      	* include/bits/regex_compiler.h (_BracketMatcher<>::_M_make_cache):
      	Use size_t instead of int to compare with vector::size().
      
      2014-04-27  Tim Shen  <timshen91@gmail.com>
      
      	* include/bits/regex_executor.h: Add _M_rep_count to track how
      	many times this repeat node are visited.
      	* include/bits/regex_executor.tcc (_Executor<>::_M_rep_once_more,
      	_Executor<>::_M_dfs): Use _M_rep_count to prevent entering
      	infinite loop.
      
      2014-04-27  Tim Shen  <timshen91@gmail.com>
      
      	* include/bits/regex.tcc (__regex_algo_impl<>): Remove
      	_GLIBCXX_REGEX_DFS_QUANTIFIERS_LIMIT and use
      	_GLIBCXX_REGEX_USE_THOMPSON_NFA instead.
      	* include/bits/regex_automaton.h: Remove quantifier counting variable.
      	* include/bits/regex_automaton.tcc (_State_base::_M_dot):
      	Adjust debug NFA dump.
      
      From-SVN: r209844
      Tim Shen committed
    • cselib.c (find_slot_memmode): Delete. · f956adb9
      gcc/
      	* cselib.c (find_slot_memmode): Delete.
      	(cselib_hasher): Change compare_type to a struct.
      	(cselib_hasher::equal): Update accordingly.  Don't expect wrapped
      	constants.
      	(preserve_constants_and_equivs): Adjust for new compare_type.
      	(cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
      	(wrap_constant): Delete.
      	(cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
      
      From-SVN: r209843
      Richard Sandiford committed
    • re PR fortran/59604 (Constant comparisons with -fno-range-check and int(z'...')) · d01b2c21
      2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/59604
      	PR fortran/58003
      	* gfortran.h (gfc_convert_mpz_to_signed):  Add prototype.
      	* arith.c (gfc_int2int):  Convert number to signed if
      	arithmetic overflow is not checked.
      	* simplify.c (convert_mpz_to_unsigned): Only trigger assert for
      	size if range checking is in force.
      	(convert_mpz_to_signed):  Make non-static, rename to
      	(gfc_convert_mpz_to_signed).
      	(simplify_dshift): Use gfc_convert_mpz_to_signed.
      	(gfc_simplify_ibclr):  Likewise.
      	(gfc_simplify_ibits):  Likewise.
      	(gfc_simplify_ibset):  Likewise.
      	(simplify_shift):  Likewise.
      	(gfc_simplify_ishiftc):  Likewise.
      	(gfc_simplify_maskr):  Likewise.
      	(gfc_simplify_maskl):  Likewise.
      
      2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/59604
      	PR fortran/58003
      	* gfortran.dg/no_range_check_3.f90:  New test.
      
      From-SVN: r209836
      Thomas Koenig committed
    • Daily bump. · 0a8dbb04
      From-SVN: r209835
      GCC Administrator committed
  4. 26 Apr, 2014 8 commits
  5. 25 Apr, 2014 6 commits
    • Fix a few ICEs and other problems with -fdebug-types-sections. · 8d8ffd86
      (1) If a function contains a local typedef of an anonymous structure, GCC
      will generate a typedef DIE in the function, where the typedef DIE points
      to a structure_type DIE at the top level.  That structure_type DIE, if
      it's a non-POD, can contain ctor and dtor definitions.  This causes an
      assertion in should_move_die_to_comdat to fail, as we have up to now
      assumed that this could never happen.
      
      (2) With --std=c++11, a template parameter can refer to a local type defined
      within a function.  Because that local type doesn't qualify for its own
      type unit, we copy it as an "unworthy" type into the type unit that refers
      to it, but we copy too much, leading to a comdat type unit that contains a
      DIE with subprogram definitions rather than declarations.  These DIEs may
      have DW_AT_low_pc/high_pc or DW_AT_ranges attributes, and consequently can
      refer to range list entries that don't get emitted because they're not
      marked when the compile unit is scanned, eventually causing an undefined
      symbol at link time.
      
      (3) When a class template instantiation is moved into a separate type unit,
      it can bring along a lot of other referenced types into the type unit,
      especially if the template is derived from another (large) type that
      does not have an actually have a type definition in a type unit of its
      own. When there are many instantiations of the same template, we get
      a lot of duplication, and in the worst case (a template with several
      parameters, instantiated multiple times along each dimension), GCC
      can end up taking a long time and exhausting available memory.
      
      This combinatorial explosion is being caused by copy_decls_walk, where
      it finds a type DIE that is referenced by the type unit, but is not
      itself a type unit, and copies a declaration for that type into the
      type unit in order to resolve the reference within the type unit.
      In the process, copy_decls_walk also copies all of the children of
      that DIE. In the case of a base class with member function templates,
      every one of the instantiated member functions is copied into every
      type unit that references the base class.
      
      gcc/
              PR debug/60929
      	* dwarf2out.c (should_move_die_to_comdat): A type definition
              can contain a subprogram definition, but don't move it to a
              comdat unit.
      	(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
              (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
              from original DIE.
      	(clone_tree_hash): Rename to...
      	(clone_tree_partial): ...this; change callers.  Copy
              DW_TAG_subprogram DIEs as declarations.
      	(copy_decls_walk): Don't copy children of a declaration into a
              type unit.
      
      gcc/testsuite/
              PR debug/60929
              * g++.dg/debug/dwarf2/dwarf4-nested.C: New test case.
              * g++.dg/debug/dwarf2/dwarf4-typedef.C: Add
              -fdebug-types-section flag.
      
      From-SVN: r209812
      Cary Coutant committed
    • Set MODE to SI for alternative 12 in *movsf_internal · 255671b0
      	PR target/60969
      	* config/i386/i386.md (*movsf_internal): Set MODE to SI for
      	alternative 12.
      
      From-SVN: r209811
      H.J. Lu committed
    • re PR libstdc++/60710 (experimental::optional<T> is using T::operator!=) · e2ce9436
      2014-04-25  Lars Gullik Bjønnes  <larsbj@gullik.org>
      
      	PR libstdc++/60710
      	* include/experimental/optional (operator!=): Implement in terms of
      	operator==.
      	* testsuite/experimental/optional/relops/1.cc: Remove operator!=.
      	* testsuite/experimental/optional/relops/2.cc: Likewise.
      	* testsuite/experimental/optional/relops/3.cc: Likewise.
      	* testsuite/experimental/optional/relops/4.cc: Likewise.
      	* testsuite/experimental/optional/relops/5.cc: Likewise.
      	* testsuite/experimental/optional/relops/6.cc: Likewise.
      
      From-SVN: r209810
      Lars Gullik Bjønnes committed
    • [ARM] Enable tail call optimization for long call · 10432733
      gcc/
      
      	* config/arm/predicates.md (call_insn_operand): Add long_call check.
      	* config/arm/arm.md (sibcall, sibcall_value): Force the address to
      	reg for long_call.
      	* config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
      	restriction.
      
      gcc/testsuite
      
      	* gcc.target/arm/tail-long-call.c: New test.
      
      From-SVN: r209808
      Jiong Wang committed
    • re PR libstdc++/60958 (Initialization of arrays in tr1/regex ill-formed or with… · 4ec21835
      re PR libstdc++/60958 (Initialization of arrays in tr1/regex ill-formed or with undefined behaviour)
      
      	PR libstdc++/60958
      	* include/tr1/regex (regex_traits::isctype): Comment out broken code.
      	* testsuite/util/testsuite_regex.h (regex_match_debug): Improve
      	comment.
      
      From-SVN: r209807
      Jonathan Wakely committed
    • [ARM] Initialise T16-related fields in Cortex-A8 tuning struct. · 0e4c913f
      	* config/arm/arm.c (arm_cortex_a8_tune): Initialise
      	T16-related fields.
      
      From-SVN: r209806
      Kyrylo Tkachov committed