platform/upstream/linaro-gcc.git
8 years agogcc/
ienkovich [Tue, 29 Sep 2015 09:32:40 +0000 (09:32 +0000)]
gcc/

PR target/65105
* config/i386/i386.c: Include dbgcnt.h.
(has_non_address_hard_reg): New.
(convertible_comparison_p): New.
(scalar_to_vector_candidate_p): New.
(remove_non_convertible_regs): New.
(scalar_chain): New.
(scalar_chain::scalar_chain): New.
(scalar_chain::~scalar_chain): New.
(scalar_chain::add_to_queue): New.
(scalar_chain::mark_dual_mode_def): New.
(scalar_chain::analyze_register_chain): New.
(scalar_chain::add_insn): New.
(scalar_chain::build): New.
(scalar_chain::compute_convert_gain): New.
(scalar_chain::replace_with_subreg): New.
(scalar_chain::replace_with_subreg_in_insn): New.
(scalar_chain::emit_conversion_insns): New.
(scalar_chain::make_vector_copies): New.
(scalar_chain::convert_reg): New.
(scalar_chain::convert_op): New.
(scalar_chain::convert_insn): New.
(scalar_chain::convert): New.
(convert_scalars_to_vector): New.
(pass_data_stv): New.
(pass_stv): New.
(make_pass_stv): New.
(ix86_option_override): Created and register stv pass.
(flag_opts): Add -mstv.
(ix86_option_override_internal): Likewise.
* config/i386/i386.md (SWIM1248x): New.
(*movdi_internal): Add xmm to mem alternative for TARGET_STV.
(and<mode>3): Use SWIM1248x iterator instead of SWIM.
(*anddi3_doubleword): New.
(*zext<mode>_doubleword): New.
(*zextsi_doubleword): New.
(<code><mode>3): Use SWIM1248x iterator instead of SWIM.
(*<code>di3_doubleword): New.
* config/i386/i386.opt (mstv): New.
* dbgcnt.def (stv_conversion): New.

gcc/testsuite/

PR target/65105
* gcc.target/i386/pr65105-1.c: New.
* gcc.target/i386/pr65105-2.c: New.
* gcc.target/i386/pr65105-3.c: New.
* gcc.target/i386/pr65105-4.C: New.
* gcc.dg/lower-subreg-1.c: Add -mno-stv options for ia32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228231 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDump function attributes
vries [Tue, 29 Sep 2015 05:41:09 +0000 (05:41 +0000)]
Dump function attributes

2015-09-29  Tom de Vries  <tom@codesourcery.com>

* tree-cfg.c (dump_function_to_file): Dump function attributes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228229 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR target/67716
kkojima [Tue, 29 Sep 2015 05:36:01 +0000 (05:36 +0000)]
PR target/67716
* [SH] Implement targetm.override_options_after_change hook
  so to avoid resetting loop, jump and function alignment values with
  function-wise optimization flags.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228228 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix gcc.dg/asm-4.c
segher [Tue, 29 Sep 2015 00:56:03 +0000 (00:56 +0000)]
Fix gcc.dg/asm-4.c

Double-quoted words in Tcl have substitutions performed on them, including
backslash substitutions.  That isn't terribly nice for regular expressions,
so use braced words instead.

2015-09-28  Segher Boessenkool  <segher@kernel.crashing.org>

gcc/testsuite/
* gcc.dg/asm-4.c: Use braced words for the regular expressions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228227 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Tue, 29 Sep 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228226 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoUpdate soft-fp from glibc.
jsm28 [Mon, 28 Sep 2015 21:50:22 +0000 (21:50 +0000)]
Update soft-fp from glibc.

This patch updates the soft-fp code in libgcc from glibc.  There are
no changes here of significance to the use of soft-fp in GCC (and so
no testsuite additions); it's simply an update to bring in the latest
soft-fp version (which will also hopefully go into Linux 4.4 to
replace the 15-year-old copy currently in Linux).

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

* soft-fp/adddf3.c: Update from glibc.
* soft-fp/addsf3.c: Likewise.
* soft-fp/addtf3.c: Likewise.
* soft-fp/divdf3.c: Likewise.
* soft-fp/divsf3.c: Likewise.
* soft-fp/divtf3.c: Likewise.
* soft-fp/double.h: Likewise.
* soft-fp/eqdf2.c: Likewise.
* soft-fp/eqsf2.c: Likewise.
* soft-fp/eqtf2.c: Likewise.
* soft-fp/extenddftf2.c: Likewise.
* soft-fp/extended.h: Likewise.
* soft-fp/extendsfdf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/extendxftf2.c: Likewise.
* soft-fp/fixdfdi.c: Likewise.
* soft-fp/fixdfsi.c: Likewise.
* soft-fp/fixdfti.c: Likewise.
* soft-fp/fixsfdi.c: Likewise.
* soft-fp/fixsfsi.c: Likewise.
* soft-fp/fixsfti.c: Likewise.
* soft-fp/fixtfdi.c: Likewise.
* soft-fp/fixtfsi.c: Likewise.
* soft-fp/fixtfti.c: Likewise.
* soft-fp/fixunsdfdi.c: Likewise.
* soft-fp/fixunsdfsi.c: Likewise.
* soft-fp/fixunsdfti.c: Likewise.
* soft-fp/fixunssfdi.c: Likewise.
* soft-fp/fixunssfsi.c: Likewise.
* soft-fp/fixunssfti.c: Likewise.
* soft-fp/fixunstfdi.c: Likewise.
* soft-fp/fixunstfsi.c: Likewise.
* soft-fp/fixunstfti.c: Likewise.
* soft-fp/floatdidf.c: Likewise.
* soft-fp/floatdisf.c: Likewise.
* soft-fp/floatditf.c: Likewise.
* soft-fp/floatsidf.c: Likewise.
* soft-fp/floatsisf.c: Likewise.
* soft-fp/floatsitf.c: Likewise.
* soft-fp/floattidf.c: Likewise.
* soft-fp/floattisf.c: Likewise.
* soft-fp/floattitf.c: Likewise.
* soft-fp/floatundidf.c: Likewise.
* soft-fp/floatundisf.c: Likewise.
* soft-fp/floatunditf.c: Likewise.
* soft-fp/floatunsidf.c: Likewise.
* soft-fp/floatunsisf.c: Likewise.
* soft-fp/floatunsitf.c: Likewise.
* soft-fp/floatuntidf.c: Likewise.
* soft-fp/floatuntisf.c: Likewise.
* soft-fp/floatuntitf.c: Likewise.
* soft-fp/gedf2.c: Likewise.
* soft-fp/gesf2.c: Likewise.
* soft-fp/getf2.c: Likewise.
* soft-fp/ledf2.c: Likewise.
* soft-fp/lesf2.c: Likewise.
* soft-fp/letf2.c: Likewise.
* soft-fp/muldf3.c: Likewise.
* soft-fp/mulsf3.c: Likewise.
* soft-fp/multf3.c: Likewise.
* soft-fp/negdf2.c: Likewise.
* soft-fp/negsf2.c: Likewise.
* soft-fp/negtf2.c: Likewise.
* soft-fp/op-1.h: Likewise.
* soft-fp/op-2.h: Likewise.
* soft-fp/op-4.h: Likewise.
* soft-fp/op-8.h: Likewise.
* soft-fp/op-common.h: Likewise.
* soft-fp/quad.h: Likewise.
* soft-fp/single.h: Likewise.
* soft-fp/soft-fp.h: Likewise.
* soft-fp/subdf3.c: Likewise.
* soft-fp/subsf3.c: Likewise.
* soft-fp/subtf3.c: Likewise.
* soft-fp/truncdfsf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/trunctfxf2.c: Likewise.
* soft-fp/unorddf2.c: Likewise.
* soft-fp/unordsf2.c: Likewise.
* soft-fp/unordtf2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228223 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-28 Paul Thomas <pault@gcc.gnu.org>
pault [Mon, 28 Sep 2015 21:18:38 +0000 (21:18 +0000)]
2015-09-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/40054
PR fortran/63921
* decl.c (get_proc_name): Return if statement function is
found.
* expr.c (gfc_check_vardef_context): Add error return for
derived type expression lacking the derived type itself.
* match.c (gfc_match_ptr_fcn_assign): New function.
* match.h : Add prototype for gfc_match_ptr_fcn_assign.
* parse.c : Add static flag 'in_specification_block'.
(decode_statement): If in specification block match a statement
function, then, if no error arising from statement function
matching, try to match pointer function assignment.
(parse_interface): Set 'in_specification_block' on exiting from
parse_spec.
(parse_spec): Set and then reset 'in_specification_block'.
(gfc_parse_file): Set 'in_specification_block'.
* resolve.c (get_temp_from_expr): Extend to include functions
and array constructors as rvalues..
(resolve_ptr_fcn_assign): New function.
(gfc_resolve_code): Call it on finding a pointer function as an
lvalue. If valid or on error, go back to start of resolve_code.
* symbol.c (gfc_add_procedure): Add a sentence to the error to
flag up the ambiguity between a statement function and pointer
function assignment at the end of the specification block.

