1. 19 Nov, 2015 23 commits
  2. 18 Nov, 2015 17 commits
    • re PR fortran/59910 (ICE in gfc_conv_array_initializer, at fortran/trans-array.c:5327) · 586dc38b
      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
      Steven G. Kargl committed
    • re PR fortran/43996 (ICE in gfc_conv_array_initializer due to incomplete… · 9231aa17
      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
      Steven G. Kargl committed
    • Add out-of-line versions of some <stdatomic.h> functions (PR c/65083). · c29c36ad
      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
      Joseph Myers committed
    • trans.c (elaborate_all_entities_for_package): New function extracted from... · 2b2a2e9e
      	* 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
      Eric Botcazou committed
    • ada-tree.h (DECL_INVARIANT_P): New macro. · 64235766
      	* 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
      Eric Botcazou committed
    • nvptx.c (nvptx_process_pars): Fix whitespace. · 5d306e55
      	* 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
      Nathan Sidwell committed
    • misc.c: Move global variables to the top of the file. · 5f29a394
      	* 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
      Eric Botcazou committed
    • Enable condegen in case of cond phis. · 21c7259c
      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
      Aditya Kumar committed
    • Move codegen related functions to graphite-isl-ast-to-gimple.c · 2ecf4eca
      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
      Aditya Kumar committed
    • freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the commit from r125920 for FreeBSD. · 159e0d3b
      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
      Andreas Tobler committed
    • Support GGC finalizers with PCH. · 2a304777
      	* 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
      Jason Merrill committed
    • re PR target/68410 (config/nios2/nios2.c: 4123: duplicates in expression) · 231f6e09
      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
      Sandra Loosemore committed
    • avr-mcus.def: Add new avr4 devices atmega48pb and atmega88pb. · b6ff50e3
      	* 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
      Pitchumani Sivanupandi committed
    • nvptx.c (bb_pair_t, [...]): New types. · 912442c2
      	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
      Nathan Sidwell committed
    • decl.c (gnat_to_gnu_entity): Use case #1 for the renaming of an address. · 482a338d
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use case #1
      	for the renaming of an address.
      
      From-SVN: r230560
      Eric Botcazou committed
    • trans.c (fold_constant_decl_in_expr): If the index is not itself constant then bail out. · a239279e
      	* gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If
      	the index is not itself constant then bail out.
      
      From-SVN: r230558
      Eric Botcazou committed
    • Add PR marker to last change · 70318db4
      From-SVN: r230556
      Jeff Law committed