1. 18 Nov, 2018 2 commits
  2. 17 Nov, 2018 14 commits
  3. 16 Nov, 2018 24 commits
    • re PR target/87927 (ICE: segmentation fault with patchable_function_entry… · cac6691c
      re PR target/87927 (ICE: segmentation fault with patchable_function_entry attribute for msp430-elf -mlarge)
      
      2018-11-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	PR target/87927
      	* target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP.
      	Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs.
      	* target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in
      	the byte_op hook.
      	* target.h: Add psi, pdi, pti to struct asm_int_op definition.
      	* targhooks.c (default_print_patchable_function_entry): Assert
      	asm_int_op does not return a NULL string.
      	* varasm.c (integer_asm_op): Return the op for a partial int type
      	when the requested size does not correspond to an integer type.
      	* config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r266226
      Jozef Lawrynowicz committed
    • re PR c++/87269 (ICE in tsubst_copy, at cp/pt.c:15475 starting from r261802) · 8808260d
      	PR c++/87269
      	* g++.dg/lookup/pr87269.C (std::size_t): New typedef.
      	(operator"" _a) Change unsigned long type to std::size_t.
      
      From-SVN: r266225
      Jakub Jelinek committed
    • re PR c++/52869 ([DR 1207] "this" not being allowed in noexcept clauses) · 205d542a
      	PR c++/52869
      
      	DR 1207
      	* parser.c (cp_parser_noexcept_specification_opt): Call
      	inject_this_parameter.
      
      From-SVN: r266224
      Kamlesh Kumar committed
    • Implement P0479R5, [[likely]] and [[unlikely]]. · 2674fa47
      [[likely]] and [[unlikely]] are equivalent to the GNU hot/cold attributes,
      except that they can be applied to arbitrary statements as well as labels;
      this is most likely to be useful for marking if/else branches as likely or
      unlikely.  Conveniently, PREDICT_EXPR fits the bill nicely as a
      representation.
      
      I also had to fix marking case labels as hot/cold, which didn't work before.
      Which then required me to force __attribute ((fallthrough)) to apply to the
      statement rather than the label.
      
      gcc/
      	* gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes.
      gcc/c-family/
      	* c-lex.c (c_common_has_attribute): Handle likely/unlikely.
      	* c-attribs.c (attr_cold_hot_exclusions): Make public.
      gcc/cp/
      	* tree.c (handle_likeliness_attribute): New.
      	(std_attribute_table): Add likely/unlikely.
      	* cp-gimplify.c (lookup_hotness_attribute, remove_hotness_attribute)
      	(process_stmt_hotness_attribute, first_stmt): New.
      	(genericize_if_stmt): Check for duplicate predictions.
      	* parser.c (cp_parser_statement): Call
      	process_stmt_hotness_attribute.
      	(cp_parser_label_for_labeled_statement): Apply attributes to case.
      	* decl.c (finish_case_label): Give label in template type void.
      	* pt.c (tsubst_expr) [CASE_LABEL_EXPR]: Copy attributes.
      	[PREDICT_EXPR]: Handle.
      
      From-SVN: r266223
      Jason Merrill committed
    • libphobos: Add IEEE quadruple support to core.internal.convert · a0a57b07
      Backport from upstream druntime 2.083 for AArch64.
      
      Reviewed-on: https://github.com/dlang/druntime/pull/2257
      
      From-SVN: r266222
      Iain Buclaw committed
    • constraints.md (wF constraint): Remove power9 fusion documentation. · 2fbd3c37
      [gcc]
      2018-11-16  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/constraints.md (wF constraint): Remove power9
      	fusion documentation.  Just document wF's use for power8 fusion.
      	* config/rs6000/predicates.md (p9_fusion_reg_operand): Delete.
      	(fusion_gpr_addis): Delete power9 fusion support.  Change power8
      	fusion support to require the upper 12 bits to be all 0's or all
      	1's.
      	(fusion_gpr_mem_load): Add comment.
      	(fusion_addis_mem_combo_load): Remove power9 fusion support.
      	(fusion_addis_mem_combo_store): Delete.
      	(fusion_offsettable_mem_operand): Delete.
      	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set
      	power8 fusion here.
      	(ISA_3_0_MASKS_SERVER): Delete power9 fusion.
      	(POWERPC_MASKS): Delete power9 fusion.
      	* config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete.
      	(fusion_p9_p): Delete.
      	(expand_fusion_p9_load): Delete.
      	(expand_fusion_p9_store): Delete.
      	(emit_fusion_p9_load): Delete.
      	(emit_fusion_p9_store): Delete.
      	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9
      	fusion support.
      	(rs6000_option_override_internal): Set power8 fusion based on
      	whether we are tuning for power8.  Delete power9 fusion support.
      	(rs6000_opt_masks): Delete -mpower9-fusion switch.
      	(emit_fusion_load): Rename emit_fusion_load_store to
      	emit_fusion_load, and drop fusion store support.  Update callers.
      	(emit_fusion_load_store): Likewise.
      	(emit_fusion_gpr_load): Likewise.
      	(fusion_p9_p): Delete.
      	(expand_fusion_p9_load): Delete.
      	(expand_fusion_p9_store): Delete.
      	(emit_fusion_p9_load): Delete.
      	(emit_fusion_p9_store): Delete.
      	* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete.
      	(GPR_FUSION): Delete.
      	(FPR_FUSION): Delete.
      	(power9 fusion peephole2s): Delete.
      	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete.
      	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete.
      	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete.
      	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete.
      	(fusion_p9_<mode>_constant): Delete.
      	* config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented
      	power9 fusion switch.
      	* doc/md.texi (PowerPC constraints): Update wF constraint
      	documentation for power8 fusion only.
      
      [gcc/testsuite]
      2018-11-16  Michael Meissner  <meissner@linux.ibm.com>
      
      	* gcc.target/powerpc/fusion3.c: Delete.
      	* gcc.target/powerpc/fusion4.c: Delete.
      
      From-SVN: r266220
      Michael Meissner committed
    • re PR rtl-optimization/87475 (ICE in patch_jump_insn, at cfgrtl.c:1275) · a09ad347
      	PR rtl-optimization/87475
      	* cfgrtl.c (patch_jump_insn): Allow redirection failure for
      	CROSSING_JUMP_P insns.
      	(cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL.
      
      	* g++.dg/opt/pr87475.C: New test.
      
      From-SVN: r266219
      Jakub Jelinek committed
    • re PR target/88051 (internal compiler error: in add_clobbers, at config/i386/sync.md:1762) · b4183573
      	PR target/88051
      	* config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets.
      	* config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC.
      	(movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec.
      
      From-SVN: r266218
      Uros Bizjak committed
    • re PR middle-end/87854 (gcc.c-torture/compile/pr46534.c ICE for 16-bit size_t) · 258b3854
      	PR middle-end/87854
      	* c-common.c (fix_string_type): Reject string literals larger than
      	TYPE_MAX_VALUE (ssizetype) bytes.
      
      From-SVN: r266217
      Jakub Jelinek committed
    • re PR middle-end/88032 (ICE in operand_subword_force, at emit-rtl.c:1793) · 7f46559c
      	PR middle-end/88032
      	* optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it
      	is VOIDmode, in which case use int_mode.  Similarly for op1_mode.
      
      From-SVN: r266216
      Jakub Jelinek committed
    • When running the testsuite on boards that can't report an error status DejaGNU... · fe5d1296
      When running the testsuite on boards that can't report an error status
      DejaGNU uses a special wrapper to print the exit code on stdout and
      parses stdout to find whether an execution failed or passed.
      
      In testcases that use "freopen (..., ..., stdout)" this special line is
      printed to the alternate location described in the freopen call and
      DejaGNU can't find the error code.
      
      This results in DejaGNU using a default return status of 2 and the test
      failing.
      
      This patch skips the two testcases that use freopen on stdout when
      testing a board that requires this wrapper.
      
      
      Testing done by running these two tests on arm-none-eabi cross build and
      observing that they are unsupported.
      
      gcc/testsuite/ChangeLog:
      
      2018-11-16  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* gcc.c-torture/execute/printf-2.c: Skip on wrapped boards.
      	* gcc.c-torture/execute/user-printf.c: Likewise.
      
      From-SVN: r266214
      Matthew Malcomson committed
    • tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add location_t parameter. · 4359b631
      	* tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add
      	location_t parameter.
      	(switch_decision_tree::emit_cmp_and_jump_insns): Likewise.
      	(switch_decision_tree::do_jump_if_equal): Likewise.
      	* tree-switch-conversion.c (switch_decision_tree::emit): Pass location
      	of switch statement to emit_case_nodes.
      	(switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and
      	set it on the newly built GIMPLE comparison statement.
      	(switch_decision_tree::do_jump_if_equal): Likewise.
      	(switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it
      	in calls to do_jump_if_equal as well as recursive calls.
      
      From-SVN: r266213
      Eric Botcazou committed
    • Remove ovl_used, it is no longer needed · 83044e4f
      	Remove ovl_used, it is no longer needed
      	* cp-tree.h (OVL_USED_P): Delete.
      	(lookup_keep): Delete.
      	* friend.c (add_friend): Don't call it.
      	* parser.c (lookup_literal_operator): Likewise.
      	(cp_parser_primary_expression): Likewise.
      	* semantics.c (perform_koenig_lookup): Likewise.
      	* pt.c (tsubst_copy <OVERLOAD>): Don't assert OVL_USED_P.
      	* tree.c (ovl_copy): Delete.
      	(ovl_insert): Remove OVL_USED_P checks.
      	(ovl_iterator::reveal_node): Likewise.
      	(ovl_iterator::remove__node): Likewise.
      	(ovl_used, lookup_keep): Delete.
      
      From-SVN: r266212
      Nathan Sidwell committed
    • Allow memory operands for PTWRITE · 81292845
      The earlier PTWRITE builtin definition was unnecessarily restrictive,
      only allowing register input to PTWRITE. The instruction actually
      supports memory operands too, so allow that too.
      
      gcc/:
      
      2018-11-16  Andi Kleen  <ak@linux.intel.com>
      
      	* config/i386/i386.md: Allow memory operands to ptwrite.
      
      From-SVN: r266211
      Andi Kleen committed
    • [PR c++/87269] Mark string operator overload in template defn. · b1fe8605
      https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01458.html
      	PR c++/87269
      	* parser.c (lookup_literal_operator): Mark overload for keeping
      	when inside template.  Refactor.
      
      	* g++.dg/lookup/pr87269.C: New.
      
      From-SVN: r266210
      Nathan Sidwell committed
    • [Patch][libstdc++.exp] Update the usage of cached result. · ac28df7e
      This patch replaces the usage of cached results with a global dictionary.
      
      Additionally, check_v3_target_namedlocale is updated to check on every variant.
      Originally, it is only checked once.
      
      
      gcc/libstdc++-v3/:
      2018-11-16  Renlin Li  <renlin.li@arm.com>
      	    Tejas Belagod  <tejas.belagod@arm.com>
      
      	testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc.
      	(check_v3_target): Use check_v3_target_prop_cached.
      
      
      Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>
      
      From-SVN: r266209
      Renlin Li committed
    • Don't use %z printf length specifier · a0b48080
      	* system.h (PRsa): New macro.
      	(SIZE_AMOUNT): Cast number to uint64_t.
      	* alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa.
      	(pool_usage::dump_footer): Likewise and also use PRIu64.
      	* bitmap.h (bitmap_usage::dump): Likewise.
      	* ggc-common.c (ggc_usage::dump): Likewise.
      	* ggc-page.c (ggc_print_statistics): Likewise.
      	* input.c (dump_line_table_statistics): Likewise.
      	* mem-stats.h (mem_usage::dump): Likewise.
      	(mem_usage::dump_footer): Likewise.
      	* rtl.c (dump_rtx_statistics): Likewise.
      	* tree-cfg.c (dump_cfg_stats): Likewise.
      	* tree-dfa.c (dump_dfa_stats): Likewise.
      	* tree-phinodes.c (phinodes_print_statistics): Likewise.
      	* tree-ssanames (ssanames_print_statistics): Likewise.
      	* vec.c (vec_usage::dump): Likewise.
      	(vec_usage::dump_footer): Likewise.
      
      From-SVN: r266208
      Michael Matz committed
    • Fix ICE in lto_symtab_merge_symbols_1 (PR lto/88004). · 12eac232
      2018-11-16  Martin Liska  <mliska@suse.cz>
      
      	PR lto/88004
      	* lto-symtab.c (lto_symtab_merge_symbols_1): Do not call
      	lto_symtab_symbol_p as it does checking of transparent alias.
      	These needs to be also merged in the function.
      
      From-SVN: r266207
      Martin Liska committed
    • re PR testsuite/88053 (g++.dg/lto/pr54625-1.C fails with r266194) · f6dee9fe
      2018-11-16  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/88053
      	* g++.dg/lto/pr54625-2_0.c: Add -w.
      
      From-SVN: r266206
      Richard Biener committed
    • re PR tree-optimization/88011 (r266028 causes a bunch of go failures) · cf74a8d5
      2018-11-16  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/88011
      	* tree-vrp.c (extract_range_from_binary_expr): Fix error in
      	replacing set_value_range_to_undefined and
      	set_value_range_to_varying with method calls.
      
      From-SVN: r266205
      Richard Biener committed
    • S/390: Add a new pattern for r{o,x}sbg · b9789752
      Fixes rXsbg_mode_sXl test failures.
      
      Combine used to give us
      
      (set (reg:SI 65)
          (ior:SI (lshiftrt:SI (reg:SI 3 %r3 [ bD.2238 ])
                  (const_int 2 [0x2]))
              (reg:SI 2 %r2 [ aD.2237 ])))
      
      but now we get
      
      (set (reg:SI 65)
          (ior:SI (subreg:SI (zero_extract:DI (reg:DI 69)
                      (const_int 32 [0x20])
                      (const_int 30 [0x1e])) 4)
              (subreg:SI (reg:DI 68) 4)))
      
      or
      
      (set (reg:SI 65)
          (ior:SI (subreg:SI (and:DI (lshiftrt:DI (reg:DI 69)
                          (const_int 2 [0x2]))
                      (const_int 4294967295 [0xffffffff])) 4)
              (subreg:SI (reg:DI 68) 4)))
      
      with an extra subreg, which appears because pseudos, unlike hard
      registers, can be accessed only using their natural mode.
      
      This patch adds a special case for that.  Also, it performs r*sbg
      bit index computations during gcc run, so that expectations do not
      depend on which concrete pattern was matched.
      
      gcc/ChangeLog:
      
      2018-11-16  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/s390.md
      	(*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to
      	assembler.
      	(*r<noxa>sbg_<mode>_sll): Likewise.
      	(*r<noxa>sbg_<mode>_srl): Likewise.
      	(*r<noxa>sbg_sidi_srl): New pattern.
      
      gcc/testsuite/ChangeLog:
      
      2018-11-16  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/md/rXsbg_mode_sXl.c: Do not use arithmetic in
      	r{o,x}sbg expectations.
      	* gcc.target/s390/risbg-ll-2.c: Likewise.
      
      From-SVN: r266203
      Ilya Leoshkevich committed
    • re PR testsuite/88053 (g++.dg/lto/pr54625-1.C fails with r266194) · 43c6ad43
      2018-11-16  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/88053
      	* g++.dg/lto/pr54625-1_0.c: Add -w.
      
      From-SVN: r266202
      Richard Biener committed
    • Allow target overrides of ctors/dtors support advertisement on VxWorks · 7f37b31d
      2018-11-16  Jerome Lambourg  <lambourg@adacore.com>
      
              * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro.
              Default to TARGET_VXWORKS_RTP.
              (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead
              of TARGET_VXWORKS_RTP.
              * config/vxworksae.h: Also define TARGET_VXWORKS_HAVE_CTORS_DTORS.
              * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead
              of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors.
      
      From-SVN: r266201
      Jerome Lambourg committed
    • linux-unwind.h (sc_pt_regs): Update for kernel. · ff641ae1
      2018-11-15  Xianmiao Qu  <xianmiao_qu@c-sky.com>
      
      	libgcc/
      	* config/csky/linux-unwind.h (sc_pt_regs): Update for kernel. 
      	(sc_pt_regs_lr): Update for kernel.
      	(sc_pt_regs_tls): Update for kernel.
      
      From-SVN: r266200
      Xianmiao Qu committed