Commit Graph

145790 Commits

Author SHA1 Message Date
Jonathan Wakely
d9cb3e7598 libstdc++/70940 Start fixing polymorphic memory resources
PR libstdc++/70940
	* include/experimental/memory_resource
	(__resource_adaptor_imp::do_allocate): Do not default-construct
	rebound allocator.
	(__resource_adaptor_imp::do_deallocate): Likewise. Use
	allocator_traits to get pointer type.
	(__null_memory_resource::do_allocate): Remove unused parameters.
	(__null_memory_resource::do_deallocate): Likewise.
	(__null_memory_resource::do_is_equal): Likewise. Add return statement.
	* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
	* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
	move to ...
	* testsuite/experimental/memory_resource/1.cc: Here.
	* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
	* testsuite/experimental/memory_resource/resource_adaptor.cc: New.

From-SVN: r235868
2016-05-04 13:08:45 +01:00
Oleg Endo
da5b1ec120 predicates (post_inc_mem, [...]): New predicates.
gcc/
	* config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
	* config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
	result.set_rtx is null instead of aborting.
	* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
	Always enable.
	(USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
	* config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
	*mov<mode>_store_postinc): New patterns.

From-SVN: r235859
2016-05-04 07:14:11 +00:00
Marc Glisse
e07ab2feaf Remove duplicate (A & B) OP (C & B) in match.pd.
2016-05-04  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
	as commutative.  Check both conversions are NOP.
	((A & B) OP (C & B)): Remove.

From-SVN: r235858
2016-05-04 05:38:18 +00:00
GCC Administrator
0777ce6f2e Daily bump.
From-SVN: r235856
2016-05-04 00:16:19 +00:00
Alan Modra
343d0287f2 Combine simplify_set WORD_REGISTER_OPERATIONS
The comment says this test is supposed to prevent "a narrower
operation than requested", but it actually only allows a larger
subreg not one the same size.  Fix that.

	* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.

From-SVN: r235852
2016-05-04 09:41:32 +09:30
Alan Modra
475839b6db [RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE
gcc/
	PR target/70866
	* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
	when cr2,3,4 are all fixed regs.
gcc/testsuite/
	* gcc.target/powerpc/pr70866.c: New.

From-SVN: r235851
2016-05-04 09:21:34 +09:30
Bernd Schmidt
9ced954948 re PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)
PR rtl-optimization/57193
	* opts.c (default_options_table): Revert OPT_frename_registers change.
	* doc/invoke.texi (-frename-registers, -O2): Likewise.

From-SVN: r235848
2016-05-03 22:48:03 +00:00
Martin Sebor
b25aad5fda PR c++/66561 - __builtin_LINE at al. should yield constant expressions
PR c++/66561 - __builtin_LINE at al. should yield constant expressions
PR c++/66639 - declare __func__, __FUNCTION__ & __PRETTY_FUNCTION__ constexpr

gcc/testsuite/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

	PR c++/66561
	* c-c++-common/builtin_location.c: New test.
	* g++.dg/cpp1y/builtin_location.C: New test.

gcc/cp/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

	PR c++/66561
	* tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
	BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.

