Displaying 20 results from an estimated 1100 matches similar to: "[LLVMdev] How to write optimizer loop"
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Hi, Sean:
I'm sorry I lie. I didn't mean to lie. I did try to avoid making a
*BIG* change
to the IPO pass-ordering for now. However, when I make a minor change to
populateLTOPassManager() by separating module-pass and non-module-passes, I
saw quite a few performance difference, most of them are degradations.
Attacking
these degradations one by one in a piecemeal manner is wasting
2006 Sep 03
0
[LLVMdev] llvm-gcc4: Enable various optimizations at -O1/-O2
Hi All,
I have installed llvm-gcc4 patch to enable various llvm optimizations
at -O1/-O2/-O3.
This means instead of
$ llvm-gcc4 --emit-llvm foo.c -o foo.bc
$ opt foo.bc -o foo_optimized.bc
$ llc foo_optimized.bc -o foo.o
One can directly use
$ llvm-gcc4 -O2 foo.c -o foo.o
to get optimized foo.o
-
Devang
+
+ if (optimize > 0) {
+
+
+
2008 May 20
4
[LLVMdev] Optimization passes organization and tradeoffs
Hi all,
I'm getting more impressed by LLVM day by day, but what's a bit unclear to
me now is the order of optimization passes, and their performance. I think I
have a pretty solid understanding of what each pass does at a high level,
but I couldn't find any documentation about how they interact at a lower
level.
I'd like to use LLVM for generating high-performance stream
2013 Jul 18
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Andy and I briefly discussed this the other day, we have not yet got
chance to list a detailed pass order
for the pre- and post- IPO scalar optimizations.
This is wish-list in our mind:
pre-IPO: based on the ordering he propose, get rid of the inlining (or
just inline tiny func), get rid of
all loop xforms...
post-IPO: get rid of inlining, or maybe we still need it, only
2008 Apr 16
2
[LLVMdev] flag_unit_at_a_time and pass scheduling in llvm-gcc
Hi Devang,
> You can do inlining even when flag_unit_at_a_time is off. And one can
> enable unit-at-a-time without enabling any optimizations. The unit-at-
> a-time is not meant to select optimization passes, though it may
> influence selection.
this flag is used quite a bit in llvm-backend.cpp, for example:
if (flag_unit_at_a_time) {
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
2008 Apr 16
0
[LLVMdev] flag_unit_at_a_time and pass scheduling in llvm-gcc
On Apr 16, 2008, at 1:02 PM, Duncan Sands wrote:
> Hi Devang,
>
>> You can do inlining even when flag_unit_at_a_time is off. And one can
>> enable unit-at-a-time without enabling any optimizations. The unit-
>> at-
>> a-time is not meant to select optimization passes, though it may
>> influence selection.
>
> this flag is used quite a bit in
2008 Apr 17
4
[LLVMdev] flag_unit_at_a_time and pass scheduling in llvm-gcc
Hi Devang,
> > this flag is used quite a bit in llvm-backend.cpp, for example:
> >
> > if (flag_unit_at_a_time) {
> > PM->add(createGlobalOptimizerPass()); // Optimize out
> > global vars
> > PM->add(createGlobalDCEPass()); // Remove unused
> > fns and globs
> >
2013 Jan 08
1
[LLVMdev] LTO "bug" and Clang warnings
Hi Duncan,
Ok, I found that even if main() does reference foo, setup() still gets
chopped off and the results is the unexpected:
Foo: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Bar: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Baz: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
So, while there is the issue in LTO, I still think Clang could give a
warning. This is a source of buffer overflow
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
2009 Mar 14
0
[LLVMdev] Strange LLVM Crash
The linkage type is set to external, I have little code snippet I use to
register those native functions in the first post of this topic. The global
DCE pass deletes the unused native functions when run. I commented it out
for now...
Nick Lewycky wrote:
>
> Nyx wrote:
>> Ok, well, I seem to have pinpointed the cause of the problem more
>> accurately.
>> I'm running
2009 Mar 15
0
[LLVMdev] Strange LLVM Crash
I don't know how to do that. Rather new to LLVM. The functions that get
stripped out are native C++ functions that I'm registering in my execution
engine by doing:
// Create a function type object for the function
llvm::FunctionType* pFuncType = llvm::FunctionType::get(returnType,
argTypes, false);
// Create a function object with external linkage and the specified
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 \
2010 Mar 02
0
[LLVMdev] make SHARED_LIBRARY=1 broken?
I suspect my change adding --enable-shared broke you, since that
configure option didn't exist before last week (r97119).
SHARED_LIBRARY is not one of the variables you're supposed to be able
to set on make's command line
(http://llvm.org/docs/MakefileGuide.html#variables). What are you
using it for? What happens if you remove it?
On Tue, Mar 2, 2010 at 1:35 PM, James Williams
2011 Apr 05
3
[LLVMdev] Building LLVM on Solaris/Sparc
Hi,
I'm trying to build llvm on a Solaris/Sparc machine. I get many undefined
symbols during the link phase of opt. The link command being run is below.
It is identical to the link command that gets run and works on an x86 host.
Thanks,
Tarun
g++ -I/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/include
-I/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt
2009 Mar 14
3
[LLVMdev] Strange LLVM Crash
Nyx wrote:
> The linkage type is set to external, I have little code snippet I use to
> register those native functions in the first post of this topic. The global
> DCE pass deletes the unused native functions when run. I commented it out
> for now...
Can you make this happen by writing a custom .ll to demonstrate the
problem? For example:
$ cat gdce.ll
define i32 @foo() {
2010 Mar 02
4
[LLVMdev] make SHARED_LIBRARY=1 broken?
Hi,
Thanks for getting back to me.
I don't actually need opt dynamically linked but I do want shared libraries.
If run make without "SHARED_LIBRARY=1" I don't appear to get any shared
libraries built or installed.
Is LLVM built as shared libraries supported? If so what's the correct build
procedure?
-- James
On 2 March 2010 21:51, Jeffrey Yasskin <jyasskin at
2009 May 28
0
[LLVMdev] Sparse propagation framework
On Wed, May 27, 2009 at 5:26 PM, Mark Lacey <superoptimizer at gmail.com> wrote:
> Hi All,
>
Hi Mark,
> I'm relatively new to LLVM (but not optimizing compilers), and have been
> reading docs and browsing code.
>
Bienvenue!
> I noticed in the 2.4 release notes that a sparse propagation framework had
> been added based on the SCCP algorithm. I might have a need for
2007 Apr 30
1
[LLVMdev] llvm-gcc build broken
I can't build llvm-gcc from working directories updated an hour
ago.
-Dave
/tools/llvm-tools/i686-pc-linux-gnu/bin/g++ -c -g -DENABLE_CHECKING
-DENABLE_ASSERT_CHECKING -DIN_GCC -W -Wall -Wwrite-strings -pedantic
-Wno-long-long -Wno-variadic-macros -fno-common -DHAVE_CONFIG_H
-Wno-unused -DTARGET_NAME=\"i686-pc-linux-gnu\" -DENABLE_LLVM
2008 Aug 11
2
[LLVMdev] Applying different Optimizations for different Functions - Questions?
Hi!
I am trying to develop an LLVM tool which can apply different optimizations
for selected functions. For example, I want to apply an optimization onto one
function but not for another one.
I am using the standard optimizations available in LLVM.
That is the runOnModule function I have written:
bool ComplNewBBFuncs::runOnModule(Module &M)
{
Function *Main =