<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-forward-container">For some reason the mail didn't
got through the first time, so sending it again.<br>
<br>
-------- Original Message --------
<table class="moz-email-headers-table" border="0" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject:
</th>
<td>code-generating constant strings</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
<td>Tue, 03 Dec 2013 01:56:11 +0100</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
<td>Alexander Popolitov <a class="moz-txt-link-rfc2396E" href="mailto:popolit@gmail.com"><popolit@gmail.com></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
<td><a class="moz-txt-link-abbreviated" href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a>.</td>
</tr>
</tbody>
</table>
<br>
<br>
<pre>Hi, everyone!
I have maybe very naive question, but nontheless.
I'm experimenting with Kaleidoscope tutorial and I want to morph it into
something similar to McCarthy's initial Lisp.
For that, I need to implement symbols, which I thought I should
implement as pointers to structures, and those
structures would contain at least one field, which would be symbol's name.
So, here's a question: how do I generate a code, that represents a
literal string on LLVM side using LLVM's C++ API
I'm asking, because to simply generate constant floating-point value C++
API uses
an incantation 'ConstantFP::get(getGlobalContext(), APFloat(Val));' so I
guess string generation is also not obvious.
In the textual LLVM, what I want to generate is something like
'@.foo_sym = private unnamed_addr constant {[13 x i8] c"hello world\0A\00"}'
I just modified the example of a constant string from LLVM reference
manual, adding curly braces.
So, what I really want is for any newly encountered symbol to generate
code, that declares variable, which is structure, which contains
that symbol name, and a way to access the address of that structure,
substituting all occurencies of that symbol in a code I'm generating
by the pointer to that structure.
So, how would I (using C++ API):
1. generate code that defines constant string
2. generate code, that defines structure, that contains a string
3. when generating further code, be able to insert a pointer to this
structure?
Yours sincerely,
Alex
</pre>
<br>
</div>
<br>
</body>
</html>