Displaying 20 results from an estimated 5000 matches similar to: "LLVMContext: Threads and Ownership."
2018 Sep 16
2
LLVMContext: Threads and Ownership.
Agreed, the existing ownership seems sub-optimal. I wouldn't say broken,
but subtle at least - looks like you get the choice to either manage the
ownership of the Module object yourself, or let the context handle it (eg:
currently it'd be valid to just do "{ LLVMContext C; new Module(C); new
Module(C); }" - Modules end up owned by the context and cleaned up there).
Might be hard
2018 Sep 16
2
LLVMContext: Threads and Ownership.
In the most basic case, I'd imagine something like this:
auto C = std::make_shared<LLVMContext>();
struct ModuleAndSharedContextDeleter { std::shared_ptr<LLVMContext> C;
operator()(Module *M) { delete M; } /* ctor to init C */};
std::unique_ptr<Module, ModuleAndSharedDeleter> M(new Module(C.get()),
ModuleAndSharedContextDeleter(C));
(or invert this and traffic in structs
2014 Jun 24
6
[LLVMdev] Making it possible to clear the LLVMContext
Hello,
I'm trying to develop a way to reliably clean the LLVMContext in order to
make it possible to use it multiple times.
LLVMContext itself is an almost empty object delegating almost all its
content to LLVMContextImpl.
This makes it very clean ideally, because clearing the LLVMContext would be
as easy as deleting the LLVMContextImpl and creating a new one.
The problem is that for some
2013 Nov 13
2
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
Hi All,
In LTO, we load in the source modules and link the source modules into a
destination module.
Lots of MDNodes are only used by the source modules, for example Xalan used
649MB for MDNodes after loading and linking, but the actual destination
module only has 393MB of MDNodes. There are 649-393MB (40% of 649MB) not
used.
MDNodes belong to the Context, deleting modules will not release the
2013 Nov 13
3
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
On Tue, Nov 12, 2013 at 4:38 PM, Chandler Carruth <chandlerc at google.com>wrote:
>
> On Tue, Nov 12, 2013 at 4:29 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
>> Hi All,
>>
>> In LTO, we load in the source modules and link the source modules into a
>> destination module.
>> Lots of MDNodes are only used by the source modules, for example
2013 Nov 13
0
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
On Tue, Nov 12, 2013 at 4:29 PM, Manman Ren <manman.ren at gmail.com> wrote:
> Hi All,
>
> In LTO, we load in the source modules and link the source modules into a
> destination module.
> Lots of MDNodes are only used by the source modules, for example Xalan
> used 649MB for MDNodes after loading and linking, but the actual
> destination module only has 393MB of
2014 Jun 24
4
[LLVMdev] Making it possible to clear the LLVMContext
Hello,
the need here is to have a single LLVMContext used for multiple
compilations.
You make a good point about that by the way. If there are outstanding users
cleaning the context under their seats might still pose a risk to them, and
in that case deleting + newing a new LLVMContextImpl might actually not be
very different.
Marcello
2014-06-24 17:14 GMT+01:00 David Blaikie <dblaikie at
2013 Nov 13
0
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
On Tue, Nov 12, 2013 at 4:46 PM, Manman Ren <manman.ren at gmail.com> wrote:
>
>
>
> On Tue, Nov 12, 2013 at 4:38 PM, Chandler Carruth <chandlerc at google.com>wrote:
>
>>
>> On Tue, Nov 12, 2013 at 4:29 PM, Manman Ren <manman.ren at gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> In LTO, we load in the source modules and
2014 Jun 24
5
[LLVMdev] Making it possible to clear the LLVMContext
Something like, keeping the compiler alive for a many compilation sessions,
using the same LLVMContext, but without the problem of accumulating data in
the LLVMContext that would slowly fill up the memory.
This as much I can enter into details that I can :/
Probably this is also a quite common use case scenario too.
Marcello
2014-06-24 18:52 GMT+01:00 Eric Christopher <echristo at
2015 Jan 14
3
[LLVMdev] Crash on invalid during LLVMContext destruction MDNode::dropAllReferences
Hi Duncan,
I came across something like the following recently which I guess might be
related to your recent work. Any ideas?
$ clang++-tot -cc1 crash_on_invalid.cpp -g -emit-obj -fexceptions
-fcxx-exceptions
crash_on_invalid.cpp:13:1: error: C++ requires a type specifier for all
declarations
x;
^
1 error generated.
*** Error in `clang++-tot': corrupted double-linked list:
0x000000000754f340
2020 Jan 29
3
Question about LLVM LLJIT Compile time
Hi,
We are using the new LLJIT class in our compiler. We have not been
successful using the parallel JIT feature. When we tried it previously on
multiple modules, our compile-time increased significantly. I don't know if
we are using it incorrectly, or that we miss out on optimizations we get
when running on a single merged module, but it hasn't worked for us yet. We
are pretty far behind
2013 Oct 18
1
[LLVMdev] Iterate through a Module's StructTypes
Hello,
I'm updating a legacy code using LLVM 2.5 where it has an iteration through
a Module's TypeSymbolTable to process each StructType.
In LLVM 3.4, TypeSymbolTable has been removed. I can only find the
LLVMContextImpl instance of a Module's LLVMContext which has
AnonStructTypes and NamedStructTypes two maps. However, LLVMContextImpl is
an opaque class which cannot be directly
2009 Sep 18
3
[LLVMdev] compiling java frontend
Thanks, I am now working on compiling up VMKit. When compiling VMKit in my
up-to-date svn checkout I get several error messages on missing members of
the class 'llvm::Type':
PNetLib.cpp: In function ‘void decapsulePrimitive(n3::VMObject*, const
llvm::Type*, std::vector<llvm::GenericValue,
std::allocator<llvm::GenericValue> >&)’:
PNetLib.cpp:694: error: ‘Int1Ty’ is not a
2018 Mar 23
2
IRMover asserts "mapping to a source type" when repeatedly linking - usage or LLVM bug?
Hi,
(sorry if the CC's are inappropriate, they seemed relevant based on a
git log of IRMover.cpp)
I'm using LLVM to implement Just-in-Time compilation for PostgreSQL. One
part of that is doing inlining of operators. For that I'm using bitcode
pre-generated using clang.
The current code uses a single LLVMContext & Orc to generate the
code. That largely workes well. But inlining
2018 Mar 27
2
IRMover asserts "mapping to a source type" when repeatedly linking - usage or LLVM bug?
Hi,
On 2018-03-26 16:44:05 -0700, Duncan P. N. Exon Smith wrote:
> > The second approach is to *not* cache modules but re-read them from disk
> > (or memory, but that's irrelevant here). That works without any sort of
> > asserts, but "leaks" memory because everytime a module is re-read from
> > disk it re-creates types (cf
2013 Jan 14
0
[LLVMdev] Memory clean for applications using LLVM for JIT compilation
On Mon, Jan 14, 2013 at 4:56 AM, Dirkjan Bussink <d.bussink at gmail.com>wrote:
> Hello all,
>
> I've already bothered people on IRC with this question and it was
> recommended to ask it here.
>
> First of all, some context. In Rubinius (http://rubini.us/,
> http://github.com/rubinius/rubinius) we use LLVM for our JIT. We create
> LLVM IR using the C++ API and
2015 Jun 02
2
[LLVMdev] Linking modules across contexts crashes
> On 2015-Jun-02, at 12:37, Yuri <yuri at rawbw.com> wrote:
>
> On 06/01/2015 11:43, Duncan P. N. Exon Smith wrote:
>> You can round-trip to bitcode, reading the module into the
>> destination context. The following pseudo-code gives the idea:
>>
>> bool linkModuleFromDifferentContext(Module &D, const Module &S) {
>>
2018 Mar 26
0
IRMover asserts "mapping to a source type" when repeatedly linking - usage or LLVM bug?
> On Mar 23, 2018, at 16:11, Andres Freund via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hi,
>
> (sorry if the CC's are inappropriate, they seemed relevant based on a
> git log of IRMover.cpp)
>
> I'm using LLVM to implement Just-in-Time compilation for PostgreSQL. One
> part of that is doing inlining of operators. For that I'm using bitcode
2018 Mar 27
0
IRMover asserts "mapping to a source type" when repeatedly linking - usage or LLVM bug?
> On Mar 26, 2018, at 17:09, Andres Freund <andres at anarazel.de> wrote:
>
> Hi,
>
> On 2018-03-26 16:44:05 -0700, Duncan P. N. Exon Smith wrote:
>>> The second approach is to *not* cache modules but re-read them from disk
>>> (or memory, but that's irrelevant here). That works without any sort of
>>> asserts, but "leaks" memory
2013 Jan 14
3
[LLVMdev] Memory clean for applications using LLVM for JIT compilation
Hello all,
I've already bothered people on IRC with this question and it was recommended to ask it here.
First of all, some context. In Rubinius (http://rubini.us/, http://github.com/rubinius/rubinius) we use LLVM for our JIT. We create LLVM IR using the C++ API and turn that into machine code using ExecutionEngine::runJITOnFunction. The resulting native code is then installed as the