Skip to content
Snippets Groups Projects
  1. Oct 26, 2018
  2. Oct 25, 2018
    • Ian Lance Taylor's avatar
      compiler: improve name mangling for packpaths · 34489eb2
      Ian Lance Taylor authored
          
          The current implementation of Gogo::pkgpath_for_symbol was written in
          a way that allowed two distinct package paths to map to the same
          symbol, which could cause collisions at link- time or compile-time.
          
          Switch to a better mangling scheme to insure that we get a unique
          packagepath symbol for each package. In the new scheme instead of having
          separate mangling schemes for identifiers and package paths, the
          main identifier mangler ("go_encode_id") now handles mangling of
          both packagepath characters and identifier characters.
          
          The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as
          "foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this
          patch also adds a demangling capability so that function names
          returned from runtime.CallersFrames are converted back to their
          original unmangled form.
          
          Changing the pkgpath_for_symbol scheme requires updating a number of
          //go:linkname directives and C "__asm__" directives to match the new
          scheme, as well as updating the 'gotest' driver (which makes
          assumptions about the correct mapping from pkgpath symbol to package
          name).
          
          Fixes golang/go#27534.
          
          Reviewed-on: https://go-review.googlesource.com/c/135455
      
      From-SVN: r265510
      34489eb2
    • Carl Love's avatar
      rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, [...]): Rename base overloaded name. · fc756f9f
      Carl Love authored
      gcc/ChangeLog:
      
      2018-10-25  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT,
      	P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ,
      	P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name.  Add quad
      	precicion entry for each overloaded builtin.
      	* config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ,
      	VSCEDPUO): Rename overloaded name.
      	(VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ,
      	VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins.
      	* config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add
      	define_expand for xscmpexqp instruction.
      	(*xscmpexpqp): Add define_insn for the xscmpexqp instruction.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-25  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/float128-cmp2-runnable.c: New test file.
      
      From-SVN: r265509
      fc756f9f
    • Bill Schmidt's avatar
      emmintrin.h (_mm_slli_epi16): Replace deprecated function with vec_sl. · 80a2dd51
      Bill Schmidt authored
      
      2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated
      	function with vec_sl.
      	(_mm_slli_epi32): Likewise.
      	(_mm_slli_epi64): Likewise.
      	(_mm_srai_epi16): Replace deprecated function with vec_sra.
      	(_mm_srai_epi32): Likewise.
      	(_mm_srli_epi16): Replace deprecated function with vec_sr.
      	(_mm_srli_epi32): Likewise.
      	(_mm_srli_epi64): Likewise.
      	(_mm_sll_epi16): Replace deprecated function with vec_sl.
      	(_mm_sll_epi32): Likewise.
      	(_mm_sll_epi64): Likewise.
      	(_mm_sra_epi16): Replace deprecated function with vec_sra.
      	(_mm_sra_epi32): Likewise.
      	(_mm_srl_epi16): Replace deprecated function with vec_sr.
      	(_mm_srl_epi32): Likewise.
      	(_mm_srl_epi64): Likewise.
      
      
      Co-Authored-By: default avatarJinsong Ji <jji@us.ibm.com>
      
      From-SVN: r265508
      80a2dd51
    • Bill Schmidt's avatar
      emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for... · 1d3d2703
      Bill Schmidt authored
      emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for compatibility due to unfortunate...
      
      2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace
      	comparison operators with vec_cmp* for compatibility due to
      	unfortunate history; clean up formatting and use types more
      	appropriately.
      	(_mm_sll_epi32): Likewise.
      	(_mm_sll_epi64): Likewise.
      	(_mm_srl_epi16): Likewise.
      	(_mm_srl_epi32): Likewise.
      	(_mm_srl_epi64): Likewise.
      
      
      Co-Authored-By: default avatarJinsong Ji <jji@us.ibm.com>
      
      From-SVN: r265507
      1d3d2703
    • Bill Schmidt's avatar
      emmintrin.h (_mm_sll_epi64): Remove wrong cast. · 71c3949e
      Bill Schmidt authored
      
      2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast.
      	* config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to
      	__vector __bool int.  Use vec_cmpgt in preference to deprecated
      	function vec_vcmpgtfp.
      	(_mm_max_ps): Likewise.
      
      
      Co-Authored-By: default avatarJinsong Ji <jji@us.ibm.com>
      
      From-SVN: r265506
      71c3949e
    • Jeff Law's avatar
      rl78.c (insn_ok_now): Always re-recognize the insn if returning false. · 7959b94e
      Jeff Law authored
      	* config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn
      	if returning false.
      
      From-SVN: r265505
      7959b94e
    • Jason Merrill's avatar
      b15e2802
    • Martin Sebor's avatar
      extend.texi (aligned): Expand attribute description. · 8145e6a0
      Martin Sebor authored
      gcc/ChangeLog:
      
      	* doc/extend.texi (aligned): Expand attribute description.
      	(Alignment): Rename section.  Discuss function arguments.
      
      From-SVN: r265498
      8145e6a0
    • Martin Liska's avatar
      Use signed char in a test (PR testsuite/87739). · 30e87461
      Martin Liska authored
      2018-10-25  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/87739
      	* gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char.
      
      From-SVN: r265495
      30e87461
    • Martin Liska's avatar
      Revert partially changes from r265454 (PR other/87735). · 3239d726
      Martin Liska authored
      2018-10-25  Martin Liska  <mliska@suse.cz>
      
      	PR other/87735
      	* gcc.dg/tree-prof/time-profiler-1.c: Revert.
      	* gcc.dg/tree-prof/time-profiler-2.c: Likewise.
      	* gcc.dg/tree-prof/time-profiler-3.c: Likewise.
      2018-10-25  Martin Liska  <mliska@suse.cz>
      
      	PR other/87735
      	* libgcov-profiler.c: Revert.
      
      From-SVN: r265494
      3239d726
    • Jonathan Wakely's avatar
      PR libstdc++/87749 fix (and optimize) string move construction · 71e09389
      Jonathan Wakely authored
      The move constructor for the SSO string uses assign(const basic_string&)
      when either:
      
      (1) the source string is "local" and so the contents of the small string
      buffer need to be copied, or
      
      (2) the allocator does not propagate and is_always_equal is false.
      
      Case (1) is suboptimal, because the assign member is not noexcept and
      the compiler isn't smart enough to see it won't actually throw in this
      case. This causes extra code in the move assignment operator so that any
      exception will be turned into a call to std::terminate. This can be
      fixed by copying small strings inline instead of calling assign.
      
      Case (2) is a bug, because the specific instances of the allocators
      could be equal even if is_always_equal is false. This can result in an
      unnecessary deep copy (and potentially-throwing allocation) when the
      storage should be moved. This can be fixed by simply checking if the
      allocators are equal.
      
      	PR libstdc++/87749
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::operator=(basic_string&&)): For short strings copy the
      	buffer inline. Only fall back to using assign(const basic_string&) to
      	do a deep copy when reallocation is needed.
      	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
      	New test.
      	* testsuite/21_strings/basic_string/modifiers/assign/char/
      	move_assign_optim.cc: New test.
      	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
      	New test.
      	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
      	move_assign_optim.cc: New test.
      
      From-SVN: r265493
      71e09389
    • Jan Hubicka's avatar
      ipa-devirt.c (main_odr_variant): Remove. · 1afca3f4
      Jan Hubicka authored
      	* ipa-devirt.c (main_odr_variant): Remove.
      	(hash_odr_name, types_same_for_odr, types_odr_comparable,
      	odr_name_hasher::equal, odr_subtypes_equivalent_p):
      	Drop use of main_odr_variant.
      	(add_type_duplicate): Silence confused warnings on integer types.
      	(get_odr_type): Always look for main variant.
      	(register_odr_type): Simplify.
      
      From-SVN: r265492
      1afca3f4
    • Richard Biener's avatar
      tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to... · 303d8f77
      Richard Biener authored
      tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to silence error with release checking bootstrap.
      
      2018-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
      	Initialize ng to silence error with release checking bootstrap.
      
      From-SVN: r265491
      303d8f77
    • Ilya Leoshkevich's avatar
      S/390: Merge movdi_larl into movdi_64 · b6f51755
      Ilya Leoshkevich authored
      Consider the following RTL:
      
      (insn (set (mem/f/c:DI (reg/f:DI 60))
                 (const:DI (plus:DI (symbol_ref:DI ("*.LANCHOR0"))
                                    (const_int 8)))))
      
      generated by cse2 pass.  It is matched to movdi_64, resulting in
      the following inefficient code:
      
      	larl	%r5,.L6			# Load literal pool@
      	lg	%r1,.L7-.L6(%r5)	# Load .LANCHOR0+8
      	stgrl	%r1,.LANCHOR0
      	br	%r14
      
      Matching it to movdi_larl improves the code, eliminating one
      instruction and the literal pool entry:
      
      	larl	%r1,.LANCHOR0+8
      	stgrl	%r1,.LANCHOR0
      	br	%r14
      
      Taking it one step further, there is no reason to keep movdi_64 and
      movdi_larl separate, since this could potentially improve code in other
      ways by giving lra one more alternative to choose from.
      
      gcc/ChangeLog:
      
      2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/constraints.md (ZL): New constraint.
      	* config/s390/s390.c (legitimate_pic_operand_p): Accept LARL
      	operands.
      	* config/s390/s390.md (movdi_larl): Remove.
      	(movdi_64): Add the LARL alternative.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/global-array-almost-huge-element.c: New test.
      	* gcc.target/s390/global-array-almost-negative-huge-element.c: New test.
      	* gcc.target/s390/global-array-element-pic.c: New test.
      	* gcc.target/s390/global-array-even-element.c: New test.
      	* gcc.target/s390/global-array-huge-element.c: New test.
      	* gcc.target/s390/global-array-negative-huge-element.c: New test.
      	* gcc.target/s390/global-array-odd-element.c: New test.
      
      From-SVN: r265490
      b6f51755
    • Richard Biener's avatar
      tree-if-conv.c: Include tree-ssa-sccvn.h. · 4dd7c0dc
      Richard Biener authored
      2018-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-if-conv.c: Include tree-ssa-sccvn.h.
      	(tree_if_conversion): Run CSE on the if-converted loop body.
      
      From-SVN: r265489
      4dd7c0dc
    • Ilya Leoshkevich's avatar
      Fix rtx_code_size static initialization order fiasco · cd747405
      Ilya Leoshkevich authored
      r264556 and r264537 changed the format of EQ_ATTR_ALT RTXs to "ww",
      which also required adjusting rtx_code_size initializer.  In order to
      simplify things, the list of rtx_codes known to use HOST_WIDE_INTs was
      replaced by the format string check.  However, unlike the old one, this
      new check cannot be always performed at compile time, in which case a
      static constructor is generated.  This may lead to a static
      initialization order fiasco with respect to other static constructors
      in the compiler, in case of PR87747, cselib's pool_allocator.
      
      gcc/ChangeLog:
      
      2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR bootstrap/87747
      	* rtl.c (RTX_CODE_HWINT_P_1): New helper macro.
      	(RTX_CODE_HWINT_P): New macro.
      	(rtx_code_size): Use RTX_CODE_HWINT_P ().
      
      From-SVN: r265488
      cd747405
    • Marc Glisse's avatar
      Relocation (= move+destroy) · 0f317ef7
      Marc Glisse authored
      2018-10-25  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/87106
      	* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
      	destroy): Add noexcept specification.
      	* include/bits/allocator.h (construct, destroy): Likewise.
      	* include/ext/alloc_traits.h (construct, destroy): Likewise.
      	* include/ext/malloc_allocator.h (construct, destroy): Likewise.
      	* include/ext/new_allocator.h (construct, destroy): Likewise.
      	* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
      	__relocate_a_1): New functions.
      	(__is_trivially_relocatable): New class.
      	* include/bits/stl_vector.h (__use_relocate): New static member.
      	* include/bits/vector.tcc (reserve, _M_realloc_insert,
      	_M_default_append): Use __relocate_a.
      	(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
      	_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
      	after _Destroy.
      	* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
      	Replace CopyConsOnlyType with DelAnyAssign.
      
      From-SVN: r265485
      0f317ef7
    • Jan Hubicka's avatar
      ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types is anonymous. · 09d3f04e
      Jan Hubicka authored
      	* ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types
      	is anonymous.
      	* g++.dg/lto/odr-1_0.C: New test.
      	* g++.dg/lto/odr-1_1.C: New test.
      
      From-SVN: r265484
      09d3f04e
    • Thomas Preud'homme's avatar
      dg-cmp-results: display NA->FAIL & NA->UNRESOLVED by default · 46ec9261
      Thomas Preud'homme authored
      Currently, dg-cmp-results will not print anything for a test that was
      not run before, even if it is a FAIL or UNRESOLVED now. This means that
      when contributing a code change together with a testcase in the same
      commit one must run dg-cmp-results twice: once to check for regression
      on a full testsuite run and once against the new testcase with -v -v.
      This also prevents using dg-cmp-results on sum files generated with
      test_summary since these would not contain PASS.
      
      This patch changes dg-cmp-results to print NA->FAIL and NA->UNRESOLVED
      changes by default.
      
      2018-10-25  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
      
          contrib/
          * dg-cmp-results.sh: Print NA-FAIL and NA->UNRESOLVED changes at
          default verbosity.
      
      From-SVN: r265483
      46ec9261
    • Thomas Preud'homme's avatar
      [testsuite] Fix sibcall-9 & sibcall-10 with -fPIC · 541eccad
      Thomas Preud'homme authored
      gcc.dg/sibcall-9.c and gcc.dg/sibcall-10.c give execution failure
      on ARM when compiled with -fPIC due to the PIC access to volatile
      variable v creating an extra spill which causes the frame size of the
      two recursive functions to be different. Making the variable static
      solve the issue because the variable can be access in a PC-relative way
      and avoid the spill, while still testing sibling call as originally
      intended.
      
      2018-10-25  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
      
      gcc/testsuite/
          * gcc.dg/sibcall-9.c: Make v static.
          * gcc.dg/sibcall-10.c: Likewise.
      
      From-SVN: r265482
      541eccad
    • Richard Biener's avatar
      re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize) · 7852940e
      Richard Biener authored
      2018-10-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87665
      	PR tree-optimization/87745
      	* tree-vectorizer.h (get_earlier_stmt): Remove.
      	(get_later_stmt): Pick up UID from the original non-pattern stmt.
      
      	* gfortran.dg/20181025-1.f: New testcase.
      
      From-SVN: r265481
      7852940e
    • Sam Tebbs's avatar
      [DOC] Relocate list under Deprecated in options.texi to Var · 86f36311
      Sam Tebbs authored
      gcc/doc
      2018-10-25  Sam Tebbs  <sam.tebbs@arm.com>
      
      	* options.texi (Deprecated): Move list to Var section.
      
      From-SVN: r265480
      86f36311
    • Jakub Jelinek's avatar
      re PR fortran/87725 (OpenMP 4.5 clause schedule(simd,monotonic:static) not understood) · 37bc33f7
      Jakub Jelinek authored
      	PR fortran/87725
      	* openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and
      	nonmonotonic modifiers regardless of if they have been parsed
      	already or if the opposite one has.  Fix up check whether
      	comma after modifier should be parsed.
      	(resolve_omp_clauses): Diagnose schedule modifier restrictions.
      
      	* c-c++-common/gomp/schedule-modifiers-1.c (bar): Separate modifier
      	from kind with a colon rather than comma.
      	* gfortran.dg/gomp/schedule-modifiers-1.f90: New test.
      	* gfortran.dg/gomp/schedule-modifiers-2.f90: New test.
      
      From-SVN: r265479
      37bc33f7
    • GCC Administrator's avatar
      Daily bump. · 872324be
      GCC Administrator authored
      From-SVN: r265478
      872324be
  3. Oct 24, 2018
    • Segher Boessenkool's avatar
      combine: Don't do make_more_copies for dest PC (PR87720) · b8ac9576
      Segher Boessenkool authored
      Jumps are written in RTL as moves to PC.  But the latter has no mode,
      so we shouldn't try to use it.  Since the optimization this routine
      does does not really help for jumps at all, let's just skip it.
      
      
      	PR rtl-optimization/87720
      	* combine.c (make_more_copies): Skip if the dest is pc_rtx.
      
      From-SVN: r265474
      b8ac9576
    • Alexandre Oliva's avatar
      gOlogy: do not change code in isolate-paths for warnings only · f8719680
      Alexandre Oliva authored
      The isolate-paths pass is activated by various -f flags, but also by
      -Wnull-dereference.  Most of its codegen changes are conditioned on at
      least one of the -f flags, but those that detect, warn about and
      isolate paths that return the address of local variables are enabled
      even if the pass is activated only by -Wnull-dereference.
      
      -W flags should not cause codegen changes, so this patch makes the
      codegen changes conditional on the presence of any of the -f flags
      that activate the pass.  Should we have a separate option to activate
      only this kind of transformation?
      
      for  gcc/ChangeLog
      
      	* gimple-ssa-isolate-paths.c
      	(find_implicit_erroneous_behavior): Do not change code if the
      	pass is running for warnings only.
      	(find_explicit_erroneous_behavior): Likewise.
      
      From-SVN: r265473
      f8719680
    • Michael Meissner's avatar
      rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define as rs6000_mangle_decl_assembler_name. · f78f0462
      Michael Meissner authored
      [gcc]
      2018-10-24  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME):
      	Define as rs6000_mangle_decl_assembler_name.
      	(rs6000_mangle_decl_assembler_name): If the user switched from IBM
      	long double to IEEE long double, switch the names of the long
      	double built-in functions to be <func>f128 instead of <func>l.
      
      [gcc/testsuite]
      2018-10-24  Michael Meissner  <meissner@linux.ibm.com>
      
      	* gcc.target/powerpc/float128-math.c: New test to make sure the
      	long double built-in function names use the f128 form if the user
      	switched from IBM long double to IEEE long double.
      	* gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Likewise.
      
      From-SVN: r265471
      f78f0462
    • Jakub Jelinek's avatar
      re PR c++/86288 (Recognize __gnu and/or __gnu__ as attribute-namespace) · df51934d
      Jakub Jelinek authored
      	PR c++/86288
      	* parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when
      	:: is not present and attr_ns non-NULL, canonicalize also attr_id.
      	(cp_parser_attribute_spec): Fix comment typo.
      
      	* g++.dg/cpp0x/gen-attrs-66.C: New test.
      
      From-SVN: r265470
      df51934d
Loading