<div dir="ltr"><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">Hello All,</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">I read the documentation and I was able to fetch the variable names and source locations attached to metadata for call instructions (@llvm.dbg.declare) using dyn_cast<DbgVariableIntrinsic>. I wanted to check if we could fetch the variable names in the load/gep instructors using debugInfo. I want to collect the use variable object details within the function.</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif"> </span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">I could only fetch the source locations (not the variable names) using !dbg attached to the load instructions. Any pointers if that is allowed.</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif"><br><b>C code:</b> </span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">int foo (bar_t *b, int len)</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">{</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">    if (b == (bar_t *)NULL) {</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">        return 0;</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">    }</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">    return -1;</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">}</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif"> </span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><b><span style="font-size:10pt;font-family:Arial,sans-serif">IR optimised code through LTO:</span></b><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">; Function Attrs: noinline nounwind optnone uwtable</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">define i32 @foo(%struct.bar_t*, i32) #0 !dbg !10 {</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %3 = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %4 = add i64 %3, 1</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %5 = alloca i32, align 4</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %6 = alloca % struct.bar_t*, align 8</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %7 = alloca i32, align 4</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  store % struct.bar_t* %0, % struct.bar_t** %6, align 8</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  call void @llvm.dbg.declare(metadata % struct.bar_t** %6, metadata !11, metadata !DIExpression()), !dbg !12</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  store i32 %1, i32* %7, align 4</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  call void @llvm.dbg.declare(metadata i32* %7, metadata !12, metadata !DIExpression()), !dbg !14</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %8 = load % struct.bar_t*, % struct.bar_t** %6, align 8, !dbg !15</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  %9 = icmp eq % struct.bar_t* %8, null, !dbg !16</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">  br i1 %9, label %10, label %11, !dbg !17</span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif"> </span><span style="font-family:Arial,sans-serif"></span></p><p class="MsoNormal" style="margin:0cm;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;vertical-align:baseline;font-size:12pt;font-family:Calibri,sans-serif"><span style="font-size:10pt;font-family:Arial,sans-serif">Many Thanks.</span></p></div>