Commit graph

146424 commits

Author SHA1 Message Date
Matthias Klose
880ce6a8a4 libtool-version: Bump soversion.
2016-06-01  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Bump soversion.

From-SVN: r237007
2016-06-01 20:10:48 +00:00
Michael Meissner
58f2fb5ca1 re PR target/71186 (PowerPC64: Autovectorised code hits ICE with -O3 -mpower9 -mlra)
[gcc]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71186
	* config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
	for loading up all 0's or all 1's.

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

	PR target/71186
	* gcc.target/powerpc/pr71186.c: New test.

Index: gcc/config/rs6000/vsx.md
===================================================================
--- gcc/config/rs6000/vsx.md	(.../svn+ssh://meissner@gcc.gnu.org/svn/gcc/trunk/gcc/config/rs6000)	(revision 236935)
+++ gcc/config/rs6000/vsx.md	(.../gcc/config/rs6000)	(working copy)
@@ -776,8 +776,8 @@ (define_insn "xxspltib_v16qi"
   [(set_attr "type" "vecperm")])
 
 (define_insn "xxspltib_<mode>_nosplit"
-  [(set (match_operand:VSINT_842 0 "vsx_register_operand" "=wa")
-	(match_operand:VSINT_842 1 "xxspltib_constant_nosplit" "wE"))]
+  [(set (match_operand:VSINT_842 0 "vsx_register_operand" "=wa,wa")
+	(match_operand:VSINT_842 1 "xxspltib_constant_nosplit" "jwM,wE"))]
   "TARGET_P9_VECTOR"
 {
   rtx op1 = operands[1];

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

	* config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
	alternatives, eliminating preferred register class.  Add support
	for the MTVSRDD instruction in ISA 3.0.
	(vsx_splat_v4si_internal): Use splat_input_operand instead of
	reg_or_indexed_operand.
	(vsx_splat_v4sf_internal): Likewise.

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

	* gcc.target/powerpc/p9-splat-4.c: New test.

From-SVN: r237006
2016-06-01 20:09:35 +00:00
Jerry DeLisle
4731c9f025 re PR fortran/52393 (I/O: "READ format" statement with parenthesed default-char-expr)
2016-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/52393
	* io.c (match_io): For READ, try to match a default character
	expression. If found, set the dt format expression to this,
	otherwise go back and try control list.

	PR fortran/52393
	* gfortran.dg/fmt_read_3.f90: New test.

From-SVN: r237003
2016-06-01 17:06:50 +00:00
Thomas Preud'homme
042dee3e3b sourcebuild.texi (arm_acq_rel): Document new effective target.
2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_acq_rel): New
    procedure.

From-SVN: r237002
2016-06-01 16:54:18 +00:00
Eduard Sanou
15c98b2e0d c-common.c (get_source_date_epoch): Rename to cb_get_source_date_epoch.
gcc/c-family/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

	* c-common.c (get_source_date_epoch): Rename to
	cb_get_source_date_epoch.
	* c-common.c (cb_get_source_date_epoch): Use a single generic erorr
	message when the parsing fails.  Use error_at instead of fatal_error.
	* c-common.h (get_source_date_epoch): Rename to
	cb_get_source_date_epoch.
	* c-common.h (cb_get_source_date_epoch): Prototype.
	* c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
	* c-common.h (c_omp_region_type): Remove trailing comma.
	* c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
	* c-lex.c (c_lex_with_flags): Remove initialization of
	pfile->source_date_epoch.

gcc/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

	* doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
	extension.
	* gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
	* gcc.c (set_source_date_epoch_envvar): New function, sets
	the SOURCE_DATE_EPOCH environment variable to the current time.

gcc/testsuite/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

	* gcc.dg/cpp/source_date_epoch-1.c: New file, test the proper
	behaviour of the macros __DATE__ and __TIME__ when SOURCE_DATE_EPOCH
	env var is set.
	* gcc.dg/cpp/source_date_epoch-2.c: New file, test the error output
	when parsing the SOURCE_DATE_EPOCH env var, and make sure it is only
	shown once.
	* lib/gcc-dg.exp (dg-set-compiler-env-var): New function, set env vars
	during compilation.
	* lib/gcc-dg.exp (restore-compiler-env-var): New function, restore env
	vars set by dg-set-compiler-env-var.

libcpp/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

	* include/cpplib.h (cpp_callbacks): Add get_source_date_epoch
	callback.
	* include/cpplib.h (cpp_init_source_date_epoch): Remove prototype.
	* init.c (cpp_init_source_date_epoch): Remove function.
	* init.c (cpp_create_reader): Initialize pfile->source_date_epoch.
	* internal.h (cpp_reader): Extend comment about source_date_epoch.
	* macro.c (_cpp_builtin_macro_text): Use get_source_date_epoch
	callback only once, read pfile->source_date_epoch on future passes.
	Check that get_source_date_epoch callback is not NULL.

From-SVN: r237001
2016-06-01 16:42:41 +00:00
Eric Botcazou
de482e91f1 tree-vect-loop.c (vect_determine_vectorization_factor): Also compute the factor for live Phi nodes.
* tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
	the factor for live Phi nodes.

From-SVN: r236999
2016-06-01 16:06:10 +00:00
Jan Hubicka
ae7a747271 loop-dolop.c (doloop_optimize): Us likely max iteration bound.
* loop-dolop.c (doloop_optimize): Us likely max iteration bound.
	* tree-parloops.c (parallelize_loops): likewise.
	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
	tree_unswitch_outer_loop): likewise.

From-SVN: r236998
2016-06-01 15:26:46 +00:00
Paul Thomas
6442a6f43b re PR fortran/71156 (PURE interface/definition inconsistency: accepts invalid, rejects valid)
2016-06-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/71156
	* decl.c (copy_prefix): Add checks that the module procedure
	declaration prefixes are compliant with the interface. Invert
	order of existing elemental and pure checks.
	* resolve.c (resolve_fl_procedure): Invert order of elemental
	and pure errors.

2016-06-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/71156
	* gfortran.dg/submodule_14.f08: Add missing recursive prefix
	to the module procedure declaration.
	* gfortran.dg/submodule_16.f08: New test.

From-SVN: r236996
2016-06-01 14:30:00 +00:00
Jakub Jelinek
ab62397a1b re PR middle-end/71371 (ICE with OpenMP taskloop and addressable iterator)
PR middle-end/71371
	* gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
	around creation of the temporary.

	* c-c++-common/gomp/pr71371.c: New test.

From-SVN: r236994
2016-06-01 16:24:02 +02:00
Richard Biener
b66af6ed30 re PR tree-optimization/71366 (ICE on valid code at -O3 on x86_64-linux-gnu: Segmentation fault)
2016-06-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71366
	* tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
	(unloop_loops): Move removing edges here ...
	(try_unroll_loop_completely): ... from here.
	(try_peel_loop): ... and here.
	(tree_unroll_loops_completely_1): Track parent loops via
	bitmap of header BBs.
	(tree_unroll_loops_completely): Adjust for that.

	* gcc.dg/torture/pr71366-1.c: New testcase.
	* gcc.dg/torture/pr71366-2.c: Likewise.

From-SVN: r236993
2016-06-01 14:05:22 +00:00
Kelvin Nilsen
e342b9d826 altivec.h (vec_slv): New macro.
gcc/ChangeLog:

2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/altivec.h (vec_slv): New macro.
	(vec_srv): New macro.
	* config/rs6000/altivec.md (UNSPEC_VSLV): New value.
	(UNSPEC_VSRV): New value.
	(vslv): New insn.
	(vsrv): New insn.
	* config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
	(vsrv): New builtin definition.
	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
	define argument types for new builtin.
	(P9V_BUILTIN_VSRV): Macro expansion to define argument types for
	new builtin.
	* doc/extend.texi: Document the new vec_vslv and vec_srv built-in
	functions. 

gcc/testsuite/ChangeLog:

2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/vslv-0.c: New test.
	* gcc.target/powerpc/vslv-1.c: New test.
	* gcc.target/powerpc/vsrv-0.c: New test.
	* gcc.target/powerpc/vsrv-1.c: New test.

From-SVN: r236992
2016-06-01 14:01:10 +00:00
Uros Bizjak
4bdf739d71 re PR target/67310 ([PATCH] gcc 4.8.4 fails to compile with -march=native on VIA nano CPU)
PR target/67310
	* config/i386/driver-i386.c (host_detect_local_cpu): Correctly
	detect processor family for signature_CENTAUR_ebx.
	<case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
	signature_CENTAUR_ebx.
	<case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
	<default>: Pass x86-64 for has_longmode.


Co-Authored-By: Jocelyn Mayer <l_indien@magic.fr>

From-SVN: r236991
2016-06-01 15:44:37 +02:00
Nathan Sidwell
721547cd0d nvptx.c (nvptx_assemble_undefined_decl): Reject undefined weak.
* config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
	undefined weak.

	testsuite/
	* c-c++-common/torture/pr57945.c: Add expected PTX error.
	* gcc.target/nvptx/weak.c: New.

From-SVN: r236990
2016-06-01 13:41:19 +00:00
Richard Biener
fa2c903458 re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)
2016-06-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71261
	* tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
	of stmts successfully put in the bool pattern.  Remove
	single-use restriction.
	(adjust_bool_pattern_cast): Add cast at the use site via the
	pattern def sequence.
	(adjust_bool_pattern): Remove recursion, maintain a hash-map
	of patterned defs.  Use the pattern def seqence instead of
	multiple independent patterns.
	(sort_after_uid): New qsort compare function.
	(adjust_bool_stmts): New function to process stmts in the bool
	pattern in IL order.
	(vect_recog_bool_pattern): Adjust.
	* tree-if-conv.c (ifcvt_split_def_stmt): Remove.
	(ifcvt_walk_pattern_tree): Likewise.
	(stmt_is_root_of_bool_pattern): Likewise.
	(ifcvt_repair_bool_pattern): Likewise.
	(tree_if_conversion): Do not call ifcvt_repair_bool_pattern.

	* gcc.dg/torture/vect-bool-1.c: New testcase.

