I notice that, even though I'm on 64-bit, many indexes are required by LLVM to be 32-bit integers. This won't be too important for the next few years except, I think, for the case of indexing large mmapped files which could already require more than 32-bits. Am I right and is this on the todo list? What are 32-bit integers doing in the 64-bit version of LLVM anyway? -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e
Hi Jon,> I notice that, even though I'm on 64-bit, many indexes are required by LLVM to > be 32-bit integers. This won't be too important for the next few years > except, I think, for the case of indexing large mmapped files which could > already require more than 32-bits. > > Am I right and is this on the todo list? What are 32-bit integers doing in the > 64-bit version of LLVM anyway?array indices can be 32 bit or 64 bit. Struct indices are 32 bit. I doubt that there will be many structs with more than 2^32 fields in the near future. Ciao, Duncan.
On Tuesday 04 December 2007 15:26, Duncan Sands wrote:> Hi Jon, > > > I notice that, even though I'm on 64-bit, many indexes are required by > > LLVM to be 32-bit integers. This won't be too important for the next few > > years except, I think, for the case of indexing large mmapped files which > > could already require more than 32-bits. > > > > Am I right and is this on the todo list? What are 32-bit integers doing > > in the 64-bit version of LLVM anyway? > > array indices can be 32 bit or 64 bit.But array lengths must be 32-bit? I've just started using arrays here so maybe I'm doing something wrong but attempting to allocate an array with a 64-bit length gives the error: bench: Instructions.cpp:650: llvm::Value* getAISize(llvm::Value*): Assertion `Amt->getType() == Type::Int32Ty && "Malloc/Allocation array size is not a 32-bit integer!"' failed. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e