1. 19 May, 2016 16 commits
  2. 18 May, 2016 24 commits
    • cplus-dem.c (enum type_kind_t): Add tk_rvalue_reference constant. · 9b27f113
              * cplus-dem.c (enum type_kind_t): Add tk_rvalue_reference
              constant.
              (demangle_template_value_parm): Handle tk_rvalue_reference
              type kind.
              (do_type): Support 'O' type id (rvalue references).
      
              * testsuite/demangle-expected: Add tests.
      
      From-SVN: r236434
      Artemiy Volkov committed
    • re PR c++/71100 (Internal compiler error while calling a pointer to member function that throws) · 960db8ec
      	PR c++/71100
      	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
      	lhs if it has TREE_ADDRESSABLE type.
      
      	* g++.dg/opt/pr71100.C: New test.
      
      From-SVN: r236430
      Jakub Jelinek committed
    • re PR target/71145 (Alpha: Error: No lda !gpdisp!278 was found) · 78885314
      	PR target/71145
      	* config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
      	(*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
      
      From-SVN: r236423
      Uros Bizjak committed
    • pt.c (value_dependent_expression_p): Tweak new cases to better match the wording in the standard. · 8f74423d
      	* pt.c (value_dependent_expression_p): Tweak new cases to better
      	match the wording in the standard.
      
      From-SVN: r236421
      Jason Merrill committed
    • Allow constant global VAR_DECLs in constant jump functions · 04643334
      2016-05-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/69708
      	* ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
      	input for NOP_EXPR pass-through functions.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
      	aggregate global constant VAR_DECLs in constant jump functions.
      
      testsuite/
      	* gcc.dg/ipa/iinline-cstagg-2.c: New test.
      	* gcc.dg/ipa/ipcp-cstagg-5.c: Likewise.
      	* gcc.dg/ipa/ipcp-cstagg-6.c: Likewise.
      	* gcc.dg/ipa/ipcp-cstagg-7.c: Likewise.
      
      From-SVN: r236418
      Martin Jambor committed
    • Const parameters are always unmodified · 776e4fe2
      2016-05-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/69708
      	* ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
      	from TREE_READONLY parameters.
      
      From-SVN: r236417
      Martin Jambor committed
    • Indirect inlining of targets from references of global constants · 91bb9f80
      2016-05-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/69708
      	* cgraph.h (cgraph_indirect_call_info): New field
      	guaranteed_unmodified.
      	* ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
      	to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
      	appropriate.
      	* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
      	pass the parameter value to ipa_find_agg_cst_for_param.
      	* ipa-prop.c (ipa_load_from_parm_agg): New parameter
      	guaranteed_unmodified, store AA results there instead of bailing out
      	if present.
      	(ipa_note_param_call): Also initialize guaranteed_unmodified flag.
      	(ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
      	(find_constructor_constant_at_offset): New function.
      	(ipa_find_agg_cst_from_init): Likewise.
      	(ipa_find_agg_cst_for_param): Also seearch for aggregate values in
      	static initializers of contants, report back through a new paameter
      	from_global_constant if that was the case.
      	(try_make_edge_direct_simple_call): Also pass parameter value to
      	ipa_find_agg_cst_for_param, check guaranteed_unmodified when
      	appropriate.
      	(ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
      	(ipa_read_indirect_edge_info): Likewise.
      	* ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
      	(ipa_load_from_parm_agg): Likewise.
      
      testsuite/
      	* gcc.dg/ipa/iinline-cstagg-1.c: New test.
      	* gcc.dg/ipa/ipcp-cstagg-1.c: Likewise.
      	* gcc.dg/ipa/ipcp-cstagg-2.c: Likewise.
      	* gcc.dg/ipa/ipcp-cstagg-3.c: Likewise.
      	* gcc.dg/ipa/ipcp-cstagg-4.c: Likewise.
      
      From-SVN: r236416
      Martin Jambor committed
    • re PR c++/69793 (ICE on invalid code in "cp_lexer_peek_nth_token") · c584aca6
      /cp
      2016-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/69793
      	* parser.c (cp_parser_template_id): Don't call cp_lexer_peek_nth_token
      	when the previous cp_lexer_peek_token returns CPP_EOF.
      
      /testsuite
      2016-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/69793
      	* g++.dg/template/crash122.C: New.
      
      From-SVN: r236414
      Paolo Carlini committed
    • re PR target/71161 (Lots of ASAN and libgo runtime FAILs after r236090) · 28644f75
      	PR target/71161
      	* elf.c (phdr_callback) [__i386__]: Add
      	__attribute__((__force_align_arg_pointer__)).
      
      From-SVN: r236397
      Uros Bizjak committed
    • [Patch, lra] Guard in_class_p with REG_P check · 3c11e1af
      gcc/
      
      	PR rtl-optimization/71150
      	* lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
      	check.
      
      From-SVN: r236396
      Jiong Wang committed
    • re PR c++/70466 ([ICE on invalid code in tree check: expected constructor, have… · 20309c6e
      re PR c++/70466 ([ICE on invalid code in tree check: expected constructor, have parm_decl in convert_like_real, at cp/call.c:6371 with -std=c++11)
      
      /cp
      2016-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70466
      	* call.c (convert_like_real): Check that we are actually converting
      	from an init list.
      
      /testsuite
      2016-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70466
      	* g++.dg/template/pr70466-1.C: New.
      	* g++.dg/template/pr70466-2.C: Likewise.
      
      From-SVN: r236395
      Paolo Carlini committed
    • re PR target/70915 (Improve loading 0/-1 in VSX registers on PowerPC) · 50c78b9a
      [gcc]
      2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/70915
      	* config/rs6000/constraints.md (wE constraint): New constraint
      	for a vector constant that can be loaded with XXSPLTIB.
      	(wM constraint): New constraint for a vector constant of a 1's.
      	(wS constraint): New constraint for a vector constant that can be
      	loaded with XXSPLTIB and a vector sign extend instruction.
      	* config/rs6000/predicates.md (xxspltib_constant_split): New
      	predicates for wE/wS constraints.
      	(xxspltib_constant_nosplit): Likewise.
      	(easy_vector_constant): Add support for constants that can be
      	loaded via XXSPLTIB.
      	(all_ones_constant): New predicate for vector constant with all
      	1's set.
      	(splat_input_operand): Add support for ISA 3.0 word splat
      	operations.
      	* config/rs6000/rs6000.c (xxspltib_constant_p): New function to
      	return if a constant can be loaded with the ISA 3.0 XXSPLTIB
      	instruction and possibly with a sign extension.
      	(output_vec_const_move): Add support for XXSPLTIB. If we are
      	loading up 0/-1 into Altivec registers, prefer using VSPLTISW
      	instead of XXLXOR/XXLORC.
      	(rs6000_expand_vector_init): Add support for ISA 3.0 word splat
      	operations.
      	(rs6000_legitimize_reload_address): Likewise.
      	(rs6000_output_move_128bit): Use output_vec_const_move to emit
      	constants.
      	* config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
      	combine VSX_M and VSX_M2 into one iterator.
      	(VSX_M2): Likewise.
      	(VSINT_84): New iterators for loading constants with XXSPLTIB.
      	(VSINT_842): Likewise.
      	(UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
      	(xxspltib_v16qi): New insns to load up constants with the ISA 3.0
      	XXSPLTIB instruction.
      	(xxspltib_<mode>_nosplit): Likewise.
      	(xxspltib_<mode>_split): New insn to load up constants with
      	XXSPLTIB and a sign extend instruction.
      	(vsx_mov<mode>): Replace single move that handled all vector types
      	with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
      	moves (when -mvsx-timode is in effect) into the main vector
      	moves.  Eliminate separate moves for <VSr> <VSa>, where the
      	preferred register class (<VSr>) is listed first, and the
      	secondary register class (<VSa>) is listed second with a '?' to
      	discourage use.  Prefer loading 0/-1 in any VSX register for ISA
      	3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
      	that if the register was involved in a slow operation, the
      	clear/set operation does not wait for the slow operation to
      	finish.  Adjust the length attributes for 32-bit mode.  Use
      	rs6000_output_move_128bit and drop the use of the string
      	instructions for 32-bit movti when -mvsx-timode is in effect.  Use
      	spacing so that the alternatives and attributes don't generate
      	long lines, and put things in columns, so that it is easier to
      	match up the operands and attributes with the insn alternatives.
      	(vsx_mov<mode>_64bit): Likewise.
      	(vsx_mov<mode>_32bit): Likewise.
      	(vsx_movti_64bit): Fold movti into normal vector moves.
      	(vsx_movti_32bit): Likewise.
      	(vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
      	spat instructions.
      	(vsx_splat_v4si_internal): Likewise.
      	(vsx_splat_v4sf_internal): Likewise.
      	(vector fusion peepholes): Use VSX_M instead of VSX_M2.
      	(vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
      	extend vector elements.
      	(vsx_sign_extend_hi_<mode>): Likewise.
      	(vsx_sign_extend_si_v2di): Likewise.
      	* config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
      	declaration.
      	* doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
      	constraints.  Add trailing period to wL documentation.
      
      [gcc/testsuite]
      2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-splat-1.c: New tests for ISA 3.0 word
      	splat operations and the XXSPLTIB instruction.
      	* gcc.target/powerpc/p9-splat-2.c: Likewise.
      	* gcc.target/powerpc/p9-splat-3.c: Likewise.
      	* gcc.target/powerpc/pr47755.c: Allow vspltisw in addition to
      	xxlxor to clear a register.
      
      From-SVN: r236394
      Michael Meissner committed
    • To... · cf8be00d
      To: gcc-patches@gcc.gnu.org
      Subject: PR 71020: Handle abnormal PHIs in tree-call-cdce.c
      From: Richard Sandiford <richard.sandiford@arm.com>
      Gcc: private.sent
      --text follows this line--
      The PR is about a case where tree-call-cdce.c causes two abnormal
      PHIs for the same variable to be live at the same time, leading to
      a coalescing failure.  It seemed like getting rid of these kinds of
      input would be generally useful, so I added a utility to tree-dfa.c.
      
      Tested on x86_64-linux-gnu.
      
      gcc/
      	PR middle-end/71020
      	* tree-dfa.h (replace_abnormal_ssa_names): Declare.
      	* tree-dfa.c (replace_abnormal_ssa_names): New function.
      	* tree-call-cdce.c: Include tree-dfa.h.
      	(can_guard_call_p): New function, extracted from...
      	(can_use_internal_fn): ...here.
      	(shrink_wrap_one_built_in_call_with_conds): Remove failure path
      	and return void.
      	(shrink_wrap_one_built_in_call): Likewise.
      	(use_internal_fn): Likewise.
      	(shrink_wrap_conditional_dead_built_in_calls): Update accordingly
      	and return void.  Call replace_abnormal_ssa_names.
      	(pass_call_cdce::execute): Check can_guard_call_p during the
      	initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
      	will always change something.
      
      gcc/testsuite/
      	* gcc.dg/torture/pr71020.c: New test.
      
      From-SVN: r236393
      Richard Sandiford committed
    • Respect --param ipa-max-agg-items=0 · 29799e9d
      2016-05-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/70646
      	* ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
      	if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
      
      From-SVN: r236390
      Martin Jambor committed
    • [PR 70646] Store size to inlining predicate conditions · 848a392a
      2016-05-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/70646
      	* ipa-inline.h (condition): New field size.
      	* ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
      	for comaprison and store it into the new condition.
      	(evaluate_conditions_for_known_args): Use condition size to check
      	access sizes for all but CHANGED conditions.
      	(unmodified_parm_1): New parameter size_p, store access size into it.
      	(unmodified_parm): Likewise.
      	(unmodified_parm_or_parm_agg_item): Likewise.
      	(eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
      	(set_cond_stmt_execution_predicate): Extract access sizes and store
      	them to conditions.
      	(set_switch_stmt_execution_predicate): Likewise.
      	(will_be_nonconstant_expr_predicate): Likewise.
      	(will_be_nonconstant_predicate): Likewise.
      	(inline_read_section): Stream condition size.
      	(inline_write_summary): Likewise.
      
      testsuite/
      	* gcc.dg/ipa/pr70646.c: New test.
      
      From-SVN: r236389
      Martin Jambor committed
    • vget_lane.c: Add fp16 tests. · 1f2ab776
      * gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: Add fp16 tests.
      
      From-SVN: r236388
      Christophe Lyon committed
    • vreinterpret.c: Add missing tests for vreinterpretq_p{8,16}. · 76489493
      * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add missing tests for vreinterpretq_p{8,16}.
      
      From-SVN: r236387
      Christophe Lyon committed
    • vsli_n.c: Add checks for vsliq_n_s64 and vsliq_n_u64. · bd79378d
      * gcc.target/aarch64/advsimd-intrinsics/vsli_n.c: Add checks for vsliq_n_s64 and vsliq_n_u64.
      
      From-SVN: r236385
      Christophe Lyon committed
    • arm-neon-ref.h (CHECK, [...]): Print which type was checked. · 81ca3ea0
      	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK,
      	CHECK_FP, CHECK_CUMULATIVE_SAT): Print which type was checked.
      
      From-SVN: r236384
      Christophe Lyon committed
    • vmul.c: Remove useless #ifdef. · 873cb425
      	* gcc.target/aarch64/advsimd-intrinsics/vmul.c: Remove useless #ifdef.
      	* gcc.target/aarch64/advsimd-intrinsics/vshl.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vtst.c: Likewise.
      
      From-SVN: r236383
      Christophe Lyon committed
    • vreinterpret.c: Fix typo in comment. · 9d6e7c21
      * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Fix typo in comment.
      
      From-SVN: r236382
      Christophe Lyon committed
    • Fix ChangeLog date. · b4dbe40e
      From-SVN: r236381
      Christophe Lyon committed
    • noplt_3.c: Scan for "br\t". · 887687b0
      	* gcc.target/aarch64/noplt_3.c: Scan for "br\t".
      	* gcc.target/aarch64/tail_indirect_call_1.c: Scan for "br\t",
      	"blr\t" and switch to scan-assembler-times.
      
      From-SVN: r236377
      Christophe Lyon committed
    • tree-ssa-loop-im.c (determine_max_movement): Properly add condition cost to PHI… · 524c2492
      tree-ssa-loop-im.c (determine_max_movement): Properly add condition cost to PHI cost instead of total_cost.
      
      2016-05-18  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-loop-im.c (determine_max_movement): Properly add
      	condition cost to PHI cost instead of total_cost.
      
      From-SVN: r236376
      Richard Biener committed