This patch makes regrename use a similar mask-and-clobber-set
pair to IRA when tracking whether registers are clobbered by
calls in a region. Testing for a nonzero ABI mask is equivalent
to testing for a register that crosses a call.
Since AArch64 and c6x use regrename.h, they need to be updated
The inheritance code in find_equiv_reg can use clobbers_reg_p
to test whether a call clobbers either of the equivalent registers.
reload and find_reg use crtl->abi to test whether a register needs
to be saved in the prologue before use.
reload_as_needed can use full_and_partial_reg_clobbers and t
The reg_set_p part is simple, since the caller is asking about
a specific REG rtx, with a known register number and mode.
The find_all_hard_reg_sets part emphasises that the "implicit"
behaviour was always a bit suspect, since it includes fully-clobbered
registers but not partially-clobbered regis
This is a straight replacement of an existing "full or partial"
call-clobber check.
2019-09-11 Richard Sandiford
gcc/
* sched-deps.c (deps_analyze_insn): Use the ABI of the target
function to test whether a register is fully or partly clobbered.
Index: gcc/sched-deps.c
==
The main change here is to replace a crosses_call boolean with
a bitmask of the ABIs used by the crossed calls. For space reasons,
I didn't also add a HARD_REG_SET that tracks the set of registers
that are actually clobbered, which means that this is the one part
of the series that doesn't benefit
This is a straight replacement of "calls we can clobber without saving
them first".
2019-09-11 Richard Sandiford
gcc/
* shrink-wrap.c: Include function-abi.h.
(requires_stack_frame_p): Use crtl->abi to test whether the
current function can use a register without saving
The previous patches removed all target-independent uses of
regs_invalidated_by_call, call_used_or_fixed_regs and
call_used_or_fixed_reg_p. This patch therefore restricts
them to target-specific code (and reginfo.c, which sets them up).
2019-09-11 Richard Sandiford
gcc/
* hard-reg-se
On 9/11/19 8:30 PM, Richard Biener wrote:
> On September 11, 2019 7:41:22 PM GMT+02:00, Bernd Edlinger
> wrote:
>> On 9/11/19 6:08 PM, Jeff Law wrote:
>>> On 9/11/19 7:49 AM, Bernd Edlinger wrote:
On 9/11/19 9:23 AM, Richard Biener wrote:
> On Tue, 10 Sep 2019, Bernd Edlinger wrote:
Hi Jeff,
On 09/09/2019 19:55, Jeff Law wrote:
> I'm not sure if we really want to expose this as a first class option.
> Perhaps a PARAM would be better. Jan would have the final call though
> since he's done the most work on the IPA bits.
Many thanks for the suggestion - I could turn it into a
Hi Mike.
Thanks for the review.
On Aug 29, 2019, at 8:13 AM, Jose E. Marchesi
wrote:
>
> This patch adds a new dg_require_effective_target procedure to the
> testsuite infrastructure: indirect_calls. This new function tells
> whether a target supports calls to non-constan
On Aug 29, 2019, at 8:13 AM, Jose E. Marchesi
wrote:
>
> This patch annotates tests that make use of a significant a mount of
> stack space.
Ok. Future changes like this are now obvious to you and you can
just maintain them as you see fit.
Ok thanks.
This patch is a followup to PR testsuite/83889, in which it was noted that
"The failures in this PR were from forcing { dg-do run } even when
vect.exp chooses options that are incompatible with the runtime.
The default vect.exp behaviour is to execute when possible, so there's
no need for a dg-do
This ICEs since r267272 - more location wrapper nodes, but not because we can't
cope with new location wrappers, but because that commit introduced a call to
maybe_constant_value in cp_build_array_ref. In this testcase we call it with
f (VIEW_CONVERT_EXPR("BAR")) ? 1 : 0
argument and that cras
Hi Steve,
Being an allocatable component, this code appears on entry into scope:
my_core.msg = 0B;
my_core._msg_length = 0;
{
Thus, according to the standard, my_core%msg is defined.
If you follow the backtrace from the ICE, you will see that something
like the patch is required. It is im
On Wed, Sep 11, 2019 at 11:27:56PM +0100, Paul Richard Thomas wrote:
> Hi Steve,
>
> Being an allocatable component, this code appears on entry into scope:
>
> my_core.msg = 0B;
> my_core._msg_length = 0;
> {
>
> Thus, according to the standard, my_core%msg is defined.
>
I'll politely def
On Wed, 11 Sep 2019, Lewis Hyatt wrote:
> things that may be a little surprising. For instance, you can take a
> UTF-8 encoded file and insert a backslash line continuation in the
> middle of a multibyte sequence, and gcc will happily paste it back
> together and then interpret the resulting UTF-8
On Aug 29, 2019, at 8:13 AM, Jose E. Marchesi wrote:
>
> This patch makes the several effective target checks in
> target-supports.exp to be aware of eBPF targets.
Ok.
These sort of updates will now be obvious to you, now that you have gotten your
feet wet. This applies to the indirect calls
On Wed, Sep 11, 2019 at 02:18:36PM +0200, Eric Botcazou wrote:
> > What does it mean for
> > (set (reg:QI) (const_int -128))
> > for example? This is the canonical form of moving positive 128 into a
> > register as well, of course.
>
> Nothing, since word_register_operation_p returns false on C
On Sep 11, 2019, at 1:47 PM, Jose E. Marchesi wrote:
>
> I am working on a new compilation mode for what I call xbpf, which is
> basically eBPF plus extensions to eliminate the current restrictions to
> C. The purpose of -mxbpf is mainly to test the compiler. Once the
> support is in, I will re
On Wed, Sep 11, 2019 at 08:08:38PM +0100, Richard Sandiford wrote:
>hard_reg_set_iterator hrsi;
> - EXECUTE_IF_SET_IN_HARD_REG_SET (regs_invalidated_by_call, 0, i, hrsi)
> + EXECUTE_IF_SET_IN_HARD_REG_SET (abi.full_and_partial_reg_clobbers (),
> +
101 - 120 of 120 matches
Mail list logo