Skip to content
  1. May 23, 2013
  2. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  3. Dec 01, 2012
    • Jakob Stoklund Olesen's avatar
      Convert COPY instructions into KILLs if they have implicit defs. · bb1e9831
      Jakob Stoklund Olesen authored
      MachineCopyPropagation doesn't understand super-register liveness well
      enough to be able to remove implicit defs of super-registers.
      
      This fixes a problem in ARM/2012-01-26-CopyPropKills.ll that is exposed
      by an future TwoAddressInstructionPass change. The KILL instructions are
      removed before the machine code is emitted.
      
      llvm-svn: 169060
      bb1e9831
  4. Nov 27, 2012
  5. Oct 15, 2012
  6. Jun 02, 2012
    • Jakob Stoklund Olesen's avatar
      Switch all register list clients to the new MC*Iterator interface. · 54038d79
      Jakob Stoklund Olesen authored
      No functional change intended.
      
      Sorry for the churn. The iterator classes are supposed to help avoid
      giant commits like this one in the future. The TableGen-produced
      register lists are getting quite large, and it may be necessary to
      change the table representation.
      
      This makes it possible to do so without changing all clients (again).
      
      llvm-svn: 157854
      54038d79
  7. Jun 01, 2012
  8. Mar 27, 2012
  9. Mar 05, 2012
  10. Mar 04, 2012
  11. Feb 27, 2012
  12. Feb 21, 2012
  13. Feb 09, 2012
  14. Feb 08, 2012
    • Jakob Stoklund Olesen's avatar
      Handle register masks in MachineCopyPropagation. · 8610a59d
      Jakob Stoklund Olesen authored
      For simplicity, treat calls with register masks as basic block
      boundaries.  This means we can't copy propagate callee-saved registers
      across calls, but I don't think that is a big deal.
      
      llvm-svn: 150108
      8610a59d
    • Andrew Trick's avatar
      Codegen pass definition cleanup. No functionality. · 1fa5bcbe
      Andrew Trick authored
      Moving toward a uniform style of pass definition to allow easier target configuration.
      Globally declare Pass ID.
      Globally declare pass initializer.
      Use INITIALIZE_PASS consistently.
      Add a call to the initializer from CodeGen.cpp.
      Remove redundant "createPass" functions and "getPassName" methods.
      
      While cleaning up declarations, cleaned up comments (sorry for large diff).
      
      llvm-svn: 150100
      1fa5bcbe
    • Andrew Trick's avatar
      whitespace · 9e761997
      Andrew Trick authored
      llvm-svn: 150094
      9e761997
  15. Jan 26, 2012
  16. Jan 08, 2012
  17. Jan 07, 2012
    • Evan Cheng's avatar
      Added a late machine instruction copy propagation pass. This catches · 00b1a3cd
      Evan Cheng authored
      opportunities that only present themselves after late optimizations
      such as tail duplication .e.g.
      ## BB#1:
              movl    %eax, %ecx
              movl    %ecx, %eax
              ret
      
      The register allocator also leaves some of them around (due to false
      dep between copies from phi-elimination, etc.)
      
      This required some changes in codegen passes. Post-ra scheduler and the
      pseudo-instruction expansion passes have been moved after branch folding
      and tail merging. They were before branch folding before because it did
      not always update block livein's. That's fixed now. The pass change makes
      independently since we want to properly schedule instructions after
      branch folding / tail duplication.
      
      rdar://10428165
      rdar://10640363
      
      llvm-svn: 147716
      00b1a3cd
Loading