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