[26/32] Remove global call sets: regrename.c

2019-09-11 Thread Richard Sandiford
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

[27/32] Remove global call sets: reload.c

2019-09-11 Thread Richard Sandiford
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

[00/32] Remove global call sets: rtlanal.c

2019-09-11 Thread Richard Sandiford
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

[29/32] Remove global call sets: sched-deps.c

2019-09-11 Thread Richard Sandiford
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 ==

[30/32] Remove global call sets: sel-sched.c

2019-09-11 Thread Richard Sandiford
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

[31/32] Remove global call sets: shrink-wrap.c

2019-09-11 Thread Richard Sandiford
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

[32/32] Hide regs_invalidated_by_call etc.

2019-09-11 Thread Richard Sandiford
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

Re: [PATCH] Fix PR 91708

2019-09-11 Thread Bernd Edlinger
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:

Re: [RFC PATCH] Add inlining growth bias flag

2019-09-11 Thread Graham Markall
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

Re: [PATCH V6 04/11] testsuite: new require effective target indirect_calls

2019-09-11 Thread Jose E. Marchesi
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

Re: [PATCH V6 03/11] testsuite: annotate c-torture/compile tests with dg-require-stack-size

2019-09-11 Thread Jose E. Marchesi
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.

[testsuite, obvious] Remove explicit "dg-do run" from more gcc.dg/vect tests

2019-09-11 Thread Sandra Loosemore
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

C++ PATCH for c++/91740 - ICE with constexpr call and ?: in ARRAY_REF

2019-09-11 Thread Marek Polacek
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

Re: [Patch, fortran] PR91717 - ICE on concatenating deferred-length character and character literal

2019-09-11 Thread Paul Richard Thomas
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

Re: [Patch, fortran] PR91717 - ICE on concatenating deferred-length character and character literal

2019-09-11 Thread Steve Kargl
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

Re: Patch to support extended characters in C/C++ identifiers

2019-09-11 Thread Joseph Myers
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

[PATCH V6 08/11] bpf: make target-supports.exp aware of eBPF

2019-09-11 Thread Mike Stump
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

Re: Fix PR rtl-optimization/89795

2019-09-11 Thread Segher Boessenkool
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

Re: [PATCH V6 04/11] testsuite: new require effective target indirect_calls

2019-09-11 Thread Mike Stump
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

Re: [10/32] Remove global call sets: combine.c

2019-09-11 Thread Segher Boessenkool
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 (), > +

<    1   2