aboutsummaryrefslogtreecommitdiff
path: root/include/llvm-c/Disassembler.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-04 21:49:33 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-04 21:49:33 +0000
commit7016cf66ee21ddf3f7823d4e332b2cb84953bebd (patch)
treed17a0717118c11f8fdd9d49a2db258d1dde22c17 /include/llvm-c/Disassembler.h
parent0ebefdf8345d0bdfcccde4057f3cce1c2dbbda9b (diff)
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
Diffstat (limited to 'include/llvm-c/Disassembler.h')
0 files changed, 0 insertions, 0 deletions