Commit Graph

159411 Commits

Author SHA1 Message Date
Jan Hubicka
97c07987a6 cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count to merge probabilities.
* cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count
	to merge probabilities.
	* predict.c (probably_never_executed): Also mark as cold functions
	with global 0 profile and guessed local profile.
	* profile-count.c (profile_probability::combine_with_count): New
	member function.
	* profile-count.h (profile_probability::operator*,
	profile_probability::operator*=, profile_probability::operator/,
	profile_probability::operator/=): Reduce precision to adjusted
	and set value to guessed on contradictory divisions.
	(profile_probability::combine_with_freq): Remove.
	(profile_probability::combine_wiht_count): Declare.
	(profile_count::force_nonzero):: Set to adjusted.
	(profile_count::probability_in):: Set quality to adjusted.
	* tree-ssa-tail-merge.c (replace_block_by): Use
	combine_with_count.

From-SVN: r257010
2018-01-24 08:12:40 +00:00
Paolo Carlini
3885527ddf re PR c++/83921 (GCC rejects constexpr initialization of empty aggregate.)
/cp
2018-01-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/83921
	* decl.c (check_for_uninitialized_const_var): Not static; add
	bool and tsubst_flags_t parameters; adjust to be used both in
	constexpr context and not.
	* constexpr.c (potential_constant_expression_1): Use the above.
	* cp-tree.h (check_for_uninitialized_const_var): Declare.

/testsuite
2018-01-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/83921
	* g++.dg/cpp1y/constexpr-83921-1.C: New.
	* g++.dg/cpp1y/constexpr-83921-2.C: Likewise.
	* g++.dg/cpp1y/constexpr-83921-3.C: Likewise.
	* g++.dg/ext/stmtexpr20.C: Likewise.
	* g++.dg/ext/stmtexpr21.C: Likewise.

