[PATCH] [arm] Implement Armv8.1-M low overhead loops

Andrea Corallo andrea.corallo@arm.com
Tue Feb 11 10:15:00 GMT 2020


Hi all,

This patch enables the Armv8.1-M Mainline LOB (low overhead branch) extension
low overhead loops (LOL) feature by using the loop-doloop pass
that it shares with the Swing Modulo Scheduler.

bootstrapped arm-none-linux-gnueabihf, does not introduce testsuite regressions.

Andrea

gcc/ChangeLog:

2020-??-??  Andrea Corallo  <andrea.corallo@arm.com>
2020-??-??  Mihail-Calin Ionescu  <mihail.ionescu@arm.com>
2020-??-??  Iain Apreotesei  <iain.apreotesei@arm.com>

        * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP):
        (arm_invalid_within_doloop): Implement invalid_within_doloop hook.
        * config/arm/arm.h (TARGET_HAVE_LOB): Add new macro.
        * config/arm/thumb2.md (*doloop_end, doloop_begin, dls_insn):
        Add new patterns.
        * config/arm/unspecs.md: Add new unspec.

gcc/testsuite/ChangeLog:

2020-??-??  Andrea Corallo  <andrea.corallo@arm.com>
2020-??-??  Mihail-Calin Ionescu  <mihail.ionescu@arm.com>
2020-??-??  Iain Apreotesei  <iain.apreotesei@arm.com>

        * gcc.target/arm/lob.h: New header.
        * gcc.target/arm/lob1.c: New testcase.
        * gcc.target/arm/lob2.c: Likewise.
        * gcc.target/arm/lob3.c: Likewise.
        * gcc.target/arm/lob4.c: Likewise.
        * gcc.target/arm/lob5.c: Likewise.
        * gcc.target/arm/lob6.c: Likewise.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: lol.patch
Type: text/x-diff
Size: 12343 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20200211/66614ea2/attachment.bin>


More information about the Gcc-patches mailing list