Commit Graph

141555 Commits

Author SHA1 Message Date
David Edelsohn b759335b16 xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit encoding in 64-bit mode.
* config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
encoding in 64-bit mode.

From-SVN: r228579
2015-10-07 14:35:23 -04:00
Ian Lance Taylor 65f52d9af6 compiler: Don't make temporaries for constant operands.
Fixes golang/go#12616.
    
    Reviewed-on: https://go-review.googlesource.com/14645

From-SVN: r228578
2015-10-07 17:47:45 +00:00
Uros Bizjak cba9c78977 re PR target/66697 (Feature request: -mstackrealign and force_align_arg_pointer for x86_64)
PR target/66697
	* config/i386/i386.c (ix86_option_override_internal): Always use
	8-byte minimum stack boundary in 64-bit mode.
	(ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
	(ix86_emit_save_reg_using_mov): Support unaligned SSE store.
	Add a REG_CFA_EXPRESSION note if needed.
	(ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
	(ix86_handle_force_align_arg_pointer_attribute): New.
	(ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
	(ix86_attribute_table): Set ix86_force_align_arg_pointer_string
	with ix86_handle_force_align_arg_pointer_attribute.
	* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.

testsuite/ChangeLog:

	PR target/66697
	* gcc.target/i386/20060512-1.c: Remove ia32 requirement.
	(PUSH, POP): New defines.
	(sse2_test): Use PUSH and POP to misalign runtime stack.
	* gcc.target/i386/20060512-2.c: Remove ia32 requirement.

From-SVN: r228577
2015-10-07 19:42:09 +02:00
Ian Lance Taylor 0786e1fe86 re PR go/67874 (fd_unix.go does not build when there is fcntl64 and no fcntl syscall)
PR go/67874
    net, runtime: Call C library fcntl function rather than syscall.Syscall.
    
    Not all systems define a fcntl syscall; some only have fcntl64.
    
    Fixes GCC PR go/67874.
    
    Reviewed-on: https://go-review.googlesource.com/15497

From-SVN: r228576
2015-10-07 17:22:08 +00:00
James Norris 919e06d3f5 atomic-dg.exp (atomic_link_flags): Move flag setting to atomic_init.
* testsuite/lib/atomic-dg.exp (atomic_link_flags): Move flag setting
	to atomic_init. (atomic_init): Restrict flags usage.

From-SVN: r228575
2015-10-07 17:09:46 +00:00
Aditya Kumar 91bf00a903 remove unused code
2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-scop-detection.c (parameter_index_in_region): Remove
                use of SESE_ADD_PARAMS.
                (find_scop_parameters): Same.
                * sese.c (new_sese_info): Same.
                * sese.h (struct sese_info_t): Remove add_params.
                (SESE_ADD_PARAMS): Remove.

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

From-SVN: r228574
2015-10-07 16:19:09 +00:00
Aditya Kumar bafcb15301 move graphite bookkeeping from sese to sese_info
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
                an sese_info_p.
                (copy_def): Same.
                (copy_internal_parameters): Same.
                (translate_isl_ast_to_gimple): Use an sese_l.
                (build_iv_mapping): Same.
                * graphite-poly.c (new_sese): Rename new_sese_info.
                (free_sese): Rename free_sese_info.
                * graphite-poly.h (struct scop): Use an sese_info_p.
                (scop_set_region): Same.
                * graphite-scop-detection.c (struct sese_l): Moved...
                (get_entry_bb): Moved...
                (get_exit_bb): Moved...
                (parameter_index_in_region_1): Use an sese_info_p.
                (parameter_index_in_region): Same.
                (scan_tree_for_params): Same.
                (find_params_in_bb): Same.
                (sese_dom_walker): Use an sese_l.
                * graphite-sese-to-poly.c (remove_invariant_phi): Same.
                (reduction_phi_p): Same.
                (parameter_index_in_region_1): Use an sese_info_p.
                (propagate_expr_outside_region): Use an sese_l.
                * graphite.c: Replace uses of SCOP_REGION.
                * sese.c (sese_record_loop): Use an sese_info_p.
                (build_sese_loop_nests): Same.
                (sese_build_liveouts_use): Same.
                (sese_build_liveouts_bb): Same.
                (sese_build_liveouts_bb): Same.
                (sese_bad_liveouts_use): Same.
                (sese_reset_debug_liveouts_bb): Same.
                (sese_build_liveouts): Same.
                (new_sese): Renamed new_sese_info.
                (free_sese): Renamed free_sese_info.
                (set_rename): Use an sese_info_p.
                (graphite_copy_stmts_from_block): Same.
                (copy_bb_and_scalar_dependences): Same.
                (outermost_loop_in_sese_1): Use an sese_l.
                (outermost_loop_in_sese): Same.
                (if_region_set_false_region): Use an sese_info_p.
                (move_sese_in_condition): Same.
                (scalar_evolution_in_region): Use an sese_l.
                * sese.h (struct sese_l): ... here.
                (SESE_ENTRY): Remove.
                (SESE_ENTRY_BB): Remove.
                (SESE_EXIT): Remove.
                (SESE_EXIT_BB): Remove.
                (sese_contains_loop): Use an sese_info_p.
                (sese_nb_params): Same.
                (bb_in_sese_p): Use an sese_l.
                (stmt_in_sese_p): Same.
                (defined_in_sese_p): Same.
                (loop_in_sese_p): Same.
                (sese_loop_depth): Same.
                (struct ifsese_s): Use an sese_info_p.
                (gbb_loop_at_index): Use an sese_l.
                (nb_common_loops): Same.
                (scev_analyzable_p): Same.

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

From-SVN: r228572
2015-10-07 15:40:17 +00:00
Marek Polacek b850dd2f0b re PR sanitizer/67867 (UBSan bootstrap fails with error: ‘otype’ may be used uninitialized in this function [-Werror=maybe-uninitialized])
PR sanitizer/67867
	* search.c (accessible_p): Initialize OTYPE to NULL_TREE.

From-SVN: r228569
2015-10-07 14:09:05 +00:00
H.J. Lu 1f3ccbc8e5 Define x86 CALL_USED_REGISTERS_MASK
Define x86 CALL_USED_REGISTERS_MASK used on x86 CALL_USED_REGISTERS.

	* config/i386/i386.c (ix86_conditional_register_usage): Use
	CALL_USED_REGISTERS_MASK.
	* config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.

From-SVN: r228568
2015-10-07 06:47:12 -07:00
H.J. Lu 32a18c8c93 Check $READELF_FOR_TARGET for readelf in configure
Similar to as, ld, nm and objdump, gcc configure should check
$READELF_FOR_TARGET for readelf.

	PR bootstrap/67385
	* configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
	* configure: Regenerated.

From-SVN: r228567
2015-10-07 06:45:21 -07:00
Andre Vehreschild b0ae33baab re PR fortran/65889 ([6 Regressions] [OOP] ICE with sizeof a polymorphic variable.)
gcc/fortran/ChangeLog:

2015-10-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/65889
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
	on stack class objects as sizeof parameter.

gcc/testsuite/ChangeLog:

2015-10-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/65889
	* gfortran.dg/sizeof_5.f90: New test.

From-SVN: r228566
2015-10-07 12:58:46 +02:00
H.J. Lu 735e964108 Merge ix86_maybe_switch_abi with ix86_set_current_function
ix86_maybe_switch_abi is called to late during RTL expansion and we
use the stale information from compilation of the previous function.
aggregate_value_p uses call_used_regs.  aggregate_value_p is used by
IPA and return value optimization, which are called before
ix86_maybe_switch_abi is called.  This patch merges ix86_maybe_switch_abi
with ix86_set_current_function.

	PR target/67850
	* config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
	(ix86_set_current_function): This.
	(TARGET_EXPAND_TO_RTL_HOOK): Removed.

From-SVN: r228565
2015-10-07 03:30:12 -07:00
Louis Krupp bbf3abfa73 Check in forgotten test for fortran/65766
From-SVN: r228564
2015-10-07 09:21:58 +00:00
Richard Biener 3161455c8b tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2015-10-07  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
	(vinfo_for_stmt): Adjust.
	(set_vinfo_for_stmt): Likewise.
	* tree-vectorizer.c (stmt_vec_info_vec): Likewise.
	* tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
	* tree-vect-loop.c (new_loop_vec_info): Remove special-casing
	of inner loop.
	(vect_analyze_loop_1): Remove.
	(vect_analyze_loop_form_1): Avoid building a loop_vec_info for
	inner loop when vectorizing an outer loop by splitting out from ...
	(vect_analyze_loop_form): ... here.

From-SVN: r228563
2015-10-07 09:04:48 +00:00
Ramana Radhakrishnan baba8d7dc7 Fix PR c/65345 for arm
2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR c/65345
	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r228562
2015-10-07 08:37:35 +00:00
Richard Sandiford d01db77a06 Cache reals for 1/4, 1/6 and 1/9
We have a global 1/2 and a cached 1/3, but recalculate 1/4, 1/6 and 1/9
each time we need them.  That seems a bit arbitrary and makes the folding
code more noisy (especially once it's moved to match.pd).

This patch caches the other three constants too.  Bootstrapped &
regression-tested on x86_64-linux-gnu.

gcc/
	* real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
	(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
	* real.c (CACHED_FRACTION): New helper macro.
	(dconst_third_ptr): Use it.
	(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
	* builtins.c (fold_builtin_sqrt): Use dconst_quarter and
	dconst_sixth.
	(fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.

From-SVN: r228561
2015-10-07 08:09:45 +00:00
Marek Polacek 5b5dce39b8 cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
* cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
	(genericize_cp_loop): Likewise.
	* decl.c (cxx_maybe_build_cleanup): Likewise.
	* parser.c (cp_parser_binary_expression): Likewise.
	(cp_parser_omp_for_loop): Likewise.
	(cp_parser_omp_construct): Likewise.
	* semantics.c (finish_transaction_stmt): Likewise.
	(build_transaction_expr): Likewise.

From-SVN: r228560
2015-10-07 06:52:45 +00:00
Jeff Law 00852255e4 [PATCH][PR tree-optimization/67816] Fix jump threading when DOM removes conditionals in jump threading path
PR tree-optimization/67816
	* tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
	from remove_jump_threads_starting_at.  Accept an edge rather than
	a basic block.
	* tree-ssa-threadupdate.c (removed_edges): New hash table.
	(remove_jump_threads_including): Note edges that get removed from
	the CFG for later pruning of jump threading paths including them.
	(thread_through_all_blocks): Remove paths which include edges that
	have been removed.
	* tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
	on each outgoing edges when optimizing away a control statement.

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

From-SVN: r228559
2015-10-06 20:25:57 -06:00
Trevor Saunders 165ccc5455 reorg.c: use vec<rtx_insn *> instead of rtx_insn_list for the delay insn list
gcc/ChangeLog:

2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c (emit_delay_sequence): Store list of delay slot insns
	in a vector instead of rtx_insn_list.
	(add_to_delay_list): Likewise.
	(delete_from_delay_slot): Likewise.
	(optimize_skip): Likewise.
	(redirect_with_delay_list_safe_p): Likewise.
	(check_annul_list_true_false): Likewise.
	(steal_delay_list_from_target): Likewise.
	(steal_delay_list_from_fallthrough): Likewise.
	(redundant_insn): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(fill_eager_delay_slots): Likewise.
	(relax_delay_slots): Likewise.

From-SVN: r228558
2015-10-07 02:11:17 +00:00
Jason Merrill 8237beb118 re PR c++/67810 (Non-expression recognized as fold expression)
PR c++/67810
	* parser.c (cp_parser_fold_expr_p): Remove.
	(is_binary_op): New.
	(cp_parser_fold_expression): Take LHS as parameter.
	(cp_parser_primary_expression): Call it after parsing an expression.
	(cp_parser_binary_expression, cp_parser_assignment_operator_opt)
	(cp_parser_expression): Ignore an operator followed by '...'.
	(is_binary_op): New.
	* pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
	(tsubst_unary_right_fold, tsubst_binary_right_fold): Handle errors.

From-SVN: r228556
2015-10-06 21:46:54 -04:00
GCC Administrator 437d8c8089 Daily bump.
From-SVN: r228555
2015-10-07 00:16:11 +00:00
Louis Krupp 58864d1c7a [multiple changes]
2015-10-06  Louis Krupp <louis.krupp@zoho.com>
	PR fortran/65766
	* resolve.c (gfc_resolve_substring_charlen): For derived type,
	use typespec of string component when resolving substring length.

2015-10-06  Louis Krupp     <louis.krupp@zoho.com>

	PR fortran/65766
	* gfortran.dg/substr_alloc_string_comp_1.f90: New.

From-SVN: r228551
2015-10-06 23:47:18 +00:00
Ian Lance Taylor c12df35927 compiler: Record each import as a distinct alias.
This patch introduces the Package_alias class which is a
    finer representation of the different between a package and the
    aliases it is imported under.  Each alias keeps track of the location
    of its import statement and how many times that alias has been used.
    This allows the gofrontend to report when a specific import has not
    been used even if a symbol from the package has been used by another
    import.
    
    Fixes golang/go#12326.
    
    Reviewed-on: https://go-review.googlesource.com/14259

From-SVN: r228550
2015-10-06 21:24:17 +00:00
Sandra Loosemore ce9f2dc532 nios2.c (nios2_symbol_ref_in_small_data_p): For -mgpopt=local, also exclude unintialized common symbols.
2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
	For -mgpopt=local, also exclude unintialized common symbols.
	* doc/invoke.texi (Nios II Options): Document the change.

From-SVN: r228549
2015-10-06 17:10:15 -04:00
Kugan Vivekanandarajah 64e9a944fb iterators.md (vwcore): Add missing cases for V4HF/V8HF modes.
gcc/ChangeLog:

2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/aarch64/iterators.md (vwcore): Add missing cases for
	 V4HF/V8HF modes.

gcc/testsuite/ChangeLog:

2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

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

From-SVN: r228547
2015-10-06 21:08:05 +00:00
Aditya Kumar 09fefdad6a move dr->alias_set to a helper structure
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-poly.c (new_scop): Initialize drs.
                * graphite-poly.h (struct dr_info): New.
                (struct scop): Add drs.
                * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
                (pdr_add_memory_accesses): Same.
                (build_poly_dr): Same.
                (build_alias_set): Same.
                (build_scop_drs): Same.
                (build_pbb_drs): Remove.
                * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
                * tree-data-ref.h (data_reference): Remove alias_set.

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

From-SVN: r228545
2015-10-06 20:50:35 +00:00
Aditya Kumar 790befae61 remove unused struct base_alias_pair
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-poly.c (free_data_refs_aux): Remove.
                (free_gimple_poly_bb): Do not call free_data_refs_aux.
                * graphite-poly.h (struct base_alias_pair): Remove.
                * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
                base_alias_pair and dr->aux.
                (build_alias_set): Same.
                * tree-data-ref.c (create_data_ref): Initialize alias_set.
                * tree-data-ref.h (data_reference): Add alias_set.

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

From-SVN: r228544
2015-10-06 20:50:29 +00:00
Aditya Kumar 4fd0b1760d remove dead code in computation of alias sets
2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
                Do not set PDR_BASE_OBJECT_SET.
                * graphite-poly.h (poly_dr): Same.
                (PDR_BASE_OBJECT_SET): Remove.
                (new_poly_dr): Update decl.
                * graphite-sese-to-poly.c (build_poly_dr): Update call to
                new_poly_dr.
                (write_alias_graph_to_ascii_dimacs): Remove.
                (write_alias_graph_to_ascii_dot): Remove.
                (write_alias_graph_to_ascii_ecc): Remove.
                (dr_same_base_object_p): Remove.
                (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
                code.
                (build_base_obj_set_for_drs): Remove.
                (dump_alias_graphs): Remove.
                (build_scop_drs): Remove dead code.

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

From-SVN: r228543
2015-10-06 20:50:22 +00:00
Marek Polacek 21ba0ceaa5 c-parser.c (c_parser_statement_after_labels): Use protected_set_expr_location.
* c-parser.c (c_parser_statement_after_labels): Use
	protected_set_expr_location.
	(c_parser_omp_clause_num_gangs): Likewise.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_num_workers): Likewise.
	(c_parser_omp_clause_vector_length): Likewise.
	(c_parser_omp_clause_num_teams): Likewise.
	(c_parser_omp_clause_thread_limit): Likewise.
	* c-typeck.c (build_c_cast): Likewise.
	(c_cast_expr): Likewise.

From-SVN: r228541
2015-10-06 17:59:10 +00:00
Marek Polacek 46836b0e03 re PR c++/67863 (-Wtautological-compare warns when it shouldn't)
PR c++/67863
	* call.c (build_conditional_expr_1): Build the COND_EXPR with
	a location.

	* c-c++-common/Wtautological-compare-4.c: New test.

From-SVN: r228540
2015-10-06 17:56:23 +00:00
Michael Meissner 1f27e05415 Remove duplicate target line.
From-SVN: r228539
2015-10-06 17:49:17 +00:00
Michael Meissner bd4b39f249 re PR target/67808 (LRA ICEs on simple double to long double conversion test case)
[gcc]
2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Peter Bergner  <bergner@vnet.ibm.com>

	PR target/67808
	* config/rs6000/rs6000.md (extenddftf2): In the expander, only
	allow registers, but provide insns for the combiner to create for
	loads from memory. Separate VSX code from non-VSX code. For
	non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
	externaldftf2_internal to externaldftf2_fprs. Reorder constraints
	so that registers come before memory operations. Drop support from
	converting DFmode to TFmode, if the DFmode value is in a GPR
	register.
	(extenddftf2_fprs): Likewise.
	(extenddftf2_internal): Likewise.
	(extenddftf2_vsx): Likewise.
	(extendsftf2): In the expander, only allow registers, but provide
	insns for the combiner to create for stores and loads.

[gcc/testsuite]
2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Peter Bergner <bergner@vnet.ibm.com>

	PR target/67808
	* gcc.target/powerpc/pr67808.c: New test.


Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>

From-SVN: r228538
2015-10-06 17:20:49 +00:00
Ramana Radhakrishnan 184a8d6f7d Remove ATTRIBUTE_UNUSED from `decl' parameter of default_elf_asm_named_section
The decl parameter in default_elf_asm_named_section is actually used.
Applied as obvious after an arm-none-eabi build.

Ramana


2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

	* varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
	from the decl parameter.

From-SVN: r228537
2015-10-06 17:00:12 +00:00
Nathan Sidwell 242a37f12d re PR middle-end/67861 (coreutils' wc.c:write_counts is miscompiled since commit 7e3a76de7c496449b187c2688d958631cf21a944)
PR 67861
	* gimple-fold.c (gimple_fold_builtin): Add break after
	BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.

From-SVN: r228536
2015-10-06 16:47:00 +00:00
H.J. Lu cbe7b2295e Rename scop->ctx to isl_context
* graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
	to scop->isl_context.

From-SVN: r228535
2015-10-06 09:42:13 -07:00
Eric Botcazou fabc9e2248 arm.c (arm_emit_probe_stack_range): Adjust comment.
* config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
	(output_probe_stack_range): Rotate the loop and simplify.
	(thumb1_expand_prologue): Tweak sorry message.
	* config/arm/arm.md (probe_stack): Use bare string.

From-SVN: r228534
2015-10-06 16:39:00 +00:00
Nick Clifton 7c9bb341b0 * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
From-SVN: r228533
2015-10-06 16:36:49 +00:00
Nick Clifton 90bc48789b gcc * config/msp430/msp430.c (ATTR_NOINIT): New constant.
(ATTR_PERSIST): New constant.
	(msp430_data_attr): New function - verifies an attribute that only
	applies to variables.
	(msp430_attributes): Add noinit and persistent attributes.
	(noinit_section): New variable.
	(presis_section): New variable.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(msp430_init_sections): New function - initialises the noinit and
	persist section variables.
	(msp430_select_section): Add support for noinit and persist
	attributes.
	(msp430_section_type_flags): Likewise.
	* doc/extend.texi:  Document the reent, critical, wakeup, noinit
	and persistent attributes.

tests	* gcc.target/msp430: New directory.
	* gcc.target/msp430/msp430.exp: New file.  Runs MSP430 specific
	tests.
	* gcc.target/msp430/data-attributes.c: New file.  Checks the
	noinit and persistent data attributes.

From-SVN: r228531
2015-10-06 16:26:22 +00:00
Aditya Kumar eaec70cd8b remove dead code used by the old cloog scheduler
2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                * graphite-dependences.c (scop_get_transformed_schedule): Remove.
                (no_violations): Remove.
                (subtract_commutative_associative_deps): Remove.
                (compute_deps): Do not call subtract_commutative_associative_deps.
                (transform_is_safe): Remove.
                (graphite_legal_transform): Remove.
                * graphite-poly.h (graphite_legal_transform): Remove.

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

From-SVN: r228530
2015-10-06 15:56:15 +00:00
Aditya Kumar 216cc294ef Early exit to avoid redundant computations
Analyze only those bbs which are outside the region for uses which might be
defined inside the region. This is intended to improve the compile time. This
algorithm may be further improved by only looking at the successors of region as
these regions are sese. Added FIXMEs to make this improvement in future.

Passes regtest and bootstrap on x86_64.

gcc/ChangeLog:

2015-10-05  Aditya Kumar  <hiraditya@msn.com>

        * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
        which are in this region are passed so gcc_assert and remove redundant
        computation.
        * sese.c (sese_build_liveouts): Pass only those bbs which are not in region.
        (sese_bad_liveouts_use): Only BBs which are not in region are passed so
        gcc_assert on that and remove unnecessary computation.
        (sese_build_liveouts_use): Same.

From-SVN: r228529
2015-10-06 15:56:09 +00:00
Aditya Kumar 8e4dc590c8 Move declarations, assign types, renaming.
1. Move declarations near the assignment/usage.
2. Assign type to members which were void*.
3. Rename scop->context to scop::param_context, and scop::ctx to
scop::isl_context

No functional changes intended. Passes regtest and bootstrap.

gcc/ChangeLog:

2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>

        * graphite-dependences.c (scop_get_reads): Renamed scop->context to scop->param_context.
        (scop_get_must_writes): Same.
        (scop_get_may_writes): Same.
        (scop_get_original_schedule): Same.
        (scop_get_transformed_schedule): Same.
        (subtract_commutative_associative_deps): Same.
        * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
        (generate_isl_context): Same.
        (generate_isl_schedule): Same.
        (scop_to_isl_ast): Same.
        (graphite_regenerate_ast_isl): Same.
        * graphite-optimize-isl.c (scop_get_domains): Same.
        (optimize_isl): Renamed scop->context to scop->param_context.
        * graphite-poly.c (new_poly_bb): Change the type of argument to gimple_poly_bb_p.
        (new_scop): Renamed scop->context to scop->param_context.
        (free_scop): Same.
        (print_scop_context): Same.
        * graphite-poly.h (new_poly_dr): Change the type of argument from void* to data_reference_p.
        (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
        (new_poly_bb): Change the type of argument from void* to gimple_poly_bb_p.
        (pbb_set_black_box): Same.
        (struct scop): Rename context to param_context, ctx to isl_context.
        * graphite-scop-detection.c (scop_detection::build_scop_bbs_1): Move declarations closer to assignment.
        (find_params_in_bb): Same.
        (find_scop_parameters): Same.
        * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize): Global to be used for statement IDs.
        (isl_id_for_pbb): Use ssa_name_version_typesize.
        (simple_copy_phi_p): Move declarations closer to assignment.
        (build_pbb_scattering_polyhedrons): Same.
        (build_scop_scattering): Same.
        (isl_id_for_ssa_name): Same.
        (extract_affine_name): Same.
        (extract_affine_int): Same.
        (extract_affine): Same.
        (set_scop_parameter_dim): Use renamed member.
        (build_loop_iteration_domains): Same.
        (add_param_constraints): Same.
        (build_scop_iteration_domain): Same.
        (pdr_add_data_dimensions): Same.
        (build_poly_dr): Same.
        (build_scop_drs): Move declarations closer to assignment.
        (analyze_drs_in_stmts): Same.
        (insert_out_of_ssa_copy): Same.
        (insert_out_of_ssa_copy_on_edge): Same.
        (propagate_expr_outside_region): Same.
        (rewrite_phi_out_of_ssa): Same.
        (rewrite_degenerate_phi): Same.
        (rewrite_reductions_out_of_ssa): Same.
        (rewrite_cross_bb_scalar_dependence): Same.
        (handle_scalar_deps_crossing_scop_limits): Same.
        (rewrite_cross_bb_scalar_deps): Same.
        * graphite.c (graphite_transform_loops): Use renamed member.

From-SVN: r228528
2015-10-06 15:56:03 +00:00
Uros Bizjak 0711992144 re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
	create_tmp_var_raw instead of create_tmp_var.

From-SVN: r228527
2015-10-06 17:31:11 +02:00
Ramana Radhakrishnan 09ba9ef71c Fix PR c/65345 for AArch64
2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR c/65345
	* config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r228526
2015-10-06 15:09:43 +00:00
Alexander Fomin 2d83470f10 AVX-512. Avoid upper-bank registers when splitting vec_extract_lo instruction.
gcc/
	PR target/67849
	* config/i386/sse.md (define_split vec_select/V8FI): Restrict
	split for upper-bank registers when target does not support
	AVX512VL.
	(define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
	split when target does not support AVX512VL.

From-SVN: r228525
2015-10-06 13:49:30 +00:00
David Edelsohn 2d546fb73b re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
        * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
        Adjust to use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r228524
2015-10-06 09:46:34 -04:00
Kirill Yukhin bdef544251 builtin_target.c: Fix AVX-512VBMI detection.
gcc/testsuite/
        * gcc.target/i386/builtin_target.c: Fix AVX-512VBMI detection.

From-SVN: r228523
2015-10-06 13:46:22 +00:00
Nick Clifton 2ef98fb9eb rl78.c (rl78_rtx_costs): Improve cost estimates for multiplication.
* config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
	multiplication.

From-SVN: r228521
2015-10-06 13:42:33 +00:00
Venkataramanan Kumar 9ce29eb05d AMD znver1 enablement.
2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
	
	AMD znver1 enablement. 
	* config.gcc (i[34567]86-*-linux* | ...): Add znver1.
	(case ${target}): Add znver1.
	* config/i386/cpuid.h(bit_CLZERO):  Define.
	* config/i386/driver-i386.c: (host_detect_local_cpu): Let
	-march=native recognize znver1 processors. 
	* config/i386/i386-c.c (ix86_target_macros_internal): Add
	znver1, clzero def_and_undef. 
	* config/i386/i386.c (struct processor_costs znver1_cost): New.
	(m_znver1): New definition.
	(m_AMD_MULTIPLE): Includes m_znver1.
	(processor_target_table): Add znver1 entry.
	(ix86_target_string) : Add clzero entry.
	(static const char *const cpu_names): Add znver1 entry.
	(ix86_option_override_internal): Add znver1 instruction sets.
	(PTA_CLZERO) :  New definition.
	(ix86_option_override_internal): Handle new clzerooption.
	(ix86_issue_rate): Add znver1.
	(ix86_adjust_cost): Add znver1.                
	(ia32_multipass_dfa_lookahead): Add znver1.
	(has_dispatch): Add znver1.       
	* config/i386/i386.h (TARGET_znver1): New definition. 
	(TARGET_CLZERO): Define.
	(TARGET_CLZERO_P): Define.
	(struct ix86_size_cost): Add TARGET_ZNVER1.
	(enum processor_type): Add PROCESSOR_znver1.
	* config/i386/i386.md (define_attr "cpu"): Add znver1.
	(set_attr znver1_decode): New definitions for znver1.
	* config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
	(mclzero): New.
	* config/i386/mmx.md (set_attr znver1_decode): New definitions
	for znver1.
	* config/i386/sse.md (set_attr znver1_decode): Likewise.
	* config/i386/x86-tune.def:  Add znver1 tunings.
	* config/i386/znver1.md: Introduce znver1 cpu and include new md file.
	* gcc/doc/invoke.texi: Add details about znver1

From-SVN: r228520
2015-10-06 12:48:41 +00:00
Richard Biener 0580f6a1a8 re PR tree-optimization/67859 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu)
2015-10-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67859
	* tree-ssa-pre.c (create_expression_by_pieces): Properly
	discard not inserted stmts.

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

From-SVN: r228519
2015-10-06 12:34:15 +00:00
Jonathan Wakely badfb2fbef Update template instantiation documentation
* doc/extend.texi (Template Instantiation): Reorder options and
	de-emphasize -frepo.
	* doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
	example instead of -frepo.

From-SVN: r228518
2015-10-06 11:27:57 +01:00