<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<body>
<div name="messageBodySection">
<div dir="auto">Hello,
<div dir="auto">I’m trying to insert an instruction if a specific label name/string is encountered and would appreciate some guidance on where I should start. Basically when parsing going through this .ll file:</div>
<div dir="auto"><br>
</div>
<div dir="auto">
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">; Function Attrs: noinline nounwind optnone uwtable</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">define i32 @main(i32, i8**) #0 {</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %3 = alloca i32, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %4 = alloca i32, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %5 = alloca i8**, align 8</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %6 = alloca i32, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %7 = alloca i32, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  store i32 0, i32* %3, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  store i32 %0, i32* %4, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  store i8** %1, i8*** %5, align 8</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  store i32 2, i32* %6, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  store i32 3, i32* %7, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %8 = load i32, i32* %6, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %9 = load i32, i32* %7, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %10 = icmp slt i32 %8, %9</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  sbr i1 %10, label %true, label %false</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF"><br>
</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">true:  </font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %true1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i32 0, i32 0))</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  br label %end</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF"><br>
</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">false:</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %false1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i32 0, i32 0))</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  br label %end</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF"><br>
</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">end:</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  %end1 = load i32, i32* %3, align 4</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">  ret i32 %end1</font></p>
<p style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;">
<font color="#FFFFFF">}</font></p>
<p style="margin: 0px; font-stretch: normal; line-height: normal;"><font face=".AppleSystemUIFont"><br>
</font></p>
<p style="margin: 0px; font-stretch: normal; line-height: normal;"><font face=".AppleSystemUIFont">I want to insert a new instruction when I encounter the true, false, and end labels (inside their respective blocks). I tried to detect the label names using
 "</font><span style="caret-color: rgb(213, 218, 222);"> </span><span style="caret-color: rgb(213, 218, 222);">I.printAsOperand(errs(), false);” </span>when parsing the instructions in SelectionDAGBuilder but it was only visiting instructions in the first/main
 BB and outputted %2. Which pass or phase would be the best to see if the current block’s label matches “true”, “false”, or “end” and insert an instruction inside that block?</p>
<p style="margin: 0px; font-stretch: normal; line-height: normal;"><br>
</p>
<p style="margin: 0px; font-stretch: normal; line-height: normal;">Thank you,</p>
<p style="margin: 0px; font-stretch: normal; line-height: normal;">Kaarthik A.</p>
</div>
</div>
</div>
</body>
</html>