1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib
Chris Lattner 9c9c1158cb Fix some issues in WalkChainUsers dealing with
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
2010-03-02 22:20:06 +00:00
..
Analysis When expanding an expression such as (A + B + C + D), sort the operands 2010-03-02 19:32:21 +00:00
Archive From PR6228: 2010-02-04 06:19:43 +00:00
AsmParser Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some 2010-02-16 14:50:09 +00:00
Bitcode Make the side-numbering of instructions used by metadata (which is needed to 2010-02-25 08:30:17 +00:00
CodeGen Fix some issues in WalkChainUsers dealing with 2010-03-02 22:20:06 +00:00
CompilerDriver Input files with empty suffixes must be passed to linker. 2010-02-23 09:05:21 +00:00
ExecutionEngine There are two ways of checking for a given type, for example isa<PointerType>(T) 2010-02-16 11:11:14 +00:00
Linker Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some 2010-02-16 14:50:09 +00:00
MC pass in more section kinds, enough to get the .align 0x90 2010-02-26 18:32:26 +00:00
Support Don't potentially read past the end of the fill data when making a NaN from 2010-03-01 18:38:45 +00:00
System follow-on to PR6280 2010-02-14 18:20:09 +00:00
Target Fix some issues in WalkChainUsers dealing with 2010-03-02 22:20:06 +00:00
Transforms Non-affine post-inc SCEV expansions have more code which must be 2010-03-02 01:59:21 +00:00
VMCore Rename LLVMUseIteratorRef to LLVMUseRef since we don't refer to iterators in llvm-c. 2010-03-02 20:32:28 +00:00
Makefile remove llvm-db: it is completely broken and if anyone wants to do a debugger, 2009-10-05 02:29:51 +00:00