- Dec 13, 2007
-
-
Evan Cheng authored
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. llvm-svn: 44960
-
Duncan Sands authored
put it in a new header System/Host.h instead. Instead of getting the endianness from configure, calculate it directly. llvm-svn: 44959
-
- Dec 12, 2007
-
-
Dan Gohman authored
SelectionDAG::getConstant, in the same way as vector floating-point constants. This allows the legalize expansion code for @llvm.ctpop and friends to be usable with vector types. llvm-svn: 44954
-
Evan Cheng authored
llvm-svn: 44929
-
Evan Cheng authored
Lower a build_vector with all constants into a constpool load unless it can be done with a move to low part. llvm-svn: 44921
-
Scott Michel authored
llvm-svn: 44904
-
- Dec 11, 2007
-
-
Nate Begeman authored
llvm-svn: 44869
-
Evan Cheng authored
possible before resorting to pextrw and pinsrw. - Better codegen for v4i32 shuffles masquerading as v8i16 or v16i8 shuffles. - Improves (i16 extract_vector_element 0) codegen by recognizing (i32 extract_vector_element 0) does not require a pextrw. llvm-svn: 44836
-
Nate Begeman authored
llvm-svn: 44835
-
Chris Lattner authored
don't have to #include config.h in it. #including config.h breaks other projects that have their own autoconf stuff and try to #include the llvm headers. One obscure example is llvm-gcc. llvm-svn: 44825
-
Anton Korobeynikov authored
llvm-svn: 44820
-
Anton Korobeynikov authored
llvm-svn: 44819
-
Anton Korobeynikov authored
Use it for Darwin. llvm-svn: 44818
-
- Dec 10, 2007
-
-
Chris Lattner authored
These should probably be something like: CFI(".cfi_def_cfa_offset 16\n") where CFI is defined to a noop on darwin and other platforms that don't support those directives. llvm-svn: 44803
-
Anton Korobeynikov authored
All bad stuff from SSE version is implicitely inherited :) llvm-svn: 44794
-
Anton Korobeynikov authored
broken, because doesn't mark xmm regs properly llvm-svn: 44793
-
Anton Korobeynikov authored
This will allow us (theoretically) to unwind through JITer. The code wasn't verified, so I'm pretty sure offsets are wrong :) llvm-svn: 44792
-
- Dec 09, 2007
-
-
Bill Wendling authored
llvm-svn: 44727
-
- Dec 08, 2007
-
-
Chris Lattner authored
what 'Available' is, please add a comment near it and rename it if appropriate. llvm-svn: 44703
-
Bill Wendling authored
isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable llvm-svn: 44702
-
Chris Lattner authored
a while ago. We now produce: _foo: mflr r0 std r0, 16(r1) ld r2, 16(r1) std r2, 0(r3) ld r0, 16(r1) mtlr r0 blr instead of: _foo: mflr r0 std r0, 16(r1) lis r0, 0 ori r0, r0, 16 ldx r2, r1, r0 std r2, 0(r3) ld r0, 16(r1) mtlr r0 blr for: void foo(void **X) { *X = __builtin_return_address(0); } on ppc64. llvm-svn: 44701
-
Chris Lattner authored
llvm-svn: 44700
-
Chris Lattner authored
different places to mean different things. Document what the one in PPCFunctionInfo means and when it is valid. llvm-svn: 44699
-
Evan Cheng authored
llvm-svn: 44694
-
Evan Cheng authored
llvm-svn: 44692
-
Evan Cheng authored
llvm-svn: 44691
-
- Dec 07, 2007
-
-
Bill Wendling authored
_foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... llvm-svn: 44687
-
Evan Cheng authored
llvm-svn: 44686
-
Evan Cheng authored
llvm-svn: 44676
-
- Dec 06, 2007
-
-
Evan Cheng authored
Remove a bogus optimization. It's not possible to do a move to low element to a <8 x i16> or <16 x i8> vector. llvm-svn: 44669
-
Chris Lattner authored
_foo: movl $12, %eax andl 4(%esp), %eax movl _array(%eax), %eax ret instead of: _foo: movl 4(%esp), %eax shrl $2, %eax andl $3, %eax movl _array(,%eax,4), %eax ret As it turns out, this triggers all the time, in a wide variety of situations, for example, I see diffs like this in various programs: - movl 8(%eax), %eax - shll $2, %eax - andl $1020, %eax - movl (%esi,%eax), %eax + movzbl 8(%eax), %eax + movl (%esi,%eax,4), %eax - shll $2, %edx - andl $1020, %edx - movl (%edi,%edx), %edx + andl $255, %edx + movl (%edi,%edx,4), %edx Unfortunately, I also see stuff like this, which can be fixed in the X86 backend: - andl $85, %ebx - addl _bit_count(,%ebx,4), %ebp + shll $2, %ebx + andl $340, %ebx + addl _bit_count(%ebx), %ebp llvm-svn: 44656
-
Chris Lattner authored
llvm-svn: 44638
-
- Dec 05, 2007
-
-
Chris Lattner authored
llvm-svn: 44637
-
Scott Michel authored
- Fix typo in SPUCallingConv.td - Credit myself for CellSPU work - Add CellSPU to 'all' host target list llvm-svn: 44627
-
Evan Cheng authored
llvm-svn: 44623
-
Evan Cheng authored
llvm-svn: 44621
-
Chris Lattner authored
llvm-svn: 44620
-
Chris Lattner authored
llvm-svn: 44619
-
Evan Cheng authored
the stored register is killed. llvm-svn: 44600
-
Scott Michel authored
compilation (no files missing). Test cases remain to be checked in. llvm-svn: 44598
-