- Dec 22, 2010
-
-
Matt Beaumont-Gay authored
types, but they're just getting converted to unsigned anyway, so cast first (and ask questions later). llvm-svn: 122377
-
- Dec 21, 2010
-
-
Owen Anderson authored
llvm-svn: 122371
-
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
-
Benjamin Kramer authored
(add Y, (sete X, 0)) -> cmp X, 1; adc 0, Y (add Y, (setne X, 0)) -> cmp X, 1; sbb -1, Y (sub (sete X, 0), Y) -> cmp X, 1; sbb 0, Y (sub (setne X, 0), Y) -> cmp X, 1; adc -1, Y for unsigned foo(unsigned a, unsigned b) { if (a == 0) b++; return b; } we now get: foo: cmpl $1, %edi movl %esi, %eax adcl $0, %eax ret instead of: foo: testl %edi, %edi sete %al movzbl %al, %eax addl %esi, %eax ret llvm-svn: 122364
-
Benjamin Kramer authored
llvm-svn: 122362
-
Dale Johannesen authored
llvm-svn: 122360
-
Rafael Espindola authored
the folding it can. llvm-svn: 122359
-
Rafael Espindola authored
are not actually relaxed. For example, a section with only alignments will never needs relaxation. llvm-svn: 122356
-
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
-
David Greene authored
Revert 122341. It breaks some darwin tests. llvm-svn: 122346
-
Stuart Hastings authored
llvm-svn: 122345
-
Duncan Sands authored
visit instructions before their uses, since InstructionSimplify does a better job in that case. All this prompted by Frits van Bommel. llvm-svn: 122343
-
Stuart Hastings authored
llvm-svn: 122342
-
David Greene authored
Fix PR 8199. This patch prepends the build tool dir to LLVM programs being tested. This ensures that we test the tools just built and not some random tools that might happen to be in the user's PATH. This makes LLVM testing much more stable and predictable. llvm-svn: 122341
-
Jim Grosbach authored
llvm-svn: 122337
-
Duncan Sands authored
not very important since the pass is only used for testing, but it does make it more realistic. Suggested by Frits van Bommel. llvm-svn: 122336
-
Daniel Dunbar authored
type. llvm-svn: 122334
-
Duncan Sands authored
llvm-svn: 122333
-
Duncan Sands authored
not assume this (for example in case more transforms get added below it). Suggested by Frits van Bommel. llvm-svn: 122332
-
Duncan Sands authored
llvm-svn: 122331
-
Duncan Sands authored
plenty left though!), in particular for multiplication. llvm-svn: 122330
-
Duncan Sands authored
llvm-svn: 122329
-
Duncan Sands authored
quite often, but don't make much difference in practice presumably because instcombine also knows them and more. llvm-svn: 122328
-
Duncan Sands authored
No functionality change. llvm-svn: 122327
-
Duncan Sands authored
a couple of existing transforms. This fires surprisingly often, for example when compiling gcc "(X+(-1))+1->X" fires quite a lot as well as various "and" simplifications (usually with a phi node operand). Most of the time this doesn't make a real difference since the same thing would have been done elsewhere anyway, eg: by instcombine, but there are a few places where this results in simplifications that we were not doing before. llvm-svn: 122326
-
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
-
Bob Wilson authored
Type legalization splits up i64 values into pairs of i32 values, which leads to poor quality code when inserting or extracting i64 vector elements. If the vector element is loaded or stored, it can be treated as an f64 value and loaded or stored directly from a VPR register. Use the pre-legalization DAG combiner to cast those vector elements to f64 types so that the type legalizer won't mess them up. Radar 8755338. llvm-svn: 122319
-
Rafael Espindola authored
section. This helps because in practice sections form a dag with debug sections pointing to text sections. Finishing up the text sections first makes the debug section relaxation trivial. llvm-svn: 122314
-
Eric Christopher authored
Fixes rdar://8782223 llvm-svn: 122313
-
Bill Wendling authored
llvm-svn: 122312
-
Chris Lattner authored
something that just glues two nodes together, even if it is sometimes used for flags. llvm-svn: 122310
-
Eric Christopher authored
to be the one we want to use. bugpoint reduced testcase is a little large, I'll see if I can simplify it down more. Fixes part of rdar://8782207 llvm-svn: 122307
-
Chris Lattner authored
they are just as useless, but at least a bit more gramatical llvm-svn: 122305
-
Bill Wendling authored
tPseudoInst class, its size was changed from "special" to "2 bytes". This is incorrect because the jump table will no longer be taken into account when calculating branch offsets. <rdar://problem/8782216> llvm-svn: 122303
-
Bill Wendling authored
llvm-svn: 122302
-