1. 28 Apr, 2014 9 commits
    • 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
  2. 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
  3. 26 Apr, 2014 8 commits
  4. 25 Apr, 2014 19 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
    • re PR tree-optimization/60930 (Wrong folding of - ((unsigned long long) a *… · 61ba7329
      re PR tree-optimization/60930 (Wrong folding of - ((unsigned long long) a * (unsigned long long) (unsigned int)-1))
      
      [gcc]
      
      2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/60930
      	* gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
      	creating a multiply candidate by folding two constant
      	multiplicands when the result overflows.
      
      [gcc/testsuite]
      
      2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/60930
      	* gcc.dg/torture/pr60930.c:  New test.
      
      From-SVN: r209805
      Bill Schmidt committed
    • re PR tree-optimization/60960 (Wrong result when a vector variable is divided by… · 2b332829
      re PR tree-optimization/60960 (Wrong result when a vector variable is divided by a literal constant)
      
      	PR tree-optimization/60960
      	* tree-vect-generic.c (expand_vector_operation): Only call
      	expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
      
      	* gcc.c-torture/execute/pr60960.c: New test.
      
      From-SVN: r209802
      Jakub Jelinek committed
    • * gcc.dg/pr18079-2.c: Fix quoting in dg-warning. · ce2acd31
      From-SVN: r209801
      Marek Polacek committed
    • Add clobber_reg · 97891c11
      2014-04-25  Tom de Vries  <tom@codesourcery.com>
      
      	* expr.c (clobber_reg_mode): New function.
      	* expr.h (clobber_reg): New function.
      
      From-SVN: r209800
      Tom de Vries committed
    • Register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets · 3ee634fd
      2014-04-25  Tom de Vries  <tom@codesourcery.com>
      
      	* rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
      	clobbers.
      
      From-SVN: r209799
      Tom de Vries committed
    • Add implicit parameter to find_all_hard_reg_sets · 356bf593
      2014-04-25  Radovan Obradovic  <robradovic@mips.com>
                  Tom de Vries  <tom@codesourcery.com>
      
      	* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
      	handle.
      	* rtl.h (find_all_hard_reg_sets): Add bool parameter.
      	* haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
      	new argument to find_all_hard_reg_sets call.
      
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r209798
      Radovan Obradovic committed
    • [ARM] Wrap long literals in HOST_WIDE_INT_C in aarch-common.c · fe65a7ed
             * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
             Use HOST_WIDE_INT_C for mask literal.
             (aarch_rev16_shleft_mask_imm_p): Likewise.
      
      From-SVN: r209797
      Kyrylo Tkachov committed
    • re PR c/18079 (Contradicting function attributes (always_inline vs noinline)) · 45484dcf
      	PR c/18079
      c/
      	* c-decl.c (diagnose_mismatched_decls): Warn for mismatched
      	always_inline/noinline and hot/cold attributes.
      c-family/
      	* c-common.c (handle_noinline_attribute): Warn if the attribute
      	conflicts with always_inline attribute.
      	(handle_always_inline_attribute): Warn if the attribute conflicts
      	with noinline attribute.
      testsuite/
      	* gcc.dg/pr18079.c: New test.
      	* gcc.dg/pr18079-2.c: New test.
      
      From-SVN: r209796
      Marek Polacek committed
    • pr60823-2.c: Require effective target vect_simd_clones. · 707d7757
      	* c-c++-common/gomp/pr60823-2.c: Require effective target
      	vect_simd_clones.
      
      From-SVN: r209795
      Uros Bizjak committed
    • re PR c/60114 (Incorrect column number for -pedantic and -Wconversion) · 34cf811f
      	PR c/60114
      c/
      	* c-parser.c (c_parser_initelt): Pass input_location to
      	process_init_element.
      	(c_parser_initval): Pass loc to process_init_element.
      	* c-tree.h (process_init_element): Adjust declaration.
      	* c-typeck.c (push_init_level): Pass input_location to
      	process_init_element.
      	(pop_init_level): Likewise.
      	(set_designator): Likewise.
      	(output_init_element): Add location_t parameter.  Pass loc to
      	digest_init.
      	(output_pending_init_elements): Pass input_location to
      	output_init_element.
      	(process_init_element): Add location_t parameter.  Pass loc to
      	output_init_element.
      testsuite/
      	* gcc.dg/pr60114.c: New test.
      
      From-SVN: r209794
      Marek Polacek committed
    • re PR target/60941 (miscompilation of firefox javascript interpreter) · b357d40d
      	PR target/60941
      	* config/sparc/sparc.md (ashlsi3_extend): Delete.
      
      From-SVN: r209790
      Eric Botcazou committed
    • re PR target/56540 (No __SIZEOF__XXX__ macro for __float128) · 30c0a59a
      2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR preprocessor/56540
      	* config/i386/i386-c.c (ix86_target_macros): Define
      	__SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
      
      From-SVN: r209789
      Marc Glisse committed
    • re PR c/60156 (GCC doesn't warn about variadic main) · 38e514c0
      	PR c/60156
      	* c-common.c (check_main_parameter_types): Warn about variadic main.
      
      	* c-c++-common/pr60156.c: New test.
      
      From-SVN: r209787
      Marek Polacek committed