Commit Graph

142451 Commits

Author SHA1 Message Date
Kirill Yukhin
cf0347ae4c re PR c++/68158 (Function attributes parsed incorrectly in C++ (while -fcilkplus))
gcc/testsuite/
	* c-c++-common/attr-simd-3.c: Put xfail (PR68158) on dg-error.
	* c-c++-common/attr-simd.c: Limit scan of dump to x86_64/i?86.

From-SVN: r230641
2015-11-20 05:42:41 +00:00
David Malcolm
8ece8dfbd9 C++ FE: offer suggestions for misspelled field names
gcc/c/ChangeLog:
	* c-typeck.c (lookup_field_fuzzy): Move determination of closest
	candidate into a new function, find_closest_identifier.

gcc/cp/ChangeLog:
	* cp-tree.h (lookup_member_fuzzy): New decl.
	* search.c: Include spellcheck.h.
	(class lookup_field_fuzzy_info): New class.
	(lookup_field_fuzzy_info::fuzzy_lookup_fnfields): New.
	(lookup_field_fuzzy_info::fuzzy_lookup_field): New.
	(lookup_field_fuzzy_r): New.
	(lookup_member_fuzzy): New.
	* typeck.c (finish_class_member_access_expr): When issuing
	a "has no member named" error, call lookup_member_fuzzy, and
	offer any result as a suggestion.

gcc/ChangeLog:
	* spellcheck-tree.c (find_closest_identifier): New function, taken
	from c/c-typeck.c:lookup_field_fuzzy, with NULL corrected to
	NULL_TREE in two places.
	* spellcheck.h (find_closest_identifier): New decl.

gcc/testsuite/ChangeLog:
	* g++.dg/spellcheck-fields.C: New file.

