Commit Graph

148284 Commits

Author SHA1 Message Date
Jakub Jelinek
b3c3ce0ac6 re PR middle-end/77475 (unnecessary or misleading context in reporting command line problems)
PR middle-end/77475
	* toplev.c (process_options): Temporarily set input_location
	to UNKNOWN_LOCATION around targetm.target_option.override () call.

From-SVN: r239994
2016-09-05 20:14:25 +02:00
Joseph Myers
4b13952a33 * sv.po: Update.
From-SVN: r239992
2016-09-05 17:35:56 +01:00
Uros Bizjak
8a27cf73aa re PR target/77452 (ICE: in plus_constant, at explow.c:87 with -fno-split-wide-types -mavx512f --param=max-combine-insns=2)
PR rtl-optimization/77452
	* explow.c (plus_constant) <case MEM>: Extract scalar constant from
	inner-mode reference to a CONST_VECTOR constant in the constant pool.

testsuite/ChangeLog:

	PR rtl-optimization/77452
	* gcc.target/i386/pr77452.c: New test.

From-SVN: r239989
2016-09-05 16:44:19 +02:00
Marek Polacek
25ff5dd354 re PR c/77423 (-Wlogical-not-parentheses false positive for bitwise expression with _Bool operands)
PR c/77423
	* doc/invoke.texi: Update -Wlogical-not-parentheses documentation.

	* c-common.c (bool_promoted_to_int_p): New function.
	(expr_has_boolean_operands_p): New function.
	(warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
	(maybe_warn_bool_compare): Use bool_promoted_to_int_p.

	* c-c++-common/Wlogical-not-parentheses-3.c: New test.

From-SVN: r239988
2016-09-05 12:17:09 +00:00
Jakub Jelinek
c5cb79681d re PR other/77421 (Bugs found in GCC with the help of PVS-Studio)
PR other/77421
	* gensupport.c (alter_output_for_subst_insn): Remove redundant
	*insn_out == '*' test.  Don't copy unnecessary to yet another
	memory buffer, and don't leak it.

From-SVN: r239987
2016-09-05 10:50:29 +02:00
Jakub Jelinek
61f46d0e6d re PR rtl-optimization/77425 (Pointer test follows dereference in sched-int.h)
PR rtl-optimization/77425
	* ipa-devirt.c (get_odr_type): Set val->id unconditionally.

From-SVN: r239986
2016-09-05 10:49:41 +02:00
GCC Administrator
6f1eb99962 Daily bump.
From-SVN: r239985
2016-09-05 00:16:15 +00:00
Steven G. Kargl
f2bc4e4800 re PR fortran/77391 (gfortran allows CHARACTER(LEN=:),PARAMETER:: STRING='constant' buts does not report it as an extension)
2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77391
	* resolve.c (deferred_requirements): New function to check F2008:C402.
	(resolve_fl_variable,resolve_fl_parameter): Use it.
 
2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77391
	* gfortran.dg/pr77391.f90: New test.

From-SVN: r239982
2016-09-04 20:00:48 +00:00
Gerald Pfeifer
aa9cdb9755 re PR web/50642 (onlinedocs formated text too small to read)
PR documentation/50642 
	* update_web_docs_svn (CSS): Introduce.
	Have generated files refer to it.

From-SVN: r239981
2016-09-04 19:38:05 +00:00
Gerald Pfeifer
b8c0f3c164 update_web_docs_svn (CSS): Introduce.
* update_web_docs_svn (CSS): Introduce.
	Have generated files refer to it.

From-SVN: r239980
2016-09-04 18:44:30 +00:00
Steven G. Kargl
e85921ee9f re PR fortran/77460 (ICE when summing an overflowing array)
2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77460
	* simplify.c (simplify_transformation_to_scalar):  On error, result
	may be NULL, simply return.

2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77460
	* gfortran.dg/pr77460.f90: New test.

From-SVN: r239979
2016-09-04 18:43:40 +00:00
John David Anglin
5961d13d27 ffi.c (ffi_struct_type): Put type declaration on separate line.
* src/pa/ffi.c (ffi_struct_type): Put type declaration on separate line.
	(ffi_prep_args_pa32): Likewise.
	(ffi_size_stack_pa32): Likewise.
	(ffi_prep_cif_machdep): Likewise.
	(ffi_call): Likewise.  Rename to ffi_call_int.  Add closure argument
	and update call to ffi_call_pa32.
	(ffi_call, ffi_call_go, ffi_prep_go_closure): New.
	(ffi_closure_inner_pa32): Update to handle go closures.
	* src/pa/ffitarget.h (FFI_GO_CLOSURES): Define.
	* src/pa/hpux32.S (ffi_call_pa32): Pass go closure argument in static
	chain register (%ret1).
	(ffi_closure_pa32): Set closure type argument to zero.
	(ffi_go_closure_pa32): New function.  Add unwind data for it.
	* src/pa/linux.S: Likewise.  Use cfi directives for unwind data.
	* testsuite/libffi.go/static-chain.h (STATIC_CHAIN_REG): Define for
	hppa.

From-SVN: r239978
2016-09-04 17:39:05 +00:00
Thomas Koenig
d6598cf719 re PR fortran/71902 (Unneeded temporary on reallocatable character assignment)
2016-09-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* frontend-passes.c (realloc_string_callback): Also check for the
	lhs being deferred.  Name temporary variable "realloc_string".

2016-09-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* gfortran.dg/dependency_47.f90:  New test.
	* gfortran.dg/dependency_49.f90:  New test.

From-SVN: r239977
2016-09-04 16:17:55 +00:00
John David Anglin
abb62d32a1 inclhack.def (hpux_longjmp): Adjust select regular expression.
* inclhack.def (hpux_longjmp): Adjust select regular expression.
	* fixincl.x: Regenerate.

From-SVN: r239976
2016-09-04 16:17:10 +00:00
Tom de Vries
21234eb5e8 Revert "Replace error_at with assert in build_va_arg"
2016-09-04  Tom de Vries  <tom@codesourcery.com>

	revert:
	2016-08-29  Tom de Vries  <tom@codesourcery.com>

	* c-common.c (build_va_arg): Replace first argument type error
	with assert.

From-SVN: r239975
2016-09-04 09:07:52 +00:00
GCC Administrator
bcfbf31b40 Daily bump.
From-SVN: r239974
2016-09-04 00:16:14 +00:00
Kirill Yukhin
2994b5cca3 ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
gcc/
	* ubsan.c (ubsan_use_new_style_p): Fix check for empty string.

From-SVN: r239971
2016-09-03 10:57:05 +00:00
Jakub Jelinek
b5d506593e re PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)
PR c/65467
	* gcc.dg/gomp/_Atomic-4.c: Require vect_simd_clones effective target.

