1. 12 Jul, 2017 13 commits
    • re PR target/81193 (PowerPC GCC __builtin_cpu_is and __builtin_cpu_supports… · 3787ee47
      re PR target/81193 (PowerPC GCC __builtin_cpu_is and __builtin_cpu_supports should warn about old libraries)
      
      [gcc]
      2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
      	provides the hardware capability bits, define the macro
      	__BUILTIN_CPU_SUPPORTS__.
      	* config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
      	if GLIBC does not provide the hardware capability bits.  Add a
      	gcc_unreachable call if the built-in cpu function is neither
      	__builtin_cpu_is nor __builtin_cpu_supports.
      	(rs6000_get_function_versions_dispatcher): Change the warning
      	that an old GLIBC is used which does not export the capability
      	bits to be an error.
      	* doc/extend.texi (target_clones attribute): Document the
      	restriction that GLIBC 2.23 or newer is needed on the PowerPC.
      	(PowerPC built-in functions): Document that GLIBC 2.23 or newer is
      	needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
      	the macros defined by GCC if the newer GLIBC is available.
      
      [gcc/testsuite]
      2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* gcc.target/powerpc/bmi-andn-1.c: Add guard against using
      	__builtin_cpu_supports with old GLIBC's.
      	* gcc.target/powerpc/bmi-andn-2.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-1.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-2.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-4.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-5.c: Likewise.
      	* gcc.target/powerpc/bmi-blsi-1.c: Likewise.
      	* gcc.target/powerpc/bmi-blsi-2.c: Likewise.
      	* gcc.target/powerpc/bmi-blsmsk-1.c: Likewise.
      	* gcc.target/powerpc/bmi-blsmsk-2.c: Likewise.
      	* gcc.target/powerpc/bmi-blsr-1.c: Likewise.
      	* gcc.target/powerpc/bmi-blsr-2.c: Likewise.
      	* gcc.target/powerpc/bmi-tzcnt-1.c: Likewise.
      	* gcc.target/powerpc/bmi-tzcnt-2.c: Likewise.
      	* gcc.target/powerpc/bmi2-bzhi32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-bzhi64-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx32-2.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx64-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx64-2.c: Likewise.
      	* gcc.target/powerpc/bmi2-pdep32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-pdep64-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-pext32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-pext64-1.c: Likewise.
      	* gcc.target/powerpc/cpu-builtin-1.c: Likewise.
      
      [libgcc]
      2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* configure.ac (PowerPC float128 hardware support): Test whether
      	we can use __builtin_cpu_supports before enabling the ifunc
      	handler.
      	* configure: Regenerate.
      
      From-SVN: r250165
      Michael Meissner committed
    • riscv.c: Remove unnecessary includes. · 1b68a156
      	* config/riscv/riscv.c: Remove unnecessary includes.  Reorder
      	remaining includes slightly.
      	* config/riscv/riscv-builtins.c: Include profile-count.h.
      
      From-SVN: r250162
      Jeff Law committed
    • libcp1plugin.cc (plugin_build_decl): Use DECL_CXX_{CON,DE}STRUCTOR directly. · 75f8b378
      	* libcp1plugin.cc (plugin_build_decl): Use
      	DECL_CXX_{CON,DE}STRUCTOR directly.
      
      From-SVN: r250159
      Nathan Sidwell committed
    • cp-tree.h (DECL_CONSTRUCTOR_P, [...]): Look at identifier flags. · 3da3dcdb
      	* cp-tree.h (DECL_CONSTRUCTOR_P, DECL_MAYBE_IN_CHARGE_CONSTRUCTOR,
      	DECL_DESTRUCTOR_P, DECL_MAYBE_IN_CHARGE_DESTRCTOR): Look at
      	identifier flags.
      	* decl.c (grokfndecl): Set DECL_CXX_CONSTRUCTOR and
      	DECL_CXX_DESTRUCTOR explicitly.
      	* decl2.c (grokclassfn): Likewise.
      	* friend.c (do_friend): Likewise.
      	* method.c (make_thunk, make_alias_for,
      	implicitly_declare_fn): Likewise.
      
      From-SVN: r250158
      Nathan Sidwell committed
    • re PR target/79883 (avr i18n: untranslated "interrupt" or "signal") · 1bde114a
      	PR target/79883
      	* config/avr/avr.c (avr_set_current_function): In diagnostic
      	messages: Quote keywords and (parts of) identifiers.
      	[WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
      	"INTERUPT".
      
      From-SVN: r250156
      Georg-Johann Lay committed
    • rs6000-c.c: Add support for built-in functions vector bool char vec_revb (vector bool char)... · 118009c1
      gcc/ChangeLog:
      
      2017-07-12  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c: Add support for built-in functions
      	vector bool char vec_revb (vector bool char);
      	vector bool short vec_revb (vector short char);
      	vector bool int vec_revb (vector bool int);
      	vector bool long long vec_revb (vector bool long long);
      	* doc/extend.texi: Update the built-in documentation file for the
      	new built-in functions.
      
      gcc/testsuite/ChangeLog:
      
      2017-07-12  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/p9-xxbr-1.c (rev_bool_char, rev_bool_short,
      	rev_bool_int): Add test cases for builtins.
      	* gcc.target/powerpc/p9-xxbr-2.c (rev_long_long, rev_ulong_ulong): Add
      	test cases for builtins.
      
      From-SVN: r250155
      Carl Love committed
    • builtins-1-p9-runnable.c (dg-ddo run): Add lp64 && p9vector_hw. · 5d7b8153
      gcc/testsuite/ChangeLog:
      
      2017-07-12  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/builtins-1-p9-runnable.c (dg-ddo run): Add
      	lp64 && p9vector_hw.
      
      From-SVN: r250154
      Carl Love committed
    • S/390: Remove loc splitter · 561f6312
      The backend splitter splitting a 3 operand load on condition into 2 is
      wrong.  The S/390 load on condition instruction might trap on the
      memory operand even if the condition is false.  So if the first load
      on condition overwrites a register used as part of the memory address
      of the second the second might trigger a segfault even if it does not
      actually perform the load.
      
      Trying to fix this I noticed that the generated code looks anyway
      better without the splitter.  So removing the splitter entirely is the
      way to go here.
      
      gcc/ChangeLog:
      
      2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md: Remove movcc splitter.
      
      From-SVN: r250153
      Andreas Krebbel committed
    • S/390: Calculate costs for load/store on condition · e5309d95
      This adds code to the backend rtx_costs function in order to model the
      costs of a load/store on condition.
      
      gcc/ChangeLog:
      
      2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_rtx_costs): Return proper costs for
      	load/store on condition.
      
      From-SVN: r250152
      Andreas Krebbel committed
    • re PR target/81407 ([avr] Diagnose if a variable in progmem needs constructing.) · 8b718de8
      	PR target/81407
      	* config/avr/avr.c (avr_encode_section_info)
      	[progmem && !TREE_READONLY]: Error if progmem object needs
      	constructing.
      
      From-SVN: r250151
      Georg-Johann Lay committed
    • [testsuite] Fix dg-require-stack-check · 6ea93a64
      2017-07-12  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* lib/target-supports.exp (check_stack_check_available): Make
      	testcase name depend on stack_kind.
      
      From-SVN: r250149
      Christophe Lyon committed
    • aarch64-simd.md (aarch64_sub<mode>_compare0): New pattern. · 2f65ab2e
      2017-07-11  Michael Collison  <michael.collison@arm.com>
      
      	* config/aarch64/aarch64-simd.md(aarch64_sub<mode>_compare0):
      	New pattern.
      	* testsuite/gcc.target/aarch64/cmp-2.c: New testcase.
      
      From-SVN: r250148
      Michael Collison committed
    • Daily bump. · ee665f0a
      From-SVN: r250147
      GCC Administrator committed
  2. 11 Jul, 2017 14 commits
  3. 10 Jul, 2017 13 commits
    • re PR target/81375 (unrecognizable insn) · 03ed2915
      	PR target/81375
      	* config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
      	(rcpps): Ditto.
      	(*rsqrtsf2_sse): Ditto.
      	(rsqrtsf2): Ditto.
      	(div<mode>3): Macroize insn from divdf3 and divsf3
      	using MODEF mode iterator.
      
      testsuite/ChangeLog:
      
      	PR target/81375
      	* gcc.target/i386/pr81375.c: New test.
      
      From-SVN: r250107
      Uros Bizjak committed
    • PR tree-optimization/80397 - missing -Wformat-overflow with arguments of enum types · 9c582dbb
      gcc/ChangeLog:
      
      	PR tree-optimization/80397
      	* gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
      	instead of testing for equality to INTEGER_TYPE.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/80397
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-17.c: New test.
      
      From-SVN: r250106
      Martin Sebor committed
    • cp-tree.h (cp_operator_id, [...]): Document. · b2221d2b
      
      gcc/cp/ChangeLog:
      
      	* cp-tree.h (cp_operator_id, cp_assignment_operator_id): Document.
      
      From-SVN: r250105
      Martin Sebor committed
    • PR other/81345 - -Wall resets -Wstringop-overflow to 1 from the default 2 · 281ac396
      gcc/c-family/ChangeLog:
      
      	PR other/81345
      	* c.opt (-Wstringop-overflow): Set defaults in LangEnabledBy.
      
      gcc/testsuite/ChangeLog:
      
      	PR other/81345
      	* gcc.dg/pr81345.c: New test.
      
      From-SVN: r250104
      Martin Sebor committed
    • Include missing header for std::free · b0e90d2a
      	* testsuite/abi/pr42230.cc: Add header for std::free.
      
      From-SVN: r250102
      Jonathan Wakely committed
    • PR libstdc++/81381 support stateful allocators in basic_stringbuf · 387c17d3
      	PR libstdc++/81381
      	* include/bits/sstream.tcc (basic_stringbuf::overflow)
      	(basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
      	(basic_stringbuf::str()): Construct new strings with an allocator.
      	* testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
      
      From-SVN: r250101
      Jonathan Wakely committed
    • PR libstdc++/81338 correctly manage string capacity · 93ef155b
      	PR libstdc++/81338
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
      	Declare basic_stringbuf to be a friend.
      	* include/bits/sstream.tcc (basic_stringbuf::overflow)
      	[_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
      	* include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
      	length to buffer length.
      	* testsuite/27_io/basic_stringstream/assign/81338.cc: New.
      
      From-SVN: r250100
      Jonathan Wakely committed
    • [ARC] Configure script to allow non uclibc based triplets · b1938888
      gcc/
      2017-07-10  Vineet Gupta <vgupta@synopsys.com>
      
              * config.gcc: Remove uclibc from arc target spec.
      
      libgcc/
      2017-07-10  Vineet Gupta <vgupta@synopsys.com>
      
              * config.host: Remove uclibc from arc target spec.
      
      From-SVN: r250097
      Vineet Gupta committed
    • [ARC] Fix tests asm constraints. · a7784956
      LRA doesn't like the 'X' constraint as used in our tests, remove it.
      
      gcc/testsuite
      2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/mulsi3_highpart-1.c: Remove 'X' constraint.
      	* gcc.target/arc/mulsi3_highpart-2.c: Likewise.
      
      From-SVN: r250096
      Claudiu Zissulescu committed
    • [ARC] Define ADDITIONAL_REGISTER_NAMES. · 0a98ae06
      This macro is needed to be used with -ffixed-<reg> option, and inline asm.
      
      gcc/
      2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
      
      From-SVN: r250095
      Claudiu Zissulescu committed
    • re PR bootstrap/80838 (PGO/LTO bootstrapped compiler 5% slower than pure PGO bootstrapped one) · 472a2536
      
      	PR lto/80838
      	* lto-wrapper.c (remove_option): New function.
      	(merge_and_complain): Merge PIC/PIE options more realistically.
      
      From-SVN: r250094
      Jan Hubicka committed
    • Better ISR prologues by supporting GASes __gcc_isr pseudo insn. · 63866e04
      gcc/
      	Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
      	PR target/20296
      	PR target/81268
      	* configure.ac [target=avr]: Add GAS check for -mgcc-isr.
      	(HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
      	* doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
      	* config/avr/avr.opt (-mgas-isr-prologues): New option and...
      	(TARGET_GASISR_PROLOGUES): ...target mask.
      	* common/config/avr/avr-common.c
      	(avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
      	Set -mgas-isr-prologues.
      	* config/avr/avr-passes.def (avr_pass_pre_proep): Add
      	INSERT_PASS_BEFORE for it.
      	* config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
      	* config/avr/avr.c (avr_option_override)
      	[!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
      	(avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
      	(avr_attribute_table) <no_gccisr>: Add new function attribute.
      	(avr_set_current_function) <is_no_gccisr>: Init machine field.
      	(avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
      	and rtl_opt_pass.
      	(make_avr_pass_pre_proep): New function.
      	(emit_push_sfr) <treg>: Add argument to function and use it
      	instead of TMP_REG.
      	(avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
      	and set machine->gasisr.yes.
      	(avr_expand_epilogue) [machine->gasisr.yes]: Similar.
      	(avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
      	__gcc_isr.n_pushed to .L__stack_usage.
      	(TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
      	(avr_asm_final_postscan_insn): ...this new static function.
      	* config/avr/avr.h (machine_function)
      	<is_no_gccisr, use_L__stack_usage>: New fields.
      	<gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
      	* config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
      	(GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
      	(gasisr, *gasisr): New expander and insn.
      	* config/avr/gen-avr-mmcu-specs.c (print_mcu)
      	[HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
      	* config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
      
      From-SVN: r250093
      Georg-Johann Lay committed
    • [arm] Fix warning in parsecpu.awk · 1ff62510
          
      In awk, single quotes within a quoted string do not need escaping.
      The existing code causes awk to grumble in the build logs.
          
      	* config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
      	in quoted strings.
      
      (really commit it this time)...
      
      From-SVN: r250092
      Richard Earnshaw committed