similar to: [LLVMdev] How to demange C++ names

Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] How to demange C++ names"

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 Aug 27
0
[LLVMdev] How to demange C++ names
On 27 August 2010 18:56, Xiaolong Tang <xiaolong.snake at gmail.com> wrote: > Just wondering if LLVM has any command options or tool to allow for > demangling C++ names from the LLVM bitcode? c++filt? --renato
2010 Aug 27
0
[LLVMdev] How to demange C++ names
On Aug 27, 2010, at 11:43 AM, Xiaolong Tang wrote: > 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: > >
2010 Aug 27
0
[LLVMdev] How to demange C++ names
On 08/27/2010 01:43 PM, Xiaolong Tang wrote: [snip] > c++filt _ZNSt4listIiSaIiEEaSERKS1_ > > The output remains the same as the input symbol. > > By the way, when I run > > c++filt -v > > It outputs: > > GNU c++filt 070207 20070207 > Copyright 2005 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the
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 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 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 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 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
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
4
[LLVMdev] Another two questions on LLVM
Hi all, Considering the limit time I have for an implementation, I better ask for your inputs on a few questions. Any answer is to be much appreciated. First, how does LLVM handle the "new statement" of C++? Could any one give me any hint? Second, what properties does the callgraph generated by LLVM has? One property I am interesting in is whether the callgraph is a safe
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
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 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
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
2014 Dec 11
5
[LLVMdev] How to get the original function name in C++?
Hi, everyone! I'm new here trapped by a simple problem for days. When LLVM translates C++ source code to IR, it will add a prefix to the function name. For example: source code: int foo(){ return 1; } IR form: define i32 @_Z3foov() #0 { entry: ret i32 1, !dbg !20 } The getName() method returns _Z3foov, then how can I get foo? I know the debugging information is contained in
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
2014 Dec 11
2
[LLVMdev] How to get the original function name in C++?
If you want to get the original name by a library function, as Jonathan mentioned, you can call __cxa_demangle in cxxabi.h. However, this API is only available in gcc. If you want something more portable, try glog or libibert, notice libibert is GPL licensed. On Thu, Dec 11, 2014 at 7:57 AM, Roel Jordans <r.jordans at tue.nl> wrote: > When a C++ compiler translates source code it will
2011 Feb 15
3
[LLVMdev] C++ Mangled Names
I have encountered a need for manually generating the mangled name of an arbitrary C++ function. The only way I currently know how to do this is to generate a dummy C++ source file, compile it, and look at the output. This approach is so ugly that I would like for it never to see the light of day. The c++filt tool generates demangled C++ names given the mangled ones, which is the opposite
2012 May 22
2
[LLVMdev] How to get llvm bitcode executed
Thanks Duncan and Ashok, As Duncan described, "lli -load=libstdc++.dylib ..." works. I, however, encounted an "Illegal instruction" message, while I was trying to interpret a large program. So, does lli have a debug switch for dumping out the details for errors? Using llc is not that simple, and I have not gotten through the compilation process. For instance, "llc -o