[llvm-dev] Convert Register Names to String

Tim Northover via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 12 04:37:40 PST 2018


Hi Ahmad,

On Mon, 12 Nov 2018 at 12:25, Ahmad Nouralizadeh Khorrami
<ahmad.llvm at gmail.com> wrote:
> Thanks for the nice answer. The code that you mentioned, seems to generate the IR. You mean I should reuse the code to extract and output the register names in a file. Next, I should postprocess the file in my own pass?

Sorry, I assumed you'd already decided to do that to generate data for
an external program and needed it in IR form.

If the external program bit is true but not the tight coupling to LLVM
IR you could probably just use the Value* pointers as the "name" of a
value.

If everything is going to be happening in LLVM then you have other
options. Again the most likely solution would be to store pointers to
Values and forget about names. I think the whole "Analysis" library of
LLVM is dedicated to providing data in roughly that format to passes
that actually interpret it, so you should be able to write one that
provides some kind of simple mapping from "Value *" to "Value *" as
its interface. Then a transformation pass could make use of that data.

That transformation pass might even be one that embeds the information
into the Module (say, as a set of global variables providing metadata)
for much later consumption.

Cheers.

Tim.


More information about the llvm-dev mailing list