Skip to content
  1. Oct 05, 2011
  2. Oct 04, 2011
    • Jakob Stoklund Olesen's avatar
      Allow <undef> flags on def operands as well as uses. · 10f2de32
      Jakob Stoklund Olesen authored
      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.
      
      llvm-svn: 141124
      10f2de32
    • Francois Pichet's avatar
      Replace snprintf with raw_string_ostream. · aec9739e
      Francois Pichet authored
      llvm-svn: 141116
      aec9739e
Loading