[LLVMdev] static variables in the IR
Duncan Sands
baldrick at free.fr
Fri Mar 22 01:49:24 PDT 2013
Hi Niko,
On 22/03/13 08:12, Hotmail wrote:
> How can I check if an operand is a static variable in the IR?
get the operand, for example:
Value *Op = Instr->getOperand(0);
You probably want to get rid of any type casts:
Op = Op->stripPointerCasts();
You can test if it is a global variable using:
if (isa<GlobalVariable>(Op)) { ... }
If it is, you can cast it to a global variable and test the linkage:
GlobalVariable *GV = cast<GlobalVariable>(Op);
if (GV->hasLocalLinkage()) { ... }
Ciao, Duncan.
> I've read that their linkage type should be marked as "internal" in the .s file, but I can't find a way to test if an Instruction has static variables as operands.
> Can you help me?
>
> Thank you in advance,
>
> Niko
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list