Skip to content
  1. Feb 08, 2007
  2. Nov 15, 2006
  3. Sep 04, 2006
    • Chris Lattner's avatar
      Completely rearchitect the interface between targets and the pass manager. · 12e97307
      Chris Lattner authored
      This pass:
      
      1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
      any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
      things using libcodegen and other support).
      2. Instead of having each target fully populate the passmgr for file or JIT
         output, move all this to common code, and give targets hooks they can
         implement.
      3. Commonalize the target population stuff between file emission and JIT
         emission.
      4. All (native code) codegen stuff now happens in a FunctionPassManager, which
         paves the way for "fast -O0" stuff in the CFE later, and now LLC could
         lazily stream .bc files from disk to use less memory.
      5. There are now many fewer #includes and the targets don't depend on the
         scalar xforms or libanalysis anymore (but codegen does).
      6. Changing common code generator pass ordering stuff no longer requires
         touching all targets.
      7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
         which is now orthogonal to the fact that JIT'ing is being done.
      
      llvm-svn: 30081
      12e97307
  4. Aug 29, 2006
  5. Jul 25, 2006
  6. Mar 14, 2006
  7. Feb 17, 2006
  8. Feb 03, 2006
  9. Jan 27, 2006
  10. Jan 26, 2006
  11. Dec 17, 2005
  12. Dec 12, 2005
  13. Nov 15, 2005
  14. Aug 19, 2005
  15. Jul 11, 2005
  16. Jul 06, 2005
    • Nate Begeman's avatar
      First round of support for doing scalar FP using the SSE2 ISA extension and · 8a093360
      Nate Begeman authored
      XMM registers.  There are many known deficiencies and fixmes, which will be
      addressed ASAP.  The major benefit of this work is that it will allow the
      LLVM register allocator to allocate FP registers across basic blocks.
      
      The x86 backend will still default to x87 style FP.  To enable this work,
      you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc.
      
      An example before and after would be for:
      double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i)
                              Sum += P[i]; return Sum; }
      
      The inner loop looks like the following:
      x87:
      .LBB_foo_1:     # no_exit
              fldl (%esp)
              faddl (%eax,%ecx,8)
              fstpl (%esp)
              incl %ecx
              cmpl $1000, %ecx
              #FP_REG_KILL
              jne .LBB_foo_1  # no_exit
      
      SSE2:
              addsd (%eax,%ecx,8), %xmm0
              incl %ecx
              cmpl $1000, %ecx
              #FP_REG_KILL
              jne .LBB_foo_1  # no_exit
      
      llvm-svn: 22340
      8a093360
  17. Jun 27, 2005
  18. Apr 22, 2005
  19. Jan 07, 2005
  20. Aug 24, 2004
  21. Aug 16, 2004
  22. Jul 22, 2004
  23. Apr 06, 2004
    • Jakub Staszak's avatar
      · de647007
      Jakub Staszak authored
      Tablgen files for really simple instruction selector
      
      llvm-svn: 12714
      de647007
  24. Dec 28, 2003
  25. Dec 13, 2003
    • Alkis Evlogimenos's avatar
      Add a floating point killer pass. This pass runs before register · 904cd6d4
      Alkis Evlogimenos authored
      allocaton on the X86 to add information to the machine code denoting
      that our floating point stackifier cannot handle virtual point
      register that are alive across basic blocks. This pass adds an
      implicit def of all virtual floating point register at the end of each
      basic block.
      
      llvm-svn: 10446
      904cd6d4
  26. Dec 01, 2003
    • Chris Lattner's avatar
      Add an option to enable the SSA based peephole optimizer. · 6d760d7c
      Chris Lattner authored
      Eventually this pass will provide substantially better code in the interim between when we
      have a crappy isel and nice isel.  Unfortunately doing so requires fixing the backend to
      actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE
      pass for machine code.  Each of these is a fairly substantial job, so this will remain disabled
      for the immediate future.  :(
      
      llvm-svn: 10276
      6d760d7c
  27. Nov 11, 2003
  28. Oct 21, 2003
  29. Aug 13, 2003
  30. Aug 11, 2003
  31. Aug 03, 2003
  32. Jul 27, 2003
  33. Jul 23, 2003
    • Brian Gaeke's avatar
      Printer.cpp: Ditch addRequired/getAnalysis, because they leave · a92dce47
      Brian Gaeke authored
        Printer::doFinalization() out in the cold.  Now we pass in a TargetMachine
        to Printer's constructor and get the TargetData from the TargetMachine.
       Don't pass TargetMachine or MRegisterInfo objects around in the Printer.
       Constify TargetData references.
      X86.h: Update comment and prototype of createX86CodePrinterPass().
      X86TargetMachine.cpp: Update callers of createX86CodePrinterPass().
      
      llvm-svn: 7275
      a92dce47
  34. Jun 03, 2003
  35. Jan 13, 2003
  36. Dec 28, 2002
Loading