From-SVN: r239970
2016-09-03 11:20:03 +02:00
GCC Administrator
f8d3207d87 Daily bump.
From-SVN: r239969
2016-09-03 00:16:13 +00:00
Kirill Yukhin
7b82667644 avx512f-klogic-2.c: Fix operand calculation order.
gcc/testsuite/
 	* gcc.target/i386/avx512f-klogic-2.c: Fix operand calculation order.

From-SVN: r239966
2016-09-02 20:04:14 +00:00
David Malcolm
717ebe91c9 Add -fdiagnostics-generate-patch
gcc/ChangeLog:
	* common.opt (fdiagnostics-generate-patch): New option.
	* diagnostic.c: Include "edit-context.h".
	(diagnostic_initialize): Initialize context->edit_context_ptr.
	(diagnostic_finish): Delete context->edit_context_ptr.
	(diagnostic_report_diagnostic): Add fix-it hints from the
	diagnostic to context->edit_context_ptr, if any.
	* diagnostic.h (class edit_context): Add forward decl.
	(struct diagnostic_context): Add field "edit_context_ptr".
	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
	-fdiagnostics-generate-patch.
	(-fdiagnostics-generate-patch): New item.
	* toplev.c: Include "edit-context.h".
	(process_options): Set global_dc->edit_context_ptr to a new
	edit_context if the options need one.
	(toplev::main): Handle -fdiagnostics-generate-patch by using
	global_dc->edit_context_ptr.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c: New
	test case.
	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
	diagnostic-test-show-locus-generate-patch.c to the sources
	for diagnostic_plugin_test_show_locus.c.

