Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] Extraction of constant operands from the instruction"
2008 Jan 04
0
[LLVMdev] Extraction of Arguments Passed to a Function
Hi,
I am trying to extract the name of the variables passed as an Argument to a
Function. I am using a runOnFunction Pass.
For example in the following IR respresentation,
define void @foo(i32 %limit) {
entry:
--
--
}
I should be able to walk the IR and get '%limit' as the external variable
passed to the function.
Another question, Is it possible to create a basic symbol table (
2008 Jan 14
0
[LLVMdev] Extraction of constant operands from the instruction
Hello,
> However, whenever there is a constant operand like a numerical value, it
> does not displays any value at all, i checked using the hasName() method,
> for the constant operands the hasName() returns 0.
Correct. Constant doesn't have name at all. You should check, whether
operand is a constant, cast the Value to Constant (for example, via
dyn_cast facility) and then use the
2006 Mar 03
1
[LLVMdev] printing constants
Sir,
I am using the op_begin and op_end iterator for
iterating over the operands as mentioned below.
for (User::op_iterator
operand=j->op_begin(),operand_end=j->op_end();operand!=operand_end;++operand){
Value *v=operand->get();
const Type *t=v->getType();
cerr<<endl<<" operand: "<<"[ "<<v->hasName()<<"
2008 Apr 16
2
[LLVMdev] Problems in removing a cloned instruction.
Hi all,
I am trying to write a pass where i am creating a clone of a
function (the only difference being, the new function returns void ,
instead of any value).
I am creating a new Function Type with a void return type (rest being
the same as original function), and using this i am creating a new
function body. Then, i clone the body of the old function into new
function, but when ever i
2005 Jul 12
0
[LLVMdev] Getting started with LLVM Passes
Chris,
I've now figured out how to track and single out specific
instructions, which was ridiculously easy. Thanks!
I'm now on to trying to find more detail about those instructions,
such as the values and addresses of the operands in memory (or, in
the case of operands which are pointers, trying to get the pointer
values, addresses, and values stored at location specified by
2011 Feb 22
0
[LLVMdev] Clone a function and change signature
On 2/22/11 1:31 PM, Arushi Aggarwal wrote:
> Hi,
>
> I want to clone a given function, and add an argument to it. I then
> want to add a call to that new function. I have a callInstruction CI,
> which I want to transform to call this new function, and to take a new
> argument.
If I understand correctly, you're cloning the function first and then
adding a new argument to
2011 Feb 22
2
[LLVMdev] Clone a function and change signature
Hi,
I want to clone a given function, and add an argument to it. I then want to
add a call to that new function. I have a callInstruction CI, which I want
to transform to call this new function, and to take a new argument.
The code I added was as follows
CI->getCalledFunction()->dump();
Function* DirectF = CloneFunction(CI->getCalledFunction());
2008 May 21
0
[LLVMdev] Loops over operands
Hi all,
there are about 800 calls to getNumOperands() in lib/. Of course one
has to leave out those to MachineInstruction, but nevertheless...
A very substantial amount of those calls are in loop contexts, like:
for (unsigned i = 1, e = CE->getNumOperands(); i != e; ++i, +
+GTI) {
ConstantInt *CI = dyn_cast<ConstantInt>(CE->getOperand(i));
...
}
Usually
2009 Sep 28
0
[LLVMdev] Printing Function Arguments
Hi Nick,
Perhaps I am confused. What is the best way to extract information from
instructions ?
Is it via the, say:
for (User::op_iterator i = I->op_begin(), e = I->op_end(); i != e; ++i)
....
I am not sure what happens next, e.g. to the variable 'i', you should know
what part of the instruction this is and cast it to the necessary type.
For example, I am parsing the
2008 Apr 16
0
[LLVMdev] Problems in removing a cloned instruction.
Hi,
I'm gonna try to give some feedback, but I have only been working with LLVM
for a few days, so don't take what I'm saying without verifying :-)
> BasicBlock *ProgSlicer::CloneBasicBlock(const BasicBlock *BB,
> DenseMap<const Value*, Value*> &ValueMap,
> const char *NameSuffix, Function *F) {
>
> BasicBlock
2009 Sep 28
0
[LLVMdev] Printing Function Arguments
Hi Nick,
I parsed your message again carefully and did some experiments.
I guess the:
for (User::op_iterator i = I->op_begin(), e = I->op_end(); i != e; ++i)
{
}
iterates over the operands of the instruction "I", which are as you said,
*other* instructions.
But if I want to get other information about the instruction, say the type
of the operands,
then I still need to figure
2011 Dec 09
1
[LLVMdev] Finding the uses of a global variable
Hi everyone,
I am writing a pass that finds all uses of global variables (my goal is to
find the uses of strings, and strings are defined as global variables). So,
I can iterate over global vars by
for(Module::global_iterator gi = M.global_begin(), gend = M.global_end();
gi != gend; ++gi) ......
But if I use its def-use chain
for(Value::use_iterator i = gi->use_begin(), e = F->use_end; i!=e;
2012 Oct 31
1
[LLVMdev] Lifetime analysis of variables within a module
Hi all,
I'm looking for a LLVM method/class/strategy to know the lifetime of
every variable/value used in a given Module.
I want to know the variables that must be alive at the input and at the
end of every function call (and every BasicBlock).
By creating a pass inheriting from ModulePass I can reach up to here:
virtual bool runOnFunction(Function &F) {
...
for
2010 Jan 10
1
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
On Fri, Jan 08, 2010 at 05:04:17PM -0800, Chris Lattner wrote:
> On Jan 8, 2010, at 5:01 PM, Julien Lerouge wrote:
> >Hello,
> >
> >The CodeExtractor contains a std::set<BasicBlock*> to keep track
> >of the
> >blocks to extract. Iterators on this set are not deterministic, and so
> >the functions that are generated are not (the order of the
>
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
2011 Dec 14
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias,
I've attached an updated copy of the patch. I believe that I accounted
for all of your suggestions except for:
1. You said that I could make AA a member of the class and initialize it
for each basic block. I suppose that I'd need to make it a pointer, but
more generally, what is the thread-safely model that I should have in
mind for the analysis passes (will multiple threads
2011 Feb 23
0
[LLVMdev] LLVMdev Digest, Vol 80, Issue 37-Help to unsubscribe
Please unsubscribe me from this list.
Sujatha Gurumurthy
Staffing Consultant/Talent Advisor
UMG - Ultra Mobile Group
sujatha.gurumurthy at intel.com
US ERP Manager
Interested in Employee Referral Program
Visit referral.intel.com/
Intel USA Employee Referral Program Group
100 Best Companies to Work For 2011: Intel - INTC - from FORTUNE
-----Original Message-----
From: llvmdev-bounces at
2013 Aug 02
1
[LLVMdev] replacing GetElementPtrConstantExpr with GetElementPtrInst ... sometimes
Hi
During a pass, the XCore target lowers thread local global variables by turning them into global variable arrays indexed by the (max 8) thread ID.
(see XCoreLowerThreadLocal.cpp)
This works fine for instructions e.g. GetElementPtrInst
But can't be done for constants e.g. GetElementPtrConstantExpr
Thus I would like to replace GetElementPtrConstantExpr with GetElementPtrInst when it is
2008 Jan 23
1
[LLVMdev] Walking all the predecessors for a basic block
Hi,
Well, yes i did try your suggestion but i keep on running into a
compilation problem.
The error is:
llvm[0]: Compiling Hello.cpp for Release build (PIC)
/home/saraswat/llvm/llvm-2.1/include/llvm/ADT/GraphTraits.h: In
instantiation of
`llvm::GraphTraits<llvm::ilist_iterator<llvm::BasicBlock> >':
Hello.cpp:59: instantiated from here
2011 Dec 02
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Fri, 2011-12-02 at 17:07 +0100, Tobias Grosser wrote:
> On 11/23/2011 05:52 PM, Hal Finkel wrote:
> > On Mon, 2011-11-21 at 21:22 -0600, Hal Finkel wrote:
> >> > On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote:
> >>> > > Tobias,
> >>> > >
> >>> > > I've attached an updated patch. It contains a few bug fixes