Displaying 20 results from an estimated 7000 matches similar to: "[LLVMdev] Setting how aggressive the inliner is in 2.1"
2008 Jan 08
0
[LLVMdev] Setting how aggressive the inliner is in 2.1
On Mon, 7 Jan 2008, Robert Zeh wrote:
> Is there a way to set how aggressive the inliner pass
> (createFunctionInliningPass) without going through the command line
> interface?
Nope. Well, you could call cl::ParseCommandLine yourself (passing in a
static array) like llvm-gcc does, but other than that "no".
> Is there any reason InlineLimit isn't an argument to the
2008 Jan 12
1
[LLVMdev] Setting how aggressive the inliner is in 2.1
I think this will do the trick:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: inliner.patch
Type: application/octet-stream
Size: 2654 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080111/18fad7e6/attachment.obj>
-------------- next part --------------
Robert
On Jan 8, 2008, at 3:26 PM, Chris Lattner wrote:
2011 Nov 23
2
[LLVMdev] JIT: Inlining introduces intrinsics.
If I activate the Inliner pass:
Builder.Inliner = createFunctionInliningPass(Threshold);
this is the result:
LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved!
It happens on almost all my test cases, even at -O0.
This JIT compiler does the same as `opt' wrt optimization passes. I'm
using a LLVM snapshot from approx 4 months ago.
2011 Nov 23
2
[LLVMdev] JIT: Inlining introduces intrinsics.
Hello Eli.
Eli Friedman <eli.friedman at gmail.com> writes:
>> If I activate the Inliner pass:
>>
>> Builder.Inliner = createFunctionInliningPass(Threshold);
>>
>> this is the result:
>>
>> LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved!
>>
>> It happens on almost all my test
2011 Nov 23
0
[LLVMdev] JIT: Inlining introduces intrinsics.
On Tue, Nov 22, 2011 at 8:26 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:
> If I activate the Inliner pass:
>
> Builder.Inliner = createFunctionInliningPass(Threshold);
>
> this is the result:
>
> LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved!
>
> It happens on almost all my test cases, even at -O0.
>
2011 Nov 25
0
[LLVMdev] JIT: Inlining introduces intrinsics.
Óscar Fuentes <ofv at wanadoo.es> writes:
>>> If I activate the Inliner pass:
>>>
>>> Builder.Inliner = createFunctionInliningPass(Threshold);
>>>
>>> this is the result:
>>>
>>> LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved!
>>>
>>> It happens on almost
2012 Feb 29
2
[LLVMdev] problem with inlining pass
Hi!
My llvm version is 3.0 release.
I have a module generated by clang. When I optimize it, I first add an
inlining pass (llvm::createFunctionInliningPass), then these passes:
- own FunctionPass
- llvm::createPromoteMemoryToRegisterPass
- llvm::createInstructionCombiningPass
- llvm::createDeadInstEliminationPass
- llvm::createDeadStoreEliminationPass
- new llvm::DominatorTree()
- new
2005 Jul 04
2
[LLVMdev] function inlining threshold ?
I am using llvm for source-to-source inlining. So I did:
% llvm-gcc file_a.c file_b.c ... file_n.c -o file
% opt -inline -inline-threshold=1000 < file.bc | llc -march=c > outfile.c
Can anyone tell me how llvm determines if a function should be inlined,
and what roll does "inline-threshold" play ? (Does the example mean that
if the function body has fewer than 1000 instructions,
2005 Jul 05
0
[LLVMdev] function inlining threshold ?
On Mon, Jul 04, 2005 at 03:32:39PM -0500, Long Fei wrote:
> I am using llvm for source-to-source inlining. So I did:
>
> % llvm-gcc file_a.c file_b.c ... file_n.c -o file
> % opt -inline -inline-threshold=1000 < file.bc | llc -march=c > outfile.c
>
> Can anyone tell me how llvm determines if a function should be
> inlined, and what roll does
2012 Feb 29
1
[LLVMdev] how to remove inlined function
Hi!
I'm using clang/llvm 3.0 release and I have a module that is generated
by clang
with some functions declared as inline. after inlining
(llvm::createFunctionInliningPass)
I'd like to remove the functions that were inlined. how can this be done?
surprisingly they are removed if a print pass
(llvm::createPrintModulePass) is
present. is there an explanation for this?
-Jochen
2016 Apr 16
2
[TSAN] LLVM statistics and pass initialization trigger race detection
Hello,
I trying TSAN on Darwin on LLVM itself (sanitizing multi-threaded ThinLTO link).
However I see two main issues on my debug build:
1) Statistics: the pre/post increment is not safe, it seems to be acknowledge in the code itself:
// FIXME: This function and all those that follow carefully use an
// atomic operation to update the value safely in the presence of
// concurrent
2009 Mar 14
0
[LLVMdev] Strange LLVM Crash
Ok, well, I seem to have pinpointed the cause of the problem more accurately.
I'm running some optimization passes on my module after I compile each
function in my scripting language (functions can be compiled at various
times, when scripts are loaded). Now it seems these optimization passes will
prune some of the native C++ functions I'm registering in my module (the
functions that
2011 Oct 15
2
[LLVMdev] Maximum inlining threshold
Hi,
We want to apply the deepest possible inlining to the target code. Looks like
builder.Inliner = createFunctionInliningPass(2000);
does the sufficient inlining, but what would be the best value for
threshold here? Apparently,
builder.Inliner = createFunctionInliningPass(numeric_limits<int>::max());
gives less inlining, that 2000.
Thanks,
- D.
2009 Mar 14
2
[LLVMdev] Strange LLVM Crash
Nyx wrote:
> Ok, well, I seem to have pinpointed the cause of the problem more accurately.
> I'm running some optimization passes on my module after I compile each
> function in my scripting language (functions can be compiled at various
> times, when scripts are loaded). Now it seems these optimization passes will
> prune some of the native C++ functions I'm registering in
2017 Mar 31
2
How to write the same things as `opt` command in C++ API
Hi, I'm Ryo Ota. I'm using LLVM 3.8.1. I have a quesion about inlining
function in C++ API.
I'd like to inline some functions in a module in the same way as `opt
-inline` command. But my C++ code didn't work what I want to do.
For example, by using `opt -inline` command,`main.ll` is converted into the
`inlined.ll`(`opt` command worked what I want to do)
[main.ll (Not inlined)]
2013 Sep 17
11
[LLVMdev] [RFC] Internal command line options should not be statically initialized.
LLVM's internal command line library needs to evolve. We have an immediate need to build LLVM as a library free of static initializers, but before brute-force fixing this problem, I'd like outline the incremental steps that will lead to a desirable long term solution. We want infrastructure in place to provide an evolutionary path.
In the near term, clients who need llvm-the-library with
2010 Mar 02
2
[LLVMdev] make SHARED_LIBRARY=1 broken?
Hi,
Until recently I've been building LLVM with SHARED_LIBRARY=1. However, sith
current svn, build now fails with unresolved symbols building opt. I've done
a clean checkout, configure and make so it's not down to any local changes
I've made.
I'm building with:
./configure --enable-assertions \
--enable-expensive-checks=no \
--enable-pic \
--enable-targets=host-only \
2012 Mar 22
4
[LLVMdev] Execution Engine: CodeGenOpt level
Hi,
How can I dynamically change the code generation optimization level (e.g.,
None) of a JIT in other to recompile a function with a new optimization
level (e.g., Default)?
Thank you.
Best regards,
Nurudeen.
2008 Jul 30
0
[LLVMdev] llvm-gcc fortran bootstrap broken
And how about this one so as not to include a C specific
header in llvm-backend (!!!) and not to have llvm-backend
use a C specific flag (flag_no_builtin)?
Index: gcc-4.2.llvm/gcc/c-opts.c
===================================================================
--- gcc-4.2.llvm.orig/gcc/c-opts.c 2008-07-30 21:25:28.000000000 +0200
+++ gcc-4.2.llvm/gcc/c-opts.c 2008-07-30 21:26:17.000000000 +0200
@@
2008 May 18
4
[LLVMdev] Opaque type usage to represent foreign types
In my project I have a group of foreign types (C++ classes) that I
want to use, but don't want to represent as structs within LLVM. For
example, for each field in each C++ class I have a setter and getter
function that I'd like to use. The setters and getters are "extern C"
functions to avoid problems with C++'s name mangling.
After going over the documentation it