From-SVN: r239965
2016-09-02 19:41:17 +00:00
Jakub Jelinek
9dc5773f4b re PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)
PR c/65467
	* gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
	map and firstprivate clauses on target construct for _Atomic
	qualified decls.
	(gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
	on target construct for _Atomic qualified decls.
	* omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
	decls.
	* omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
	_Atomic qualified arguments not mentioned in uniform clause.
c/
	* c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
	flag_openmp.
	(c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
	instead of mark_exp_read on low_bound/length expression.
	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
	c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
	c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
	c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
	c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
	c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
	c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
	c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
	c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
	instead of mark_expr_read.
	(c_parser_omp_declare_reduction): Reject _Atomic qualified types.
	* c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
	* c-tree.h (c_omp_clause_copy_ctor): New prototype.
	* c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
	array section bases outside of depend clause, for depend clause
	use convert_lvalue_to_rvalue on the base.
	(c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
	linear, aligned, map, to and from clauses.
	(c_omp_clause_copy_ctor): New function.
c-family/
	* c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
	(c_finish_omp_for): Reject _Atomic qualified iterators.
testsuite/
	* gcc.dg/gomp/_Atomic-1.c: New test.
	* gcc.dg/gomp/_Atomic-2.c: New test.
	* gcc.dg/gomp/_Atomic-3.c: New test.
	* gcc.dg/gomp/_Atomic-4.c: New test.
	* gcc.dg/gomp/_Atomic-5.c: New test.

From-SVN: r239964
2016-09-02 20:38:07 +02:00
David Malcolm
c65236d682 Introduce class edit_context
gcc/ChangeLog:
	* Makefile.in (OBJS-libcommon): Add edit-context.o.
	* diagnostic-color.c (color_dict): Add "diff-filename",
	"diff-hunk", "diff-delete", and "diff-insert".
	(parse_gcc_colors): Update default value of GCC_COLORS in comment
	to reflect above changes.
	* doc/invoke.texi (-fdiagnostics-color): Update description of
	default GCC_COLORS, and of the supported capabilities.
	* edit-context.c: New file.
	* edit-context.h: New file.
	* input.c (struct fcache): Add field "missing_trailing_newline".
	(diagnostics_file_cache_forcibly_evict_file): Initialize it to
	true.
	(add_file_to_cache_tab): Likewise.
	(fcache::fcache): Likewise.
	(get_next_line): Update c->missing_trailing_newline.
	(location_missing_trailing_newline): New function.
	* input.h (location_missing_trailing_newline): New decl.
	* selftest-run-tests.c (selftest::run_tests): Call
	edit_context_c_tests.
	* selftest.h (edit_context_c_tests): New decl.

libcpp/ChangeLog:
	* include/line-map.h (rich_location::seen_impossible_fixit_p): New
	accessor.

From-SVN: r239963
2016-09-02 18:00:57 +00:00
Jakub Jelinek
bad9b2889a re PR tree-optimization/77444 (Bogus assignments in cand_value_at)
PR tree-optimization/77444
	* tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
	as steptype, remove redundant initialization.

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

From-SVN: r239962
2016-09-02 19:12:27 +02:00
Jakub Jelinek
94087e88e0 re PR sanitizer/77396 (address sanitizer crashes if all static global variables are optimized)
PR sanitizer/77396
	* sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
	(sanopt_optimize_walker): Optimize away
	__asan_before_dynamic_init (...) followed by
	__asan_after_dynamic_init () without intervening memory loads/stores.
	* ipa-pure-const.c (special_builtin_state): Handle
	BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
	BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.

	* decl2.c (do_static_initialization_or_destruction): Only
	call asan_dynamic_init_call if INITP is true.

	* g++.dg/asan/pr77396.C: New test.

From-SVN: r239961
2016-09-02 19:11:42 +02:00
Prathamesh Kulkarni
af711c232d cfg.c (free_original_copy_tables): Replace second assignment of bb_copy = NULL by bb_original = NULL.
2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* cfg.c (free_original_copy_tables): Replace second assignment of
	bb_copy = NULL by bb_original = NULL.

From-SVN: r239960
2016-09-02 17:00:38 +00:00
Jakub Jelinek
afef664724 re PR other/77421 (Bugs found in GCC with the help of PVS-Studio)
PR other/77421
	* config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
	assignment added in r216794.

From-SVN: r239959
2016-09-02 18:18:35 +02:00
David Malcolm
950f6c8519 Improvements to typed_splay_tree
This patch adds foreach, max and min methods to
class typed_splay_tree, along with the start of a selftest
suite.

gcc/ChangeLog:
	* Makefile.in (OBJS): Add typed-splay-tree.o.
	* selftest-run-tests.c (selftest::run_tests): Call
	typed_splay_tree_c_tests.
	* selftest.h (typed_splay_tree_c_tests): New decl.
	* typed-splay-tree.c: New file.
	* typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
	(typed_splay_tree::max): New method.
	(typed_splay_tree::min): New method.
	(typed_splay_tree::foreach): New method.
	(typed_splay_tree::closure): New struct.
	(typed_splay_tree::inner_foreach_fn): New function.

From-SVN: r239958
2016-09-02 15:22:21 +00:00
Maxim Kuvyrkov
5a81036247 Use setrlimit for testing libstdc++ in cross toolchains
* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
	setrlimit on both native and cross targets.
	* configure: Regenerate.

From-SVN: r239955
2016-09-02 13:42:55 +00:00
Prathamesh Kulkarni
15bbb5cc97 ipa-cp.c (ipcp_store_bits_results): Change option name from -fipa-cp-bit to -fipa-bit-cp.
2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* ipa-cp.c (ipcp_store_bits_results): Change option name from
	-fipa-cp-bit to -fipa-bit-cp.

From-SVN: r239954
2016-09-02 09:22:07 +00:00
Martin Sebor
05a647564a PR tree-optimization/71831 - __builtin_object_size poor results with no
PR tree-optimization/71831 - __builtin_object_size poor results with no
	optimization

gcc/testsuite/ChangeLog:

	PR tree-optimization/71831
	* gcc.dg/builtin-object-size-16.c: New test.
	* gcc.dg/builtin-object-size-17.c: New test.

gcc/ChangeLog:

	PR tree-optimization/71831
	* tree-object-size.h: Return bool instead of the size and add
	argument for the size.
	* tree-object-size.c (compute_object_offset): Update signature.
	(addr_object_size): Same.
	(compute_builtin_object_size): Return bool instead of the size
	and add argument for the size.  Handle POINTER_PLUS_EXPR when
	optimization is disabled.
	(expr_object_size): Adjust.
	(plus_stmt_object_size): Adjust.
	(pass_object_sizes::execute): Adjust.
	* builtins.c (fold_builtin_object_size): Adjust.
	* doc/extend.texi (Object Size Checking): Update.
	* ubsan.c (instrument_object_size): Adjust.

From-SVN: r239953
2016-09-01 20:14:50 -06:00
GCC Administrator
910f2f3d8a Daily bump.
From-SVN: r239952
2016-09-02 00:16:14 +00:00
Martin Sebor
3d7b83b671 c-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it fits the output of the formatted function...
gcc/c-family/ChangeLog:

	* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
	size to guarantee it fits the output of the formatted function
	regardless of its arguments.

gcc/cp/ChangeLog:

	* mangle.c: Increase buffer size to guarantee it fits the output
	of the formatted function regardless of its arguments.

gcc/go/ChangeLog:

	* gofrontend/expressions.cc: Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.

gcc/java/ChangeLog:

	* decl.c (give_name_to_locals): Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.
	* mangle_name.c (append_unicode_mangled_name): Same.

gcc/ChangeLog:

	* genmatch.c (parser::parse_expr): Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.
	* gcc/genmodes.c (parser::parse_expr): Same.
	* gimplify.c (gimplify_asm_expr): Same.
	* passes.c (pass_manager::register_one_dump_file): Same.
	* print-tree.c (print_node): Same.

From-SVN: r239949
2016-09-01 16:47:49 -06:00
Segher Boessenkool
3b2475ab31 rs6000: Rename 110 -> VSCR_REGNO
* config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.

From-SVN: r239948
2016-09-02 00:28:29 +02:00
Segher Boessenkool
95bde43a92 rs6000: Rename 109 -> VRSAVE_REGNO
* config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.

From-SVN: r239947
2016-09-02 00:27:20 +02:00
Segher Boessenkool
b65261f65c rs6000: Rename 74 -> CR6_REGNO
* config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
	* config/rs6000/vector.md: Ditto.
	* config/rs6000/vsx.md: Ditto.

From-SVN: r239946
2016-09-02 00:26:05 +02:00
Jerry DeLisle
7e89048d4a re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* gfortran.dg/fmt_f0_2.f90: Update tests for available kinds.

From-SVN: r239945
2016-09-01 21:17:42 +00:00
Uros Bizjak
2f196155bc float128-builtin.c, [...]: Use dg-add-options ieee.
* gcc.dg/torture/float128-builtin.c, gcc.dg/torture/float128-floath.c,
	gcc.dg/torture/float128-ieee-nan.c, gcc.dg/torture/float128-tg-2.c,
	gcc.dg/torture/float128-tg.c, gcc.dg/torture/float128x-builtin.c,
	gcc.dg/torture/float128x-floath.c, gcc.dg/torture/float128x-nan.c,
	gcc.dg/torture/float128x-tg-2.c, gcc.dg/torture/float128x-tg.c,
	gcc.dg/torture/float16-builtin.c, gcc.dg/torture/float16-floath.c,
	gcc.dg/torture/float16-nan.c, gcc.dg/torture/float16-tg-2.c,
	gcc.dg/torture/float16-tg.c, gcc.dg/torture/float32-builtin.c,
	gcc.dg/torture/float32-floath.c, gcc.dg/torture/float32-nan.c,
	gcc.dg/torture/float32-tg-2.c, gcc.dg/torture/float32-tg.c,
	gcc.dg/torture/float32x-builtin.c, gcc.dg/torture/float32x-floath.c,
	gcc.dg/torture/float32x-nan.c, gcc.dg/torture/float32x-tg-2.c,
	gcc.dg/torture/float32x-tg.c, gcc.dg/torture/float64-builtin.c,
	gcc.dg/torture/float64-floath.c, gcc.dg/torture/float64-nan.c,
	gcc.dg/torture/float64-tg-2.c, gcc.dg/torture/float64-tg.c,
	gcc.dg/torture/float64x-builtin.c, gcc.dg/torture/float64x-floath.c,
	gcc.dg/torture/float64x-nan.c, gcc.dg/torture/float64x-tg-2.c,
	gcc.dg/torture/float64x-tg.c: Use dg-add-options ieee.

From-SVN: r239944
2016-09-01 18:04:17 +02:00
Eric Botcazou
0a6b05234a ipa-inline-analysis.c (param_change_prob): Get to the base object first in all cases.
* ipa-inline-analysis.c (param_change_prob): Get to the base object
	first in all cases.

From-SVN: r239943
2016-09-01 15:56:13 +00:00
Segher Boessenkool
d87a85c67b rs6000: Use LR_REGNO directly in the save/restore patterns
Various patterns use "register_operand" "l" (or "=l") although those
patterns are only created refering to LR_REGNO directly.  This patch
changes those patterns to use the hard regs as well.


	* config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
	*restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
	*return_and_restore_gpregs_<mode>_r11,
	*return_and_restore_gpregs_<mode>_r12,
	*return_and_restore_gpregs_<mode>_r1,
	*return_and_restore_fpregs_<mode>_r11,
	*return_and_restore_fpregs_<mode>_r12,
	*return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
	directly instead of via the "l" constraint.  Renumber operands.
	Fix whitespace.

From-SVN: r239942
2016-09-01 17:07:54 +02:00
Segher Boessenkool
893fc0a002 rs6000: Use LR_REGNO instead of constant 65
Many places still use 65 instead of the symbolic constant LR_REGNO.  This
fixes them all (I looked for the string "65" only, in config/rs6000/ only,
I didn't read all code :-) )

I left it in *restore_world because Iain will remove it there soon.


	* config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
	save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
	*restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
	* config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
	load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
	*call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
	*call_value_nonlocal_darwin64, reload_macho_picbase,
	reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
	* config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
	* config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
	*save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
	*save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
	*save_fpregs_<mode>_r1): Ditto.
	* config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
	*return_and_restore_gpregs_spe): Ditto.

From-SVN: r239941
2016-09-01 17:04:11 +02:00
Segher Boessenkool
a345b5b026 rs6000: Fix for AIX, for r239866
This should fix r239866 for AIX.  I missed two patterns that refer to LR
as "register_operand" "l" instead of as reg:P LR_REGNO.


	* config/rs6000/rs6000.md
	(define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
	the use of the link register.
	(define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.

From-SVN: r239940
2016-09-01 17:01:02 +02:00
Marek Polacek
295844f687 re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
PR c/7652
gcc/c-family/
	* c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
	FALLTHRU comments.
gcc/c/
	* c-typeck.c (composite_type): Add FALLTHRU comment.
gcc/gcc/cp/
	* error.c (dump_type): Fix falls through comment.
	(dump_decl): Likewise.
	(dump_expr): Likewise.

From-SVN: r239939
2016-09-01 14:59:50 +00:00
Bill Schmidt
1ca94f3674 re PR target/72827 (gnat bootstrap broken on powerpc64le-linux-gnu)
2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Michael Meissner <meissner@linux.vnet.ibm.com>

	PR target/72827
	* config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
	reg+reg addressing for TImode.
	(rs6000_legitimate_address_p): Only allow register indirect
	addressing for TImode, even without TARGET_QUAD_MEMORY.


Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>

From-SVN: r239938
2016-09-01 14:43:55 +00:00
Richard Biener
2a99de7b1e re PR middle-end/77436 (Incorrect constant result for summing loop inserted)
2016-09-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/77436
	* tree-chrec.c (tree_fold_binomial): Use widest_int, properly
	check whether the result fits the desired result type.

	* gcc.dg/torture/pr77436.c: New testcase.

From-SVN: r239937
2016-09-01 13:38:25 +00:00
Nathan Sidwell
bc4ec5430b * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
From-SVN: r239934
2016-09-01 12:07:16 +00:00
Wilco Dijkstra
491ec06036 This patch adds legitimize_address_displacement hook so that stack accesses...
This patch adds legitimize_address_displacement hook so that stack accesses
with large offsets are split into a more efficient sequence.  Unaligned and
TI/TFmode use a 256-byte range, byte and halfword accesses use a 4KB range,
wider accesses use a 16KB range to maximise the available addressing range
and increase opportunities to share the base address.

int f(int x)
{
  int arr[8192];
  arr[4096] = 0;
  arr[6000] = 0;
  arr[7000] = 0;
  arr[8191] = 0;
  return arr[x];
}

Now generates:

  sub   sp, sp, #32768
  add   x1, sp, 16384
  str   wzr, [x1]
  str   wzr, [x1, 7616]
  str   wzr, [x1, 11616]
  str   wzr, [x1, 16380]
  ldr   w0, [sp, w0, sxtw 2]
  add   sp, sp, 32768
  ret

    gcc/
	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
	New function.
	(TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.

From-SVN: r239923
2016-09-01 11:34:49 +00:00
Senthil Kumar Selvaraj
f79d87865b Fix more bogus testsuite failures for avr.
gcc/testsuite/

2016-09-01  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.dg/pr64252.c: Require int32plus.
        * gcc.dg/pr66299-1.c: Likewise.
        * gcc.dg/pr66299-2.c: Likewise.
        * gcc.dg/torture/20131115-1.c: Skip for avr.

From-SVN: r239921
2016-09-01 11:02:55 +00:00
Kyrylo Tkachov
b06335f93e [AArch64] Add ANDS pattern for CMP+ZERO_EXTEND
* config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
	for comparisons of integer ZERO_EXTEND against zero.

	* gcc.target/aarch64/ands_3.c: New test.

From-SVN: r239919
2016-09-01 09:03:52 +00:00
Eric Botcazou
3409207a44 i386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign is enabled.
* config/i386/i386.c (ix86_option_override_internal): Also disable the
	STV pass if -mstackrealign is enabled.

From-SVN: r239916
2016-09-01 07:55:00 +00:00