- Mar 13, 2008
-
-
Christopher Lamb authored
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes. llvm-svn: 48329
-
- Mar 10, 2008
-
-
Evan Cheng authored
llvm-svn: 48167
-
Christopher Lamb authored
Change insert/extract subreg instructions to be able to be used in TableGen patterns. Use the above features to reimplement an x86-64 pseudo instruction as a pattern. llvm-svn: 48130
-
- Mar 04, 2008
-
-
Andrew Lenharth authored
llvm-svn: 47903
-
- Feb 27, 2008
-
-
Chris Lattner authored
_test: movl %edi, %eax ret instead of: _test: movl $4294967295, %ecx movq %rdi, %rax andq %rcx, %rax ret It would be great to write this as a Pat pattern that used subregs instead of a 'pseudo' instruction, but I don't know how to do that in td files. llvm-svn: 47658
-
- Feb 12, 2008
-
-
Nate Begeman authored
Move formats into the formats file llvm-svn: 47035
-
- Feb 07, 2008
-
-
Evan Cheng authored
Before: _main: subq $8, %rsp leaq _X(%rip), %rax movsd 8(%rax), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Now: _main: subq $8, %rsp movsd _X+8(%rip), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Notice there is another idiotic codegen issue that needs to be fixed asap: xorl %ecx, %ecx movl %ecx, %eax llvm-svn: 46850
-
- Feb 03, 2008
-
-
Nate Begeman authored
llvm-svn: 46681
-
- Jan 29, 2008
-
-
Evan Cheng authored
Work in progress. This patch *fixes* x86-64 calls which are modelled as StructRet but really should be return in registers, e.g. _Complex long double, some 128-bit aggregates. This is a short term solution that is necessary only because llvm, for now, cannot model i128 nor call's with multiple results. Status: This only works for direct calls, and only the caller side is done. Disabled for now. llvm-svn: 46527
-
- Jan 23, 2008
-
-
Duncan Sands authored
precision integers. This won't actually work (and most of the code is dead) unless the new legalization machinery is turned on. While there, I rationalized the handling of i1, and removed some bogus (and unused) sextload patterns. For i1, this could result in microscopically better code for some architectures (not X86). It might also result in worse code if annotating with AssertZExt nodes turns out to be more harmful than helpful. llvm-svn: 46280
-
- Jan 11, 2008
-
-
Chris Lattner authored
llvm-svn: 45870
-
Evan Cheng authored
llvm-svn: 45861
-
Chris Lattner authored
llvm-svn: 45860
-
- Jan 10, 2008
-
-
Chris Lattner authored
x86 backend where instructions were not marked maystore/mayload, and perf issues where instructions were not marked neverHasSideEffects. It would be really nice if we could write patterns for copy instructions. I have audited all the x86 instructions down to MOVDQAmr. The flags on others and on other targets are probably not right in all cases, but no clients currently use this info that are enabled by default. llvm-svn: 45829
-
Chris Lattner authored
llvm-svn: 45826
-
Chris Lattner authored
inferred from the instr patterns. llvm-svn: 45824
-
- Jan 07, 2008
-
-
Chris Lattner authored
llvm-svn: 45667
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 18, 2007
-
-
Bill Wendling authored
based what flag to set on whether it was already marked as "isRematerializable". If there was a further check to determine if it's "really" rematerializable, then I marked it as "mayHaveSideEffects" and created a check in the X86 back-end similar to the remat one. llvm-svn: 45132
-
- Dec 14, 2007
-
-
Evan Cheng authored
llvm-svn: 45041
-
Evan Cheng authored
Fix (mem) <-> low 64-bits of xmm bugs pointed out by David Greene. Mac OS X Leopard assembler recognizes movq. llvm-svn: 45040
-
Evan Cheng authored
llvm-svn: 45037
-
Evan Cheng authored
llvm-svn: 45036
-
Dan Gohman authored
llvm-svn: 45030
-
Evan Cheng authored
llvm-svn: 45024
-
- 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
-
- Nov 12, 2007
-
-
Owen Anderson authored
Target maintainers: please check that the instructions for your target are correctly marked. llvm-svn: 44012
-
- Oct 19, 2007
-
-
Evan Cheng authored
Turn a store folding instruction into a load folding instruction. e.g. xorl %edi, %eax movl %eax, -32(%ebp) movl -36(%ebp), %eax orl %eax, -32(%ebp) => xorl %edi, %eax orl -36(%ebp), %eax mov %eax, -32(%ebp) This enables the unfolding optimization for a subsequent instruction which will also eliminate the newly introduced store instruction. llvm-svn: 43192
-
- Oct 12, 2007
-
-
Arnold Schwaighofer authored
for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. llvm-svn: 42934
-
- Oct 11, 2007
-
-
Arnold Schwaighofer authored
enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden llvm-svn: 42870
-
- Oct 06, 2007
-
-
Evan Cheng authored
to its inverse. Testing this as llcbeta llvm-svn: 42661
-
- Oct 05, 2007
-
-
Evan Cheng authored
llvm-svn: 42642
-
Evan Cheng authored
llvm-svn: 42640
-
- Sep 29, 2007
-
-
Evan Cheng authored
llvm-svn: 42459
-
- Sep 27, 2007
-
-
Evan Cheng authored
llvm-svn: 42413
-
- Sep 26, 2007
-
-
Evan Cheng authored
Some assemblers do not recognize aliases pushfd, pushfq, popfd, and popfq. Just emit them as pushf and popf. llvm-svn: 42371
-
Evan Cheng authored
llvm-svn: 42348
-
Evan Cheng authored
llvm-svn: 42335
-
- Sep 25, 2007
-
-
Evan Cheng authored
Added support for new condition code modeling scheme (i.e. physical register dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after all the kinks are worked out. llvm-svn: 42285
-
- Sep 17, 2007
-
-
Dan Gohman authored
llvm-svn: 42027
-