From 35f43aae703e4868d4e9b7e934b4948e46fbb933 Mon Sep 17 00:00:00 2001
From: Bill Wendling
A metadata string is a string surrounded by double quotes. It can contain - any character by escaping non-printable characters with "\xx" where "xx" is - the two digit hex code. For example: "!"test\00"".
+ any character by escaping non-printable characters with "\xx" where + "xx" is the two digit hex code. For example: + "!"test\00"".Metadata nodes are represented with notation similar to structure constants (a comma separated list of elements, surrounded by braces and preceded by an - exclamation point). For example: "!{ metadata !"test\00", i32 - 10}". Metadata nodes can have any values as their operand.
+ exclamation point). Metadata nodes can have any values as their operand. For + example: + ++!{ metadata !"test\00", i32 10} ++
A named metadata is a collection of metadata nodes, which can be looked up in the module symbol table. For - example: "!foo = metadata !{!4, !3}". + example:
+ ++!foo = metadata !{!4, !3} ++
Metadata can be used as function arguments. Here llvm.dbg.value - function is using two metadata arguments.
+ function is using two metadata arguments:@@ -2911,7 +2924,8 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25)
Metadata can be attached with an instruction. Here metadata !21 is - attached with add instruction using !dbg identifier.
+ attached to the add instruction using the !dbg + identifier:@@ -2922,6 +2936,7 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25)More information about specific metadata nodes recognized by the optimizers and code generator is found below.
+'tbaa' Metadata
@@ -2966,6 +2981,7 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25)