Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] Outputting constant char array from llvm pass"
2012 Apr 10
0
[LLVMdev] How to explain this weird phenomenon????????
I figured that my opt command is wrong! How to specify the output file anyway??
if I want hello.bc to be input file and newhello.bc to be output file, is the opt command go like this?
opt -load ../../../Debug+Asserts/lib/Hello.so -hello <hello.bc> -o newhello.bc ??
--
祝好!
甄凯
2012 Apr 10
4
[LLVMdev] How to explain this weird phenomenon????????
My friends,
I ran a function pass on a .bc file, intending to insert a CallInst to my self-made check function.
The compilation is successful. BUT after I ran that pass on the .bc file, the size of the file didn't get any bigger!!
Does this mean my instrumentation work failed??
BTW the opt command I use is "opt -load ../../../Debug+Asserts/lib/Hello.so -hello <hello.bc> -o
2012 Apr 07
1
[LLVMdev] How to insert a self-written function to a piece of programme
Hi all,
I wrote a function pass. In the pass, it ran through all the instruction that call to functions. When arriving at the exact function that I m interested in, it would insert a self-made function.
Now I've finished the pass, the compilation is successful. The pass can find the function I like and can insert the CallInst to call my check function. BUT, when running the
2011 Sep 22
0
[LLVMdev] How to const char* Value for function argument
Hi Dimitry,
This makes sense if you think about it from the perspective that the string you want passing must be passed at runtime, and so can't use a const char * from compile time.
You need to make the string visible in the compiled image, and use that as the argument. A string is an array of 8-bit integers, so you need to create a ConstantArray.
Value *v = ConstantArray::get(Context,
2011 Sep 22
2
[LLVMdev] How to const char* Value for function argument
Hi,
I'm trying to replace function call with call to
wrapper(function_name, num_args, ...), where varargs hold args of
original call.
Function* launch = Function::Create(
TypeBuilder<int(const char*, int, ...), false>::get(context),
GlobalValue::ExternalLinkage, "kernelgen_launch_", m2);
{
CallInst* call = dyn_cast<CallInst>(cast<Value>(I));
if
2012 Apr 09
0
[LLVMdev] How to instrument a this function using insertBefore instruction???
Hi,
I got upset.. What does “Broken module found, compilation aborted!” mean really?? what‘s “broken module“??
--
祝好!
甄凯
------------------------------------------------------------------------------------------------------
2012-04-09
------------------------------------------------------------------------------------------------------
Name: 甄凯(ZhenKai)
2012 Apr 08
0
[LLVMdev] How to insert a self-written function to a piece of programme
Thanks for your reply! I send the message to the mail list this time~
Did you mean I need to initialize M and the Context? Is that really necessary? Does all the function need to be wrapped in the module? I remember you once said "you can just declare the function (i.e. no need to give it a body), and call it.You can then link with an object file that defines it. This is simpler than
2012 Apr 09
3
[LLVMdev] How to instrument a this function using insertBefore instruction???
Hi all,
Im trying to instrument this hello function right before the instruction that call the "puts" function(the source code is as follow).
Now I can compile the pass without errors, but when run the pass with opt tool, it broke down. The diagnose is something like
Referencing function in another module!
%CallCheck = call i32 @fib()
Broken module found, compilation aborted!
Does
2012 Apr 09
0
[LLVMdev] How to instrument a this function using insertBefore instruction???
Thank you very much!
To make it simpler, I may as well just implement the self-written "check function" in C language instead of wrapping it in LLVM module. According to the hint you give me, all I need to do is as follow(?)
1. Implement the "Check function" in the check.c file;
2. Add the check function into the module(the Hello1.bc file which I will run the functionPass on)
2012 Apr 09
1
[LLVMdev] How to instrument a this function using insertBefore instruction???
That sounds like a good general plan, yes!
Joey
2012/4/9 15102925731 <zhenkaixd at 126.com>
> Thank you very much!
>
> To make it simpler, I may as well just implement the self-written "check
> function" in C language instead of wrapping it in LLVM module. *According
> to the hint you give me, all I need to do is as follow(?)*
>
> 1. Implement the
2012 Apr 09
2
[LLVMdev] How to instrument a this function using insertBefore instruction???
Hi,
I don't think the code you pasted can be the correct code, where does FibF
come from?
Anyway, the problem is that you're calling the FibF from Module A, however
you defined it for Module B.
You need to insert the FibF function into the Module that you're running.
To do this override "virtual bool doInitialization(Module &M);" and insert
FibF into M.
Joey
2012/4/9
2017 Mar 10
2
get function parameters (not arguments)
Sorry i'm using the following code:
F = (cast<CallInst>(BI))->getCalledFunction();
for (auto& A : F->getArgumentList()) {
errs() << "------- " << A.getName() << " " << "11" <<
"\n";
}
But how can I get the parameters (as e and f in the example)?
Thank you and best,
Mo
On
2013 Feb 16
1
[LLVMdev] A weird problem when try to output operand of instruction involving function pointer in a struct
Hi all,
I just start to learn llvm. I am trying to get the operand's name of some
instruction that invokes a function field of a struct. While, I found in
the result that there is a sequence number attached to the function field
name. Below is an example:
/******source code t2.c*******/
#include <stdio.h>
void F(){printf("F\n");}
void E(){printf("E\n");}
void
2004 Nov 18
0
[LLVMdev] A few beginner level questions..
On Wed, 2004-11-17 at 23:19, Abhijit Ray wrote:
> 1. If we run a few passes in a sequence ..is the bytecode file
> transformed after each pass in sequence i.e
>
> if we have
> a) opt -pass1 -pass2 -pass3 < in.bc > out.bc
> b)opt -pass1 -pass2 < in.bc > tmp.bc
> opt -pass3 < tmp.bc > out.bc
>
> are the above two equivalent ?
Yes, they're
2011 May 31
2
[LLVMdev] How to identify LLVM version?
Hi, all
I'd like to write a code that can build different codes based on LLVM version.
Like code snippets in the below.
#ifdef __LLVM_29__
PHINode *PN = Builder.CreatePHI (Type::getDoubleTy(getGlobalContext()), 2, "iftmp");
#elif __LLVM_28__
PHINode *PN = Builder.CreatePHI (Type::getDoubleTy(getGlobalContext()), "iftmp");
#else
assert ("wrong
2011 Jan 26
2
[LLVMdev] [LLVMDEV]How could I get function name in this situation?
Hi:
My llvm code is:
for( BasicBlock::iterator i = b->begin() , ie = b->end();
b != be ; b ++ ){
if( CallInst * pCall = dyn_cast<CallInst>(i)){
pCall->dump(); //
Function * pFunction = pCall->getCalledFunction();
if( !pFunction ){
}
std::string fname = pFunction->getName();
}
}
The dump result
2017 Mar 10
2
get function parameters (not arguments)
I tried the original posted code again:
for (auto& A : cast<CallInst>(BI)->arg_operands())
errs() << "--- " << A->getName() << "\n";
but it prints empty (only ---)!
Thank you and best,
Mo
On Fri, Mar 10, 2017 at 4:44 PM, Tim Northover <t.p.northover at gmail.com>
wrote:
> On 10 March 2017 at 15:41, Mohammad Norouzi <mnmomn at
2011 Jan 26
0
[LLVMdev] [LLVMDEV]How could I get function name in this situation?
On 1/26/11 2:07 PM, songlh at cs.wisc.edu wrote:
> Hi:
>
> My llvm code is:
>
> for( BasicBlock::iterator i = b->begin() , ie = b->end();
> b != be ; b ++ ){
> if( CallInst * pCall = dyn_cast<CallInst>(i)){
>
> pCall->dump(); //
> Function * pFunction = pCall->getCalledFunction();
> if(
2011 Jan 26
0
[LLVMdev] [LLVMDEV]How could I get function name in this situation?
On 1/26/11 2:40 PM, songlh at cs.wisc.edu wrote:
> thanks!
>
> After I check the ll file, I find this:
>
> %1 = load %struct.nsAString** %aBuf_addr, align 4, !dbg !2048
> %2 = getelementptr inbounds %struct.nsAString* %1, i32 0, i32 0, !dbg !2048
> %3 = getelementptr inbounds %struct.nsISupports* %2, i32 0, i32 0, !dbg !2048
> %4 = load i32 (...)*** %3, align 4, !dbg !2048
2011 Jan 26
2
[LLVMdev] [LLVMDEV]How could I get function name in this situation?
thanks!
After I check the ll file, I find this:
%1 = load %struct.nsAString** %aBuf_addr, align 4, !dbg !2048
%2 = getelementptr inbounds %struct.nsAString* %1, i32 0, i32 0, !dbg !2048
%3 = getelementptr inbounds %struct.nsISupports* %2, i32 0, i32 0, !dbg !2048
%4 = load i32 (...)*** %3, align 4, !dbg !2048
%5 = getelementptr inbounds i32 (...)** %4, i32 10, !dbg !2048
%6 = load i32 (...)**