Skip to content
  1. Nov 15, 2010
  2. Nov 11, 2010
  3. Nov 04, 2010
  4. Nov 02, 2010
  5. Nov 01, 2010
  6. Oct 13, 2010
  7. Oct 11, 2010
  8. Oct 08, 2010
  9. Oct 07, 2010
  10. Jul 02, 2010
  11. 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
  12. Apr 08, 2010
  13. Mar 19, 2010
  14. Feb 09, 2010
  15. Jan 15, 2010
  16. Jan 09, 2010
  17. Dec 15, 2009
  18. Dec 05, 2009
  19. Sep 28, 2009
  20. Jul 08, 2009
  21. Jul 03, 2009
  22. 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
  23. Oct 05, 2008
  24. Sep 17, 2008
  25. Sep 07, 2008
  26. Sep 02, 2008
  27. 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
  28. Mar 16, 2008
  29. Mar 15, 2008
  30. 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
  31. Dec 29, 2007
Loading