Displaying 20 results from an estimated 30000 matches similar to: "Computing unique ID of IR instructions that can be mapped back"
2017 May 09
2
Computing unique ID of IR instructions that can be mapped back
On 5/8/17 6:40 PM, Robinson, Paul via llvm-dev wrote:
> (adding back llvm-dev)
>
>
>
> Is there any standard means to add an extra field to LLVM IR instructions?
>
>
>
> Your description implies that you are not intending to change the
> on-disk format, so it's simple:
>
> It is a class. Change the source to add a field to it. Use it as you wish.
An
2017 May 09
2
Computing unique ID of IR instructions that can be mapped back
> Isn't Instruction* a pointer to the instruction in memory? If so, it'll
change across runs
Correct, but none of this is meant to be stored across runs, so the actual
address doesn't matter. You recompute the map every time your IR is loaded.
On Mon, May 8, 2017 at 7:34 PM, Dipanjan Das via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
>
> On 8 May 2017 at
2017 Apr 28
4
How to pass a StringRef to a function call inserted as instrumentation?
I am wriitng an LLVM pass to insert instrumentation at certain points of
the program. I want to pass the `StringRef` obtained from `getName()` as a
parameter to a function `func(char* s)`. I can allocate some space on stack
using `AllocaInst` to generate an `alloca` instruction. But, how can I copy
the `StringRef` to the stack space?
--
Thanks & Regards,
Dipanjan
-------------- next part
2017 Jun 16
2
How does sanitizers in compiler-rt work?
Can anybody give me any pointer on how compiler-rt, especially the
sanitizers work? Do they operate on IR as any other LLVM pass? Or are they
integral part of the frontend itself? I couldn't spot any documentation on
the internals of compiler-rt project? What happens (sequence of actions)
when I pass -fsanitizer=dataflow to clang?
Precisely, I intend to alter the behaviour of DFSan to suit my
2017 Apr 28
2
How to get the address of a global variable in LLVM?
Let `x` be the address of a global variable `g` in a program at run-time.
LLVM IR produces a store instruction as shown below:
store i32 30, i32* @g, align 4
I am writing an LLVM pass which will instrument the program such that `x`
is passed to an instrumentation function `func(int addr)` at run-time. I
can insert a call to `func` using `IRBuilder` successfully. What I am not
being able to
2017 Oct 22
2
How to dump broken IR from LLVM backend?
You can also `-disable-verify -o <output-filename> ` which will disable the
verify check.
On Sat, 21 Oct 2017 at 23:54 Dipanjan Das via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
> Yes, that definitely works. Wanted to know if there's a switch for file
> output or not.
>
> On 21 October 2017 at 23:45, 陳韋任 <chenwj.cs97g at g2.nctu.edu.tw> wrote:
>
2017 Oct 22
2
How to dump broken IR from LLVM backend?
Just use Unix IO redirect? `llc -mllvm -print-after-all &> a.txt`
2017-10-22 14:17 GMT+08:00 Dipanjan Das via llvm-dev <
llvm-dev at lists.llvm.org>:
>
> Seems like "-mllvm -print-after-all" does the trick. Is there any switch
> that dumps the output to a file instead of console?
>
> On 21 October 2017 at 21:33, Dipanjan Das <mail.dipanjan.das at
2017 Oct 22
2
How to dump broken IR from LLVM backend?
My pass complains and gives up after spitting out:
======================================
Instruction does not dominate all uses!
%44 = icmp ne i8** %endptr, null
br i1 %44, label %32, label %33
Instruction has bogus parent pointer!
======================================
Is there any way to dump the entire IR even in broken form from the backend
so that I can inspect what's going on?
--
2017 Oct 27
2
Why does LLVm 3.8.0 recognize fputs_unlocked as a vararg function?
Considering F represents the function fputs_unlocked() in an LLVM pass,
=> F->isVarArg() returns true
=> F->getNumParams() returns 0
=> *F returns declare i32 @fputs_unlocked(...)
The signature of fputs_unlocked from man page is:
int fputs_unlocked(const char *s, FILE *stream);
Can anybody explain why fputs_unlocked() is recognized as a vararg method
while it accepts two fixed
2017 Jun 11
2
Force casting a Value*
On 11 June 2017 at 07:53, David Blaikie <dblaikie at gmail.com> wrote:
> Sounds like you're looking for reinterpret_cast: http://en.
> cppreference.com/w/cpp/language/reinterpret_cast
>
I tried cast<ConstInt>(vo), but that failed at run-time.
>
> On Sun, Jun 11, 2017 at 3:06 AM Dipanjan Das via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
2017 Jun 15
2
Linker error while linking DataFlowSanitizer to LLVM IR
I am using pre-built LLVM/Clang 3.8.0 binaries on Ubuntu 16.04.2, 64 bit. I
tried to lift a minimal program to LLVM IR, then link the IR to
DataFlowSanitizer libraries to produce executable code. In the second step,
the process throws a bunch of linker errors.
=========================================
#include <sanitizer/dfsan_interface.h>
#include <assert.h>
int main(void) {
int
2017 Jun 12
2
Force casting a Value*
On 11 June 2017 at 14:04, don hinton <hintonda at gmail.com> wrote:
> Assuming you know it's a 64 bit value, and the function you are calling
> takes a uint64_t, try this:
>
The values from the test program are of type: i32/i32*/i32**. Can't I
interpret these as uint64_t some way?
>
> Value* args[] = {store_inst->getOperand(0)};
>
>
> On Sun, Jun 11,
2017 Jun 12
4
How to know the sub-class of a Value class?
As a concrete question, I understand 'Value' class is the parent of many
concrete sub-classes. Let's say I retrieve a Value* value =
store_inst->getValueOperand(). Unless I know what the sub-type is, how can
I further use this object? I tried something like this:
=================================================
Value* value = store_inst->getValueOperand()
2017 Jun 12
4
How to know the sub-class of a Value class?
On 11 June 2017 at 23:06, Jeremy Lakeman <Jeremy.Lakeman at gmail.com> wrote:
> http://llvm.org/docs/ProgrammersManual.html#the-isa-cast-and-dyn-cast-
> templates
>
I understand isa and dyn-cast let you test the type of an object at
run-time by leveraging LLVM's custom implementation of RTTI. However, it
doesn't make much sense to test out for all possible sub-classes to
2017 Apr 15
2
Why does an LLVM pass based on FunctionPass not get triggered for certain functions?
I am learning to write LLVM pass by trying to reproduce [hello world][1]
example. The pass `hello.cpp` looks like:
#include "llvm/Pass.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
namespace {
struct Hello : public FunctionPass {
static char ID;
Hello() : FunctionPass(ID) {}
2017 Jun 11
2
Force casting a Value*
On 11 June 2017 at 12:05, Tim Northover <t.p.northover at gmail.com> wrote:
> On 11 June 2017 at 11:56, Dipanjan Das via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > I can't pass var_value to a function accepting uint64_t. LLVM complains
> > about broken function call.
>
> Well, yes. var_value has type "ConstantInt *", not uint64_t. Assuming
2017 Jun 10
2
Instruction does not dominate all uses!
LLVM 3.8.0, Ubuntu 16.04.2, 64 bit is being used to instrument IR.
====================================================
define i32 @bar() #0 {
entry:
%var = alloca [3 x i32], align 4
%0 = bitcast [3 x i32]* %var to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast ([3 x i32]*
@bar.var to i8*), i64 12, i32 4, i1 false)
%arrayidx = getelementptr inbounds [3 x i32], [3 x i32]*
2017 Jun 11
2
Force casting a Value*
I am trying to cast a Value* irrespective of its underlying subclass to
uint64 and pass it on to a method as an argument.
if (StoreInst *store_inst = dyn_cast<StoreInst>(&I)) {
Value* vo = store_inst->getValueOperand();
uint64 value = /* cast vo to unsigned int 64 bit */
func(value);
}
How can I force
2017 Jun 28
3
LLVM docs links broken
Has LLVM docs deen moved to somewhere recently? The link is broken:
http://llvm.org/docs/doxygen/html/classllvm_1_1InsertValueInst.html
--
Thanks & Regards,
Dipanjan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170627/64ae4f89/attachment-0001.html>
2017 Oct 20
2
How to create a 64 bit ConstInt having a value of -1?
I tried the following:
- ConstantInt::get(Type::getInt64Ty(Ctx), APInt(0xFFFFFFFFFFFFFFFF, 64,
false))
- ConstantInt::get(Type::getInt64Ty(Ctx), APInt(-1, 64))
I am receiving the following error: Assertion `NumBits <= MAX_INT_BITS &&
"bitwidth too large" failed
--
Thanks & Regards,
Dipanjan
-------------- next part --------------
An HTML attachment was scrubbed...