1. 27 Apr, 2014 3 commits
    • 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
  2. 26 Apr, 2014 8 commits
  3. 25 Apr, 2014 29 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
    • testsuite_abi.cc (check_version): Update for CXXABI_1.3.9. · e4012a04
      2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
      
      	* testsuite/util/testsuite_abi.cc (check_version): Update for
      	CXXABI_1.3.9.
      
      From-SVN: r209786
      Marc Glisse committed
    • Remove LIB_TLS_SPEC on Solaris · c02f59e2
      	* configure.ac (tga_func): Remove.
      	(LIB_TLS_SPEC): Remove.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
      
      From-SVN: r209785
      Rainer Orth committed
    • re PR target/43538 (config/mt-gnu CXXFLAGS_FOR_TARGET) · 5b002eee
      2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR target/43538
      	* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.
      
      From-SVN: r209784
      Marc Glisse committed
    • Remove SSE execution test in crtfastmath.c · 54cf37e9
      	* config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
      	(sigill_caught, sigill_hdlr): Remove.
      
      From-SVN: r209783
      Rainer Orth committed
    • re PR ipa/60912 (wrong code with -O -fno-inline -fipa-pta) · 92b3326b
      2014-04-25  Richard Biener  <rguenther@suse.de>
      
      	PR ipa/60912
      	* tree-ssa-structalias.c (ipa_pta_execute): Compute direct
      	call stmt use/clobber sets during stmt walk instead of
      	walking the possibly incomplete set of caller edges.
      
      	* g++.dg/opt/pr60912.C: New testcase.
      
      From-SVN: r209780
      Richard Biener committed
    • re PR ipa/60911 (wrong code with -O2 -flto -fipa-pta) · 78422fb1
      2014-04-25  Richard Biener  <rguenther@suse.de>
      
      	PR ipa/60911
      	* passes.c (apply_ipa_transforms): Inline into only caller ...
      	(execute_one_pass): ... here.  Properly bring in function
      	bodies for nodes we want to apply IPA transforms to.
      
      	* gcc.dg/lto/pr60911_0.c: New testcase.
      
      From-SVN: r209779
      Richard Biener committed
    • re PR go/60931 (libgo has issues when page size is not 4k) · 9490b8da
      	PR go/60931
      
      runtime: Fix garbage collector issue with non 4kB system page size
      
      The go garbage collector tracks memory in terms of 4kB pages.
      Most of the code checks getpagesize() at runtime and does the
      right thing.
      
      On a 64kB ppc64 box I see SEGVs in long running processes
      which has been diagnosed as a bug in scavengelist.
      scavengelist does a madvise(MADV_DONTNEED) without rounding
      the arguments to the system page size.  A strace of one of the
      failures shows the problem:
      
      madvise(0xc211030000, 4096, MADV_DONTNEED) = 0
      
      The kernel rounds the length up to 64kB and we mark 60kB of
      valid data as no longer needed.
      
      Round start up to a system page and end down before calling
      madvise.
      
      From-SVN: r209777
      Ian Lance Taylor committed
    • * c.opt (Wshadow-ivar): Default to on. · 44875f92
      From-SVN: r209774
      Mike Stump committed
    • re PR tree-optimization/60896 (ICE: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1449) · 56f8faae
      2014-04-24  Cong Hou  <congh@google.com>
      
          PR tree-optimization/60896
          * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
          all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
          (vect_mark_pattern_stmts): Set the def type of all statements in
          PATTERN_DEF_SEQ as vect_internal_def.
      
      2014-04-24  Cong Hou  <congh@google.com>
      
          PR tree-optimization/60896
          * g++.dg/vect/pr60896.cc: New test.
      
      From-SVN: r209773
      Cong Hou committed
    • Daily bump. · 9beb6f2b
      From-SVN: r209772
      GCC Administrator committed