Commit Graph

65898 Commits

Author SHA1 Message Date
Richard Biener f877b3adba isl.m4: Remove support for ISL 0.14.
2017-02-13  Richard Biener  <rguenther@suse.de>

	config/
	* isl.m4: Remove support for ISL 0.14.

	* configure: Re-generate.

	gcc/
	* configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
	Remove.
	* configure: Re-generate.
	* config.in: Likewise.
	* graphite-dependences.c: Simplify as if
	HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.h: Likewise.
	* toplev.c: Include isl/version.h and use isl_version () for
	printing the ISL version.
	* doc/install.texi: Update ISL requirement.

From-SVN: r245382
2017-02-13 08:54:02 +00:00
Gerald Pfeifer ab874efd6b standards.texi (Standards): Update reference to Objective-C 2.0.
* doc/standards.texi (Standards): Update reference to
	Objective-C 2.0.

From-SVN: r245375
2017-02-12 14:37:46 +00:00
Gerald Pfeifer 2139a88ac1 extend.texi (Named Address Spaces): sourceware.org now defaults to https.
* doc/extend.texi (Named Address Spaces): sourceware.org now
	defaults to https.
	* doc/install.texi (Binaries): Ditto.
	(Specific): Ditto.

From-SVN: r245374
2017-02-12 08:17:00 +00:00
Sandra Loosemore 95bbcf5881 cpp.texi: Replace "stringify"/"stringification" with C standard terminology...
2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/cpp.texi: Replace "stringify"/"stringification" with C 
	standard terminology "stringize"/"stringizing" throughout.
	* doc/cppinternals.texi: Likewise.

From-SVN: r245371
2017-02-11 19:57:21 -05:00
Sandra Loosemore 3350c92a1f extend.texi: Fix some spelling mistakes and typos.
2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/extend.texi: Fix some spelling mistakes and typos.
	* doc/invoke.texi: Likewise.

From-SVN: r245367
2017-02-11 18:08:11 -05:00
Jan Hubicka 540b7af068 re PR tree-optimization/79224 (Large C-Ray slowdown)
PR ipa/79224
	* params.def (inline-min-speedup) Change from 10 to 8.

From-SVN: r245366
2017-02-11 21:49:51 +00:00
Jakub Jelinek c0a2ef7de3 invoke.texi (fopenmp): Bump OpenMP version from 4.0 to 4.5.
* doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
	4.5.

From-SVN: r245360
2017-02-11 19:04:07 +01:00
Jan Hubicka acbbac0444 re PR middle-end/56727 (Recursive call goes through the PLT unnecessarily)
PR tree-ssa/56727
	* gcc.dg/tree-ssa/pr56727.c: New testcase.
	* ipa-utils.c (recursive_call_p): Be more careful about interposition.

From-SVN: r245359
2017-02-11 17:56:02 +00:00
Jan Hubicka 31deea5e71 re PR tree-optimization/79224 (Large C-Ray slowdown)
PR ipa/79224
	* ipa-inline-analysis.c (get_minimal_bb): New function.
	(record_modified): Use it.
	(remap_edge_change_prob): Handle also ancestor functions.

From-SVN: r245357
2017-02-11 16:11:57 +00:00
Gerald Pfeifer 56a9ca7038 contrib.texi (Contributors): Remove broken link into the Mauve CVS repository.
* doc/contrib.texi (Contributors): Remove broken link into
	the Mauve CVS repository.

From-SVN: r245355
2017-02-11 08:46:26 +00:00
Jakub Jelinek 6a5cdb0e9e re PR middle-end/79454 (c-c++-common/ubsan/overflow-vec-*.c FAILs on some 64-bit BE targets)
PR middle-end/79454
	* internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
	result computation whenever lhs doesn't have vector mode, not
	just when it has BLKmode.

From-SVN: r245354
2017-02-11 09:15:30 +01:00
Gerald Pfeifer eb533b4e26 makefile.texi (profiledbootstrap): Refer to the installation instructions only in textual form.
* doc/makefile.texi (profiledbootstrap): Refer to the
	installation instructions only in textual form.

