Skip to content
  1. Jun 25, 2012
    • Jakob Stoklund Olesen's avatar
      Teach PHIElimination to handle <undef> operands. · 70ed924e
      Jakob Stoklund Olesen authored
      When a PHI use is <undef>, don't emit a copy in the predecessor block,
      but insert an IMPLICIT_DEF instruction instead. This ensures that
      virtual register uses are always jointly dominated by defs, even if some
      of them are IMPLICIT_DEF.
      
      llvm-svn: 159121
      70ed924e
  2. Feb 10, 2012
    • Andrew Trick's avatar
      RegAlloc superpass: includes phi elimination, coalescing, and scheduling. · d3f8fe81
      Andrew Trick authored
      Creates a configurable regalloc pipeline.
      
      Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa.
      
      When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>.
      
      CodeGen transformation passes are never "required" as an analysis
      
      ProcessImplicitDefs does not require LiveVariables.
      
      We have a plan to massively simplify some of the early passes within the regalloc superpass.
      
      llvm-svn: 150226
      d3f8fe81
  3. Jan 20, 2012
  4. Dec 06, 2011
    • Evan Cheng's avatar
      First chunk of MachineInstr bundle support. · 2a81dd4a
      Evan Cheng authored
      1. Added opcode BUNDLE
      2. Taught MachineInstr class to deal with bundled MIs
      3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs
      4. Taught MachineBasicBlock methods about bundled MIs
      
      llvm-svn: 145975
      2a81dd4a
  5. Jul 30, 2011
    • Jakob Stoklund Olesen's avatar
      Add an isSSA() flag to MachineRegisterInfo. · 9760f04e
      Jakob Stoklund Olesen authored
      This flag is true from isel to register allocation when the machine
      function is required to be in SSA form.  The TwoAddressInstructionPass
      and PHIElimination passes clear the flag.
      
      The SSA flag wil be used by the machine code verifier to check for SSA
      form, and eventually an assertion can enforce it in +Asserts builds.
      This will catch the common target error of creating machine code with
      multiple defs of a virtual register.
      
      llvm-svn: 136532
      9760f04e
  6. Apr 23, 2011
  7. Mar 10, 2011
  8. Feb 17, 2011
  9. Feb 14, 2011
  10. Jan 14, 2011
  11. Jan 13, 2011
  12. Jan 09, 2011
  13. Dec 05, 2010
  14. Dec 04, 2010
  15. Oct 08, 2010
  16. Aug 23, 2010
  17. Aug 18, 2010
  18. Aug 17, 2010
  19. Aug 06, 2010
  20. Jul 10, 2010
  21. Jun 22, 2010
  22. Jun 18, 2010
    • Stuart Hastings's avatar
      Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This · 0125b641
      Stuart Hastings authored
      addresses a longstanding deficiency noted in many FIXMEs scattered
      across all the targets.
      
      This effectively moves the problem up one level, replacing eleven
      FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
      through FastISel where we actually supply a DebugLoc, fixing Radar
      7421831.
      
      llvm-svn: 106243
      0125b641
  23. May 06, 2010
  24. May 05, 2010
  25. May 04, 2010
    • Evan Cheng's avatar
      Teach PHI elimination to remove REG_SEQUENCE instructions and update... · 4c908f41
      Evan Cheng authored
      Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g.
      %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ...
      %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6
      =>
      %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ...
      
      PHI elimination now does more than phi elimination. It is really a de-SSA pass.
      
      llvm-svn: 103039
      4c908f41
    • Evan Cheng's avatar
      Rename variables for consistency. · a5c0cc32
      Evan Cheng authored
      llvm-svn: 103013
      a5c0cc32
  26. Mar 25, 2010
  27. Mar 04, 2010
  28. Feb 23, 2010
  29. Feb 17, 2010
Loading