Displaying 20 results from an estimated 4000 matches similar to: "[LTO] -time-passes and libLTO"
2017 May 03
2
[LTO] -time-passes and libLTO
2017-05-02 8:42 GMT-07:00 Duncan P. N. Exon Smith <dexonsmith at apple.com>:
> +Teresa, Mehdi
>
> On May 2, 2017, at 08:31, James Henderson <jh7370.2008 at my.bristol.ac.uk>
> wrote:
>
> Hi,
>
> We have been investigating an issue when running LTO with our proprietary
> linker, which links against libLTO dynamically. The issue is that when we
> pass
2014 Jun 09
2
[LLVMdev] Use of statics and ManagedStatics in LLVM
Based on a recent discussion[1], I started trying to remove the functions
llvm_start_multithreaded() and llvm_stop_multithreaded() from the codebase.
It turns out this is a little bit tricky. Consider the following scenario:
During program initialization, a global static object's constructor
dereferences a ManagedStatic. During dereferencing of the ManagedStatic,
it needs to know whether
2014 Jun 02
2
[LLVMdev] PassRegistry thread safety and ManagedStatic interaction
The mutex could be made an actual global static instead of a ManagedStatic.
This guarantees it would be constructed before main, and live until the
end of main. So even in PassRegistry's destructor, which would get call
during llvm_shutdown(), it would always have the same mutex. Ideally I'd
like to just delete the mutex, as it doesn't seem like anyone is using it
in a
2013 Feb 13
0
[LLVMdev] ManagedStatic and order of destruction
Right, I'm suggesting we keep llvm_shutdown() for users who want this
control, but also destroy still-live ManagedStatic instances if
llvm_shutdown() is not called. This helps in the case where there is not a
clear time when llvm_shutdown() can be called, especially given that LLVM
cannot be resurrected in the same process due to current limitations in the
pass registry, and perhaps
2013 Feb 09
3
[LLVMdev] ManagedStatic and order of destruction
I'm curious about the design rationale for how ManagedStatic instances are
cleaned up, and I'm hoping someone can shed some light on it.
Currently, ManagedStatic objects are cleaned up when llvm_shutdown()
traverses the global list of initialized objects and calls destroy() on
each. This leads to two questions:
1. An assertion enforces that the objects are deleted in reverse order of
2014 Jun 02
2
[LLVMdev] PassRegistry thread safety and ManagedStatic interaction
I actually had an idea about how to fix this in a relatively painless
manner. Although given my experience over the past 4 days, it might not be
best to call it painless without first trying :)
The idea is to make a StaticPassRegistry. RegisterPass<> only touches the
StaticPassRegistry, and nothing else touches the StaticPassRegistry. So
once you enter main(), StaticPassRegistry can be
2016 Sep 30
7
libLTO C API stability policy
Hi all,
libLTO is exposing a very “stable” (in the sense of immutable) C API to be used by linkers (and binutils tools) that manipulate bitcode (like when performing LTO).
I’m looking into relaxing the stability concern and design a policy for this API that would allow to deprecate and remove some the APIs exposed here. The MacOS linker (ld64) is one the users of libLTO, but there are others
2015 Oct 27
3
Add a mapping to a C++ lambda
Apologies for the noop question in advance (just getting started with
LLVM), and I'm not entirely sure if this is the right list to post to. is
it?
I have some lambda functions as member variables that I want to have my
LLVM language make calls to. I've added a mapping to them, but this doesn't
seem to enable LLVM to resolve the functions. I asked on stackoverflow but
the suggestion
2012 Dec 13
0
[LLVMdev] Memory leaks after llvm_shutdown
Hi llvmdev!
In our project (Windows, Visual Studio compiler) we've got some frontend
which generates LLVM IR. Now I'm observing strange *llvm_shutdown* behavior.
If I called it when I was done using the LLVM APIs I saw that
destructors of static objects created new ManagedStatic objects, which
was never freed.
Then I tried to use static global llvm_shutdown_obj to cause destruction
2015 Jan 18
4
[LLVMdev] New JIT APIs
> From: Armin Steinhoff [mailto:armin at steinhoff.de]
> Subject: Re: [LLVMdev] New JIT APIs
> is
> delete EE; // execution engine
> llvm_shutdown();
> sufficient ?
AFAICT, llvm_shutdown() must not be called unless you reach a point where LLVM will not be used again by the process (e.g., termination), as it destroys statically allocated objects. We delete the
2010 Aug 18
1
[LLVMdev] clang: call extern function using JIT
Heres my full code listing, im totally stuck.
// Whistle.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "clang/CodeGen/CodeGenAction.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Tool.h"
#include
2015 Jan 12
2
[LLVMdev] LTO support on Mac
On Jan 12, 2015, at 2:45 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
> On 10 January 2015 at 17:43, Rahman Lavaee <r.lavaee at gmail.com> wrote:
>> Hi,
>> I'm building LLVM on Mac OS 10.10 and I'm having trouble making LTO work.
>> The system linker dumps the following information when I executed "ld -v"
>>
>>
2014 Jun 01
3
[LLVMdev] PassRegistry thread safety and ManagedStatic interaction
+cc original authors of these changes.
Is PassRegistry intended to be thread-safe? The header file explicitly
says that PassRegistry is not thread-safe, but there are mutexes and
locking used in the code. This is actually creating a problem, because of
a subtle bug involving static initialization order and shutdown.
In particular, the RegisterPass<> static template will get invoked
2012 Jan 13
2
[LLVMdev] Memory leaks in LLVM on linux
I am trying to figure out how to free up some memory that seems to be lost when running valgrind under our internal application. The stack traces I get are:
==19966== 4 bytes in 1 blocks are still reachable in loss record 1 of 12
==19966== at 0x402569A: operator new(unsigned int) (vg_replace_malloc.c:255)
==19966== by 0x5D9BBE8: void* llvm::object_creator<llvm::PassRegistry>()
2015 Feb 24
2
[LLVMdev] Removing contention in PassRegistry accesses to speed up compiles
Hi,
We use LLVM libraries to compile C++ code and noticed slow downs when
multiple threads of a process were compiling at once. *perf *indicated that
most of the CPU time was spent in a spin lock, which was being
locked/unlocked from llvm::PassRegistry::getPassInfo().
We read the relevant LLVM code and found out that PassRegistry is a
ManagedStatic and is shared among all threads in case of a
2012 Jan 13
3
[LLVMdev] Memory leaks in LLVM on linux
Chris,
I'm using a llvm_shutdown_obj object and it calls llvm_shutdown when I delete it. Do I need to call llvm_shutdown() again afterwards? It looks to me like the static object is being created after my program exits main().
From: Chris Lattner [mailto:clattner at apple.com]
Sent: Friday, January 13, 2012 10:11 AM
To: Villmow, Micah
Cc: LLVM Developers Mailing List
Subject: Re: [LLVMdev]
2015 Dec 14
2
Build libLTO.a instead of libLTO.dylib with Cmake
Hello,
Is there any CMake variable available to build LLVM libs as static
libraries. I found one -DLIBCLANG_BUILD_STATIC=ON but what if I want
libLTO.a instead of libLTO.dylib ?
*Vivek Pandya*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151214/1e03efc9/attachment.html>
2011 Dec 29
2
[LLVMdev] How to free memory of JIT'd function
Hi,
I'm testing how to free memory of a JIT'd function.
I thought ExecutionEngine::freeMachineCodeForFunction() and
Function::eraseFromParent()
would work and did a test with the following sample code.
But I found that the memory usage of the process is constantly growing as
the while loop goes.
Could someone shed light on this please?
Here is the code.
int main(int argc, char **argv) {
2009 Jul 26
2
[LLVMdev] Pass Scheduling Information without using opt
Hey Daniel,
thanks for the response.
> I believe all you need to do is call llvm::llvm_shutdown().
>
I am not sure that this is what I need. When and how should I call
llvm_shutdown()?
After the FunctionPassManager is done, the calling ModulePass still
performs quite a few actions on the transformed code and also calls the
FunctionPassManager on different functions. However, I need
2012 Nov 08
1
[LLVMdev] Automating Analysis Pass at linktime question [liblto] [safecode]
Hello all,
I'm a research assistant at the University of Wisconsin and we're trying to
come up with a general way to run our whole program analysis over programs
that may use different methods to perform the build. I saw some discussion
that liblto could be used for this (and safecode successfully did it) for
llvm 2.6 - 3.0, but that doesn't seem to be working the same way with llvm