From-SVN: r245348
2017-02-10 22:06:01 +00:00
Aaron Sawdey c1170481c9 re PR target/79295 (gcc.target/powerpc/bcd-3.c fails starting with r244942)
2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	PR target/79295
	* config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.

Applying patch suggested by Meissner.

From-SVN: r245345
2017-02-10 15:07:36 -06:00
Gerald Pfeifer 67afc9a696 install.texi (Specific): Use https for blackfin.uclinux.org.
* doc/install.texi (Specific): Use https for blackfin.uclinux.org.
	(Specific): Update mingw-w64 reference.
	(Binaries): Ditto.
	(Specific): Remove broken link to Renesas RX processor.

From-SVN: r245332
2017-02-10 16:08:46 +00:00
Richard Biener 31f1473a82 toplev.c (process_options): Do not mention obsolete graphite options when...
2017-02-10  Richard Biener  <rguenther@suse.de>

	* toplev.c (process_options): Do not mention obsolete graphite
	options when printing sorry message about missing graphite support.
	Mention -floop-nest-optimize.

From-SVN: r245331
2017-02-10 14:28:11 +00:00
Christophe Lyon 052ef81d2d [ARM,AArch64] more poly64 intrinsics and tests
2017-02-06  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/
	* config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
	(vtst_p16): Likewise.
	(vtstq_p8): Likewise.
	(vtstq_p16): Likewise.
	(vtst_p64): New.
	(vtstq_p64): Likewise.
	* config/arm/arm_neon.h (vgetq_lane_p64): New.
	(vset_lane_p64): New.
	(vsetq_lane_p64): New.

2017-02-06  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/testsuite/
	* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c
	(vget_lane_expected, vset_lane_expected, vtst_expected_poly64x1):
	New.
	(vmov_n_expected0, vmov_n_expected1, vmov_n_expected2)
	(expected_vld_st2_0, expected_vld_st2_1, expected_vld_st3_0)
	(expected_vld_st3_1, expected_vld_st3_2, expected_vld_st4_0)
	(expected_vld_st4_1, expected_vld_st4_2, expected_vld_st4_3)
	(vtst_expected_poly64x2): Move to aarch64-only section.
	(vget_lane_p64, vgetq_lane_p64, vset_lane_p64, vsetq_lane_p64)
	(vtst_p64, vtstq_p64): New tests.

From-SVN: r245328
2017-02-10 14:18:16 +01:00
Jakub Jelinek 6139a3b76c re PR tree-optimization/79411 (ICE: SSA corruption (fail_abnormal_edge_coalesce))
PR tree-optimization/79411
	* tree-ssa-reassoc.c (is_reassociable_op): Return false if
	stmt operands are SSA_NAMEs used in abnormal phis.
	(can_reassociate_p): Return false if op is SSA_NAME used in abnormal
	phis.

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

From-SVN: r245324
2017-02-10 09:47:32 +01:00
Jan Hubicka 388dde26a5 re PR ipa/70795 (gcc/libjava/interpret.cc:1948:1: ICE: in binds_to_current_def_p, at symtab.c:2232)
PR ipa/70795
	* cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
	flag if needed.

From-SVN: r245312
2017-02-09 18:16:00 +00:00
Jan Hubicka 0b90c54148 loop-unswitch-2.c: New testcase.
* gcc.dg/loop-unswitch-2.c: New testcase.
	* gcc.dg/loop-unswitch-1.c: New testcase.
	* tree-ssa-loop-unswitch.c (hoist_guard): Update profile.

From-SVN: r245311
2017-02-09 18:13:35 +00:00
Jakub Jelinek 891ba5eb6d omp-offload.c (oacc_loop_auto_partitions): Use || instead of | to avoid warning.
* omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
	to avoid warning.