From-SVN: r230638
2015-11-20 01:26:00 +00:00
GCC Administrator
32c912aad1 Daily bump.
From-SVN: r230637
2015-11-20 00:16:12 +00:00
Torvald Riegel
258c1d0722 Support __cxa_free_exception and fix exception handling.
gcc/cp/
	* except.c (do_free_exception): Use transactional wrapper.

	libitm/
	* testsuite/libitm.c++/eh-5.C: New.
	* libitm.h (_ITM_cxa_free_exception): New.
	* libitm.map (_ITM_cxa_free_exception): Add it.
	* libitm.texi: Update ABI docs.
	* libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
	(gtm_transaction_cp::cxa_uncaught_count): Add.
	(gtm_thread::cxa_unthrown): Remove.
	(gtm_thread::cxa_uncaught_count_ptr): Add.
	(gtm_thread::cxa_uncaught_count): Add.
	(gtm_thread::drop_references_allocations): Rename to...
	(gtm_thread::discard_allocation): ... this and adapt.
	(gtm_thread::init_cpp_exceptions): New.
	* beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
	(gtm_thread::begin_transaction): Likewise.
	(gtm_transaction_cp::save): Likewise.
	(gtm_thread::trycommit): Likewise.
	* eh_cpp.cc: Add overview comments.
	(__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
	(free_any_exception, _ITM_cxa_free_exception): New.
	(gtm_thread::init_cpp_exceptions): Define.
	(_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
	(_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
	(gtm_thread::revert_cpp_exceptions): Likewise.

From-SVN: r230634
2015-11-20 00:10:08 +00:00
DJ Delorie
9afebea2d5 * config/msp430/lib2hw_mul.S: Fix alignment.
From-SVN: r230633
2015-11-19 19:08:50 -05:00
Aditya Kumar
a378e92255 fix PR68428: ignore bb dominated by the scop->exit
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230632
2015-11-19 23:06:18 +00:00
Aditya Kumar
2927ca4b24 fix PR68341: correctly compute the insertion point for close phi nodes
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230631
2015-11-19 22:56:42 +00:00
Aditya Kumar
deca214613 add testcase for PR68335
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230630
2015-11-19 22:47:48 +00:00
Jason Merrill
e3f8abd61e re PR c++/68422 (compile-time cost of sizeof... is quadratic)
PR c++/68422

	* cp-tree.h (PACK_EXPANSION_SIZEOF_P): New.
	* parser.c (cp_parser_sizeof_pack): Set it.
	* pt.c 	(tsubst_copy) [SIZEOF_EXPR]: Likewise.
	(tsubst_pack_expansion): Improve T... shortcut for expression packs.

From-SVN: r230629
2015-11-19 17:29:08 -05:00
Nathan Sidwell
0766660bf9 nvptx.h (SUPPORTS_WEAK): Define.
gcc/
	* config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
	* config/nvptx/nvptx.c (nvptx_write_function_decl): Support
	DECL_WEAK.
	(nvptx_declare_objec_name): Likewise.

	gcc/testsuite/
	* lib/target-supports.exp (check_weak_available): Add nvptx-*-*.
	* gcc.dg/attr-weakref-1.c: Skip for nvptx-*-*
	* gcc.dg/special/weak-2.c: Likewise.
	* gcc.dg/weak/weak-12.c: Likewise.
	* gcc.dg/weak/weak-15.c: Likewise.
	* gcc.dg/weak/weak-16.c: Likewise.
	* gcc.dg/weak/weak-1.c: Likewise.
	* gcc.dg/weak/weak-2.c: Likewise.
	* gcc.dg/weak/weak-4.c: Likewise.
	* gcc.dg/torture/pr53922.c: Likewise.
	* gcc.dg/torture/pr60092.c: Likewise.

From-SVN: r230628
2015-11-19 22:05:03 +00:00
Marek Polacek
433068ccab re PR c/68412 (ICE with -Wall -Wextra in fold_binary_loc())
PR c/68412
	* c-typeck.c (parser_build_binary_op): Properly handle
	C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.

	* gcc.dg/pr68412-2.c: New test.
	* gcc.dg/pr68412.c: New test.

From-SVN: r230627
2015-11-19 22:04:00 +00:00
Aditya Kumar
09b574dda9 fix bootstrap without ISL on old linkers
With and without this patch passes bootstrap on x86_64-linux with and without ISL.
The problem occurs on systems with older linkers that do not remove dead symbols.

From-SVN: r230625
2015-11-19 20:35:12 +00:00
Nathan Sidwell
2d25681660 reduction-dbl.c: New.
* libgomp.oacc-c-c++-common/reduction-dbl.c: New.
	* libgomp.oacc-c-c++-common/reduction-flt.c: New.
	* libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
	* libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
	* libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
	and fix.
	* libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
	* libgomp.oacc-c-c++-common/reduction-4.c: Likewise.

From-SVN: r230621
2015-11-19 18:58:39 +00:00
Ryan Burn
0398c18360 re PR c++/68396 (function auto-deduced return types get incorrectly classified as parameter packs)
PR c++/68396

2015-11-19  Ryan Burn  <contact@rnburn.com>

	* pt.c (find_parameter_packs_r) [DECLTYPE_TYPE]: When traversing
	the DECLTYPE_TYPE_EXPR, set type_pack_expansion_p to false.

From-SVN: r230620
2015-11-19 13:25:38 -05:00
David Edelsohn
498cb3c320 revert: rs6000.c (use_toc_relative_ref): Ignore type-limits warning.
2015-11-19  David Edelsohn  <dje.gcc@gmail.com>

        Revert
	2015-11-18  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
	type-limits warning.

From-SVN: r230619
2015-11-19 12:37:12 -05:00
Senthil Kumar Selvaraj
1014b6f54b [Patch, vrp] Allow VRP type conversion folding only for widenings upto word mode
* tree.h (desired_pro_or_demotion_p): New function.
	* tree-vrp.c (simplify_cond_using_ranges): Call it.

	* gcc.dg/tree-ssa/vrp98.c: New testcase.
	* gcc.target/avr/uint8-single-reg.c: New testcase.

From-SVN: r230618
2015-11-19 10:30:24 -07:00
Bob Duff
04a9bb6ec3 sem_elab.adb (Check_Internal_Call_Continue): Correction to previous change...
2015-11-19  Bob Duff  <duff@adacore.com>
        
	* sem_elab.adb (Check_Internal_Call_Continue): Correction to previous
	change: correctly handle generic formals/actuals that look like
	renamings.

From-SVN: r230617
2015-11-19 17:40:37 +01:00
Ilya Verbin
4219ddb32f libgomp-plugin-intelmic.cpp (struct TargetImageDesc): New.
liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (struct TargetImageDesc): New.
	(ImgDescMap): New typedef.
	(image_descriptors): New static var.
	(init): Allocate image_descriptors.
	(offload): Remove vars2 argument.  Pass NULL to __offload_offload1
	instead of vars2.
	(unregister_main_image): New static function.
	(register_main_image): Call unregister_main_image at exit.
	(GOMP_OFFLOAD_init_device): Print device number, fix offload args.
	(GOMP_OFFLOAD_fini_device): Likewise.
	(get_target_table): Remove vd1g and vd2g, don't pass them to offload.
	(offload_image): Remove declaration of the struct TargetImage.
	Free table.  Insert new descriptor into image_descriptors.
	(GOMP_OFFLOAD_unload_image): Call __offload_unregister_image, free
	the corresponding descriptor, and remove it from address_table and
	image_descriptors.
	(GOMP_OFFLOAD_alloc): Print device number, remove vd1g.
	(GOMP_OFFLOAD_free): Likewise.
	(GOMP_OFFLOAD_host2dev): Print device number, remove vd1g and vd2g.
	(GOMP_OFFLOAD_dev2host): Likewise.
	(GOMP_OFFLOAD_run): Print device number, remove vd1g.
	* plugin/offload_target_main.cpp (__offload_target_table_p1): Remove
	vd2, don't pass it to __offload_target_enter.
	(__offload_target_table_p2): Likewise.
	(__offload_target_alloc): Likewise.
	(__offload_target_free): Likewise.
	(__offload_target_host2tgt_p1): Likewise.
	(__offload_target_host2tgt_p2): Likewise.
	(__offload_target_tgt2host_p1): Likewise.
	(__offload_target_tgt2host_p2): Likewise.
	(__offload_target_run): Likewise.
	(__offload_target_tgt2tgt): Remove vd1g, don't pass it to
	__offload_target_enter.

From-SVN: r230614
2015-11-19 16:22:13 +00:00
Jakub Jelinek
2c4437019f re PR c++/67409 (tree-cfg.c dereferences a NULL pointer)
PR c++/67409
	* decl.c (identify_goto): Add LOC and DIAG_KIND arguments, call
	emit_diagnostic instead of permerror.
	(check_previous_goto_1): Adjust identify_goto callers, treat all
	cases but crossing initialization and entering scope of decl with
	non-trivial dtor as unconditional hard errors.
	(check_goto): Use identify_goto.  Treat all cases but crossing
	initialization and entering scope of decl with non-trivial dtor
	as unconditional hard errors.

	* g++.dg/eh/goto3.C: New test.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r230613
2015-11-19 17:18:39 +01:00
Michael Matz
1e1ce42e72 fwprop.c (update_uses): Use flag_checking instead of gcc_checking_assert.
* fwprop.c (update_uses): Use flag_checking instead of
	gcc_checking_assert.

From-SVN: r230612
2015-11-19 16:12:50 +00:00
David Malcolm
381846b1ca Fix typo in doc/gty.texi
gcc/ChangeLog:
	* doc/gty.texi (Support for inheritance): Fix missing
	parentheses in example.

From-SVN: r230609
2015-11-19 15:18:03 +00:00
Marek Polacek
41bfbbb68a re PR tree-optimization/68431 (Regression in GCC-6.0.0's optimizer)
PR tree-optimization/68431
	* tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.

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

From-SVN: r230608
2015-11-19 15:12:35 +00:00
Cesar Philippidis
8504d5dd8e parser.h (struct cp_omp_declare_simd_data): Add clauses member.
gcc/cp/
	* parser.h (struct cp_omp_declare_simd_data): Add clauses member.
	(struct cp_parser): Change type the of oacc_routine to
	cp_omp_declare_simd_data.
	* parser.c (cp_ensure_no_oacc_routine): Rework to use
	cp_omp_declare_simd_data.
	(cp_parser_simple_declaration): Remove boolean first.  Update call to
	cp_parser_init_declarator. Don't NULL out oacc_routine.
	(cp_parser_init_declarator): Remove boolean first parameter.  Update
	calls to cp_finalize_oacc_routine.
	(cp_parser_late_return_type_opt): Handle acc routines. 
	(cp_parser_member_declaration): Remove first variable.  Handle
	acc routines like omp declare simd.
	(cp_parser_function_definition_from_specifiers_and_declarator): Update
	call to cp_finalize_oacc_routine.
	(cp_parser_single_declaration): Update call to
	cp_parser_init_declarator.
	(cp_parser_save_member_function_body): Remove first_decl parameter.
	Update call to cp_finalize_oacc_routine.
	(cp_parser_finish_oacc_routine): Delete.
	(cp_parser_oacc_routine): Rework to use cp_omp_declare_simd_data.
	(cp_parser_late_parsing_oacc_routine): New function.
	(cp_finalize_oacc_routine): Remove first argument.  Add more error
	handling and set the acc routine and 'omp declare target' attributes.
	(cp_parser_pragma): Remove unnecessary call to
	cp_ensure_no_oacc_routine.

From-SVN: r230607
2015-11-19 06:56:51 -08:00
Nathan Sidwell
6c164570bd nvptx.md (atomic_compare_and_swap<mode>_1, [...]): Input values can be immediates.
* config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
	atomic_exchange<mode>): Input values can be immediates.

From-SVN: r230606
2015-11-19 14:40:28 +00:00
Eric Botcazou
bcefc3444c re PR lto/61313 (configure incorrectly strips $target_alias from PLUGIN_LD_SUFFIX)
PR lto/61313
	* configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
	by the user.
	* configure: Regenerate.

From-SVN: r230603
2015-11-19 13:31:33 +00:00
Martin Liska
0f3594af7b clang-format: Enhance list of FOR_EACH macros
* clang-format: Enhance list of FOR_EACH macros.

From-SVN: r230602
2015-11-19 12:54:57 +00:00
Martin Liska
daa53f38ee Add clang-format config to contrib folder
* .gitignore: Add .clang-format to ignored files.
	* Makefile.in: Add clang-format.
	* Makefile.tpl: Likewise.
	* clang-format: New file.

From-SVN: r230601
2015-11-19 12:32:09 +00:00
Eric Botcazou
05f44cf5de re PR target/68408 (broken support for attribute init_priority)
PR target/68408
	* config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
	(DTORS_SECTION_ASM_OP): Likewise.

From-SVN: r230598
2015-11-19 11:49:32 +00:00
Jakub Jelinek
dfc3d7a8a2 re PR rtl-optimization/68376 (wrong code at -O1 and above on x86_64-linux-gnu)
PR rtl-optimization/68376
	* ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
	encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.

	* gcc.c-torture/execute/pr68376-1.c: New test.
	* gcc.c-torture/execute/pr68376-2.c: New test.

From-SVN: r230596
2015-11-19 09:49:59 +01:00
Richard Biener
bb35ccb1ef re PR middle-end/68117 (error: invalid PHI argument <<< Unknown tree: <invalid tree code> >>>)
2015-11-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/68117
	* tree-ssa.c (delete_tree_ssa): Revert removal of call to
	redirect_edge_var_map_destroy.

From-SVN: r230594
2015-11-19 08:47:16 +00:00
Jakub Jelinek
397d0df98c re PR target/67770 (i386: -fshrink-wrap can interact badly with trampolines)
PR target/67770
	* config/i386/i386.md (simple_return): Disable if
	ix86_static_chain_on_stack is true.

	* gcc.target/i386/pr67770.c: New test.

From-SVN: r230593
2015-11-19 09:30:19 +01:00
Jakub Jelinek
46ce03de3a re PR preprocessor/60736 (Crash in preprocessor including stdc-predef.h when it does not exist on glibc-based systems)
PR preprocessor/60736
	* include/cpplib.h (cpp_errno_filename): New prototype.
	* errors.c (cpp_errno): Don't handle msgid "" specially, use
	_(msgid) instead of msgid as argument to cpp_error.
	(cpp_errno_filename): New function.
	* files.c (read_file_guts): Use cpp_errno_filename instead of
	cpp_errno.
	(open_file_failed): Likewise.  Use file->name if file->path is NULL
	in diagnostics.

From-SVN: r230591
2015-11-19 09:27:12 +01:00
Richard Sandiford
ee1326921d PR 68393: Handle SUBREG_PROMOTED_VAR_P in expand_direct_optab_fn
Do the usual dance when assigning to SUBREG_PROMOTED_VAR_P destinations:
first convert to the outer mode, then extend to the inner mode.

Tested that it fixes the powerpc64le-linux-gnu breakage.  Also tested
on x86_64-linux-gnu and powerpc64-linux-gnu.

gcc/
	PR bootstrap/68393
	* internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
	destinations.

From-SVN: r230590
2015-11-19 08:17:21 +00:00
Jason Merrill
d0eccfcdc3 c-common.c (shorten_compare): Don't -Wtype-limits if the non-constant operand comes from a macro.
* c-common.c (shorten_compare): Don't -Wtype-limits if the
	non-constant operand comes from a macro.

From-SVN: r230589
2015-11-18 23:26:48 -05:00
Jeff Law
7d7e7aca3b [PATCH][PR tree-optimization/68198] Avoid CFG explosion due to threading
PR tree-optimization/68198
	* tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
	between threading a multi-way branch and a thread path that contains
	a multi-way branch.  Disallow the case where a path contains a
	multi-way branch and does not thread a multi-way branch.
	(thread_through_all_blocks): Update comment.

        PR tree-optimization/68198
	* gcc.dg/tree-ssa/pr66752-3.c: Update expected output for VRP1.
	* gcc.dg/tree-ssa/pr68198.c: New test.

From-SVN: r230586
2015-11-18 17:33:27 -07:00
GCC Administrator
3ebf5a30cf Daily bump.
From-SVN: r230585
2015-11-19 00:16:12 +00:00
Steven G. Kargl
586dc38b3e re PR fortran/59910 (ICE in gfc_conv_array_initializer, at fortran/trans-array.c:5327)
2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/59910
	* primary.c (gfc_match_structure_constructor): Reduce a structure
	constructor in a DATA statement.

2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/59910
	* gfortran.dg/pr59910.f90: New test.

From-SVN: r230580
2015-11-18 22:55:17 +00:00
Steven G. Kargl
9231aa17d6 re PR fortran/43996 (ICE in gfc_conv_array_initializer due to incomplete simplification of init expressions)
2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/43996
	* simplify.c (gfc_simplify_spread): Issue error for too large array 
	constructor in a PARAMETER statement.

2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/43996
	* gfortran.dg/pr43996.f90: New test.

From-SVN: r230579
2015-11-18 22:51:39 +00:00
Joseph Myers
c29c36ad5d Add out-of-line versions of some <stdatomic.h> functions (PR c/65083).
PR c/65083 notes that some functions in <stdatomic.h> are normal
functions, not generic functions, and so need to have out-of-line
copies that can be called when macro expansion is suppressed (unlike
the generic functions where DR#419 makes it undefined if you suppress
a macro expansion).

This patch adds such out-of-line definitions in libatomic for those
six functions, at a new LIBATOMIC_1.2 symbol version, as trivial
wrappers to the <stdatomic.h> macros, along with declarations of those
functions in <stdatomic.h>.  Tests are added that are based on the
corresponding tests for the macros, but with parentheses around the
function names to force the out-of-line functions to be used.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc:
	* ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
	(atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
	(atomic_flag_clear, atomic_flag_clear_explicit): Declare as
	functions before defining as macros.

gcc/testsuite:
	* gcc.dg/atomic/stdatomic-fence-2.c,
	gcc.dg/atomic/stdatomic-flag-2.c: New tests.

libatomic:
	* fence.c, flag.c: New files.
	* Makefile.am (libatomic_la_SOURCES): Add fence.c and flag.c.
	* Makefile.in: Regenerate.
	* configure.ac (libtool_VERSION): Change to 3:0:2.
	* configure: Regenerate.
	* libatomic.map (LIBATOMIC_1.2): New symbol version.

From-SVN: r230578
2015-11-18 22:13:44 +00:00
Eric Botcazou
2b2a2e9e1e trans.c (elaborate_all_entities_for_package): New function extracted from...
* gcc-interface/trans.c (elaborate_all_entities_for_package): New
	function extracted from...  Recurse on packages.
	(elaborate_all_entities): ...here.  Call it on packages.

From-SVN: r230576
2015-11-18 21:59:30 +00:00
Eric Botcazou
642357660a ada-tree.h (DECL_INVARIANT_P): New macro.
* gcc-interface/ada-tree.h (DECL_INVARIANT_P): New macro.
	* gcc-interface/gigi.h (enum standard_datatypes): Remove
	ADT_longjmp_decl and add ADT_not_handled_by_others_decl.
	(longjmp_decl): Delete.
	(not_handled_by_others_decl): New macro.
	(build_simple_component_ref): Delete.
	(build_component_ref): Adjust prototype.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
	build_component_ref.
	(gnat_to_gnu_field): Set DECL_INVARIANT_P on discriminants
	without default value.
	* gcc-interface/trans.c (gigi): Reorder initialization sequence
	and add not_handled_by_others_decl.
	(Attribute_to_gnu): Adjust calls to build_component_ref.
	(Subprogram_Body_to_gnu): Likewise.
	(Call_to_gnu): Likewise.
	(Exception_Handler_to_gnu_sjlj): Likewise.
	(gnat_to_gnu): Likewise.
	(range_check_info_d): Add inserted_cond field.
	(Loop_Statement_to_gnu): Make two passes on the recorded range checks.
	(build_noreturn_cond): New static function.
	(Raise_Error_to_gnu): Record range checks in loops at -O1 and above.
	(make_invariant): New static function.
	(Loop_Statement_to_gnu): Use it to compute invariant expressions for
	the loop bounds if possible, but do not require it if loop unswitching
	is enabled.
	* gcc-interface/utils.c (convert_to_fat_pointer): Likewise.
	(convert): Likewise.
	(maybe_unconstrained_array): Likewise.  Call it instead of
	build_simple_component_ref and add guard for CONSTRUCTORs.
	(unchecked_convert): Likewise.
	* gcc-interface/utils2.c (compare_fat_pointers): Likewise.
	(build_simple_component_ref): Remove COMPONENT parameter, unify
	code dealing with VIEW_CONVERT_EXPR and make it more general,
	remove special treatment for CONSTRUCTORs of template types.
	(build_component_ref): Remove COMPONENT parameter and adjust call
	to build_simple_component_ref.
	(maybe_wrap_malloc): Likewise.
	(build_allocator): Likewise.
	(gnat_invariant_expr): Look through overflow checks, deal with
	addition and subtraction of constants and take into account
	DECL_INVARIANT_P for the COMPONENT_REF case.

From-SVN: r230575
2015-11-18 21:55:11 +00:00
Nathan Sidwell
5d306e55e0 nvptx.c (nvptx_process_pars): Fix whitespace.
* config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
	(nvptx_record_offload_symbol): Remove code compensating for lack
	of default dimension handling.
	(nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.

From-SVN: r230571
2015-11-18 21:33:57 +00:00
Eric Botcazou
5f29a394cd misc.c: Move global variables to the top of the file.
* gcc-interface/misc.c: Move global variables to the top of the file.
	(gnat_handle_option): Remove obsolete ATTRIBUTE_UNUSED markers.
	(gnat_init_options): Minor tweak.
	(gnat_post_options): Set -fstrict-overflow if not done by the user.
	(internal_error_function): Minor reformatting.

From-SVN: r230569
2015-11-18 21:17:51 +00:00
Aditya Kumar
21c7259c1c Enable condegen in case of cond phis.
The codegen of conditional PHIs inside the scop where one predecessor dominates
the other was difficult so it wasn't enabled in the previous patch. After a
couple of bug-fixes this has been enabled in this patch.  Not all the cases
could be handled in this case because it becomes difficult to map the basic
block back to original code in some cases.

Bug-fixes:
1. The vec_find returns -1 when no element was found. This wasn't checked.
2. When the arguments to pending phis could not be resolved in the second pass,
the codegen would fail so the new code should be cleaned up.

This patch passes regtest and bootstrap on linux-x86-64 with
BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'

2015-11-14  hiraditya  <hiraditya@msn.com>

	* graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
          type to bool for early exit.
          (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return in
          case of error.
          (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
          (add_phi_arg_for_new_expr): Enable codegen for if-block where one predecessor
          dominates the other.
          (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the element is not
          found it returns -1.
          (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail out early when
          codegen fails.
          (graphite_regenerate_ast_isl): Remove codegen region when pending phis
          could not be generated.

From-SVN: r230567
2015-11-18 21:08:40 +00:00
Aditya Kumar
2ecf4eca92 Move codegen related functions to graphite-isl-ast-to-gimple.c
No functional changes intended.
This patch passes regtest and bootstrap on linux-x86-64 with
BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'

gcc/ChangeLog:

2015-11-14  hiraditya  <hiraditya@msn.com>

	* graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove semicolon.
	(class translate_isl_ast_to_gimple): Indentation.
        (translate_pending_phi_nodes): Comment.
        (add_parameters_to_ivs_params): Moved from sese.c inside class translate_isl_ast_to_gimple.
        (get_max_schedule_dimensions): Same.
        (generate_isl_context): Same.
        (extend_schedule): Same.
        (generate_isl_schedule): Same.
        (set_options): Same.
        (scop_to_isl_ast): Same.
        (is_valid_rename): Same.
        (get_rename): Same.
        (get_rename_from_scev): Same.
        (get_def_bb_for_const): Same.
        (get_new_name): Same.
        (collect_all_ssa_names): Same.
        (copy_loop_phi_args): Same.
        (copy_loop_phi_nodes): Same.
        (copy_loop_close_phi_args): Same.
        (copy_loop_close_phi_nodes): Same.
        (copy_cond_phi_args): Same.
        (copy_cond_phi_nodes): Same.
        (graphite_copy_stmts_from_block): Same.
        (copy_bb_and_scalar_dependences): Same.
        (add_phi_arg_for_new_expr): Same.
        (rename_uses): Same.
        (set_rename): Same.
        (set_rename_for_each_def): Same.
        (gsi_insert_earliest): Same.
        (rename_all_uses): Same.
        (codegen_error_p): Same.
        (print_isl_ast_node): Same.
	(translate_isl_ast_for_loop): Call function codegen_error_p.
	(translate_isl_ast_to_gimple::translate_isl_ast): Same.
        (translate_isl_ast_node_user): Make nb_loops const and release iv_map before exit.
	(get_true_edge_from_guard_bb): Move all free-functions early.
	(get_false_edge_from_guard_bb): Same.
	(bb_contains_loop_close_phi_nodes): Same.
	(bb_contains_loop_phi_nodes): Same.
	(is_loop_closed_ssa_use):  Same.
	(number_of_phi_nodes): Same.
	(phi_uses_name): Same.
	(later_of_the_two): Same.
	(substitute_ssa_name):
	(get_edges): Same.
	(get_loc): Same.
	(get_loop_init_value): Same.
	(find_init_value): Same.
	(find_init_value_close_phi): Same.
	(ast_build_before_for): Same.
	(graphite_regenerate_ast_isl): Formatting changes.
	* graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
	* sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
	(set_rename): Same.
	(gsi_insert_earliest): Same.
	(collect_all_ssa_names): Same.
	(rename_all_uses): Same.
	(rename_uses): Same.
	(get_def_bb_for_const): Same.
	(copy_loop_phi_nodes): Same.
	(copy_loop_close_phi_args): Same.
	(copy_loop_close_phi_nodes): Same.
	(copy_cond_phi_args): Same.
	(copy_cond_phi_nodes): Same.
	(set_rename_for_each_def): Same.
	(graphite_copy_stmts_from_block): Same.
	(copy_bb_and_scalar_dependences): Same.
	(if_region_set_false_region): Same.
	(scev_analyzable_p): Same.
	* sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c

From-SVN: r230566
2015-11-18 21:08:33 +00:00
Andreas Tobler
159e0d3b26 freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the commit from r125920 for FreeBSD.
2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
    commit from r125920 for FreeBSD.

From-SVN: r230565
2015-11-18 21:48:18 +01:00
Jason Merrill
2a3047773e Support GGC finalizers with PCH.
* ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
	to be vecs of vecs.
	(add_finalizer): Split out from ggc_internal_alloc.
	(ggc_handle_finalizers): Run finalizers for the current depth.
	(init_ggc, ggc_pch_read): Reserve space for finalizers.

From-SVN: r230564
2015-11-18 15:11:32 -05:00
Sandra Loosemore
231f6e0927 re PR target/68410 (config/nios2/nios2.c: 4123: duplicates in expression)
2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/68410
	* config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
	from || expression.

From-SVN: r230563
2015-11-18 14:45:47 -05:00
Pitchumani Sivanupandi
b6ff50e362 avr-mcus.def: Add new avr4 devices atmega48pb and atmega88pb.
* config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
	atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
	and atmega328pb.
	* doc/avr-mmcu.texi: Regenerate.

From-SVN: r230562
2015-11-18 22:15:31 +03:00
Nathan Sidwell
912442c25d nvptx.c (bb_pair_t, [...]): New types.
gcc/
	* config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
	(pseudo_node_t, struct bracket, bracket_vec_t): New types.
	(struct bb_sese): New struct.
	(bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
	(BB_GET_SESE, BB_SET_SESE): Define.
	(nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
	(nvptx_find_sese): New.
	(nvptx_neuter_pars): Find SESE regions when optimizing.

	gcc/testsuite/
	* gcc.dg/goacc/nvptx-sese-1.c: New.

From-SVN: r230561
2015-11-18 18:33:38 +00:00