Re: [PATCH, AARCH64] Enable fuse-caller-save for AARCH64

2014-06-19 Thread Tom de Vries
On 19-06-14 05:53, Richard Henderson wrote: Do we in fact make sure this isn't an ifunc resolver? I don't immediately see how those get wired up in the cgraph... Richard, using the patch below I changed the gcc/testsuite/gcc.target/i386/fuse-caller-save.c testcase to use an ifunc resolver,

Re: [PATCH, AARCH64] Enable fuse-caller-save for AARCH64

2014-06-19 Thread Tom de Vries
On 19-06-14 05:21, Richard Henderson wrote: On 06/01/2014 03:00 AM, Tom de Vries wrote: +/* Emit call insn with PAT and do aarch64-specific handling. */ + +bool +aarch64_emit_call_insn (rtx pat) +{ + rtx insn = emit_call_insn (pat); + + rtx *fusage = CALL_INSN_FUNCTION_USAGE (insn

Re: -fuse-caller-save - Collect register usage information

2014-06-19 Thread Tom de Vries
On 19-06-14 07:13, Richard Henderson wrote: On 05/19/2014 07:30 AM, Tom de Vries wrote: + for (insn = get_insns (); insn != NULL_RTX; insn = next_insn (insn)) +{ + HARD_REG_SET insn_used_regs; + + if (!NONDEBUG_INSN_P (insn)) + continue; + + find_all_hard_reg_sets (insn

Re: -fuse-caller-save - Collect register usage information

2014-06-19 Thread Tom de Vries
On 19-06-14 07:13, Richard Henderson wrote: On 05/19/2014 07:30 AM, Tom de Vries wrote: + for (insn = get_insns (); insn != NULL_RTX; insn = next_insn (insn)) +{ + HARD_REG_SET insn_used_regs; + + if (!NONDEBUG_INSN_P (insn)) + continue; + + find_all_hard_reg_sets

Fix finding reg-sets of call insn in collect_fn_hard_reg_usage

2014-06-19 Thread Tom de Vries
of find_all_hard_reg_sets and get_call_reg_set_usage. There's no point in doing find_all_hard_reg_sets on a call if get_call_reg_set_usage returns false. OK for trunk if bootstrap and reg-test on x86_64 is ok ? Thanks, - Tom 2014-06-19 Tom de Vries t...@codesourcery.com * final.c (collect_fn_hard_reg_usage): Add

Re: [PATCH, ARM] Enable fuse-caller-save for ARM

2014-06-19 Thread Tom de Vries
On 19-06-14 05:59, Richard Henderson wrote: On 06/01/2014 04:27 AM, Tom de Vries wrote: + if (TARGET_AAPCS_BASED) +{ + /* For AAPCS, IP and CC can be clobbered by veneers inserted by the +linker. We need to add these to allow

Re: [PATCH, AARCH64] Enable fuse-caller-save for AARCH64

2014-06-19 Thread Tom de Vries
On 19-06-14 05:53, Richard Henderson wrote: On 06/01/2014 03:00 AM, Tom de Vries wrote: +aarch64_emit_call_insn (rtx pat) +{ + rtx insn = emit_call_insn (pat); + + rtx *fusage = CALL_INSN_FUNCTION_USAGE (insn); + clobber_reg (fusage, gen_rtx_REG (word_mode, IP0_REGNUM)); + clobber_reg

Re: [PATCH, AARCH64] Enable fuse-caller-save for AARCH64

2014-06-20 Thread Tom de Vries
On 19-06-14 20:41, Richard Henderson wrote: On 06/19/2014 11:25 AM, Tom de Vries wrote: On 19-06-14 05:53, Richard Henderson wrote: On 06/01/2014 03:00 AM, Tom de Vries wrote: +aarch64_emit_call_insn (rtx pat) +{ + rtx insn = emit_call_insn (pat); + + rtx *fusage = CALL_INSN_FUNCTION_USAGE

Re: Fix finding reg-sets of call insn in collect_fn_hard_reg_usage

2014-06-26 Thread Tom de Vries
in the fuse-caller-save optimization, and adds a test-case. I've done an x86_64 build and ran the i386.exp testsuite. OK for trunk if full bootstrap and reg-test succeeds? Thanks, - Tom 2014-06-26 Tom de Vries t...@codesourcery.com * final.c (get_call_fndecl): Declare. (self_recursive_call_p): New

Re: Fix finding reg-sets of call insn in collect_fn_hard_reg_usage

2014-06-27 Thread Tom de Vries
On 19-06-14 18:40, Richard Henderson wrote: On 06/19/2014 09:07 AM, Tom de Vries wrote: 2014-06-19 Tom de Vries t...@codesourcery.com * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for get_call_reg_set_usage. Ok, as far as it goes, but... It seems

[PATCH] Don't allow combination of read/write and earlyclobber constraint modifier

2014-07-02 Thread Tom de Vries
On 01-07-14 21:47, Jeff Law wrote: On 07/01/14 13:27, Tom de Vries wrote: So my question is: is the combination of '' and '+' supported ? If so, what is the exact semantics ? If not, should we warn or give an error ? I don't think we can define any reasonable semantics for +. My

Re: combination of read/write and earlyclobber constraint modifier

2014-07-02 Thread Tom de Vries
of vec_unpack_trunc_mode seems wrong, since the template does not use the operand as input. This patch fixes that. OK for trunk if aarch64 build regtest succeeds ? Thanks, - Tom 2014-07-02 Tom de Vries t...@codesourcery.com * config/aarch64/aarch64-simd.md (define_insn vec_unpack_trunc_mode): Fix

Re: combination of read/write and earlyclobber constraint modifier

2014-07-03 Thread Tom de Vries
On 03-07-14 10:20, Marcus Shawcroft wrote: On 2 July 2014 09:02, Tom de Vries tom_devr...@mentor.com wrote: On 02-07-14 08:23, Marc Glisse wrote: In the first example you gave, looking at the pattern (no match_dup, setting the full register), it seems that it may have wanted = instead

[PATCH, COMMITTED] Update earlyclobber documentation

2014-07-04 Thread Tom de Vries
for the ARM. Jeff, Committed as attached. Thanks to all for the helpful comments. - Tom 2014-07-04 Tom de Vries t...@codesourcery.com * doc/md.texi (@subsection Constraint Modifier Characters): Clarify combination of earlyclobber and read/write modifiers. diff --git a/gcc/doc/md.texi b/gcc/doc

Re: [PATCH, AArch64, Testsuite] Specify -fno-use-caller-save for func-ret* tests

2014-07-08 Thread Tom de Vries
that, and there's no need to disable fuse-caller-save. Tested with aarch64 build. OK for trunk? Thanks, - Tom 2014-07-08 Tom de Vries t...@codesourcery.com * gcc.target/aarch64/aapcs64/aapcs64.exp (additional_flags_for_func_ret): Remove. (func-ret-*.c): Use additional_flags

Simplify gcc.target/mips/fuse-caller-save*.c

2014-07-09 Thread Tom de Vries
that $16 is absent for another reason than -fuse-caller-save, I've added 3 corresponding test-cases that check for presence of $16 with -fno-use-caller-save. The fuse-caller-save tests now pass for all combinations I've tried. OK for trunk? Thanks, - Tom 2014-07-09 Tom de Vries t

Re: Simplify gcc.target/mips/fuse-caller-save*.c

2014-07-09 Thread Tom de Vries
On 09-07-14 20:32, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: Richard, during testing the gcc.target/mips/fuse-caller-save*.c test-cases with more combinations of -march, -mabi, -fpic etc, I found that the checks for amount of stores are rather fragile, so I removed

Re: Simplify gcc.target/mips/fuse-caller-save*.c

2014-07-10 Thread Tom de Vries
On 09-07-14 23:06, Tom de Vries wrote: On 09-07-14 20:32, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: Richard, during testing the gcc.target/mips/fuse-caller-save*.c test-cases with more combinations of -march, -mabi, -fpic etc, I found that the checks for amount

Re: -fuse-caller-save - Collect register usage information

2014-07-13 Thread Tom de Vries
On 19-06-14 21:45, Richard Henderson wrote: On 06/19/2014 12:36 PM, Jan Hubicka wrote: On 06/19/2014 09:06 AM, Tom de Vries wrote: 2014-06-19 Tom de Vries t...@codesourcery.com * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if it contains all

[PATCH, i386, PR61827] Fix fuse-caller-save-xmm.c test-case

2014-07-20 Thread Tom de Vries
de Vries t...@codesourcery.com PR target/61827 * gcc.target/i386/fuse-caller-save-xmm.c: Add checks for insns with xmm registers. Remove cfi_def_cfa_offset checks. Generalize checks containing %rsp. (main): Remove. diff --git a/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c b/gcc

Re: [PATCH, i386, PR61827] Fix fuse-caller-save-xmm.c test-case

2014-07-21 Thread Tom de Vries
On 21-07-14 09:31, Uros Bizjak wrote: On Sun, Jul 20, 2014 at 12:25 PM, Tom de Vries tom_devr...@mentor.com wrote: this patch fixes the problems in test-case gcc.target/i386/fuse-caller-save-xmm.c reported in PR 61827. I've removed the checks for cfi_def_cfa_offset, which were not robust

Re: [PATCH, i386, PR61827] Fix fuse-caller-save-xmm.c test-case

2014-07-21 Thread Tom de Vries
On 21-07-14 12:40, Uros Bizjak wrote: On Mon, Jul 21, 2014 at 12:34 PM, Tom de Vries tom_devr...@mentor.com wrote: Dominique noticed that the .LC0 check failed on darwin, since the label LC0 is used. This follow-up patch fixes that (and I see now you already Ok-ed this change). Furthermore

[PATCH][gomp4] Optimize expand_omp_for_static_chunk for chunk_size one

2014-07-28 Thread Tom de Vries
. However, subsequent optimizations do not manage to do this simplification. This patch sets the loop exit condition to true if the chunk_size is one, to ensure that the compiler will optimize away the inner loop. OK for gomp4 branch? Thanks, - Tom 2014-07-25 Tom de Vries t...@codesourcery.com

[PATCH][gomp4] Fix bootstrap

2014-07-28 Thread Tom de Vries
Hi, this patch removes some unused variables and fixes bootstrap of the gomp-4_0-branch. Committed to gomp-4_0-branch as trivial. Thanks, - Tom 2014-07-28 Tom de Vries t...@codesourcery.com * omp-low.c (process_reduction_data): Remove unused variables. diff --git a/gcc/omp-low.c b/gcc

Fix gcc_assert in expand_omp_for_static_chunk

2014-11-12 Thread Tom de Vries
on x86_64, on top of trunk, gomp-4_0-branch and internal oacc dev branch. OK for trunk? Thanks, - Tom 2014-11-12 Tom de Vries t...@codesourcery.com * omp-low.c (expand_omp_for_static_chunk): Fix assert. --- gcc/omp-low.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/omp

Run pass_expand_omp_ssa after pass_paralellize_loops

2014-11-12 Thread Tom de Vries
[ moved from gcc@ to gcc-patches@ ] [ subject was: Re: [gomp4] openacc kernels directive support ] On 30-09-14 15:37, Tom de Vries wrote: I would be happily accepting splitting the current autopar pass that way, that is, do NEXT_PASS (pass_parallelize_loops) PUSH_INSERT_PASSES_WITHIN

Re: Run pass_expand_omp_ssa after pass_paralellize_loops

2014-11-12 Thread Tom de Vries
On 12-11-14 15:17, Richard Biener wrote: On Wed, 12 Nov 2014, Tom de Vries wrote: [ moved from gcc@ to gcc-patches@ ] [ subject was: Re: [gomp4] openacc kernels directive support ] On 30-09-14 15:37, Tom de Vries wrote: I would be happily accepting splitting the current autopar pass that way

[PATCH] Fix patch mangling with --inline option in mklog

2014-11-14 Thread Tom de Vries
. The patch fixes this by copying the diff_lines before processing, and using the copy at the end to reproduce the .diff file. Committed as obvious. Thanks, - Tom 2014-11-14 Tom de Vries t...@codesourcery.com * mklog: Move reading of .diff file up and add comment. Copy diff_lines

[PATCH, gomp4, committed] Fix libgomp/plugin/../configure.tgt unary operator expected error

2014-11-14 Thread Tom de Vries
$enable_linux_futex = yes; then ... The patch makes sure we can handle the case that enable_linux_futex is empty. Committed as obvious. Thanks, - Tom 2014-11-14 Tom de Vries t...@codesourcery.com * configure.tgt: Handle case that $enable_linux_futex is empty. --- libgomp/ChangeLog.gomp | 4 libgomp

[PATCH, gomp4, committed] Fix Can't rename module file openacc_internal.mod0 error

2014-11-14 Thread Tom de Vries
/ChangeLog.gomp index abceb62..b2c2526 100644 --- a/libgomp/ChangeLog.gomp +++ b/libgomp/ChangeLog.gomp @@ -1,5 +1,10 @@ 2014-11-14 Tom de Vries t...@codesourcery.com + * Makefile.am: Add missing dependency openacc.mod: openacc.lo. + * Makefile.in: Regenerate. + +2014-11-14 Tom de Vries t

openacc kernels directive -- initial support

2014-11-15 Thread Tom de Vries
Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches: ... 1 Expand oacc kernels after

[PATCH, 1/8] Expand oacc kernels after pass_build_ealias

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 2/8] Add pass_oacc_kernels

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 3/8] Add pass_ch_oacc_kernels to pass_oacc_kernels

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 4/8] Add pass_tree_loop_{init,done} to pass_oacc_kernels

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 6/8] Add pass_ccp to pass_oacc_kernels

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 5/8] Add pass_loop_im to pass_oacc_kernels

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 7/8] Add pass_parloops_oacc_kernels to pass_oacc_kernels

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, 8/8] Do simple omp lowering for no address taken var

2014-11-15 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series consists of these 8 patches

[PATCH, committed] Add -ftree-tail-merge to tail-merge testcases

2014-11-17 Thread Tom de Vries
as obvious. Thanks, - Tom From 70b69e3572414bd486cd9c25ed77216975136e21 Mon Sep 17 00:00:00 2001 From: Tom de Vries t...@codesourcery.com Date: Mon, 17 Nov 2014 19:00:12 +0100 Subject: [PATCH 1/5] Add -ftree-tail-merge to tail-merge testcases 2014-11-17 Tom de Vries t...@codesourcery.com * gcc.dg

[PATCH, committed] Fix scan patterns for pr43864-{2,3,4].c

2014-11-17 Thread Tom de Vries
Hi, this patch fixes the scan patterns for test-cases pr43864-{2,3,4].c. The patterns matched over several lines, this is fixed in the patch by using (?n). Committed as obvious. Thanks, - Tom 2014-11-17 Tom de Vries t...@codesourcery.com * gcc.dg/pr43864-2.c: Fix scan-tree-dump-times

[PATCH, PR62167] Fix tail-merge pass for dead type-unsafe code

2014-11-18 Thread Tom de Vries
introduces an xfail for pr51879-12.c. I can follow up with a patch to improve upon that, but I think that's better limited to trunk only. Bootstrapped and reg-tested on x86_64/trunk. OK for trunk/stage3, 4.8, 4.9? Thanks, - Tom 2014-11-17 Tom de Vries t...@codesourcery.com PR tree-optimization

Re: openacc kernels directive -- initial support

2014-11-19 Thread Tom de Vries
On 15-11-14 13:14, Tom de Vries wrote: Don't allow flto-partition=balance for fopenacc Unsubmitted. This works around a compilation problem for libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-2.c that I ran into on our internal dev branch. I'll investigate whether I can

[PATCH, ARM] Fix PR63718, Thumb1 bootstrap -- disable fuse-caller-save for Thumb1

2014-11-20 Thread Tom de Vries
clobbers to epilogue_insns is not trivial, and probably not a good idea for stage3. The patch works around the problem by disabling fuse-caller-save in Thumb1 mode. Build and reg-tested on arm-none-eabi. OK for stage3? Thanks, - Tom 2014-11-20 Tom de Vries t...@codesourcery.com PR rtl

Re: [PATCH 1/2] teach mklog to get name / email from git config when available

2014-11-20 Thread Tom de Vries
work for both svn and git checkouts. Diego, this patch implements both: - it uses the ~/.mklog file proposed by Peter - in absence of a ~/.mklog file, it uses git config, also when not in a git repository OK? Thanks, - Tom 2014-11-20 Tom de Vries t...@codesourcery.com Peter Bergner berg

Re: [PATCH 1/2] teach mklog to get name / email from git config when available

2014-11-20 Thread Tom de Vries
On 20-11-14 17:43, Segher Boessenkool wrote: On Thu, Nov 20, 2014 at 05:22:20PM +0100, Tom de Vries wrote: +my $conf = $ENV{HOME}/.mklog; +if (-f $conf) { +open (CONF, $conf) + or die Could not open file '$conf' for reading: $!\n; +while (CONF) { + if (m/^\s*NAME\s*=\s

[PATCH, committed] Add fgcse-sm test with scan-rtl-dump

2014-11-21 Thread Tom de Vries
actually does something. Committed as trivial. Thanks, - Tom 2014-11-21 Tom de Vries t...@codesourcery.com * gcc.dg/store-motion-fgcse-sm.c: New test. --- gcc/testsuite/gcc.dg/store-motion-fgcse-sm.c | 32 1 file changed, 32 insertions(+) create mode 100644 gcc

Re: [PATCH, 1/8] Expand oacc kernels after pass_build_ealias

2014-11-24 Thread Tom de Vries
On 15-11-14 18:19, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH, 8/8] Do simple omp lowering for no address taken var

2014-11-24 Thread Tom de Vries
On 17-11-14 11:13, Richard Biener wrote: On Sat, 15 Nov 2014, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization

Re: [PATCH, 8/8] Do simple omp lowering for no address taken var

2014-11-24 Thread Tom de Vries
On 24-11-14 12:28, Tom de Vries wrote: On 17-11-14 11:13, Richard Biener wrote: On Sat, 15 Nov 2014, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses

Re: [patch] Define new std::ios_base::failure with abi_tag(cxx11)

2014-11-24 Thread Tom de Vries
On 14-11-14 13:18, Jonathan Wakely wrote: This adds system_error support to iostreams, including the required base class changes to std::ios_base::failure. The abi_tag is used to make it a distinct type. This changes the type of I/O exceptions thrown by the library but exceptions are very

Re: [patch] Define new std::ios_base::failure with abi_tag(cxx11)

2014-11-24 Thread Tom de Vries
On 24-11-14 18:12, Jonathan Wakely wrote: On 24/11/14 17:48 +0100, Tom de Vries wrote: On 14-11-14 13:18, Jonathan Wakely wrote: This adds system_error support to iostreams, including the required base class changes to std::ios_base::failure. The abi_tag is used to make it a distinct type

Re: [PATCH, 8/8] Do simple omp lowering for no address taken var

2014-11-24 Thread Tom de Vries
On 24-11-14 13:12, Richard Biener wrote: On Mon, 24 Nov 2014, Tom de Vries wrote: On 24-11-14 12:28, Tom de Vries wrote: On 17-11-14 11:13, Richard Biener wrote: On Sat, 15 Nov 2014, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial

[PATCH] Add verify_sese

2014-11-24 Thread Tom de Vries
? Thanks, - Tom 2014-11-23 Tom de Vries t...@codesourcery.com * tree-cfg.c (verify_sese): New function. (move_sese_region_to_fn): Call verify_sese. * tree-cfg.h (verify_sese): Declare. --- gcc/tree-cfg.c | 55 +++ gcc/tree-cfg.h | 1 + 2 files

Re: [PATCH, 1/8] Expand oacc kernels after pass_build_ealias

2014-11-25 Thread Tom de Vries
On 24-11-14 11:56, Tom de Vries wrote: On 15-11-14 18:19, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops

Re: [PATCH, 2/8] Add pass_oacc_kernels

2014-11-25 Thread Tom de Vries
On 15-11-14 18:20, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH, 3/8] Add pass_ch_oacc_kernels to pass_oacc_kernels

2014-11-25 Thread Tom de Vries
On 15-11-14 18:21, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH, 4/8] Add pass_tree_loop_{init,done} to pass_oacc_kernels

2014-11-25 Thread Tom de Vries
On 15-11-14 18:21, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH, 5/8] Add pass_loop_im to pass_oacc_kernels

2014-11-25 Thread Tom de Vries
On 15-11-14 18:22, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH, 6/8] Add pass_ccp to pass_oacc_kernels

2014-11-25 Thread Tom de Vries
On 15-11-14 18:22, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH, 7/8] Add pass_parloops_oacc_kernels to pass_oacc_kernels

2014-11-25 Thread Tom de Vries
On 15-11-14 18:23, Tom de Vries wrote: On 15-11-14 13:14, Tom de Vries wrote: Hi, I'm submitting a patch series with initial support for the oacc kernels directive. The patch series uses pass_parallelize_loops to implement parallelization of loops in the oacc kernels region. The patch series

Re: [PATCH] gcc parallel make check

2014-11-25 Thread Tom de Vries
the prettyprinters.exp file is unsupported, which AFAIU is also required in that case. Bootstrapped and reg-tested on x86_64. OK for trunk/stage3? Thanks, - Tom 2014-11-25 Tom de Vries t...@codesourcery.com * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Add missing dg-finish. Only print

Re: [PATCH] Add verify_sese

2014-11-25 Thread Tom de Vries
On 25-11-14 10:28, Richard Biener wrote: On Tue, Nov 25, 2014 at 1:01 AM, Tom de Vries tom_devr...@mentor.com wrote: Richard, I ran into a problem with my oacc kernels directive patch series where tail-merge added another entry into a region that was previously single-entry-single-exit

[PING] Fix gcc_assert in expand_omp_for_static_chunk

2014-11-26 Thread Tom de Vries
On 12-11-14 11:00, Tom de Vries wrote: Jakub, this patch fixes a gcc_assert in expand_omp_for_static_chunk. The assert follows a loop with composite loop condition: ... vecedge_var_map *head = redirect_edge_var_map_vector (re); ene = single_succ_edge (entry_bb); psi

Re: Check that unlinked uses do not contain ssa-names when renaming.

2014-10-16 Thread Tom de Vries
On 08/10/12 11:24, Richard Guenther wrote: On Sun, Oct 7, 2012 at 12:44 PM, Tom de Vries tom_devr...@mentor.com wrote: Richard, attached patch checks that unlinked uses do not contain ssa-names when renaming. This assert triggers when compiling (without the fix) the PR54735 example

[PATCH, PR61605, 1/2] Handle copy cycles in pass_cprop_hardreg

2014-10-16 Thread Tom de Vries
Tom de Vries t...@codesourcery.com PR rtl-optimization/61605 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't notice stores for noops. Don't regard noops as copies. diff --git a/gcc/regcprop.c b/gcc/regcprop.c index 3297721..c71de98 100644 --- a/gcc/regcprop.c +++ b

Re: Check that unlinked uses do not contain ssa-names when renaming.

2014-10-16 Thread Tom de Vries
On 16-10-14 10:14, Richard Biener wrote: On Thu, Oct 16, 2014 at 9:20 AM, Tom de Vries tom_devr...@mentor.com wrote: On 08/10/12 11:24, Richard Guenther wrote: On Sun, Oct 7, 2012 at 12:44 PM, Tom de Vries tom_devr...@mentor.com wrote: Richard, attached patch checks that unlinked uses do

Re: Check that unlinked uses do not contain ssa-names when renaming.

2014-10-16 Thread Tom de Vries
On 16-10-14 14:20, Richard Biener wrote: Richard, I've implemented the changes listed above, and also made the message a bit more verbose: ... kernels-2.c: In function ‘main’: kernels-2.c:41:5: error: statement uses released SSA name for (COUNTERTYPE ii = 0; ii N; ii++) ^ # .MEM_57

Re: -fuse-caller-save - Collect register usage information

2014-10-16 Thread Tom de Vries
On 11-10-14 12:46, Eric Botcazou wrote: So, I hate the name of the option, and the documentation seems wrong to me. It doesn’t use the caller saved registers for allocation, it uses the call clobbered registers for allocation. Or, one could say it uses the callee saved registers for allocation.

Re: -fuse-caller-save - Collect register usage information

2014-10-17 Thread Tom de Vries
On 16-10-14 23:46, Eric Botcazou wrote: Having said that, in my mind, what is confusing about the name -fuse-caller-save, is that in fact the caller-save registers are already used in register allocation. It's just that they're used across calls without the need to save them, but

Re: -fuse-caller-save - Collect register usage information

2014-10-19 Thread Tom de Vries
On 17-10-14 21:24, Eric Botcazou wrote: Let's look at the effect of the option (after the recent fix for PR61605) on gcc.target/i386/fuse-calller-save.c: ... foo: .LFB1: .cfi_startproc - pushq %rbx - .cfi_def_cfa_offset 16 - .cfi_offset 3, -16 - movl

Re: [PATCH] register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets

2014-04-16 Thread Tom de Vries
On 16-01-14 09:13, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: * The set of registers which are clobbered during a call by things like the plt - these are not picked up by the use-caller-save optimization. We need the hook to inform the compiler about

[PING] [PATCH] register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets

2014-04-16 Thread Tom de Vries
On 15-01-14 17:53, Tom de Vries wrote: Eric, This patch adds scanning of clobbers in CALL_INSN_FUNCTION_USAGE to find_all_hard_reg_sets. For MIPS, calls are split at some point. After the split, one of the resulting insns may clobber $6. But before the split, that's not explicit in the rtl

Re: [PATCH] register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets

2014-04-16 Thread Tom de Vries
On 16/04/14 12:28, Richard Sandiford wrote: This patch introduces a hook that specifies which registers are implicitly clobbered by a call, not including the registers that are clobbered in the called function, and then uses that hook to add those registers to CALL_INSN_FUNCTION_USAGE.

fuse-caller-save - hook format

2014-04-16 Thread Tom de Vries
Vladimir, All patches for the fuse-caller-save optimization have been ok-ed. The only part not approved is the MIPS-specific part. The objection of Richard S. is not so much the patch itself, but more the idea of the hook fn_other_hard_reg_usage. For clarity, I'm restating the current hook

Re: fuse-caller-save - hook format

2014-04-22 Thread Tom de Vries
On 17-04-14 18:49, Vladimir Makarov wrote: I see. I guess your proposed solution is ok then. Vladimir, Richard, I've updated the fuse-caller-save patch series to model non-callee call clobbers in CALL_INSN_FUNCTION_USAGE. There are 2 new hooks: 1.

Re: fuse-caller-save - hook format

2014-04-22 Thread Tom de Vries
On 22-04-14 17:27, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: 2. post_expand_call_insn. A utility hook to facilitate adding the clobbers to CALL_INSN_FUNCTION_USAGE. Why is this needed though? Like I say, I think targets should update CALL_INSN_FUNCTION_USAGE when

Add call_fusage_contains_non_callee_clobbers hook

2014-04-22 Thread Tom de Vries
On 22-04-14 17:05, Tom de Vries wrote: I've updated the fuse-caller-save patch series to model non-callee call clobbers in CALL_INSN_FUNCTION_USAGE. Vladimir, This patch adds a hook to indicate whether a target has added the non-callee call clobbers to CALL_INSN_FUNCTION_USAGE, meaning it's

Re: fuse-caller-save - hook format

2014-04-22 Thread Tom de Vries
On 22-04-14 18:18, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: On 22-04-14 17:27, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: 2. post_expand_call_insn. A utility hook to facilitate adding the clobbers to CALL_INSN_FUNCTION_USAGE. Why

Re: [PING] [PATCH] register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets

2014-04-22 Thread Tom de Vries
. avoid the very ugly set-inside-use idiom and do: record_hard_reg_sets (XEXP (op, 0), NULL, pset); instead of reimplementing it manually. Updated as attached, I'll retest and commit. Thanks, - Tom 2014-01-15 Tom de Vries t...@codesourcery.com * rtlanal.c (find_all_hard_reg_sets

-fuse-caller-save - Collect register usage information

2014-04-23 Thread Tom de Vries
On 22-04-14 17:05, Tom de Vries wrote: I've updated the fuse-caller-save patch series to model non-callee call clobbers in CALL_INSN_FUNCTION_USAGE. Vladimir, This is the updated version of the previously approved patch http://gcc.gnu.org/ml/gcc-patches/2013-03/msg01320.html , updated

Add clobber_reg

2014-04-23 Thread Tom de Vries
On 22-04-14 17:05, Tom de Vries wrote: I've updated the fuse-caller-save patch series to model non-callee call clobbers in CALL_INSN_FUNCTION_USAGE. Eric, Richard Sandiford mentioned here ( http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00870.html ): ... Although we really should have

Add post_expand_call_insn hook

2014-04-23 Thread Tom de Vries
On 22-04-14 17:05, Tom de Vries wrote: I've updated the fuse-caller-save patch series to model non-callee call clobbers in CALL_INSN_FUNCTION_USAGE. Eric, this patch adds a post_expand_call_insn hook. The hook is called right after expansion of calls, and allows a target to do additional

Fix DEFHOOKPOD argument order in target-hooks-macros.h comment

2014-04-23 Thread Tom de Vries
commit shortly, as obvious. Thanks, - Tom 2014-04-23 Tom de Vries t...@codesourcery.com * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment. diff --git a/gcc/target-hooks-macros.h b/gcc/target-hooks-macros.h index 5cf4cb1..901f824 100644 --- a/gcc/target-hooks-macros.h

Re: Add call_fusage_contains_non_callee_clobbers hook

2014-04-24 Thread Tom de Vries
Obradovic robrado...@mips.com Tom de Vries t...@codesourcery.com * target.def (call_fusage_contains_non_callee_clobbers): New DEFHOOKPOD. * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register Hooks to @menu. (@node Miscellaneous Register Hooks

-fuse-caller-save - Enable for MIPS

2014-04-25 Thread Tom de Vries
On 22-04-14 17:05, Tom de Vries wrote: I've updated the fuse-caller-save patch series to model non-callee call clobbers in CALL_INSN_FUNCTION_USAGE. Richard, this patch enables the fuse-caller-save optimization for MIPS. It adds the $6 clobber in CALL_INSN_FUNCTION_USAGE when required

Re: [COMMITTED] Fix debug/60438 -- i686 stack vs fp operations

2014-04-26 Thread Tom de Vries
[4] = gen_reg_rtx (XFmode); ... operands is declared with size 3, and operands[3,4] accesses are out of bounds. I've done a minimal build with attached patch, and reran the test-case, which passes now. OK if bootstrap succeeds? Thanks, - Tom 2014-04-26 Tom de Vries t...@codesourcery.com

Re: -fuse-caller-save - Enable for MIPS

2014-04-26 Thread Tom de Vries
On 25-04-14 15:22, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 45256e9..b61cd44 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -7027,11 +7027,17 @@ mips_expand_call (enum

Re: -fuse-caller-save - Collect register usage information

2014-04-26 Thread Tom de Vries
-save patch series, bootstrapped and reg-tested on x86_64, and build and reg-tested on MIPS. Eric, non-cgraph part OK for trunk? Honza, cgraph part OK for trunk? Thanks, - Tom 2013-04-29 Radovan Obradovic robrado...@mips.com Tom de Vries t...@codesourcery.com * cgraph.h (struct

Re: [COMMITTED] Fix debug/60438 -- i686 stack vs fp operations

2014-04-26 Thread Tom de Vries
OK if bootstrap succeeds? With testing of the bootstrap build of the patch, I ran into the following regression compared to a reference bootstrap build without the patch: ... FAIL: g++.dg/tsan/cond_race.C -O2 output pattern test, is ==3087==WARNING: Program is run with unlimited stack

Re: -fuse-caller-save - Enable for MIPS

2014-04-27 Thread Tom de Vries
On 27-04-14 12:27, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: 2014-01-12 Radovan Obradovic robrado...@mips.com Tom de Vries t...@codesourcery.com * config/mips/mips-protos.h (mips_emit_call_insn): Declare. * config/mips/mips.h

Re: -fuse-caller-save - Enable for MIPS

2014-04-28 Thread Tom de Vries
On 28-04-14 12:26, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: On 27-04-14 12:27, Richard Sandiford wrote: Tom de Vries tom_devr...@mentor.com writes: mips_emit_call_insn (rtx pattern, rtx orig_addr, rtx addr, bool lazy_p) { rtx insn, reg; - insn

Re: -fuse-caller-save - Enable for MIPS

2014-04-28 Thread Tom de Vries
On 28-04-14 12:47, Tom de Vries wrote: Hmm, is that just because -fcaller-saves is -O2 and above? For -O1, after adding -fcaller-saves the optimization triggers, and the test-cases passes. For -O0, adding -fcaller-saves doesn't make a difference, the optimization doesn't trigger. If so

Re: Add post_expand_call_insn hook

2014-04-29 Thread Tom de Vries
On 24-04-14 17:13, Eric Botcazou wrote: The hook is called right after expansion of calls, and allows a target to do additional processing, such as f.i. adding clobbers to CALL_INSN_FUNCTION_USAGE. Instead of using the hook, we could add code to the preparation statements operand of the

Re: Add post_expand_call_insn hook

2014-04-29 Thread Tom de Vries
On 29-04-14 20:56, Richard Henderson wrote: I've written this concept patch, which tries to address the same problem, but in a different (and I hope more generic) way. It adds a post-emission C-code operand to define_expand. As an example of how this could be useful, for the define_expand of

[PING] -fuse-caller-save - Collect register usage information

2014-05-12 Thread Tom de Vries
On 26-04-14 14:51, Tom de Vries wrote: Eric, Honza, This patch adds analysis in pass_final to track which hard registers are set or clobbered by the function body, and stores that information in a struct cgraph_node, to be used in the fuse-caller-save optmization. This is the updated version

Re: -fuse-caller-save - Collect register usage information

2014-05-19 Thread Tom de Vries
the collected register usage information, so it seems a good location to do an early-out. I've left it in for now. Bootstrapped and reg-tested on x86_64. non-cgraph part OK for trunk? Thanks, - Tom 2014-05-19 Radovan Obradovic robrado...@mips.com Tom de Vries t...@codesourcery.com

Don't dump low gimple functions in gimple dump

2014-05-20 Thread Tom de Vries
. OK for trunk ? Thanks, - Tom 2014-05-19 Tom de Vries t...@codesourcery.com * cgraphunit.c (cgraph_add_new_function): Dump message on new function. (analyze_function): Don't dump function to gimple dump file. * gimplify.c: Add tree-dump.h include. (gimplify_function_tree): Dump function

Re: -fuse-caller-save - Collect register usage information

2014-05-29 Thread Tom de Vries
warning that becomes an error during stage 3. Bill, thanks for letting me know. I've bootstrapped attached patch on x86_64, and committed it. Thanks, - Tom 2014-05-29 Tom de Vries t...@codesourcery.com * final.c (collect_fn_hard_reg_usage): Guard variable declaration with #ifdef STACK_REGS

Re: [PATCH 7/7] Move SYMBOL_REF_FLAGS to rtx header

2014-05-29 Thread Tom de Vries
. ... It looks like BLOCK_SYMBOL_CHECK hasn't been updated. Patch below fixes it for me. OK for trunk if bootstrap on x86_64 succeeds? Thanks, - Tom 2014-05-29 Tom de Vries t...@codesourcery.com * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS. --- gcc/rtl.h | 2 +- 1 file changed, 1 insertion

  1   2   3   4   5   6   7   8   9   10   >