- Apr 23, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 50156
-
Anton Korobeynikov authored
llvm-svn: 50155
-
Anton Korobeynikov authored
llvm-svn: 50154
-
Anton Korobeynikov authored
llvm-svn: 50153
-
Anton Korobeynikov authored
llvm-svn: 50152
-
- Apr 22, 2008
-
-
Dan Gohman authored
argument. The x86-64 ABI requires the incoming value of %rdi to be copied to %rax on exit from a function that is returning a large C struct. Also, add a README-X86-64 entry detailing the missed optimization opportunity and proposing an alternative approach. llvm-svn: 50075
-
- Apr 21, 2008
-
-
Dan Gohman authored
llvm-svn: 50053
-
Chris Lattner authored
llvm-svn: 50029
-
Nicolas Geoffray authored
llvm-svn: 50007
-
- Apr 20, 2008
-
-
Chris Lattner authored
llvm-svn: 49986
-
Chris Lattner authored
llvm-svn: 49977
-
- Apr 19, 2008
-
-
Evan Cheng authored
llvm-svn: 49949
-
Evan Cheng authored
llvm-svn: 49948
-
Evan Cheng authored
llvm-svn: 49947
-
Evan Cheng authored
llvm-svn: 49946
-
- Apr 18, 2008
-
-
Dan Gohman authored
llvm-gcc is now lowering va_copy on x86-64, so this completes the fix for PR2230. llvm-svn: 49922
-
Evan Cheng authored
- Remove unused instructions. llvm-svn: 49921
-
Evan Cheng authored
llvm-svn: 49878
-
- Apr 17, 2008
-
-
Evan Cheng authored
llvm-svn: 49869
-
Evan Cheng authored
llvm-svn: 49830
-
Dale Johannesen authored
llvm-svn: 49822
-
- Apr 16, 2008
-
-
Nicolas Geoffray authored
Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function the stub will resolve. llvm-svn: 49814
-
Nicolas Geoffray authored
Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented llvm-svn: 49809
-
Evan Cheng authored
llvm-svn: 49808
-
Roman Levenstein authored
Rename SDOperandImpl back to SDOperand. Introduce the SDUse class that represents a use of the SDNode referred by an SDOperand. Now it is more similar to Use/Value classes. Patch is approved by Dan Gohman. llvm-svn: 49795
-
Dan Gohman authored
puts its result in a 32-bit GPR. llvm-svn: 49762
-
Dan Gohman authored
memcpy lowering code; this ensures that the size node has the desired result type. This fixes a regression from r49572 with @llvm.memcpy.i64 on x86-32. llvm-svn: 49761
-
Dan Gohman authored
llvm-svn: 49759
-
Dan Gohman authored
to 64-bit GPR registers on x86-64. llvm-svn: 49757
-
- Apr 15, 2008
-
-
Nicolas Geoffray authored
llvm-svn: 49715
-
- Apr 14, 2008
-
-
Dan Gohman authored
llvm-svn: 49681
-
Dan Gohman authored
memory intrinsic expansion code. llvm-svn: 49666
-
Dale Johannesen authored
stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. llvm-svn: 49663
-
- Apr 13, 2008
-
-
Nicolas Geoffray authored
llvm-svn: 49611
-
Anton Korobeynikov authored
llvm-svn: 49593
-
- Apr 12, 2008
-
-
Arnold Schwaighofer authored
optimized x86-64 (and x86) calls so that they work (... at least for my test cases). Should fix the following problems: Problem 1: When i introduced the optimized handling of arguments for tail called functions (using a sequence of copyto/copyfrom virtual registers instead of always lowering to top of the stack) i did not handle byval arguments correctly e.g they did not work at all :). Problem 2: On x86-64 after the arguments of the tail called function are moved to their registers (which include ESI/RSI etc), tail call optimization performs byval lowering which causes xSI,xDI, xCX registers to be overwritten. This is handled in this patch by moving the arguments to virtual registers first and after the byval lowering the arguments are moved from those virtual registers back to RSI/RDI/RCX. llvm-svn: 49584
-
Dan Gohman authored
on any current target and aren't optimized in DAGCombiner. Instead of using intermediate nodes, expand the operations, choosing between simple loads/stores, target-specific code, and library calls, immediately. Previously, the code to emit optimized code for these operations was only used at initial SelectionDAG construction time; now it is used at all times. This fixes some cases where rep;movs was being used for small copies where simple loads/stores would be better. This also cleans up code that checks for alignments less than 4; let the targets make that decision instead of doing it in target-independent code. This allows x86 to use rep;movs in low-alignment cases. Also, this fixes a bug that resulted in the use of rep;stos for memsets of 0 with non-constant memory size when the alignment was at least 4. It's better to use the library in this case, which can be significantly faster when the size is large. This also preserves more SourceValue information when memory intrinsics are lowered into simple loads/stores. llvm-svn: 49572
-
Dan Gohman authored
8-byte-aligned data. llvm-svn: 49571
-
Nate Begeman authored
llvm-svn: 49569
-
- Apr 10, 2008
-
-
Chris Lattner authored
llvm-svn: 49466
-