From-SVN: r245306
2017-02-09 16:17:55 +01:00
Jakub Jelinek 28f6839be1 re PR c/79413 (ICE in make_ssa_name_fn, at tree-ssanames.c:265)
PR c/79413
	* gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
	not arbitrary TREE_CONSTANT.

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

From-SVN: r245304
2017-02-09 15:26:40 +01:00
Jakub Jelinek 56f7147848 re PR c/79431 (ICE in get, at cgraph.h:397)
PR c/79431
	* gimplify.c (gimplify_adjust_omp_clauses): Ignore
	"omp declare target link" attribute unless is_global_var.
	* omp-offload.c (find_link_var_op): Likewise.
c/
	* c-parser.c (c_parser_omp_declare_target): Don't invoke
	symtab_node::get on automatic variables.
cp/
	* parser.c (cp_parser_oacc_declare): Formatting fix.
	(cp_parser_omp_declare_target): Don't invoke symtab_node::get on
	automatic variables.
testsuite/
	* c-c++-common/gomp/pr79431.c: New test.

From-SVN: r245302
2017-02-09 15:01:44 +01:00
Chung-Lin Tang 02889d23ee gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE.
2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	gcc/
	* gimplify.c (gimplify_scan_omp_clauses): No special handling for
	OMP_CLAUSE_TILE.
	(gimplify_adjust_omp_clauses): Don't delete TILE.
	(gimplify_omp_for): Deal with TILE.
	* internal-fn.c (expand_GOACC_TILE): New function.
	* internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
	(GOACC_TILE): New.
	* omp-expand.c (struct oacc_collapse): Add tile and outer fields.
	(expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
	element fields.
	(expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
	avoid DIV for outermost collapse var.
	(expand_oacc_for): Insert tile element loop as needed.  Adjust.
	Remove out of date comments, fix whitespace.
	* omp-general.c (omp_extract_for_data): Deal with tiling.
	* omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
	adjust OLF_DIM_BASE value.
	(struct omp_for_data): Add tiling field.
	* omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
	(lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
	for auto loops.  Remove default auto determining, moved to
	oacc_loop_fixed_partitions.
	* omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
	stmts, add e_mask field.
	(oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
	(oacc_thread_numbers): Use oacc_dim_call.
	(oacc_xform_tile): New.
	(new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
	(finish_oacc_loop): Adjust for ifns vector.
	(oacc_loop_discover_walk): Append loop abstraction sites to list,
	add case for GOACC_TILE fns.
	(oacc_loop_xform_loop): Delete.
	(oacc_loop_process): Iterate over call list directly, and add
	handling for GOACC_TILE fns.
	(oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
	dump partitioning.
	(oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
	vector partitioning to outer loops.  Assign 2 partitions to loops
	when available. Add TILE handling.
	(oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
	(execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
	* tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
	* tree.c (omp_clause_num_ops): Adjust TILE ops.
	* tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.

	gcc/c/
	* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
	(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
	semantic checking.
	* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.

	gcc/cp/
	* parser.c (cp_parser_oacc_clause_tile): Disallow collapse.  Fix
	parsing.  Parse constant expression. Remove semantic checking.
	(cp_parser_omp_clause_collapse): Disallow tile.
	(cp_parser_omp_for_loop): Deal with tile clause.  Don't emit a parse
	error about missing for after already emitting one.  Use more
	conventional for idiom for unbounded loop.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE.
	* semantics.c (finish_omp_clauses): Correct TILE semantic check.
	(finish_omp_for): Deal with tile clause.

	gcc/fortran/
	* openmp.c (resolve_omp_clauses): Error on directives
	containing both tile and collapse clauses.
	(resolve_oacc_loop_blocks): Represent '*' tile arguments as zero.
	* trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like
	collapsed loops.

	gcc/testsuite/
	* c-c++-common/goacc/combined-directives.c: Remove xfail.
	* c-c++-common/goacc/loop-auto-1.c: Adjust and add additional case.
	* c-c++-common/goacc/loop-auto-2.c: New.
	* c-c++-common/goacc/tile.c: Include stdbool, fix expected errors.
	* c-c++-common/goacc/tile-2.c: New.
	* g++.dg/goacc/template.C: Test tile subst.  Adjust erroneous uses.
	* g++.dg/goacc/tile-1.C: New, check tile subst.
	* gcc.dg/goacc/loop-processing-1.c: Adjust dg-final pattern.
	* gfortran.dg/goacc/combined-directives.f90: Remove xfail.
	* gfortran.dg/goacc/tile-1.f90: New test.
	* gfortran.dg/goacc/tile-2.f90: New test.
	* gfortran.dg/goacc/tile-lowering.f95: New test.

	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
	* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
	add additional case.
	* testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
	"openacc_nvidia_accel_selected".
	* libgomp.oacc-fortran/nested-function-1.f90 (test2):
	Add num_workers(8) clause.

From-SVN: r245300
2017-02-09 13:46:20 +00:00
Gerald Pfeifer 9334ef9e73 configure.ac (ACX_BUGURL): Update.
* configure.ac (ACX_BUGURL): Update.
	* configure: Regenerate.

From-SVN: r245296
2017-02-09 08:30:30 +00:00
Richard Biener 9c0c77d279 re PR tree-optimization/69823 (internal compiler error: in create_pw_aff_from_tree, at graphite-sese-to-poly.c:445)
2017-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69823
	* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
	Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.

	* gcc.dg/graphite/pr69823.c: New testcase.

From-SVN: r245295
2017-02-09 07:47:07 +00:00
Andrew Burgess 3a9abd2302 arc/gcc: Better creation of __NPS400__ define
The __NPS400__ define is currently created in CPP_SPEC unlike the other
target defines, which are created in arc-c.def.  Further, the current
__NPS400__ define is (currently) only created when -mcpu=nps400 is
passed, which is fine, except that if GCC is configured using
--with-cpu=nps400 then the -mcpu option is not required and the
__NPS400__ define will not be created.

This commit moves the __NPS400__ define into arc-c.def inline with all
of the other target defines, and removes the code in CPP_SPEC that used
to create the define.

In order to support the creation of the define in arc-c.def, a new
TARGET_NPS400 macro is created in arc.h.

gcc/ChangeLog:

	* config/arc/arc-c.def: Add __NPS400__ definition.
	* config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
	(TARGET_NPS400): Define.

From-SVN: r245294
2017-02-09 00:35:20 +00:00
Andrew Burgess c3bde35a56 gcc/arc: Make arc_selected_cpu global
Currently we only make the base_architecture globally available, this
means we can tell if we have selected arc700/archs/etc but it's not
possible to tell if the user has selected a specific cpu variant, for
example nps400.

One problem this causes is, for example, in arc-c.def, if we want to add
an __NPS400__ define then we need a flag we can check to determine if
this is the right thing to do.

In this commit the arc_selected_cpu variable (previously local within
arc.c) has been made global.  Two other variables arc_base_cpu and
arc_selected_arch have been deleted, all of this information can be
found within (or through) arc_selected_cpu.

All uses of arc_base_cpu and arc_selected_arch have been updated.  This
commit does not introduce any new defines (like __NPS400__), this is
just a restructuring commit.

The declaration of arc_selected_cpu has moved into arc-arch.h, in
contrast to the declaration of arc_base_cpu which was previously in
arc.h.  This avoids a compilation issue when building libgcc, as the
structure and enums declared in arc-arch.h are not included for libgcc
then declaring an arc_selected_cpu (a struct type) in arc.h would result
in an unknown struct error.  We got away with this for arc_base_cpu as
that was an enum type.  The declaration of arc_selected_cpu in
arc.h could have been wrapped in a '#ifndef IN_LIBGCC2 ... #endif', but
it felt neater to simply move the declaration into arc-arch.h.

gcc/ChangeLog:

	* config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
	file.
	(arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
	pointer, arch_info.
	(arc_cpu_types): Fill the arch_info field with a pointer into the
	arc_arch_types table.
	(arc_selected_cpu): Declare.
	* config/arc/arc.c (arc_selected_cpu): Make global.
	(arc_selected_arch): Delete.
	(arc_base_cpu): Delete.
	(arc_override_options): Remove references to deleted variables,
	update access to arch information.
	(ARC_OPT): Update access to arch information.
	(ARC_OPTX): Likewise.
	* config/arc/arc.h (arc_base_cpu): Remove declaration.
	(TARGET_ARC600): Update access to arch information.
	(TARGET_ARC601): Likewise.
	(TARGET_ARC700): Likewise.
	(TARGET_EM): Likewise.
	(TARGET_HS): Likewise.
	* config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
	information.

From-SVN: r245293
2017-02-09 00:34:00 +00:00
Pat Haugen f39bad9fd0 re PR target/78604 (test case gcc.target/powerpc/p8vector-vectorize-1.c fails starting with r242750)
PR target/78604
	* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
	condition/operands for integer GE/LE/GEU/LEU operations.

	* gcc.target/powerpc/pr78604.c: New.

From-SVN: r245285
2017-02-08 20:49:14 +00:00
Segher Boessenkool a9b99792d0 rs6000: Fix spelling of AltiVec in rs6000.opt (PR79397)
It was spelled Altivec in two user-facing messages in rs6000.opt; let's
be consistent.


	PR translation/79397
	* config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
	of AltiVec.

From-SVN: r245276
2017-02-08 10:59:55 +01:00
Martin Jambor 159f01f8a9 [PR 79375] Avoid passing NULL by reference
2017-02-08  Martin Jambor  <mjambor@suse.cz>

	PR ipa/79375
	* ipa-prop.c (ipa_alloc_node_params): Make static, return bool
	whether allocation happened.
	(ipa_initialize_node_params): Do not call ipa_alloc_node_params if
	nothing was allocated.

From-SVN: r245275
2017-02-08 10:47:09 +01:00
Jakub Jelinek 74a15d1424 re PR tree-optimization/79408 (Missed VRP optimization of integer modulo)
PR tree-optimization/79408
	* tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
	constant, but SSA_NAME with a known integer range, use the minimum
	of that range instead of op1 to determine if modulo can be replaced
	with its first operand.

	* gcc.dg/tree-ssa/pr79408.c: New test.

From-SVN: r245273
2017-02-08 10:21:57 +01:00
Kyrylo Tkachov 01726bc977 [riscv] Fix build due to INT16_MAX issue
* config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.

From-SVN: r245272
2017-02-08 09:14:39 +00:00
Richard Biener d798497efc re PR tree-optimization/71824 (ICE when compiling libiberty with Graphite loop optimizations)
2017-02-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71824
	* graphite-scop-detection.c (scop_detection::build_scop_breadth):
	Check all loops contained in the merged region.

	* gcc.dg/graphite/pr71824-2.c: New testcase.

From-SVN: r245270
2017-02-08 08:30:48 +00:00
Andrew Pinski 9d5019a196 aarch64.md (popcount<mode>2): New pattern.
2016-02-07  Andrew Pinski  <apinski@cavium.com>

gcc
	* config/aarch64/aarch64.md (popcount<mode>2): New pattern.

gcc/testsuite
	* gcc.target/aarch64/popcount.c : New Testcase.

From-SVN: r245267
2017-02-08 02:54:17 +00:00
Andrew Pinski 71aba51d64 aarch64-cores.def (thunderx): Disable LSE.
2017-02-07  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
        (thunderxt88): Likewise.
        (thunderxt81): Disable LSE and change v8.1 to v8.
        (thunderxt83): Likewise.

From-SVN: r245266
2017-02-07 18:37:38 -08:00
Jakub Jelinek ff304c0111 re PR middle-end/79399 (GCC fails to compile big source at -O0)
PR middle-end/79399
	* ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
	type from int to size_t.
	* ira-costs.c (struct_costs_size): Change type from int to size_t.

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

From-SVN: r245256
2017-02-07 22:51:21 +01:00
Jakub Jelinek ec48209a6c re PR rtl-optimization/79386 (ICE: segmentation fault in cprop w/ -O2 on 32-bit BE powerpc)
PR rtl-optimization/79386
	* cprop.c (bypass_conditional_jumps): Initialize
	bypass_last_basic_block already before splitting bbs after
	unconditional traps...
	(bypass_conditional_jumps): ... rather than here.

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

From-SVN: r245251
2017-02-07 18:45:57 +01:00
Jakub Jelinek 1f138b7529 re PR target/79299 (Operand size mismatch for `vpgatherqd' w/ -O3 -masm=intel -mavx512bw)
PR target/79299
	* config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
	(*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
	*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
	fix -masm=intel patterns.

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

From-SVN: r245248
2017-02-07 16:42:42 +01:00
Richard Biener a4cf4b647c re PR tree-optimization/79256 (FAIL: gcc.dg/vect/pr25413a.c execution test)
2017-02-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79256
	PR middle-end/79278
	* builtins.c (get_object_alignment_2): Use min_align_of_type
	to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
	and ADJUST_FIELD_ALIGN.

	* doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
	type parameter.
	* doc/tm.texi: Regenerate.
	* stor-layout.c (layout_decl): Adjust.
	(update_alignment_for_field): Likewise.
	(place_field): Likewise.
	(min_align_of_type): Likewise.
	* config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
	* config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
	* config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/frv/frv.c (frv_adjust_field_align): Likewise.
	* config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/i386/i386.c (x86_field_alignment): Likewise.
	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
	 Likewise.

	go/
	* go-backend.c (go_field_alignment): Adjust.

	libobjc/
	* encoding.c (objc_layout_structure_next_member): Adjust
	ADJUST_FIELD_ALIGN usage.

	Revert
	2017-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79256
	* targhooks.c (default_builtin_vector_alignment_reachable): Honor
	BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
	alignment on TYPE.

From-SVN: r245245
2017-02-07 11:29:06 +00:00
Toma Tabacu a4166fe553 MIPS: Fix mode mismatch error between Loongson builtin arguments and insn
operands.

gcc/

	* config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
	argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
	builtins to SImode and emit a zero-extend, if necessary.

From-SVN: r245243
2017-02-07 10:34:47 +00:00
Palmer Dabbelt 7953d56659 Alphebetize RISC-V Options section
2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>

        * docs/invoke.texi (RISC-V Options): Alphabetize.

From-SVN: r245231
2017-02-06 21:39:18 +00:00
Palmer Dabbelt 377ee2e435 Use two spaces to separate options in the RISC-V docs
gcc/ChangeLog:

2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>

        * doc/invoke.texi (RISC-V Options): Use two spaces to separate
        options.

From-SVN: r245230
2017-02-06 21:39:13 +00:00
Palmer Dabbelt ef57f7d6b1 RISC-V Port: Regenerate gcc/configure
From-SVN: r245225
2017-02-06 21:38:43 +00:00
Palmer Dabbelt 09cae7507d RISC-V Port: gcc
gcc/ChangeLog:

2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>

        * config/riscv/riscv.c: New file.
        * gcc/common/config/riscv/riscv-common.c: Likewise.
        * config.gcc: Likewise.
        * config/riscv/constraints.md: Likewise.
        * config/riscv/elf.h: Likewise.
        * config/riscv/generic.md: Likewise.
        * config/riscv/linux.h: Likewise.
        * config/riscv/multilib-generator: Likewise.
        * config/riscv/peephole.md: Likewise.
        * config/riscv/pic.md: Likewise.
        * config/riscv/predicates.md: Likewise.
        * config/riscv/riscv-builtins.c: Likewise.
        * config/riscv/riscv-c.c: Likewise.
        * config/riscv/riscv-ftypes.def: Likewise.
        * config/riscv/riscv-modes.def: Likewise.
        * config/riscv/riscv-opts.h: Likewise.
        * config/riscv/riscv-protos.h: Likewise.
        * config/riscv/riscv.h: Likewise.
        * config/riscv/riscv.md: Likewise.
        * config/riscv/riscv.opt: Likewise.
        * config/riscv/sync.md: Likewise.
        * config/riscv/t-elf-multilib: Likewise.
        * config/riscv/t-linux: Likewise.
        * config/riscv/t-linux-multilib: Likewise.
        * config/riscv/t-riscv: Likewise.
        * configure.ac: Likewise.
        * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
        Waterman as RISC-V maintainers.
        * doc/install.texi: Add RISC-V entries.
        * doc/invoke.texi: Add RISC-V options section.
        * doc/md.texi: Add RISC-V constraints section.

From-SVN: r245224
2017-02-06 21:38:37 +00:00
Michael Meissner 391675acd2 re PR target/66144 (vector element operator produces very bad code)
[gcc]
2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/66144
	* config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
	false values to be constant vectors with all 0 or all 1 bits set.
	(vcondu<mode><mode>): Likewise.
	* config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
	predicate.
	(fpmask_comparison_operator): Update comment.
	(vecint_comparison_operator): New predicate.
	* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
	vector conditionals when the true and false values are constant
	vectors with all 0 bits or all 1 bits set.

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

	PR target/66144
	* gcc.target/powerpc/pr66144-1.c: New test.
	* gcc.target/powerpc/pr66144-2.c: Likewise.
	* gcc.target/powerpc/pr66144-3.c: Likewise.

From-SVN: r245222
2017-02-06 21:07:37 +00:00
Martin Sebor e495e31a20 PR tree-optimization/ 79376 - wrong lower bound with %s and non-constant
strings in -Wformat-overflow

gcc/ChangeLog:
	* gimple-fold.c (get_range_strlen): Set the minimum length to zero.

From-SVN: r245221
2017-02-06 13:11:51 -07:00
Uros Bizjak 6f26f15f13 sse.md (vector modes -> vec_extract* splitter): Use explicit subreg RTX with operand 1.
* config/i386/sse.md (vector modes -> vec_extract* splitter): Use
	explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
	to simplify split condition.

From-SVN: r245217
2017-02-06 20:46:51 +01:00
Jakub Jelinek dc06356ab8 omp-expand.c (oxpand_omp_atomic_fetch_op, [...]): Return false if can_atomic_load_p is false.
* omp-expand.c (oxpand_omp_atomic_fetch_op,
	expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
	false.

From-SVN: r245216
2017-02-06 20:25:02 +01:00
Segher Boessenkool 176274c9bf sched: Do not move expensive insns speculatively (PR68664)
Scheduling should never move very expensive instructions to places they
are executed more frequently.  This patch fixes that, reducing the
execution time of c-ray by over 40% (I tested on a BE Power7 system).

This introduces a new target hook sched.can_speculate_insn which returns
whether the scheduler is allowed to speculate a given instruction.  The
rs6000 implementation disallows all divide and square root instructions.


	PR rtl-optimization/68664
	* target.def (can_speculate_insn): New hook.
	* doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
	* doc/tm.texi: Regenerate.
	* sched-rgn.c (can_schedule_ready_p): Use the new hook.
	* config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
	(rs6000_sched_can_speculate_insn): New function.

From-SVN: r245215
2017-02-06 20:19:49 +01:00
Jakub Jelinek 2568d8a1f6 re PR tree-optimization/79284 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_gimple failed)
PR tree-optimization/79284
	* tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
	* tree-vect-stmts.c (vect_get_vec_def_for_operand,
	vectorizable_mask_load_store, vectorizable_operation,
	vect_is_simple_cond, get_same_sized_vectype): Use it instead
	of comparing TREE_CODE of a type against BOOLEAN_TYPE.
	* tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
	vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
	* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
	Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
	is_gimple_assign (stmt).  Replace another such test with
	is_gimple_assign (stmt).
testsuite/
	* gcc.c-torture/compile/pr79284.c: New test.

From-SVN: r245214
2017-02-06 20:15:36 +01:00