- May 31, 2008
-
-
Dan Gohman authored
index for the input pattern in terms of the output pattern. Instead keep track of how many fixed operands the input pattern actually has, and have the input matching code pass the output-emitting function that index value. This simplifies the code, disentangles variables_ops from the support for predication operations, and makes variable_ops more robust. llvm-svn: 51808
-
- May 29, 2008
-
-
Dan Gohman authored
cases due to an isel deficiency already noted in lib/Target/X86/README.txt, but they can be matched in this fold-call.ll testcase, for example. This is interesting mainly because it exposes a tricky tblgen bug; tblgen was incorrectly computing the starting index for variable_ops in the case of a complex pattern. llvm-svn: 51706
-
Dan Gohman authored
definitions. This adds a new construct, "discard", for indicating that a named node in the input matching pattern is to be discarded, instead of corresponding to a node in the output pattern. This allows tblgen to know where the arguments for the varaible_ops are supposed to begin. This fixes "rdar://5791600", whatever that is ;-). llvm-svn: 51699
-
Bill Wendling authored
llvm-svn: 51664
-
Bill Wendling authored
like. llvm-svn: 51662
-
- May 14, 2008
-
-
Evan Cheng authored
llvm-svn: 51092
-
- May 13, 2008
-
-
Evan Cheng authored
- Incorporate Chris' comment suggestion. llvm-svn: 51061
-
Evan Cheng authored
- Correct a pasto. llvm-svn: 51054
-
Evan Cheng authored
llvm-svn: 51019
-
- May 12, 2008
-
-
Dan Gohman authored
encoding information. llvm-svn: 50997
-
- May 05, 2008
-
-
Mon P Wang authored
llvm-svn: 50663
-
- May 04, 2008
-
-
Anton Korobeynikov authored
but should work. Work is in progress, more models will follow llvm-svn: 50630
-
- Apr 30, 2008
-
-
Arnold Schwaighofer authored
Move platform independent code (lowering of possibly overwritten arguments, check for tail call optimization eligibility) from target X86ISelectionLowering.cpp to TargetLowering.h and SelectionDAGISel.cpp. Initial PowerPC tail call implementation: Support ppc32 implemented and tested (passes my tests and test-suite llvm-test). Support ppc64 implemented and half tested (passes my tests). On ppc tail call optimization is performed if caller and callee are fastcc call is a tail call (in tail call position, call followed by ret) no variable argument lists or byval arguments option -tailcallopt is enabled Supported: * non pic tail calls on linux/darwin * module-local tail calls on linux(PIC/GOT)/darwin(PIC) * inter-module tail calls on darwin(PIC) If constraints are not met a normal call will be emitted. A test checking the argument lowering behaviour on x86-64 was added. llvm-svn: 50477
-
- Apr 25, 2008
-
-
Evan Cheng authored
llvm-svn: 50278
-
- Apr 19, 2008
-
-
Evan Cheng authored
llvm-svn: 49946
-
- Apr 18, 2008
-
-
Evan Cheng authored
- Remove unused instructions. llvm-svn: 49921
-
Evan Cheng authored
llvm-svn: 49878
-
- Apr 17, 2008
-
-
Evan Cheng authored
llvm-svn: 49869
-
- Apr 12, 2008
-
-
Nate Begeman authored
llvm-svn: 49569
-
- Mar 27, 2008
-
-
Evan Cheng authored
llvm-svn: 48855
-
- Mar 19, 2008
-
-
Arnold Schwaighofer authored
llvm-svn: 48545
-
- Mar 15, 2008
-
-
Evan Cheng authored
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF. llvm-svn: 48380
-
- 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 11, 2008
-
-
Christopher Lamb authored
llvm-svn: 48223
-
Chris Lattner authored
RET instruction instead of using FpSET_ST0_32. This also generalizes the code to handling returning of multiple FP results. llvm-svn: 48209
-
- 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 05, 2008
-
-
Andrew Lenharth authored
llvm-svn: 47929
-
- Mar 04, 2008
-
-
Evan Cheng authored
llvm-svn: 47878
-
Evan Cheng authored
llvm-svn: 47871
-
- Mar 02, 2008
-
-
Andrew Lenharth authored
llvm-svn: 47800
-
- Mar 01, 2008
-
-
Andrew Lenharth authored
llvm-svn: 47799
-
Andrew Lenharth authored
llvm-svn: 47798
-
Andrew Lenharth authored
Add lock prefix support to x86. Also add the instructions necessary for the atomic ops. They are still marked pseudo, since I cannot figure out what format to use, but they are the correct opcode. llvm-svn: 47795
-
- Feb 21, 2008
-
-
Andrew Lenharth authored
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet llvm-svn: 47430
-
- Feb 20, 2008
-
-
Evan Cheng authored
llvm-svn: 47400
-
Evan Cheng authored
llvm-svn: 47351
-
- Feb 19, 2008
-
-
Chris Lattner authored
This compiles test-nofold.ll into: _test: movl $15, %ecx andl 4(%esp), %ecx testl %ecx, %ecx movl $42, %eax cmove %ecx, %eax ret instead of: _test: movl 4(%esp), %eax movl %eax, %ecx andl $15, %ecx testl $15, %eax movl $42, %eax cmove %ecx, %eax ret llvm-svn: 47330
-
- 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
-