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,
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
. 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
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
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
[ 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
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
.
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
$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
/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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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
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.
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
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
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
.
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
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
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
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
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
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
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
[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
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
-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
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
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
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
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
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
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
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
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
.
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
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
.
...
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 - 100 of 2295 matches
Mail list logo