[llvm-dev] in an IR pass: access the instruction pointer/BB address
Marc via llvm-dev
llvm-dev at lists.llvm.org
Thu Aug 8 07:40:48 PDT 2019
Hi,
I looked through the documentation and source and am unable to find a way:
in an IR pass on basic blocks
for (auto &F : M)
for (auto &BB : F) {
....
}
I want to access the current address of the basic block. It does not
need to be the exact address of the BB, a few instructions down of that
BB is fine as well.
basically the same that I could do with an "leaq (%rip), %rdx"
instruction on intel x64.
I want to then use this address as a "Value *" type and continue using
it in IRB.CreateStore() etc.
The sanatizer seems to call a function which then uses GET_CALLER_PC,
but that costs speed and complicates my IR code...
Is that possible? Even if its not portable on anything else than intel
x64 that would be enough.
Thanks a lot!
Regards,
Marc
--
Marc Heuse
www.mh-sec.de
PGP: AF3D 1D4C D810 F0BB 977D 3807 C7EE D0A0 6BE9 F573
More information about the llvm-dev
mailing list