Commit Graph

142823 Commits

Author SHA1 Message Date
Jan Hubicka 9dc39706b4 alias-1.c: New testcase.
* gcc.c-torture/execute/alias-1.c: New testcase.
	* c-common.c: Do not silently ignore -fstrict-aliasing changes.

From-SVN: r231125
2015-12-01 19:14:44 +00:00
Jan Hubicka 8c86248e58 lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.

	* lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.

From-SVN: r231124
2015-12-01 19:13:12 +00:00
Nathan Sidwell ac8560785f nvptx.c (nvptx_function_arg_advance): Don't consider mode.
* config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
	consider mode.

From-SVN: r231121
2015-12-01 16:58:08 +00:00
Marek Polacek 0b2a137802 re PR tree-optimization/64769 (ICE: tree check: expected integer_cst, have parm_decl in simd_clone_clauses_extract, at omp-low.c:12503 with -fopenmp-simd)
PR tree-optimization/64769
	* c-c++-common/gomp/pr64769.c: New test.

From-SVN: r231120
2015-12-01 16:22:28 +00:00
Bill Schmidt 3b47f4cc10 rs6000.c (const_load_sequence_p): Handle extra indirection for large and small code models.
[gcc]

2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
	indirection for large and small code models.
	(adjust_vperm): Likewise.

[gcc/testsuite]

2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/swaps-p8-22.c: New.