From-SVN: r236989
2016-06-01 13:08:24 +00:00
Jakub Jelinek
3e32893c0b parse.c (case_decl): Move ST_OMP_* to ...
* parse.c (case_decl): Move ST_OMP_* to ...
	(case_omp_decl): ... here, new macro.
	(verify_st_order): For case_omp_decl, complain about
	p->state >= ORDER_EXEC, but don't change p->state otherwise.

	* gfortran.dg/gomp/order-1.f90: New test.
	* gfortran.dg/gomp/order-2.f90: New test.

From-SVN: r236987
2016-06-01 14:21:38 +02:00
Jan Hubicka
8c38360082 loop-unroll.c (decide_unroll_constant_iterations, [...]): Use likely upper bounds.
* loop-unroll.c (decide_unroll_constant_iterations,
	decide_unroll_runtime_iterations, decide_unroll_stupid): Use
	likely upper bounds.
	* loop-iv.c (find_simple_exit): Dump likely upper bounds.

	* gcc.dg/unroll-6.c: Update template.
	* gcc.dg/unroll-7.c: New testcase.
	* gcc.dg/unroll-8.c: New testcase.

From-SVN: r236986
2016-06-01 12:01:17 +00:00
Thomas Schwinge
268143a480 Remove the unused OMP_CLAUSE_DEVICE_RESIDENT
gcc/
	* tree-core.h (enum omp_clause_code): Remove
	OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.