gcc/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

	PR c++/66561
	* builtins.c (fold_builtin_FILE): New function.
	(fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
	(fold_builtin_0): Call them.
	* gimplify.c (gimplify_call_expr): Remove the handling of
	BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.

	PR c++/66561
	* doc/extend.texi (Other Builtins): Update __builtin_FILE,
	__builtin_FUNCTION, and __builtin_LINE to reflect they yield
	constants.

	PR c++/66639
	* doc/extend.texi (Function Names as Strings): Update __func__,
	__FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
	constants.

From-SVN: r235845
2016-05-03 15:15:28 -06:00
Jakub Jelinek
9663f8f748 re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
PR tree-optimization/70916
	* tree-if-conv.c: Include cfganal.h.
	(pass_if_conversion::execute): Call connect_infinite_loops_to_exit
	and remove_fake_exit_edges around the optimization pass.

Co-Authored-By: Richard Biener <rguenther@suse.de>

From-SVN: r235842
2016-05-03 21:30:22 +02:00
Jan Hubicka
1a0bf5e11b cgraph.c (symbol_table::create_edge): Set inline_failed.
* cgraph.c (symbol_table::create_edge): Set inline_failed.
	(cgraph_edge::make_direct): Likewise.
	(cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
	* cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
	* cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
	(CIF_THUNK): New code.
	* ipa-inline-analysis.c (initialize_inline_failed): Preserve
	CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
	(compute_inline_parameters): Set inline_failed for thunks.
	(inline_analyze_function): Cleanup.
	* ipa-inline.c (can_inline_edge_p): Do not deal with
	call_stmt_cannot_inline_p.
	(can_early_inline_edge_p): Likewise.
	(early_inliner): Initialize inline_failed.
	* lto-cgraph.c (lto_output_edge): Sanity check inline_failed.

	* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.

From-SVN: r235839
2016-05-03 19:05:31 +00:00
Uros Bizjak
8b38916ad4 predicates.md (x87nonimm_ssenomem_operand): Rename from nonimm_ssenomem_operand.
* config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
	from nonimm_ssenomem_operand.
	(nonimm_ssenomem_operand): New predicate.
	* config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
	as operand 0 predicate.
	(*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
	Disable unsupported alternatives using "enabled" attribute.
	Use register_ssemem_operand as operand 0 predicate.
	(*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.

From-SVN: r235837
2016-05-03 20:48:18 +02:00
Marek Polacek
79ce98bcef re PR c/70859 (Bad column number in type-generic function errors)
PR c/70859
	* input.c (expansion_point_location): New function.
	* input.h (expansion_point_location): Declare.

	* c-common.c (builtin_function_validate_nargs): Add location
	parameter.  Use it.
	(check_builtin_function_arguments): Add location and arguments
	parameters.  Use them.
	* c-common.h (check_builtin_function_arguments): Update declaration.

	* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
	check_builtin_function_arguments.

	* call.c (build_cxx_call): Pass location and vNULL down to
	check_builtin_function_arguments.

	* gcc.dg/pr70859.c: New test.
	* gcc.dg/pr70859-2.c: New test.

From-SVN: r235832
2016-05-03 18:03:42 +00:00
Pierre-Marie de Rodat
402e89f598 Fix a typo in dwarf2out.c:resolve_args_picking_1
Under specific circumstances for Ada programs, such as in the testcase
this change adds, the DWARF back-end currently crashes because of
inconsistent internal state. This is due to a typo: a local variable is
called frame_offset_ but resolve_args_picking_1 wrongly modifies
emit-rtl.h's frame_offset instead.

This change fixes this typo.

gcc/
	* dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
	occurence with frame_offset_ ones.

gcc/testsuite/
	* gnat.dg/debug5.adb: New testcase.

From-SVN: r235830
2016-05-03 16:21:14 +00:00
Joseph Myers
67647f9229 * nl.po: Update.
From-SVN: r235827
2016-05-03 16:07:25 +01:00
Alan Modra
fcc861d975 PR70890, stage2 miscompilation
PR rtl-optimization/70890
	* ira.c (combine_and_move_insns): When moving def_insn, remove
	equivs on use_insn.

From-SVN: r235825
2016-05-04 00:13:35 +09:30
Dominik Vogt
f3d9004571 S/390: Add patterns for r<nox>sbg instructions.
gcc/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
	("*r<noxa>sbg_<mode>_srl"): New define_insns.
	("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
	("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.

gcc/testsuite/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/md/rXsbg_mode_sXl.c: New test.
	* gcc.target/s390/s390.exp (check_effective_target_z10_instructions):
	Procedure to check for z10 instruction set.

From-SVN: r235822
2016-05-03 13:30:33 +00:00
Christophe Lyon
1e26cec1ff inline-8.c: Require c99_runtime.
* gcc.dg/ipa/inline-8.c: Require c99_runtime.

From-SVN: r235821
2016-05-03 15:06:40 +02:00
Alan Modra
71aca5a07a [RS6000] Fix ICE caused by rs6000_savres_strategy thinko
rev 235672 (git cffc0b35) changed the condition for SAVE_MULTIPLE/
STORE_MULTIPLE, wrongly allowing a single reg.

gcc/
	* config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
	for SAVE_MULTIPLE/STORE_MULTIPLE.
gcc/testsuite/
	* gcc.target/powerpc/savres.c: Add func using a single gpr.

From-SVN: r235820
2016-05-03 22:08:32 +09:30
Jakub Jelinek
2fd70ec11c * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
*truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead
	of x.

	* gcc.target/i386/avx512f-cvt-1.c: New test.

From-SVN: r235819
2016-05-03 14:18:57 +02:00
H.J. Lu
e5705cf736 Compile ssa-thread-14.c with -fdump-tree-vrp-details
* gcc.dg/tree-ssa/ssa-thread-14.c: Replace -fdump-tree-vrp with
	-fdump-tree-vrp-details.

From-SVN: r235818
2016-05-03 05:14:37 -07:00
Richard Biener
381cdae497 gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter default true.
2016-05-03  Richard Biener  <rguenther@suse.de>

	* gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
	default true.
	(gimplify_arg): Likewise.
	* gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
	re-writing the result to a decl if required.
	(internal_get_tmp_var): Add allow_ssa parameter
	and override into_ssa with it.
	(get_formal_tmp_var): Adjust.
	(get_initialized_tmp_var): Add allow_ssa parameter.
	(gimplify_arg): Add allow_ssa parameter and avoid generating
	SSA names for the result false.
	(gimplify_call_expr): If the call may return twice do not
	gimplify parameters into SSA.
	(prepare_gimple_addressable): Do not allow an SSA name as
	temporary.
	(gimplify_modify_expr): Adjust assert.  For noreturn calls
	with a SSA name LHS adjust its def.
	(gimplify_save_expr): Do not allow an SSA name as save-expr
	result.
	(gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
	(gimplify_body): Init GIMPLE SSA data structures and gimplify
	into-SSA.
	(gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
	an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
	(gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
	for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
	(optimize_target_teams): Do not allow SSA names for clause operands.
	(gimplify_expr): Likewise for where we mark the result addressable.
	* passes.def (pass_init_datastructures): Remove.
	* tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
	(rewrite_stmt): Likewise.
	* tree-inline.c (initialize_cfun): Properly transfer SSA state.
	(replace_locals_op): Replace SSA names.
	(copy_gimple_seq_and_replace_locals): Init src_cfun.
	* gimple-low.c (lower_builtin_setjmp): Deal with SSA.
	* cgraph.c (release_function_body): Free CFG annotations only
	when we have a CFG.  Simplify.
	* gimple-fold.c (gimplify_and_update_call_from_tree): Use
	force_gimple_operand instead of get_initialized_tmp_var.
	* tree-pass.h (make_pass_init_datastructures): Remove.
	* tree-ssa.c (execute_init_datastructures): Remove.
	(pass_data_init_datastructures): Likewise.
	(class pass_init_datastructures): Likewise.
	(make_pass_init_datastructures): Likewise.
	* omp-low.c (create_omp_child_function): Init SSA data structures.
	(grid_expand_target_grid_body): Likewise.
	* tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
	name before adding it to names_to_release.
	(remove_bb): Always release SSA defs.
	* tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
	before dereferencing it.
	* cgraphunit.c (init_lowered_empty_function): Always
	int SSA data structures.
	* tree-ssanames.c (release_defs): Remove assert that we are in
	SSA form.
	* trans-mem.c (diagnose_tm_1): Handle SSA name function.

	c-family/
	* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
	allow call args to gimplify to SSA names.

	* gcc.dg/pr30172-1.c: Adjust.
	* gcc.dg/pr63743.c: Likewise.
	* gcc.dg/tm/pr51696.c: Likewise.
	* c-c++-common/tm/safe-1.c: Likewise.
	* gcc.dg/tree-prof/val-prof-3.c: Likewise.
	* gcc.dg/plugin/self-assign-test-1.c: XFAIL case that needs CSE.
	* g++.dg/plugin/self-assign-test-1.C: Likewise.
	* g++.dg/plugin/self-assign-test-2.C: Likewise.

From-SVN: r235817
2016-05-03 12:06:19 +00:00
Jakub Jelinek
31ed166586 re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)
PR rtl-optimization/70467
	* config/i386/predicates.md (x86_64_hilo_int_operand,
	x86_64_hilo_general_operand): New predicates.
	* config/i386/constraints.md (Wd): New constraint.
	* config/i386/i386.md (mode attr di): Use Wd instead of e.
	(general_hilo_operand): New mode attr.
	(add<mode>3, sub<mode>3): Use <general_hilo_operand>
	instead of <general_operand>.
	(*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
	x86_64_hilo_general_operand instead of <general_operand>.

	* gcc.target/i386/pr70467-3.c: New test.
	* gcc.target/i386/pr70467-4.c: New test.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r235816
2016-05-03 13:45:04 +02:00
Jakub Jelinek
e7437b594f re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
PR tree-optimization/70916
	* tree-if-conv.c (constant_or_ssa_name): Removed.
	(fold_build_cond_expr): Use is_gimple_val instead of
	constant_or_ssa_name.

From-SVN: r235815
2016-05-03 13:43:06 +02:00
Jakub Jelinek
dea60b590c re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
PR tree-optimization/70916
	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
	if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.

	* gcc.c-torture/compile/pr70916.c: New test.

From-SVN: r235814
2016-05-03 13:38:38 +02:00
Jakub Jelinek
adedd5c173 re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')
PR target/49244
	* tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
	(optimize_atomic_bit_test_and): New function.
	(pass_fold_builtins::execute): Use it.
	* optabs.def (atomic_bit_test_and_set_optab,
	atomic_bit_test_and_complement_optab,
	atomic_bit_test_and_reset_optab): New optabs.
	* internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
	ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
	* builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
	* builtins.c (expand_ifn_atomic_bit_test_and): New function.
	* internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
	expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
	expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
	* doc/md.texi (atomic_bit_test_and_set@var{mode},
	atomic_bit_test_and_complement@var{mode},
	atomic_bit_test_and_reset@var{mode}): Document.
	* config/i386/sync.md (atomic_bit_test_and_set<mode>,
	atomic_bit_test_and_complement<mode>,
	atomic_bit_test_and_reset<mode>): New expanders.
	(atomic_bit_test_and_set<mode>_1,
	atomic_bit_test_and_complement<mode>_1,
	atomic_bit_test_and_reset<mode>_1): New insns.

	* gcc.target/i386/pr49244-1.c: New test.
	* gcc.target/i386/pr49244-2.c: New test.

From-SVN: r235813
2016-05-03 13:37:25 +02:00
Richard Sandiford
50891606a9 PR 70687: Use wide_int in combine.c:change_zero_ext
PR 70687 reports a case where combine.c mishandles integer modes
wider than unsigned HOST_WIDE_INT.  I don't have a testcase since
the PR is just pointing out the hole.

Also, I think a ZERO_EXTEND of a vector mode could in principle satisfy
the subreg condition but wouldn't be equivalent to an AND.  E.g.:

      (zero_extend:V4DI (subreg:V4SI (reg:V4DI R) 0))

Tested on x86_64-linux-gnu.

gcc/
	PR rtl-optimization/70687
	* combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
	instead of unsigned HOST_WIDE_INT.

From-SVN: r235811
2016-05-03 10:29:55 +00:00
Bernd Schmidt
f80041efb9 Fix PR44281, bad RA with global regs.
PR rtl-optimization/44281
	* hard-reg-set.h (struct target_hard_regs): New field
	x_fixed_nonglobal_reg_set.
	(fixed_nonglobal_reg_set): New macro.
	* reginfo.c (init_reg_sets_1): Initialize it.
	* ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
	of fixed_reg_set.
	* df-scan.c (df_insn_refs_collect): Asms may reference global regs.

testsuite/
	PR rtl-optimization/44281
	* gcc.target/i386/pr44281.c: New test.

From-SVN: r235809
2016-05-03 09:35:42 +00:00
Bin Cheng
1cfcd39eee re PR tree-optimization/56541 (vectorizaton fails in conditional assignment of a constant)
PR tree-optimization/56541
	* doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
	* params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
	* tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
	(any_complicated_phi): new static variable.
	(aggressive_if_conv): delete.
	(if_convertible_phi_p): support phis with more than two arguments.
	(if_convertible_bb_p): remvoe check on aggressive_if_conv and
	critical pred edges.
	(ifcvt_split_critical_edges): support phis with more than two
	arguments by checking new parameter.  only split critical edges
	if needed.
	(tree_if_conversion): handle simd pragma marked loop using new
	local variable aggressive_if_conv.  check any_complicated_phi.

	gcc/testsuite
	PR tree-optimization/56541
	* gcc.dg/tree-ssa/ifc-pr56541.c: new test.
	* gcc.dg/vect/pr56541.c: new test.

From-SVN: r235808
2016-05-03 09:04:46 +00:00
Bin Cheng
15526589cf tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on before using it.
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
	before using it.

From-SVN: r235807
2016-05-03 08:54:49 +00:00
Bin Cheng
e0db140205 tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber cbase.
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
	cbase.

From-SVN: r235805
2016-05-03 08:38:18 +00:00
Richard Biener
fb2647aaf5 Make-lang.in (cc1-checksum.c): For stage-final re-use the checksum from the previous stage.
2016-05-03  Richard Biener  <rguenther@suse.de>

	c/
	* Make-lang.in (cc1-checksum.c): For stage-final re-use
	the checksum from the previous stage.

	cp/
	* Make-lang.in (cc1plus-checksum.c): For stage-final re-use
	the checksum from the previous stage.

From-SVN: r235804
2016-05-03 08:14:27 +00:00
Oleg Endo
d0ce23266b sh.md (udivsi3, [...]): Simplify.
gcc/
	* config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
	(mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
	define_insn_and_split.
	(mulsi3_i): New define_insn_and_split.
	(mulsi3_call): Convert to define_insn.
	(mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
	Remove constraints.

From-SVN: r235803
2016-05-03 06:47:34 +00:00
Marek Polacek
1d793c3444 * c-common.h (enum c_omp_region_type): Remove stray comma.
From-SVN: r235802
2016-05-03 06:40:46 +00:00
GCC Administrator
1e2867df4e Daily bump.
From-SVN: r235800
2016-05-03 00:16:22 +00:00
Michael Meissner
4304ccfd01 machmode.h (mode_complex): Add support to give the complex mode for a given mode.
[gcc]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* machmode.h (mode_complex): Add support to give the complex mode
	for a given mode.
	(GET_MODE_COMPLEX_MODE): Likewise.
	* stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
	stored by build_complex_type and gfc_build_complex_type instead of
	trying to figure out the appropriate mode based on the size. Raise
	an assertion error, if the type was not set.
	* genmodes.c (struct mode_data): Add field for the complex type of
	the given type.
	(blank_mode): Likewise.
	(make_complex_modes): Remember the complex mode created in the
	base type.
	(emit_mode_complex): Write out the mode_complex array to map a
	type mode to the complex version.
	(emit_insn_modes_c): Likewise.
	* tree.c (build_complex_type): Set the complex type to use before
	calling layout_type.
	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
	support for __float128 complex datatypes.
	(rs6000_hard_regno_mode_ok): Likewise.
	(rs6000_setup_reg_addr_masks): Likewise.
	(rs6000_complex_function_value): Likewise.
	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
	__float128 and __ibm128 complex.
	(FLOAT128_IBM_P): Likewise.
	(ALTIVEC_ARG_MAX_RETURN): Likewise.
	* doc/extend.texi (Additional Floating Types): Document that
	-mfloat128 must be used to enable __float128.  Document complex
	__float128 and __ibm128 support.

[gcc/fortran]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* trans-types.c (gfc_build_complex_type):

[gcc/testsuite]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-complex-1.c: New tests for complex
	__float128.
	* gcc.target/powerpc/float128-complex-2.c: Likewise.

From-SVN: r235794
2016-05-02 23:23:45 +00:00
Jakub Jelinek
fd39794afa re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')
PR target/49244
	* gimple.c (gimple_builtin_call_types_compatible_p): Allow
	char/short arguments promoted to int because of promote_prototypes.

From-SVN: r235792
2016-05-03 00:12:54 +02:00
H.J. Lu
50d94c29c0 backport: Since x86 psABIs require the function incoming stack must align at 16 bytes...
Backport r265322 from llvm upstream

Since x86 psABIs require the function incoming stack must align at 16
bytes, child process stack passed to clone should be aligned at 16
bytes.

	PR testsuite/70520
	* c-c++-common/asan/clone-test-1.c (main): Align child process
	stack to 16 bytes.

From-SVN: r235790
2016-05-02 14:45:34 -07:00
David Malcolm
bc1aee87f6 PR c++/62314: C++: add fixit hint to misspelled member names
When we emit a hint about a misspelled member name, it will slightly
aid readability if we use a fixit-hint to show the proposed
name in context within the source code (and in the future this
might support some kind of auto-apply in an IDE).

This patch adds such a hint to the C++ frontend, taking us from:

test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;
               ^~~~~~

to:

test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;
               ^~~~~~
               color

gcc/cp/ChangeLog:
	PR c++/62314
	* typeck.c (finish_class_member_access_expr): When
	giving a hint about a possibly-misspelled member name,
	add a fix-it replacement hint.

gcc/testsuite/ChangeLog:
	PR c++/62314
	* g++.dg/spellcheck-fields-2.C: New test case.

From-SVN: r235785
2016-05-02 19:09:30 +00:00
Uros Bizjak
7caed52069 * ChangeLog: Add missing entry.
From-SVN: r235783
2016-05-02 20:58:18 +02:00
Uros Bizjak
c8802daf94 predicates.md (register_ssemem_operand): New predicate.
* config/i386/predicates.md (register_ssemem_operand): New predicate.
	* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
	*cmpi<FPCMP:unord><MODEF:mode>_mixed and
	*cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
	alternatives using "enabled" attribute.  Use register_ssemem_operand
	as operand 1 predicate.
	(*cmpi<unord>xf_i387): Split XFmode pattern from
	*cmpi<FPCMP:unord><X87MODEF:mode>_i387.
	(*absneg<mode>2): Merge from *absneg<mode>2_mixed and
	*absneg<mode>2_i387.  Disable unsupported alternatives using
	"enabled" attribute.

From-SVN: r235782
2016-05-02 20:52:33 +02:00
Cesar Philippidis
778864283e c-common.h (enum c_omp_region_type): Define.
gcc/c-family/
	* c-common.h (enum c_omp_region_type): Define.

	gcc/c/
	* c-parser.c (c_parser_oacc_all_clauses): Update call to
	c_finish_omp_clauses.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_oacc_cache): Likewise.
	(c_parser_oacc_loop): Likewise.
	(omp_split_clauses): Likewise.
	(c_parser_omp_declare_target): Likewise.
	(c_parser_cilk_all_clauses): Likewise.
	(c_parser_cilk_for): Likewise.
	* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
	is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.

	gcc/cp/
	* cp-tree.h (finish_omp_clauses): Update prototype.
	* parser.c (cp_parser_oacc_all_clauses): Update call to
	finish_omp_clauses.
	(cp_parser_omp_all_clauses): Likewise.
	(cp_parser_omp_for_loop): Likewise.
	(cp_omp_split_clauses): Likewise.
	(cp_parser_oacc_cache): Likewise.
	(cp_parser_oacc_loop): Likewise.
	(cp_parser_omp_declare_target):
	(cp_parser_cilk_simd_all_clauses): Likewise.
	(cp_parser_cilk_for): Likewise.
	* pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
	arguments with enum c_omp_region_type ort.
	(tsubst_omp_clauses): Update calls to finish_omp_clauses.
	(tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
	(tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
	(tsubst_expr): Update calls to tsubst_omp_clauses.
	* semantics.c (finish_omp_clauses): Replace bool arguments
	allow_fields, declare_simd, and is_cilk with bitmask ort.
	(finish_omp_for): Update call to finish_omp_clauses.

From-SVN: r235780
2016-05-02 11:49:15 -07:00
David Malcolm
474e0129ac PR c++/62314: add fixit hint for missing "template <> " in explicit specialization
gcc/cp/ChangeLog:
	PR c++/62314
	* parser.c (cp_parser_class_head): Capture the start location;
	use it to emit a fix-it insertion hint when complaining
	about missing "template <> " in explicit specializations.

gcc/testsuite/ChangeLog:
	PR c++/62314
	* g++.dg/pr62314.C: New test case.

From-SVN: r235777
2016-05-02 18:36:40 +00:00
Nathan Sidwell
4877b5a4ac omp-low.c (lower_oacc_head_tail): Assert there is at least one marker.
* omp-low.c (lower_oacc_head_tail): Assert there is at least one
	marker.
	(oacc_loop_process): Check mask for loop termination.

From-SVN: r235775
2016-05-02 18:27:40 +00:00
Rainer Orth
4344d7fa74 Don't install libvtv without --enable-vtable-verify
* Makefile.am (toolexeclib_LTLIBRARIES): Only set if
	ENABLE_VTABLE_VERIFY.
	Simplify.
	* Makefile.in: Regenerate.

From-SVN: r235772
2016-05-02 18:10:17 +00:00
Jan Hubicka
201da53f66 ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert accidental change.
* ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
	accidental change.

From-SVN: r235771
2016-05-02 17:38:53 +00:00
Jan Hubicka
fd5fac4c8c * cif-code.def (CIF_THUNK): Add.
From-SVN: r235770
2016-05-02 17:34:32 +00:00
Joseph Myers
ed3c0c8e0c * sv.po, zh_CN.po: Update.
From-SVN: r235768
2016-05-02 18:27:36 +01:00
Marcel Böhme
bfbc839a0b Demangler integer overflow fixes from Marcel Böhme.
PR c++/70498
	* cp-demangle.c: Parse numbers as integer instead of long to avoid
	overflow after sanity checks. Include <limits.h> if available.
	(INT_MAX): Define if necessary.
	(d_make_template_param): Takes integer argument instead of long.
	(d_make_function_param): Likewise.
	(d_append_num): Likewise.
	(d_identifier): Likewise.
	(d_number): Parse as and return integer.
	(d_compact_number): Handle overflow.
	(d_source_name): Change variable type to integer for parsed number.
	(d_java_resource): Likewise.
	(d_special_name): Likewise.
	(d_discriminator): Likewise.
	(d_unnamed_type): Likewise.
	* testsuite/demangle-expected: Add regression test cases.

From-SVN: r235767
2016-05-02 17:06:40 +00:00
Jan Hubicka
818b88a7a1 ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
* ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
	(dump_inline_summary): Dump it.
	(fp_expression_p): New predicate.
	(estimate_function_body_sizes): Use it.
	(inline_merge_summary): Merge fp_expressions.
	(inline_read_section): Read fp_expressions.
	(inline_write_summary): Write fp_expressions.
	* ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
	codegen boundary if either caller or callee is !fp_expressions.
	* ipa-inline.h (inline_summary): Add fp_expressions.
	* ipa-inline-transform.c (inline_call): When inlining !fp_expressions
	to fp_expressions be sure the fp generation flags are updated.

	* gcc.dg/ipa/inline-8.c: New testcase.

From-SVN: r235766
2016-05-02 16:55:56 +00:00
Jakub Jelinek
dd77684f05 re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)
PR rtl-optimization/70467
	* cse.c (cse_insn): Handle no-op MEM moves after folding.

	* gcc.target/i386/pr70467-1.c: New test.

From-SVN: r235765
2016-05-02 18:46:10 +02:00