[llvm-commits] [llvm] r71610 - in /llvm/trunk: include/llvm/CodeGen/MachineFunction.h include/llvm/Intrinsics.td lib/CodeGen/MachineFunction.cpp lib/CodeGen/PrologEpilogInserter.cpp lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp lib/Target/ARM/ARMISelLowering.cpp lib/Target/ARM/ARMISelLowering.h lib/Target/ARM/ARMInstrInfo.cpp lib/Target/ARM/ARMInstrInfo.td

Jim Grosbach grosbach at apple.com
Wed May 13 11:24:27 PDT 2009


On May 13, 2009, at 12:26 AM, Duncan Sands wrote:

> Hi Jim,
>
>> +let Properties = [IntrNoMem] in {
>
> doesn't this mean that all builtinlongjmp intrinsics will be
> deleted (since they have no return value, their result is never
> used) and likewise for every builtinsetjmp if the result is unused?
> I suppose this may not matter if they are only being generated by
> the backend, but it seems philosophically very wrong.

Agreed. This is something I want to get straightened out to be more  
accurate. Regardless if whether it will cause incorrectness, it's  
important that the definitions match what's actually going on as much  
as possible.

>
>
>> +def int_builtinsetjmp  : Intrinsic<[llvm_i32_ty],  [llvm_ptr_ty]>;
>> +def int_builtinlongjmp : Intrinsic<[llvm_void_ty], [llvm_ptr_ty,  
>> llvm_i32_ty]>;
>
> How about using GCCBuiltin to have these be automagically mapped to  
> the GCC intrinsics
> by the CBE?


Did my response to Chris' email cover your question? Happy to  
elaborate if not.

Thanks!

-Jim



More information about the llvm-commits mailing list