-16bitdata-pmul.c: Likewise.
* crc-crc32-data16.c: Likewise.
* crc-crc32-data32.c: Likewise.
* crc-crc32-data8.c: Likewise.
* crc-crc32c-data16.c: Likewise.
* crc-crc32c-data32.c: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/config
On Sat, Jun 8, 2024 at 3:41 PM Richard Sandiford
wrote:
> Mariam Arutunian writes:
> > This patch introduces two new expanders for the aarch64 backend,
> > dedicated to generate optimized code for CRC computations.
> > The new expanders are designed to leverage specific
Hello!
This patch set detects bitwise CRC implementation loops (with branches) in
the GIMPLE optimizers and replaces them with more optimal CRC
implementations in RTL. These patches introduce new internal functions,
built-in functions, and expanders for CRC generation, leveraging hardware
instructi
-off-by: Mariam Arutunian
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 5730bda80dc..be68ef860f9 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -8557,6 +8557,20 @@ operand 2, greater than operand 2 or is unordered with operand 2.
This pattern is not allowed to @code{FAIL}.
+@cindex
: Likewise.
* crc-coremark-16bitdata-zbc.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md
index 8769a6b818b..c98d451f404 100644
--- a/gcc/config/riscv/bitmanip.md
+++ b/gcc/config/riscv/bitmanip.md
@@ -973,3 +973,66
.
* crc-CCIT-data8-pmul.c: Likewise.
* crc-coremark-16bitdata-pmul.c: Likewise.
* crc-crc32-data16.c: New test.
* crc-crc32-data32.c: Likewise.
* crc-crc32-data8.c: Likewise.
Signed-off-by: Mariam Arutunian diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64
-target32.c
* gcc.c-torture/compile/crc-builtin-target64.c
Signed-off-by: Mariam Arutunian
diff --git a/gcc/builtin-types.def b/gcc/builtin-types.def
index c97d6bad1de..a0c4b8b9ca6 100644
--- a/gcc/builtin-types.def
+++ b/gcc/builtin-types.def
@@ -829,6 +829,26 @@ DEF_FUNCTION_TYPE_3
gcc/testsuite/gcc.target/riscv/
* crc-builtin-zbc32.c: New file.
* crc-builtin-zbc64.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/testsuite/gcc.target/riscv/crc-builtin-zbc32.c b/gcc/testsuite/gcc.target/riscv/crc-builtin-zbc32.c
new file mode 100644
index 000
gcc/testsuite/gcc.target/aarch64/
* crc-builtin-pmul64.c: New test.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c b/gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
new file mode 100644
index 000..d8bb1724a65
--- /dev/null
(8), crc(7), ... crc(1), crc(0) ^ 1
Co-authored-by: Mariam Arutunian
gcc/
* Makefile.in (OBJS): Add sym-exec/expression.o,
sym-exec/state.o, sym-exec/condition.o.
* configure (sym-exec): New subdir.
gcc/sym-exec/
* condition.cc: New file.
* condition.h: New file.
* expre
: Likewise.
* crc-8-pclmul.c: Likewise.
* crc-9-pclmul.c: Likewise.
* crc-CCIT-data16-pclmul.c: Likewise.
* crc-CCIT-data8-pclmul.c: Likewise.
* crc-coremark-16bitdata-pclmul.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386
def (TV_GIMPLE_CRC_OPTIMIZATION): New timevar.
* tree-pass.h (make_pass_crc_optimization): New extern function
declaration.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index a7f15694c34..e9e2ecc3a17 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -171
ip.cc.
* tree-ssa-loop-manip.cc (destroy_loop): Add, move function from
tree-loop-distribution.cc.
* tree-ssa-loop-manip.h (destroy_loop): Add extern function declaration.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/gimple-crc-optimization.cc b/gcc/gimple-crc-optimization.cc
index 039506
.
(create_forward_lfsr): New static function declaration.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index aab909c3510..1996a60078c 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1716,6 +1716,7 @@ OBJS = \
tree-iterator.o \
tree-logical-location.o \
tree
On Sat, May 25, 2024, 22:35 Jeff Law wrote:
>
>
> On 5/24/24 2:41 AM, Mariam Arutunian wrote:
> >gcc/testsuite/gcc.target/riscv/
> >
> > * crc-builtin-zbc32.c: New file.
> > * crc-builtin-zbc64.c: Likewise.
> OK once prerequisites are approved.
>
> jeff
>
Thank you.
>
On Sat, May 25, 2024, 22:34 Jeff Law wrote:
>
>
> On 5/24/24 2:42 AM, Mariam Arutunian wrote:
> >gcc/testsuite/gcc.c-torture/compile/
> >
> > * crc-11.c: New test.
> > * crc-15.c: Likewise.
> > * crc-16.c: Likewise.
> > * crc
implementations.
This would require a completely different algorithm than the one used for
bitwise implementations.
Thanks,
Mariam
On Sun, May 26, 2024 at 10:23 PM NightStrike wrote:
>
>
> On Fri, May 24, 2024, 04:42 Mariam Arutunian
> wrote:
>
>> Hello!
>> This pa
On Sat, May 25, 2024 at 9:40 PM Jeff Law wrote:
>
>
> On 5/24/24 2:41 AM, Mariam Arutunian wrote:
> > Add two new internal functions (IFN_CRC, IFN_CRC_REV), to provide faster
> > CRC generation.
> > One performs bit-forward and the other bit-reversed CRC computa
On Sat, May 25, 2024 at 10:32 PM Jeff Law wrote:
>
>
> On 5/24/24 2:41 AM, Mariam Arutunian wrote:
> > If the target is ZBC or ZBKC, it uses clmul instruction for the CRC
> > calculation.
> > Otherwise, if the target is ZBKB, generates table-based CRC,
> > but fo
On Tue, May 28, 2024 at 8:20 AM Jeff Law wrote:
>
>
> On 5/24/24 2:42 AM, Mariam Arutunian wrote:
> > This patch adds a new compiler pass aimed at identifying naive CRC
> > implementations,
> > characterized by the presence of a loop calculating a CRC (polynomial
&
Sorry for the late response; somehow, I didn't receive the last few messages.
>>* Am 30.05.2024 um 00:31 schrieb Jeff Law >>:
*>> >>*
*>> >>>* On 5/28/24 1:01 AM, Richard Biener wrote:
*>>>>* On Fri, May 24, 2024 at 10:46 AM Mariam Aru
On Fri, Aug 2, 2024 at 2:12 PM Richard Biener
wrote:
> On Wed, Jul 31, 2024 at 10:15 AM Mariam Arutunian
> wrote:
> >
> > This patch adds a new compiler pass aimed at identifying naive CRC
> implementations,
> > characterized by the presence of a loop calculati
versed version below:
>
> Mariam Arutunian writes:
> > [...]
> > diff --git a/gcc/config/aarch64/aarch64.cc
> b/gcc/config/aarch64/aarch64.cc
> > index ee12d8897a8..546a379fd74 100644
> > --- a/gcc/config/aarch64/aarch64.cc
> > +++ b/gcc/config/aarch64/aarch64.cc
> &
-pmul.c: Likewise.
* crc-coremark-16bitdata-pmul.c: Likewise.
* crc-crc32-data16.c: Likewise.
* crc-crc32-data32.c: Likewise.
* crc-crc32-data8.c: Likewise.
* crc-crc32c-data16.c: Likewise.
* crc-crc32c-data32.c: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam
I sent the new version and added you as a co-author.
Thanks,
Mariam
On Fri, Aug 16, 2024 at 7:25 PM Mariam Arutunian
wrote:
>
>
> On Fri, Aug 9, 2024 at 7:22 PM Richard Sandiford <
> richard.sandif...@arm.com> wrote:
>
>> Sorry again for the slow review. :(
>&g
On Wed, Aug 21, 2024 at 5:56 PM Richard Sandiford
wrote:
> Mariam Arutunian writes:
> > This patch introduces two new expanders for the aarch64 backend,
> > dedicated to generate optimized code for CRC computations.
> > The new expanders are designed to leverage specific
On Fri, Aug 23, 2024, 15:03 Richard Biener
wrote:
> On Fri, Aug 23, 2024 at 9:55 AM Mariam Arutunian
> wrote:
> >
> >
> > On Wed, Aug 21, 2024 at 5:56 PM Richard Sandiford <
> richard.sandif...@arm.com> wrote:
> >>
> >> Mariam Arutunian wri
On Tue, Aug 27, 2024 at 12:25 PM Richard Biener
wrote:
> On Mon, Aug 26, 2024 at 5:26 PM Matevos Mehrabyan
> wrote:
> >
> >
> >
> > On Mon, Aug 26, 2024 at 2:44 AM Jeff Law wrote:
> >>
> >>
> >>
> >> On 8/20/24 5:41 AM, Richard Biener wrote:
> >>
> >> >
> >> > So the store-merging variant IIRC
On Sun, Aug 25, 2024 at 9:41 PM Jeff Law wrote:
>
>
> On 7/26/24 12:06 PM, Mariam Arutunian wrote:
> >If the target is ZBC or ZBKC, it uses clmul instruction for the CRC
> > calculation.
> > Otherwise, if the target is ZBKB, generates table-based CRC, but for
&
On Sat, Jun 8, 2024, 09:53 Richard Sandiford
wrote:
> Thanks a lot for doing this! It's a really nice series.
>
Thank you for your positive feedback and for your review and suggestions on
the patch series.
Just had a comment on the long division helper:
>
> Mariam
On Sun, Jun 9, 2024 at 1:48 AM Jeff Law wrote:
>
>
> On 6/4/24 7:41 AM, Mariam Arutunian wrote:
> >/Mariam, your thoughts on whether or not those two phases could handle a
> > loop with two CRC calculations inside, essentially creating two calls to
On Sat, Jun 8, 2024 at 3:41 PM Richard Sandiford
wrote:
> Mariam Arutunian writes:
> > This patch introduces two new expanders for the aarch64 backend,
> > dedicated to generate optimized code for CRC computations.
> > The new expanders are designed to leverage specific
On Sun, Jun 9, 2024 at 2:00 AM Jeff Law wrote:
>
>
> On 5/29/24 5:12 AM, Mariam Arutunian wrote:
>
> >
> > IIRC we looked at the problem of canonicalizing the loop into a form
> > where we didn't necessarily have conditional blocks, instead we had
&
.
(direct_crc_optab_supported_p): Likewise.
(expand_crc_optab_fn): New function
* internal-fn.def (CRC, CRC_REV): New internal functions.
* optabs.def (crc_optab, crc_rev_optab): New optabs.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index
* gcc.dg/crc-builtin-rev-target64.c
* gcc.dg/crc-builtin-target32.c
* gcc.dg/crc-builtin-target64.c
Signed-off-by: Mariam Arutunian
diff --git a/gcc/builtin-types.def b/gcc/builtin-types.def
index c97d6bad1de..a0c4b8b9ca6 100644
--- a/gcc/builtin-types.def
-16bitdata-zbc.c: Likewise.
* crc-coremark-16bitdata-zbkc.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md
index 8769a6b818b..9683ac48ef6 100644
--- a/gcc/config/riscv/bitmanip.md
+++ b/gcc/config/riscv/bitmanip.md
-coremark-16bitdata-pclmul.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index dbc861fb1ea..845a5dcd9ab 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -288,6 +288,8 @@ extern void
.
* crc-crc32c-data16.c: Likewise.
* crc-crc32c-data32.c: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 1d3f94c813e..7c6bf9d2c71 100644
--- a/gcc/config
ion.
(enable_fdo_optimizations): Enable gimple-crc-optimization.
* passes.def (pass_crc_optimization): Add new pass.
* timevar.def (TV_GIMPLE_CRC_OPTIMIZATION): New timevar.
* tree-pass.h (make_pass_crc_optimization): New extern function
declaration.
Signed-off-by: Mariam Arutunian
diff --
: New file.
* condition.h: New file.
* expression-is-a-helper.h: New file.
* expression.cc: New file.
* expression.h: New file.
* state.cc: New file.
* state.h: New file.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 0
(get_data): New function.
(optimize_crc_loop): Likewise.
(build_polynomial_without_1): Likewise.
(execute): Add optimize_crc_loop function call.
Signed-off-by: Mariam Arutunian
diff --git a/gcc/gimple-crc-optimization.cc b/gcc/gimple-crc-optimization.cc
index bd84d553a60..4de383419a0
internal functions.
* optabs.def (crc_optab, crc_rev_optab): New optabs.
Signed-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/doc/md.texi | 14 ++
gcc/expr.cc | 371
gcc/expr.h | 6 +
gcc
gcc/testsuite/gcc.target/riscv/
* crc-builtin-zbc32.c: New file.
* crc-builtin-zbc64.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
.../gcc.target/riscv/crc-builtin-zbc32.c | 21 ++
.../gcc.target/riscv/crc-builtin-zbc64.c | 66
: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/config/riscv/bitmanip.md | 63 +++
gcc/config/riscv/iterators.md | 6 +
gcc/config/riscv/riscv-protos.h | 3 +
gcc/config/riscv/riscv.cc | 155 ++
gcc/config
-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/builtin-types.def | 20 +++
gcc/builtins.cc | 114 +-
gcc/builtins.def | 21 +++-
gcc/builtins.h
var.
* tree-pass.h (make_pass_crc_optimization): New extern function
declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/common.opt | 10 +
gcc/common.opt.urls|3 +
gcc/doc/invoke.texi|
: Likewise.
* crc-8-pclmul.c: Likewise.
* crc-9-pclmul.c: Likewise.
* crc-CCIT-data16-pclmul.c: Likewise.
* crc-CCIT-data8-pclmul.c: Likewise.
* crc-coremark-16bitdata-pclmul.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/config/i386/i386-protos.h
gcc/testsuite/gcc.target/aarch64/
* crc-builtin-pmul64.c: New test.
Signed-off-by: Mariam Arutunian
---
.../gcc.target/aarch64/crc-builtin-pmul64.c | 61 +++
1 file changed, 61 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
diff
On Thu, Aug 22, 2024 at 1:19 PM Richard Biener
wrote:
> On Fri, Aug 2, 2024 at 6:15 PM Mariam Arutunian
> wrote:
> >
> > After the loop exit an internal function call (CRC, CRC_REV) is added,
> > and its result is assigned to the output CRC variable (the variable
>
-pmul.c: Likewise.
* crc-coremark-16bitdata-pmul.c: Likewise.
* crc-crc32-data16.c: Likewise.
* crc-crc32-data32.c: Likewise.
* crc-crc32-data8.c: Likewise.
* crc-crc32c-data16.c: Likewise.
* crc-crc32c-data32.c: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam
-state.h (is_bit_vector): Reorder, make the function public
and static.
(create_reversed_lfsr): New static function declaration.
(create_forward_lfsr): New static function declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/crc
* sym-exec-expression-is-a-helper.h: New file.
* sym-exec-expression.cc: New file.
* sym-exec-expression.h: New file.
* sym-exec-state.cc: New file.
* sym-exec-state.h: New file.
Signed-off-by: Mariam Arutunian
Author: Matevos Mehrabyan
Co-authored-by: Mariam Arutunian
Mentored-by: Jeff Law
(optimize_crc_loop): New function.
(execute): Add optimize_crc_loop function call.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/gimple-crc-optimization.cc | 78 ++
1 file changed, 78 insertions(+)
diff --git a/gcc/gimple-crc-optimization.cc
Hello,
This patch series is a respin of the following:
https://gcc.gnu.org/pipermail/gcc-patches/2024-September/662961.html.
Although I sent [PATCH v4 00/12] to the mailing list, it didn’t appear in
the archives, so I've provided the link to the first patch ([PATCH v4
01/12]). The original patch s
s.h (make_pass_crc_optimization): New extern function
declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/common.opt | 10 +
gcc/common.opt.urls|3 +
gcc/doc/invoke.texi| 16 +-
gcc/gimple-
: Likewise.
* crc-8-pclmul.c: Likewise.
* crc-9-pclmul.c: Likewise.
* crc-CCIT-data16-pclmul.c: Likewise.
* crc-CCIT-data8-pclmul.c: Likewise.
* crc-coremark-16bitdata-pclmul.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/config/i386/i386-protos.h
gcc/testsuite/gcc.target/riscv/
* crc-builtin-zbc32.c: New file.
* crc-builtin-zbc64.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
.../gcc.target/riscv/crc-builtin-zbc32.c | 21 ++
.../gcc.target/riscv/crc-builtin-zbc64.c | 66
.
* crc-CCIT-data16-zbc.c: Likewise.
* crc-CCIT-data16-zbkc.c: Likewise.
* crc-CCIT-data8-zbc.c: Likewise.
* crc-CCIT-data8-zbkc.c: Likewise.
* crc-coremark-16bitdata-zbc.c: Likewise.
* crc-coremark-16bitdata-zbkc.c: Likewise.
Signed-off-by: Mariam Arutunian
-pmul.c: Likewise.
* crc-coremark-16bitdata-pmul.c: Likewise.
* crc-crc32-data16.c: Likewise.
* crc-crc32-data32.c: Likewise.
* crc-crc32-data8.c: Likewise.
* crc-crc32c-data16.c: Likewise.
* crc-crc32c-data32.c: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam
-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/builtin-types.def | 20 +++
gcc/builtins.cc | 114 +-
gcc/builtins.def | 21 +++-
gcc/builtins.h
* sym-exec-expression-is-a-helper.h: New file.
* sym-exec-expression.cc: New file.
* sym-exec-expression.h: New file.
* sym-exec-state.cc: New file.
* sym-exec-state.h: New file.
Signed-off-by: Mariam Arutunian
Author: Matevos Mehrabyan
Co-authored-by: Mariam Arutunian
Mentored-by
(optimize_crc_loop): New function.
(execute): Add optimize_crc_loop function call.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/gimple-crc-optimization.cc | 78 ++
1 file changed, 78 insertions(+)
diff --git a/gcc/gimple-crc-optimization.cc
gcc/testsuite/gcc.target/aarch64/
* crc-builtin-pmul64.c: New test.
Signed-off-by: Mariam Arutunian
---
.../gcc.target/aarch64/crc-builtin-pmul64.c | 61 +++
1 file changed, 61 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
diff
public
and static.
(create_reversed_lfsr): New static function declaration.
(create_forward_lfsr): New static function declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/crc-verification.cc| 1298
internal functions.
* optabs.def (crc_optab, crc_rev_optab): New optabs.
Signed-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/doc/md.texi | 14 ++
gcc/expr.cc | 371
gcc/expr.h | 6 +
gcc
On Sat, Oct 19, 2024, 17:58 Jeff Law wrote:
>
>
> On 10/18/24 9:00 AM, Mariam Arutunian wrote:
> > Hello,
> >
> > This patch series is a respin of the following: https://gcc.gnu.org/
> > pipermail/gcc-patches/2024-September/662961.html <https://gcc.gnu
On Wed, Oct 9, 2024 at 7:45 AM Jeff Law wrote:
>
>
> On 10/8/24 4:52 AM, Mariam Arutunian wrote:
> >
> >
> > On Sun, Sep 29, 2024 at 9:08 PM Jeff Law > <mailto:jeffreya...@gmail.com>> wrote:
> >
> >
> >
> > On 9/13/24 5
On Sun, Sep 29, 2024 at 9:08 PM Jeff Law wrote:
>
>
> On 9/13/24 5:05 AM, Mariam Arutunian wrote:
> > Add two new internal functions (IFN_CRC, IFN_CRC_REV), to provide faster
> > CRC generation.
> > One performs bit-forward and the other bit-reversed CRC computa
On Tue, Nov 12, 2024 at 2:15 AM Jeff Law wrote:
> > +
> > +
> > +/* Generate assembly to calculate CRC using clmul instruction.
> > + The following code will be generated when the CRC and data sizes are
> equal:
> > + li a4,quotient
> > + li a5,polynomial
> > + xor a0,
On Tue, Nov 12, 2024 at 12:31 AM Jeff Law wrote:
>
>
> On 11/9/24 12:43 PM, Mariam Arutunian wrote:
> > Add two new internal functions (IFN_CRC, IFN_CRC_REV), to provide faster
> > CRC generation.
> > One performs bit-forward and the other bit-reversed CRC computa
On Tue, Nov 12, 2024 at 2:32 AM Jeff Law wrote:
>
>
> On 11/9/24 12:44 PM, Mariam Arutunian wrote:
> > This patch adds a new compiler pass aimed at identifying naive CRC
> > implementations,
> > characterized by the presence of a loop calculating a CRC (polynomial
&
On Sun, Nov 24, 2024, 08:59 Jeff Law wrote:
>
>
> On 11/13/24 7:16 AM, Mariam Arutunian wrote:
>
> >
> >
> > To address this, I added code in |target-supports.exp| and modified the
> > relevant tests.
> > I've attached the patch. Could you please
internal functions.
* optabs.def (crc_optab, crc_rev_optab): New optabs.
Signed-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/doc/md.texi | 14 ++
gcc/expr.cc | 372
gcc/expr.h | 6 +
gcc
Hello,
This patch series is a revised version of the following:
https://gcc.gnu.org/pipermail/gcc-patches/2024-October/665855.html .
I have addressed the feedback on the emit_crc function in patch 01/12, and
Matevos has provided additional comments for patch 09/12.
Thanks,
Mariam
public
and static.
(create_reversed_lfsr): New static function declaration.
(create_forward_lfsr): New static function declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/crc-verification.cc| 1298
.
* crc-CCIT-data16-zbc.c: Likewise.
* crc-CCIT-data16-zbkc.c: Likewise.
* crc-CCIT-data8-zbc.c: Likewise.
* crc-CCIT-data8-zbkc.c: Likewise.
* crc-coremark-16bitdata-zbc.c: Likewise.
* crc-coremark-16bitdata-zbkc.c: Likewise.
Signed-off-by: Mariam Arutunian
-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/builtin-types.def | 20 +++
gcc/builtins.cc | 114 +-
gcc/builtins.def | 21 +++-
gcc/builtins.h
gcc/testsuite/gcc.target/riscv/
* crc-builtin-zbc32.c: New file.
* crc-builtin-zbc64.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
.../gcc.target/riscv/crc-builtin-zbc32.c | 21 ++
.../gcc.target/riscv/crc-builtin-zbc64.c | 66
gcc/testsuite/gcc.target/aarch64/
* crc-builtin-pmul64.c: New test.
Signed-off-by: Mariam Arutunian
---
.../gcc.target/aarch64/crc-builtin-pmul64.c | 61 +++
1 file changed, 61 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
diff
* sym-exec-expression-is-a-helper.h: New file.
* sym-exec-expression.cc: New file.
* sym-exec-expression.h: New file.
* sym-exec-state.cc: New file.
* sym-exec-state.h: New file.
Signed-off-by: Mariam Arutunian
Author: Matevos Mehrabyan
Co-authored-by: Mariam Arutunian
Mentored-by
s.h (make_pass_crc_optimization): New extern function
declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/common.opt | 10 +
gcc/common.opt.urls|3 +
gcc/doc/invoke.texi| 16 +-
gcc/gimple-
-pmul.c: Likewise.
* crc-coremark-16bitdata-pmul.c: Likewise.
* crc-crc32-data16.c: Likewise.
* crc-crc32-data32.c: Likewise.
* crc-crc32-data8.c: Likewise.
* crc-crc32c-data16.c: Likewise.
* crc-crc32c-data32.c: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam
: Likewise.
* crc-8-pclmul.c: Likewise.
* crc-9-pclmul.c: Likewise.
* crc-CCIT-data16-pclmul.c: Likewise.
* crc-CCIT-data8-pclmul.c: Likewise.
* crc-coremark-16bitdata-pclmul.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/config/i386/i386-protos.h
(optimize_crc_loop): New function.
(execute): Add optimize_crc_loop function call.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/gimple-crc-optimization.cc | 78 ++
1 file changed, 78 insertions(+)
diff --git a/gcc/gimple-crc-optimization.cc
public
and static.
(create_reversed_lfsr): New static function declaration.
(create_forward_lfsr): New static function declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/crc-verification.cc| 1299
s.h (make_pass_crc_optimization): New extern function
declaration.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/Makefile.in|1 +
gcc/common.opt | 10 +
gcc/common.opt.urls|3 +
gcc/doc/invoke.texi| 16 +-
gcc/gimple-
gcc/testsuite/gcc.target/aarch64/
* crc-builtin-pmul64.c: New test.
Signed-off-by: Mariam Arutunian
---
.../gcc.target/aarch64/crc-builtin-pmul64.c | 61 +++
1 file changed, 61 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
diff
Hello,
This patch series is a revised version of the following:
https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668229.html.
In this version:
- Patch 09/12 has been updated with comments provided by Matevos, which
were missing in the previously submitted series.
- Patch 06/12 in
.
* crc-CCIT-data16-zbc.c: Likewise.
* crc-CCIT-data16-zbkc.c: Likewise.
* crc-CCIT-data8-zbc.c: Likewise.
* crc-CCIT-data8-zbkc.c: Likewise.
* crc-coremark-16bitdata-zbc.c: Likewise.
* crc-coremark-16bitdata-zbkc.c: Likewise.
Signed-off-by: Mariam Arutunian
internal functions.
* optabs.def (crc_optab, crc_rev_optab): New optabs.
Signed-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/doc/md.texi | 14 ++
gcc/expr.cc | 372
gcc/expr.h | 6 +
gcc
-target32.c
* gcc.dg/crc-builtin-target64.c
Signed-off-by: Mariam Arutunian
Co-authored-by: Joern Rennecke
Mentored-by: Jeff Law
---
gcc/builtin-types.def | 20 +++
gcc/builtins.cc | 114 +-
gcc/builtins.def
: Likewise.
* crc-8-pclmul.c: Likewise.
* crc-9-pclmul.c: Likewise.
* crc-CCIT-data16-pclmul.c: Likewise.
* crc-CCIT-data8-pclmul.c: Likewise.
* crc-coremark-16bitdata-pclmul.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/config/i386/i386-protos.h
: Likewise.
* crc-crc32c-data8.c: Likewise.
Signed-off-by: Mariam Arutunian
Co-authored-by: Richard Sandiford
---
gcc/config/aarch64/aarch64-protos.h | 3 +
gcc/config/aarch64/aarch64-simd.md| 2 +-
gcc/config/aarch64/aarch64.cc | 131
gcc/testsuite/gcc.target/riscv/
* crc-builtin-zbc32.c: New file.
* crc-builtin-zbc64.c: Likewise.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
.../gcc.target/riscv/crc-builtin-zbc32.c | 21 ++
.../gcc.target/riscv/crc-builtin-zbc64.c | 66
(optimize_crc_loop): New function.
(execute): Add optimize_crc_loop function call.
Signed-off-by: Mariam Arutunian
Mentored-by: Jeff Law
---
gcc/gimple-crc-optimization.cc | 78 ++
1 file changed, 78 insertions(+)
diff --git a/gcc/gimple-crc-optimization.cc
Thank you all very much for your help! )
Mariam
On Tue, Dec 10, 2024, 04:04 Jeff Law wrote:
>
>
> On 12/9/24 3:43 PM, Richard Sandiford wrote:
>
> >> Thanks. I was just about to reach out to confirm we're OK on aarch64.
> >> I was going to run everything through one of the cfarm machines or
>
On Mon, Dec 16, 2024 at 5:20 PM Xi Ruoyao wrote:
> A generic CRC optimization pass has been implemented in r15-5850. But
> without target-specific code, it'll only optimize the CRC loop to a
> table lookup. With LoongArch-specific code we can do it better: for
> 64-bit LoongArch and the IEEE 80
On Fri, Nov 22, 2024, 20:29 Jeff Law wrote:
>
>
> On 11/13/24 7:16 AM, Mariam Arutunian wrote:
> >
> >
> > On Tue, Nov 12, 2024 at 2:15 AM Jeff Law > <mailto:jeffreya...@gmail.com>> wrote:
> >
> >
> > > \ No newline at end of fil
Fixed the iteration number in crc-crc32c-data16.c test from 8 to 16 to
match the test name.
From d5f5bab516e45da6fa8a65dac106add2b4e4602f Mon Sep 17 00:00:00 2001
From: Mariam Arutunian
Date: Wed, 26 Mar 2025 16:03:54 +0400
Subject: [PATCH] Fixed the iteration number in crc-crc32c-data16.c test
Yes, thank you!
On Sun, Mar 30, 2025, 19:40 Sam James wrote:
> Fixed the iteration number in crc-crc32-data16.c test from 8 to 16 to
> match the test name, just like in r15-9038-gdf55a933cfc675.
>
> gcc/testsuite/ChangeLog:
> * gcc.target/aarch64/crc-crc32-data16.c: Fix iteration
>
1 - 100 of 101 matches
Mail list logo