[LLVMdev] A way to pass const char* arg without creating a GlobalVariable

Gordon Henriksen malichus at mac.com
Sun Nov 20 17:11:30 PST 2011


What memory would the pointer argument point to?

― Gordon

On Nov 20, 2011, at 16:58, "Dmitry N. Mikushin" <maemarcus at gmail.com> wrote:

> Hi,
> 
> Is it possible to make up a ConstantArray containing a "const char*"
> string and pass it directly to the function "char*" argument *without*
> creating a GlobalVaribable?
> I looked around and found the usual implementation is
> array->globalVar->gep. If we omit globalVar & gep, then the argument
> type would be [ i8 x N ], where N is set to the exact string length,
> and the expected type is i8* => assertion.
> In other words, in C we can submit constant value directly to
> parameter list, e.g. foo("hello"). Is there an equivalent capability
> in LLVM IR?
> Our primary targets have limited support for global variables, and it
> is better to omit them, where possible.
> 
> Thanks,
> - Dima.




More information about the llvm-dev mailing list