[llvm-dev] Advice on memory copy instrumentation (original) (raw)
Matt Fysh via llvm-dev llvm-dev at lists.llvm.org
Wed Feb 19 15:06:54 PST 2020
- Previous message: [llvm-dev] EuroLLVM'20: Diversity and Inclusion in Compilers and Tools workshop announcement
- Next message: [llvm-dev] Advice on memory copy instrumentation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi all,
Given a couple of lines of C++ code int x = 42; int y = x
, we end up with
the following LLVM IR instructions:
%x = alloca i32, align 4 %y = alloca i32, align 4 store i32 42, i32* %x, align 4 %0 = load i32, i32* %x, align 4 store i32 %0, i32* %y, align 4
Is it possible to instrument the IR to perform a value trace?
What I'd like to do is stream a log of memory copies (reads then writes), such that in this example, the final instruction will produce a log event along the lines of: "COPY: Value at
copied to "?Essentially what I'd like to do is annotate particular values, so that when these same values are encountered again later in the program, I can retrieve the annotation. I will also need the annotation to survive copies, moves, etc. This could be considered a lightweight, parallel symbolic trace performed at runtime on a very small subset of program values.
I am hoping to implement this tooling at the LLVM IR level, so that it can be useful beyond C++, but if it's easier to instrument the CLang AST instead then I guess I can start there. Looking forward to your responses :) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200220/406146e7/attachment.html>
- Previous message: [llvm-dev] EuroLLVM'20: Diversity and Inclusion in Compilers and Tools workshop announcement
- Next message: [llvm-dev] Advice on memory copy instrumentation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]