Displaying 16 results from an estimated 16 matches for "bigblock".
2009 Jul 29
3
[LLVMdev] Removing the bigblock register allocator.
On Jul 29, 2009, at 3:14 PM, Roman Levenstein wrote:
> Hi Lang,
>
> There are at least two projects that were using BigBlock, directly or
> indirectly.
Hi Roman,
We have many plans to rip out linscan and replace it with something
that handles large blocks better. That's not the issue :). The
problem is that bigblock is unmaintained and bitrotted. Since noone
is working on it, it doesn't work, and it...
2009 Jul 29
2
[LLVMdev] Removing the bigblock register allocator.
Hi all,
I'd like to kill off the bigblock register allocator. Is anyone still using it?
Cheers,
Lang.
2009 Jul 29
0
[LLVMdev] Removing the bigblock register allocator.
Hi Lang,
There are at least two projects that were using BigBlock, directly or
indirectly.
One approach is described in the paper "Register Spilling and
Live-Range Splitting for SSA-Form Programs" by Matthias Braun and
Sebastian Hack.
It can be found here:
http://pp.info.uni-karlsruhe.de/publication.php?id=braun09cc
http://pp.info.uni-karlsruhe.de/up...
2009 Jul 30
0
[LLVMdev] Removing the bigblock register allocator.
Hi Chris,
2009/7/30 Chris Lattner <clattner at apple.com>:
>
> On Jul 29, 2009, at 3:14 PM, Roman Levenstein wrote:
>
>> Hi Lang,
>>
>> There are at least two projects that were using BigBlock, directly or
>> indirectly.
>
> Hi Roman,
>
> We have many plans to rip out linscan and replace it with something
> that handles large blocks better. That's not the issue :).
As far as I know, we have these ambitious plans since a while (just X
years), but there is no goo...
2007 Jun 22
3
[LLVMdev] BigBlock register allocator
...sing only a single register
(and the stack, a lot!) for hundreds or thousands of instructions at a
time, greatly slowing (+bloating) the code. Luckily, I didn't have the
presence of mind to actually try using the local register allocator
before I ripped its guts out, turning it into RegAllocBigBlock.cpp
that's now in CVS. (Had I done that, I would have been quite happy to
find that the local allocator produced much better code, much faster
than linearscan.)
The good news is the new "BigBlock" allocator turns out to produce even
better code than the local allocator when bloc...
2007 Jun 22
0
[LLVMdev] BigBlock register allocator
...e fairly large functions
that are just flat sequences of instructions, anywhere from 100 to
10000+ in size??? It would be nice, if you could send me those test
cases (as C or ll files). I could use it then as a basis for a
comparision and report about results.
> The good news is the new "BigBlock" allocator turns out to
> produce even better code than the local allocator when blocks are
very
> large. We're talking a +10~20% speed boost on average. (If your basic
> blocks are small, or there's not much register pressure, you'll
> actually get the same code ou...
2007 Jun 22
1
[LLVMdev] BigBlock register allocator
...39;d be curious to see if your allocator can improve the code
enough to justify the extra time spent.
> Do you have numbers comparing it to the current version of the LLVM's
> linear scan? The win of your allocator over the linear scan should be
> even better, I guess.
Both local and bigblock are way, way ahead of the linearscan allocator for my
application (and I imagine others, such as large unrolled linear algebra
kernels, FFTs/codecs etc). On the code I have, performance improves
by around 50~100% using the local allocator. Using bigblock gives another
10~20% on top of that, with th...
2009 Jul 30
1
[LLVMdev] Removing the bigblock register allocator.
Hi Roman,
> BTW, the research papers that I mentioned are not about improving
> register allocation for large blocks (which was the target in the case
> of BigBlock). They are about register allocation for general purpose
> CFGs. And they report improvements (greatly reduced number of
> load/stores for spills) over linear scan. The compilation time is also
> comparable with linear scan. So, independent of the BigBlock
> discussion they are worse lo...
2009 Jul 30
1
[LLVMdev] Removing the bigblock register allocator.
...thm significantly
better over the years. However, we're getting more serious about
actually doing something about the core algorithms.
> BTW, the research papers that I mentioned are not about improving
> register allocation for large blocks (which was the target in the case
> of BigBlock). They are about register allocation for general purpose
> CFGs. And they report improvements (greatly reduced number of
> load/stores for spills) over linear scan.
Sure, we won't keep the linscan algorithm. The current LLVM linscan
implementation is not linear time in any case, and s...
2007 Dec 13
1
[LLVMdev] Puzzle solver on LLVM 2.1
...think it would be easy to add the LLVM dominator tree once
I can compile it (the compilation problem is due to gcc 3.3.3). My next
step will be:
1) debug the three benchmarks that are failing: gcc, vpr and vortex
2) add instruction folding
Just as an aside, I compared the puzzle solver with the BigBlockAllocator,
and the puzzle solver seems to be producing much fewer memory accesses for
big basic blocks. For instance, for a basic block with about 8000
instructions, the algorithms produce the following static code:
#mem accesses #Moves
puzzle 178...
2007 Oct 09
1
[LLVMdev] Supporting pre-allocated registers in LLVM
Quoting Bill Wendling <isanbard at gmail.com>:
> Hi Nikolaos,
>
> I have an alpha version of Chow & Hennesey's priority-based graph
> coloring algorithm. It's suffering from some bit-rotting -- e.g.,
> there's some trouble with how it calculates "forbidden" registers.
> You're welcome to the code, if you'd like to hack on it. I've been
2007 Oct 05
1
[LLVMdev] Supporting pre-allocated registers in LLVM
> > 1. I can see the standard algorithms (bigblock, linearscan -- good
> > choice for
> > the JIT and for general use as well, and the other algorithms). Is
> > it possible
> > to pre-allocate registers in your linearscan (or in another
> > allocation engine)
> > for specific source-level or (better) intermediate...
2007 Oct 05
3
[LLVMdev] Supporting pre-allocated registers in LLVM
Hi there
i would like to ask a few questions to the developers responsible for the
register allocator(s) design in LLVM (Fernando and other people).
First of all, congrats on providing more than one option for register
allocation.
Now to the questions:
1. I can see the standard algorithms (bigblock, linearscan -- good choice for
the JIT and for general use as well, and the other algorithms). Is it possible
to pre-allocate registers in your linearscan (or in another allocation engine)
for specific source-level or (better) intermediate code (bitcode) level
variables?
Ideally i would to pre-all...
2008 Sep 04
0
[LLVMdev] Register allocation problems with TLS unit test.
Running the SingleSource tests with llc while debugging my PBQP
allocator I noticed that
test-suite/SingleSource/UnitTests/Threads/tls.c has some issues with
register allocators other than linear scan:
Local, simple & bigblock regalloc all cause the following ld assertion failures:
bash-3.2$ gcc tls.foo.s -o tls.foo.debug -lm -lpthread
/usr/bin/ld: BFD version 2.17.50.0.18-1 20070731 assertion fail
../../bfd/elf64-x86-64.c:2561
/usr/bin/ld: BFD version 2.17.50.0.18-1 20070731 assertion fail
../../bfd/elf64-x86-64.c:...
2008 Nov 14
0
[LLVMdev] Proper arguments for -march?
Hello,
On Fri, Nov 14, 2008 at 6:57 PM, H. Johnson <misc at faradayco.com> wrote:
> llc -march=x86 tempfileB.bc yields:
> llc: for the -march option: : Cannot find option named 'x86'!
Run llc -help and see, if any backends were linked in. It will show
you list of all backends, which were 'registered' and thus known to
llc.
--
With best regards, Anton Korobeynikov
2008 Nov 14
4
[LLVMdev] Proper arguments for -march?
llc -march=x86 tempfileB.bc yields:
llc: for the -march option: : Cannot find option named 'x86'!
Windows build using Visual Studio 2008 Express with CMake.
clang and other tools seem to also complain about the format of -march,
but other command line arguments seem to be working. Tools, clang
llvm-as, opt, etc., "seem" to be working.
Incidently, the bytecode file was