From-SVN: r236985
2016-06-01 13:55:35 +02:00
Kyrylo Tkachov
4272cd33e1 [ARM] Use proper output modifier for DImode register in store exclusive patterns
* config/arm/sync.md (arm_store_exclusive<mode>):
	Use 'H' output modifier on operands[2] rather than creating a new
	entry in out-of-bounds memory of the operands array.
	(arm_store_release_exclusivedi): Likewise.

From-SVN: r236984
2016-06-01 10:44:07 +00:00
Kyrylo Tkachov
39fa4aec86 [ARM] Tie operand 1 to operand 0 in AESMC pattern when fusing AES/AESMC
* config/arm/arm.c (arm_fusion_enabled_p): New function.
	* config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
	* config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
	Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.

From-SVN: r236982
2016-06-01 10:37:27 +00:00
Eric Botcazou
a0dfeef505 tree-vect-loop.c (vect_determine_vectorization_factor): Also take into account live statements for mask producers.
* tree-vect-loop.c (vect_determine_vectorization_factor): Also take
	into account live statements for mask producers.

From-SVN: r236981
2016-06-01 10:35:30 +00:00
Richard Biener
4618c45320 re PR tree-optimization/71311 (spec2006 test case 416.gamess fails since r235817)
2016-06-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71311
	* match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
	restrict to non-INTEGER_CST @0.