From-SVN: r257009
2018-01-24 00:57:18 +00:00
GCC Administrator
7a007e4485 Daily bump.
From-SVN: r257008
2018-01-24 00:16:13 +00:00
Andrew Waterman
0ce42fe12b RISC-V: Add -mpreferred-stack-boundary option.
2018-01-23  Andrew Waterman  <andrew@sifive.com>
	gcc/
	* config/riscv/riscv.c (riscv_stack_boundary): New.
	(riscv_option_override): Set riscv_stack_boundary.  Handle
	riscv_preferred_stack_boundary_arg.
	* config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New.
	(BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY.
	(STACK_BOUNDARY): Set to riscv_stack_boundary.
	(RISCV_STACK_ALIGN): Use STACK_BOUNDARY.
	* config/riscv/riscv.opt (mpreferred-stack-boundary): New.
	* doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary.

Co-Authored-By: Jim Wilson <jimw@sifive.com>

From-SVN: r257005
2018-01-23 15:06:48 -08:00
Max Filippov
0889f16859 libgcc: xtensa: fix NaN return from add/sub/mul/div helpers
libgcc/
2018-01-23  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/ieee754-df.S (__addsf3, __subsf3, __mulsf3)
	(__divsf3): Make NaN return value quiet.
	* config/xtensa/ieee754-sf.S (__adddf3, __subdf3, __muldf3)
	(__divdf3): Make NaN return value quiet.

From-SVN: r257002
2018-01-23 21:42:52 +00:00
Jason Merrill
ea070f267c * g++.dg/cpp1y/lambda-generic.C: Remove libstdc++ dependency.
From-SVN: r257001
2018-01-23 16:24:01 -05:00
Jason Merrill
d78201d30c PR c++/83947 - ICE with auto declarations.
* pt.c (do_auto_deduction): Don't deduce from an auto decl.
	* decl.c (undeduced_auto_decl): Limit to vars and fns.

From-SVN: r257000
2018-01-23 16:23:53 -05:00
David Malcolm
7c719d0849 C++: Fix ICE in fold_for_warn on CAST_EXPR (PR c++/83974)
gcc/cp/ChangeLog:
	PR c++/83974
	* pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout
	for pointer to member function types.

gcc/testsuite/ChangeLog:
	PR c++/83974
	* g++.dg/warn/pr83974.C: New test case.

From-SVN: r256999
2018-01-23 21:19:09 +00:00
Jakub Jelinek
508d0c3da2 re PR sanitizer/83987 (ICE with OpenMP, sanitizer and virtual bases)
PR sanitizer/83987
	* tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of
	DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node.

	* g++.dg/ubsan/pr83987.C: New test.

From-SVN: r256997
2018-01-23 21:36:34 +01:00
H.J. Lu
56dbd05b0e i386: Use const reference of struct ix86_frame to avoid copy
We can use const reference of struct ix86_frame to avoid making a local
copy of ix86_frame.  ix86_expand_epilogue makes a local copy of struct
ix86_frame and uses the reg_save_offset field as a local variable.  This
patch uses a separate local variable for reg_save_offset.

Tested on x86-64 with ada.

	PR target/83905
	* config/i386/i386.c (ix86_expand_prologue): Use cost reference
	of struct ix86_frame.
	(ix86_expand_epilogue): Likewise.  Add a local variable for
	the reg_save_offset field in struct ix86_frame.

From-SVN: r256996
2018-01-23 11:30:32 -08:00
Paul Thomas
f59986b285 re PR fortran/83866 (ICE in gfc_release_symbol, at fortran/symbol.c:3087)
2018-23-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83866
	* decl.c (gfc_match_derived_decl): If eos not matched, recover
	and emit error about garbage after declaration.

2018-23-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83866
	* gfortran.dg/pdt_29.f03 : New test.

From-SVN: r256995
2018-01-23 19:13:10 +00:00
Paul Thomas
84ee745e33 re PR fortran/83898 (ICE in gfc_conv_expr_descriptor, at fortran/trans-array.c:7181)
2018-23-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83898
	* trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
	for characters.

2018-23-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83898
	* gfortran.dg/associate_33.f03 : New test.

From-SVN: r256994
2018-01-23 19:10:48 +00:00
Bin Cheng
5955438a2e re PR tree-optimization/82604 (SPEC CPU2006 410.bwaves ~50% performance regression with trunk@253679 when ftree-parallelize-loops is used)
PR tree-optimization/82604
	* tree-loop-distribution.c (enum partition_kind): New enum item
	PKIND_PARTIAL_MEMSET.
	(partition_builtin_p): Support above new enum item.
	(generate_code_for_partition): Ditto.
	(compute_access_range): Differentiate cases that equality can be
	proven at all loops, the innermost loops or no loops.
	(classify_builtin_st, classify_builtin_ldst): Adjust call to above
	function.  Set PKIND_PARTIAL_MEMSET for partition appropriately.
	(finalize_partitions, distribute_loop): Don't fuse partition of
	PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest.
	(prepare_perfect_loop_nest): Distribute 3-level loop nest only if
	parloop is enabled.

From-SVN: r256990
2018-01-23 16:47:03 +00:00
Martin Liska
cde9b2f815 Handle trailing arrays in ODR warning (PR lto/81440).
2018-01-23  Martin Liska  <mliska@suse.cz>

	PR lto/81440
	* lto-symtab.c (lto_symtab_merge): Handle and do not warn about
	trailing arrays at the end of a struct.
2018-01-23  Martin Liska  <mliska@suse.cz>

	PR lto/81440
	* gcc.dg/lto/pr81440.h: New test.
	* gcc.dg/lto/pr81440_0.c: New test.
	* gcc.dg/lto/pr81440_1.c: New test.

From-SVN: r256989
2018-01-23 15:46:02 +00:00
Martin Liska
813d6db9c4 Remove predictors that are unrealiable.
2018-01-23  Martin Liska  <mliska@suse.cz>

	* predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
	order to ignore the predictor.
	(PRED_POLYMORPHIC_CALL): Likewise.
	(PRED_RECURSIVE_CALL): Likewise.

From-SVN: r256988
2018-01-23 15:43:59 +00:00
Nathan Sidwell
66ce8ff760 [PR c++/839888] Baselink tsubst ICE
https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01954.html
	PR c++/83988
	* pt.c (tsubst_baselink): Remove optype assert.
	* ptree.c (cxx_print_xnode): <case BASELINK> Print BASELINK_OPTYPE.

	PR c++/83988
	* g++.dg/template/pr83988.C: New.

From-SVN: r256986
2018-01-23 14:08:11 +00:00
Jakub Jelinek
55a46cb54a re PR c++/82882 (ICE Segmentation fault)
PR c++/82882
	PR c++/83978
	* g++.dg/cpp0x/pr82882.C: New test.
	* g++.dg/cpp0x/pr83978.C: New test.

From-SVN: r256985
2018-01-23 15:04:18 +01:00
Jakub Jelinek
941ae8b48e re PR c++/83958 (ICE: Segmentation fault (in find_decomp_class_base))
PR c++/83958
	* decl.c (cp_finish_decomp): Diagnose if reference structure binding
	refers to incomplete type.

	* g++.dg/cpp1z/decomp35.C: New test.

From-SVN: r256984
2018-01-23 14:52:23 +01:00
Martin Liska
a53d4f2004 Clean-up IPA profile dump output.
2018-01-23  Martin Liska  <mliska@suse.cz>

	* tree-profile.c (tree_profiling): Print function header to
	aware reader which function we are working on.
	* value-prof.c (gimple_find_values_to_profile): Do not print
	not interesting value histograms.

From-SVN: r256983
2018-01-23 12:26:37 +00:00
Martin Liska
1759468763 Fix profile_quality sanity check.
2018-01-22  Martin Liska  <mliska@suse.cz>

	* profile-count.h (enum profile_quality): Add
	profile_uninitialized as the first value. Do not number values
	as they are zero based.
	(profile_count::verify): Update sanity check.
	(profile_probability::verify): Likewise.

From-SVN: r256982
2018-01-23 12:24:55 +00:00
Nathan Sidwell
d55d1e4fa9 [C++ PATCH] Deprecate ARM-era for scopes
https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01940.html
	gcc/cp/
	Deprecate ARM-era for scope handling
	* decl.c (poplevel): Flag_new_for_scope is a boolean-like.
	(cxx_init_decl_processing): Deprecate flag_new_for_scope being
	cleared.
	* name-lookup.c (check_for_out_of_scope_variable): Deprecate and
	cleanup handling.
	* semantics.c (begin_for_scope): Flag_new_for_scope is
	boolean-like.
	(finish_for_stmt, begin_range_for_stmt): Likewise.

	gcc/
	* doc/invoke.texi (ffor-scope): Deprecate.

	gcc/cp/
	* g++.dg/cpp0x/range-for10.C: Adjust.
	* g++.dg/ext/forscope1.C: Adjust.
	* g++.dg/ext/forscope2.C: Adjust.
	* g++.dg/template/for1.C: Adjust.

From-SVN: r256981
2018-01-23 12:18:50 +00:00
David Malcolm
9972bbbcbf -Warray-bounds: Fix false positive in some "switch" stmts (PR tree-optimization/83510)
PR tree-optimization/83510 reports that r255649 (for
PR tree-optimization/83312) introduced a false positive for
-Warray-bounds for array accesses within certain switch statements:
those for which value-ranges allow more than one case to be reachable,
but for which one or more of the VR-unreachable cases contain
out-of-range array accesses.

In the reproducer, after the switch in f is inlined into g, we have 3 cases
for the switch (case 9, case 10-19, and default), within a loop that
ranges from 0..9.

With both the old and new code, vr_values::simplify_switch_using_ranges clears
the EDGE_EXECUTABLE flag on the edge to the "case 10-19" block.  This
happens during the dom walk within the substitute_and_fold_engine.

With the old code, the clearing of that EDGE_EXECUTABLE flag led to the
      /* Skip blocks that were found to be unreachable.  */
code in the old implementation of vrp_prop::check_all_array_refs skipping
the "case 10-19" block.

With the new code, we have a second dom walk, and that dom_walker's ctor
sets all edges to be EDGE_EXECUTABLE, losing that information.

Then, dom_walker::before_dom_children (here, the subclass'
check_array_bounds_dom_walker::before_dom_children) can return one edge, if
there's a unique successor edge, and dom_walker::walk filters the dom walk
to just that edge.

Here we have two VR-valid edges (case 9 and default), and an VR-invalid
successor edge (case 10-19).  There's no *unique* valid successor edge,
and hence taken_edge is NULL, and the filtering in dom_walker::walk
doesn't fire.

Hence we've lost the filtering of the "case 10-19" BB, hence the false
positive.

The issue is that we have two dom walks: first within vr_values'
substitute_and_fold_dom_walker (which has skip_unreachable_blocks == false),
then another within vrp_prop::check_all_array_refs (with
skip_unreachable_blocks == true).

Each has different "knowledge" about ruling out edges due to value-ranges,
but we aren't combining that information.  The former "knows" about
out-edges at a particular control construct (e.g. at a switch), the latter
"knows" about dominance, but only about unique successors (hence the
problem when two out of three switch cases are valid).

This patch combines the information by preserving the EDGE_EXECUTABLE
flags from the first dom walk, and using it in the second dom walk,
potentially rejecting additional edges.

Doing so fixes the false positive.

I attempted an alternative fix, merging the two dom walks into one, but
that led to crashes in identify_jump_threads, so I went with this, as
a less invasive fix.

gcc/ChangeLog:
	PR tree-optimization/83510
	* domwalk.c (set_all_edges_as_executable): New function.
	(dom_walker::dom_walker): Convert bool param
	"skip_unreachable_blocks" to enum reachability.  Move setup of
	edge flags to set_all_edges_as_executable and only do it when
	reachability is REACHABLE_BLOCKS.
	* domwalk.h (enum dom_walker::reachability): New enum.
	(dom_walker::dom_walker): Convert bool param
	"skip_unreachable_blocks" to enum reachability.
	(set_all_edges_as_executable): New decl.
	* graphite-scop-detection.c  (gather_bbs::gather_bbs): Convert
	from false for "skip_unreachable_blocks" to ALL_BLOCKS for
	"reachability".
	* tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise,
	but converting true to REACHABLE_BLOCKS.
	* tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise.
	* tree-vrp.c
	(check_array_bounds_dom_walker::check_array_bounds_dom_walker):
	Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS.
	(vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to
	REACHABLE_BLOCKS.
	(vrp_prop::vrp_finalize): Call set_all_edges_as_executable
	if check_all_array_refs will be called.

gcc/testsuite/ChangeLog:
	PR tree-optimization/83510
	* gcc.c-torture/compile/pr83510.c: New test case.

From-SVN: r256980
2018-01-23 11:10:47 +00:00
David Malcolm
02851c8c7f Add more test coverage to selftest::test_location_wrappers
gcc/ChangeLog:
	* tree.c (selftest::test_location_wrappers): Add more test
	coverage.

From-SVN: r256979
2018-01-23 11:05:21 +00:00
David Malcolm
485cf85403 Fix memory leaks in sbitmap.c selftests
"make selftest-valgrind" shows a few leaks in sbitmap.c's selftests;
this patch fixes them.

gcc/ChangeLog:
	* sbitmap.c (selftest::test_set_range): Fix memory leaks.
	(selftest::test_bit_in_range): Likewise.

From-SVN: r256978
2018-01-23 11:01:55 +00:00
Richard Sandiford
ef57eeb232 Fix vect_float markup for a couple of tests (PR 83888)
vect_float is true for arm*-*-* targets, but the support is only
available when -funsafe-math-optimizations is on.  This caused
failures in two tests that disable fast-math.

The easiest fix seemed to be to add a new target selector for
"vect_float without special options".

2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR testsuite/83888
	* doc/sourcebuild.texi (vect_float): Say that the selector
	only describes the situation when -funsafe-math-optimizations is on.
	(vect_float_strict): Document.

gcc/testsuite/
	PR testsuite/83888
	* lib/target-supports.exp (check_effective_target_vect_float): Say
	that the result only holds when -funsafe-math-optimizations is on.
	(check_effective_target_vect_float_strict): New procedure.
	* gcc.dg/vect/no-fast-math-vect16.c: Use vect_float_strict instead
	of vect_float.
	* gcc.dg/vect/vect-reduc-6.c: Likewise.

From-SVN: r256977
2018-01-23 10:42:32 +00:00
Richard Sandiford
97e52238b2 Disable some patterns for fold-left reductions (PR 83965)
In this PR we recognised a PLUS_EXPR as a fold-left reduction,
then applied pattern matching to convert it to a WIDEN_SUM_EXPR.
We need to keep the original code in this case since we implement
the reduction using scalar rather than vector operations.

2018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR tree-optimization/83965
	* tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it
	instead of checking only for a reduction.
	(vect_recog_widen_sum_pattern): Likewise.

gcc/testsuite/
	PR tree-optimization/83965
	* gcc.dg/vect/pr83965.c: New test.

From-SVN: r256976
2018-01-23 10:42:10 +00:00
Jan Hubicka
9f4b0885e7 predict.c (probably_never_executed): Only use precise profile info.
* predict.c (probably_never_executed): Only use precise profile info.
	(compute_function_frequency): Skip after inlining hack since we now
	have quality checking.

From-SVN: r256975
2018-01-23 09:55:37 +00:00
Jan Hubicka
dae3e97c81 profile-count.h (profile_probability::very_unlikely, [...]): Set precision to guessed.
* profile-count.h (profile_probability::very_unlikely,
	profile_probability::unlikely, profile_probability::even): Set
	precision to guessed.

From-SVN: r256974
2018-01-23 09:50:01 +00:00
Richard Biener
950d1cd9ba re PR tree-optimization/83963 ([graphite] ICE in merge_sese, at graphite-scop-detection.c:517)
2018-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83963
	* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
	Properly terminate dominator walk when crossing the exit edge not
	when visiting its source block.

	* gfortran.dg/graphite/pr83963.f: New testcase.
	* gcc.dg/graphite/pr83963-2.c: Likewise.

From-SVN: r256973
2018-01-23 08:00:20 +00:00
Jakub Jelinek
2e73a89bc9 re PR c++/83918 ([c++17] ICE on constexpr eval of datatype involving function and variadic template)
PR c++/83918
	* tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than
	VIEW_CONVERT_EXPR to wrap CONST_DECLs.

	* g++.dg/cpp1z/pr83918.C: New test.

From-SVN: r256972
2018-01-23 08:46:05 +01:00
Ian Lance Taylor
38ad6f8a44 cmd/go: buildid support for AIX archives.
Reviewed-on: https://go-review.googlesource.com/88935

From-SVN: r256971
2018-01-23 04:44:12 +00:00
GCC Administrator
f991f1022c Daily bump.
From-SVN: r256970
2018-01-23 00:16:21 +00:00
Jakub Jelinek
164485b5c4 re PR tree-optimization/83957 (ICE: Segmentation fault (in gimple_phi_arg))
PR tree-optimization/83957
	* omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs.  Remove
	semicolon after for body surrounded by braces.

	* gcc.dg/autopar/pr83957.c: New test.

From-SVN: r256967
2018-01-23 00:00:50 +01:00
Jakub Jelinek
f5c517f03c re PR tree-optimization/83081 ([arm] gcc.dg/pr80218.c fails since r254888)
PR tree-optimization/83081
	* profile-count.h (profile_probability::split): New method.
	* dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>:
	Use profile_probability::split.
	(do_compare_rtx_and_jump): Fix adjustment of probabilities
	when splitting a single conditional jump into 2.

	* gcc.dg/predict-8.c: Adjust expected probability.

From-SVN: r256966
2018-01-22 23:59:33 +01:00
Jason Merrill
c3b5602307 PR c++/83720 - different fix
* decl2.c (determine_visibility): Fix template_decl handling
	instead of blocking it.

From-SVN: r256965
2018-01-22 17:41:48 -05:00
Jason Merrill
1fcaa1eb87 PR c++/83720 - ICE with lambda and LTO.
* decl2.c (determine_visibility): Clear template_decl for
	function-scope decls.  Propagate anonymous linkage from containing
	function.

From-SVN: r256964
2018-01-22 16:51:53 -05:00
David Malcolm
3774938ec6 Finish removing class move_computations_dom_walker
r232820 (aka 2c7b2f8860794cc9b9cf5eeea9d7dc109c0de3be) removed the
implementation of class move_computations_dom_walker, but kept the decl.

This patch removes the stray decl.

gcc/ChangeLog:
	PR tree-optimization/69452
	* tree-ssa-loop-im.c (class move_computations_dom_walker): Remove
	decl.

From-SVN: r256963
2018-01-22 20:53:57 +00:00
Sebastian Perta
4101250d9e rl78-expand.md: New define_expand "bswaphi2"
2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78-expand.md: New define_expand "bswaphi2"
	* config/rl78/rl78-virt.md: New define_insn "*bswaphi2_virt"
	* config/rl78/rl78-real.md: New define_insn "*bswaphi2_real"

From-SVN: r256961
2018-01-22 20:20:28 +00:00
Sebastian Perta
10cd6ec51a rl78-protos.h: New function declaration rl78_split_movdi
2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78-protos.h: New function declaration rl78_split_movdi
	* config/rl78/rl78.md: New define_expand "movdi"
	* config/rl78/rl78.c: New function definition rl78_split_movdi

From-SVN: r256960
2018-01-22 19:53:55 +00:00
Michael Meissner
de0ecff83d re PR target/83862 (powerpc: ICE in signbit testcase)
[gcc]
2018-01-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/83862
	* config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete,
	no longer used.
	* config/rs6000/rs6000.c (rs6000_split_signbit): Likewise.
	* config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE
	128-bit to produce an UNSPEC move to get the double word with the
	signbit and then a shift directly to do signbit.
	(signbit<mode>2_dm): Replace old IEEE 128-bit signbit
	implementation with a new version that just does either a direct
	move or a regular move.  Move memory interface to separate insns.
	Move insns so they are next to the expander.
	(signbit<mode>2_dm_mem_be): New combiner insns to combine load
	with signbit move.  Split big and little endian case.
	(signbit<mode>2_dm_mem_le): Likewise.
	(signbit<mode>2_dm_<su>ext): Delete, no longer used.
	(signbit<mode>2_dm2): Likewise.

[gcc/testsuite]
2018-01-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/83862
	* gcc.target/powerpc/pr83862.c: New test.

From-SVN: r256959
2018-01-22 19:36:18 +00:00
Sebastian Perta
bc8b0d0428 rl78.md: New define_expand "anddi3".
2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78.md: New define_expand "anddi3".

2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/anddi3.S: New assembly file.
	* config/rl78/t-rl78: Added anddi3.S to LIB2ADD.

From-SVN: r256958
2018-01-22 19:23:15 +00:00
Sebastian Perta
99cc06ea06 rl78.md: New define_expand "umindi3".
2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78.md: New define_expand "umindi3".

2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/umindi3.S: New assembly file.
	* config/rl78/t-rl78: Added umindi3.S to LIB2ADD.

From-SVN: r256957
2018-01-22 18:51:28 +00:00
Joseph Myers
832f9cc71e * es.po: Update.
From-SVN: r256955
2018-01-22 18:22:58 +00:00
Sebastian Perta
6e9007a093 rl78.md: New define_expand "smindi3".
2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78.md: New define_expand "smindi3".

2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/smindi3.S: New assembly file.
	* config/rl78/t-rl78: Added smindi3.S to LIB2ADD.

From-SVN: r256954
2018-01-22 18:17:09 +00:00
Sebastian Perta
d975e49487 rl78.md: New define_expand "smaxdi3".
2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78.md: New define_expand "smaxdi3".

2018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
 
	* config/rl78/smaxdi3.S: New assembly file.
	* config/rl78/t-rl78: Added smaxdi3.S to LIB2ADD.

From-SVN: r256953
2018-01-22 17:38:26 +00:00
Carl Love
d10cff958f rs6000-builtin.def (ST_ELEMREV_V1TI, [...]): Add macro expansion.
gcc/ChangeLog:

2018-01-22 Carl Love <cel@us.ibm.com>

	* config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI,
	LVX_V1TI): Add macro expansion.
	* config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument
	definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST,
	VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins.
	* config/rs6000/rs6000-p8swap.c (insn_is_swappable_p);
	Change check to determine if the instruction is a byte reversing
	entry.  Fix typo in comment.
	* config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry
	for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI.
	Add def_builtin calls for new builtins.
	* config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti):
	Add define_insn expansion.

