- Oct 23, 2010
-
-
Andrew Trick authored
framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. llvm-svn: 117174
-
- Oct 15, 2010
-
-
Jakob Stoklund Olesen authored
splitting or spillling, and to help with rematerialization. Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it possible to share remat code between InlineSpiller and SplitKit. llvm-svn: 116543
-
- Oct 07, 2010
-
-
Owen Anderson authored
llvm-svn: 115949
-
- Sep 29, 2010
-
-
Oscar Fuentes authored
llvm-svn: 114999
-
- Sep 14, 2010
-
-
Michael J. Spencer authored
This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake llvm-svn: 113819
-
- Sep 10, 2010
-
-
Michael J. Spencer authored
llvm-svn: 113632
-
- Aug 14, 2010
-
-
Ted Kremenek authored
llvm-svn: 111063
-
Jim Grosbach authored
experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 llvm-svn: 111059
-
- Aug 10, 2010
-
-
Bill Wendling authored
llvm-svn: 110654
-
- Aug 06, 2010
-
-
Ted Kremenek authored
llvm-svn: 110429
-
- Jul 20, 2010
-
-
Jakob Stoklund Olesen authored
This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. llvm-svn: 108842
-
- Jul 19, 2010
-
-
Benjamin Kramer authored
llvm-svn: 108700
-
- Jul 17, 2010
-
-
Zhongxing Xu authored
llvm-svn: 108620
-
- Jul 07, 2010
-
-
Dan Gohman authored
llvm-svn: 107781
-
- Jun 30, 2010
-
-
Jakob Stoklund Olesen authored
InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. llvm-svn: 107227
-
- Jun 15, 2010
-
-
Jakob Stoklund Olesen authored
Please use the fast allocator instead. llvm-svn: 106051
-
Ted Kremenek authored
llvm-svn: 105987
-
- Apr 21, 2010
-
-
Jakob Stoklund Olesen authored
So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. llvm-svn: 102006
-
Dan Gohman authored
llvm-svn: 101976
-
- Apr 03, 2010
-
-
David Greene authored
Ok, third time's the charm. No changes from last time except the CMake source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100249
-
- Apr 02, 2010
-
-
Chris Lattner authored
llvm-svn: 100222
-
Benjamin Kramer authored
llvm-svn: 100206
-
- Mar 02, 2010
-
-
Eric Christopher authored
llvm-svn: 97545
-
- Feb 15, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 96292
-
- Feb 12, 2010
-
-
Bob Wilson authored
reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. llvm-svn: 95951
-
- Feb 02, 2010
-
-
Daniel Dunbar authored
llvm-svn: 95041
-
- Jan 19, 2010
-
-
Benjamin Kramer authored
llvm-svn: 93905
-
- Jan 15, 2010
-
-
Ted Kremenek authored
llvm-svn: 93571
-
- Jan 13, 2010
-
-
Ted Kremenek authored
llvm-svn: 93283
-
- Dec 14, 2009
-
-
Lang Hames authored
llvm-svn: 91275
-
- Dec 02, 2009
-
-
Douglas Gregor authored
llvm-svn: 90354
-
Jim Grosbach authored
llvm-svn: 90337
-
- Nov 26, 2009
-
-
Bob Wilson authored
running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. llvm-svn: 89904
-
- Nov 04, 2009
-
-
Douglas Gregor authored
llvm-svn: 85994
-
- Oct 26, 2009
-
-
David Goodwin authored
Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all. llvm-svn: 85145
-
David Goodwin authored
llvm-svn: 85127
-
- Oct 08, 2009
-
-
Chris Lattner authored
llvm-svn: 83500
-
- Sep 17, 2009
-
-
Evan Cheng authored
llvm-svn: 82127
-
- Sep 16, 2009
-
-
Xerxes Ranby authored
llvm-svn: 82038
-
- Aug 23, 2009
-
-
Chris Lattner authored
llvm-svn: 79802
-