llvm-6502/include/llvm
Chris Lattner d1b7382983 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. :)




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 22:20:06 +00:00
..
ADT Allow specialization of ScopedHashTable of non-default DenseMapInfo. 2010-03-02 22:10:24 +00:00
Analysis remove anders-aa from mainline, it isn't maintained and is 2010-03-01 19:24:17 +00:00
Assembly Add a hook to AssemblyAnnotationWriter to allow custom info comments 2010-02-10 20:41:46 +00:00
Bitcode Add support for a union type in LLVM IR. Patch by Talin! 2010-02-12 20:49:41 +00:00
CodeGen Fix some issues in WalkChainUsers dealing with 2010-03-02 22:20:06 +00:00
CompilerDriver Correct option forwarding: initial implementation. 2010-02-23 09:04:44 +00:00
Config Reconfigure with autoconf-2.60, and fix autoconf.ac to work with that version. 2010-02-03 02:11:49 +00:00
ExecutionEngine Move --march, --mcpu, and --mattr from JIT/TargetSelect.cpp to lli.cpp. 2010-02-05 16:19:36 +00:00
MC This is the first patch to put the needed bits in place to eventually allow code 2010-02-23 18:26:34 +00:00
Support Revert r97245 which seems to be causing performance problems. 2010-02-28 05:34:05 +00:00
System Fix various doxygen warnings. 2010-02-22 04:10:52 +00:00
Target Remove dead parameter passing. 2010-03-02 01:55:18 +00:00
Transforms Revert r97245 which seems to be causing performance problems. 2010-02-28 05:34:05 +00:00
AbstractTypeUser.h When a constant's type is refined, update the constant in place 2009-09-15 15:58:07 +00:00
Argument.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
Attributes.h Reduce size of 'StackAlignment' field from 5 to 3 bits. Seriously, who needs a 2010-02-21 04:26:06 +00:00
AutoUpgrade.h Reapply 79977. 2009-08-28 23:24:31 +00:00
BasicBlock.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
CallGraphSCCPass.h elimiante the dynamic_cast's from opt. 2010-01-22 06:03:06 +00:00
CallingConv.h Add MSP430 interrupt calling conv. No functionality change yet. 2009-12-07 02:27:35 +00:00
CMakeLists.txt
Constant.h eliminate a bunch of pointless LLVMContext arguments. 2010-02-01 20:48:08 +00:00
Constants.h Add more information to the getSizeOf comment. 2010-02-25 15:55:28 +00:00
DerivedTypes.h Add support for a union type in LLVM IR. Patch by Talin! 2010-02-12 20:49:41 +00:00
Function.h back this out for now. Growing Function is not good. 2010-01-21 20:10:22 +00:00
GlobalAlias.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
GlobalValue.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
GlobalVariable.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
GVMaterializer.h Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
InlineAsm.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
InstrTypes.h doxygenize some comments, patch by Peter Collingbourne! 2010-02-12 21:54:28 +00:00
Instruction.def rename indbr -> indirectbr to appease the residents of #llvm. 2009-10-28 00:19:10 +00:00
Instruction.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
Instructions.h Fix various doxygen warnings. 2010-02-22 04:10:52 +00:00
IntrinsicInst.h Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). 2010-01-15 19:04:09 +00:00
Intrinsics.h Mention vAny and iPTRAny in a comment. 2010-02-09 16:59:14 +00:00
Intrinsics.td Update of 94055 to track the IR level call site information via an intrinsic. 2010-01-28 01:45:32 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td Add new intrinsics for Neon vldN_lane and vstN_lane operations. 2009-08-22 02:28:46 +00:00
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td Revert r92939. These intrinsics get matched to LLVM instructions, 2010-01-07 21:43:58 +00:00
IntrinsicsXCore.td
LinkAllPasses.h remove anders-aa from mainline, it isn't maintained and is 2010-03-01 19:24:17 +00:00
LinkAllVMCore.h fix a warning. 2010-01-16 21:55:24 +00:00
Linker.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
LLVMContext.h Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
Metadata.h Fix comments. 2010-02-18 21:03:36 +00:00
Module.h Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
OperandTraits.h Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
Operator.h Remove a bunch of unused arguments from functions, silencing a 2009-10-14 20:28:33 +00:00
Pass.h Fix a few unused parameter warnings. 2010-02-17 23:55:26 +00:00
PassAnalysisSupport.h eliminate dynamic_cast from the pass manager. 2010-01-21 02:07:07 +00:00
PassManager.h Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
PassManagers.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
PassSupport.h add a helper method. 2010-01-20 19:25:45 +00:00
SymbolTableListTraits.h Forward-declare ValueSymbolTable so that SymbolTableListTraits.h can be parsed by itself 2009-09-30 00:08:25 +00:00
Type.h Correct LastPrimitiveTyID: MetadataType is a primitive type. 2010-02-19 09:18:53 +00:00
TypeSymbolTable.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
Use.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
User.h
Value.h Add support for a union type in LLVM IR. Patch by Talin! 2010-02-12 20:49:41 +00:00
ValueSymbolTable.h Before existing NamedMDNode entry in the symbol table, remove any existing entry with the same name. 2010-01-26 22:03:41 +00:00