Skip to content
  1. Oct 11, 2010
  2. Oct 08, 2010
  3. Oct 07, 2010
  4. Jul 02, 2010
  5. May 01, 2010
    • Evan Cheng's avatar
      Add a pseudo instruction REG_SEQUENCE that takes a list of registers and · 66561537
      Evan Cheng authored
      sub-register indices and outputs a single super register which is formed from
      a consecutive sequence of registers.
      
      This is used as register allocation / coalescing aid and it is useful to
      represent instructions that output register pairs / quads. For example,
      v1024, v1025 = vload <address>
      where v1024 and v1025 forms a register pair.
      
      This really should be modelled as
      v1024<3>, v1025<4> = vload <address>
      but it would violate SSA property before register allocation is done.
      
      Currently we use insert_subreg to form the super register:
      v1026 = implicit_def
      v1027 - insert_subreg v1026, v1024, 3
      v1028 = insert_subreg v1027, v1025, 4
      ...
            = use v1024
            = use v1028
      
      But this adds pseudo live interval overlap between v1024 and v1025.
      
      We can now modeled it as
      v1024, v1025 = vload <address>
      v1026 = REG_SEQUENCE v1024, 3, v1025, 4
      ...
            = use v1024
            = use v1026
      
      After coalescing, it will be
      v1026<3>, v1025<4> = vload <address>
      ...
            = use v1026<3>
            = use v1026
      
      llvm-svn: 102815
      66561537
  6. Apr 08, 2010
  7. Mar 19, 2010
  8. Feb 09, 2010
  9. Jan 15, 2010
  10. Jan 09, 2010
  11. Dec 15, 2009
  12. Dec 05, 2009
  13. Sep 28, 2009
  14. Jul 08, 2009
  15. Jul 03, 2009
  16. Apr 13, 2009
    • Dan Gohman's avatar
      Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize · 6c142630
      Dan Gohman authored
      it accordingly. Thanks to Jakob Stoklund Olesen for pointing
      out how this might be useful.
      
      llvm-svn: 68986
      6c142630
    • Dan Gohman's avatar
      Add a new TargetInstrInfo MachineInstr opcode, COPY_TO_SUBCLASS. · 60a446ab
      Dan Gohman authored
      This will be used to replace things like X86's MOV32to32_.
      
      Enhance ScheduleDAGSDNodesEmit to be more flexible and robust
      in the presense of subregister superclasses and subclasses. It
      can now cope with the definition of a virtual register being in
      a subclass of a use.
      
      Re-introduce the code for recording register superreg classes and
      subreg classes. This is needed because when subreg extracts and
      inserts get coalesced away, the virtual registers are left in
      the correct subclass.
      
      llvm-svn: 68961
      60a446ab
  17. Oct 05, 2008
  18. Sep 17, 2008
  19. Sep 07, 2008
  20. Sep 02, 2008
  21. Jul 01, 2008
    • Dan Gohman's avatar
      Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating · fb19f940
      Dan Gohman authored
      the need for a flavor operand, and add a new SDNode subclass,
      LabelSDNode, for use with them to eliminate the need for a label id
      operand.
      
      Change instruction selection to let these label nodes through
      unmodified instead of creating copies of them. Teach the MachineInstr
      emitter how to emit a MachineInstr directly from an ISD label node.
      
      This avoids the need for allocating SDNodes for the label id and
      flavor value, as well as SDNodes for each of the post-isel label,
      label id, and label flavor.
      
      llvm-svn: 52943
      fb19f940
  22. Mar 16, 2008
  23. Mar 15, 2008
  24. Feb 02, 2008
    • Evan Cheng's avatar
      SDIsel processes llvm.dbg.declare by recording the variable debug information... · efd142a9
      Evan Cheng authored
      SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
      Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
      For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
      
      llvm-svn: 46659
      efd142a9
  25. Dec 29, 2007
  26. Jul 26, 2007
  27. Jan 26, 2007
  28. Dec 07, 2006
  29. Nov 16, 2006
  30. Nov 03, 2006
  31. Sep 05, 2006
  32. Jul 14, 2006
  33. Jul 13, 2006
  34. Jul 12, 2006
  35. Jul 11, 2006
  36. Mar 18, 2006
Loading