- Dec 22, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 122444
-
Chris Lattner authored
loads properly. We miscompiled the testcase into: _test: ## @test movl $128, (%rdi) movzbl 1(%rdi), %eax ret Now we get a proper: _test: ## @test movl $128, (%rdi) movsbl (%rdi), %eax movzbl %ah, %eax ret This fixes PR8757. llvm-svn: 122392
-
Chris Lattner authored
unhanded cases faster and simplify code. llvm-svn: 122391
-
Chris Lattner authored
llvm-svn: 122389
-
- Dec 21, 2010
-
-
Andrew Trick authored
the same physical register. Simplifies the fix from the previous checkin r122211. llvm-svn: 122370
-
Andrew Trick authored
llvm-svn: 122368
-
Dale Johannesen authored
the shift type was needed one place, the shift count type another. The transform in 123555 had the same problem. llvm-svn: 122366
-
Dale Johannesen authored
llvm-svn: 122360
-
Dale Johannesen authored
llvm-svn: 122355
-
Dale Johannesen authored
count operand. These should be the same but apparently are not always, and this is cleaner anyway. This improves the code in an existing test. llvm-svn: 122354
-
Dale Johannesen authored
llvm-svn: 122353
-
Chris Lattner authored
llvm-svn: 122349
-
Stuart Hastings authored
llvm-svn: 122345
-
Stuart Hastings authored
llvm-svn: 122342
-
Cameron Zwarich authored
of the problems with my last attempt were in the updating of LiveIntervals rather than the coalescing itself. Therefore, I decided to get that right first by essentially reimplementing the existing PHIElimination using LiveIntervals. It works correctly, with only a few tests failing (which may not be legitimate failures) and no new verifier failures (at least as far as I can tell, I didn't count the number per file). llvm-svn: 122321
-
Chris Lattner authored
something that just glues two nodes together, even if it is sometimes used for flags. llvm-svn: 122310
-
Chris Lattner authored
they are just as useless, but at least a bit more gramatical llvm-svn: 122305
-
Jakob Stoklund Olesen authored
Edge bundles is an annotation on the CFG that turns it into a bipartite directed graph where each basic block is connected to an outgoing and an ingoing bundle. These bundles are useful for identifying regions of the CFG for live range splitting. llvm-svn: 122301
-
Jakob Stoklund Olesen authored
llvm-svn: 122296
-
- Dec 20, 2010
-
-
Dale Johannesen authored
llvm-svn: 122259
-
Cameron Zwarich authored
out-edges. Fixes PR8824. llvm-svn: 122228
-
Cameron Zwarich authored
begin at DEF slots. Fixes the second half of PR8813. llvm-svn: 122225
-
Cameron Zwarich authored
llvm-svn: 122224
-
Chris Lattner authored
ARM (and other 32-bit-only) targets support for i8 and i16 overflow multiplies. The generated code isn't great, but this at least fixes CodeGen/Generic/overflow.ll when running on ARM hosts. llvm-svn: 122221
-
Cameron Zwarich authored
the register; it may be a dead def instead. Fixes PR8820. llvm-svn: 122218
-
Chris Lattner authored
Imagine we see: EFLAGS = inst1 EFLAGS = inst2 FLAGS gpr = inst3 EFLAGS Previously, we would refuse to schedule inst2 because it clobbers the EFLAGS of the predecessor. However, it also uses the EFLAGS of the predecessor, so it is safe to emit. SDep edges ensure that the right order happens already anyway. This fixes 2 testsuite crashes with the X86 patch I'm going to commit next. llvm-svn: 122211
-
Chris Lattner authored
llvm-svn: 122209
-
Chris Lattner authored
llvm-svn: 122208
-
Cameron Zwarich authored
PR8822. llvm-svn: 122207
-
Cameron Zwarich authored
half of PR8813. llvm-svn: 122205
-
- Dec 19, 2010
-
-
Cameron Zwarich authored
ConnectedVNInfoEqClasses::Classify(). llvm-svn: 122202
-
Cameron Zwarich authored
llvm-svn: 122199
-
Cameron Zwarich authored
llvm-svn: 122197
-
Nick Lewycky authored
llvm-svn: 122193
-
Chris Lattner authored
enough to teach it that ADDE(0,0) is known 0 except the low bit, for example. llvm-svn: 122191
-
Cameron Zwarich authored
alternative register allocator that does not require LiveIntervals by specifying it on the command-line for a target that has StrongPHIElimination enabled by default. These checks are pretty meaningless anyways, since StrongPHIElimination and PHIElimination are never used at the same time. llvm-svn: 122176
-
Chris Lattner authored
isel is *required* to split the edge. PHI values get evaluated on the edge, not in their predecessor block. llvm-svn: 122170
-
- Dec 18, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 122135
-
Jakob Stoklund Olesen authored
use before rematerializing the load. This allows us to produce: addps LCPI0_1(%rip), %xmm2 Instead of: movaps LCPI0_1(%rip), %xmm3 addps %xmm3, %xmm2 Saving a register and an instruction. The standard spiller already knows how to do this. llvm-svn: 122133
-
Jakob Stoklund Olesen authored
llvm-svn: 122132
-