[LLVMdev] LongTy in LowerInvoke.cpp

Chris Lattner sabre at nondot.org
Thu May 12 22:59:15 PDT 2005


On Fri, 13 May 2005, Markus F.X.J. Oberhumer wrote:
> Chris Lattner wrote:
>> On Fri, 13 May 2005, Markus F.X.J. Oberhumer wrote:
>> 
>>> There is still one unneeded LongTy in LowerInvoke.cpp - something like 
>>> this pseudo-diff should probably get applied.
>> 
>> 
>> What does this impact?
>
> This causes code like
>
> write(2, (&(l227_abortmsg[0ll])), 95);
>
> in the CBE, which not all 32-bit compilers do like.

Ah ok, in that case, the CBE should be fixed.  There are other cases that 
could cause long arguments to exist on 32-bit systems.  If the C compiler 
takes issue with this, it would be best to tell the CBE to emit casts to C 
(long) or something.

-Chris

>> -Chris
>> 
>>> Index: LowerInvoke.cpp
>>> ===================================================================
>>> RCS file: /var/cvs/llvm/llvm/lib/Transforms/Scalar/LowerInvoke.cpp,v
>>> retrieving revision 1.23
>>> diff -r1.23 LowerInvoke.cpp
>>> 160c160
>>> <     std::vector<Constant*> GEPIdx(2, 
>>> Constant::getNullValue(Type::LongTy));
>>> ---
>>> 
>>>>     std::vector<Constant*> GEPIdx(2, 
>>> 
>>> Constant::getNullValue(XXX::IntPtrTy));
>>> 173c173
>>> <     std::vector<Constant*> GEPIdx(2, 
>>> Constant::getNullValue(Type::LongTy));
>>> ---
>>> 
>>>>     std::vector<Constant*> GEPIdx(2, 
>>> 
>>> Constant::getNullValue(XXX::IntPtrTy));
>>> 
>>> 
>> 
>> -Chris
>> 
>
>
>

-Chris

-- 
http://nondot.org/sabre/
http://llvm.cs.uiuc.edu/




More information about the llvm-dev mailing list