- Jun 22, 2007
-
-
Dan Gohman authored
TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. llvm-svn: 37704
-
- Jun 19, 2007
-
-
Chris Lattner authored
Anton for half of this patch. llvm-svn: 37641
-
Evan Cheng authored
Look for VECTOR_SHUFFLE that's identity operation on either LHS or RHS. This can happen before DAGCombiner catches it. llvm-svn: 37636
-
- Jun 17, 2007
-
-
Bill Wendling authored
define double @test2(i64 %A) { %B = bitcast i64 %A to double ret double %B } $ llvm-as < t.ll | llc -march=x86-64 before: .align 4 .globl _test2 _test2: movd %rdi, %xmm0 ret after: _test2: subq $8, %rsp movq %rdi, (%rsp) movsd (%rsp), %xmm0 addq $8, %rsp ret llvm-svn: 37617
-
- Jun 16, 2007
-
-
Bill Wendling authored
llvm-svn: 37611
-
- Jun 15, 2007
-
-
Dan Gohman authored
llvm-svn: 37579
-
- Jun 09, 2007
-
-
Chris Lattner authored
llvm-svn: 37534
-
Chris Lattner authored
llvm-svn: 37533
-
- May 24, 2007
-
-
Dan Gohman authored
llvm-svn: 37320
-
- May 18, 2007
-
-
Dan Gohman authored
llvm-svn: 37234
-
- May 17, 2007
-
-
Evan Cheng authored
Fix a bogus check that prevented folding VECTOR_SHUFFLE to UNDEF; add an optimization to fold VECTOR_SHUFFLE to a zero vector. llvm-svn: 37173
-
Chris Lattner authored
cause other regressions. llvm-svn: 37160
-
Anton Korobeynikov authored
llvm-svn: 37159
-
Chris Lattner authored
llvm-svn: 37141
-
- May 15, 2007
-
-
Chris Lattner authored
llvm-svn: 37065
-
- May 03, 2007
-
-
Chris Lattner authored
1. x86 backend rejected (&gv+c) for the 'i' constraint when in static mode. 2. the matcher didn't correctly reject and accept some global addresses. the right predicate is GVRequiresExtraLoad, not "relomodel = pic". llvm-svn: 36670
-
- May 02, 2007
-
-
Anton Korobeynikov authored
Emit correct register move information in eh frames for X86. This allows Shootout-C++/except to pass on x86/linux with non-llvm-compiled (e.g. "native") unwind runtime. llvm-svn: 36647
-
- Apr 24, 2007
-
-
Bill Wendling authored
vector_shuffle v1, v2, <2, 6, 3, 7> I.e. vector_shuffle v, undef, <2, 2, 3, 3> MMX only has a shuffle for v4i16 vectors. It needs to use the unpackh for this type of operation. llvm-svn: 36403
-
- Apr 23, 2007
-
-
Lauro Ramos Venancio authored
llvm-svn: 36355
-
- Apr 21, 2007
-
-
Lauro Ramos Venancio authored
llvm-svn: 36318
-
- Apr 20, 2007
-
-
Lauro Ramos Venancio authored
X86 32 bits. llvm-svn: 36283
-
- Apr 17, 2007
-
-
Anton Korobeynikov authored
llvm-svn: 36213
-
Chris Lattner authored
it is defined in. llvm-svn: 36196
-
Anton Korobeynikov authored
Also, fixed static case in presence of eax livin. This fixes PR331 PS: Why don't we still have push/pop instructions? :) llvm-svn: 36195
-
- Apr 16, 2007
-
-
Anton Korobeynikov authored
target for tabs checking. llvm-svn: 36146
-
- Apr 12, 2007
-
-
Chris Lattner authored
llvm-svn: 35940
-
- Apr 10, 2007
-
-
Chris Lattner authored
llvm-svn: 35845
-
Chris Lattner authored
llvm-svn: 35840
-
- Apr 09, 2007
-
-
Chris Lattner authored
getRegClassForInlineAsmConstraint to being handled by getRegForInlineAsmConstraint. This allows us to let the llvm register allocator allocate, which gives us better code. For example, X86/2007-01-29-InlineAsm-ir.ll used to compile to: _run_init_process: subl $4, %esp movl %ebx, (%esp) xorl %ebx, %ebx movl $11, %eax movl %ebx, %ecx movl %ebx, %edx # InlineAsm Start push %ebx ; movl %ebx,%ebx ; int $0x80 ; pop %ebx # InlineAsm End Now we get: _run_init_process: xorl %ecx, %ecx movl $11, %eax movl %ecx, %edx # InlineAsm Start push %ebx ; movl %ecx,%ebx ; int $0x80 ; pop %ebx # InlineAsm End llvm-svn: 35804
-
Chris Lattner authored
used with x constraints. llvm-svn: 35803
-
Chris Lattner authored
llvm-svn: 35799
-
- Mar 31, 2007
-
-
Chris Lattner authored
llvm-svn: 35521
-
- Mar 28, 2007
-
-
Bill Wendling authored
llvm-svn: 35394
-
Bill Wendling authored
llvm-svn: 35392
-
- Mar 27, 2007
-
-
Bill Wendling authored
comparison operators. llvm-svn: 35385
-
- Mar 26, 2007
-
-
Bill Wendling authored
llvm-svn: 35353
-
Bill Wendling authored
#include <mmintrin.h> extern __m64 C; void baz(__v2si *A, __v2si *B) { *A = C; _mm_empty(); } We get this: _baz: call "L1$pb" "L1$pb": popl %eax movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax movq (%eax), %mm0 movl 4(%esp), %eax movq %mm0, (%eax) emms ret GCC gives us this: _baz: pushl %ebx call L3 "L00000000001$pb": L3: popl %ebx subl $8, %esp movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax movl (%eax), %edx movl 4(%eax), %ecx movl 16(%esp), %eax movl %edx, (%eax) movl %ecx, 4(%eax) emms addl $8, %esp popl %ebx ret llvm-svn: 35351
-
- Mar 25, 2007
-
-
Chris Lattner authored
not just the first letter. No functionality change. llvm-svn: 35322
-
Chris Lattner authored
llvm-svn: 35319
-
- Mar 22, 2007
-
-
Bill Wendling authored
llvm-svn: 35266
-