similar to: [LLVMdev] Another two questions on LLVM

Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] Another two questions on LLVM"

2010 Jun 07
0
[LLVMdev] Another two questions on LLVM
Xiaolong Tang wrote: > First, how does LLVM handle the "new statement" of C++? Could any one > give me any hint? > It doesn't. Handling C++'s new expression (not statement) is up to the compiler frontend. Clang handles it by emitting a call to the runtime-provided operator new function (which is probably implemented in terms of malloc) followed by a constructor call,
2010 Jun 07
2
[LLVMdev] Two quick questions on call graph nodes
Hello Duncan, > >> what version of LLVM are you using? I don't think LLVM 2.7 uses a > >> "indirect call node". However it does use a "external node", which > >> is used when a function external to the current module is called. > >> > > > > The "external node" makes sense. However, I am using LLVM 2.8. (See >
2012 May 22
0
[LLVMdev] How to get llvm bitcode executed
Guess I have found some clues. Some necessary libraries have to be loaded while trying to generate native code or do interpretation. Then another question emerges: Is there a way to determine the necessary libraries in need? And where to locate these necessary libraries? Xiaolong > Hi All, > > I have a program that uses C++ STL a lot. To have the source code for > STL functions, I
2010 Jun 09
1
[LLVMdev] Segmentation fault 'cause of accessing function arguments
Hi all, I am experimenting to run a pass inherited from CallGraphSCCPass. In the pass, I iterate all functions in a SCC. In each iteration, I access all arguments of a function in the following way: Function::arg_iterator PI = fun->arg_begin(), PE = fun->arg_end(); ... I have no trouble with building. However, I am troubled with "segmentation fault" when I run the pass
2010 Jun 10
2
[LLVMdev] For clarifying the "<Result>" in Instructions
Hello Reid, Thanks. > Yes, it's an integral part of the Instruction. You can change it by > providing a name when you create the instruction. Following your hint, can I understand in this following way? The name (denoted by "<result>") is actually a referrer to the instruction . Consider this instruction: %this_addr = alloca %struct.String* ;
2010 Jun 18
3
[LLVMdev] Question on Load and GetElementPtr instructions
Hey, Considering the following instruction: %20 = load %struct.Node** getelementptr inbounds (%struct.Node* @head, i32 0, i32 0), align 16 ; <%struct.Node*> [#uses=1] What is the type of the first operand of the instruction (i.e., getOperand(0))? I thought the operand is a "GetElementPtr" instruction, however, the predicate "isa<Instruction>()" over
2010 Jun 18
0
[LLVMdev] Question on Load and GetElementPtr instructions
Good evening, Tang. > What is the type of the first operand of the instruction (i.e., > getOperand(0))? It might be ConstantExpr. You may use dyn_cast<GEPOperator>(getPointerOperand()). Also GetElementPtrInst* can be casted to GEPOperator. ...Takumi 2010/6/18 Xiaolong Tang <xiaolong.snake at gmail.com>: > > Hey, > > Considering the following instruction: >
2010 Jun 10
2
[LLVMdev] For clarifying the "<Result>" in Instructions
Hi all, In the language specifications, many instructions have this form: <result> = ... So, where is "<result>" defined? Is it an integral part of an instruction? Consider the "getelementptr" instruction: <result> = getelementptr <pty>* <ptrval>{, <ty> <idx>}* How is the "<result>" represented? Best,
2010 Jun 10
0
[LLVMdev] For clarifying the "<Result>" in Instructions
Yes, it's an integral part of the Instruction. You can change it by providing a name when you create the instruction. Reid On Thu, Jun 10, 2010 at 8:34 AM, Xiaolong Tang <xiaolong.snake at gmail.com> wrote: > Hi all, > > In the language specifications, many instructions have this form: > >  <result> = ... > > So, where is "<result>" defined?
2010 Jun 09
0
[LLVMdev] Two quick questions on call graph nodes
Hi Xiaolong, I changed the code so it now prints "external node" instead. The external node represents all functions external to the module. So, for example, if a function F calls a function G, but G is only declared in the module, rather than being defined there, then the callgraph gets an edge from F to the external node (the fact that the call was to G is discarded, only the fact
2010 Jun 06
2
[LLVMdev] Two quick questions on call graph nodes
Hello all, When I examined the callgraph generated by LLVM via this command: opt -print-callgraph-sccs -dot-callgraph a.out.bc I ran into two confusions: First, there is a "indirect call node" dominating all other nodes (include "main"). My question is: what does this special node serves for? Second, there are two identical functions except that the functions have
2012 May 22
4
[LLVMdev] How to get llvm bitcode executed
Hi All, I have a program that uses C++ STL a lot. To have the source code for STL functions, I undefined "_GLIBCXX_EXTERN_TEMPLATE" in c++config.h. In spite of this, after compilation (via clang) and linking (via llvm-ld), the resulting bitcode contains a few declared functions (with no definitions). My question is: In the scenario where some function definitions are missing in a llvm
2010 Aug 27
5
[LLVMdev] How to demange C++ names
Hi Renato, > > Just wondering if LLVM has any command options or tool to allow for > > demangling C++ names from the LLVM bitcode? > > c++filt? Do you refer to any particular version of c++filt? I tried, but seemed not to work. For example, when I run a command as below: c++filt _ZNSt4listIiSaIiEEaSERKS1_ The output remains the same as the input symbol. By the way,
2010 Jun 10
0
[LLVMdev] For clarifying the "<Result>" in Instructions
On Thu, Jun 10, 2010 at 9:00 AM, Xiaolong Tang <xiaolong.snake at gmail.com> wrote: > > Hello Reid, > > Thanks. > >> Yes, it's an integral part of the Instruction.  You can change it by >> providing a name when you create the instruction. > > Following your hint, can I understand in this following way? > > The name (denoted by
2010 Jun 07
2
[LLVMdev] Two quick questions on call graph nodes
Hello Duncan, Thanks! > > First, there is a "indirect call node" dominating all other nodes > > (include "main"). My question is: what does this special node serves > > for? > > what version of LLVM are you using? I don't think LLVM 2.7 uses a > "indirect call node". However it does use a "external node", which > is
2010 Aug 27
3
[LLVMdev] How to demange C++ names
Hey all, Just wondering if LLVM has any command options or tool to allow for demangling C++ names from the LLVM bitcode? Thanks! Best, Xiaolong
2010 Jul 29
1
[LLVMdev] How does the debug info correspond to the normal info?
Hey, LLVM allows to export source level debug information via meta data, I am wondering if there is any mappings between the information in the normal LLVM code and that in the meta data associated with the normal LLVM code. Consider one usage. Given an function parameter (argument) "x", via "getType()" we retrieve the type of "x". The type might be, to some
2010 Jun 07
0
[LLVMdev] Two quick questions on call graph nodes
Hi Xiaolong, >> what version of LLVM are you using? I don't think LLVM 2.7 uses a >> "indirect call node". However it does use a "external node", which >> is used when a function external to the current module is called. >> > > The "external node" makes sense. However, I am using LLVM 2.8. (See > the output from "opt
2010 Jun 18
1
[LLVMdev] Is there any general way to figure out dynamically allocated points?
Hey, I need to approximate the run-time objects of a program. It is up to the compiler's front-end to make the decision on how to translate the new-expressions in C++, however. This obfuscates the way to figure out dynamically allocated program points in the middle-end (e.g. LLVM). So I am wondering if there is any general way to do so? Does the front-end provide any hint(s) to the
2010 Sep 29
3
[LLVMdev] gcc, conceptgcc, and llvm-gcc
Hey all, My previous work was done mainly in the front-end of conceptgcc, whereas recently I am doing some code analysis in the middle-end of llvm. I am considering to port my previous work to llvm. So, I am very concerned with the difference between gcc and llvm-gcc, and of course the difference between gcc and conceptgcc. I have no idea of the former difference, though I have some idea of