I am trying to generate LLVM code that references a global array. Unfortunately, while I am generating the code I do not know the final length of the array, as I add elements to it as my compiler goes along. What is the best way to do this in LLVM? Ideally, I would be able to define the GlobalVariable array and change its length later on. I would love for it to have the correct length so I can leverage some of LLVM's static checking.
I've been thinking that one level of indirection would solve the problem for me. What I could do is reference the global array via a function call while generating the code. Then, at the end, I would generate both the array and the function body:
int array[size] = { ... };
int* globalArray( int index )
{
return &array[index];
}
Ideally, LLVM could then inline the function. Is there a better way to arrange for this to occur? Should I not care about array lengths and just have my global variable be a pointer?
Thanks for the advice,
Evan Jones