1. 04 Dec, 2017 6 commits
    • RTEMS/Ada: Account for 64-bit time_t · ca4564f9
      The Newlib time_t has now 64 bits for RTEMS.
      
      gcc/ada
      
      	* gcc-interface/Makefile.in (RTEMS): Use s-osprim__rtems.adb.
      	* libgnat/s-osprim__rtems.adb: New file.
      	* libgnarl/s-osinte__rtems.adb (pthread_cond_t): Fix alignment.
      	(pthread_mutexattr_t): Likewise.
      	(pthread_rwlockattr_t): Likewise.
      	(pthread_rwlock_t): Likewise.
      	(time_t): Use 64-bit integer.
      
      From-SVN: r255380
      Sebastian Huber committed
    • lra: Clobbers in a parallel are earlyclobbers (PR83245) · 80850da1
      The documentation (rtl.texi) says:
      
        When a @code{clobber} expression for a register appears inside a
        @code{parallel} with other side effects, the register allocator
        guarantees that the register is unoccupied both before and after that
        insn if it is a hard register clobber.
      
      and at least the rs6000 backend relies on that (see PR83245).  This
      patch restores that behaviour.
      
      Registers that are also used as operands in the instruction are not
      treated as earlyclobber, so such insns also still work (PR80818, an
      s390 testcase).
      
      
      	PR rtl-optimization/83245
      	* lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
      	hard registers as earlyclobber, also if not in an asm.
      
      From-SVN: r255377
      Segher Boessenkool committed
    • re PR bootstrap/83265 (Bootstrap failure on powerpc64) · 155f67eb
      
      	PR bootstrap/83265
      	Revert
      	2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	PR target/43871
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
      	rs6000_cpu based on cpu_index, not tune_index.
      
      From-SVN: r255376
      Segher Boessenkool committed
    • re PR tree-optimization/83238 ([graphite] ICE in graphite_can_represent_scev, at… · 5d66d3f1
      re PR tree-optimization/83238 ([graphite] ICE in graphite_can_represent_scev, at graphite-scop-detection.c:971)
      
      2017-12-04  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83238
      	* graphite-scop-detection.c (scop_detection::merge_sese): Make
      	code match comment, rejecting invalid SESE regions.
      
      	* gcc.dg/graphite/pr83238.c: New testcase.
      
      From-SVN: r255375
      Richard Biener committed
    • Require effective target alloca for pr82875.c · b6ecbf31
      2017-12-04  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/pr82875.c: Require effective target alloca.
      
      From-SVN: r255374
      Tom de Vries committed
    • Daily bump. · b2ab3c17
      From-SVN: r255372
      GCC Administrator committed
  2. 03 Dec, 2017 7 commits
    • pa.c (pa_legitimate_address_p): For scaled indexing... · b1947510
      	* config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
      	require base operand is a REG_POINTER prior to reload on targets
      	with non-equivalent space registers.
      
      From-SVN: r255369
      John David Anglin committed
    • re PR fortran/36313 ([F03] {MIN,MAX}{LOC,VAL} should accept character arguments) · 0ac74254
      2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* check.c (gfc_check_minval_maxval): Use
      	int_orLreal_or_char_check_f2003 for array argument.
      	* iresolve.c (gfc_resolve_maxval): Insert number in
      	function name for character arguments.
      	(gfc_resolve_minval): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
      	Fix comment.
      	(gfc_conv_intrinsic_minmaxval): Resort arguments and call library
      	function if dealing with a character function.
      
      2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* Makefile.am: Add new files for character-valued
      	maxval and minval.
      	* Makefile.in: Regenerated.
      	* gfortran.map: Add new functions.
      	* m4/iforeach-s2.m4: New file.
      	* m4/ifunction-s2.m4: New file.
      	* m4/iparm.m4: Add intitval for minval and maxval.
      	* m4/maxval0s.m4: New file.
      	* m4/maxval1s.m4: New file.
      	* m4/minval0s.m4: New file.
      	* m4/minval1s.m4: New file.
              * generated/maxval0_s1.c: New file.
              * generated/maxval0_s4.c: New file.
              * generated/maxval1_s1.c: New file.
              * generated/maxval1_s4.c: New file.
              * generated/minval0_s1.c: New file.
              * generated/minval0_s4.c: New file.
              * generated/minval1_s1.c: New file.
              * generated/minval1_s4.c: New file.
      
      2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/36313
      	* gfortran.dg/maxval_char_1.f90: New test.
      	* gfortran.dg/maxval_char_2.f90: New test.
      	* gfortran.dg/maxval_char_3.f90: New test.
      	* gfortran.dg/maxval_char_4.f90: New test.
      	* gfortran.dg/minval_char_1.f90: New test.
      	* gfortran.dg/minval_char_2.f90: New test.
      	* gfortran.dg/minval_char_3.f90: New test.
      	* gfortran.dg/minval_char_4.f90: New test.
      
      From-SVN: r255367
      Thomas Koenig committed
    • Fix typo in ChangeLog. · af5ad1e2
      From-SVN: r255366
      Jerry DeLisle committed
    • re PR fortran/83191 (Writing a namelist with repeated complex numbers) · c4508d0a
      2017-12-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
                  Dominique d'Humieres  <dominiq@lps.ens.fr>
      
              PR libgfortran/83191
              * io/transfer.c (list_formatted_read_scalar): Do not set
              namelist_mode bit here. (namelist_read): Likewise.
              (data_transfer_init): Clear the mode bit here.
              (finalize_transfer): Do set the mode bit just before any calls
              to namelist_read or namelist_write. It can now be referred to
              in complex_write.
              ^ io/write.c (write_complex): Suppress the leading blanks when
              namelist_mode bit is not set to 1.
      
              * gfortran.dg/namelist_95.f90: New test.
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r255365
      Jerry DeLisle committed
    • Fix spelling error in log. · 7c731281
      From-SVN: r255363
      Jerry DeLisle committed
    • re PR fortran/83225 (runtime error in transfer.c) · 7b39e3c2
      2017-12-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/83225
      	* io/io.h (is_internal_unit): Use the unit_is_internal bit.
      	* io/transfer.c (data_transfer_init): Set the bit to true for
      	internal umits. Use that bit for checks for internal unit
      	initializations.
      	* io/unit.c (insert_unit): As a precaution, set the
      	internal_unit_kind to zero when a unit structure is first created.
      
      From-SVN: r255362
      Jerry DeLisle committed
    • Daily bump. · acffd4fd
      From-SVN: r255361
      GCC Administrator committed
  3. 02 Dec, 2017 15 commits
    • ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping. · e3951b03
      	* ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
      	(update_specialized_profile): Fix updating of counts.
      	(perhaps_add_new_callers): Likewise.
      
      From-SVN: r255358
      Jan Hubicka committed
    • re PR target/81616 (Update -mtune=generic for the current Intel and AMD processors) · 4ca47ced
      
      	PR target/81616
      	* x86-tune.def: Remove obsolette FIXMEs.
      	(X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
      	(X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
      	X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
      	Enable for generic.
      	(X86_TUNE_PAD_RETURNS): Disable for generic.
      	* gcc.target/i386/pad-1.c: Compile for amdfam10.
      	* gcc.target/i386/align-limit.c: Likewise.
      
      From-SVN: r255357
      Jan Hubicka committed
    • re PR tree-optimization/83170 (ICE: Segmentation fault - during GIMPLE pass: store-merging) · 30fa8e9c
      	PR tree-optimization/83170
      	PR tree-optimization/83241
      	* gimple-ssa-store-merging.c
      	(imm_store_chain_info::try_coalesce_bswap): Update vuse field from
      	gimple_vuse (ins_stmt) in case it has changed.
      	(imm_store_chain_info::output_merged_store): Likewise.
      
      	* gcc.dg/store_merging_17.c: New test.
      
      From-SVN: r255356
      Jakub Jelinek committed
    • tree-chkp.c (chkp_compute_bounds_for_assignment): Handle POINTER_DIFF_EXPR. · edb48cdb
      	* tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
      	POINTER_DIFF_EXPR.
      
      	* gcc.target/i386/mpx/pointer-diff-1.c: New test.
      
      From-SVN: r255355
      Jakub Jelinek committed
    • re PR sanitizer/81212 (-Wreturn-type is disabled when used together with -fsanitize=return) · 38651b52
      	PR c++/81212
      	* tree-cfg.c (pass_warn_function_return::execute): Handle
      	__builtin_ubsan_handle_missing_return like __builtin_unreachable
      	with BUILTINS_LOCATION.
      
      	* g++.dg/ubsan/pr81212.C: New test.
      	* g++.dg/ubsan/return-1.C: Add -Wno-return-type to dg-options.
      	* g++.dg/ubsan/return-2.C: Likewise.
      	* g++.dg/ubsan/return-7.C: Likewise.
      
      From-SVN: r255354
      Jakub Jelinek committed
    • re PR target/78643 (ICE in convert_move, at expr.c:230) · e034c5c8
      	PR target/78643
      	PR target/80583
      	* expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
      	is BLKmode for vector field with vector raw mode, use TYPE_MODE
      	instead of DECL_MODE.
      
      	* gcc.target/i386/pr80583.c: New test.
      
      From-SVN: r255353
      Jakub Jelinek committed
    • i386-protos.h (standard_sse_constant_opcode): Change last argument to rtx pointer. · 3b5e1089
      	* config/i386/i386-protos.h (standard_sse_constant_opcode): Change
      	last argument to rtx pointer.
      	* config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
      	with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
      	or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
      	depending on the chosen ISAs.
      	* config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
      	*movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
      	*movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
      	callers.
      	* config/i386/sse.md (mov<mode>_internal): Likewise.
      	* config/i386/mmx.md (*mov<mode>_internal): Likewise.
      
      From-SVN: r255352
      Jakub Jelinek committed
    • doc update for -dp · 3adbbd5b
      
      	* doc/invoke.texi (-dp): Say that instruction cost is printed as well.
      
      From-SVN: r255351
      Segher Boessenkool committed
    • rs6000: Improve fusion assembler output · 0bcd172e
      This improves the output for load and store fusion a little.  In most
      cases it removes the comment output, because that makes the generated
      assembler code hard to read, and equivalent info is available with -dp
      anyway.  For the vector loads it puts the comment on the second insn,
      where it doesn't interfere with other debug comments.
      
      
      	* config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
      	parameters from prototype.
      	* config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
      	parameters.  Don't print a comment.
      	(emit_fusion_gpr_load): Adjust.
      	(emit_fusion_load_store): Adjust.
      	* config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
      	* config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
      	comment on the second line.
      
      gcc/testsuite/
      	* gcc.target/powerpc/fusion.c: Add -dp to options.  Adjust the expected
      	output.
      	* gcc.target/powerpc/fusion3.c: Ditto.
      	* gcc.target/powerpc/fusion4.c: Ditto.
      
      From-SVN: r255350
      Segher Boessenkool committed
    • rs6000: Set rs6000_cpu correctly (PR43871) · 81094bcb
      We set rs6000_cpu based on tune_index, but it should be cpu_index.
      This patch fixes it.
      
      
      	PR target/43871
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
      	rs6000_cpu based on cpu_index, not tune_index.
      
      From-SVN: r255349
      Segher Boessenkool committed
    • final: Improve output for -dp and -fverbose-asm · dff125eb
      This improves the assembler output (for -dp and -fverbose-asm) in
      several ways.  It always prints the insn_cost.  It does not print
      "[length = NN]" but "[c=NN l=NN]", to save space.  It does not add one
      to the instruction alternative number (everything else starts counting
      those at 0, too).  And finally, it tries to keep things lined up in
      columns a bit better.
      
      
      	* final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
      	which_alternative instead of which_alternative + 1.
      	(output_asm_insn): Print an extra tab if the template is short.
      
      From-SVN: r255348
      Segher Boessenkool committed
    • runtime: export cgoCheck functions · 79c9f765
          
          The functions cgoCheckPointer and cgoCheckResult are called by code
          generated by cgo. That means that we need to export them using
          go:linkname, as otherwise they are local symbols. The cgo code
          currently uses weak references to only call the symbols if they are
          defined, which is why it has been working--the cgo code has not been
          doing any checks.
          
          Reviewed-on: https://go-review.googlesource.com/80295
      
      From-SVN: r255347
      Ian Lance Taylor committed
    • compiler: avoid GCC middle-end control warnings · 9638589f
          
          GCC has started emitting "control reaches end of non-void function"
          warnings. Avoid them for Go by 1) marking the builtin function panic
          and the compiler-generated function __go_runtime_error as not
          returning and 2) adding a default case to the switch used for select
          statements that simply calls __builtin_unreachable.
          
          Fixes golang/go#22767
          
          Reviewed-on: https://go-review.googlesource.com/80416
      
      	* go-gcc.cc (Gcc_backend::Gcc_backend): Define
      	__builtin_unreachable.
      	(Gcc_backend::function): Add does_not_return parameter.
      
      From-SVN: r255346
      Ian Lance Taylor committed
    • Delete obsolete DWARF1 references. · d7d5f241
      	gcc/
      	* common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
      	comment.
      	* config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
      	* doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
      	reference.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r255345
      Jim Wilson committed
    • Daily bump. · 8d7de039
      From-SVN: r255344
      GCC Administrator committed
  4. 01 Dec, 2017 12 commits
    • re PR target/81959 (PowerPC __float128 optimization fails with integer PRE_INC addresses) · b2db7624
      [gcc]
      2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81959
      	* config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
      	whether we can allocate pseudos before trying to fix an address.
      	* config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
      	memory address is indexed or indirect.
      	(floatuns_<mode>si2_hw2): Likewise.
      
      [gcct/testsuite]
      2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81959
      	* gcc.target/powerpc/pr81959.c: New test.
      
      From-SVN: r255341
      Michael Meissner committed
    • compiler: introduce size threshold for nil checks · 92f0112c
          
          Add a new control variable to the Gogo class that stores the size
          threshold for nil checks. This value can be used to control the
          policy for deciding when a given deference operation needs a check and
          when it does not. A size threshold of -1 means that every potentially
          faulting dereference needs an explicit check (and branch to error
          call). A size threshold of K (where K > 0) means that if the size of
          the object being dereferenced is >= K, then we need a check.
          
          Reviewed-on: https://go-review.googlesource.com/80996
      
      	* go-c.h (go_create_gogo_args): Add nil_check_size_threshold
      	field.
      	* go-lang.c (go_langhook_init): Set nil_check_size_threshold.
      
      From-SVN: r255340
      Than McIntosh committed
    • * doc/extend.texi: Mention C++14 library complex suffix. · 19041dad
      From-SVN: r255339
      Jason Merrill committed
    • Give #include hints for <complex>. · b3e862e0
      	* name-lookup.c (get_std_name_hint): Add <complex>.
      	* parser.c (cp_parser_diagnose_invalid_type_name): Call
      	suggest_alternative_in_explicit_scope.
      	(cp_parser_namespace_name): Likewise.
      
      From-SVN: r255336
      Jason Merrill committed
    • PR c++/79228 - extensions hide C++14 complex literal operators · f2b8b8ad
      libcpp/
      	* expr.c (interpret_float_suffix): Ignore 'i' in C++14 and up.
      	(interpret_int_suffix): Likewise.
      gcc/cp/
      	* parser.c (cp_parser_userdef_numeric_literal): Be helpful about
      	'i' in C++14 and up.
      
      From-SVN: r255335
      Jason Merrill committed
    • * Makefile.in (TAGS): Add c-family/*.cc. · 0951904f
      From-SVN: r255334
      Jason Merrill committed
    • [AArch64] Fix address printing on ILP32 · d6591257
      Fix address printing for ILP32.  The md file uses 'a' in assembler
      templates for symbolic addresses in adrp/add, which end up calling
      aarch64_print_operand_address.  However in ILP32 these are not valid
      memory addresses (being ptr_mode rather than Pmode), so the assert
      triggers.  Since it is incorrect to use symbols in memory addresses
      (besides literal pool accesses), change the 'a' to 'c' in the md file.
      
      Skip one failing test in ILP32 which combines the 'p' modifier with the 'a'
      assembler template to fake a memory reference.
      
          gcc/
      	* config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
      	(call_value_insn): Likewise.
      	(sibcall_insn): Likewise.
      	(sibcall_value_insn): Likewise.
      	(movsi_aarch64): Likewise.
      	(movdi_aarch64): Likewise.
      	(add_losym_): Likewise.
      	(ldr_got_small_): Likewise.
      	(ldr_got_small_sidi): Likewise.
      	(ldr_got_small_28k_): Likewise.
      	(ldr_got_small_28k_sidi): Likewise.
      	* config/aarch64/aarch64.c (aarch64_print_address_internal):
      	Move output_addr_const to symbolic case. Add error check.
          testsuite/
      	* gcc.dg/asm-4.c: Skip on AArch64 with ILP32 as test is incorrect.
      
      From-SVN: r255333
      Wilco Dijkstra committed
    • Fix an undefined behavior in fortran/decl.c · 8a302cb2
      From-SVN: r255332
      Qing Zhao committed
    • re PR fortran/83224 (creating character array from elements shorter than… · 1cde289f
      re PR fortran/83224 (creating character array from elements shorter than declared does not pad with whitespace properly and aborts)
      
      2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83224
      	* frontend-passes.c (create_var): Also handle
      	character arrays, handling deferred lenghts.
      
      2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83224
      	* gfortran.dg/dependency_51.f90: New test.
      
      From-SVN: r255331
      Thomas Koenig committed
    • Fix narrowing conversions in string_view types · ad8fda29
      	* include/experimental/string_view (basic_string_view::_S_compare):
      	Use value-init so narrowing conversions are not ill-formed.
      	* include/std/string_view (basic_string_view::_S_compare): Likewise.
      
      From-SVN: r255321
      Jonathan Wakely committed
    • Disable -Wliteral-suffix for standard UDLs · f03858e5
      	* include/bits/basic_string.h (operator""s): Add pragmas to disable
      	-Wliteral-suffix warnings.
      	* include/experimental/string_view (operator""sv): Likewise.
      	* include/std/chrono (operator""h, operator""min, operator""s)
      	(operator""ms, operator""us, operator""ns): Likewise.
      	* include/std/complex (operator""if, operator""i, operator""il):
      	Likewise.
      	* include/std/string_view (operator""sv): Likewise.
      	* testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
      
      From-SVN: r255320
      Jonathan Wakely committed
    • S/390: Split MVC instruction for better forwarding · f9dcf14a
      Certain lengths used in an MVC instruction might disable operand
      forwarding.  Split MVCs into up to 2 forwardable ones if possible.
      
      gcc/ChangeLog:
      
      2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/predicates.md (plus16_Q_operand): New predicate.
      	* config/s390/s390.md: Disable MVC merging peephole if it would
      	disable operand forwarding.
      	(new peephole2): Split MVCs if it would turn them into up to 2
      	forwardable MVCs.
      
      From-SVN: r255319
      Andreas Krebbel committed