llvm-6502/lib
Jakob Stoklund Olesen 7016cf66ee Allow <undef> flags on def operands as well as uses.
The <undef> flag says that a MachineOperand doesn't read its register,
or doesn't depend on the previous value of its register.

A full register def never depends on the previous register value.  A
partial register def may depend on the previous value if it is intended
to update part of a register.

For example:

  %vreg10:dsub_0<def,undef> = COPY %vreg1
  %vreg10:dsub_1<def> = COPY %vreg2

The first copy instruction defines the full %vreg10 register with the
bits not covered by dsub_0 defined as <undef>.  It is not considered a
read of %vreg10.

The second copy modifies part of %vreg10 while preserving the rest.  It
has an implicit read of %vreg10.

This patch adds a MachineOperand::readsReg() method to determine if an
operand reads its register.

Previously, this was modelled by adding a full-register <imp-def>
operand to the instruction.  This approach makes it possible to
determine directly from a MachineOperand if it reads its register.  No
scanning of MI operands is required.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141124 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04 21:49:33 +00:00
..
Analysis The product of two chrec's can always be represented as a chrec. 2011-10-04 06:51:26 +00:00
Archive Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
AsmParser Remove last references to hotpatch. 2011-10-04 03:08:43 +00:00
Bitcode Fix a typo in the bitcode reader in the handling of atomic stores. Reported by David Meyer on llvmdev. 2011-09-19 19:41:28 +00:00
CodeGen Allow <undef> flags on def operands as well as uses. 2011-10-04 21:49:33 +00:00
DebugInfo DWARF: avoid unnecessary map lookups. 2011-09-21 17:31:42 +00:00
ExecutionEngine MCJIT initialization TargetData 2011-09-30 16:40:10 +00:00
Linker lib/Linker: add support of deps which does not end with ".so". 2011-09-20 22:52:35 +00:00
MC Add definition of MipsELFObjectWriter. 2011-09-30 21:55:40 +00:00
Object Object: Add isSection{Data,BSS}. 2011-09-28 20:57:30 +00:00
Support Fix typo in comments. 2011-10-03 21:30:08 +00:00
TableGen Replace snprintf with raw_string_ostream. 2011-10-04 21:08:56 +00:00
Target Teach PPCInstrInfo to handle sub-classes. 2011-10-04 15:28:47 +00:00
Transforms LSR should avoid redundant edge splitting. 2011-10-04 03:50:44 +00:00
VMCore Unbreak CMake build. 2011-10-04 18:22:24 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00