From-SVN: r236980
2016-06-01 10:33:35 +00:00
Richard Biener
a8e9f9a310 match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2016-06-01  Richard Biener  <rguenther@suse.de>

	* match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
	(relational patterns): Use :c to avoid pattern duplications.

From-SVN: r236979
2016-06-01 10:31:30 +00:00
Paolo Carlini
48de570121 re PR c++/66635 (g++ ICE when compiling constexpr code with comma operator)
2016-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66635
	* g++.dg/cpp0x/constexpr-ice16.C: New.

From-SVN: r236978
2016-06-01 09:48:05 +00:00
Richard Biener
e04d2a35c8 genmatch.c (comparison_code_p): New predicate.
2016-06-01  Richard Biener  <rguenther@suse.de>

	* genmatch.c (comparison_code_p): New predicate.
	(swap_tree_comparison): New function.
	(commutate): Add for_vec parameter to append new for entries.
	Support commutating relational operators by swapping it alongside
	operands.
	(lower_commutative): Adjust.
	(dt_simplify::gen): Do not pass artificial operators to gen
	functions.
	(decision_tree::gen): Do not add artificial operators as parameters.
	(parser::parse_expr): Verify operator commutativity when :c is
	applied.  Allow :C to override this.
	* match.pd: Adjust patterns to use :C instead of :c where required.

From-SVN: r236977
2016-06-01 09:00:57 +00:00
Simon Wright
e4b631a5a8 re PR ada/71358 (GNAT.Command_Line.Getopt fails if there are no switches)
PR ada/71358
	* g-comlin.adb (Display_Section_Help): Do not dereference
	Config.Switches if it's null.
	(Getopt): Likewise.

From-SVN: r236975
2016-06-01 07:43:57 +00:00
Patrick Palka
827cf695d9 re PR tree-optimization/71314 (test case gcc.dg/tree-ssa/ssa-thread-14.c fails starting with its introduction in r235653)
Fix PR tree-optimization/71314

gcc/testsuite/ChangeLog:

	PR tree-optimization/71314
	* gcc.dg/tree-ssa/ssa-thread-14.c: Adjust target selector.  Pass
	-mbranch-cost=2.

From-SVN: r236974
2016-06-01 02:37:50 +00:00
Patrick Palka
ff66f6e835 re PR tree-optimization/71077 (gcc -lto raises ICE)
Fix PR tree-optimization/71077

gcc/ChangeLog:

	PR tree-optimization/71077
	* tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
	the combining step, use boolean_false_node and boolean_true_node
	as the designated false/true return values.

gcc/testsuite/ChangeLog:

	PR tree-optimization/71077
	* gcc.dg/tree-ssa/pr71077.c: New test.

