platform/upstream/linaro-gcc.git
8 years ago2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 2 Oct 2015 00:53:00 +0000 (00:53 +0000)]
2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran.67802
* decl.c (add_init_expr_to_sym): Numeric constant for character
length must be an INTEGER.

2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran.67802
* gfortran.dg/pr67802.f90: New test.

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

8 years ago2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 2 Oct 2015 00:49:28 +0000 (00:49 +0000)]
2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66979
* io.c (gfc_resolve_filepos): Check for a UNIT number.  Add a nearby
missing 'return false'.

2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66979
gfortran.dg/pr66979.f90: new test.

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

8 years ago2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 2 Oct 2015 00:45:59 +0000 (00:45 +0000)]
2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/67616
* primary.c (gfc_match_structure_constructor): Use a possibly
host-associated symtree to prevent ICE.

2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/67616
* gfortran.dg/pr67616.f90: New test.

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

8 years agoDaily bump.
gccadmin [Fri, 2 Oct 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.

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

8 years agouse sese_l throughout scop-detection
spop [Thu, 1 Oct 2015 22:04:20 +0000 (22:04 +0000)]
use sese_l throughout scop-detection

Use sese_l throughout SCoP detection and create vec<scop_p> at the very end when
all SCoPs have been identified. 'struct sese_l' is very lightweight (two
pointers) compared to 'struct scop'.

No functional change intended. Passes regtest and bootstrap.

gcc/ChangeLog:

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

        * graphite-scop-detection.c (struct sese_l): New conversion constructor
          so that this type can be pushed into a vec.
        (class scop_builder): use sese_l to collect scops.
        (get_scops): New getter function.
        (remove_intersecting_scops): Use sese_l instead of scops_p.
        (intersects): Same.
        (add_scop): Same.
        (subsumes): Same.
        (remove_subscops): Same.
        (build_scops): Add scops to vec<scops_p> once all the scops have been
        detected.

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

8 years agoRename gimple_bb to gimple_poly_bb
spop [Thu, 1 Oct 2015 22:04:14 +0000 (22:04 +0000)]
Rename gimple_bb to gimple_poly_bb

Renaming gimple_bb to gimple_poly_bb because there is a function gimple_bb
by the same name in gimple.h. No functional change intended.
Passes regtest and bootstrap.

gcc/ChangeLog:

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

        * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
Renamed type from gimple_bb_p to gimple_poly_bb_p.
        (translate_isl_ast_node_user): Same.
        * graphite-poly.c (new_poly_bb): Same.
        * graphite-poly.h (gbb_from_bb): Same.
        * sese.h: Same.
        * graphite-sese-to-poly.c (new_gimple_bb): gimple_bb_p -> gimple_poly_bb_p
        (build_scop_scattering): Same.
        (find_params_in_bb): Same.
        (add_conditions_to_domain): Same.
        (sese_dom_walker::before_dom_children): Same.
        (analyze_drs_in_stmts): Same.
        (new_pbb_from_pbb): Same.
        (free_data_refs_aux): New pointer to type base_alias_pair.
        * graphite-sese-to-poly.h: Same.
        * sese.c (if_region_set_false_region): Fixed Indentation.
        (move_sese_in_condition): Same.

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

8 years agocorrectly handle non affine data references
spop [Thu, 1 Oct 2015 22:04:07 +0000 (22:04 +0000)]
correctly handle non affine data references

2015-10-01  Sebastian Pop  <s.pop@samsung.com>
            Aditya Kumar  <aditya.k7@samsung.com>
        PR tree-optimization/66980
        * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
        when data reference analysis has failed.

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

8 years agoPR c++/54430
ville [Thu, 1 Oct 2015 19:22:08 +0000 (19:22 +0000)]
PR c++/54430

/cp
2015-10-01  Ville Voutilainen  <ville.voutilainen@gmail.com>

PR c++/54430
* name-lookup.c (push_binding): Make non-static.
* name-lookup.h (push_binding): Declare it.
* parser.c (cp_parser_range_for): Use it, get the range
declaration away from the scope until the range expression
has been parsed, then restore the declaration.

/testsuite
2015-10-01  Ville Voutilainen  <ville.voutilainen@gmail.com>

PR c++/54430
* g++.dg/cpp0x/range-for30.C: New.

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

8 years agoDo not describe -std=c11 etc. as experimental in c.opt help text.
jsm28 [Thu, 1 Oct 2015 17:00:14 +0000 (17:00 +0000)]
Do not describe -std=c11 etc. as experimental in c.opt help text.

I noticed that c.opt still described -std=c11 and related options as
experimental in the --help text.  This patch fixes this.

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

* c.opt (std=c11): Do not describe as experimental.
(std=gnu11): Likewise.
(std=iso9899:2011): Likewise.

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

8 years ago * doc/html/manual/errno.html: Add new file.
redi [Thu, 1 Oct 2015 16:02:54 +0000 (16:02 +0000)]
* doc/html/manual/errno.html: Add new file.

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

8 years agocall scev analysis in scop-detection as in sese-to-poly
spop [Thu, 1 Oct 2015 15:17:58 +0000 (15:17 +0000)]
call scev analysis in scop-detection as in sese-to-poly

Before our rewrite of the scop detection, we used to not have a valid SESE
region under hand, and so we used to do more ad-hoc analysis of data references
by trying to prove that at all levels of a loop nest the data references would
be still valid.

Now that we have a valid SESE region, we can call the scev analysis in the same
way on the same computed loop nest in the scop-detection as in the sese-to-poly.

Next step will be to cache the data references analyzed in the scop detection
and not compute the same info in sese-to-poly.

The patch fixes block-1.f90 that used to ICE on x86_64-linux when compiled with
-m32.  Patch passed bootstrap with BOOT_CFLAGS="-g -O2 -fgraphite-identity
-floop-nest-optimize" and check on x86_64-linux using ISL-0.15.

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

PR tree-optimization/67754
* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
scev analysis on the same loop nest as analyze_drs_in_stmts.
* graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and renamed...
(try_generate_gimple_bb): Call outermost_loop_in_sese.
(analyze_drs_in_stmts): Same.
* sese.c (outermost_loop_in_sese): ...here.

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

8 years agoadd recursion on the inner loops
spop [Thu, 1 Oct 2015 15:17:51 +0000 (15:17 +0000)]
add recursion on the inner loops

We now check that all data references in the current loop and inner loops
contained within loop are valid in an outer region before declaring that the
outer loop is a valid scop.

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

PR tree-optimization/67754
* graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
recursion on the inner loops.

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

8 years agoremove many typedefs
tbsaunde [Thu, 1 Oct 2015 15:12:31 +0000 (15:12 +0000)]
remove many typedefs

gcc/ChangeLog:

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

* cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
unneeded typedefs.

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

8 years ago PR c/65345
mpolacek [Thu, 1 Oct 2015 14:53:10 +0000 (14:53 +0000)]
PR c/65345
* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
create_tmp_var_raw rather than create_tmp_var.

* gcc.dg/atomic/pr65345-4.c: New test.
* gcc.dg/pr65345-3.c: New test.

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

8 years ago PR go/66870
ian [Thu, 1 Oct 2015 14:43:57 +0000 (14:43 +0000)]
PR go/66870
* gospec.c (lang_specific_driver): Only look for OPT_m32 if
TARGET_CAN_SPLIT_STACK_64BIT is defined.

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

8 years ago PR tree-optimization/67769
mpolacek [Thu, 1 Oct 2015 14:25:42 +0000 (14:25 +0000)]
PR tree-optimization/67769
* tree-ssa-phiopt.c (conditional_replacement): Call
reset_flow_sensitive_info_in_bb.
(minmax_replacement): Likewise.
(abs_replacement): Likewise.

* gcc.dg/torture/pr67769.c: New test.

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

8 years ago * builtins.c: Don't include gomp-constants.h.
nathan [Thu, 1 Oct 2015 14:13:30 +0000 (14:13 +0000)]
* builtins.c: Don't include gomp-constants.h.
(fold_builtin_1): Don't fold acc_on_device here.
* gimple-fold.c: Include gomp-constants.h.
(gimple_fold_builtin_acc_on_device): New.
(gimple_fold_builtin): Call it.

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

8 years agoEnable bt and and movzx for Lakemont
hjl [Thu, 1 Oct 2015 13:34:49 +0000 (13:34 +0000)]
Enable bt and and movzx for Lakemont

* config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for
Lakemont.
(X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.

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

8 years ago * gcc.dg/lto/pr55113_0.c: Skip on all x86 targets.
uros [Thu, 1 Oct 2015 12:46:19 +0000 (12:46 +0000)]
* gcc.dg/lto/pr55113_0.c: Skip on all x86 targets.

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

8 years agoFix typo in ChangeLog.
olegendo [Thu, 1 Oct 2015 12:38:28 +0000 (12:38 +0000)]
Fix typo in ChangeLog.

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

8 years agogcc/testsuite/
olegendo [Thu, 1 Oct 2015 12:36:15 +0000 (12:36 +0000)]
gcc/testsuite/
PR target/54236
* gcc.target/sh/pr54236-6.c: Fix assembler-no string.

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

8 years agoSave-and-restore errno more carefully in libstdc++
redi [Thu, 1 Oct 2015 11:23:39 +0000 (11:23 +0000)]
Save-and-restore errno more carefully in libstdc++

* doc/xml/manual/diagnostics.xml: Document use of errno.
* doc/html/*: Regenerate.
* config/locale/generic/c_locale.cc (_Save_errno): New helper.
(__convert_to_v): Use _Save_errno.
* include/ext/string_conversions.h (__stoa): Only restore errno when
it isn't set to non-zero.

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

8 years ago * c-typeck.c (convert_for_assignment): Improve commentary.
mpolacek [Thu, 1 Oct 2015 10:14:39 +0000 (10:14 +0000)]
* c-typeck.c (convert_for_assignment): Improve commentary.

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

8 years ago * gcc.target/i386/pr65105-1.c: Require sse2 effective target.
uros [Thu, 1 Oct 2015 10:06:27 +0000 (10:06 +0000)]
* gcc.target/i386/pr65105-1.c: Require sse2 effective target.
(main): Rename to sse2_test.  Abort if count != 5.
(dg-options): Add -save-temps.  Use "-msse2 -mtune=slm" instead
of -march=slm.
* gcc.target/i386/pr46865-2.c (dg-options): Remove -save-temps.

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

8 years ago[ChangeLog] Fix typo in 228324.
jgreenhalgh [Thu, 1 Oct 2015 09:36:01 +0000 (09:36 +0000)]
[ChangeLog] Fix typo in 228324.

s/Liekwise/Likewise/

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

8 years ago[Patch 2/2 ARM/AArch64] Add a new Cortex-A53 scheduling model
jgreenhalgh [Thu, 1 Oct 2015 09:33:40 +0000 (09:33 +0000)]
[Patch 2/2 ARM/AArch64] Add a new Cortex-A53 scheduling model

* config/arm/aarch-common-protos.h
(aarch_accumulator_forwarding): New.
(aarch_forward_to_shift_is_not_shifted_reg): Likewise.
* config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
(aarch_forward_to_shift_is_not_shifted_reg): Liekwise.
* config/arm/cortex-a53.md: Rewrite.

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

8 years ago2015-10-01 Richard Biener <rguenther@suse.de>
rguenth [Thu, 1 Oct 2015 07:54:26 +0000 (07:54 +0000)]
2015-10-01  Richard Biener  <rguenther@suse.de>

* gimple-match.h (mprts_hook): Declare.
* gimple-match.head.c (mprts_hook): Define.
(maybe_push_res_to_seq): Use new hook.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
* tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
(vn_ssa_aux::has_constants): Remove.
* tree-ssa-sccvn.c: Include gimple-match.h.
(VN_INFO_GET): Assert we don't re-use SSA names.
(vn_get_expr_for): Remove.
(expr_has_constants): Likewise.
(stmt_has_constants): Likewise.
(simplify_binary_expression): Likewise.
(simplify_unary_expression): Likewise.
(vn_lookup_simplify_result): New hook.
(visit_copy): Adjust.
(visit_reference_op_call): Likewise.
(visit_phi): Likewise.
(visit_use): Likewise.
(process_scc): Likewise.
(init_scc_vn): Likewise.
(visit_reference_op_load): Likewise.  Use match-and-simplify and
a gimple seq for inserted expressions.
(try_to_simplify): Remove GENERIC stmt combining code.
(sccvn_dom_walker::before_dom_children): Use match-and-simplify.
* tree-ssa-pre.c (eliminate_insert): Adjust.
(eliminate_dom_walker::before_dom_children): Likewise.

* gcc.dg/tree-ssa/ssa-fre-7.c: Adjust.
* gcc.dg/tree-ssa/ssa-fre-8.c: Likewise.

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

8 years agobb-reorder: Documentation updates
segher [Thu, 1 Oct 2015 06:40:01 +0000 (06:40 +0000)]
bb-reorder: Documentation updates

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

* doc/invoke.texi (Optimization Options): Add
-freorder-blocks-algorithm=.
(Optimize Options) <-O>: Add -freorder-blocks.
<-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
<-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
<-freorder-blocks>: Also enabled at levels -O and -Os.
<-freorder-blocks-algorithm=>: Document new option.

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

8 years agobb-reorder: Add -freorder-blocks-algorithm= and wire it up
segher [Thu, 1 Oct 2015 06:38:24 +0000 (06:38 +0000)]
bb-reorder: Add -freorder-blocks-algorithm= and wire it up

This adds an -freorder-blocks-algorithm=[simple|stc] flag, with "simple"
as default.  For -O2 and up (except -Os) it is switched to "stc" instead.
Targets that never want STC can override this.  This changes -freorder-blocks
to be on at -O1 and up (was -O2 and up).

In effect, the changes are for -O1 (which now gets "simple" instead of
nothing), -Os (which now gets "simple" instead of "stc", since STC results
in much bigger code), and for targets that wish to never use STC (not in
this patch though).

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

* bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
with flag_reorder_blocks_algorithm.
* common.opt (freorder-blocks-algorithm=): New flag.
(reorder_blocks_algorithm): New enum.
* flag-types.h (reorder_blocks_algorithm): New enum.
* opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).

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

8 years agobb-reorder: Add the "simple" algorithm
segher [Thu, 1 Oct 2015 06:35:57 +0000 (06:35 +0000)]
bb-reorder: Add the "simple" algorithm

2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

* bb-reorder.c: Add intro comment.
(reorder_basic_blocks_software_trace_cache): Print a header to
the dump file.
(edge_order): New function.
(reorder_basic_blocks_simple): New function.
(reorder_basic_blocks): Choose between the STC and the simple
algorithms (always choose the former).

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

8 years agobb-reorder: Split out STC
segher [Thu, 1 Oct 2015 06:33:09 +0000 (06:33 +0000)]
bb-reorder: Split out STC

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

* bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
function, factored out from ...
(reorder_basic_blocks): ... here.

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

8 years agoMake dumping of function attributes resemble source syntax
vries [Thu, 1 Oct 2015 05:42:50 +0000 (05:42 +0000)]
Make dumping of function attributes resemble source syntax

2015-10-01  Tom de Vries  <tom@codesourcery.com>

* tree-cfg.c (dump_function_to_file): Dump function attributes using
__attribute__(()) string.  Move dumping of function attributes to before
function name.

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

8 years agoDaily bump.
gccadmin [Thu, 1 Oct 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

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

8 years ago PR target/66870
ian [Wed, 30 Sep 2015 23:06:11 +0000 (23:06 +0000)]
PR target/66870
* config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
* configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
based on gold linker version.
* gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
* configure, config.in: Regenerate.
go:
* gospec.c (lang_specific_driver): Set appropriate split stack
options for 64 bit compiles based on TARGET_CAN_SPLIT_STACK_64BIT.

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

8 years ago[RS6000] Make -msingle-pic-base remove the ELFv2 global entry code
amodra [Wed, 30 Sep 2015 22:19:18 +0000 (22:19 +0000)]
[RS6000] Make -msingle-pic-base remove the ELFv2 global entry code

For other ABIs, -msingle-pic-base makes gcc omit loading of the PIC
register in function prologues.  This patch makes the option affect
ELFv2 too.

* config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
r2_setup_needed when TARGET_SINGLE_PIC_BASE.
(rs6000_output_mi_thunk): Likewise.

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

8 years ago gcc/
nathan [Wed, 30 Sep 2015 21:35:47 +0000 (21:35 +0000)]
gcc/
* config/nvptx/mkoffload.c (process): Change offload data format.

libgomp/
* plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
(struct targ_ptx_obj): New.
(nvptx_tdata): Move earlier, change data format.
(link_ptx): Take targ_ptx_obj ptr and count.  Allow multiple
objects.
(GOMP_OFFLOAD_load_image): Adjust.

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

8 years ago[RS6000] Correct powerpc sysv stack argument accounting
amodra [Wed, 30 Sep 2015 21:29:00 +0000 (21:29 +0000)]
[RS6000] Correct powerpc sysv stack argument accounting

ppc32 starts using the stack for integer arg passing when we run out
of integer arg passing registers.  Similarly, we start using the stack
for floating point args when we run out of floating point registers.
The decision on where an integer arg goes does not depend on number of
floating point args, nor does the decision on where a floating point
arg goes depend on number of integer args.  Alignment of stack args
also simply depends on number of stack args.

This patch untangles the horrible mess we had, with intarg_count being
wrongly used to count both integer args and stack words.

* src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
gprs, and stack words separately.
(ffi_prep_args_SYSV): Similarly.

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

8 years ago[PATCH] Improve DOM's optimization of control statements
law [Wed, 30 Sep 2015 20:28:14 +0000 (20:28 +0000)]
[PATCH] Improve DOM's optimization of control statements

* tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
with constant conditions.
* tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
(remove_ctrl_stmt_and_useless_edges): No longer static.
* tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
(remove_ctrl_stmt_and_useless_edges): Likewise.

* gcc.dg/tree-ssa/ssa-dom-branch-1.c: New test.

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

8 years ago2015-09-30 François Dumont <fdumont@gcc.gnu.org>
fdumont [Wed, 30 Sep 2015 20:04:43 +0000 (20:04 +0000)]
2015-09-30  François Dumont  <fdumont@gcc.gnu.org>
    Jonathan Wakely  <jwakely@redhat.com>

* config/locale/gnu/messages_members.cc (Catalog_info, Catalogs):
Move...
* config/locale/gnu/c++locale_internal.h: ...here in std namespace.
* config/locale/gnu/c_locale.cc: Move implementation of latter here.
* src/c++98/Makefile.am: Compile c++locale.cc with -fimplicit-templates.
* src/c++98/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Adjust.

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

8 years ago * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
nathan [Wed, 30 Sep 2015 19:16:29 +0000 (19:16 +0000)]
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
(TARGET_GOACC_VALIDATE_DIMS): Override.
* target.def (TARGET_GOACC): New target hook prefix.
(validate_dims): New hook.
* targhooks.h (default_goacc_validate_dims): New.
* omp-low.c (oacc_validate_dims): New.
(execute_oacc_device_lower): New.
(default_goacc_validate_dims): New.
(pass_data_oacc_device_lower): New.
(pass_oacc_device_lower): New pass.
(make_pass_oacc_device_lower): New.
* tree-pass.h (make_pass_oacc_device_lower): Declare.
* passes.def (pass_oacc_device_lower): Add it.
* doc/tm.texi: Rebuilt.
* doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
* doc/invoke.texi (oaccdevlow): Document tree dump flag.

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

8 years ago2015-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Wed, 30 Sep 2015 18:51:31 +0000 (18:51 +0000)]
2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/67037
        * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.

testsuite:
2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/67037
        * gcc.c-torture/execute/pr67037.c: New test.

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

8 years ago[PATCH] Update SSA_NAME manager to use two lists
law [Wed, 30 Sep 2015 17:43:26 +0000 (17:43 +0000)]
[PATCH] Update SSA_NAME manager to use two lists

* gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
* passes.c: Include tree-ssanames.h.
(execute_function_todo): Flush the pending free SSA_NAMEs after
eliminating unreachable basic blocks.
* tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
(init_ssanames): Initialize FREE_SSANAMES_QUEUE.
(fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
(flush_ssanames_freelist): New function.
(release_ssaname_fn): Put released names on the queue.
(pass_release_ssa_names::execute): Call flush_ssanames_freelist.
* tree-ssanames.h (flush_ssanames_freelist): Declare.

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

8 years agoPass on the verbose flag "-v" to/in the mkoffloads
tschwinge [Wed, 30 Sep 2015 16:42:32 +0000 (16:42 +0000)]
Pass on the verbose flag "-v" to/in the mkoffloads

gcc/
* config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
(generate_target_descr_file, generate_target_offloadend_file)
(generate_host_descr_file, prepare_target_image, main): Pass it
on.
* config/nvptx/mkoffload.c (main): Parse "-v" flag.
(compile_native, main): Pass it on.
* lto-wrapper.c (compile_offload_image): Likewise.

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

8 years agoRefactor intelmic-mkoffload.c argv building to use obstacks
tschwinge [Wed, 30 Sep 2015 16:42:22 +0000 (16:42 +0000)]
Refactor intelmic-mkoffload.c argv building to use obstacks

That is, restore and adapt the code as originally proposed.

gcc/
* config/i386/intelmic-mkoffload.c (generate_host_descr_file)
(prepare_target_image, main): Refactor argv building to use
obstacks.

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

8 years agoMore DEF_FUNCTION_TYPE_VAR_6/DEF_FUNCTION_TYPE_VAR_11 cleanup
tschwinge [Wed, 30 Sep 2015 15:14:29 +0000 (15:14 +0000)]
More DEF_FUNCTION_TYPE_VAR_6/DEF_FUNCTION_TYPE_VAR_11 cleanup

gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_11): Don't define.
gcc/jit/
* jit-builtins.h: Undefine DEF_FUNCTION_TYPE_VAR_6 after use.

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

8 years agogcc/
uweigand [Wed, 30 Sep 2015 14:58:49 +0000 (14:58 +0000)]
gcc/
* config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
* config/spu/spu.c (spu_expand_atomic_op): New function.
* config/spu/spu.md (AINT): New mode iterator.
(ATOMIC): New code iterator.
(atomic_name, atomic_pred): New code predicates.
("atomic_load<mode>", "atomic_store<mode>"): New expanders.
("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
(""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
"atomic_<atomic_name>_fetch<mode>"): Likewise.

gcc/testsuite/
* lib/target-supports.exp (check_effective_target_sync_int_128):
Return 1 on spu-*-* targets.
(check_effective_target_sync_int_128_runtime): Likewise.
(check_effective_target_sync_long_long): Likewise.
(check_effective_target_sync_long_long_runtime): Likewise.
(check_effective_target_sync_int_long): Likewise.
(check_effective_target_sync_char_short): Likewise.

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

8 years agogcc/
ienkovich [Wed, 30 Sep 2015 13:08:01 +0000 (13:08 +0000)]
gcc/

* config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
debug insns.
(scalar_chain::convert_reg): Likewise.

gcc/testsuite/

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

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

8 years ago2015-09-30 Matthias Klose <doko@ubuntu.com>
doko [Wed, 30 Sep 2015 12:55:05 +0000 (12:55 +0000)]
2015-09-30  Matthias Klose  <doko@ubuntu.com>

        * config/cpu/alpha, config/cpu/ia64: Remove empty directories.

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

8 years ago2015-09-30 Richard Biener <rguenther@suse.de>
rguenth [Wed, 30 Sep 2015 12:52:37 +0000 (12:52 +0000)]
2015-09-30  Richard Biener  <rguenther@suse.de>

* builtins.c: Add comment that no new simplifications shouldd
be added here.

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

8 years ago2015-09-30 Matthias Klose <doko@ubuntu.com>
doko [Wed, 30 Sep 2015 12:42:44 +0000 (12:42 +0000)]
2015-09-30  Matthias Klose  <doko@ubuntu.com>

        * jit-builtins.h Define DEF_FUNCTION_TYPE_VAR_6,
        remove DEF_FUNCTION_TYPE_VAR_11.
        * jit-builtins.c (builtins_manager::make_type): Define and handle
        DEF_FUNCTION_TYPE_VAR_6, remove DEF_FUNCTION_TYPE_VAR_11.

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

8 years ago PR c/67730
mpolacek [Wed, 30 Sep 2015 11:26:44 +0000 (11:26 +0000)]
PR c/67730
* c-typeck.c (c_finish_return): Use the expansion point location for
certain "return with value" warnings.

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

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

8 years ago PR tree-optimization/67690
mpolacek [Wed, 30 Sep 2015 09:24:02 +0000 (09:24 +0000)]
PR tree-optimization/67690
* tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
reset_flow_sensitive_info_in_bb.
* tree-ssa-tail-merge.c (replace_block_by): Likewise.
* tree-ssanames.c: Include "gimple-iterator.h".
(reset_flow_sensitive_info_in_bb): New function.
* tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.

* gcc.dg/torture/pr67690.c: New test.

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

8 years agoUse gcc/coretypes.h:enum offload_abi in mkoffloads
tschwinge [Wed, 30 Sep 2015 08:58:04 +0000 (08:58 +0000)]
Use gcc/coretypes.h:enum offload_abi in mkoffloads

gcc/
* config/i386/intelmic-mkoffload.c (target_ilp32): Remove
variable, replacing it with...
(offload_abi): ... this new variable.  Adjust all users.
* config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.

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

8 years agoAdd checkpoint to libgomp dg-shouldfail tests
tschwinge [Wed, 30 Sep 2015 08:44:49 +0000 (08:44 +0000)]
Add checkpoint to libgomp dg-shouldfail tests

That is, verify that we're actually reaching the expected checkpoint before
terminating.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.

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

8 years ago2015-09-30 Matthias Klose <doko@ubuntu.com>
doko [Wed, 30 Sep 2015 08:43:09 +0000 (08:43 +0000)]
2015-09-30  Matthias Klose  <doko@ubuntu.com>

        * configure.ac: Remove extraneous ;;.
        * configure: Regenerate.

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

8 years ago[testsuite] Fix order of dg-do and dg-require-effective-target directives
clyon [Wed, 30 Sep 2015 08:14:03 +0000 (08:14 +0000)]
[testsuite] Fix order of dg-do and dg-require-effective-target directives

2015-09-30  Christophe Lyon  <christophe.lyon@linaro.org>

* g++.dg/cpp0x/stdint.C: Move dg-require-effective-target after
dg-do.
* g++.dg/gomp/tls-wrap4.C: Likewise.
* gcc.dg/atomic-op-optimize.c: Likewise.
* gcc.dg/pr54087.c: Likewise.
* gcc.dg/tls/section-2.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c:
Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: Likewise.
* gcc.dg/vect/trapv-vect-reduc-4.c: Likewise.
* gcc.target/arm/divzero.c: Likewise.
* gcc.target/arm/sibcall-2.c: Likewise.
* gcc.target/arm/thumb1-Os-mult.c: Likewise.
* gcc.target/arm/thumb1-load-64bit-constant-1.c: Likewise.
* gcc.target/arm/thumb1-load-64bit-constant-2.c: Likewise.
* gcc.target/arm/thumb1-load-64bit-constant-3.c: Likewise.
* gcc.target/arm/volatile-bitfields-1.c: Likewise.
* gcc.target/arm/volatile-bitfields-2.c: Likewise.
* gcc.target/arm/volatile-bitfields-3.c: Likewise.
* gcc.target/arm/volatile-bitfields-4.c: Likewise.
* gfortran.dg/default_format_2.f90: Likewise.
* gfortran.dg/default_format_denormal_2.f90: Likewise.

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

8 years ago * ChangeLog: Fix whitespace.
uros [Wed, 30 Sep 2015 06:52:45 +0000 (06:52 +0000)]
* ChangeLog: Fix whitespace.

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

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

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

8 years ago2015-09-29 Jonathan Roelofs <jonathan@codesourcery.com>
sandra [Wed, 30 Sep 2015 00:02:35 +0000 (00:02 +0000)]
2015-09-29  Jonathan Roelofs  <jonathan@codesourcery.com>

* gcc.dg/debug/pr65771.c: Use tls_runtime instead of tls.

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

8 years agoLimit the MEMSET (setmemsi pattern) and MEMCPY (movmemsi pattern)
jamesbowman [Tue, 29 Sep 2015 23:34:34 +0000 (23:34 +0000)]
Limit the MEMSET (setmemsi pattern) and MEMCPY (movmemsi pattern)
instructions to 0-511 bytes. There is a hardware limitation on large
MEMSET, MEMCPY operations that the library versions of memset() and
memcpy() deal with.

2015-09-29  James Bowman  <james.bowman@ftdichip.com>

* config/ft32/predicates.md (ft32_imm_operand): New predicate.
* config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
predicate, disallow register for operand 2.

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

8 years ago compiler: Accept untyped integral values as string/array indices.
ian [Tue, 29 Sep 2015 22:27:53 +0000 (22:27 +0000)]
compiler: Accept untyped integral values as string/array indices.

    When determining the type of an index for a string/array indexing
    expression, the gofrontend would disallow floating-point and complex
    values even if they were integral and throw an internal error.  This
    patch changes gofrontend to use an integral type context when
    determining the types of a string/array index.

    Fixes golang/go#11545.

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

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

8 years agoMake compute_deps, extend_schedule static
spop [Tue, 29 Sep 2015 22:20:14 +0000 (22:20 +0000)]
Make compute_deps, extend_schedule static

No functional changes intended. Passes make check and bootstrap.
gcc/ChangeLog:

2015-09-29  Aditya Kumar  <hiraditya@msn.com>

        * graphite-dependences.c (scop_get_dependences): Moved in down
in order to be visible to its caller.
        * graphite-poly.h: Removed compute_deps, and extend_schedule.

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

8 years agouse MIN fusion for ISL-14
spop [Tue, 29 Sep 2015 22:15:08 +0000 (22:15 +0000)]
use MIN fusion for ISL-14

This patch fixes PR66754 by reverting an earlier unintended change.
We now generate a much simpler AST for interchange-1.c:

ISL AST generated by ISL:
{
  for (int c1 = 0; c1 <= 1334; c1 += 1) {
    S_7(c1);
    for (int c3 = 0; c3 <= 1334; c3 += 1)
      S_4(c1, c3);
    S_5(c1);
  }
  for (int c1 = 0; c1 <= 1334; c1 += 1)
    S_10(c1);
  S_8();
}

Bootstrap and check pass on x86_64-linux with isl-0.14.1

          PR tree-optimization/67754
          * graphite-optimize-isl.c (optimize_isl): Call
          isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.

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

8 years ago gcc/
nathan [Tue, 29 Sep 2015 20:03:33 +0000 (20:03 +0000)]
gcc/
* builtins.c (expand_builtin_acc_on_device): Delete.
(expand_builtin): Don't call it.
(fold_builtin_1): Fold acc_on_device.

libgomp/
* oacc-init.c (acc_on_device): Force optimization level.

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

8 years agoFix typos in comments in i386.c
hjl [Tue, 29 Sep 2015 19:48:39 +0000 (19:48 +0000)]
Fix typos in comments in i386.c

* config/i386/i386.c (ix86_function_arg): Fix typo in comments.
(ix86_nsaved_sseregs): Likewise.

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

8 years ago * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
nathan [Tue, 29 Sep 2015 19:45:47 +0000 (19:45 +0000)]
* plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
(cuda_errlist): Delete.
(cuda_error): Reimplement.

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

8 years ago[PATCH] Fix building microblaze targets with trunk
law [Tue, 29 Sep 2015 18:31:55 +0000 (18:31 +0000)]
[PATCH] Fix building microblaze targets with trunk
* config/microblaze/microblaze.c (microblaze_version_to_int): Remove
computation of unused value.

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

8 years ago2015-09-29 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Tue, 29 Sep 2015 18:08:54 +0000 (18:08 +0000)]
2015-09-29  Steven G. Kargl  <kargl@gcc.gnu.org>

gfortran.dg/ieee/ieee_4.f90: xfail on i386-*-freebsd*
gfortran.dg/round_4.f90: ditto.

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

8 years ago[PATCH] Fix warnings building pdp11 port
law [Tue, 29 Sep 2015 16:56:04 +0000 (16:56 +0000)]
[PATCH] Fix warnings building pdp11 port

* config/pdp11/pdp11.c (pdp11_branch_cost): New function.
* config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
inline macro expansion.

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

8 years ago[PATCH] Fix building interix targets
law [Tue, 29 Sep 2015 16:48:55 +0000 (16:48 +0000)]
[PATCH] Fix building interix targets

* config/i386/t-interix (winnt-stubs.o): Fix compilation rule.

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

8 years ago[PATCH] Fix undefined behaviour in SH port
law [Tue, 29 Sep 2015 16:41:38 +0000 (16:41 +0000)]
[PATCH] Fix undefined behaviour in SH port

* config/sh/sh.c (gen_shl_and): Fix undefined left shift
behaviour.
(gen_shl_sext): Likewise.
* config/sh/sh.md (divsi3): Likewise.
(imm->ext_dest_operand splitter): Likewise.

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

8 years agoremove dead code of commutative_reductions
spop [Tue, 29 Sep 2015 16:33:45 +0000 (16:33 +0000)]
remove dead code of commutative_reductions

This code is not used anymore after we removed the previous loop optimizer (not
based on the ISL scheduler.)  We will add back the detection of commutative
reductions after we improve the code generation of scalar dependences (by not
going out of SSA for scalar dependences just to expose them to the data
dependence graph.)

Patch passed bootstrap and check on x86_64-linux with ISL-0.15.

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

            * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
            (nb_data_writes_in_bb): Remove.
            (split_pbb): Remove.
            (split_reduction_stmt): Remove.
            (is_reduction_operation_p): Remove.
            (phi_contains_arg): Remove.
            (follow_ssa_with_commutative_ops): Remove.
            (detect_commutative_reduction_arg): Remove.
            (detect_commutative_reduction_assign): Remove.
            (follow_inital_value_to_phi): Remove.
            (edge_initial_value_for_loop_phi): Remove.
            (initial_value_for_loop_phi): Remove.
            (used_outside_reduction): Remove.
            (detect_commutative_reduction): Remove.
            (translate_scalar_reduction_to_array_for_stmt): Remove.
            (remove_phi): Remove.
            (dr_indices_valid_in_loop): Remove.
            (close_phi_written_to_memory): Remove.
            (translate_scalar_reduction_to_array): Remove.
            (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
            (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
            (rewrite_commutative_reductions_out_of_ssa): Remove.
            (build_poly_scop): Remove call to rewrite_commutative_reductions_out_of_ssa.

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

8 years ago[PATCH] Fix undefined behaviour in rx port
law [Tue, 29 Sep 2015 16:32:45 +0000 (16:32 +0000)]
[PATCH] Fix undefined behaviour in rx port
        * config/rx/constraints.md (Int08): Fix undefined left shift
        behaviour.
        (Sint08, Sint16, Sint24): Likewise.
        * config/rx/rx.c (rx_get_stack_layout): Likewise.

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

8 years agoadd separate insn sched class for vector LDP & STP
spop [Tue, 29 Sep 2015 16:30:45 +0000 (16:30 +0000)]
add separate insn sched class for vector LDP & STP

2015-09-29  Evandro Menezes  <e.menezes@samsung.com>

* config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
Add new insn types for vector load and store pairs.
* config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
types "neon_ldp{,_q}".
* config/arm/cortex-a57.md (neon_load_c): Add insn types
"neon_ldp{,_q}".
(neon_store_complex): Add insn types "neon_stp{,_q}".
* config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
"neon_{ldp,stp}_q".

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

8 years ago[PATCH] Fix undefined behaviour in rl78 port
law [Tue, 29 Sep 2015 16:28:51 +0000 (16:28 +0000)]
[PATCH] Fix undefined behaviour in rl78 port
        * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
        behaviour.

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

8 years ago[PATCH] Fix undefined behaviour in msp430 port
law [Tue, 29 Sep 2015 16:25:21 +0000 (16:25 +0000)]
[PATCH] Fix undefined behaviour in msp430 port

       * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
        left shift behaviour.
        * config/msp430/constraints.md ('L' constraint): Similarly.
        ('Ys' constraint): Similarly.

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

8 years agoLeave errno unchanged by successful std::stoi etc
redi [Tue, 29 Sep 2015 15:15:39 +0000 (15:15 +0000)]
Leave errno unchanged by successful std::stoi etc

* include/ext/string_conversions.h (__stoa): Save and restore errno.
* testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc:
New.

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

8 years agoliboffloadmic/
iverbin [Tue, 29 Sep 2015 14:11:16 +0000 (14:11 +0000)]
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (OFFLOAD_ACTIVE_WAIT_ENV): New
define.
(init): Set OFFLOAD_ACTIVE_WAIT env var to 0, if it is not set.
* runtime/emulator/coi_common.h (PIPE_HOST_PATH): Replace with ...
(PIPE_HOST2TGT_NAME): ... this.
(PIPE_TARGET_PATH): Replace with ...
(PIPE_TGT2HOST_NAME): ... this.
(MALLOCN): New define.
(READN): Likewise.
(WRITEN): Likewise.
(enum cmd_t): Replace CMD_RUN_FUNCTION with CMD_PIPELINE_RUN_FUNCTION.
Add CMD_PIPELINE_CREATE, CMD_PIPELINE_DESTROY.
* runtime/emulator/coi_device.cpp (engine_dir): New static variable.
(pipeline_thread_routine): New static function.
(COIProcessWaitForShutdown): Use global engine_dir instead of mic_dir.
Rename pipe_host and pipe_target to pipe_host2tgt and pipe_tgt2host.
If cmd is CMD_PIPELINE_CREATE, create a new thread for the pipeline.
Remove cmd == CMD_RUN_FUNCTION case.
* runtime/emulator/coi_device.h (COIERRORN): New define.
* runtime/emulator/coi_host.cpp: Include set, map, queue.
Replace typedefs with enums and structs.
(struct Function): Remove name, add num_buffers, bufs_size,
bufs_data_target, misc_data_len, misc_data, return_value_len,
return_value, completion_event.
(struct Callback): New.
(struct Process): Remove pipeline.  Add pipe_host2tgt and pipe_tgt2host.
(struct Pipeline): Remove pipe_host and pipe_target.  Add thread,
destroy, is_destroyed, pipe_host2tgt_path, pipe_tgt2host_path,
pipe_host2tgt, pipe_tgt2host, queue, process.
(max_pipeline_num): New static variable.
(pipelines): Likewise.
(max_event_num): Likewise.
(non_signalled_events): Likewise.
(errored_events): Likewise.
(callbacks): Likewise.
(cleanup): Do not check tmp_dirs before free.
(start_critical_section): New static function.
(finish_critical_section): Likewise.
(pipeline_is_destroyed): Likewise.
(maybe_invoke_callback): Likewise.
(signal_event): Likewise.
(get_event_result): Likewise.
(COIBufferCopy): Rename arguments according to headers.  Add asserts.
Use process' main pipes, instead of pipeline's pipes.  Signal completion
event.
(COIBufferCreate): Rename arguments according to headers.  Add asserts.
Use process' main pipes, instead of pipeline's pipes.
(COIBufferCreateFromMemory): Rename arguments according to headers.
Add asserts.
(COIBufferDestroy): Rename arguments according to headers.  Add asserts.
Use process' main pipes, instead of pipeline's pipes.
(COIBufferGetSinkAddress): Rename arguments according to headers.
Add asserts.
(COIBufferMap): Rename arguments according to headers.  Add asserts.
Signal completion event.
(COIBufferRead): Likewise.
(COIBufferSetState): Likewise.
(COIBufferUnmap): Likewise.
(COIBufferWrite): Likewise.
(COIEngineGetCount): Add assert.
(COIEngineGetHandle): Rename arguments according to headers.
Add assert.
(COIEventWait): Rename arguments according to headers.  Add asserts.
Implement waiting for events with zero or infinite timeout.
(COIEventRegisterCallback): New function.
(pipeline_thread_routine): New static function.
(COIPipelineCreate): Create a new thread for the pipeline.
(COIPipelineDestroy): Exit pipeline thread.
(COIPipelineRunFunction): Add the function into pipeline's queue,
instead running it here.  Wait for it's completion in case of
synchronous execution.
(COIProcessCreateFromMemory): Rename arguments according to headers.
Add asserts.  Create process' main pipes, instead of pipeline's pipes.
(COIProcessDestroy): Rename arguments according to headers.
Add asserts.  Destroy all undestroyed pipelines.
(COIProcessGetFunctionHandles): Rename arguments according to headers.
Add asserts.  Use process' main pipes, instead of pipeline's pipes.
Remove useless function names.
(COIProcessLoadLibraryFromMemory): Add asserts.  Use process' main
pipes, instead of pipeline's pipes.
(COIProcessUnloadLibrary): Likewise.
(COIEngineGetInfo): Add assert.
* runtime/emulator/coi_host.h (COIERRORN): New define.

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

8 years agoPR libstdc++/67583 Fix invalid sputn calls in tests
redi [Tue, 29 Sep 2015 13:31:51 +0000 (13:31 +0000)]
PR libstdc++/67583 Fix invalid sputn calls in tests

PR libstdc++/67583
* testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Fix sputn call
with mismatched arguments.
* testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.

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

8 years ago2015-09-29 Richard Biener <rguenther@suse.de>
rguenth [Tue, 29 Sep 2015 13:04:18 +0000 (13:04 +0000)]
2015-09-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/67170
* tree-ssa-alias.h (get_continuation_for_phi): Adjust
the translate function pointer parameter to get the
bool whether to disambiguate only by reference.
(walk_non_aliased_vuses): Likewise.
* tree-ssa-alias.c (maybe_skip_until): Adjust.
(get_continuation_for_phi_1): Likewise.
(get_continuation_for_phi): Likewise.
(walk_non_aliased_vuses): Likewise.
* tree-ssa-sccvn.c (const_parms): New bitmap.
(vn_reference_lookup_3): Adjust for interface change.
Disambiguate parameters pointing to readonly memory.
(free_scc_vn): Free const_parms.
(run_scc_vn): Initialize const_parms from a fn spec attribute.

* gfortran.dg/pr67170.f90: New testcase.

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

8 years ago2015-09-29 Richard Biener <rguenther@suse.de>
rguenth [Tue, 29 Sep 2015 13:02:42 +0000 (13:02 +0000)]
2015-09-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/67741
* tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
builtin calls with correct signature.

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

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

8 years agoReduce space and time overhead of std::thread
redi [Tue, 29 Sep 2015 12:54:05 +0000 (12:54 +0000)]
Reduce space and time overhead of std::thread

PR libstdc++/65393
* config/abi/pre/gnu.ver: Export new symbols.
* include/std/thread (thread::_State, thread::_State_impl): New types.
(thread::_M_start_thread): Add overload taking unique_ptr<_State>.
(thread::_M_make_routine): Remove.
(thread::_S_make_state): Add.
(thread::_Impl_base, thread::_Impl, thread::_M_start_thread)
[_GLIBCXX_THREAD_ABI_COMPAT] Only declare conditionally.
* src/c++11/thread.cc (execute_native_thread_routine): Rename to
execute_native_thread_routine_compat and re-define to use _State.
(thread::_State::~_State()): Define.
(thread::_M_make_thread): Define new overload.
(thread::_M_make_thread) [_GLIBCXX_THREAD_ABI_COMPAT]: Only define old
overloads conditionally.

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

8 years ago * gcc.dg/tg-tests.h (foo_1) [UNSAFE]: Also check if f and ld are
uros [Tue, 29 Sep 2015 11:21:46 +0000 (11:21 +0000)]
* gcc.dg/tg-tests.h (foo_1) [UNSAFE]: Also check if f and ld are
non-zero for __builtin_signbit tests.

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

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