- Jan 11, 2010
-
-
Evan Cheng authored
llvm-svn: 93185
-
Evan Cheng authored
llvm-svn: 93182
-
Benjamin Kramer authored
- getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. llvm-svn: 93161
-
Dan Gohman authored
has an immediate with at least 32 bits of leading zeros, to avoid needing to materialize that immediate in a register first. FileCheckize, tidy, and extend a testcase to cover this case. This fixes rdar://7527390. llvm-svn: 93160
-
Dan Gohman authored
new AsmPrinter. This is perhaps less elegant than describing them in terms of MOV32r0 and subreg operations, but it allows the current register to rematerialize them. llvm-svn: 93158
-
Dan Gohman authored
single user. The _su forms are intended for non-top-level nodes. llvm-svn: 93155
-
Dan Gohman authored
llvm-svn: 93154
-
Evan Cheng authored
Select an OR with immediate as an ADD if the input bits are known zero. This allow the instruction to be 3address-fied if needed. llvm-svn: 93152
-
David Greene authored
Implement a feature (-vector-unaligned-mem) to allow targets to ignore alignment requirements for SIMD memory operands. This is useful on architectures like the AMD 10h that do not trap on unaligned references if a status bit is twiddled at startup time. llvm-svn: 93151
-
- Jan 09, 2010
-
-
http://llvm.org/PR5729Jeffrey Yasskin authored
R11, and then asserting that the target was in R9. Since R9 isn't reserved for the target anymore, and is used as an argument, this patch changes the assertion. llvm-svn: 93065
-
Evan Cheng authored
Fix a critical bug in 64-bit atomic operation lowering for 32-bit. The results of the cmpxchg8b instructions are being thrown away when it branches back to the top of the checking loop. This means the loop always compares against the old value and this can result in a dead lock. llvm-svn: 93028
-
- Jan 08, 2010
-
-
Evan Cheng authored
llvm-svn: 93020
-
Eric Christopher authored
putting relocations into the constant pool - this isn't needed for correctness and in the rare occasion it happens would pull us out of fast isel for the block. If fast-isel application startup time ever becomes an issue we can add better support for these addresses instead of bailing. llvm-svn: 92995
-
Evan Cheng authored
1. CMPXCHG8B and CMPXCHG16B did not specify implicit physical register defs and uses. 2. LCMPXCHG8B is loading 64 bit memory, not 32 bit. llvm-svn: 92985
-
Eric Christopher authored
llvm-svn: 92972
-
- Jan 07, 2010
-
-
Eric Christopher authored
add it to the constant pool for fast-isel. We already don't add it for the normal case. llvm-svn: 92934
-
Evan Cheng authored
Fix a minor regression from my dag combiner changes. One more place which needs to look pass truncates. llvm-svn: 92885
-
- Jan 06, 2010
-
-
Evan Cheng authored
(OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. llvm-svn: 92849
-
- Jan 05, 2010
-
-
Benjamin Kramer authored
llvm-svn: 92771
-
Benjamin Kramer authored
llvm-svn: 92760
-
Evan Cheng authored
llvm-svn: 92694
-
David Greene authored
llvm-svn: 92654
-
David Greene authored
llvm-svn: 92653
-
David Greene authored
llvm-svn: 92651
-
David Greene authored
llvm-svn: 92648
-
David Greene authored
llvm-svn: 92647
-
David Greene authored
llvm-svn: 92644
-
Dan Gohman authored
clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
-
Dan Gohman authored
operators. Eli pointed out that it's not obvious what that would mean. llvm-svn: 92555
-
- Jan 04, 2010
-
-
Evan Cheng authored
(or (x << c) | (y >> (64 - c))) ==> (shld64 x, y, c) The isel patterns may not catch all the cases if general dag combine has reduced width of source operands. llvm-svn: 92513
-
Dan Gohman authored
llvm-svn: 92511
-
Dan Gohman authored
lets the test-elimination work in more conditional-move cases. llvm-svn: 92508
-
Dan Gohman authored
rules as normal add, and, or, etc. llvm-svn: 92507
-
Dan Gohman authored
This lets isel fold loads into them in more cases. llvm-svn: 92506
-
- Dec 29, 2009
-
-
Benjamin Kramer authored
llvm-svn: 92265
-
- Dec 28, 2009
-
-
Bill Wendling authored
llvm-svn: 92184
-
- Dec 26, 2009
-
-
Eli Friedman authored
do illegal stuff around it. No testcase because the issue is very fragile. llvm-svn: 92167
-
- Dec 23, 2009
-
-
Chris Lattner authored
llvm-svn: 91976
-
Chris Lattner authored
interesting part of this is the divrem changes, which are already tested by CodeGen/X86/divrem.ll. llvm-svn: 91975
-
Sean Callanan authored
static inline functions with macros. llvm-svn: 91973
-