On Sun, Oct 22, 2023 at 2:13 AM Andrew Pinski wrote:
>
> From: Andrew Pinski
>
> This patch moves the `(a-b) CMP 0 ? (a-b) : (b-a)` optimization
> from fold_cond_expr_with_comparison to match.
>
> Bootstrapped and tested on x86_64-linux-gnu.
OK.
> Changes in:
> v2: Removes `(a == b) ? 0 : (b -
On Mon, Oct 23, 2023 at 12:22 AM Andrew Pinski wrote:
>
> While working on PR c/111903, I Noticed that
> convert will convert integer_zero_node to that
> type after an error instead of returning error_mark_node.
> From what I can tell this was the old way of not having
> error recovery since other
On Mon, Oct 23, 2023 at 2:56 AM Mark Harmstone wrote:
>
> STABS and xcoff have been removed, but are still in debug_type_names,
> which ought to match debug_type_masks. This results in the following
> minor bug with GCC 13:
>
> $ x86_64-pc-linux-gnu-gcc -gvms -c tmp.c
> cc1: error: target system d
On Fri, Oct 20, 2023 at 10:41 PM Qing Zhao wrote:
>
>
>
> > On Oct 20, 2023, at 3:10 PM, Siddhesh Poyarekar wrote:
> >
> > On 2023-10-20 14:38, Qing Zhao wrote:
> >> How about the following:
> >> Add one more parameter to __builtin_dynamic_object_size(), i.e
> >> __builtin_dynamic_object_size (
On Sat, Oct 21, 2023 at 9:17 AM Alexandre Oliva wrote:
>
> On Oct 20, 2023, Richard Biener wrote:
>
> >> * tree-eh.h (make_eh_edges): Rename to...
> >> (make_eh_edge): ... this.
> >> * tree-eh.cc: Likewise. Adjust all callers.
>
> Once the above goes
On Sat, 21 Oct 2023, J?rgen Kvalsvik wrote:
> On 05/10/2023 22:39, J?rgen Kvalsvik wrote:
> > On 05/10/2023 21:59, Jan Hubicka wrote:
> >>>
> >>> Like Wahlen et al this implementation records coverage in fixed-size
> >>> bitsets which gcov knows how to interpret. This is very fast, but
> >>> intro
On Fri, 20 Oct 2023, Tamar Christina wrote:
> Hi All,
>
> The previous patch tried to remove PHI nodes that dominated the first loop,
> however the correct fix is to only remove .MEM nodes.
>
> This patch thus makes the condition a bit stricter and only tries to remove
> MEM phi nodes.
>
> I co
The unswitching code to hoist guards inserts conditions in wrong
places. The following fixes this, simplifying code.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
PR tree-optimization/111917
* tree-ssa-loop-unswitch.cc (hoist_guard): Always insert
new condi
On Fri, 20 Oct 2023, Andrew Stubbs wrote:
> This patch fixes a wrong-code bug on amdgcn in which the excess "ones" in the
> mask enable extra lanes that were supposed to be unused and are therefore
> undefined.
>
> Richi suggested an alternative approach involving narrower types and then a
> zero
LE_CYCLE (reduc_info);
> @@ -8335,14 +8425,20 @@ vect_transform_reduction (loop_vec_info loop_vinfo,
>tree scalar_dest = gimple_get_lhs (stmt_info->stmt);
>tree vec_dest = vect_create_destination_var (scalar_dest, vectype_out);
>
> + /* Get NCOPIES vector definitions for all operands except the reduction
> + definition. */
>vect_get_vec_defs (loop_vinfo, stmt_info, slp_node, ncopies,
>single_defuse_cycle && reduc_index == 0
>? NULL_TREE : op.ops[0], &vec_oprnds0,
>single_defuse_cycle && reduc_index == 1
>? NULL_TREE : op.ops[1], &vec_oprnds1,
> - op.num_ops == 3
> - && !(single_defuse_cycle && reduc_index == 2)
> + op.num_ops == 4
> + || (op.num_ops == 3
> + && !(single_defuse_cycle && reduc_index == 2))
>? op.ops[2] : NULL_TREE, &vec_oprnds2);
> +
> + /* For single def-use cycles get one copy of the vectorized reduction
> + definition. */
>if (single_defuse_cycle)
> {
>gcc_assert (!slp_node);
> @@ -8382,7 +8478,7 @@ vect_transform_reduction (loop_vec_info loop_vinfo,
> }
>else
> {
> - if (op.num_ops == 3)
> + if (op.num_ops >= 3)
> vop[2] = vec_oprnds2[i];
>
> if (masked_loop_p && mask_by_cond_expr)
> @@ -8395,10 +8491,16 @@ vect_transform_reduction (loop_vec_info loop_vinfo,
> if (emulated_mixed_dot_prod)
> new_stmt = vect_emulate_mixed_dot_prod (loop_vinfo, stmt_info, gsi,
> vec_dest, vop);
> - else if (code.is_internal_fn ())
> +
> + else if (code.is_internal_fn () && !cond_fn_p)
> new_stmt = gimple_build_call_internal (internal_fn (code),
> op.num_ops,
> vop[0], vop[1], vop[2]);
> + else if (code.is_internal_fn () && cond_fn_p)
> + new_stmt = gimple_build_call_internal (internal_fn (code),
> +op.num_ops,
> +vop[0], vop[1], vop[2],
> +vop[1]);
> else
> new_stmt = gimple_build_assign (vec_dest, tree_code (op.code),
> vop[0], vop[1], vop[2]);
> diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
> index a4043e4a656..254d172231d 100644
> --- a/gcc/tree-vectorizer.h
> +++ b/gcc/tree-vectorizer.h
> @@ -2350,7 +2350,7 @@ extern tree vect_create_addr_base_for_vector_ref
> (vec_info *,
> tree);
>
> /* In tree-vect-loop.cc. */
> -extern tree neutral_op_for_reduction (tree, code_helper, tree);
> +extern tree neutral_op_for_reduction (tree, code_helper, tree, bool = true);
> extern widest_int vect_iv_limit_for_partial_vectors (loop_vec_info
> loop_vinfo);
> bool vect_rgroup_iv_might_wrap_p (loop_vec_info, rgroup_controls *);
> /* Used in tree-vect-loop-manip.cc */
>
--
Richard Biener
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)
On Mon, Oct 23, 2023 at 10:48 AM liuhongt wrote:
>
> Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}.
> Ready push to trunk.
vcond and vcondeq shouldn't be necessary if there's
vcond_mask and vcmp support which is the "modern"
way of handling vcond. Unless the ISA really can do
compare
On Mon, Oct 23, 2023 at 1:27 PM Siddhesh Poyarekar wrote:
>
> On 2023-10-23 03:57, Richard Biener wrote:
> > On Fri, Oct 20, 2023 at 10:41 PM Qing Zhao wrote:
> >>
> >>
> >>
> >>> On Oct 20, 2023, at 3:10 PM, Siddhesh Poyarekar
> >&
The following addresses a mismatch in SSA name vs. symbol when
we emit a dummy assignment when not optimizing. The temporary
we create is not remapped by initialize_inlined_parameters because
we have no easy way to get at it. The following instead emits
the additional statement after we have rema
The change to allow SLP of non-grouped accesses failed to check
for the case of mixing with grouped accesses.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
PR tree-optimization/111915
* tree-vect-slp.cc (vect_build_slp_tree_1): Check all
accesses are either
The following adjusts a leftover BIT_FIELD_REF special-casing to only
cover the cases general code doesn't handle.
Boostrapped and tested on x86_64-unknown-linux-gnu, pushed.
PR tree-optimization/111916
* tree-sra.cc (sra_modify_assign): Do not lower all
BIT_FIELD_REF read
> Am 23.10.2023 um 16:56 schrieb Qing Zhao :
>
>
>
>> On Oct 23, 2023, at 3:57 AM, Richard Biener
>> wrote:
>>
>>> On Fri, Oct 20, 2023 at 10:41 PM Qing Zhao wrote:
>>>
>>>
>>>
>>>> On Oct 20, 2023, at
On Tue, Oct 24, 2023 at 1:04 AM Andrew Pinski wrote:
>
> So this pattern needs a little help on the gimple side of things to know what
> the type popcount should be. For most builtins, the type is the same as the
> input
> but popcount and others are not. And when using it with another outer
> e
On Tue, Oct 24, 2023 at 7:44 AM Hongtao Liu wrote:
>
> On Tue, Oct 24, 2023 at 1:23 PM Hongtao Liu wrote:
> >
> > On Tue, Oct 24, 2023 at 10:53 AM Hongtao Liu wrote:
> > >
> > > On Mon, Oct 23, 2023 at 8:35 PM Richard Biener
> > > wrote:
>
On Tue, Oct 24, 2023 at 8:45 AM Andrew Pinski wrote:
>
> In the case of a NOP conversion (precisions of the 2 types are equal),
> factoring out the conversion can be done even if int_fits_type_p returns
> false and even when the conversion is defined by a statement inside the
> conditional. Since
On Mon, Oct 23, 2023 at 6:41 PM Sergei Trofimovich wrote:
>
> On Mon, 23 Oct 2023 13:54:01 +0100
> Iain Sandoe wrote:
>
> > hi Sergei,
> >
> > > On 23 Oct 2023, at 13:43, Sergei Trofimovich wrote:
> > >
> > > From: Sergei Trofimovich
> > >
> > > To build `libc` for a target one needs to build `
On Mon, Oct 23, 2023 at 9:26 PM Marek Polacek wrote:
>
> On Thu, Oct 19, 2023 at 02:24:11PM +0200, Richard Biener wrote:
> > On Wed, Oct 11, 2023 at 10:48 PM Marek Polacek wrote:
> > >
> > > On Tue, Sep 19, 2023 at 10:58:19AM -0400, Marek Polacek wrote:
> > &g
> Am 24.10.2023 um 22:38 schrieb Martin Uecker :
>
> Am Dienstag, dem 24.10.2023 um 20:30 + schrieb Qing Zhao:
>> Hi, Sid,
>>
>> Really appreciate for your example and detailed explanation. Very helpful.
>> I think that this example is an excellent example to show (almost) all the
>> iss
> Am 25.10.2023 um 10:16 schrieb Martin Uecker :
>
> Am Mittwoch, dem 25.10.2023 um 08:43 +0200 schrieb Richard Biener:
>>
>>>> Am 24.10.2023 um 22:38 schrieb Martin Uecker :
>>>
>>> Am Dienstag, dem 24.10.2023 um 20:30 + schrieb Qing Zha
> Am 25.10.2023 um 12:47 schrieb Martin Uecker :
>
> Am Mittwoch, dem 25.10.2023 um 06:25 -0400 schrieb Siddhesh Poyarekar:
>>> On 2023-10-25 04:16, Martin Uecker wrote:
>>> Am Mittwoch, dem 25.10.2023 um 08:43 +0200 schrieb Richard Biener:
>>>>
>
> Am 25.10.2023 um 16:50 schrieb Siddhesh Poyarekar :
>
> On 2023-10-25 09:27, Qing Zhao wrote:
On Oct 24, 2023, at 7:56 PM, Siddhesh Poyarekar
wrote:
>>>
>>> On 2023-10-24 18:51, Qing Zhao wrote:
Thanks for the proposal!
So what you suggested is:
For every x.buf,
On Thu, Oct 26, 2023 at 3:15 AM liuhongt wrote:
>
> >I think it's indeed on purpose that the result of v1 < v2 is a signed
> >integer vector type.
> >But build_vec_cmp should not use the truth type for the result but instead
> >the
> >truth type for the comparison, so
>
> Change build_vec_cmp in
On Thu, Oct 26, 2023 at 4:18 AM wrote:
>
> From: Pan Li
>
> Update in v2:
>
> * Fix one ICE of type assertion.
> * Adjust some test cases for aarch64 sve and riscv vector.
>
> Original log:
>
> The vectoriable_call has one restriction of the size of data type.
> Aka DF to DI is allowed but SF to
On Wed, Oct 25, 2023 at 8:16 PM Martin Uecker wrote:
>
> Am Mittwoch, dem 25.10.2023 um 13:13 +0200 schrieb Richard Biener:
> >
> > > Am 25.10.2023 um 12:47 schrieb Martin Uecker :
> > >
> > > Am Mittwoch, dem 25.10.2023 um 06:25 -0400 schrieb Siddhesh P
On Thu, Oct 26, 2023 at 7:22 AM Jakub Jelinek wrote:
>
> On Wed, Oct 25, 2023 at 07:03:43PM +, Qing Zhao wrote:
> > For the code generation impact:
> >
> > turning the original x.buf
> > to a builtin function call
> > __builtin_with_access_and_size(x,buf, x.L,-1)
> >
> > might inhibit some op
On Wed, Oct 25, 2023 at 5:37 AM Andrew Pinski wrote:
>
> This adds a match pattern for `a != C1 ? abs(a) : C2` which gets simplified
> to `abs(a)`. if C1 was originally *_MIN then change it over to use absu
> instead
> of abs.
>
> Bootstrapped and tested on x86_64-linux-gnu with no regressions.
>
On Wed, Oct 25, 2023 at 5:51 AM Andrew Pinski wrote:
>
> I noticed we were missing optimizing `a / (1 << b)` when
> we know that a is nonnegative but only due to ranger information.
> This adds the use of the global ranger to tree_single_nonnegative_warnv_p
> for SSA_NAME.
> I didn't extend tree_s
On Mon, Oct 23, 2023 at 2:57 AM Mark Harmstone wrote:
>
> This patch and the following add initial support for Microsoft's
> CodeView debugging format, as used by MSVC, to mingw targets.
A high-level question - it seems there's almost no information in the
codeview sections,
so is that debug form
> Am 26.10.2023 um 14:21 schrieb Andrew Pinski :
>
> On Thu, Oct 26, 2023 at 2:24 AM Richard Biener
> wrote:
>>
>>> On Wed, Oct 25, 2023 at 5:37 AM Andrew Pinski wrote:
>>>
>>> This adds a match pattern for `a != C1 ? abs(a) : C2` whi
e is certainly
not correct unconditionally here (the target might not support that)
> Pan
>
> -Original Message-
> From: Richard Biener
> Sent: Thursday, October 26, 2023 4:38 PM
> To: Li, Pan2
> Cc: gcc-patches@gcc.gnu.org; juzhe.zh...@rivai.ai; Wang, Yanzhang
>
> Am 26.10.2023 um 12:14 schrieb Martin Uecker :
>
> Am Donnerstag, dem 26.10.2023 um 11:20 +0200 schrieb Martin Uecker:
>>> Am Donnerstag, dem 26.10.2023 um 10:45 +0200 schrieb Richard Biener:
>>> On Wed, Oct 25, 2023 at 8:16 PM Martin Uecker wrote:
>>>&g
> Am 24.10.2023 um 13:22 schrieb liuhongt :
>
> This is the backport patch for releases/gcc-13 branch, the original patch
> for main trunk
> is at [1].
> The only difference between this backport patch and [1] is GCC13 doesn't
> support auto_mpz,
> So this patch manually use mpz_init/mpz_cle
> Am 26.10.2023 um 16:58 schrieb Qing Zhao :
>
>
>
>> On Oct 26, 2023, at 4:56 AM, Richard Biener
>> wrote:
>>
>>> On Thu, Oct 26, 2023 at 7:22 AM Jakub Jelinek wrote:
>>>
>>> On Wed, Oct 25, 2023 at 07:03:43PM +0
> Am 26.10.2023 um 13:51 schrieb Siddhesh Poyarekar :
>
> On 2023-10-26 04:37, Martin Uecker wrote:
>> Hi Sid and Jakub,
>> here is the patch discussed in PR 109334.
>
> I can't approve, but here's a review:
Ok
Thanks for the review,
Richard
>> Martin
>> tree-optimization/109334: Impr
> Am 24.10.2023 um 21:09 schrieb Marek Polacek :
>
> On Tue, Oct 24, 2023 at 09:22:25AM +0200, Richard Biener wrote:
>>> On Mon, Oct 23, 2023 at 9:26 PM Marek Polacek wrote:
>>>
>>> On Thu, Oct 19, 2023 at 02:24:11PM +0200, Richard Biener wrote:
>>
> Am 26.10.2023 um 19:05 schrieb Martin Uecker :
>
> Am Donnerstag, dem 26.10.2023 um 16:41 + schrieb Qing Zhao:
>>
>>>> On Oct 26, 2023, at 5:20 AM, Martin Uecker wrote:
>>>
>>> Am Donnerstag, dem 26.10.2023 um 10:45 +0200 schrieb Richard
> Am 27.10.2023 um 07:50 schrieb liuhongt :
>
> When 2 vectors are equal, kmask is allones and kortest will set CF,
> else CF will be cleared.
>
> So CF bit can be used to check for the result of the comparison.
>
> Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}.
> Ok for trunk?
I
> Am 26.10.2023 um 23:10 schrieb Andrew Pinski :
>
> From: Andrew Pinski
>
> I noticed we were missing these simplifications so let's add them.
>
> This adds the following simplifications:
> U & N <= U -> true
> U & N > U -> false
> When U is known to be as non-negative.
>
> When N is a
> Am 27.10.2023 um 09:13 schrieb Hongtao Liu :
>
> On Fri, Oct 27, 2023 at 2:49 PM Richard Biener
> wrote:
>>
>>
>>
>>>> Am 27.10.2023 um 07:50 schrieb liuhongt :
>>>
>>> When 2 vectors are equal, kmask is allones and kortest
On Thu, Oct 26, 2023 at 8:30 PM Andrew Pinski wrote:
>
> On Thu, Oct 26, 2023 at 2:29 AM Richard Biener
> wrote:
> >
> > On Wed, Oct 25, 2023 at 5:51 AM Andrew Pinski wrote:
> > >
> > > I noticed we were missing optimizing `a / (1 << b)` when
> &
returns an IFN but that function should have the very same check when
vectype_out isn't
participating in the optab selection.
Richard.
>
> Pan
>
> -Original Message-----
> From: Richard Sandiford
> Sent: Friday, October 27, 2023 1:47 AM
> To: Richard Biener
> Cc: Li, Pan2
On Thu, Oct 26, 2023 at 5:44 PM Alexandre Oliva wrote:
>
>
> Control flow redundancy may choose abnormal edges for early checking,
> but that breaks because we can't insert checks on such edges.
>
> Introduce conditional checking on the dest block of abnormal edges,
> and leave it for the optimize
On Sun, Oct 29, 2023 at 5:41 PM Andrew Pinski wrote:
>
> This moves the value_replacement support for jump_function_from_stmt
> to match pattern.
> This allows us to optimize things earlier in phiopt1 rather than waiting
> to phiopt2. Which means phiopt1 needs to be disable for vrp03.c testcase.
>
On Sun, Oct 29, 2023 at 5:41 PM Andrew Pinski wrote:
>
> This moves a few more value_replacements simplifications to match.
> /* a == 1 ? b : a * b -> a * b */
> /* a == 1 ? b : b / a -> b / a */
> /* a == -1 ? b : a & b -> a & b */
>
> Also adds a testcase to show can we catch these where value_
On Sun, Oct 29, 2023 at 5:41 PM Andrew Pinski wrote:
>
> This moves a few simple patterns that are done in value replacement
> in phiopt over to match.pd. Just the simple ones which might show up
> in other code.
>
> This allows some optimizations to happen even without depending
> on sinking from
Pushed.
PR testsuite/111462
gcc/testsuite/
* gcc.dg/tree-ssa/ssa-sink-18.c: XFAIL also powerpc64le.
---
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c
b/gcc/testsu
On Fri, Oct 27, 2023 at 4:28 PM Thomas Schwinge wrote:
>
> Hi!
>
> Richard, as the original author of 'SSA_NAME_POINTS_TO_READONLY_MEMORY':
> 2018 commit 6214d5c7e7470bdd5ecbeae668c2522551bfebbc (Subversion r263958)
> "Move const_parm trick to generic code"; 'gcc/tree.h':
>
> /* Nonzero if thi
On Fri, Oct 27, 2023 at 6:39 PM Roger Sayle wrote:
>
>
> A minor tweak to the documentation, to use git rather than cvs to obtain
> the latest version of newlib. Ok for mainline?
OK
>
> 2023-10-27 Roger Sayle
>
> * htdocs/simtest-howto.html: Use git to obtain newlib.
>
> Cheers,
> Ro
We have a support case that shows GCC 7 sometimes creates
DW_TAG_label refering to itself via a DW_AT_abstract_origin
when using LTO. This for example triggers the sanity check
added below during LTO bootstrap.
Making this check cover more than just DW_AT_abstract_origin
breaks bootstrap on trunk
On Mon, Oct 30, 2023 at 3:43 PM FX Coudert wrote:
>
> Hi,
>
> The test is currently failing on x86_64-apple-darwin.
> Marking the test as requiring ifunc fixes the issue.
>
> OK to push?
OK.
>
> FX
>
after return
> and argument types have been vectorized, create adjustments and
> return array after the hook.
> (expand_simd_clones): Call TARGET_SIMD_CLONE_ADJUST after return
> and argument types have been vectorized.
>
> On 04/10/2023 13:40, Andre V
The following adjusts final value replacement to also rewrite the
replacement to defined overflow behavior if there's conditionally
evaluated stmts (with possibly undefined overflow), not only when
we "folded casts". The patch hooks into expression_expensive for
this.
Bootstrapped and tested on x
On Thu, 26 Oct 2023, Juzhe-Zhong wrote:
> This patch leverage current MASK_GATHER_LOAD to support SLP
> MASK_LEN_GATHER_LOAD with condtional mask.
>
> Unconditional MASK_LEN_GATHER_LOAD (base, offset, scale, zero, -1) SLP is not
> included in this patch
> since it seems that we can't support it
On Mon, Oct 30, 2023 at 1:23 PM wrote:
>
> From: Pan Li
>
> Update in v3:
>
> * Add func to predicate type size is legal or not for vectorizer call.
>
> Update in v2:
>
> * Fix one ICE of type assertion.
> * Adjust some test cases for aarch64 sve and riscv vector.
>
> Original log:
>
> The vector
On Tue, 31 Oct 2023, Thomas Schwinge wrote:
> Hi!
>
> On 2023-10-19T11:47:14+, Richard Biener wrote:
> > The following implements SLP vectorization support for gathers
> > without relying on IFNs being pattern detected (and supported by
> > the target). That in
On Sun, Oct 8, 2023 at 6:40 PM Di Zhao OS wrote:
>
> Attached is a new version of the patch.
>
> > -Original Message-
> > From: Richard Biener
> > Sent: Friday, October 6, 2023 5:33 PM
> > To: Di Zhao OS
> > Cc: gcc-patches@gcc.gnu.org
> &g
> Am 31.10.2023 um 16:10 schrieb pan2...@intel.com:
>
> From: Pan Li
>
> Update in v4:
>
> * Append the check to vectorizable_internal_function.
>
> Update in v3:
>
> * Add func to predicate type size is legal or not for vectorizer call.
>
> Update in v2:
>
> * Fix one ICE of type asser
On Tue, Oct 31, 2023 at 8:05 PM Martin Uecker wrote:
>
>
> This is a revised part of previously posted patch which
> I split up. C FE changes which another false positive
> were already merged, but I still need approval for this
> middle-end change. It would be nice to get this in,
> because it
On Tue, 31 Oct 2023, Robin Dapp wrote:
> >> +int
> >> +internal_fn_else_index (internal_fn fn)
> >
> > The function needs a comment, maybe:
> >
> > /* If FN is an IFN_COND_* or IFN_COND_LEN_* function, return the index of
> > the
> >argument that is used when the condition is false. Return
On Wed, Nov 1, 2023 at 3:47 PM Qing Zhao wrote:
>
>
>
> > On Oct 31, 2023, at 6:14 PM, Joseph Myers wrote:
> >
> > On Tue, 31 Oct 2023, Qing Zhao wrote:
> >
> >> 2.3 A new semantic requirement in the user documentation of "counted_by"
> >>
> >> For the following structure including a FAM with a c
On Wed, Nov 1, 2023 at 7:16 PM Brendan Shanks wrote:
>
> Polite ping on this.
OK.
Thanks,
Richard.
> > On Oct 4, 2023, at 11:28 AM, Brendan Shanks wrote:
> >
> > Hi,
> >
> > This patch implements pex_unix_exec_child using posix_spawn when
> > available.
> >
> > This should especially benefit r
On Thu, Nov 2, 2023 at 4:15 AM wrote:
>
> From: Pan Li
>
> The extract_low_bits only try the scalar mode if the bitsize of
> the mode and src_mode is not equal. When vector mode is given
> from get_stored_val in DSE, it will always fail and return NULL_RTX.
>
> This patch would like to allow the
On Thu, Nov 2, 2023 at 9:27 AM Jakub Jelinek wrote:
>
> On Thu, Nov 02, 2023 at 08:57:36AM +0100, Richard Biener wrote:
> > You probably want to specify that when a pointer to the array is taken the
> > pointer has to be to the first array element (or do we want to ma
On Thu, Nov 2, 2023 at 10:03 AM Sam James wrote:
>
> Say 'memory lifetime' rather than 'memory life' as lifetime is the more
> standard term nowadays (indeed we have e.g. -fno-lifetime-dse).
>
> It's also easier to grep for if someone is looking for the documentation on
> where we do that.
OK
>
The following addresses wrong debug IL created by SCCP rewriting stmts
to defined overflow. I addressed another inefficiency there but
needed to adjust the API of rewrite_to_defined_overflow for this
which is now taking a stmt iterator for in-place operation and a
stmt for sequence producing becau
if (mask_index >= 0
> && !vect_check_scalar_mask (vinfo, stmt_info, slp_node, mask_index,
> - &mask, NULL, &mask_dt, &mask_vectype))
> + &mask, &slp_op, &mask_dt, &mask_vectype))
> retu
On Thu, Nov 2, 2023 at 11:25 AM Sam James wrote:
>
>
> Richard Biener writes:
>
> > On Thu, Nov 2, 2023 at 10:03 AM Sam James wrote:
> >>
> >> Say 'memory lifetime' rather than 'memory life' as lifetime is the more
> >&
On Thu, Nov 2, 2023 at 11:40 AM Jakub Jelinek wrote:
>
> On Thu, Nov 02, 2023 at 11:18:09AM +0100, Richard Biener wrote:
> > > Or, if we want to pay further price, .ACCESS_WITH_SIZE could take as one
> > > of
> > > the arguments not the size value, but its addre
SK_VECTYPE. */
> + if (mask_index >= 0 && slp_node && mask_dt == vect_constant_def
> + && !vect_maybe_update_slp_op_vectype (slp_op, mask_vectype))
> + gcc_unreachable ();
You shouldn't do this here. Theres code in if (costing_p) that
w
6)
> + (with { tree op_type = TREE_TYPE (@4); }
> + (if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op),
> op_type)
> + && is_truth_type_for (op_type, TREE_TYPE (@0))
> + && single_use (@4))
> +(view_convert (cond_op (bit_not @0) @2 @3 (view_convert:op_type @1) @5
> @6))
> +
> +(for uncond_op (UNCOND_TERNARY)
> + cond_op (COND_LEN_TERNARY)
> + (simplify
> + (IFN_VCOND_MASK_LEN @0 (view_convert? (uncond_op@5 @1 @2 @3)) @4 @6 @7)
> + (with { tree op_type = TREE_TYPE (@5); }
> + (if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op),
> op_type)
> + && is_truth_type_for (op_type, TREE_TYPE (@0))
> + && single_use (@5))
> +(view_convert (cond_op @0 @1 @2 @3 (view_convert:op_type @4) @6 @7)
> + (simplify
> + (IFN_VCOND_MASK_LEN @0 @1 (view_convert? (uncond_op@5 @2 @3 @4 @6 @7)))
> + (with { tree op_type = TREE_TYPE (@5); }
> + (if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op),
> op_type)
> + && is_truth_type_for (op_type, TREE_TYPE (@0))
> + && single_use (@5))
> +(view_convert (cond_op (bit_not @0) @2 @3 @4 (view_convert:op_type @1)
> @6 @7))
> #endif
>
> /* Detect cases in which a VEC_COND_EXPR effectively replaces the
> diff --git a/gcc/optabs.def b/gcc/optabs.def
> index 2ccbe4197b7..8d5ceeb8710 100644
> --- a/gcc/optabs.def
> +++ b/gcc/optabs.def
> @@ -282,6 +282,7 @@ OPTAB_D (cond_len_fnma_optab, "cond_len_fnma$a")
> OPTAB_D (cond_len_fnms_optab, "cond_len_fnms$a")
> OPTAB_D (cond_len_neg_optab, "cond_len_neg$a")
> OPTAB_D (cond_len_one_cmpl_optab, "cond_len_one_cmpl$a")
> +OPTAB_D (vcond_mask_len_optab, "vcond_mask_len_$a")
> OPTAB_D (cmov_optab, "cmov$a6")
> OPTAB_D (cstore_optab, "cstore$a4")
> OPTAB_D (ctrap_optab, "ctrap$a4")
>
--
Richard Biener
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)
(internal_fn, tree, tree, int);
> extern bool internal_check_ptrs_fn_supported_p (internal_fn, tree,
> poly_uint64, unsigned int);
> #define VECT_PARTIAL_BIAS_UNSUPPORTED 127
> diff --git a/gcc/optabs.def b/gcc/optabs.def
> index 2ccbe
On Thu, Nov 2, 2023 at 2:50 PM Qing Zhao wrote:
>
>
>
> > On Nov 2, 2023, at 3:57 AM, Richard Biener
> > wrote:
> >
> > On Wed, Nov 1, 2023 at 3:47 PM Qing Zhao wrote:
> >>
> >>
> >>
> >>> On Oct 31, 2023, at 6:14 P
And I wonder I should create the stride_type using size_type_node or
> ptrdiff_type_node ?
> Which is preferrable ?
'sizetype' - that's the type we require to be used for
the POINTER_PLUS_EXPR offset operand.
> Thanks.
>
>
>
> juzhe.zh...@rivai.ai
>
&g
he unsigned
> maximum stride = 2^31 wheras signed is 2 ^ 30.
On the GIMPLE side I think we want to have a sizetype operand and
indeed drop 'scale', the sizetype operand should be readily available.
>
>
>
> juzhe.zh...@rivai.ai
>
> From: Richard Biener
> Date
The following tries to clarify the __builtin_constant_p documentation,
stating that the argument expression is not evaluated and side-effects
are discarded. I'm struggling to find the correct terms matching
what the C language standard would call things so I'd appreciate
some help here.
OK for tr
On Thu, Nov 2, 2023 at 9:50 PM Ajit Agarwal wrote:
>
> Hello All:
>
> Currently code sinking heuristics are based on profile data like
> basic block count and sink frequency threshold. We have removed
> such heuristics and added register pressure heuristics based on
> live-in and live-out of early
> gcc/ChangeLog:
>
> * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow unmasked
> calls to use masked simdclones.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/vect/vect-simd-clone-20.c: New file.
> * gfortran.dg/simd-builtins-1.h: Adap
p;slp_op, &mask_dt, &mask_vectype))
> return false;
> }
>
> @@ -10046,7 +10047,7 @@ vectorizable_load (vec_info *vinfo,
> {
>if (slp_node
> && mask
> - && !vect_maybe_update_slp_op_vectype (SLP_TREE_CHILDREN (slp_no
@var{i} of (operand 3) should be
> stored.
> +Mask elements @var{i} with @var{i} > (operand 5 + operand 6) are ignored.
> +
> @cindex @code{vec_set@var{m}} instruction pattern
> @item @samp{vec_set@var{m}}
> Set given field in the vector value. Operand 0 is the vector to mo
eroing will cause a false dependence on the previous value
of the register, so I doubt this is optimal behavior. For stores the
inactive elements are of course not stored.
>
> juzhe.zh...@rivai.ai
>
> From: Richard Biener
> Date: 2023-11-03 15:40
> To: juzhe.zh...@rivai.ai
perand 5) are ignored.
> +
> @cindex @code{vec_set@var{m}} instruction pattern
> @item @samp{vec_set@var{m}}
> Set given field in the vector value. Operand 0 is the vector to modify,
>
> Thanks.
>
>
>
> juzhe.zh...@rivai.ai
>
> From: Richard Biener
> Date: 2023
On Fri, 3 Nov 2023, Andre Vieira (lists) wrote:
>
>
> On 03/11/2023 07:31, Richard Biener wrote:
>
> >
> > OK.
> >
> > I do wonder about the gfortran testsuite adjustments though.
> >
> > !GCC$ builtin (sin) attributes simd (inbranch)
&
The following avoids hoisting expressions that may invoke undefined
behavior and are not computed on all paths. This is realized by
noting that we have to avoid materializing expressions as part
of hoisting that are not part of the set of expressions we have
found eligible for hoisting. Instead o
The following removes a bogus assert constraining the uses that
could appear when a built from scalar defs SLP node constrains
code generation in a way so earlier uses of the vector CTOR
components fail to get vectorized. We can't really constrain the
operation such use appears in.
Bootstrapped a
On Fri, Nov 3, 2023 at 11:20 AM Ajit Agarwal wrote:
>
> Hello Richard:
>
> On 03/11/23 12:51 pm, Richard Biener wrote:
> > On Thu, Nov 2, 2023 at 9:50 PM Ajit Agarwal wrote:
> >>
> >> Hello All:
> >>
[...]
> >>
> >> High re
During analyzing PR111950 I found the loop live operation code-gen
odd, in particular only replacing a single PHI but then adjusting
possibly remaining PHIs afterwards where there shouldn't really
be any out-of-loop uses of the scalar in-loop def left.
Bootstrapped and tested together with another
The following exercise otherwise not exercised paths in the
vectorizer peeling code, resulting in CPU 2017 build ICEs
when patching but no fallout in the testsuite.
tested on x86_64-unknown-linux-gnu, pushed.
* gfortran.dg/20231103-1.f90: New testcase.
* gfortran.dg/20231103-2.f90
On Sun, Nov 5, 2023 at 7:32 PM Richard Sandiford
wrote:
>
> This patch allows allocate_dynamic_stack_space to be called before
> or after virtual registers have been instantiated. It uses the
> same approach as allocate_stack_local, which already supported this.
>
> Tested on aarch64-linux-gnu &
On Sun, Nov 5, 2023 at 7:33 PM Richard Sandiford
wrote:
>
> align_dynamic_address would output alignment operations even
> for a required alignment of 1 byte.
>
> Tested on aarch64-linux-gnu & x86_64-linux-gnu. OK to install?
OK
> Richard
>
>
> gcc/
> * explow.cc (align_dynamic_address)
view_convert:op_type @1) @5
> > @6))
> > +
> > /* Same for ternary operations. */
> > (for uncond_op (UNCOND_TERNARY)
> > cond_op (COND_TERNARY)
> > @@ -9025,6 +9059,23 @@ and,
> > && single_use (@5))
> > (view_convert (cond_op (bit_not @0) @2 @3 @4
> > (view_convert:op_type @1)))
> > +
> > +(for uncond_op (UNCOND_TERNARY)
> > + cond_op (COND_LEN_TERNARY)
> > + (simplify
> > + (IFN_VCOND_MASK_LEN @0 (view_convert? (uncond_op@5 @1 @2 @3)) @4 @6 @7)
> > + (with { tree op_type = TREE_TYPE (@5); }
> > + (if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op),
> > op_type)
> > + && is_truth_type_for (op_type, TREE_TYPE (@0))
> > + && single_use (@5))
> > +(view_convert (cond_op @0 @1 @2 @3 (view_convert:op_type @4) @6 @7)
> > + (simplify
> > + (IFN_VCOND_MASK_LEN @0 @1 (view_convert? (uncond_op@5 @2 @3 @4 @6 @7)))
> > + (with { tree op_type = TREE_TYPE (@5); }
> > + (if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op),
> > op_type)
> > + && is_truth_type_for (op_type, TREE_TYPE (@0))
> > + && single_use (@5))
> > +(view_convert (cond_op (bit_not @0) @2 @3 @4 (view_convert:op_type @1)
> > @6 @7))
> > #endif
> >
> > /* Detect cases in which a VEC_COND_EXPR effectively replaces the
> > diff --git a/gcc/optabs.def b/gcc/optabs.def
> > index 2ccbe4197b7..8d5ceeb8710 100644
> > --- a/gcc/optabs.def
> > +++ b/gcc/optabs.def
> > @@ -282,6 +282,7 @@ OPTAB_D (cond_len_fnma_optab, "cond_len_fnma$a")
> > OPTAB_D (cond_len_fnms_optab, "cond_len_fnms$a")
> > OPTAB_D (cond_len_neg_optab, "cond_len_neg$a")
> > OPTAB_D (cond_len_one_cmpl_optab, "cond_len_one_cmpl$a")
> > +OPTAB_D (vcond_mask_len_optab, "vcond_mask_len_$a")
> > OPTAB_D (cmov_optab, "cmov$a6")
> > OPTAB_D (cstore_optab, "cstore$a4")
> > OPTAB_D (ctrap_optab, "ctrap$a4")
> > diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c
> > b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c
> > index 7e165977e2b..7b3d73acb88 100644
> > --- a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c
> > +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c
> > @@ -1,5 +1,6 @@
> > /* { dg-do compile } */
> > /* { dg-additional-options "-fgimple -fdump-tree-optimized -ffast-math" }
> > */
> > +/* { dg-additional-options "-fno-vect-cost-model" { target { riscv_v } } }
> > */
> >
> > double __GIMPLE (ssa, startwith("loop"))
> > neg_xi (double *x)
>
--
Richard Biener
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)
On Fri, 3 Nov 2023, Joseph Myers wrote:
> On Fri, 3 Nov 2023, Richard Biener wrote:
>
> > The following tries to clarify the __builtin_constant_p documentation,
> > stating that the argument expression is not evaluated and side-effects
> > are discarded. I'm struggl
On Fri, 3 Nov 2023, Andre Vieira (lists) wrote:
> Hi,
>
> The current codegen code to support VF's that are multiples of a simdclone
> simdlen rely on BIT_FIELD_REF to create multiple input vectors. This does not
> work for non-constant simdclones, so we should disable using such clones when
> t
The following fixes an error in strip_float_extensions when facing
vector conversions.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
PR tree-optimization/112369
* tree.cc (strip_float_extensions): Use element_precision.
* gcc.dg/pr112369.c: New testcase.
--
On Mon, 6 Nov 2023, Andrew Stubbs wrote:
>
>
> On 06/11/2023 07:52, Richard Biener wrote:
> > On Fri, 3 Nov 2023, Andre Vieira (lists) wrote:
> >
> >> Hi,
> >>
> >> The current codegen code to support VF's that are multiples of a simdclone
The following makes the C++98 locale init path follow the way the
C++11 performs initialization. This way we deal with pthread_once
failing, falling back to non-threadsafe initialization which, given we
initialize from the library, should be serialized by the dynamic
loader already.
Bootstrapped
On Mon, 6 Nov 2023, Jonathan Wakely wrote:
> On Mon, 6 Nov 2023 at 11:52, Richard Biener wrote:
> >
> > The following makes the C++98 locale init path follow the way the
> > C++11 performs initialization. This way we deal with pthread_once
> > failing, fal
401 - 500 of 25204 matches
Mail list logo