[llvm-dev] [MTE] Tagging Globals
Mitch Phillips via llvm-dev
llvm-dev at lists.llvm.org
Tue Jul 14 19:09:48 PDT 2020
Hi Zhaoshi,
Currently there's no global tagging instrumentation for MTE. We have a good
idea about the implementation's design - but no patches are ready to be
shared at this stage.
If you'd like - I'd be more than happy to CC yourself and Stephen on any
Phabricator reviews :).
On Tue, Jul 14, 2020 at 5:04 PM Zhaoshi Zheng via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hello,
>
>
>
> We’re evaluating memory tagging (MTE) on some internal workloads.
>
>
>
> We noticed that stack variables are tagged by an instrumentation pass and
> heap objects are handled by the allocator (Scudo).
>
>
>
> How about global variables? We tried a simple case using
> -march=armv8a+memtag -fsanitize=memtag, but found no tagging:
>
>
>
> Are we missing anything or tagging globals is still in progress?
>
>
>
> *int global_array[16];*
>
>
>
> *int main(int argc, char **argv) {*
>
> * global_array[1] = 0;*
>
> * return global_array[argc + 16]; // BOOM*
>
> *}*
>
>
>
> clang++ -O1 --target=aarch64-linux -march=armv8.5a+memtag
> -fsanitize=memtag test.cpp -S -o test.s
>
>
>
> *main: // @main*
>
> *.Lmain$local:*
>
> *// %bb.0: // %entry*
>
> * adrp x8, global_array*
>
> * add x8, x8, :lo12:global_array*
>
> * str wzr, [x8, #4]*
>
> * add x8, x8, w0, sxtw #2*
>
> * ldr w0, [x8, #64]*
>
> * ret*
>
> *.Lfunc_end0:*
>
> * .size main, .Lfunc_end0-main*
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200714/df9f006a/attachment.html>
More information about the llvm-dev
mailing list