[llvm-commits] [llvm] r156593 - in /llvm/trunk: docs/LangRef.html include/llvm/CodeGen/ISDOpcodes.h include/llvm/Intrinsics.td include/llvm/Target/TargetSelectionDAG.td lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp lib/Target/X86/X86InstrSystem.td test/CodeGen/X86/trap.ll

Nick Lewycky nicholas at mxc.ca
Fri May 11 12:12:33 PDT 2012


Dan Gohman wrote:
>
> On May 10, 2012, at 10:26 PM, Nick Lewycky wrote:
>
>> Dan Gohman wrote:
>>> Modified: llvm/trunk/docs/LangRef.html
>>> +<h5>Semantics:</h5>
>>> +<p>This intrinsic is lowered to code which is intended to cause an
>>> execution
>>> + trap with the intention of requesting the attention of a debugger.</p>
>>
>> ... but no other effect? Is that how it's different from @llvm.trap,
>> that if there is no debugger, the program continue running normally?
>
> The main difference is that on x86 it generates int3, rather than ud2.
> Perhaps I
> tried to hard to make the language generic.

Right, but I don't know what that does either. I know that ud2 is going 
to stop your program (signal handlers notwithstanding), but what does 
int 3 do? Call into the debugger if there is a debugger, otherwise the 
program trundles along? Or does it do the exact same thing as ud2? (In 
which case, what's the point of this new intrinsic?)

Nick



More information about the llvm-commits mailing list