<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hi,Matt</div><div>Thank you for your <span class="gt-baf-word-clickable">suggestion</span>.</div><div>I'm sorry that I reply to you so late. <br></div><div>About  building a debug version, I don't know whether adding "<code class="docutils literal notranslate"><span class="pre">-DCMAKE_BUILD_TYPE=DEBUG</span></code>" when I cmake LLVM is right way.<br></div><div>The result .s file after using 'llc test.ll -stop-after machine-cp' has my intrinsic and <span id="result_box" class="short_text" lang="en"><span class="">the binary file also have.But it can't run.</span></span></div><div><br><span id="result_box" class="short_text" lang="en"><span class="">Thank you again,</span></span></div><div><span id="result_box" class="short_text" lang="en"><span class="">Tianhao Shen.<br></span></span></div><br><div style="position:relative;zoom:1"></div><div id="divNeteaseMailCard"></div><br><pre><br>At 2018-10-30 07:37:31, Matthew.Davis@sony.com wrote:
>Hi Tianhao,
>
>> From: llvm-dev <llvm-dev-bounces@lists.llvm.org> On Behalf Of ??? via llvm-dev
>> Subject: [llvm-dev] How to debug LLVM
>> 
>> HiŁ¬every one.
>> I want to add an intrinsics which mapping a new instruction.
>> What I added in LLVM  can compile and link.  But when I lli test.bc, it breaks down. 
>> I want to know where is wrong, but bugpoint tool and XRay don't find the wrong.
>> (Maybe I use these tools incorrectly. ) I want to know how to debug intrinsics and  instruction.
>> Thank you,
>> Tianhao Shen.
>
>When you say "it breaks down," I assume you mean there is some internal compiler crash? 
>I'd suggest building a debug version of the compiler, if you do not already have one. 
>Assertions are very helpful in debugging, and if you are trying to resolve a crash, analyzing 
>crashes from a debugger is much simpler than using a release build.
>
>Before you run lli, have you examined the machine instruction representation?  One trick
>you might find handy is the following:  emit your test code as llvm IR and ensure your
>intrinsic is represented correctly in IR.  You can feed that IR file into 'llc' and dump the
>machine code representation.  To take a peek at the machine form of your code, run llc: 
>'llc test.ll -stop-after machine-cp'  where test.ll is your IR file that uses your newly added
>intrinsic. The resulting .s file should have the lowered MachineInstr representation
>which should present your newly added instruction.
>
>Hope that helps,
>
>-Matt
</pre></div><br><br><span title="neteasefooter"><p><br/> </p></span>