ting this again just to be extra sure. Ok to push
if bootstrap/regtest succeeds?
Cheers,
Filip Kastl
-- 8< --
This patch adds a limit on the number of cases of a switch. When this
limit is exceeded, switch lowering decides to use faster but less
powerful algorithms.
In particular this mean
01:38, Andi Kleen wrote:
> On Fri, Nov 15, 2024 at 10:43:57AM +0100, Filip Kastl wrote:
> > Hi,
> >
> > Andi's greedy bit test finding algorithm was reverted. I found a fix for
> > the
> > problem that caused the revert. I made this patch to reintroduce the g
On Fri 2024-11-15 12:08:24, Richard Biener wrote:
> On Fri, 15 Nov 2024, Filip Kastl wrote:
>
> > Hi,
> >
> > Andi's greedy bit test finding algorithm was reverted. I found a fix for
> > the
> > problem that caused the revert. I made this patch t
gcc/ChangeLog:
* doc/invoke.texi: Add store-forwarding-max-distance.
Signed-off-by: Filip Kastl
---
gcc/doc/invoke.texi | 5 +
1 file changed, 5 insertions(+)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index d2409a41d50..4b1acf9b79c 100644
--- a/gcc/doc/invoke.texi
Add missing '=' after -param=cycle-accurate-model.
gcc/ChangeLog:
* params.opt: Add missing '=' after -param=cycle-accurate-model.
Signed-off-by: Filip Kastl
---
gcc/params.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/params.opt b/
Hi All,
Commiting this as obvious.
Cheers,
Filip Kastl
-- 8< --
In my last patch for check-params-in-docs.py I accidentally
1. left one occurence of the 'help_params' variable not renamed
2. converted 'help_params' from a dict to a list
These issues cause t
from PR117352
anymore.
Ok to push?
Thanks,
Filip Kastl
-- 8< --
This patch adds a limit on the number of cases of a switch. When this
limit is exceeded, switch lowering decides to use faster but less
powerful algorithms.
In particular this means that for finding bit tests switch lowerin
On Wed 2024-11-13 15:18:32, Jan Hubicka wrote:
> > - sincos and all functions working with arrays ... Because these
> > functions have pointer arguments and that would require a bigger
> > rework of ix86_veclibabi_aocl(). Also, I'm not sure if GCC even ever
> > generates calls to these funct
UBLIC (new_fndecl) = 1;
> > + DECL_EXTERNAL (new_fndecl) = 1;
> > + DECL_IS_NOVOPS (new_fndecl) = 1;
> > + TREE_READONLY (new_fndecl) = 1;
>
> I see that NOVOPS is copied from the older implementation. I think
> const (which is specified by TREE_READONLY = 1) should be
Hi,
Bootstrapped and regtested on x86_64 linux. I also tested that all the new
calls can be linked with the AOCL LibM library. Ok to push?
Thanks,
Filip Kastl
-- 8< --
We currently support generating vectorized math calls to the AMD core
math library (ACML) (-mveclibabi=acml). T
On Wed 2024-11-06 10:19:12, Sam James wrote:
> Sam James writes:
>
> > Explain that 'bootstrap-ubsan' won't abort on errors by default and how
> > to override that by setting UBSAN_OPTIONS.
> >
> > gcc/ChangeLog:
> > PR other/116948
> >
> > * doc/install.texi (Building a native compiler):
Hi,
I'm not a maintainer but I think we certainly want to have bootstrap-ubsan
documented and the patch looks good to me.
Cheers,
Filip
On Thu 2024-10-31 21:11:13, Sam James wrote:
> gcc/ChangeLog:
> PR other/116948
>
> * doc/install.texi (Building a native compiler): Mention
> boo
(vec &clusters);
>/* Compute the number of case labels that correspond to each outgoing edge
> of
> switch statement. Record this information in the aux field of the edge.
> + Returns max number of cases per edge.
> */
I would specify "approx max number" instead of "max number" here.
Otherwise looks good to me.
Cheers,
Filip Kastl
ChangeLog:
* MAINTAINERS: Fix Write After Approval name order.
Signed-off-by: Filip Kastl
---
MAINTAINERS | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index cf1cf78e16c..269ac2ea6b4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -760,7
On Tue 2024-09-24 11:43:47, Aldy Hernandez wrote:
> Pushed attached patch.
>
> Thanks.
> Aldy
>
Nice.
Thanks!
Filip
> On Tue, Sep 24, 2024 at 10:09 AM Filip Kastl wrote:
>
> > On Mon 2024-09-23 09:43:28, Aldy Hernandez wrote:
> > > From: A
> +Aldy Hernandez
> --
> 2.43.0
>
Hi Aldy,
Could you move your entry in the DCO list so that it respects surname
alphabetical order, please? Your name should be between Robin Dapp and Michal
Jires.
Thanks,
Filip Kastl
Hi,
I'd like to ping my patch. You can find it here
https://gcc.gnu.org/pipermail/gcc-patches/2024-September/662744.html
Btw I forgot to include [PR116616] in the subject. Hope I didn't confuse
people. I will take care to include the tag in the git commit message.
Thanks,
Filip Kastl
Thanks for the approval Richard!
I've incorporated your suggestion to remove the "digits skip" code and I've
pushed the patch.
Cheers,
Filip Kastl
-- 8< --
Currently check-params-in-docs.py reports extra params being listed in
invoke.texi. However, those aren't
Hi,
I'd like to ping my patch. You can find it here:
https://gcc.gnu.org/pipermail/gcc-patches/2024-August/661362.html
Btw not sure if I could Cc anyone on this. AFAIK no one is a maintainer of the
./contrib scripts.
Thanks,
Filip Kastl
-linux. Ok to push?
Thanks,
Filip Kastl
--- 8< ---
Switch exponential transformation in the switch conversion pass
currently generates
tmp1 = __builtin_popcount (var);
tmp2 = tmp1 == 1;
when inserting code to determine if var is power of two. If the target
doesn't support expanding the
Hi,
bootstrapped and regtested on x86_64-linux. Ok to push?
Thanks,
Filip Kastl
8<
Switch exponential transformation in the switch conversion pass
currently generates
tmp1 = __builtin_popcount (var);
tmp2 = tmp1 == 1;
when inserting code to determine if var is power of two.
On Sun 2024-09-01 09:25:07, Jeff Law wrote:
>
>
> On 9/1/24 9:19 AM, Filip Kastl wrote:
> > (I'm Cc-ing Diego since he originally contributed the VRP pass and Jeff
> > because
> > I've seen him in git blame on many lines of vr-values.cc around the place I
I'll appreciate comments on if I should place the blob of code creating the
__builtin_unreachable somewhere else in the file. I'll also appreciate any
other comments on the patch.
Cheers,
Filip Kastl
P.S. While writing this I realized that in this case...
int unopt(int v)
{
sw
as one of their parameters.
- Using gimple_convert instead of manually building CONVERT_EXPR/NOP_EXPR
assignments.
- Using gimple_build for building __builtin_popcount.
- Adjusted ChangeLog entries.
Bootstrapped and regtested on x86_64 linux. Ok to push?
Cheers,
Filip Kastl
-- 8< --
The
fault', 'asimd-only', 'sve-only', 'prefer-asimd', 'prefer-sve'}
Is the patch ok to be pushed?
Cheers,
Filip Kastl
-- 8< --
Currently check-params-in-docs.py reports extra params being listed in
invoke.texi. However, those aren't actual par
Hi,
bootstrapped and regtested on x86_64-linux. Ok to push?
Cheers,
Filip Kastl
-- 8< --
The gen_pow2p function generates (a & -a) == a as a fallback for
POPCOUNT (a) == 1. Not only is the bitmagic not equivalent to
POPCOUNT (a) == 1 but it also introduces UB (consider signed
a =
On Wed 2024-08-21 09:50:39, Jonathan Wakely wrote:
> On Wed, 21 Aug 2024 at 09:48, Filip Kastl wrote:
> >
> > Hi,
> >
> > this is the second version of my patch. See version 1 here:
> >
> > https://gcc.gnu.org/pipermail/gcc-patches/2024-August/659584.h
Jonathan suggested.
- Changed "in libstdc++" to "within libstdc++".
Validated with the W3 Validator. Is this ok to be pushed?
Cheers,
Filip Kastl
---
htdocs/gcc-15/changes.html| 3 +-
htdocs/gcc-15/porting_to.html | 54 +++
2 files ch
ithout including <cstdint> where needed
will no longer compile.
Any opinion on these two options?
Cheers,
Filip Kastl
rom GCC 14 porting_to.html).
Ha! As I'm writing this I noticed that actually Jonathan predicted this and
suggested a corresponding porting_to.html entry. Well, here it is :).
Validated with the W3 Validator. Is this ok to be pushed?
Cheers,
Filip Kastl
-- 8< --
---
htdocs/gcc-15/ch
On Tue 2024-08-06 15:14:32, Richard Biener wrote:
> On Tue, 6 Aug 2024, Filip Kastl wrote:
>
> > Hello everybody,
> >
> > In pr113054[1] Andrew said that he doesn't like the 'dead_stmts' static
> > variable I used when implementing the sccopy pass.
xactly that. I waited until stage 1 to
submit it.
Bootstrapped and regtested on x86_64. Is the patch ok to be pushed to trunk?
Cheers,
Filip Kastl
[1]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113054
-- 8< --
Currently the main logic of the sccopy pass is implemented as static
functions.
Hello,
just commited this as obvious.
Filip Kastl
-- 8< --
Fixes a misplaced comment in gimple-ssa-sccopy.cc. The comment belongs
to a bitmap definition but was instead placed before the beginning of a
namespace block.
gcc/ChangeLog:
* gimple-ssa-sccopy.cc: Move a misplaced comm
On Wed 2024-07-31 13:34:28, Jakub Jelinek wrote:
> On Wed, Jul 31, 2024 at 01:32:06PM +0200, Filip Kastl wrote:
> > Thanks for the feedback! Here is a second version of the patch. I've
> > tested
> > this version with
> >
> > make check RUNTESTFLAG
On Wed 2024-07-31 12:18:34, Jakub Jelinek wrote:
> On Wed, Jul 31, 2024 at 12:02:08PM +0200, Filip Kastl wrote:
> > 32bit x86 CPUs won't natively support the FFS operation on a 64 bit
> > type. Therefore, the switch-exp-transform-3.c test will always fail
> > with a 32
that the exponential index transform is able to handle long
long int.
Signed-off-by: Filip Kastl
---
.../gcc.target/i386/switch-exp-transform-3.c | 51 +--
1 file changed, 2 insertions(+), 49 deletions(-)
diff --git a/gcc/testsuite/gcc.target/i386/switch-exp-transf
On Tue 2024-07-30 14:34:54, Richard Biener wrote:
> On Tue, 30 Jul 2024, Filip Kastl wrote:
>
> > > > > Ah, I see you fix those up. Then 2.) is left - the final block. Iff
> > > > > the final block needs adjustment you know there was a path from
> > &g
> Meanwhile I'll look into source code of the rest of the switch conversion
> pass.
> Switch conversion pass inserts conditions similar to what I'm doing so someone
> before me may have already solved how to properly fix dominators in this
> situation.
Oh nevermind. Switch conversion (gen_inboun
l has a pred dominated by default" isn't
equivalent with "there is a path between default and final" even when we assume
that the original idom of final_bb was switch_bb. Therefore I think we're back
to searching for a nice way to test "there is a path between default and
final".
Maybe you can spot a flaw in my logic or maybe you see a solution I don't.
Meanwhile I'll look into source code of the rest of the switch conversion pass.
Switch conversion pass inserts conditions similar to what I'm doing so someone
before me may have already solved how to properly fix dominators in this
situation.
Cheers,
Filip Kastl
||
switch BB + |
/ | \ | \ |
case BBs |default BB
\ | / |/
final BB <- pred BB -+
|
Here no predecessors of final_bb are dominated by default_bb but at the same
time there does exist a path from default_bb to final_bb. Or is this CFG
impos
gt; +if len(errors) == 0:
> +exit(0)
> +else:
> +json_string = json.dumps(result)
> +print(json_string)
> +exit(1)
> else:
> assert False
Sure, this looks nice. I'm not sure if I have the right to approve the patch
though.
Cheers,
Filip Kastl
with this
errlines.append({"file": locs[0], "row": locs[1],
"column": locs[2], "err": e.console_error})
Cheers,
Filip Kastl
On Thu 2024-07-18 12:07:42, Richard Biener wrote:
> On Wed, 17 Jul 2024, Filip Kastl wrote:
> > > > + }
> > > > +
> > > > + vec v;
> > > > + v.create (1);
> > > > + v.quick_push (m_final_bb);
> > > >
:
switch BB ---+
/ | \ \
case BBsdefault BB
\ | / /
final BB /
|/
Here idom(final BB) == switch BB.
After the index exponential transform the CFG looks like this
cond BB -+
| |
switch BB ---+ |
/ | \ \ |
case BBsdefault BB
\ | / /
final
On Wed 2024-07-10 11:34:44, Richard Biener wrote:
> On Mon, 8 Jul 2024, Filip Kastl wrote:
>
> > Hi,
> >
> > I'm replying to Richard and keeping Andrew in cc since your suggestions
> > overlap.
> >
> >
> > On Tue 2024-06-11 14:48:06, Richard
into splitting out the can_ and gen_ functions as you
suggested. I'm still a bit unsure what your vision of these is so before I
submit all the changes I made to the patch as version 2 I would like to share
how I implemented the functions (see bellow). Is this how you imagined the
functio
Hi,
I'm replying to Richard and keeping Andrew in cc since your suggestions
overlap.
On Tue 2024-06-11 14:48:06, Richard Biener wrote:
> On Thu, 30 May 2024, Filip Kastl wrote:
> > +/* { dg-do compile } */
> > +/* { dg-options "-O2 -fdump-tree-switchconv -march=znver
Hi,
I've noticed wrong order in the Contributing under the DCO section of the
MAINTAINERS file. I'm commiting the fix as obvious.
Filip Kastl
-- 8< --
ChangeLog:
* MAINTAINERS: Fix order in Contributing under the DCO.
Signed-off-by: Filip Kastl
---
MAINTAINERS |
test on a version where I removed the check that the target has the
POPCOUNT and FFS instructions so that the transformation would be triggered
more often. That testing also went well.
Are there any things I should tweak? Or is the patch ready to be applied?
Cheers,
Filip Kastl
-- 8<
:
* MAINTAINERS: Use tabs between name and email.
contrib/ChangeLog:
* check-MAINTAINERS.py: Add warning about not using tabs.
Signed-off-by: Filip Kastl
---
MAINTAINERS | 2 +-
contrib/check-MAINTAINERS.py | 8
2 files changed, 9 insertions(+), 1 deletion(-)
diff
at the script would mistakenly complain about
parms missing from --help=params. Previously, the script was just set
to ignore aarch64 and gcn params which solved this issue only for x86.
This patch sets the script to ignore all target-specific params.
contrib/ChangeLog:
* check-params-in-doc
Hi,
I pushed this patch on Fri 8th and sent this mail to notify that I did so.
I had some trouble with sending the mail though and it didn't arrive to the
mailing list. I'm sending it now instead.
Filip Kastl
-- 8< --
ChangeLog:
* MAINTAINERS: Fix order of names i
Hi,
the recent change to contrib/mklog.py broke contrib/test_mklog.py. It modified
mklog.py to produce "Move to..." instead of "Moved to..." note in changelog for
files that were moved. I've commited the fix as obvious.
Filip Kastl
-- 8< --
contrib/ChangeLog:
Successfully bootstrapped and regtested on x86_64-linux. Will push to master.
Filip
.
I didn't yet bootstrap this version. I just regtested it. Will bootstrap and
regtest on the most current commit. Once that is successfully done, is the pass
OK to be pushed to main?
Filip
-- >8 --
This patch adds the strongly-connected copy propagation (SCCOPY) pass.
It is a lightweight GIMPLE
_1 and _7 by 16
It also handles more complicated situations, e.g.:
_8 = PHI <_9, _10>;
_9 = PHI <_8, _10>;
_10 = PHI <_8, _9, _1>;
// Replaces occurences of _8, _9 and _10 by _1
gcc/ChangeLog:
* Makefile.in: Added sccopy pass.
* passes.def: Added sccopy pass bef
Hi Richard,
> Can you name the new file gimple-ssa-sccopy.cc please?
Yes, no problem.
Btw, I thought that it is standard that gimple ssa passes have the tree-ssa-
prefix. Do I understand it correctly that this is not true and many
tree-ssa-*.cc passes should actually be named gimple-ssa-*.cc but
- Forwarded message from Filip Kastl -
From: Filip Kastl
To: gcc-patches@gcc.gnu.org
Cc: rguent...@suse.de, hubi...@ucw.cz
Subject: [PATCH v2] A new copy propagation and PHI elimination pass
Date: Thu, 2 Nov 2023 14:00:02 +0100
Message-ID:
> Hi,
>
> this is a patch that I
ed the
pr79691.c testcase so that it works as intended with other changes from the
patch.
The pr79691.c testcase checks that we get constants from snprintf calls and
that they simplify into a single constant. The testcase doesn't account for
the fact that this constant may be further copy propa
Hi,
thanks for the guidance. I'm going to post a new version of the patch with the
testcase modified so that it searches for 'return 9;' instead of '= 9;'.
Filip Kastl
On Fri 2023-10-27 13:55:37, Jeff Law wrote:
>
>
> On 10/20/23 07:52, Filip Kastl wro
On Fri 2023-10-20 15:50:25, Filip Kastl wrote:
> Bootstraped and tested* on x86_64-pc-linux-gnu.
>
> * One testcase (pr79691.c) did regress. However that is because the test is
> dependent on a certain variable not being copy propagated. I will go into more
> detail about this in
g:
* gcc.dg/sccopy-1.c: New test.
Signed-off-by: Filip Kastl
---
gcc/Makefile.in | 1 +
gcc/passes.def | 3 +
gcc/testsuite/gcc.dg/sccopy-1.c | 78 +++
gcc/tree-pass.h | 1 +
gcc/tree-ssa-sccopy.cc | 867 +++
> That's interesting. Your placement at
>
> NEXT_PASS (pass_cd_dce, false /* update_address_taken_p */);
> NEXT_PASS (pass_phiopt, true /* early_p */);
> + NEXT_PASS (pass_sccp);
>
> and
>
>NEXT_PASS (pass_tsan);
>NEXT_PASS (pass_dse, true /* use DR a
> The most obvious places would be right after SSA construction and before RTL
> expansion.
> Can you provide measurements for those positions?
The algorithm should only remove PHIs that break SSA form minimality. Since
GCC's SSA construction already produces minimal SSA form, the algorithm isn't
es these
functions.
Signed-off-by: Filip Kastl
gcc/ChangeLog:
* Makefile.in: Added sccp pass.
* passes.def: Added sccp pass to early and late optimizations.
* tree-pass.h (make_pass_sccp): Added sccp pass.
* tree-ssa-propagate.cc (cleanup_after_replace): New
-by: Filip Kastl
---
gcc/value-prof.cc | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gcc/value-prof.cc b/gcc/value-prof.cc
index f40e58ac4f2..580d6dd648d 100644
--- a/gcc/value-prof.cc
+++ b/gcc/value-prof.cc
@@ -1186,7 +1186,11 @@ gimple_mod_subtract_transform
Victor Kaplansky
+Filip Kastl
Geoffrey Keating
Brendan Kehoe
Andi Kleen
--
2.40.1
67 matches
Mail list logo