Skip to content
  1. Aug 01, 2012
  2. Feb 18, 2012
  3. Nov 24, 2009
    • Jeffrey Yasskin's avatar
      * Move stub allocation inside the JITEmitter, instead of exposing a · f2ad5714
      Jeffrey Yasskin authored
      way for each TargetJITInfo subclass to allocate its own stubs. This
      means stubs aren't as exactly-sized anymore, but it lets us get rid of
      TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC
      support the eager JIT, fixing http://llvm.org/PR4816.
      
      * Rename the JITEmitter's stub creation functions to describe the kind
      of stub they create. So far, all of them create lazy-compilation
      stubs, but they sometimes get used when far-call stubs are needed.
      Fixing http://llvm.org/PR5201 will involve fixing this.
      
      llvm-svn: 89715
      f2ad5714
  4. Sep 03, 2009
  5. May 30, 2009
  6. Feb 18, 2009
    • Nate Begeman's avatar
      Add support to the JIT for true non-lazy operation. When a call to a function · 18d85e74
      Nate Begeman authored
      that has not been JIT'd yet, the callee is put on a list of pending functions
      to JIT.  The call is directed through a stub, which is updated with the address
      of the function after it has been JIT'd.  A new interface for allocating and
      updating empty stubs is provided.
      
      Add support for removing the ModuleProvider the JIT was created with, which
      would otherwise invalidate the JIT's PassManager, which is initialized with the
      ModuleProvider's Module.
      
      Add support under a new ExecutionEngine flag for emitting the infomration 
      necessary to update Function and GlobalVariable stubs after JITing them, by
      recording the address of the stub and the name of the GlobalValue.  This allows
      code to be copied from one address space to another, where libraries may live
      at different virtual addresses, and have the stubs updated with their new
      correct target addresses.
      
      llvm-svn: 64906
      18d85e74
  7. Dec 10, 2008
  8. Nov 10, 2008
  9. Nov 05, 2008
  10. Oct 25, 2008
  11. Apr 16, 2008
  12. Mar 25, 2008
  13. Jan 05, 2008
  14. Jan 04, 2008
  15. Dec 29, 2007
  16. Nov 15, 2006
  17. 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
  18. Jul 27, 2006
  19. Jul 25, 2006
  20. Mar 14, 2006
  21. Jul 30, 2005
  22. Jul 22, 2005
  23. Apr 22, 2005
  24. Nov 21, 2004
  25. Dec 28, 2003
  26. Dec 20, 2003
Loading