Ping

On 9/2/25 3:44 PM, [email protected] wrote:
> From: Claudiu Zissulescu <[email protected]>
> 
> Hi,
> 
> Please find series of patches for adding memtag-stack sanitizer using
> AArch64 MTE instructions.
> 
> Most of the patches are ACKed, however, I have included them for
> reference. The remaining ones to be reviews are:
> 
>   * target-insns.def: (compose_tag) New pattern.
>   * aarch64: Add support for memetag-stack sanitizer using MTE insns
> 
> The first patch introduces a new target pattern (compose_tag) which is
> used exclusively for memtag sanitizer.  This pattern replaces the
> previously introduced hook TARGET_MEMTAG_COMPOSE_OFFSET_TAG.
> 
> The second patch reverts the usage of the memory barrier to unspec
> volatile patterns. The post/pre increment/decrement patterns are
> implemented using a code iterator, avoiding in this way the problem of
> having patterns with multiple memory updates into instruction
> patterns. It also fixes the other found issues in the previous patch
> series.
> 
> For the ACKed patches, there are slight changes which I would like to
> list them:
> 
>  * aarch64: Add memtag-stack tests
>     - New comments added to the tests.
>     - More matching patterns added too.
>     - A new execution test that uses memtag-stack sanitizer and pthreads.
>     - Moved the check_effective_target_memtag_exec predicate to
>       target-supports.exp
> 
>  * asan: add new memtag sanitizer
>     - Fix formating.   
>     - Comment on -fsanitize-recover flag manipulation: The
>       modification is there to avoid calling memtag-stack sanitizer
>       when -fsanitize-recove=all is used.
>     - Update fsanitize=memtag-stack documentation to underline the
>       probabilistic nature of this sanitizer.
> 
>   * asan: memtag-stack add support for MTE instructions
>     - Fix formating, and text.
>     - Use compose_tag instruction pattern for memtag-stack sanitizer.
> 
> Thank you for all your help,
> Claudiu
> 
> Claudiu Zissulescu (4):
>   target-insns.def: (tag_memory) New pattern.
>   target-insns.def: (compose_tag) New pattern.
>   asan: memtag-stack add support for MTE instructions
>   aarch64: Add support for memetag-stack sanitizer using MTE insns
> 
> Indu Bhagat (2):
>   asan: add new memtag sanitizer
>   aarch64: Add memtag-stack tests
> 
>  gcc/asan.cc                                   | 231 +++++++++---
>  gcc/asan.h                                    |  10 +-
>  gcc/builtins.def                              |   1 +
>  gcc/cfgexpand.cc                              |  29 +-
>  gcc/config/aarch64/aarch64-builtins.cc        |   7 +-
>  gcc/config/aarch64/aarch64-linux.h            |   4 +-
>  gcc/config/aarch64/aarch64-protos.h           |   3 +
>  gcc/config/aarch64/aarch64.cc                 | 333 +++++++++++++++++-
>  gcc/config/aarch64/aarch64.md                 | 127 +++++--
>  gcc/config/aarch64/constraints.md             |  21 ++
>  gcc/config/aarch64/iterators.md               |  20 ++
>  gcc/config/aarch64/predicates.md              |  13 +-
>  gcc/doc/invoke.texi                           |  20 +-
>  gcc/doc/md.texi                               |  10 +
>  gcc/doc/tm.texi                               |   6 +-
>  gcc/flag-types.h                              |   4 +
>  gcc/gcc.cc                                    |   2 +
>  gcc/gimplify.cc                               |   5 +-
>  gcc/internal-fn.cc                            |  68 +++-
>  gcc/internal-fn.def                           |   1 +
>  gcc/opts.cc                                   |  22 +-
>  gcc/params.opt                                |   8 +
>  gcc/sanopt.cc                                 |   2 +-
>  gcc/target-insns.def                          |   2 +
>  gcc/target.def                                |  10 +-
>  .../gcc.target/aarch64/acle/memtag_1.c        |   4 +-
>  .../gcc.target/aarch64/memtag/alloca-1.c      |  14 +
>  .../gcc.target/aarch64/memtag/alloca-3.c      |  27 ++
>  .../gcc.target/aarch64/memtag/arguments-1.c   |   3 +
>  .../gcc.target/aarch64/memtag/arguments-2.c   |   3 +
>  .../gcc.target/aarch64/memtag/arguments-3.c   |   3 +
>  .../gcc.target/aarch64/memtag/arguments-4.c   |  16 +
>  .../gcc.target/aarch64/memtag/arguments.c     |   3 +
>  .../gcc.target/aarch64/memtag/basic-1.c       |  14 +
>  .../gcc.target/aarch64/memtag/basic-3.c       |  28 ++
>  .../gcc.target/aarch64/memtag/basic-struct.c  |  22 ++
>  .../aarch64/memtag/cfi-mte-memtag-frame-1.c   |  11 +
>  .../gcc.target/aarch64/memtag/large-array.c   |  23 ++
>  .../aarch64/memtag/local-no-escape.c          |  22 ++
>  .../gcc.target/aarch64/memtag/memtag.exp      |  32 ++
>  .../gcc.target/aarch64/memtag/mte-sig.h       |  15 +
>  .../aarch64/memtag/no-sanitize-attribute.c    |  18 +
>  .../gcc.target/aarch64/memtag/texec-1.c       |  27 ++
>  .../gcc.target/aarch64/memtag/texec-2.c       |  22 ++
>  .../gcc.target/aarch64/memtag/texec-3.c       |  37 ++
>  .../gcc.target/aarch64/memtag/value-init.c    |  14 +
>  .../aarch64/memtag/vararray-gimple.c          |  16 +
>  .../gcc.target/aarch64/memtag/vararray.c      |  14 +
>  .../gcc.target/aarch64/memtag/vla-1.c         |  39 ++
>  .../gcc.target/aarch64/memtag/vla-2.c         |  48 +++
>  .../gcc.target/aarch64/memtag/zero-init.c     |  14 +
>  gcc/testsuite/lib/target-supports.exp         |  44 +++
>  52 files changed, 1369 insertions(+), 123 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/alloca-1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/alloca-3.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/arguments-1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/arguments-2.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/arguments-3.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/arguments-4.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/arguments.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/basic-1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/basic-3.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/basic-struct.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/memtag/cfi-mte-memtag-frame-1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/large-array.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/local-no-escape.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/memtag.exp
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/mte-sig.h
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/memtag/no-sanitize-attribute.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/texec-1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/texec-2.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/texec-3.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/value-init.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/vararray-gimple.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/vararray.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/vla-1.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/vla-2.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/memtag/zero-init.c
> 

Reply via email to