[LLVMdev] Arbitrary bit width integers

Reid Spencer rspencer at reidspencer.com
Mon Jun 18 11:00:35 PDT 2007


Sandro Magi wrote:

>Where does the storage for large bit width integers come from? Are
>very large numbers heap allocated?
>  
>
The ConstantInt class stores integer values. Large or not they are 
stored using an APInt object. APInt (lib/Support/APInt.cpp) uses an 
array of uint64_t if more than two are needed or an inline uint64_t in 
the APInt object.  So, yes, they are heap allocated.  This is for 
compile time constants. At run time, the back ends don't support 
anything over 128bits (currently), except lli in interpreter mode. The 
interpreter uses APInt instances to compute all integer operations 
(including very large numbers).

Reid

>Sandro
>_______________________________________________
>LLVM Developers mailing list
>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>  
>




More information about the llvm-dev mailing list