2015-09-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/40054
PR fortran/63921
* gfortran.dg/fmt_tab_1.f90: Change from run to compile and set
standard as legacy.
* gfortran.dg/fmt_tab_2.f90: Add extra tab error.
* gfortran.dg/function_types_3.f90: Change error message to
"Type inaccessible...."
* gfortran.dg/ptr_func_assign_1.f08: New test.
* gfortran.dg/ptr_func_assign_2.f08: New test.

2015-09-25  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/40054
PR fortran/63921
* gfortran.dg/ptr_func_assign_3.f08: New test.
* gfortran.dg/ptr_func_assign_4.f08: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228222 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago inlude/
nathan [Mon, 28 Sep 2015 19:37:33 +0000 (19:37 +0000)]
inlude/
* gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
(GOMP_DIM_GANG, GOMP_DIM_WORKER, GOMP_DIM_VECTOR, GOMP_DIM_MAX,
GOMP_DIM_MASK): New.
(GOMP_LAUNCH_DIM, GOMP_LAUNCH_ASYNC, GOMP_LAUNCH_WAIT): New.
(GOMP_LAUNCH_CODE_SHIFT, GOMP_LAUNCH_DEVICE_SHIFT,
GOMP_LAUNCH_OP_SHIFT): New.
(GOMP_LAUNCH_PACK, GOMP_LAUNCH_CODE, GOMP_LAUNCH_DEVICE,
GOMP_LAUNCH_OP): New.
(GOMP_LAUNCH_OP_MAX): New.

