Alex Susu via llvm-dev
2016-Jun-16 13:23 UTC
[llvm-dev] LLVM IR symbolic address operand to be treated as immediate value
Hello.
I would like to programmatically add in my LLVM IR program a symbolic
(address)
operand which denotes an immediate value and should be treated as such by
llc's
instruction selector.
Basically I would like to add an LLVM IR instruction like this:
load %some_var, <8 x i64>* inttoptr (i64 SymbolicOperand to <8 x
i64>*)
where SymbolicOperand is the symbolic operand.
As already said, I want the instruction selector phase to treat
SymbolicOperand as an
immediate value. For example, SymbolicOperand can be a variable defined in the
assembly
module or a macro to an immediate value.
Could you please tell me if I can do such thing?
I found a module called MCExternalSymbolizer.cpp, which talks about
symbolic operand
in place of the immediate Value in the MCInst (some more info at
http://llvm.org/docs/CodeGenerator.html#the-mcinst-class), but this is something
that
happens already in the back end as far as I understand, while I want to do this
in the
middle-tier (in the LLVM IR program).
Thank you,
Alex