search for: mentorembedded

Displaying 17 results from an estimated 17 matches for "mentorembedded".

2013 Jun 19
1
[LLVMdev] How to deal with potentially unlimited count/length symbol names?
...ations. > > In terms of just generating long names, LLVM and common platforms can > handle long names reasonably well because C++ often uses such names. > Also, the Itanium C++ ABI has a scheme to compress repeated uses of the > same type which might be of interest; see > http://mentorembedded.github.io/cxx-abi/abi.html#mangling-compression . > > In terms of a registry, you might want to consider whether these helpers > actually need to be exposed across libraries. Annoyingly, the larger the type the more important it is to share -- for small types everything will just be inli...
2013 Jun 19
0
[LLVMdev] How to deal with potentially unlimited count/length symbol names?
...red all the possible implementations. In terms of just generating long names, LLVM and common platforms can handle long names reasonably well because C++ often uses such names. Also, the Itanium C++ ABI has a scheme to compress repeated uses of the same type which might be of interest; see http://mentorembedded.github.io/cxx-abi/abi.html#mangling-compression . In terms of a registry, you might want to consider whether these helpers actually need to be exposed across libraries. -Eli -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-de...
2013 Nov 23
0
[LLVMdev] "Mapping High-Level Constructs to LLVM IR"
...to be inspected to find the appropriate catch block. If exceptions are not thrown, there is no execution cost to setting up a try/catch block, although this is paid for by a relatively expensive throw implementation. Details of such an implementation can be found in the Itanium ABI <http://mentorembedded.github.io/cxx-abi/abi-eh.html> (which, despite its name, is the ABI used by gcc and clang). -- Joshua Cranmer News submodule owner DXR coauthor
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
2013 Jun 19
4
[LLVMdev] How to deal with potentially unlimited count/length symbol names?
In my language I have anonymous types (essentially tuples), and I have generated functions (like constructors) which are unique for these types. If the same type occurs in multiple modules however it should end up with only one definition being linked. Thus I need a way to give them the same name. The problem is that if I derive the name from what the type contains the length of that name is
2014 Oct 30
2
[LLVMdev] Runtime introspection of "Release Mode" programs using LLVM or LLDB
Hi everyone, I'm working on a library for runtime introspection of C++ programs, for example, getting stack traces, decorating logs with source file information, etc. It currently uses LLVMObject and LLVMDebugInfo. There's a feature I want to add, but it requires that I understand where on the stack local variables are located. For this to work on x86-64, I would need to do whole
2016 Mar 28
1
Clang function naming conventions
Hi everyone, I took a look at the IR modules clang generates, and how clang translates functions in C++ namespace and classes. I've understood how it works for namespace but is there a file or a documentation that explains how Clang translates namespaces and classes in the IR modules? If this becomes a convention all the front-end languages will be able to create functions available to other
2014 Feb 28
3
[LLVMdev] Unifying Windows Target Triples
On Feb 27, 2014, at 7:48 PM, Chandler Carruth <chandlerc at google.com> wrote: > I like this direction in general, but: Excellent! > On Thu, Feb 27, 2014 at 7:40 PM, Saleem Abdulrasool <abdulras at fb.com> wrote: > {armv7,i686,x86_64}-windows-{ia,mingw,ms}pe > > First a correction, I assume you mean: {armv7,i686,x86_64}-<vendor>-windows-{ia,mingw,ms}pe That
2017 Nov 23
1
JIT and atexit crash
Hi, Not sure whether this matches your use case, but the Orc-based JIT used in LLI appears to be using `llvm::orc::LocalCXXRuntimeOverrides` (http://llvm.org/doxygen/classllvm_1_1orc_1_1LocalCXXRuntimeOverrides.html) to override `__cxa_atexit`: https://github.com/llvm-mirror/llvm/blob/release_50/tools/lli/OrcLazyJIT.h#L74
2013 Dec 17
1
[LLVMdev] Mapping document questions
These questions are all related to the "Mapping High-Level Constructs to LLVM IR" document: 1. What are the \01 characters that are prefixed to dllimport Windows symbols for? I have never seem them before so I am unsure if they are Clang/LLVM-specific? 2. Anybody interested in explaining the zero cost exception handling mechanism using an existing example from the Mapping document?
2014 Nov 10
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
...gt; > See the example IR at the end of this email. Read on if you want to > understand why I think this is the right representation. > > --- > > Currently LLVM's exception representation is designed around the Itanium > exception handling scheme documented here: > http://mentorembedded.github.io/cxx-abi/abi-eh.html > > LLVM's EH representation is described here, and it maps relatively cleanly > onto the Itanium design: > http://llvm.org/docs/ExceptionHandling.html > > First, a little background about what __try is for. It's documented here: > http://m...
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
2013 Nov 23
4
[LLVMdev] "Mapping High-Level Constructs to LLVM IR"
Thanks, you have a lot of valid points there. I have myself long ago abandoned the path of using C as a backend language due to the very factors you mention. However, as I said, the document was put together in 30 minutes. Not exactly ready for prime time :-) I do agree that all of the things you mention should be described, including Lambdas, closures, and generators, but I must admit up
2013 Apr 25
4
[LLVMdev] trouble understanding value in dwarf exception mechanism
I'm having trouble understanding the value in the way exceptions are handled on Linux, the dwarf/system V ABI exception spec. The mechanism allows for both cleanup routines and catch handlers, where by cleanup handlers don't stop the search for a normal handler. The personality function (I guess no longer part of the standard, but a C++ thing) can also compare types of the landingpads.
2016 Jun 01
5
RFC: a renaming/redesign for LLVM's bitset metadata
Hi all, The bitset metadata currently used in LLVM has a few problems: 1. It has the wrong name. The name "bitset" refers to an implementation detail of one use of the metadata (i.e. its original use case, CFI). This makes it harder to understand, as the name makes no sense in the context of virtual call optimization. 2. It is represented using a global named metadata node, rather than
2015 Apr 14
5
[LLVMdev] [cfe-dev] A problem with names that can not be demangled.
Adding llvm-dev as that might be a more suitable audience for this discussion. (& I know Lang's been playing around with the same problem in the Orc JIT, so adding him too) Is there any basis/reason to believe that the .X suffix is a better, more principled one than straight X? Is that documented somewhere as a thing the demangling tools will ignore? On Tue, Apr 14, 2015 at 12:06 PM,
2014 Nov 13
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
...pointer to the landingpad cleanup clause See the example IR at the end of this email. Read on if you want to understand why I think this is the right representation. --- Currently LLVM's exception representation is designed around the Itanium exception handling scheme documented here: http://mentorembedded.github.io/cxx-abi/abi-eh.html LLVM's EH representation is described here, and it maps relatively cleanly onto the Itanium design: http://llvm.org/docs/ExceptionHandling.html First, a little background about what __try is for. It's documented here: http://msdn.microsoft.com/en-us/library/s...