<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span>Hi,</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span><br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span>I'm new to LLVM and I ran llc with -print-before-all and I can see that the IR is already wrong before Expand ISel Pseudo-instructions. The MOVE instruction moves a register to itself and shouldn't be there. How do you debug something like this?
<br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span><br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:"Courier New",monospace">*** IR Dump After Module Verifier ***</span><span><br>
</span>
<div><span style="font-family:"Courier New",monospace">define i32* @_Z9test_mathv() #0 {</span><br>
</div>
<div><span style="font-family:"Courier New",monospace">  %a = alloca i32, align 4</span><br>
</div>
<div><span style="font-family:"Courier New",monospace">  ret i32* %a</span><br>
</div>
<div><span style="font-family:"Courier New",monospace">}</span><br>
</div>
<div><span style="font-family:"Courier New",monospace"># *** IR Dump Before Expand ISel Pseudo-instructions ***:</span><br>
</div>
<div><span style="font-family:"Courier New",monospace"># Machine code for function _Z9test_mathv: Properties: <></span><br>
</div>
<div><span style="font-family:"Courier New",monospace">Frame Objects:</span><br>
</div>
<div><span style="font-family:"Courier New",monospace">  fi#0: size=4, align=4, at location [SP]</span><br>
</div>
<div><br>
</div>
<div><span style="font-family:"Courier New",monospace">BB#0: derived from LLVM BB %0</span><br>
</div>
<div><span style="font-family:"Courier New",monospace">        <b>%vreg0<def> = MOVE %vreg0;</b> CPURegs:%vreg0</span><br>
</div>
<div><span style="font-family:"Courier New",monospace">        %R4<def> = COPY %vreg0; CPURegs:%vreg0</span><br>
</div>
<span style="font-family:"Courier New",monospace">        JLR %R4</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:"Courier New",monospace"><br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:"Courier New",monospace"><br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:"Courier New",monospace"><br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:"Courier New",monospace"><br>
</span></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:Calibri,Helvetica,sans-serif">Thanks</span><br>
</div>
</body>
</html>