- Mar 03, 2010
-
-
Chris Lattner authored
that they are not destination type specific. This allows tblgen to factor them and the type check is redundant with what the isel does anyway. llvm-svn: 97629
-
Chris Lattner authored
llvm-svn: 97606
-
- Mar 02, 2010
-
-
Chris Lattner authored
We still preprocess calls and fp return stuff. llvm-svn: 97598
-
Chris Lattner authored
CopyToReg/CopyFromReg/INLINEASM. These are annoying because they have the same opcode before an after isel. Fix this by setting their NodeID to -1 to indicate that they are selected, just like what automatically happens when selecting things that end up being machine nodes. With that done, give IsLegalToFold a new flag that causes it to ignore chains. This lets the HandleMergeInputChains routine be the one place that validates chains after a match is successful, enabling the new hotness in chain processing. This smarter chain processing eliminates the need for "PreprocessRMW" in the X86 and MSP430 backends and enables MSP to start matching it's multiple mem operand instructions more aggressively. I currently #if out the dead code in the X86 backend and MSP backend, I'll remove it for real in a follow-on patch. The testcase changes are: test/CodeGen/X86/sse3.ll: we generate better code test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was miscompiling this before, we now generate correct code Convert it to filecheck while I'm at it. test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem folding to make anton happy. :) llvm-svn: 97596
-
Chris Lattner authored
DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) llvm-svn: 97555
-
Bill Wendling authored
llvm-svn: 97536
-
Dan Gohman authored
respectively. llvm-svn: 97531
-
- Mar 01, 2010
-
-
Chris Lattner authored
now that it is gone. llvm-svn: 97516
-
Evan Cheng authored
Remove the optimize for code size limitation on r67917. Optimize 64-bit imul by constants into leas + shl regardless if optimizing for code size. The size saving from using imulq isn't worth it. Also, the lea and shl instructions may expose further optimization. llvm-svn: 97507
-
Chris Lattner authored
problems. rdar://7697850. llvm-svn: 97500
-
Dan Gohman authored
llvm-svn: 97450
-
- Feb 28, 2010
-
-
Mikhail Glushenkov authored
llvm-svn: 97427
-
Dan Gohman authored
Extracting the low element of a vector is now done with EXTRACT_SUBREG, and the zero-extension performed by load movss is now modeled with SUBREG_TO_REG, and so on. Register-to-register movss and movsd are no longer considered copies; they are two-address instructions which insert a scalar into a vector. llvm-svn: 97354
-
Dan Gohman authored
llvm-svn: 97348
-
- Feb 27, 2010
-
-
Chris Lattner authored
llvm-svn: 97316
-
Evan Cheng authored
llvm-svn: 97310
-
- Feb 26, 2010
-
-
Dale Johannesen authored
as X86 is currently the only FastISel target. Per review. llvm-svn: 97255
-
Dan Gohman authored
llvm-svn: 97227
-
Dan Gohman authored
llvm-svn: 97201
-
- Feb 25, 2010
-
-
Daniel Dunbar authored
llvm-svn: 97151
-
Dan Gohman authored
just discarding one of the registers. llvm-svn: 97100
-
- Feb 24, 2010
-
-
Daniel Dunbar authored
the hopes of fixing PPC bootstrap. llvm-svn: 97040
-
Dan Gohman authored
necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. llvm-svn: 97025
-
Evan Cheng authored
llvm-svn: 97011
-
Jakob Stoklund Olesen authored
instead of %AL/%AH. llvm-svn: 97006
-
- Feb 23, 2010
-
-
Evan Cheng authored
llvm-svn: 96990
-
Chris Lattner authored
disables load folding at -O0. llvm-svn: 96973
-
Chris Lattner authored
then use it as an MMX register (!?). llvm-svn: 96901
-
Chris Lattner authored
though some look dubious afaict, these are all ok. llvm-svn: 96899
-
Chris Lattner authored
place where an i32 imm was required, the old isel just got lucky. This fixes CodeGen/X86/x86-64-and-mask.ll llvm-svn: 96894
-
Chris Lattner authored
don't alis it in the MMX .td file with a different width, split into two X86ISD opcodes. This fixes an x86 testcase. llvm-svn: 96859
-
- Feb 22, 2010
-
-
Arnold Schwaighofer authored
during a tail call. A parameter might overwrite this stack slot during the tail call. The sequence during a tail call is: 1.) load return address to temp reg 2.) move parameters (might involve storing to return address stack slot) 3.) store return address to new location from temp reg If the stack location is marked immutable CodeGen can colocate load (1) with the store (3). This fixes bug 6225. llvm-svn: 96783
-
Dan Gohman authored
llvm-svn: 96778
-
Dan Gohman authored
SSE min and max instructions. The real thing this code needs to be concerned about is negative zero. Update the sse-minmax.ll test accordingly, and add tests for -enable-unsafe-fp-math mode as well. llvm-svn: 96775
-
Chris Lattner authored
create an X86ISD::Cmp node with result type i64 on the CodeGen/X86/shift-i256.ll testcase and the new isel was assert on it downstream. llvm-svn: 96768
-
- Feb 21, 2010
-
-
Daniel Dunbar authored
llvm-svn: 96763
-
Anton Korobeynikov authored
It turned out that we failed to emit proper symbol stubs on non-x86/darwin for ages (we emitted a reference to a stub, but no stub was emitted). The code inside x86-32/macho target objfile lowering should actually be the generic one - move it there. This (I really, really hope) should fix EH issues on ppc/darwin and arm/darwin. llvm-svn: 96755
-
Chris Lattner authored
llvm-svn: 96720
-
Chris Lattner authored
it to follow the mode needed by the new isel. Instead of returning the input and output chains, it just returns the (currently only one, which is a silly limitation) node that has input and output chains. Since we want the old thing to still work, add a new SelectScalarSSELoad to emulate the old interface. The XXX suffix and the wrapper will eventually go away. llvm-svn: 96715
-
- Feb 19, 2010
-
-
Charles Davis authored
Also, FileCheck'ize a test. llvm-svn: 96686
-