You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -224,8 +224,8 @@ Each user-defined type layout is assigned a unique integer type-id. Built-in typ
224
224
225
225
Type layouts are generated using one of the following methods:
226
226
227
-
* LLVM IR Type System: Extracts types directly from LLVM IR (`--typeart-typegen=ir`).
228
-
* LLVM Debug Metadata (Default): Extracts types using the llvm-dimeta library and LLVM debug metadata (`--typeart-typegen=dimeta`).
227
+
***LLVM IR Type System**: Extracts types directly from LLVM IR (`--typeart-typegen=ir`).
228
+
***LLVM Debug Metadata** (Default): Extracts types using the llvm-dimeta library and LLVM debug metadata (`--typeart-typegen=dimeta`).
229
229
230
230
During execution, TypeART’s runtime library uses the type-id from callbacks to associate allocations with their type and layout. For example, consider the following struct:
231
231
@@ -245,15 +245,16 @@ The TypeART pass may write a `types.yaml` file with the following content:
types: [ 0, 10 ] // member type-ids (0->char, 10->pointer)
248
+
types: [ 5, 1 ] // member type-ids (5->char, 1->pointer)
249
249
sizes: [ 3, 1 ] // member (array) length
250
250
```
251
251
252
252
<!--- @formatter:on --->
253
253
254
-
##### Limitations
254
+
##### Limitations of LLVM IR Type System
255
255
256
-
The type-id system is tailored for LLVM IR types, which imposes certain constraints. For instance, C/C++ types like unsigned integers are currently unsupported (and represented like signed integers). The list of supported built-in type-ids is defined in [TypeInterface.h](lib/typelib/TypeInterface.h) and reflects the types that TypeART can represent.
256
+
The list of supported built-in type-ids is defined in [TypeInterface.h](lib/typelib/TypeInterface.h) and reflects the types that TypeART can represent with **LLVM Debug Metadata**.
257
+
In contrast, when using **LLVM IR Type System**, certain constraints are imposed. For instance, C/C++ types like unsigned integers are unsupported (and represented like signed integers).
0 commit comments