llvm-6502/lib
Jakob Stoklund Olesen 7739cad69d Add a new kind of MachineOperand: MO_RegisterMask.
Register masks will be used as a compact representation of large clobber
lists.  Currently, an x86 call instruction has some 40 operands
representing call-clobbered registers.  That's more than 1kB of useless
operands per call site.

A register mask operand references a bit mask of call-preserved
registers, everything else is clobbered.  The bit mask will typically
come from TargetRegisterInfo::getCallPreservedMask().

By abandoning ImplicitDefs for call-clobbered registers, it also becomes
possible to share call instruction descriptions between calling
conventions, and we can get rid of the WINCALL* instructions.

This patch introduces the new operand kind.  Future patches will add
RegMask support to target-independent passes before finally the fixed
clobber lists can be removed from call instruction descriptions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148250 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-16 19:22:00 +00:00
..
Analysis Fix a corner case hit by redundant phi elimination running after LSR. 2012-01-14 03:17:23 +00:00
Archive Support/FileSystem: Add file_magic and move a vew clients over to it. 2011-12-13 23:17:12 +00:00
AsmParser Add 'llvm_unreachable' to passify GCC's understanding of the constraints 2012-01-10 18:08:01 +00:00
Bitcode Add 'llvm_unreachable' to passify GCC's understanding of the constraints 2012-01-10 18:08:01 +00:00
CodeGen Add a new kind of MachineOperand: MO_RegisterMask. 2012-01-16 19:22:00 +00:00
DebugInfo Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
ExecutionEngine A fix for the previous commit: "integer constant is too large for ‘long’ type" error on some 32-bit bots 2012-01-16 09:31:10 +00:00
Linker Link symbols with different visibilities according to the rules in the 2012-01-05 23:02:01 +00:00
MC The error check for using -g with a .s file already containing dwarf .file 2012-01-11 18:04:47 +00:00
Object Remove unused variables. 2011-12-25 01:20:19 +00:00
Support Remove SetWorkingDirectory from the Process interface. Nothing in LLVM 2012-01-15 08:41:35 +00:00
TableGen Delete CodeInit and CodeRecTy from TableGen. 2012-01-13 03:38:34 +00:00
Target Make sure the non-SSE lowering for fences correctly clobbers EFLAGS. PR11768. 2012-01-16 16:42:21 +00:00
Transforms Cosmetic patch for r148215. 2012-01-15 09:45:11 +00:00
VMCore Added MVT::v2f16 2012-01-12 23:14:13 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00