[Lldb-commits] [lldb] 17cc120 - [lldb] Add a class comment for Materializer. NFC. (#214889)

via lldb-commits lldb-commits at lists.llvm.org
Sat Aug 8 18:41:14 PDT 2026


Author: Lang Hames
Date: 2026-08-09T11:41:09+10:00
New Revision: 17cc120d33b1759c091fce29be22d7da26c17018

URL: https://github.com/llvm/llvm-project/commit/17cc120d33b1759c091fce29be22d7da26c17018
DIFF: https://github.com/llvm/llvm-project/commit/17cc120d33b1759c091fce29be22d7da26c17018.diff

LOG: [lldb] Add a class comment for Materializer. NFC. (#214889)

Added: 
    

Modified: 
    lldb/include/lldb/Expression/Materializer.h

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Expression/Materializer.h b/lldb/include/lldb/Expression/Materializer.h
index 64ed545febf15..d7e0a9dc85e59 100644
--- a/lldb/include/lldb/Expression/Materializer.h
+++ b/lldb/include/lldb/Expression/Materializer.h
@@ -21,6 +21,18 @@
 
 namespace lldb_private {
 
+/// Materializer packs the variables an expression reads and writes into a
+/// single argument struct, and unpacks them again afterward.
+///
+/// Expressions can't have real addresses for the variables they touch baked
+/// into their IR, since some of those addresses (e.g. frame-relative locals)
+/// aren't known until the moment of execution. IRForTarget rewrites such
+/// accesses into reads from one struct instead, registering an Entity per
+/// variable via AddVariable/AddPersistentVariable/AddResultVariable.
+/// Materialize() lays out and populates that struct against a target
+/// IRMemoryMap, independent of whether the expression is later interpreted or
+/// JIT'd and run; the returned Dematerializer reverses the process afterward,
+/// copying side effects back out and extracting the result.
 class Materializer {
 public:
   Materializer() = default;


        


More information about the lldb-commits mailing list