From-SVN: r231119
2015-12-01 16:10:45 +00:00
Julian Brown 37d5ad46dd OpenACC host_data support.
gcc/
	* gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
	support.
	* gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
	(is_gimple_omp_oacc): Add support for above.
	* gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
	(omp_notice_variable): Diagnose undefined implicit uses of
	use_device variables in offloaded regions.
	(gimplify_scan_omp_clauses): Add host_data, use_device
	support. Diagnose undefined mapping of use_device variables in
	OpenACC clauses.
	(gimplify_omp_workshare): Add host_data support.
	(gimplify_expr): Likewise.
	* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
	* omp-low.c (lookup_decl_in_outer_ctx)
	(maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
	host_data regions.
	(scan_sharing_clauses): Support use_device.
	(check_omp_nesting_restrictions): Support host_data.
	(expand_omp_target): Support host_data.
	(lower_omp_target): Skip over outer host_data regions when looking
	up decls. Support use_device.
	(make_gimple_omp_edges): Support host_data.
	* tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
	clause.

	gcc/c/
	* c-parser.c (c_parser_omp_clause_name): Add use_device support.
	(c_parser_oacc_clause_use_device): New function.
	(c_parser_oacc_all_clauses): Add use_device support.
	(OACC_HOST_DATA_CLAUSE_MASK): New macro.
	(c_parser_oacc_host_data): New function.
	(c_parser_omp_construct): Add host_data support.
	* c-tree.h (c_finish_oacc_host_data): Add prototype.
	* c-typeck.c (c_finish_oacc_host_data): New function.
	(c_finish_omp_clauses): Add use_device support.

	gcc/cp/
	* cp-tree.h (finish_oacc_host_data): Add prototype.
	* parser.c (cp_parser_omp_clause_name): Add use_device support.
	(cp_parser_oacc_all_clauses): Add use_device support.
	(OACC_HOST_DATA_CLAUSE_MASK): New macro.
	(cp_parser_oacc_host_data): New function.
	(cp_parser_omp_construct): Add host_data support.
	(cp_parser_pragma): Add host_data support.
	* semantics.c (finish_omp_clauses): Add use_device support.
	(finish_oacc_host_data): New function.

	gcc/c-family/
	* c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
	(pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.

	libgomp/
	* oacc-parallel.c (GOACC_host_data): New function.
	* libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
	* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.


Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: James Norris <James_Norris@mentor.com>

From-SVN: r231118
2015-12-01 15:52:23 +00:00
Marek Polacek 4bc84763c0 re PR tree-optimization/67916 (wrong code at -O3 on x86_64-linux-gnu)
PR tree-optimization/67916
	* gcc.dg/torture/pr67916.c: New test.

From-SVN: r231117
2015-12-01 15:47:34 +00:00
Marek Polacek 8b6ab677a2 re PR middle-end/68582 (-Wunused-function doesn't warn about unused static __attribute__((noreturn)) functions)
PR middle-end/68582
	* cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
	for VAR_DECLs.

	* c-c++-common/pr68582.c: New test.

From-SVN: r231116
2015-12-01 15:44:08 +00:00
Richard Sandiford 6c59645f5d PR68474: Fix tree-call-cdce.c:use_internal_fn
We'd call gen_shrink_wrap_conditions for functions that it can't handle
but edom_only_function can.

Tested on x86_64-linux-gnu.

gcc/
	PR tree-optimization/68474
	* tree-call-cdce.c (use_internal_fn): Protect call to
	gen_shrink_wrap_conditions.

gcc/testsuite/
	PR tree-optimization/68474
	* gcc.dg/pr68474.c: New test.

From-SVN: r231115
2015-12-01 14:53:53 +00:00
Christian Bruel 5797378aab re PR target/68617 (arm ice output_operand: invalid %-code for -march=armv6k + thumb)
2015-12-01  Christian Bruel  <christian.bruel@st.com>

        PR target/68617
        * config/arm/arm.opt (unaligned_access): Save.
        * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
        * config/arm/arm.c (arm_option_override): Move unaligned_access setting
        (arm_option_override_internal): ... here.
        * config/arm/arm.h (TARGET_32BIT_P): New macro.

// testsuite
        PR target/68617
        * gcc.target/arm/attr-unaligned-load-ice.c: New test.

From-SVN: r231114
2015-12-01 15:50:57 +01:00
Tom de Vries f6b65a61e9 Move pr46032*.c tests
2015-12-01  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/pr46032.c: Move to ...
	* gcc.dg/vect/pr46032.c: here.  Add dg-require-effective-target
	vect_int.
	* gcc.dg/pr46032-2.c: Move to ...
	* gcc.dg/gomp/pr46032-2.c: ... here.  Drop dg-require-effective-target fopenmp.
	* gcc.dg/pr46032-3.c: Move to ...
	* gcc.dg/gomp/pr46032-3.c: ... here.  Drop dg-require-effective-target fopenmp.

From-SVN: r231113
2015-12-01 14:44:00 +00:00
Cesar Philippidis 2a70708e0b dump-parse-tree.c (show_omp_clauses): Handle optional num and static arguments for the gang clause.
gcc/fortran/
	* dump-parse-tree.c (show_omp_clauses): Handle optional num and static
	arguments for the gang clause.
	* gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr.
	Add gang_static_expr.
	* openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and
	gang_static_expr.
	(match_oacc_clause_gang): Update to support both num and static in
	the same clause.
	(resolve_omp_clauses): Formatting.  Also handle gang_num_expr and
	gang_static_expr.
	(resolve_oacc_params_in_parallel): New const char arg argument.
	Use it to report more accurate gang, worker and vector clause errors.
	(resolve_oacc_loop_blocks): Update calls to
	resolve_oacc_params_in_parallel.
	* trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of
	the gang clause.
	(gfc_trans_oacc_combined_directive): Make use of gang_num_expr and
	gang_static_expr.  Remove OMP_LIST_REDUCTION from construct_clauses.

	gcc/testsuite/
	* gfortran.dg/goacc/gang-static.f95: Add tests for gang num arguments.
	* gfortran.dg/goacc/loop-2.f95: Update expected diagnostics.
	* gfortran.dg/goacc/loop-6.f95: Likewise.
	* gfortran.dg/goacc/loop-7.f95: New test.
	* gfortran.dg/goacc/reduction-2.f95: New test.

From-SVN: r231112
2015-12-01 06:27:11 -08:00
Richard Biener 4f0a0218d6 re PR tree-optimization/68379 (BB vectorization: definition in block 13 follows the use for SSA_NAME)
2015-12-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68379
	* tree-vect-stmts.c (vectorizable_load): For BB vectorization
	always base loads on the first used DR of a group.
	* tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
	Compute alignment of the first scalar element unconditionally.

	* gcc.dg/torture/pr68379.c: New testcase.
	* gfortran.dg/pr68379-1.f90: Likewise.
	* gfortran.dg/pr68379-2.f: Likewise.

From-SVN: r231111
2015-12-01 14:24:54 +00:00
Richard Biener 2d3f4bf73c re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check")
2015-12-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/68590
	* genmatch.c (struct capture_info): Add match_use_count.
	(capture_info::walk_match): Increment match_use_count.
	(dt_simplify::gen_1): For GENERIC, only wrap multi-use
	replacements in a save_expr if they occur more often than
	in the original expression.

From-SVN: r231110
2015-12-01 14:22:40 +00:00
Christophe Lyon bb0d3b5e9b [testsuite] Fix pr46032* testcases.
2015-12-01  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.dg/pr46032.c: Add dg-require-effective-target fopenmp.
	* gcc.dg/pr46032-2.c: Likewise.
	* gcc.dg/pr46032-3.c: Likewise.

From-SVN: r231109
2015-12-01 13:20:51 +01:00
Richard Biener ece95567df re PR ipa/68470 (Internal Compiler Error observed by g++-4.9.2 and a few other versions (reported to Debian))
2015-12-01  Richard Biener  <rguenther@suse.de>

	PR ipa/68470
	* ipa-split.c (split_function): Handle main part not returning.

	* g++.dg/torture/pr68470.C: New testcase.

From-SVN: r231108
2015-12-01 11:35:21 +00:00
Jonathan Wakely 22f5095f31 Define path::_Cmpt after specializing path::__is_encoded_char
* include/experimental/bits/fs_path.h (path::_Cmpt): Move definition
	after path::__is_encoded_char explicit specializations.

From-SVN: r231107
2015-12-01 11:33:17 +00:00
Ilya Enkovich 5a308cf1c6 re PR middle-end/68595 (ice in const_vector_mask_from_tree at expr.c:11455)
gcc/

	PR middle-end/68595
	* tree-vect-stmts.c (vect_init_vector): Cast boolean
	scalars to a proper value before building a vector.

gcc/testsuite/

	PR middle-end/68595
	* gcc.dg/pr68595.c: New test.

From-SVN: r231106
2015-12-01 11:04:06 +00:00
Christian Bruel 4265bac79a Fix armv6+thumb1 unaligned tests
From-SVN: r231105
2015-12-01 11:07:20 +01:00
Eric Botcazou 5b1ab30749 * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder.
From-SVN: r231104
2015-12-01 09:38:37 +00:00
Richard Sandiford 481445220b Improve error reporting from genattrtab.c
The errors reported by check_attr_value weren't very helpful because
they always used the location of the define(_enum)_attr, even if the
error was in a define_insn.  Also, the errors reported by
check_attr_test didn't say which attribute was faulty.

Although not technically a bug fix, it was really useful in writing
the patch for PR68432.

Tested on a variety of targets.

gcc/
	* genattrtab.c (check_attr_test): Take an attr_desc instead of
	an is_const flag.  Put the file_location argument first.
	Update recursive calls.  Improve error messages.
	(check_attr_value): Take a file location and use it instead
	of attr->loc.  Improve error messages.  Update calls to
	check_attr_test.
	(check_defs): Update call to check_attr_value.
	(make_canonical): Likewise.
	(gen_attr): Likewise.
	(main): Likewise.
	(gen_insn_reserv): Update call to check_attr_test.

From-SVN: r231103
2015-12-01 09:31:02 +00:00
Ramana Radhakrishnan c178abcc58 Fix typo in aarch64.c
2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.

From-SVN: r231101
2015-12-01 08:54:52 +00:00
Richard Biener 287f8f17f2 re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check")
2015-12-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/68590
	* match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.

From-SVN: r231100
2015-12-01 08:52:58 +00:00
Jan Hubicka a6c5361c08 ipa-devirt.c (type_with_linkage_p, [...]): Move to ...
* ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
	odr_type_p): Move to ...
	* ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
	odr_type_p): here; miscro-optimize.

From-SVN: r231098
2015-12-01 06:36:02 +00:00
Bin Cheng cdf66caf4f re PR tree-optimization/68529 (scev failed for while(i--))
PR tree-optimization/68529
	* tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
	Compute no-overflow information for control iv.
	(number_of_iterations_lt, number_of_iterations_le): Add new param.
	(number_of_iterations_cond): Pass new argument to above functions.

	PR tree-optimization/68529
	* gcc.dg/tree-ssa/pr68529-1.c: New test.
	* gcc.dg/tree-ssa/pr68529-2.c: New test.
	* gcc.dg/tree-ssa/pr68529-3.c: New test.

From-SVN: r231097
2015-12-01 05:22:16 +00:00
Ian Lance Taylor 6ea98dee20 re PR go/68477 (error: type variant differs by TYPE_STRING_FLAG.)
PR go/68477
	* go-gcc.cc (Gcc_backend::string_constant_expression): Don't set
	TYPE_STRING_FLAG on a variant type.

From-SVN: r231096
2015-12-01 04:45:53 +00:00
Jan Hubicka 45285060c3 ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when inlining -fno-strict-aliasing into...
* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
	inlining -fno-strict-aliasing into -fstrict-aliasing body.

From-SVN: r231095
2015-12-01 04:19:50 +00:00
Jan Hubicka 6fa04359f8 ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when inlining -fno-strict-aliasing into...
* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
	inlining -fno-strict-aliasing into -fstrict-aliasing body.
	* gcc.dg/lto/alias-1_0.c: New testcase.
	* gcc.dg/lto/alias-1_1.c: New testcase.

From-SVN: r231094
2015-12-01 04:13:26 +00:00
GCC Administrator 341946d801 Daily bump.
From-SVN: r231093
2015-12-01 00:16:11 +00:00
Aditya Kumar 610a61a7be check for ISL generated code that leads to division by zero
we used to generate modulo and division by zero because ISL uses big numbers
which translate to zero in modulo arithmetic.  The patch also improves error handling
and bails out early in case of wrong code gen.

	PR tree-optimization/68565
	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
	codegen_error.  Fail when rhs of division operations is integer_zerop.
	(ternary_op_to_tree): Early return on codegen_error.
	(unary_op_to_tree): Same.
	(nary_op_to_tree): Same.
	(gcc_expression_from_isl_expr_op): Same.
	(gcc_expression_from_isl_expression): Same.
	(graphite_create_new_loop): On codegen_error continue generating
	wrong code.
	(graphite_create_new_loop_guard): Same.
	(build_iv_mapping): Same.
	(graphite_create_new_guard): Same.

	* gfortran.dg/graphite/pr68565.f90: New.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r231086
2015-11-30 20:39:16 +00:00
Aditya Kumar 49385686db always print parameter names as P_{SSA_NAME_VERSION}
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r231085
2015-11-30 20:29:15 +00:00
Cesar Philippidis db941d7ef7 tree-nested.c (convert_nonlocal_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
gcc/
	* tree-nested.c (convert_nonlocal_omp_clauses): Add support for
	OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
	(convert_local_omp_clauses): Likewise.

	gcc/fortran/
	* f95-lang.c (gfc_attribute_table): Add an "oacc function"
	attribute.
	* gfortran.h (symbol_attribute): Add an oacc_function bit-field.
	(gfc_oacc_routine_name): New struct;
	(gfc_get_oacc_routine_name): New macro.
	(gfc_namespace): Add oacc_routine_clauses, oacc_routine_names and
	oacc_routine fields.
	(gfc_exec_op): Add EXEC_OACC_ROUTINE.
	* openmp.c (OACC_ROUTINE_CLAUSES): New mask.
	(gfc_oacc_routine_dims): New function.
	(gfc_match_oacc_routine): Add support for named routines and the
	gang, worker vector and seq clauses.
	* parse.c (is_oacc): Add EXEC_OACC_ROUTINE.
	* resolve.c (gfc_resolve_blocks): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans-decl.c (add_attributes_to_decl): Attach an 'oacc function'
	attribute and shape geometry for acc routine.

	gcc/testsuite/
	* gfortran.dg/goacc/routine-3.f90: New test.
	* gfortran.dg/goacc/routine-4.f90: New test.
	* gfortran.dg/goacc/routine-5.f90: New test.
	* gfortran.dg/goacc/routine-6.f90: New test.
	* gfortran.dg/goacc/subroutines: New test.

	libgomp/
	* libgomp.oacc-fortran/routine-5.f90: New test.
	* libgomp.oacc-fortran/routine-7.f90: New test.
	* libgomp.oacc-fortran/routine-9.f90: New test.

From-SVN: r231081
2015-11-30 11:09:33 -08:00
Tom de Vries 522cdabdea Add gcc.dg/pr46032-{2,3}.c test-cases
2015-11-30  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/pr46032-2.c: New test.
	* gcc.dg/pr46032-3.c: New test.

From-SVN: r231079
2015-11-30 17:48:41 +00:00
Charles Baylis 34ea150cdc re PR target/63870 ([Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly)
gcc/testsuite/ChangeLog:

2015-11-30  Charles Baylis  <charles.baylis@linaro.org>

	PR target/63870
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c (f_vld2_lane_f16): Remove xfails for arm targets.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c (f_vld2_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f64_indices_1.c (f_vld2_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_p8_indices_1.c (f_vld2_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s16_indices_1.c (f_vld2_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s32_indices_1.c (f_vld2_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s64_indices_1.c (f_vld2_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s8_indices_1.c (f_vld2_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u16_indices_1.c (f_vld2_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u32_indices_1.c (f_vld2_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u64_indices_1.c (f_vld2_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u8_indices_1.c (f_vld2_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c (f_vld2q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f32_indices_1.c (f_vld2q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f64_indices_1.c (f_vld2q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_p8_indices_1.c (f_vld2q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s16_indices_1.c (f_vld2q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s32_indices_1.c (f_vld2q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s64_indices_1.c (f_vld2q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s8_indices_1.c (f_vld2q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u16_indices_1.c (f_vld2q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u32_indices_1.c (f_vld2q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u64_indices_1.c (f_vld2q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u8_indices_1.c (f_vld2q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c (f_vld3_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f32_indices_1.c (f_vld3_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f64_indices_1.c (f_vld3_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_p8_indices_1.c (f_vld3_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s16_indices_1.c (f_vld3_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s32_indices_1.c (f_vld3_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s64_indices_1.c (f_vld3_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s8_indices_1.c (f_vld3_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u16_indices_1.c (f_vld3_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u32_indices_1.c (f_vld3_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u64_indices_1.c (f_vld3_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u8_indices_1.c (f_vld3_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c (f_vld3q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f32_indices_1.c (f_vld3q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f64_indices_1.c (f_vld3q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_p8_indices_1.c (f_vld3q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s16_indices_1.c (f_vld3q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s32_indices_1.c (f_vld3q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s64_indices_1.c (f_vld3q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s8_indices_1.c (f_vld3q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u16_indices_1.c (f_vld3q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u32_indices_1.c (f_vld3q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u64_indices_1.c (f_vld3q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u8_indices_1.c (f_vld3q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c (f_vld4_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f32_indices_1.c (f_vld4_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f64_indices_1.c (f_vld4_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_p8_indices_1.c (f_vld4_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s16_indices_1.c (f_vld4_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s32_indices_1.c (f_vld4_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s64_indices_1.c (f_vld4_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s8_indices_1.c (f_vld4_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u16_indices_1.c (f_vld4_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u32_indices_1.c (f_vld4_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u64_indices_1.c (f_vld4_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u8_indices_1.c (f_vld4_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c (f_vld4q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f32_indices_1.c (f_vld4q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f64_indices_1.c (f_vld4q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_p8_indices_1.c (f_vld4q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s16_indices_1.c (f_vld4q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s32_indices_1.c (f_vld4q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s64_indices_1.c (f_vld4q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s8_indices_1.c (f_vld4q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u16_indices_1.c (f_vld4q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u32_indices_1.c (f_vld4q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u64_indices_1.c (f_vld4q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u8_indices_1.c (f_vld4q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c (f_vst2_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f32_indices_1.c (f_vst2_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f64_indices_1.c (f_vst2_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_p8_indices_1.c (f_vst2_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s16_indices_1.c (f_vst2_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s32_indices_1.c (f_vst2_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s64_indices_1.c (f_vst2_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s8_indices_1.c (f_vst2_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u16_indices_1.c (f_vst2_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u32_indices_1.c (f_vst2_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u64_indices_1.c (f_vst2_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u8_indices_1.c (f_vst2_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c (f_vst2q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f32_indices_1.c (f_vst2q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f64_indices_1.c (f_vst2q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_p8_indices_1.c (f_vst2q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s16_indices_1.c (f_vst2q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s32_indices_1.c (f_vst2q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s64_indices_1.c (f_vst2q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s8_indices_1.c (f_vst2q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u16_indices_1.c (f_vst2q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u32_indices_1.c (f_vst2q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u64_indices_1.c (f_vst2q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u8_indices_1.c (f_vst2q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c (f_vst3_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f32_indices_1.c (f_vst3_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f64_indices_1.c (f_vst3_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_p8_indices_1.c (f_vst3_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s16_indices_1.c (f_vst3_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s32_indices_1.c (f_vst3_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s64_indices_1.c (f_vst3_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s8_indices_1.c (f_vst3_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u16_indices_1.c (f_vst3_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u32_indices_1.c (f_vst3_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u64_indices_1.c (f_vst3_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u8_indices_1.c (f_vst3_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c (f_vst3q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f32_indices_1.c (f_vst3q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f64_indices_1.c (f_vst3q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_p8_indices_1.c (f_vst3q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s16_indices_1.c (f_vst3q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s32_indices_1.c (f_vst3q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s64_indices_1.c (f_vst3q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s8_indices_1.c (f_vst3q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u16_indices_1.c (f_vst3q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u32_indices_1.c (f_vst3q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u64_indices_1.c (f_vst3q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u8_indices_1.c (f_vst3q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c (f_vst4_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f32_indices_1.c (f_vst4_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f64_indices_1.c (f_vst4_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_p8_indices_1.c (f_vst4_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s16_indices_1.c (f_vst4_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s32_indices_1.c (f_vst4_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s64_indices_1.c (f_vst4_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s8_indices_1.c (f_vst4_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u16_indices_1.c (f_vst4_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u32_indices_1.c (f_vst4_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u64_indices_1.c (f_vst4_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u8_indices_1.c (f_vst4_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c (f_vst4q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f32_indices_1.c (f_vst4q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f64_indices_1.c (f_vst4q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_p8_indices_1.c (f_vst4q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s16_indices_1.c (f_vst4q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s32_indices_1.c (f_vst4q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s64_indices_1.c (f_vst4q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s8_indices_1.c (f_vst4q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u16_indices_1.c (f_vst4q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u32_indices_1.c (f_vst4q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u64_indices_1.c (f_vst4q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u8_indices_1.c (f_vst4q_lane_u8): Ditto.

From-SVN: r231077
2015-11-30 17:11:16 +00:00
Tom de Vries e0ca27c531 Handle BUILT_IN_GOMP_PARALLEL in ipa-pta
2015-11-30  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/46032
	* tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
	factored out of ...
	(find_func_aliases_for_call): ... here.
	(find_func_aliases_for_builtin_call, find_func_clobbers): Handle
	BUILT_IN_GOMP_PARALLEL.
	(ipa_pta_execute): Same.  Handle node->parallelized_function as a local
	function.

	* gcc.dg/pr46032.c: New test.

	* testsuite/libgomp.c/pr46032.c: New test.

From-SVN: r231076
2015-11-30 16:34:26 +00:00
Jakub Jelinek 7b90c63a28 re PR tree-optimization/68501 (sqrt builtin is not used anymore)
PR tree-optimization/68501
	* target.def (builtin_reciprocal): Replace the 3 arguments with
	a gcall * one, adjust description.
	* targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
	with a gcall * one.
	* targhooks.c (default_builtin_reciprocal): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
	targetm.builtin_reciprocal even on internal functions, adjust
	the arguments and allow replacing an internal function with normal
	built-in.
	* config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
	with a gcall * one.  Handle internal fns too.
	* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
	* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
	* doc/tm.texi (builtin_reciprocal): Document.

From-SVN: r231075
2015-11-30 15:56:08 +01:00
Richard Biener 7a5a0decae re PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1403 with -fprofile-generate)
2015-11-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68592
	* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
	on the pattern def sequence.

	* gfortran.dg/pr68592.f: New testcase.

From-SVN: r231074
2015-11-30 14:50:48 +00:00
Nathan Sidwell b699adcc9e nvptx.c (nvptx_name_replacement): Move earlier.
* config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
	(write_one_arg): Reorder parms, add 'sep' param.
	(nvptx_write_function_decl): Rename to ...
	(write_fn_proto): ... here.  Do name replacement. Emit linaer
	comment marker. Deal with both decls and defns. Simplify argument
	formatting.
	(write_function_decl_and_comment): Delete.
	(write_func_decl_from_insn): Rename to ...
	(write_fn_proto_from_insn): ... here.  Don't do name replacement.
	(nvptx_record_fndecl): Call write_fn_proto.
	(nvptx_record_libfunc): Call write_fn_proto_from_insn.
	(nvptx_declare_function_name): Adjust for write_fn_proto changes.
	(nvotx_output_call_insn): Call write_fn_prot_from_insn.

From-SVN: r231073
2015-11-30 14:44:48 +00:00
Paul Thomas 0ef5fbc1f4 re PR fortran/68534 (No error on mismatch in number of arguments between submodule and module interface)
2015-11-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/68534
	* decl.c (gfc_match_formal_arglist): Cope with zero formal args
	either in interface declaration or in procedure declaration in
	submodule.

2015-11-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/68534
	* gfortran.dg/submodule_13.f08: New test.

From-SVN: r231072
2015-11-30 13:33:27 +00:00
Andreas Krebbel 02718b323b S/390: Testsuite: Add asm scan patterns for -m31.
gcc/testsuite/ChangeLog:

2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/load-relative-check.c: Add scan patterns for
	-m31.

From-SVN: r231071
2015-11-30 13:24:51 +00:00
Andreas Krebbel 804101ae8b S/390: Testsuite: Add -mzarch to load-relative-check.c.
2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/load-relative-check.c: Add -mzarch.

From-SVN: r231070
2015-11-30 12:31:02 +00:00
Eric Botcazou f07862c7dd c-ada-spec.c (print_ada_macros): Remove redundant blank line.
* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
	(decl_sloc_common): Delete and move bulk of processing to...
	(decl_sloc): ...here.
	(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
	(dump_ada_double_name): Remove S parameter and compute the suffix.
	(dump_ada_array_type): Add PARENT parameter.  Simplify computation of
	element type and deal with an anonymous one.
	(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
	(dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
	and remove reference to QUAL_UNION_TYPE.
	(dump_nested_types): Make 2 passes on the fields and move bulk to...
	(dump_nested_type): ...here.  New function extracted from above.
	Generate a full declaration for anonymous element type of arrays.
	(print_ada_declaration): Really skip anonymous declarations.  Remove
	references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
	Clean up processing of declarations of array types and objects.
	(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
	Remove obsolete code and tidy up.

From-SVN: r231069
2015-11-30 12:20:06 +00:00
Eric Botcazou c8a23c29f7 * gcc-interface/trans.c (gigi): Fix initialization order.
From-SVN: r231068
2015-11-30 12:06:30 +00:00
Eric Botcazou 4f852a1aff osint.adb: Add use type clause for CRTL.size_t.
* osint.adb: Add use type clause for CRTL.size_t.
	(C_String_Length): Return CRTL.size_t instead of Integer.
	(To_Path_String_Access): Take CRTL.size_t instead of Integer.
	(Get_Libraries_From_Registry): Use CRTL throughout.
	(To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer.
	(To_Canonical_File_List): Likewise.
	(To_Canonical_File_Spec): Likewise.
	(To_Canonical_Path_Spec): Likewise.
	(To_Host_Dir_Spec): Likewise.
	(To_Host_File_Spec): Likewise.
	(Update_Path): Use CRTL throughout.
	* s-shasto.adb: Add with clause for System.CRTL.
	(Initialize): Rename CRTL.strncpy instead of importing it manually.

From-SVN: r231066
2015-11-30 11:59:09 +00:00
Eric Botcazou 2056c5ede5 gigi.h (create_var_decl): Adjust prototype.
* gcc-interface/gigi.h (create_var_decl): Adjust prototype.
	(create_subprog_decl): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename
	static_p into static_flag and add volatile_flag local variable.
	Do not locally change the type of a volatile object, except for the
	pointed-to type if the object is handled by reference.  Adjust calls
	to create_var_decl.
	<E_Subprogram_Type>: Likewise for const and noreturn subprograms.
	(get_minimal_subprog_decl): Adjust call to create_subprog_decl.
	(elaborate_expression_1): Adjust call to create_var_decl.
	(gnat_to_gnu_field): Minor tweak.
	* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
	create_subprog_decl.
	(build_raise_check): Likewise.
	(Subprogram_Body_to_gnu): Likewise.
	(create_temporary): Likewise.
	(Handled_Sequence_Of_Statements_to_gnu): Likewise.
	(Exception_Handler_to_gnu_gcc): Likewise.
	(Compilation_Unit_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.
	* gcc-interface/utils.c (maybe_pad_type): Likewise.
	(create_var_decl): Add VOLATILE_FLAG parameter and handle it.
	(create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and
	handle them.

From-SVN: r231065
2015-11-30 11:50:53 +00:00
Eric Botcazou 933a73251d gigi.h (is_simple_additive_expression): Declare.
* gcc-interface/gigi.h (is_simple_additive_expression): Declare.
	* gcc-interface/trans.c (struct range_check_info_d): Add DISP and
	NEG_P fields.
	(find_loop_for): Add DISP and NEG_P parameters with default value.
	Call is_simple_additive_expression to handle additive expressions.
	(Loop_Statement_to_gnu): Deal with displacement in range checks.
	(Raise_Error_to_gnu): Likewise.
	(gnat_to_gnu): Add call to find_loop_for.
	(is_simple_additive_expression): New function extracted from...
	(gnat_invariant_expr): ...here.  Call it on the expression.

From-SVN: r231064
2015-11-30 11:46:32 +00:00
Eric Botcazou f8125f0c9c * gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
From-SVN: r231063
2015-11-30 11:34:31 +00:00
Eric Botcazou 14ecca2eea ada-tree.h (TYPE_MAX_ALIGN): New macro.
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
	Remove obsolete code setting the alignment on some atomic types.
	When the type has no alignment but needs strict alignment and has a
	size clause, compute a maximum alignment and set it on the type.
	(adjust_packed): Remove handling of -2 argument.  Deal with TYPE_ALIGN
	and TYPE_MAX_ALIGN directly.
	(gnat_to_gnu_field): Do not document -2 as argument.
	(components_to_record): Likewise.
	* gcc-interface/utils.c (finish_record_type): Do not bump alignment of
	the record type beyond TYPE_MAX_ALIGN.  Reset the latter on exit.

	* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around.
	(GNATLIBCFLAGS_FOR_C): Reformat.
	(GCC_CFLAGS): Delete.

From-SVN: r231062
2015-11-30 11:25:24 +00:00
Kirill Yukhin 6501d5fea0 [AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.
gcc/
	* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
	(define_insn "*k<logic><mode>"): Use new iterator.

From-SVN: r231061
2015-11-30 10:50:56 +00:00
Eric Botcazou eadb344f49 re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
PR target/28115
	* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
	(sparc_adjust_cost): Add missing space.

From-SVN: r231059
2015-11-30 09:43:55 +00:00