gcc.git
9 years agobb-reorder: Split out STC
Segher Boessenkool [Thu, 1 Oct 2015 06:33:09 +0000 (08:33 +0200)]
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.

From-SVN: r228316

9 years agoMake dumping of function attributes resemble source syntax
Tom de 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.

From-SVN: r228315

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

From-SVN: r228314

9 years agore PR go/66870 (split stack issues on ppc64le and ppc64)
Lynn Boger [Wed, 30 Sep 2015 23:06:11 +0000 (18:06 -0500)]
re PR go/66870 (split stack issues on ppc64le and ppc64)

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.

From-SVN: r228311

9 years ago[RS6000] Make -msingle-pic-base remove the ELFv2 global entry code
Alan Modra [Wed, 30 Sep 2015 22:19:18 +0000 (07:49 +0930)]
[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.

From-SVN: r228309

9 years agomkoffload.c (process): Change offload data format.
Nathan Sidwell [Wed, 30 Sep 2015 21:35:47 +0000 (21:35 +0000)]
mkoffload.c (process): Change offload data format.

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.

Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
From-SVN: r228308

9 years ago[RS6000] Correct powerpc sysv stack argument accounting
Alan Modra [Wed, 30 Sep 2015 21:29:00 +0000 (06:59 +0930)]
[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.

From-SVN: r228307

9 years ago[PATCH] Improve DOM's optimization of control statements
Jeff Law [Wed, 30 Sep 2015 20:28:14 +0000 (14:28 -0600)]
[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.

From-SVN: r228306

9 years agomessages_members.cc (Catalog_info, Catalogs): Move...
François Dumont [Wed, 30 Sep 2015 20:04:43 +0000 (20:04 +0000)]
messages_members.cc (Catalog_info, Catalogs): Move...

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.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r228305

9 years agonvptx.c (nvptx_goacc_validate_dims): New.
Nathan Sidwell [Wed, 30 Sep 2015 19:16:29 +0000 (19:16 +0000)]
nvptx.c (nvptx_goacc_validate_dims): New.

* 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.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r228304

9 years agore PR rtl-optimization/67037 (Wrong code at -O1 and above on ARM)
Bernd Edlinger [Wed, 30 Sep 2015 18:51:31 +0000 (18:51 +0000)]
re PR rtl-optimization/67037 (Wrong code at -O1 and above on ARM)

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.

From-SVN: r228303

9 years ago[PATCH] Update SSA_NAME manager to use two lists
Bernd Schmidt [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.

From-SVN: r228302

9 years agoPass on the verbose flag "-v" to/in the mkoffloads
Thomas Schwinge [Wed, 30 Sep 2015 16:42:32 +0000 (18:42 +0200)]
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.

From-SVN: r228301

9 years agoRefactor intelmic-mkoffload.c argv building to use obstacks
Thomas Schwinge [Wed, 30 Sep 2015 16:42:22 +0000 (18:42 +0200)]
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.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
From-SVN: r228300

9 years agoMore DEF_FUNCTION_TYPE_VAR_6/DEF_FUNCTION_TYPE_VAR_11 cleanup
Thomas Schwinge [Wed, 30 Sep 2015 15:14:29 +0000 (17:14 +0200)]
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.

Co-Authored-By: Ulrich Drepper <drepper@gmail.com>
From-SVN: r228298

9 years agospu-protos.h (spu_expand_atomic_op): Add prototype.
Ulrich Weigand [Wed, 30 Sep 2015 14:58:49 +0000 (14:58 +0000)]
spu-protos.h (spu_expand_atomic_op): Add prototype.

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.

From-SVN: r228297

9 years agoi386.c (scalar_chain::analyze_register_chain): Ignore debug insns.
Ilya Enkovich [Wed, 30 Sep 2015 13:08:01 +0000 (13:08 +0000)]
i386.c (scalar_chain::analyze_register_chain): Ignore debug insns.

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.

From-SVN: r228292

9 years agoalpha, ia64: Remove empty directories.
Matthias Klose [Wed, 30 Sep 2015 12:55:05 +0000 (12:55 +0000)]
alpha, ia64: Remove empty directories.

2015-09-30  Matthias Klose  <doko@ubuntu.com>

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

From-SVN: r228291

9 years agobuiltins.c: Add comment that no new simplifications shouldd be added here.
Richard Biener [Wed, 30 Sep 2015 12:52:37 +0000 (12:52 +0000)]
builtins.c: Add comment that no new simplifications shouldd be added here.

2015-09-30  Richard Biener  <rguenther@suse.de>

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

From-SVN: r228290

9 years ago2015-09-30 Matthias Klose <doko@ubuntu.com>
Matthias Klose [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.

From-SVN: r228289

9 years agore PR c/67730 (No warning when returning NULL in void function)
Marek Polacek [Wed, 30 Sep 2015 11:26:44 +0000 (11:26 +0000)]
re PR c/67730 (No warning when returning NULL in void function)

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.

From-SVN: r228286

9 years agore PR tree-optimization/67690 (wrong code with -O2 on x86_64/Linux)
Marek Polacek [Wed, 30 Sep 2015 09:24:02 +0000 (09:24 +0000)]
re PR tree-optimization/67690 (wrong code with -O2 on x86_64/Linux)

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.

From-SVN: r228284

9 years agoUse gcc/coretypes.h:enum offload_abi in mkoffloads
Thomas Schwinge [Wed, 30 Sep 2015 08:58:04 +0000 (10:58 +0200)]
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.

From-SVN: r228283

9 years agoAdd checkpoint to libgomp dg-shouldfail tests
Thomas Schwinge [Wed, 30 Sep 2015 08:44:49 +0000 (10:44 +0200)]
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.

From-SVN: r228282

9 years agoconfigure.ac: Remove extraneous ;;.
Matthias Klose [Wed, 30 Sep 2015 08:43:09 +0000 (08:43 +0000)]
configure.ac: Remove extraneous ;;.

2015-09-30  Matthias Klose  <doko@ubuntu.com>

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

From-SVN: r228281

9 years ago[testsuite] Fix order of dg-do and dg-require-effective-target directives
Christophe Lyon [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.

From-SVN: r228280

9 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Wed, 30 Sep 2015 06:52:45 +0000 (08:52 +0200)]
* ChangeLog: Fix whitespace.

From-SVN: r228279

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

From-SVN: r228276

9 years agopr65771.c: Use tls_runtime instead of tls.
Jonathan Roelofs [Wed, 30 Sep 2015 00:02:35 +0000 (00:02 +0000)]
pr65771.c: Use tls_runtime instead of tls.

2015-09-29  Jonathan Roelofs  <jonathan@codesourcery.com>

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

From-SVN: r228273

9 years agoLimit the MEMSET (setmemsi pattern) and MEMCPY (movmemsi pattern) instructions to...
James Bowman [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.

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.

From-SVN: r228271

9 years agocompiler: Accept untyped integral values as string/array indices.
Ian Lance Taylor [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

From-SVN: r228270

9 years agoMake compute_deps, extend_schedule static
Aditya Kumar [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.

From-SVN: r228269

9 years agouse MIN fusion for ISL-14
Sebastian Pop [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.

Co-Authored-By: Aditya Kumar <aditya.k7@samsung.com>
From-SVN: r228268

9 years agobuiltins.c (expand_builtin_acc_on_device): Delete.
Nathan Sidwell [Tue, 29 Sep 2015 20:03:33 +0000 (20:03 +0000)]
builtins.c (expand_builtin_acc_on_device): Delete.

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.

From-SVN: r228267

9 years agoFix typos in comments in i386.c
H.J. Lu [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.

From-SVN: r228266

9 years agoplugin-nvptx.c (ARRAYSIZE): Delete.
Nathan Sidwell [Tue, 29 Sep 2015 19:45:47 +0000 (19:45 +0000)]
plugin-nvptx.c (ARRAYSIZE): Delete.

* plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
(cuda_errlist): Delete.
(cuda_error): Reimplement.

From-SVN: r228265

9 years ago[PATCH] Fix building microblaze targets with trunk
Jeff Law [Tue, 29 Sep 2015 18:31:55 +0000 (12:31 -0600)]
[PATCH] Fix building microblaze targets with trunk

[PATCH] Fix building microblaze targets with trunk
* config/microblaze/microblaze.c (microblaze_version_to_int): Remove
computation of unused value.

From-SVN: r228263

9 years ago2015-09-29 Steven G. Kargl <kargl@gcc.gnu.org>
Steven G. 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.

From-SVN: r228262

9 years ago[PATCH] Fix warnings building pdp11 port
Jeff Law [Tue, 29 Sep 2015 16:56:04 +0000 (10:56 -0600)]
[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.

From-SVN: r228259

9 years ago[PATCH] Fix building interix targets
Jeff Law [Tue, 29 Sep 2015 16:48:55 +0000 (10:48 -0600)]
[PATCH] Fix building interix targets

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

From-SVN: r228258

9 years ago[PATCH] Fix undefined behaviour in SH port
Jeff Law [Tue, 29 Sep 2015 16:41:38 +0000 (10:41 -0600)]
[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.

From-SVN: r228257

9 years agoremove dead code of commutative_reductions
Sebastian Pop [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.

Co-Authored-By: Aditya Kumar <aditya.k7@samsung.com>
From-SVN: r228255

9 years ago[PATCH] Fix undefined behaviour in rx port
Jeff Law [Tue, 29 Sep 2015 16:32:45 +0000 (10:32 -0600)]
[PATCH] Fix undefined behaviour in rx port

[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.

From-SVN: r228254

9 years agoadd separate insn sched class for vector LDP & STP
Evandro Menezes [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".

From-SVN: r228253

9 years ago[PATCH] Fix undefined behaviour in rl78 port
Jeff Law [Tue, 29 Sep 2015 16:28:51 +0000 (10:28 -0600)]
[PATCH] Fix undefined behaviour in rl78 port

[PATCH] Fix undefined behaviour in rl78 port
        * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
        behaviour.

From-SVN: r228252

9 years ago[PATCH] Fix undefined behaviour in msp430 port
Jeff Law [Tue, 29 Sep 2015 16:25:21 +0000 (10:25 -0600)]
[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.

From-SVN: r228251

9 years agoLeave errno unchanged by successful std::stoi etc
Jonathan Wakely [Tue, 29 Sep 2015 15:15:39 +0000 (16:15 +0100)]
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.

From-SVN: r228249

9 years agolibgomp-plugin-intelmic.cpp (OFFLOAD_ACTIVE_WAIT_ENV): New define.
Ilya Verbin [Tue, 29 Sep 2015 14:11:16 +0000 (14:11 +0000)]
libgomp-plugin-intelmic.cpp (OFFLOAD_ACTIVE_WAIT_ENV): New define.

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.

From-SVN: r228248

9 years agoPR libstdc++/67583 Fix invalid sputn calls in tests
Jonathan Wakely [Tue, 29 Sep 2015 13:31:51 +0000 (14:31 +0100)]
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.

From-SVN: r228245

9 years agore PR fortran/67170 (PRE can't hoist out a readonly argument)
Richard Biener [Tue, 29 Sep 2015 13:04:18 +0000 (13:04 +0000)]
re PR fortran/67170 (PRE can't hoist out a readonly argument)

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.

From-SVN: r228244

9 years agore PR tree-optimization/67741 (Invalid built-in usage should not cause segmentation...
Richard Biener [Tue, 29 Sep 2015 13:02:42 +0000 (13:02 +0000)]
re PR tree-optimization/67741 (Invalid built-in usage should not cause segmentation fault in compiler)

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.

From-SVN: r228243

9 years agoReduce space and time overhead of std::thread
Jonathan Wakely [Tue, 29 Sep 2015 12:54:05 +0000 (13:54 +0100)]
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.

From-SVN: r228242

9 years agotg-tests.h (foo_1): Also check if f and ld are non-zero for __builtin_signbit tests.
Uros Bizjak [Tue, 29 Sep 2015 11:21:46 +0000 (13:21 +0200)]
tg-tests.h (foo_1): Also check if f and ld are non-zero for __builtin_signbit tests.

* gcc.dg/tg-tests.h (foo_1) [UNSAFE]: Also check if f and ld are
non-zero for __builtin_signbit tests.

From-SVN: r228240

9 years agore PR target/65105 ([i386] XMM registers are not used for 64bit computations on 32bit...
Ilya Enkovich [Tue, 29 Sep 2015 09:32:40 +0000 (09:32 +0000)]
re PR target/65105 ([i386] XMM registers are not used for 64bit computations on 32bit target)

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.

From-SVN: r228231

9 years agoDump function attributes
Tom de 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.

From-SVN: r228229

9 years agore PR target/67716 ([5] [SH]: Miscompiles libraw: Assembler: unaligned opcodes detect...
Kaz Kojima [Tue, 29 Sep 2015 05:36:01 +0000 (05:36 +0000)]
re PR target/67716 ([5] [SH]: Miscompiles libraw: Assembler: unaligned opcodes detected in executable segment)

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.

From-SVN: r228228

9 years agoFix gcc.dg/asm-4.c
Segher Boessenkool [Tue, 29 Sep 2015 00:56:03 +0000 (02:56 +0200)]
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.

From-SVN: r228227

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

From-SVN: r228226

9 years agoUpdate soft-fp from glibc.
Joseph Myers [Mon, 28 Sep 2015 21:50:22 +0000 (22:50 +0100)]
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.

From-SVN: r228223

9 years ago[multiple changes]
Paul Thomas [Mon, 28 Sep 2015 21:18:38 +0000 (21:18 +0000)]
[multiple changes]

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.

From-SVN: r228222

9 years agogomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
Nathan Sidwell [Mon, 28 Sep 2015 19:37:33 +0000 (19:37 +0000)]
gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.

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

From-SVN: r228220

9 years agoRe: [PATCH] Fix undefined behaviour in arc port
Jeff Law [Mon, 28 Sep 2015 19:27:29 +0000 (13:27 -0600)]
Re: [PATCH] Fix undefined behaviour in arc port

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.

From-SVN: r228219

9 years agofix bootstrap due to unused variable warning
Aditya Kumar [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.

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

9 years agoLWG 2135: terminate() in condition_variable::wait()
Jonathan Wakely [Mon, 28 Sep 2015 18:44:40 +0000 (19:44 +0100)]
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).

From-SVN: r228217

9 years agoRedesign Graphite scop detection
Sebastian Pop [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.

From-SVN: r228215

9 years agore PR tree-optimization/67700 ([graphite] miscompile due to wrong codegen)
Aditya Kumar [Mon, 28 Sep 2015 17:29:59 +0000 (17:29 +0000)]
re PR tree-optimization/67700 ([graphite] miscompile due to wrong codegen)

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.

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

9 years agoextend.texi (Asm Labels): Break out text for data vs functions.
David Wohlferd [Mon, 28 Sep 2015 16:45:31 +0000 (16:45 +0000)]
extend.texi (Asm Labels): Break out text for data vs functions.

2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>

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

From-SVN: r228212

9 years ago[AArch64] Revert "Improve TLS Descriptor pattern to release RTL loop IV opt"
Jiong Wang [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.

From-SVN: r228211

9 years agore PR other/67652 (liboffloadmic/runtime/offload_engine.cpp:176: strange expression...
Ilya Verbin [Mon, 28 Sep 2015 16:10:16 +0000 (16:10 +0000)]
re PR other/67652 (liboffloadmic/runtime/offload_engine.cpp:176: strange expression in sizeof ?)

PR other/67652
liboffloadmic/
* runtime/offload_engine.cpp (Engine::init_process): Fix sizeof.

From-SVN: r228210

9 years agoNow that muser-mode is default the multilib definitions does not require to specify...
Daniel Hellstrom [Mon, 28 Sep 2015 14:59:44 +0000 (16:59 +0200)]
Now that muser-mode is default the multilib definitions does not require to specify that switch any more.

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.

From-SVN: r228204

9 years agors6000.c (rs6000_xcoff_asm_named_section): Place SECTION_EXCLUDE in XO mapping class.
David Edelsohn [Mon, 28 Sep 2015 14:44:57 +0000 (14:44 +0000)]
rs6000.c (rs6000_xcoff_asm_named_section): Place SECTION_EXCLUDE in XO mapping class.

* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
SECTION_EXCLUDE in XO mapping class.

From-SVN: r228203

9 years agore PR target/54236 ([SH] Improve addc and subc insn utilization)
Oleg Endo [Mon, 28 Sep 2015 14:00:44 +0000 (14:00 +0000)]
re PR target/54236 ([SH] Improve addc and subc insn utilization)

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.

From-SVN: r228202

9 years ago[Patch 1/2 AArch64/ARM] Give AArch64 ROR (Immediate) a new type attribute
James Greenhalgh [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.

From-SVN: r228197

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

From-SVN: r228196

9 years ago[RTL-ifcvt] PR rtl-optimization/67481: Look more deeply for CCmode sets during if...
Kyrylo Tkachov [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.

From-SVN: r228195

9 years ago[RTL-ifcvt] PR rtl-optimization/67465: Handle pairs of complex+simple blocks and...
Kyrylo Tkachov [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.

From-SVN: r228194

9 years agoAdd gcc.dg/vect/pr62171.c
Tom de 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.

From-SVN: r228193

9 years agoupdate a few places for the change from gimple_statement_base to gimple
Trevor Saunders [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.

From-SVN: r228192

9 years agoUse leon3 target for native LEON on Linux.
Daniel Cederman [Mon, 28 Sep 2015 05:34:24 +0000 (05:34 +0000)]
Use leon3 target for native LEON on Linux.

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

From-SVN: r228185

9 years agoMake muser-mode the default for LEON3
Daniel Cederman [Mon, 28 Sep 2015 05:30:31 +0000 (05:30 +0000)]
Make muser-mode the default for LEON3

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

From-SVN: r228184

9 years agoDo not use floating point registers when compiling with -msoft-float for SPARC
Daniel Cederman [Mon, 28 Sep 2015 05:26:34 +0000 (05:26 +0000)]
Do not use floating point registers when compiling with -msoft-float for SPARC

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.

From-SVN: r228183

9 years agoaarch64.md (prefetch): Change the predicate of operand 0 to register_operand.
Andrew Pinski [Mon, 28 Sep 2015 05:22:36 +0000 (05:22 +0000)]
aarch64.md (prefetch): Change the predicate of operand 0 to register_operand.

2015-09-28  Andrew Pinski  <apinski@cavium.com>

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

From-SVN: r228182

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

From-SVN: r228181

9 years agopredicates.md (register_sse4nonimm_operand): New predicate.
Uros Bizjak [Sun, 27 Sep 2015 18:02:36 +0000 (20:02 +0200)]
predicates.md (register_sse4nonimm_operand): New predicate.

* 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.

From-SVN: r228178

9 years agopr44641.C: Revert line number change.
David Edelsohn [Sun, 27 Sep 2015 17:31:11 +0000 (17:31 +0000)]
pr44641.C: Revert line number change.

        * g++.dg/debug/dwarf2/pr44641.C: Revert line number change. Remove
        skip on AIX.  XFAIL individual line tests.

From-SVN: r228177

9 years agore PR target/67391 ([SH] Convert clrt addc to normal add insn)
Oleg Endo [Sun, 27 Sep 2015 11:55:55 +0000 (11:55 +0000)]
re PR target/67391 ([SH] Convert clrt addc to normal add insn)

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.

Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>
From-SVN: r228176

9 years agorevert to assign_parms assignments using default defs
Alexandre Oliva [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.

From-SVN: r228175

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

From-SVN: r228174

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

From-SVN: r228173

9 years agoFix missing deep copy when assigning a DT constructor to an array
Mikael Morin [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 constantness 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.

From-SVN: r228170

9 years agore PR fortran/67567 (resolve.c: gfc_error called with iface->module == NULL)
Paul Thomas [Sat, 26 Sep 2015 17:52:24 +0000 (17:52 +0000)]
re PR fortran/67567 (resolve.c: gfc_error called with iface->module == NULL)

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.

From-SVN: r228169

9 years agopr64935-1.c: XFAIL on AIX.
David Edelsohn [Sat, 26 Sep 2015 15:34:58 +0000 (15:34 +0000)]
pr64935-1.c: XFAIL on AIX.

        * 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.

From-SVN: r228168

9 years agodwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
David Edelsohn [Sat, 26 Sep 2015 15:31:35 +0000 (15:31 +0000)]
dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.

        * 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.

From-SVN: r228167

9 years ago[PATCH] Fix undefined behaviour in arc port
Jeff Law [Sat, 26 Sep 2015 07:48:10 +0000 (01:48 -0600)]
[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.

From-SVN: r228166

9 years ago[PATCH] Fix undefined behaviour in SH port
Jeff Law [Sat, 26 Sep 2015 07:42:32 +0000 (01:42 -0600)]
[PATCH] Fix undefined behaviour in SH port

    [PATCH] Fix undefined behaviour in SH port
* config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
behaviour

From-SVN: r228165

9 years ago[PATCH] Fix undefined behaviour in mips port
Jeff Law [Sat, 26 Sep 2015 07:38:29 +0000 (01:38 -0600)]
[PATCH] Fix undefined behaviour in mips port

[PATCH] Fix undefined behaviour in mips port
* config/mips/mips.c (mips_compute_frame_info): Fix left shift
undefined behaviour.

From-SVN: r228164

9 years ago[PATCH] Fix undefined behaviour in cris port
Jeff Law [Sat, 26 Sep 2015 07:33:05 +0000 (01:33 -0600)]
[PATCH] Fix undefined behaviour in cris port

[PATCH] Fix undefined behaviour in cris port
* config/cris/cris.md (asrandb): Fix left shift undefined
behaviour.
(asrandw): Likewise.

From-SVN: r228163

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

From-SVN: r228161

9 years agore PR fortran/67614 (ICE on using arithmetic if with null)
Steven G. Kargl [Fri, 25 Sep 2015 22:30:26 +0000 (22:30 +0000)]
re PR fortran/67614 (ICE on using arithmetic if with null)

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.

From-SVN: r228156

9 years agore PR fortran/67525 (ICE on select type with improper selector)
Steven G. Kargl [Fri, 25 Sep 2015 22:28:04 +0000 (22:28 +0000)]
re PR fortran/67525 (ICE on select type with improper selector)

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.

From-SVN: r228155