- Feb 03, 2009
-
-
Dale Johannesen authored
llvm-svn: 63656
-
Dale Johannesen authored
llvm-svn: 63650
-
- Feb 02, 2009
-
-
Evan Cheng authored
llvm-svn: 63509
-
Evan Cheng authored
llvm-svn: 63506
-
Evan Cheng authored
Teach LowerBRCOND to recognize (xor (setcc x), 1). The xor inverts the condition. It's normally transformed by the dag combiner, unless the condition is set by a arithmetic op with overflow. llvm-svn: 63505
-
- Feb 01, 2009
-
-
Torok Edwin authored
var-args, and don't allow FP return values llvm-svn: 63495
-
Duncan Sands authored
crashes or wrong code with codegen of large integers: eliminate the legacy getIntegerVTBitMask and getIntegerVTSignBit methods, which returned their value as a uint64_t, so couldn't handle huge types. llvm-svn: 63494
-
- Jan 31, 2009
-
-
Dale Johannesen authored
argument. Adjust all callers and overloaded versions. llvm-svn: 63444
-
Bill Wendling authored
llvm-svn: 63442
-
- Jan 30, 2009
-
-
Mon P Wang authored
an illegal type. llvm-svn: 63380
-
- Jan 29, 2009
-
-
Dan Gohman authored
dagcombines that help it match in several more cases. Add several more cases to test/CodeGen/X86/bt.ll. This doesn't yet include matching for BT with an immediate operand, it just covers more register+register cases. llvm-svn: 63266
-
Mon P Wang authored
llvm-svn: 63252
-
- Jan 28, 2009
-
-
Mon P Wang authored
llvm-svn: 63193
-
- Jan 26, 2009
-
-
Dan Gohman authored
tidy up SDUse and related code. - Replace the operator= member functions with a set method, like LLVM Use has, and variants setInitial and setNode, which take care up updating use lists, like LLVM Use's does. This simplifies code that calls these functions. - getSDValue() is renamed to get(), as in LLVM Use, though most places can either use the implicit conversion to SDValue or the convenience functions instead. - Fix some more node vs. value terminology issues. Also, eliminate the one remaining use of SDOperandPtr, and SDOperandPtr itself. llvm-svn: 62995
-
Nate Begeman authored
llvm-svn: 62988
-
Nate Begeman authored
llvm-svn: 62979
-
- Jan 22, 2009
-
-
Bob Wilson authored
corresponding to the "not" and "vnot" PatFrags. Use the new method in some places where it seems appropriate. llvm-svn: 62768
-
- Jan 19, 2009
-
-
Evan Cheng authored
Minor tweak to LowerUINT_TO_FP_i32. Bias (after scalar_to_vector) has two uses so we should make it the second source operand of ISD::OR so 2-address pass won't have to be smart about commuting. %reg1024<def> = MOVSDrm %reg0, 1, %reg0, <cp#0>, Mem:LD(8,8) [ConstantPool + 0] %reg1025<def> = MOVSD2PDrr %reg1024 %reg1026<def> = MOVDI2PDIrm <fi#-1>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack-1 + 0] %reg1027<def> = ORPSrr %reg1025<kill>, %reg1026<kill> %reg1028<def> = MOVPD2SDrr %reg1027<kill> %reg1029<def> = SUBSDrr %reg1028<kill>, %reg1024<kill> %reg1030<def> = CVTSD2SSrr %reg1029<kill> MOVSSmr <fi#0>, 1, %reg0, 0, %reg1030<kill>, Mem:ST(4,4) [FixedStack0 + 0] %reg1031<def> = LD_Fp32m80 <fi#0>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack0 + 0] RET %reg1031<kill>, %ST0<imp-use,kill> The reason 2-addr pass isn't smart enough to commute the ORPSrr is because it can't look pass the MOVSD2PDrr instruction. llvm-svn: 62505
-
Evan Cheng authored
optimize it to a SINT_TO_FP when the sign bit is known zero. X86 isel should perform the optimization itself. llvm-svn: 62504
-
- Jan 17, 2009
-
-
Bill Wendling authored
llvm-svn: 62415
-
Bill Wendling authored
llvm-svn: 62405
-
Bill Wendling authored
X86. This code: void f() { uint32_t x; float y = (float)x; } used to be: movl %eax, -8(%ebp) movl [2^52 double], -4(%ebp) movsd -8(%ebp), %xmm0 subsd [2^52 double], %xmm0 cvtsd2ss %xmm0, %xmm0 Is now: movsd [2^52 double], %xmm0 movsd %xmm0, %xmm1 movd %ecx, %xmm2 orps %xmm2, %xmm1 subsd %xmm0, %xmm1 cvtsd2ss %xmm1, %xmm0 This is faster on X86. Note that there's an extra load of %xmm0 into %xmm1. That will be fixed in a later coalescer fix. llvm-svn: 62404
-
- Jan 16, 2009
-
-
Bill Wendling authored
llvm-svn: 62338
-
- Jan 15, 2009
-
-
Mon P Wang authored
llvm-svn: 62281
-
Dan Gohman authored
llvm-svn: 62265
-
- Jan 14, 2009
-
-
Dan Gohman authored
llvm-svn: 62196
-
Dan Gohman authored
llvm-svn: 62195
-
- Jan 13, 2009
-
-
Devang Patel authored
Use DebugInfo interface to lower dbg_* intrinsics. llvm-svn: 62127
-
- Jan 07, 2009
-
-
Dan Gohman authored
X86_COND_B and X86_COND_AE, respectively. llvm-svn: 61835
-
- Jan 05, 2009
-
-
Devang Patel authored
squash warnings. llvm-svn: 61707
-
- Jan 02, 2009
-
-
Evan Cheng authored
Use movaps / movd to extract vector element 0 even with sse4.1. It's still cheaper than pextrw especially if the value is in memory. llvm-svn: 61555
-
- Jan 01, 2009
-
-
Duncan Sands authored
promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
-
- Dec 25, 2008
-
-
Chris Lattner authored
llvm-svn: 61426
-
Chris Lattner authored
llvm-svn: 61423
-
- Dec 24, 2008
-
-
Chris Lattner authored
llvm-svn: 61407
-
Chris Lattner authored
llvm-svn: 61404
-
- Dec 23, 2008
-
-
Dan Gohman authored
llvm-svn: 61400
-
Dan Gohman authored
This removes all the _8, _16, _32, and _64 opcodes and replaces each group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode is now used to carry the size information. In tablegen, the size-specific opcodes are replaced by size-independent opcodes that utilize the ability to compose them with predicates. This shrinks the per-opcode tables and makes the code that handles atomics much more concise. llvm-svn: 61389
-
Mon P Wang authored
Fixed lowering of v8i16 shuffles for v8i16 when we fall back to extract/insert. llvm-svn: 61365
-
- Dec 18, 2008
-
-
Mon P Wang authored
llvm-svn: 61211
-