From-SVN: r236973
2016-06-01 02:36:27 +00:00
GCC Administrator
98146cc95f Daily bump.
From-SVN: r236972
2016-06-01 00:16:20 +00:00
Jan Hubicka
050fb2092b predict-lop-exit-1.C: Update template for new predictor name.
* g++.d/predict-lop-exit-1.C: Update template for new predictor name.
	* g++.d/predict-lop-exit-2.C: Update template for new predictor name.
	* g++.d/predict-lop-exit-2.C: Update template for new predictor name.

	* predict.def (PRED_LOOP_EXTRA_EXIT): Define.
	* predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
	(predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
	PRED_LOOP_EXIT.

From-SVN: r236968
2016-05-31 23:33:08 +00:00
Jan Hubicka
226e9d1aab invoke.texi (-frename-registers): Drop -fpeel-loops from list of flags impliying the register renaming.
* doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
	of flags impliying the register renaming.
	* toplev.c (process_options): Do not imply flag_rename_registers with
	loop peeling.

From-SVN: r236966
2016-05-31 23:23:40 +00:00
Jason Merrill
8d857afc86 * pt.c (instantiate_decl): Avoid recalculation.
From-SVN: r236947
2016-05-31 15:49:22 -04:00
Jason Merrill
1f032c533f PR c++/60095 - partial specialization of variable templates
PR c++/69515
	PR c++/69009
	* pt.c (instantiate_template_1): Don't put the partial
	specialization in DECL_TI_TEMPLATE.
	(partial_specialization_p, impartial_args): Remove.
	(regenerate_decl_from_template): Add args parm.
	(instantiate_decl): Look up the partial specialization again.

From-SVN: r236946
2016-05-31 15:49:16 -04:00
Jason Merrill
f795360d35 PR c++/71227 - specializing hidden friend
* pt.c (check_explicit_specialization): Give better diagnostic about
	specializing a hidden friend.

From-SVN: r236941
2016-05-31 15:16:26 -04:00
Eric Botcazou
3dc553dd32 re PR ada/71317 (Compiling gnat for rtems fails at s-taprop.adb)
* s-osinte-kfreebsd-gnu.ads (clock_getres): Define.
	(Get_Page_Size): Remove duplicate and return int.

	PR ada/71317
	* s-osinte-rtems.ads (clock_getres): Define.
	(Get_Page_Size): Remove duplicate and return int.

From-SVN: r236938
2016-05-31 18:59:36 +00:00
Paolo Carlini
c642d91957 re PR c++/71248 (crash on in-class initializer of array of pointer to member)
/cp
2016-05-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71248
	* decl.c (check_static_variable_definition): Use DECL_SOURCE_LOCATION
	to obtain correct locations; avoid redundant diagnostics on
	out-of-class definitions.

/testsuite
2016-05-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71248
	* g++.dg/cpp0x/pr71248.C: New.
	* g++.dg/cpp0x/auto7.C: Test column numbers too.
	* g++.dg/cpp0x/constexpr-static8.C: Likewise.
	* g++.dg/init/new37.C: Likewise.
	* g++.dg/template/static1.C: Likewise.
	* g++.dg/template/static2.C: Likewise.

From-SVN: r236931
2016-05-31 17:17:29 +00:00
Oleg Endo
1ac1bb0ccc sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the default implementation.
gcc/
	* config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
	default implementation.

From-SVN: r236930
2016-05-31 15:57:15 +00:00
Nathan Sidwell
86f57bd55c * dwarf2out.c (cur_line_info_table): Add GTY marker.
From-SVN: r236929
2016-05-31 15:54:43 +00:00
Oleg Endo
34d5fe774e Remove SH5 target regs.
gcc/
	* config/sh/constraints.md (b): Remove constraint.
	* config/sh/predicates.md (arith_reg_operand): Remove TARGET_REGISTER_P.
	* config/sh/sh-modes.def (PDI): Remove.
	* config/sh/sh.c (sh_target_reg_class,
	sh_optimize_target_register_callee_saved): Remove functions.
	(sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
	(sh_expand_epilogue): Update comment.
	(sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
	sh_secondary_reload): Remove TARGET_REGS related code.
	* config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
	TARGET_REGISTER_P): Remove macros.
	(SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
	* config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
	TR1_REG, TR2_REG): Remove constants.
	* config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.

From-SVN: r236928
2016-05-31 15:49:13 +00:00
Oleg Endo
a1443cff0d Simplify SH DImode add, sub, neg patterns.
* config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
	define_expand patterns.
	(adddi3_compact): Rename to adddi3.
	(subdi3_compact): Rename to subdi3.
	(*negdi2): Rename to negdi2.
	(*abs<mode>2): Rename to abs<mode>2.

From-SVN: r236927
2016-05-31 15:27:54 +00:00
Oleg Endo
0e07cb7f7d Fix wrong-code issues of RX atomic operations.
gcc/
	* config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
	(atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
	(atomic_sub_fetchsi): ... this new pattern.
	(mvtc): Add CC_REG clobber.

From-SVN: r236926
2016-05-31 15:06:25 +00:00
H.J. Lu
d6439e0854 Scan %\[re\]di instead of %rdi
Since x32 may use 32-bit register in address, we should scan %\[re\]di
instead of %rdi.

	* gcc.target/i386/avx512vl-vbroadcast-3.c: Scan %\[re\]di
	instead of %rdi.
	* gcc.target/i386/avx512vl-vcvtps2ph-3.c: Likewise.

From-SVN: r236925
2016-05-31 08:00:25 -07:00
Marek Polacek
780b9dd440 gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
* gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.

	* c-c++-common/Wswitch-unreachable-3.c: New test.
	* g++.dg/warn/Wswitch-unreachable-1.C: New test.

From-SVN: r236924
2016-05-31 14:55:05 +00:00
Kyrylo Tkachov
d7b03373d6 [AArch64] Use aarch64_fusion_enabled_p to check for insn fusion capabilities
* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
	aarch64_fusion_enabled_p to check for fusion capabilities.

From-SVN: r236921
2016-05-31 12:35:42 +00:00
Richard Biener
0d99f8a070 re PR tree-optimization/71352 (ICE at -O1 and above on x86_64-linux-gnu: in zero_one_operation, at tree-ssa-reassoc.c:1251)
2016-05-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71352
	* tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
	minus one and a negate.

	* gcc.dg/tree-ssa/reassoc-45.c: New testcase.

From-SVN: r236920
2016-05-31 12:18:15 +00:00
Roger Sayle
a1293f402a builtins.c (java_builtins): Use popcount* and bswap* builtins to implement bitCount() and reverseBytes()...
2016-05-31  Roger Sayle  <roger@nextmovesoftware.com>

gcc/java:
	* builtins.c (java_builtins): Use popcount* and bswap* builtins to
	implement bitCount() and reverseBytes() methods in java.lang.Integer
	and friends.
	(initialize_builtins): Annotate math builtins with ECF_LEAF.  Call
	define_builtin for the new popcount* and bswap* builtins.

libjava:
	* testsuite/libjava.lang/BuiltinBitCount.java: New test case.
	* testsuite/libjava.lang/BuiltinReverseBytes.java: Likewise.

From-SVN: r236919
2016-05-31 11:30:56 +00:00
Alan Modra
051154a1f6 Don't needlessly clear xmemdup allocated memory.
* xmemdup.c (xmemdup): Use xmalloc rather than xcalloc.

From-SVN: r236917
2016-05-31 20:38:54 +09:30
Kyrylo Tkachov
cd78b3dd18 [AArch64] Remove aarch64_simd_attr_length_move
* config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
	Delete prototype.
	* config/aarch64/iterators.md (insn_count): Add descriptive comment.
	* config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
	Remove use of aarch64_simd_attr_length_move, set length attribute
	directly.
	(*aarch64_be_movoi): Likewise.
	(*aarch64_be_movci): Likewise.
	(*aarch64_be_movxi): Likewise.

From-SVN: r236916
2016-05-31 11:04:41 +00:00
Jan Hubicka
29d1d5ec6b loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
* loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
	It no longer does that.
	* toplev.c (process_options): Do not enable flag_web with -fpeel-loops.

From-SVN: r236915
2016-05-31 10:42:59 +00:00
Wladimir J. van der Laan
9014162d18 [PATCH] AARCH64: Remove spurious attribute __unused__ from NEON intrinsic
gcc/

	* config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
	attribute __unused__.

From-SVN: r236914
2016-05-31 10:30:03 +00:00
Thomas Preud'homme
5254564176 arm-protos.h (arm_arch_thumb1): Declare.
2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
    * config/arm/arm.c (arm_arch_thumb1): Define.
    (arm_option_override): Initialize arm_arch_thumb1.
    * config/arm/arm.h (arm_arch_thumb1): Declare.
    (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
    support Thumb-1 ISA.

    gcc/testsuite/
    * gcc.target/arm/armv5_thumb_isa.c: New test.

From-SVN: r236913
2016-05-31 10:10:18 +00:00