gcc/testsuite/ChangeLog:

2018-01-22  Carl Love  <cel@us.ibm.com>
	* gcc.target/powerpc/powerpc.exp: Add torture tests for
	builtins-4-runnable.c, builtins-6-runnable.c,
	builtins-5-p9-runnable.c, builtins-6-p9-runnable.c.
	* gcc.target/powerpc/builtins-6-runnable.c: New test file.
	* gcc.target/powerpc/builtins-4-runnable.c: Add additional tests
	for signed/unsigned 128-bit and long long int loads.

From-SVN: r256952
2018-01-22 17:27:12 +00:00
Marek Polacek
f25d7e06e2 re PR c++/81933 (Invalid "constexpr call flows off the end of the function" error)
PR c++/81933
	* typeck2.c (split_nonconstant_init_1): Return false if we didn't
	split out anything.
	
	* g++.dg/cpp1y/constexpr-empty4.C: New test.

From-SVN: r256951
2018-01-22 16:05:20 +00:00
Sebastian Perta
6a18c14681 fixed year in gcc/ChangeLog and libgcc/ChangeLog
From-SVN: r256949
2018-01-22 15:05:59 +00:00
Sebastian Perta
5dd16013d4 rl78.md: New define_expand "umaxdi3".
2017-01-22  Sebastian Perta  <sebastian.perta@renesas.com>

	* config/rl78/rl78.md: New define_expand "umaxdi3".

2017-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
 
	* config/rl78/umaxdi3.S: New assembly file.
	* config/rl78/t-rl78: Added umaxdi3.S to LIB2ADD.

From-SVN: r256948
2018-01-22 15:00:59 +00:00
Will Schmidt
0d918596ac fold-vec-abs-short-fwrap.c: Add xxspltib to scan-asembler valid instructions list.
[testsuite]

	2018-01-19  Will Schmidt <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-abs-short-fwrap.c: Add xxspltib to
	scan-asembler valid instructions list.
	* gcc.target/powerpc/fold-vec-abs-short.c: Same.
	* gcc.target/powerpc/fold-vec-shift-left-longlong.c: Clean up
	power8-vector requirement and option.
	* gcc.target/powerpc/fold-vec-shift-left-fwrapv.c: Same.

From-SVN: r256947
2018-01-22 14:49:57 +00:00