libgomp/
* libgomp.h (acc_dispatch_t): Replace separate geometry args with
array.
* libgomp.map (GOACC_parallel_keyed): New.
* oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
all callers.
(GOACC_parallel_keyed): New interface.  Lose geometry arguments
and take keyed varargs list.  Adjust call to exec_func.
(GOACC_parallel): Force host fallback.
* libgomp_g.h (GOACC_parallel): Remove.
(GOACC_parallel_keyed): Declare.
* plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
(stuct targ_gn_descriptor): Replace name field with launch field.
(nvptx_exec): Lose separate geometry args, take array.  Process
dynamic dimensions and adjust.
(struct nvptx_tdata): Replace fn_names field with fn_descs.
(GOMP_OFFLOAD_load_image): Adjust for change in function table
data.
(GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
passing.
* oacc-host.c (host_openacc_exec): Adjust for change in dimension
passing.

gcc/
* config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
(nvptx_record_offload_symbol): Record function execution geometry.
* config/nvptx/mkoffload.c (process): Include launch geometry in
function data.
* omp-low.c (oacc_launch_pack): New.
(replace_oacc_fn_attrib): New.
(set_oacc_fn_attrib): New.
(get_oacc_fn_attrib): New.
(expand_omp_target): Create keyed varargs for GOACC_parallel call
generation.
* omp-low.h (get_oacc_fn_attrib): Declare.
* builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
* tree.h (OMP_CLAUSE_EXPR): New.
* omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.

gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.

gcc/c-family/
* c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.

gcc/fortran/
* f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
* types.def (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.

gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228220 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRe: [PATCH] Fix undefined behaviour in arc port
law [Mon, 28 Sep 2015 19:27:29 +0000 (19:27 +0000)]
Re: [PATCH] Fix undefined behaviour in arc port
        * config/arc/arc.c (arc_legitimize_reload_address): Fix stupid
        thinko in last change.
        * config/arc/constraints.md (C2a): Fix typos in last change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228219 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agofix bootstrap due to unused variable warning
spop [Mon, 28 Sep 2015 19:19:47 +0000 (19:19 +0000)]
fix bootstrap due to unused variable warning

  * sese.c (invariant_in_sese_p_rec): Remove unused variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228218 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoLWG 2135: terminate() in condition_variable::wait()
redi [Mon, 28 Sep 2015 18:44:40 +0000 (18:44 +0000)]
LWG 2135: terminate() in condition_variable::wait()

* include/std/condition_variable (condition_variable::wait): Add
noexcept.
* src/c++11/condition_variable.cc (condition_variable::wait): Call
std::terminate on error (DR 2135).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228217 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRedesign Graphite scop detection
spop [Mon, 28 Sep 2015 17:30:09 +0000 (17:30 +0000)]
Redesign Graphite scop detection

Redesign Graphite scop detection for faster compiler time and detecting more SCoPs.

Existing algorithm for SCoP detection in graphite was based on dominator tree
where a tree (CFG) traversal was required for analyzing an SESE. The tree
traversal is linear in the number of basic blocks and SCoP detection is
(probably) linear in number of instructions. That algorithm utilized a generic
infrastructure of SESE which does not directly represent loops.  With regards to
graphite framework, we are only interested in subtrees with loops. The new
algorithm is geared towards tree traversal on loop structure. The algorithm is
linear in number of loops which is faster than the previous algorithm.

Briefly, we start the traversal at a loop-nest and analyze it recursively for
validity. Once a valid loop is found we find a valid adjacent loop. If an
adjacent loop is found and is valid, we merge both loop nests otherwise we form
a SCoP from the previous loop nest, and resume the algorithm from the adjacent
loop nest. The data structure to represent an SESE is an ordered pair of edges
(entry, exit). The new algoritm can extend a SCoP in both the directions. With
this approach, the number of instructions to be analyzed for validity reduces to
a minimal set.  We start by analyzing those statements which are inside a loop,
because validity of those statements is necessary for the validity of loop. The
statements outside the loop nest can be just excluded from the SESE if they are
not valid.

This patch depends on: https://gcc.gnu.org/ml/gcc-patches/2015-09/msg02024.html

Passes (c,c++,fortran) regtest and bootstrap.

gcc/ChangeLog:

2015-09-27  Aditya Kumar  <hiraditya@msn.com>
            Sebastian Pop  <s.pop@samsung.com>
        * graphite-optimize-isl.c (optimize_isl):
        * graphite-scop-detection.c (struct sese_l): New type.
        (get_entry_bb): API for getting entry bb of SESE.
        (get_exit_bb): API for getting exit bb of SESE.
        (class debug_printer): New type. Simple printer in debug mode.
        (trivially_empty_bb_p): New. Return true when BB is empty or
contains only debug instructions.
        (graphite_can_represent_expr): Call scalar_evoution_in_region
instead of analyze_scalar_evolution. Pass in scop instead of only
the scop entry.
        (stmt_has_simple_data_refs_p): Pass in scop instead of only the
scop entry.
        (stmt_simple_for_scop_p): Same.
        (harmful_stmt_in_bb): Same.
        (graphite_can_represent_loop): Deleted.
        (struct scopdet_info): Deleted.
        (scopdet_basic_block_info): Deleted.
        (build_scops_1): Deleted.
        (bb_in_sd_region): Deleted.
        (find_single_entry_edge): Deleted.
        (find_single_exit_edge): Deleted.
        (create_single_entry_edge): Deleted.
        (sd_region_without_exit): Deleted.
        (create_single_exit_edge): Deleted.
        (unmark_exit_edges): Deleted.
        (mark_exit_edges): Deleted.
        (create_sese_edges): Deleted.
        (build_graphite_scops): Deleted.
        (canonicalize_loop_closed_ssa): Recompute all dominators at the
end.
        (build_scops): Use the new scop_builder to build scops.
        (dot_all_scops_1): Use the new pretty printer. Print loop father
as well.
        (loop_body_is_valid_scop): New. Return true if loop body is a
valid scop.
        (class scop_builder): New. Builds SCoPs for polyhedral
optimizatios.
        (scop_builder): New. Constructor.
        (static sese_l invalid_sese): sese_l with invalid edges.
        (get_sese): Get an sese (from a loop) if possible, invalid_sese
otherwise.
        (get_nearest_dom_with_single_entry): Get nearest dominator of a
basic_block with single entry. Return NULL if we get to the
beginning of a function.
        (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
a basic_block with single exit. Return NULL if we get to the
beginning of a function.
        (print_sese): Pretty-print SESE.
        (merge_sese): Merge two SESEs if possible and return the new SESE.
        (build_scop_depth): Start building the SCoP within a loop nest.
        (build_scop_breadth): Start building the SCoP at a single loop
depth. Merge adjacent SESEs if valid.
        (can_represent_loop_1): Returns true if Graphite can represent
loop inside SCoP. Helper for can_represent_loop.
        (can_represent_loop): Returns true if Graphite can represent LOOP
and all its nested loops in SCoP.
        (loop_is_valid_scop): Returns true if LOOP and all its nests
constitute a valid SCoP.
        (region_has_one_loop): Returns true of a region has only one loop.
        (add_scop): Add SCoP to the list of valid scops. Removes an
already existing scop if it intersects with or subsumed by this
one.
        (harmful_stmt_in_region): Returns true if SCoP has any statment
which cannot be represented by Graphite.
        (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
        (remove_subscops): Remove any SCoP from the list of already found
SCoPs, if subsumed by S1.
        (intersects): Return true if region bounded by SCoPs S1 and S2
intersect.
        (remove_intersecting_scops): Remove any SCoP which intersects with
S1.
        * graphite.c (print_graphite_scop_statistics):
        (print_graphite_statistics): Print SCoP info while debugging.
        (graphite_initialize): Early exit in case number of loops in a
function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
        (graphite_finalize):
        * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
        * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
        (recompute_all_dominators): Recalculate POST_DOMINATORS.
        * tree-cfg.c (print_loops): Print the function name while printing
loops.

gcc/testsuite/ChangeLog:

2015-09-27  Aditya Kumar  <hiraditya@msn.com>
            Sebastian Pop  <s.pop@samsung.com>
        * gcc.dg/graphite/block-1.c: Modified to match the pattern.
        * gcc.dg/graphite/block-3.c: Same.
        * gcc.dg/graphite/block-4.c: Same.
        * gcc.dg/graphite/block-5.c: Same.
        * gcc.dg/graphite/block-6.c: Same.
        * gcc.dg/graphite/block-7.c: Same.
        * gcc.dg/graphite/block-8.c: Same.
        * gcc.dg/graphite/block-pr47654.c: Same.
        * gcc.dg/graphite/interchange-0.c: Same.
        * gcc.dg/graphite/interchange-1.c: Same.
        * gcc.dg/graphite/interchange-10.c: Same.
        * gcc.dg/graphite/interchange-11.c: Same.
        * gcc.dg/graphite/interchange-12.c: Same.
        * gcc.dg/graphite/interchange-13.c: Same.
        * gcc.dg/graphite/interchange-14.c: Same.
        * gcc.dg/graphite/interchange-15.c: Same.
        * gcc.dg/graphite/interchange-3.c: Same.
        * gcc.dg/graphite/interchange-4.c: Same.
        * gcc.dg/graphite/interchange-5.c: Same.
        * gcc.dg/graphite/interchange-6.c: Same.
        * gcc.dg/graphite/interchange-7.c: Same.
        * gcc.dg/graphite/interchange-8.c: Same.
        * gcc.dg/graphite/interchange-9.c: Same.
        * gcc.dg/graphite/interchange-mvt.c: Same.
        * gcc.dg/graphite/pr35356-1.c (foo): Same.
        * gcc.dg/graphite/pr35356-3.c: Same.
        * gcc.dg/graphite/pr37485.c: Same.
        * gcc/testsuite/gcc.dg/graphite/run-id-pr67700-1.c: New test case.
        * gcc.dg/graphite/scop-1.c (int toto): Modified to match the pattern.
        * gcc.dg/graphite/scop-11.c: Same.
        * gcc.dg/graphite/scop-5.c: Same.
        * gcc.dg/graphite/uns-block-1.c: Same.
        * gcc.dg/graphite/uns-interchange-9.c: Same.
        * gfortran.dg/graphite/block-1.f90: Same.
        * gfortran.dg/graphite/interchange-3.f90: Same.
        * gfortran.dg/graphite/pr14741.f90: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228215 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agofix PR67700
spop [Mon, 28 Sep 2015 17:29:59 +0000 (17:29 +0000)]
fix PR67700

The patch makes the detection of scop parameters in parameter_index_in_region a
bit more conservative by discarding scalar variables defined in function of data
references defined in the scop.

2015-09-25  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop  <s.pop@samsung.com>

                PR tree-optimization/67700
                * graphite-sese-to-poly.c (parameter_index_in_region): Call
                invariant_in_sese_p_rec.
                (extract_affine): Same.
                (rewrite_cross_bb_scalar_deps): Call update_ssa.
                * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
                * sese.h (invariant_in_sese_p_rec): Declare.

                * testsuite/gcc.dg/graphite/run-id-pr67700.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228214 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-28 David Wohlferd <dw@LimeGreenSocks.com>
sandra [Mon, 28 Sep 2015 16:45:31 +0000 (16:45 +0000)]
2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>

         * doc/extend.texi (Asm Labels): Break out text for data vs
 functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228212 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Revert "Improve TLS Descriptor pattern to release RTL loop IV opt"
jiwang [Mon, 28 Sep 2015 16:16:43 +0000 (16:16 +0000)]
[AArch64] Revert "Improve TLS Descriptor pattern to release RTL loop IV opt"

2015-09-28  Jiong Wang  <jiong.wang@arm.com>

Revert:
2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
    Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
* config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
* config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
(aarch64_register_move_cost): Likewise.
(aarch64_load_symref_appropriately): Invoke the new added pattern if
possible.
* config/aarch64/constraints.md (Uc0): New constraint.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228211 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR other/67652
iverbin [Mon, 28 Sep 2015 16:10:16 +0000 (16:10 +0000)]
PR other/67652
liboffloadmic/
* runtime/offload_engine.cpp (Engine::init_process): Fix sizeof.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228210 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoNow that muser-mode is default the multilib definitions does not require to
danielh [Mon, 28 Sep 2015 14:59:44 +0000 (14:59 +0000)]
Now that muser-mode is default the multilib definitions does not require to
specify that switch any more. Add UT699 to multilib after recent patches. Add
AT697F multilib since there are many LEON2 users running RTEMS. Add leon to
multilib too.

gcc/
* config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228204 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
dje [Mon, 28 Sep 2015 14:44:57 +0000 (14:44 +0000)]
* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
SECTION_EXCLUDE in XO mapping class.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228203 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/
olegendo [Mon, 28 Sep 2015 14:00:44 +0000 (14:00 +0000)]
gcc/
PR target/54236
* config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
and handle ne and eq codes.
* config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
(sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
CONST_INT_P.  Use reverse_condition.
(sh_split_treg_set_expr): Likewise.

gcc/testsuite/
PR target/54236
* gcc.target/sh/pr54236-1.c (test_09, test_10, test_11): New.
* gcc.target/sh/pr59533-1.c (test_23, test_24, test_25, test_26,
test_27): New.
* gcc.target/sh/pr54236-5.c: New.
* gcc.target/sh/pr54236-6.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228202 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[Patch 1/2 AArch64/ARM] Give AArch64 ROR (Immediate) a new type attribute
jgreenhalgh [Mon, 28 Sep 2015 09:35:46 +0000 (09:35 +0000)]
[Patch 1/2 AArch64/ARM] Give AArch64 ROR (Immediate) a new type attribute

gcc/

* config/arm/types.md (type): Add rotate_imm.
* config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
ROR immediate case.
(*rorsi3_insn_uxtw): Likewise.
* config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
* config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
* config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228197 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd missing PR line in ChangeLog entry
vries [Mon, 28 Sep 2015 08:48:46 +0000 (08:48 +0000)]
Add missing PR line in ChangeLog entry

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228196 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[RTL-ifcvt] PR rtl-optimization/67481: Look more deeply for CCmode sets during if...
ktkachov [Mon, 28 Sep 2015 08:25:36 +0000 (08:25 +0000)]
[RTL-ifcvt] PR rtl-optimization/67481: Look more deeply for CCmode sets during if-covnersion

PR rtl-optimization/67481
* ifcvt.c (contains_ccmode_rtx_p): New function.
(insn_valid_noce_process_p): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228195 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[RTL-ifcvt] PR rtl-optimization/67465: Handle pairs of complex+simple blocks and...
ktkachov [Mon, 28 Sep 2015 08:23:47 +0000 (08:23 +0000)]
[RTL-ifcvt] PR rtl-optimization/67465: Handle pairs of complex+simple blocks and empty blocks more gracefully

        PR rtl-optimization/67456
        PR rtl-optimization/67464
        PR rtl-optimization/67465
        * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
        move in the mode of x.  Handle combination of complex and simple
        block pairs as well as the case when one is empty.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228194 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd gcc.dg/vect/pr62171.c
vries [Mon, 28 Sep 2015 08:19:42 +0000 (08:19 +0000)]
Add gcc.dg/vect/pr62171.c

2015-09-28  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/vect/pr62171.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228193 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoupdate a few places for the change from gimple_statement_base to gimple
tbsaunde [Mon, 28 Sep 2015 06:26:21 +0000 (06:26 +0000)]
update a few places for the change from gimple_statement_base to gimple

gcc/ChangeLog:

2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* doc/gimple.texi: Update references to gimple_statement_base.
* gdbhooks.py: Likewise.
* gimple.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228192 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-28 Daniel Cederman <cederman@gaisler.com>
danielh [Mon, 28 Sep 2015 05:34:24 +0000 (05:34 +0000)]
2015-09-28  Daniel Cederman  <cederman@gaisler.com>

Use leon3 target for native LEON on Linux. Linux requires LEON version 3 or
above with CASA support.

gcc/
* config/sparc/driver-sparc.c: map LEON to leon3

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228185 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-28 Daniel Cederman <cederman@gaisler.com>
danielh [Mon, 28 Sep 2015 05:30:31 +0000 (05:30 +0000)]
2015-09-28  Daniel Cederman  <cederman@gaisler.com>

Make muser-mode the default for LEON3

The muser-mode flag causes the CASA instruction for LEON3 to use the
user mode ASI. This is the correct behavior for almost all LEON3 targets.
For this reason it makes sense to make user mode the default.

gcc/
* config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
  and make it inverse to change default
* config/sparc/sync.md: Only use supervisor ASI for CASA when in
  supervisor mode
* doc/invoke.texi: Document change of default

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228184 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-28 Daniel Cederman <cederman@gaisler.com>
danielh [Mon, 28 Sep 2015 05:26:34 +0000 (05:26 +0000)]
2015-09-28  Daniel Cederman  <cederman@gaisler.com>

Do not use floating point registers when compiling with -msoft-float for SPARC

__builtin_apply* and __builtin_return accesses the floating point registers on
SPARC even when compiling with -msoft-float.

gcc/
* config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
true on %f0 for a target without FPU.
* config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
without FPU.
(untyped_return): Do not load %f0 for a target without FPU.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228183 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-28 Andrew Pinski <apinski@cavium.com>
naveenh [Mon, 28 Sep 2015 05:22:36 +0000 (05:22 +0000)]
2015-09-28  Andrew Pinski  <apinski@cavium.com>

* config/aarch64/aarch64.md (prefetch):
Change the predicate of operand 0 to register_operand.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228182 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Mon, 28 Sep 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228181 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/i386/predicates.md (register_sse4nonimm_operand): New
uros [Sun, 27 Sep 2015 18:02:36 +0000 (18:02 +0000)]
* config/i386/predicates.md (register_sse4nonimm_operand): New
predicate.
* config/i386/sse.md (PEXTR_MODE12): New mode iterator.
(*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
Use register_sse4nonimm_operand as operand 0 predicate.
(*vec_extractv8hi_sse2): Remove insn pattern.
(*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
*vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228178 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * g++.dg/debug/dwarf2/pr44641.C: Revert line number change. Remove
dje [Sun, 27 Sep 2015 17:31:11 +0000 (17:31 +0000)]
    * g++.dg/debug/dwarf2/pr44641.C: Revert line number change. Remove
        skip on AIX.  XFAIL individual line tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228177 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/
olegendo [Sun, 27 Sep 2015 11:55:55 +0000 (11:55 +0000)]
gcc/
PR target/67391
* config/sh/sh-protos.h (sh_lra_p): Declare.
* config/sh/sh.c (sh_lra_p): Make non-static.
* config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
Expand into addsi3_scr if operands[2] if needed.
(*addsi3_compact): Rename to *addsi3_compact_lra.  Use
arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
(addsi3_scr, *addsi3): New insn_and_split patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228176 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agorevert to assign_parms assignments using default defs
aoliva [Sun, 27 Sep 2015 09:02:00 +0000 (09:02 +0000)]
revert to assign_parms assignments using default defs

Revert the fragile and complicated changes to assign_parms designed to
enable it to use RTL assigments chosen by cfgexpand, and instead have
cfgexpand use the RTL assignments by assign_parms, keying them off of
the default defs that are now necessarily introduced for each parm and
result.  The possible lack of a default def was already a problem, and
the fallbacks in place were not enough, as shown by PR67312.  We now
have checking asserts in set_rtl that verify that we're assigning to
each var a piece of RTL that matches the expectations set forth by
use_register_for_decl.

for  gcc/ChangeLog

PR rtl-optimization/64164
PR tree-optimization/67312
PR middle-end/67340
PR middle-end/67490
PR bootstrap/67597
* cfgexpand.c (parm_in_stack_slot_p): Remove.
(ssa_default_def_partition): Remove.
(get_rtl_for_parm_ssa_default_def): Remove.
(set_rtl): Check that RTL assignments match expectations.
Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
default def location for params and results.  Record SSA names
or types in REG and MEM attrs, respectively.
(set_parm_rtl): New.
(expand_one_ssa_partition): Drop logic that assigned MEMs with
unassigned addresses.
(adjust_one_expanded_partition_var): Don't accept NULL RTL on
deferred stack alloc vars.
(expand_used_vars): Skip partitions holding parm default defs.
Move adjust_one_expanded_partition_var loop...
(pass_expand::execute): ... here.  Drop redundant assert.
Adjust comments before the final loop over all ssa names.
Require assigned rtl of parms and results to match exactly.
Reset its attributes to match them, not any other variables in
the same partition.
(expand_debug_expr): Use entry value for PARM's default defs
only iff they have zero nondebug uses.
* cfgexpand.h (parm_in_stack_slot_p): Remove.
(get_rtl_for_parm_ssa_default_def): Remove.
(set_parm_rtl): Declare.
* doc/invoke.texi: Improve wording.
* explow.c (promote_decl_mode): Fix promote_function_mode for
result decls not by reference.
(promote_ssa_mode): Disregard BLKmode from promote_decl, and
bypass TYPE_MODE to get the actual vector mode.
* function.c: Include tree-dfa.h.  Revert 2015-08-14's and
2015-08-19's changes as follows.  Drop include of
basic-block.h and df.h.
(rtl_for_parm): Remove.
(maybe_reset_rtl_for_parm): Remove.
(parm_in_unassigned_mem_p): Remove.
(use_register_for_decl): Add logic for RESULT_DECLs matching
assign_parms' behavior.
(split_complex_args): Revert.
(assign_parms_augmented_arg_list): Revert.  Add comment
referencing the logic above.
(assign_parm_adjust_stack_rtl): Revert.
(assign_parm_setup_block): Revert.  Use set_parm_rtl instead
of SET_DECL_RTL.  Set up a REG if the parm demands so.
(assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
calls into a single set_parm_rtl.  Set up a temporary RTL
temporarily for expand_assignment.
(assign_parm_setup_stack): Revert.  Use set_parm_rtl.
(assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
(assign_bounds): Revert.
(assign_parms): Revert.  Use set_parm_rtl.
(allocate_struct_function): Relayout result and parms of
non-abstruct functions.
(expand_function_start): Revert.  Use set_parm_rtl.  If the
result is not a hard reg, create a pseudo from the promoted
mode of the default def.  Promote static chain mode.
* tree-outof-ssa.c (remove_ssa_form): Drop unused
partition_has_default_def.  Set up
partitions_for_parm_default_defs.
(finish_out_of_ssa): Remove partition_has_default_def.
Release partitions_for_parm_default_defs.
* tree-outof-ssa.h (struct ssaexpand): Remove
partition_has_default_def.  Add
partitions_for_parm_default_defs.
* tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
stor-layout.h.
(build_ssa_conflict_graph): Fix conflict-detection of default
defs of even unused default defs of params and results.
(for_all_parms): New.
(create_default_def): New.
(register_default_def): New.
(coalesce_with_default): New.
(create_outofssa_var_map): Create default defs for all parms
and results, and register their partitions.  Add GIMPLE_RETURN
operands as coalesce candidates with results.  Add default
defs of each parm or result as coalesce candidates with its
other defs.  Mark each result def, and each default def of
parms, as used_in_copy.
(gimple_can_coalesce_p): Call it.  Call use_register_for_decl
with the ssa names, even anonymous ones.  Drop
parm_in_stack_slot_p calls.  Require same signedness and
alignment.
(coalesce_ssa_name): Add coalesce candidates for all defs of
each parm and result, even unused ones.
(parm_default_def_partition_arg): New type.
(set_parm_default_def_partition): New.
(get_parm_default_def_partitions): New.
* tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
* tree-ssa-live.c (partition_view_init): Regard unused defs of
parms and results as used.
(verify_live_on_entry): Don't error out just because they're
not live.

for  gcc/testsuite/ChangeLog

PR rtl-optimization/64164
PR tree-optimization/67312
* gcc.dg/pr67312.c: New.  From Zdenek Sojka.
* gcc.target/i386/stackalign/return-4.c: Add -O.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228175 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * g++.dg/debug/dwarf2/pr44641.C: Add one to expected line numbers.
dje [Sun, 27 Sep 2015 01:44:59 +0000 (01:44 +0000)]
    * g++.dg/debug/dwarf2/pr44641.C: Add one to expected line numbers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228174 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Sun, 27 Sep 2015 00:16:22 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228173 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix missing deep copy when assigning a DT constructor to an array
mikael [Sat, 26 Sep 2015 20:34:39 +0000 (20:34 +0000)]
Fix missing deep copy when assigning a DT constructor to an array

This adds the missing deep copy when assiging a constructor of a derived
type with allocatable components to an array.

The check for consantness is removed so that the deep_copy argument passed
to gfc_trans_scalar_assign is set to true.

PR fortran/67721
gcc/fortran/
* trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
condition guarding deep copy.
gcc/testsuite/
* gfortran.dg/alloc_comp_deep_copy_3.f03: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228170 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2013-09-26 Paul Thomas <pault@gcc.gnu.org>
pault [Sat, 26 Sep 2015 17:52:24 +0000 (17:52 +0000)]
2013-09-26  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67567
* resolve.c (resolve_fl_procedure): For module procedures, take
the parent module name and the submodule name from the name of
the namespace.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228169 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gcc.dg/pr64935-1.c: XFAIL on AIX.
dje [Sat, 26 Sep 2015 15:34:58 +0000 (15:34 +0000)]
    * gcc.dg/pr64935-1.c: XFAIL on AIX.
        * gcc.dg/pr64935-2.c: XFAIL on AIX.
        * gcc.dg/debug/dwarf2/dwarf2-macro2.c: XFAIL Start new file on AIX.
        * gcc.dg/debug/dwarf2/dwarf2-macro2.c: XFAIL At line number on AIX.
        * gcc.dg/debug/dwarf2/global-used-types.c: XFAIL ascii on AIX.
        * gcc.dg/debug/dwarf2/noreturn-function-keyword.c: XFAIL
        DW_AT_noreturn on AIX.
        * gcc.dg/debug/dwarf2/noreturn-function-attribute.c: XFAIL
        DW_AT_noreturn on AIX.
        * gcc.dg/debug/dwarf2/lang-c89.c: XFAIL DW_AT_language on AIX.
        * gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: XFAIL DW_TAG on AIX.
        * g++.dg/debug/dwarf2/deleted-member-function.C: XFAIL
        DW_AT_GNU_deleted on AIX.
        * g++.dg/debug/dwarf2/noreturn-function.C: XFAIL DW_AT_noreturn on AIX.
        * g++.dg/debug/dwarf2/template-params-6.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/dwarf4-nested.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/pubnames-2.C: Skip on AIX.
        * g++.dg/debug/dwarf2/pr44641.C: Skip on AIX.
        * g++.dg/debug/dwarf2/pr46527.C: XFAIL on AIX.
        * g++.dg/debug/dwarf2/imported-decl-2.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/namespace-1.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/global-used-types-1.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/lambda1.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/pubnames-3.C: Skip on AIX.
        * g++.dg/debug/dwarf2/pr61433.C: XFAIL on AIX.
        * g++.dg/debug/dwarf2/nested-4.C: XFAIL on AIX.
        * g++.dg/debug/dwarf2/template-func-params-6.C: XFAIL ascii on AIX.
        * g++.dg/debug/dwarf2/lineno-simple1.C: XFAIL on AIX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228168 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
dje [Sat, 26 Sep 2015 15:31:35 +0000 (15:31 +0000)]
    * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
        (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
        (output_fde): Don't output length for debug_frame on AIX.
        (output_call_frame_info): Don't output length for debug_frame on AIX.
        (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
        HAVE_XCOFF_DWARF_EXTRAS.
        (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
        HAVE_XCOFF_DWARF_EXTRAS.
        (output_compilation_unit_header): Don't output length on AIX.
        (output_pubnames): Don't output length on AIX.
        (output_aranges): Delete argument. Compute length locally. Don't
        output length on AIX.
        (output_line_info): Don't output length on AIX.
        (dwarf2out_finish): Don't compute aranges_length.
        * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
        (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
        * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
        symbol decoration for AIX.
        (rs6000_xcoff_debug_unwind_info): New.
        (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
        for SECTION_DEBUG.
        (rs6000_xcoff_declare_function_name): Emit different
        .function pseudo-op when DWARF2_DEBUG. Don't call
        xcoffout_declare_function for DWARF2_DEBUG.
        * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
        Redefine.
        * config/rs6000/aix71.h: New.
        * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
        locations support.
        * configure: Regenerate.
        * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
        DWARF support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228167 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago [PATCH] Fix undefined behaviour in arc port
law [Sat, 26 Sep 2015 07:48:10 +0000 (07:48 +0000)]
[PATCH] Fix undefined behaviour in arc port

* config/arc/arc.c (arc_output_addsi): Fix left shift undefined
behaviour.
* config/arc/constraints.md (Cca, C2a): Fix left shift undefined
behaviour.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228166 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago [PATCH] Fix undefined behaviour in SH port
law [Sat, 26 Sep 2015 07:42:32 +0000 (07:42 +0000)]
[PATCH] Fix undefined behaviour in SH port
* config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
behaviour

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228165 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PATCH] Fix undefined behaviour in mips port
law [Sat, 26 Sep 2015 07:38:29 +0000 (07:38 +0000)]
[PATCH] Fix undefined behaviour in mips port
* config/mips/mips.c (mips_compute_frame_info): Fix left shift
undefined behaviour.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228164 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PATCH] Fix undefined behaviour in cris port
law [Sat, 26 Sep 2015 07:33:05 +0000 (07:33 +0000)]
[PATCH] Fix undefined behaviour in cris port
* config/cris/cris.md (asrandb): Fix left shift undefined
behaviour.
(asrandw): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228163 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Sat, 26 Sep 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228161 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 25 Sep 2015 22:30:26 +0000 (22:30 +0000)]
2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/67614
* resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL.

2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/67614
* gfortran.dg/pr67614.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228156 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 25 Sep 2015 22:28:04 +0000 (22:28 +0000)]
2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/67525
* parse.c (match_deferred_characteristics): Remove an assert, which
allows an invalid SELECT TYPE selector to be detected.

2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/67525
* gfortran.dg/pr67525.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228155 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix type in the changelog entry,
vmakarov [Fri, 25 Sep 2015 21:11:28 +0000 (21:11 +0000)]
Fix type in the changelog entry,

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228154 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-25 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Fri, 25 Sep 2015 21:06:08 +0000 (21:06 +0000)]
2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>

PR target/61578
* lra-constarints.c (match_reload): Check presence of the input pseudo
in the output pseudo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228153 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd PR fortran/55603 working test
mikael [Fri, 25 Sep 2015 20:28:33 +0000 (20:28 +0000)]
Add PR fortran/55603 working test

gcc/testsuite/
PR fortran/55603
* gfortran.dg/allocatable_function_9.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228151 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-25 Tobias Burnus <burnus@net-b.de>
burnus [Fri, 25 Sep 2015 18:59:58 +0000 (18:59 +0000)]
2015-09-25  Tobias Burnus  <burnus@net-b.de>

* doc/invoke.texi (-fsanitize): Minor wording tweak.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228148 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-25 Tobias Burnus <burnus@net-b.de>
burnus [Fri, 25 Sep 2015 18:41:07 +0000 (18:41 +0000)]
2015-09-25  Tobias Burnus  <burnus@net-b.de>

        * doc/invoke.texi (-fsanitize): Update URLs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228144 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * tr.po: Update.
jsm28 [Fri, 25 Sep 2015 17:05:49 +0000 (17:05 +0000)]
* tr.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228138 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix old ChangeLog entry to include global variable name that was changed.
tejohnson [Fri, 25 Sep 2015 16:55:10 +0000 (16:55 +0000)]
Fix old ChangeLog entry to include global variable name that was changed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228137 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoThis patch unsets -freorder-blocks-and-partition when -fprofile-use
tejohnson [Fri, 25 Sep 2015 16:53:40 +0000 (16:53 +0000)]
This patch unsets -freorder-blocks-and-partition when -fprofile-use
is not specified. Function splitting was not actually being performed
in that case, as probably_never_executed_bb_p does not distinguish
any basic blocks as being cold vs hot when there is no profile data.
Leaving it enabled, however, causes the assembly code generator to create
(empty) cold sections and labels, leading to unnecessary size overhead.

2015-09-25  Teresa Johnson  <tejohnson@google.com>

* opts.c (finish_options): Unset -freorder-blocks-and-partition
if not using profile.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228136 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAvoid creating dangling references in case of nested tuples
ville [Fri, 25 Sep 2015 16:41:45 +0000 (16:41 +0000)]
Avoid creating dangling references in case of nested tuples
for tuple constructors that construct from other tuples.

2015-09-25  Ville Voutilainen  <ville.voutilainen@gmail.com>

Avoid creating dangling references in case of nested tuples
for tuple constructors that construct from other tuples.
* include/std/tuple (_TC::_NonNestedTuple): New.
* include/std/tuple (tuple::_TNTC): New.
* include/std/tuple (tuple(const tuple<_UElements...>&),
tuple(tuple<_UElements...>&&): Use _TNTC.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228134 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR pretty-print/67567 do not pass NULL as a string
manu [Fri, 25 Sep 2015 14:24:11 +0000 (14:24 +0000)]
PR pretty-print/67567 do not pass NULL as a string

Fortran passes NULL where a non-null string is expected by the pretty-printer,
which causes a sanitizer warning. This could have been found earlier by using
gcc_checking_assert. Even if the assertion is false, the result is just an
incomplete diagnostic, thus it seems more user-friendly to assert only when
checking. I do not have any idea how to properly fix the Fortran bug, thus this
patch simply works-around it.

gcc/fortran/ChangeLog:

2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR pretty-print/67567
* resolve.c (resolve_fl_procedure): Work-around when iface->module
== NULL.

gcc/ChangeLog:

2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR pretty-print/67567
* pretty-print.c (pp_string): Add gcc_checking_assert.
* pretty-print.h (output_buffer_append_r): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228131 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/
olegendo [Fri, 25 Sep 2015 13:09:04 +0000 (13:09 +0000)]
gcc/
PR target/67675
* config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
addr2 individually.  Don't emit logical or insn if one is known to
be aligned approriately.
(sh_expand_cmpnstr): Likewise.

gcc/testsuite/
PR target/67675
* gcc.target/sh/pr67675.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228118 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Force __builtin_aarch64_fp[sc]r argument into a REG
rsandifo [Fri, 25 Sep 2015 11:54:22 +0000 (11:54 +0000)]
[AArch64] Force __builtin_aarch64_fp[sc]r argument into a REG

The testcase triggered an ICE because the builtin expansion
code passed the output of expand_normal directly to the SET_FP[SC]R
generator, without forcing it into a register first.

gcc/
* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
__builtin_aarch64_fp[sc]r arguments into a register.

gcc/testsuite/
* gcc.target/aarch64/fpcr_fpsr_1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228116 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRename IA MCU processor lakemount to lakemont
hjl [Fri, 25 Sep 2015 11:24:07 +0000 (11:24 +0000)]
Rename IA MCU processor lakemount to lakemont

IA MCU processor name is lakemont, not lakemount.

gcc/

* config.gcc (x86_archs): Replace lakemount with lakemont.
(with_cpu): Likewise.
(with_arch): Likewise.
* config/i386/i386-c.c (ix86_target_macros_internal): Replace
PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
__tune_lakemount__ with __tune_lakemont__.
* config/i386/i386.c (lakemount_cost): Renamed to ...
(lakemont_cost): This.
(m_LAKEMOUNT): Renamed to ...
(m_LAKEMONT): This.
(initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
(processor_target_table): Replace "lakemount" with "lakemont".
(processor_alias_table): Likewise.
(ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
PROCESSOR_LAKEMONT.
(ix86_adjust_cost): Likewise.
(ia32_multipass_dfa_lookahead): Likewise.
* config/i386/i386.h (processor_type): Likewise.
* config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
* doc/invoke.texi: Replace lakemount with lakemont.  Replace
Lakemount with Lakemont.

gcc/testsuite/

* gcc.target/i386/pr66749.c (dg-options): Replace
-mtune=lakemount with -mtune=lakemont.
* gcc.target/i386/pr66821.c (dg-options): Likewise.
* gcc.target/i386/pr67329.c (dg-options): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228115 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
mpolacek [Fri, 25 Sep 2015 11:19:11 +0000 (11:19 +0000)]
* c-ubsan.c (ubsan_instrument_division): Remove unnecessary code.
(ubsan_instrument_shift): Likewise.

* c-c++-common/ubsan/bounds-11.c: New test.
* c-c++-common/ubsan/bounds-12.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228114 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR sanitizer/64906
mpolacek [Fri, 25 Sep 2015 09:50:29 +0000 (09:50 +0000)]
PR sanitizer/64906
* c-ubsan.c (ubsan_instrument_division): Also pre-evaluate OP1.

* c-c++-common/ubsan/pr64906.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228112 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoChange IA MCU processor from iamcu to lakemount
hjl [Fri, 25 Sep 2015 00:18:21 +0000 (00:18 +0000)]
Change IA MCU processor from iamcu to lakemount

The first IA MCU processor will be Lakemount.  This patch changes IA MCU
processor name from iamcu to lakemount.

gcc/

* config.gcc (x86_archs): Replace iamcu with lakemount.
(with_cpu): Likewise.
(with_arch): Likewise.
* doc/invoke.texi: Likewise.
* config/i386/i386-c.c (ix86_target_macros_internal): Replace
PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
__tune_iamcu__ with __tune_lakemount__.
* config/i386/i386.c (iamcu_cost): Renamed to ...
(lakemount_cost): This.
(m_IAMCU): Renamed to ...
(m_LAKEMOUNT): This.
(initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
(processor_target_table): Replace "iamcu" with "lakemount".
(processor_alias_table): Likewise.
(ix86_issue_rate): Replace PROCESSOR_IAMCU with
PROCESSOR_LAKEMOUNT.
(ix86_adjust_cost): Likewise.
(ia32_multipass_dfa_lookahead): Likewise.
* config/i386/i386.h (processor_type): Likewise.
* config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.

gcc/testsuite/

* gcc.target/i386/pr66749.c (dg-options): Replace -mtune=iamcu
with -mtune=lakemount.
* gcc.target/i386/pr66821.c (dg-options): Likewise.
* gcc.target/i386/pr67329.c (dg-options): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228109 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Fri, 25 Sep 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228108 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
danglin [Fri, 25 Sep 2015 00:01:34 +0000 (00:01 +0000)]
* config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
* config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
Declare.
* config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
(pa_expand_compare_and_swap_loop): New.
(pa_maybe_emit_compare_and_swap_exchange_loop): New.
* config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
(atomic_loaddf_1, atomic_storedf_1): New insn patterns.
(atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
Revise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228104 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-24 Michael Collison <michael.collison@linaro.org>
collison [Thu, 24 Sep 2015 23:26:50 +0000 (23:26 +0000)]
2015-09-24  Michael Collison  <michael.collison@linaro.org>

PR other/57195
* read-md.c (read_name): Allow mode iterators inside angle
brackets in rtl expressions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228102 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-24 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Thu, 24 Sep 2015 20:40:30 +0000 (20:40 +0000)]
2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>

PR target/61578
* ira-color.c (update_allocno_cost): Add parameter.
(update_costs_from_allocno): Decrease conflict cost.  Pass the new
parameter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228097 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agofdiagnostics-color=never does not disable color for some diagnostics
manu [Thu, 24 Sep 2015 16:37:43 +0000 (16:37 +0000)]
fdiagnostics-color=never does not disable color for some diagnostics

Actually, I was trying to reject non-warning options as argument to
-Werror=. However, the new test fails because -fdiagnostics-color=never is
always placed by the driver after the warning options when calling the compiler
proper. This patch prunes all -fdiagnostics-color from the command-line but the
last one, which is moved to the first position.

gcc/ChangeLog:

2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR driver/67640
* opts-common.c (prune_options): Discard all -fdiagnostics-color
but the last one, which is moved to the front to be processed
first.
* opts.c (enable_warning_as_error): Reject options that do not
control warnings.

gcc/testsuite/ChangeLog:

2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR driver/67640
* gcc.dg/Werror-13.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228094 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Handle const address in aarch64_print_operand
jiwang [Thu, 24 Sep 2015 16:04:12 +0000 (16:04 +0000)]
[AArch64] Handle const address in aarch64_print_operand

2015-09-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228093 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Delete aarch64_symbol_context which is not used
jiwang [Thu, 24 Sep 2015 16:02:08 +0000 (16:02 +0000)]
[AArch64] Delete aarch64_symbol_context which is not used

2015-09-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
(aarch64_cannot_force_const_mem): Likewise.
(aarch64_classify_address): Likewise.
(aarch64_classify_symbolic_expression): Likewise.
(aarch64_print_operand): Likewise.
(aarch64_classify_symbol): Likewise.
(aarch64_mov_operand_p): Likewise.
* config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
(aarch64_mov_operand): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228092 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoLeave moved-from std::deque in a valid state
redi [Thu, 24 Sep 2015 15:46:24 +0000 (15:46 +0000)]
Leave moved-from std::deque in a valid state

PR libstdc++/67707
* include/bits/stl_deque.h (_Deque_base::_M_move_impl): Initialize
empty object.
* testsuite/23_containers/deque/allocator/move.cc: Check moved-from
deque.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228090 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix aarch64/target_attr_10 test following r227997.
nsz [Thu, 24 Sep 2015 13:41:52 +0000 (13:41 +0000)]
Fix aarch64/target_attr_10 test following r227997.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/target_attr_10.c (foo): Use dg-message for note.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228088 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago runtime: Fix recent lfstack change on Solaris.
ian [Thu, 24 Sep 2015 13:33:20 +0000 (13:33 +0000)]
runtime: Fix recent lfstack change on Solaris.

    Reviewed-on: https://go-review.googlesource.com/14922

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228087 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agors6000: Fix -mdebug=stack code for spe_gp_offset
segher [Thu, 24 Sep 2015 12:43:43 +0000 (12:43 +0000)]
rs6000: Fix -mdebug=stack code for spe_gp_offset

2015-09-23  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/rs6000.c (debug_stack_info): Invert the test
for info->spe_gp_size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228086 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-24 Richard Biener <rguenther@suse.de>
rguenth [Thu, 24 Sep 2015 11:01:14 +0000 (11:01 +0000)]
2015-09-24  Richard Biener  <rguenther@suse.de>

PR lto/67699
* lto-cgraph.c (compute_ltrans_boundary): Do not stream
abstract origins.

* g++.dg/pr67699.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228084 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoARM: fp16 Fix PR 67624 - Incorrect conversion of float Infinity to __fp16
rearnsha [Thu, 24 Sep 2015 09:40:06 +0000 (09:40 +0000)]
ARM: fp16 Fix PR 67624 - Incorrect conversion of float Infinity to __fp16

PR libgcc/67624
libgcc:
* config/arm/fp16.c (__gnu_f2h_internal): Handle infinity correctly.
gcc/testsuite:
* gcc.target/arm/fp16-inf.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228082 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdditional changes to switch from gimple to gimple *
tschwinge [Thu, 24 Sep 2015 09:27:12 +0000 (09:27 +0000)]
Additional changes to switch from gimple to gimple *

gcc/
* tree-object-size.c (plus_stmt_object_size)
(cond_expr_object_size): Change the formal parameters from gimple
to gimple *.
* tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
* tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
* tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228080 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/testsuite/
kyukhin [Thu, 24 Sep 2015 09:03:57 +0000 (09:03 +0000)]
gcc/testsuite/
* gcc.target/i386/avx512vbmi-check.h (main): Fix register
name while checking for AVX-512VBMI presence.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228079 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoSupport PIE on Solaris
ro [Thu, 24 Sep 2015 09:00:22 +0000 (09:00 +0000)]
Support PIE on Solaris

gcc/testsuite:
* lib/target-supports.exp (check_effective_target_pie): Check for
PIE support on Solaris 11.x and 12.

libgcc:
* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
Add crtbeginS.o, crtendS.o to extra_parts if libgcc_cv_solaris_crts.
* config/sol2/gmon.c: (monstartup): Don't write trailing NUL of
messages.
(internal_mcount): Likewise.
* config/sol2/t-sol2 (crtp.o, crtpg.o, gmon.o): Compile with
crt_compile, add CRTSTUFF_T_CFLAGS_S.

gcc:
* configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
Check for ld -type pie on Solaris 11.x and 12.
* configure: Regenerate.
* config.in: Regenerate.

* gcc.c (LD_PIE_SPEC): Allow redefinition.

* config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
(STARTFILE_SPEC): Use it.
(ENDFILE_CRTEND_SPEC): Define.
(ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
(SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
[HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
(!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
* config/i386/sol2.h (ENDFILE_SPEC): Remove.
(ENDFILE_ARCH_SPEC): Define.
* config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228078 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoUse CRTs provided by Solaris
ro [Thu, 24 Sep 2015 08:51:39 +0000 (08:51 +0000)]
Use CRTs provided by Solaris

gcc:
* configure.ac (gcc_cv_solaris_crts): New test.
* configure. Regenerate.
* config.in: Regenerate.
* config/sol2.h (STARTFILE_SPEC): Simplify, provide
HAVE_SOLARIS_CRTS variant.

libgcc:
* configure.ac (libgcc_cv_solaris_crts): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/sol2/crtp.c, config/sol2/crtpg.c: New files.
* config/gmon-sol2.c: Rename to ...
* config/sol2/gmon.c: ... this.
Include auto-target.h.
(internal_mcount): Wrap setup handling in !HAVE_SOLARIS_CRTS.
* config/t-sol2: Rename to ...
* config/sol2/t-sol2: ... this.
(gmon.o): Reflect renaming.
(crtp.o, crtpg.o): New rules.
* config.host (*-*-solaris2*): Reflect renaming.
Use system CRTs if present.
Remove default CRT case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228077 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[tree-inline][obvious] Delete redundant count_insns_seq
ktkachov [Thu, 24 Sep 2015 08:25:13 +0000 (08:25 +0000)]
[tree-inline][obvious] Delete redundant count_insns_seq

* tree-inline.h (count_insns_seq): Delete prototype.
(estimate_num_insns_seq): Define prototype.
* tree-inline.c (count_insns_seq): Delete.
(estimate_num_insns_seq): Remove static qualifier.
* tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
with estimate_num_insns_seq.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228075 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-24 Richard Biener <rguenther@suse.de>
rguenth [Thu, 24 Sep 2015 07:35:55 +0000 (07:35 +0000)]
2015-09-24  Richard Biener  <rguenther@suse.de>

* tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
members.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
offset.
(ao_ref_init_from_vn_reference): Record clique and base in the
built base.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise

* g++.dg/tree-ssa/restrict3.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228074 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-24 Richard Biener <rguenther@suse.de>
rguenth [Thu, 24 Sep 2015 07:34:47 +0000 (07:34 +0000)]
2015-09-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/48885
* tree-ssa-structalias.c (visit_loadstore): Handle default defs
as not including any restrict tags from other pointers.

* gcc.dg/tree-ssa/restrict-6.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228073 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * ChangeLog: Fix whitespace.
uros [Thu, 24 Sep 2015 06:30:52 +0000 (06:30 +0000)]
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228072 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix a -Wmisleading-indentation false-negative
ppalka [Thu, 24 Sep 2015 01:55:59 +0000 (01:55 +0000)]
Fix a -Wmisleading-indentation false-negative

gcc/c-family/ChangeLog:

* c-indentation.c (should_warn_for_misleading_indentation):
Compare next_stmt_vis_column with guard_line_first_nws instead
of with guard_line_vis_column.

gcc/testsuite/ChangeLog:

* c-c++-common/Wmisleading-indentation.c: Augment test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228071 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Thu, 24 Sep 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228070 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/pa/linux-atomic.c (__kernel_cmpxchg2): Reorder error checks.
danglin [Wed, 23 Sep 2015 23:27:15 +0000 (23:27 +0000)]
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Reorder error checks.
(__sync_fetch_and_##OP##_##WIDTH): Change result to match type of
__kernel_cmpxchg2.
(__sync_##OP##_and_fetch_##WIDTH): Likewise.
(__sync_val_compare_and_swap_##WIDTH): Likewise.
(__sync_bool_compare_and_swap_##WIDTH): Likewise.
(__sync_lock_test_and_set_##WIDTH): Likewise.
(__sync_lock_release_##WIDTH): Likewise.
(__sync_fetch_and_##OP##_4): Change result to match type of
__kernel_cmpxchg.
(__sync_##OP##_and_fetch_4): Likewise.
(__sync_val_compare_and_swap_4): Likewise.
(__sync_bool_compare_and_swap_4): likewise.
(__sync_lock_test_and_set_4): Likewise.
(__sync_lock_release_4): Likewise.
(FETCH_AND_OP_2): Add long long variants.
(OP_AND_FETCH_2): Likewise.
(COMPARE_AND_SWAP_2 ): Likewise.
(SYNC_LOCK_TEST_AND_SET_2): Likewise.
(SYNC_LOCK_RELEASE_2): Likewise.
(__sync_bool_compare_and_swap_##WIDTH): Correct return.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228065 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR go/67695
ian [Wed, 23 Sep 2015 20:43:46 +0000 (20:43 +0000)]
PR go/67695
    mksysinfo.sh: Use = with test rather than ==.

    Fixes GCC PR 67695.

    Reviewed-on: https://go-review.googlesource.com/14858

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228064 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix small typos in the coding rule enforcement warnings.
ville [Wed, 23 Sep 2015 18:22:21 +0000 (18:22 +0000)]
Fix small typos in the coding rule enforcement warnings.

/cp
2015-09-23  Ville Voutilainen  <ville.voutilainen@gmail.com>

Fix small typos in the coding rule enforcement warnings.
* parser.c (cp_parser_namespace_definition): Replace 'namepace'
with 'namespace'.

/testsuite
2015-09-23  Ville Voutilainen  <ville.voutilainen@gmail.com>

Fix small typos in the coding rule enforcement warnings.
* g++.dg/diagnostic/disable.C: Replace 'namepace'
with 'namespace'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228061 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago runtime: rewrite lfstack packing/unpacking to look more like that in Go
ian [Wed, 23 Sep 2015 17:07:15 +0000 (17:07 +0000)]
runtime: rewrite lfstack packing/unpacking to look more like that in Go

    Reviewed-on: https://go-review.googlesource.com/13037

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228057 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix --enable-offload-targets/-foffload handling, pt. 2
tschwinge [Wed, 23 Sep 2015 14:52:57 +0000 (14:52 +0000)]
Fix --enable-offload-targets/-foffload handling, pt. 2

gcc/
* gcc.c (handle_foffload_option): Don't lose the trailing NUL
character when appending to offload_targets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228054 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix --enable-offload-targets/-foffload handling, pt. 1
tschwinge [Wed, 23 Sep 2015 14:52:50 +0000 (14:52 +0000)]
Fix --enable-offload-targets/-foffload handling, pt. 1

gcc/
* configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
offload targets by commas, not colons.
* config.in: Regenerate.
* configure: Likewise.
* gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
instead of setting up the default offload targets here...
(process_command): ..., do it here.
libgomp/
* plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
targets are separated by commas.
* config.h.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228053 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRefactor omp_reduction_init: omp_reduction_init_op
tschwinge [Wed, 23 Sep 2015 14:46:55 +0000 (14:46 +0000)]
Refactor omp_reduction_init: omp_reduction_init_op

gcc/
* omp-low.h (omp_reduction_init_op): Declare.
* omp-low.c (omp_reduction_init_op): New, broken out of ...
(omp_reduction_init): ... here.  Call it.
* tree-parloops.c (initialize_reductions): Use
omp_reduction_init_op.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228052 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2015-09-23 Richard Biener <rguenther@suse.de>
rguenth [Wed, 23 Sep 2015 14:09:48 +0000 (14:09 +0000)]
2015-09-23   Richard Biener  <rguenther@suse.de>

PR middle-end/67662
* fold-const.c (fold_binary_loc): Do not reassociate two vars with
undefined overflow unless they will cancel out.

* gcc.dg/ubsan/pr67662.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228051 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAVX-512. Fix emit in '*<mshift><mode>3' pattern.
kyukhin [Wed, 23 Sep 2015 13:28:12 +0000 (13:28 +0000)]
AVX-512. Fix emit in '*<mshift><mode>3' pattern.

gcc/
 * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
 insn emit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228050 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[c-family/49654/49655] reject invalid options in pragma diagnostic
manu [Wed, 23 Sep 2015 13:07:07 +0000 (13:07 +0000)]
[c-family/49654/49655] reject invalid options in pragma diagnostic

Use find_opt instead of linear search through options in
handle_pragma_diagnostic (PR 49654) and reject non-warning options and
options not valid for the current language (PR 49655).

gcc/testsuite/ChangeLog:

2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/49655
* gcc.dg/pragma-diag-6.c: New test.

gcc/ChangeLog:

2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/49655
* opts.h (write_langs): Declare.
* opts-global.c (write_langs): Make it extern.

gcc/c-family/ChangeLog:

2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/49654
PR c/49655
* c-pragma.c (handle_pragma_diagnostic): Detect non-warning
options and options not valid for the current language.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228049 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/
olegendo [Wed, 23 Sep 2015 11:55:45 +0000 (11:55 +0000)]
gcc/
PR target/67391
* config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping
regs when matching the pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228046 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Fix vcvt_high_f64_f32 and vcvt_figh_f32_f64 intrinsics.
jgreenhalgh [Wed, 23 Sep 2015 11:39:48 +0000 (11:39 +0000)]
[AArch64] Fix vcvt_high_f64_f32 and vcvt_figh_f32_f64 intrinsics.

gcc/

* config/aarch64/aarch64-simd.md
(aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
(aarch64_float_truncate_hi_v4sf_le): New.
(aarch64_float_truncate_hi_v4sf_be): Likewise.

gcc/testsuite/

* gcc.target/aarch64/advsimd-intrinsics/vcvt_high_1.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228044 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoLimit number of symlinks that canonical() will resolve
redi [Wed, 23 Sep 2015 11:26:50 +0000 (11:26 +0000)]
Limit number of symlinks that canonical() will resolve

* src/filesystem/ops.cc (canonical): Simplify error handling and
limit number of symlinks that can be resolved.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228043 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix semantics of Filesystem TS directory iterators
redi [Wed, 23 Sep 2015 11:26:45 +0000 (11:26 +0000)]
Fix semantics of Filesystem TS directory iterators

[class.directory_iterator] p4 and [directory_iterator.members] p4
require that only the default constructor and ignored permission denied
errors can create the end iterator.

* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Remove _GLIBCXX_
prefix from HAVE_STRUCT_DIRENT_D_TYPE.
* config.h.in: Regenerate.
* configure: Regenerate.
* include/experimental/fs_dir.h (operator==, operator==):
Use owner_before instead of pointer equality.
(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
* src/filesystem/dir.cc (ErrorCode): Remove.
(_Dir::advance): Change ErrorCode parameter to error_code*, add
directory_options parameter and check it on error.
(opendir): Rename to open_dir to avoid clashing with macro. Change
ErrorCode parameter to error_code*.
(make_shared_dir): Remove.
(native_readdir) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Don't set errno.
(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
(directory_iterator(const path&, directory_options, error_code*)):
Pass options to _Dir::advance and create non-end iterator on error.
(recursive_directory_iterator(const path&, directory_options,
error_code*)): Clear error_code on ignored error, create non-end
iterator otherwise.
(recursive_directory_iterator::increment): Pass _M_options to
_Dir::advance.
(recursive_directory_iterator::pop): Likewise.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
New.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228042 138bc75d-0d04-0410-961f-82ee72b054a4