Skip to content
  1. Oct 02, 2013
  2. Oct 01, 2013
    • Andrew Kaylor's avatar
      Adding multiple module support for MCJIT. · ea395924
      Andrew Kaylor authored
      Tests to follow.
      
      PIC with small code model and  EH frame handling will not work with multiple modules.  There are also some rough edges to be smoothed out for remote target support.
      
      llvm-svn: 191722
      ea395924
  3. Jun 28, 2013
    • Daniel Malea's avatar
      Add flag to lli to enable debugging of IR when used with MCJIT. · a960c54d
      Daniel Malea authored
      - warn users when -debug-ir is used with old JIT engine (only partial debug
        info is available) 
      
      For example, to debug an IR file with GDB (that supports JIT registration), do:
      
      $ gdb --args lli -use-mcjit -debug-ir testcase.ll
      (gdb) break main
      (gdb) run
      <Process continues to lli main>
      (gdb) continue
      <Process continues to testcase.ll main()
      (gdb) step
      <Now stepping through the LLVM IR in testcase.ll>
      
      llvm-svn: 185197
      a960c54d
  4. May 19, 2013
  5. May 14, 2013
    • Filip Pizlo's avatar
      SectionMemoryManager shouldn't be a JITMemoryManager. Previously, the · 9bc53e84
      Filip Pizlo authored
      EngineBuilder interface required a JITMemoryManager even if it was being used 
      to construct an MCJIT. But the MCJIT actually wants a RTDyldMemoryManager. 
      Consequently, the SectionMemoryManager, which is meant for MCJIT, derived 
      from the JITMemoryManager and then stubbed out a bunch of JITMemoryManager 
      methods that weren't relevant to the MCJIT.
      
      This patch fixes the situation: it teaches the EngineBuilder that 
      RTDyldMemoryManager is a supertype of JITMemoryManager, and that it's 
      appropriate to pass a RTDyldMemoryManager instead of a JITMemoryManager if 
      we're using the MCJIT. This allows us to remove the stub methods from 
      SectionMemoryManager, and make SectionMemoryManager a direct subtype of 
      RTDyldMemoryManager.
      
      llvm-svn: 181820
      9bc53e84
  6. May 07, 2013
  7. Mar 26, 2013
    • Chandler Carruth's avatar
      Split out the IRReader header and the utility functions it provides into · e60e57be
      Chandler Carruth authored
      its own library. These functions are bridging between the bitcode reader
      and the ll parser which are in different libraries. Previously we didn't
      have any good library to do this, and instead played fast and loose with
      a "header only" set of interfaces in the Support library. This really
      doesn't work well as evidenced by the recent attempt to add timing logic
      to the these routines.
      
      As part of this, make them normal functions rather than weird inline
      functions, and sink the implementation into the library. Also clean up
      the header to be nice and minimal.
      
      This requires updating lots of build system dependencies to specify that
      the IRReader library is needed, and several source files to not
      implicitly rely upon the header file to transitively include all manner
      of other headers.
      
      If you are using IRReader.h, this commit will break you (the header
      moved) and you'll need to also update your library usage to include
      'irreader'. I will commit the corresponding change to Clang momentarily.
      
      llvm-svn: 177971
      e60e57be
  8. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  9. Dec 04, 2012
    • Chandler Carruth's avatar
      Sort the #include lines for tools/... · 4d88a1c2
      Chandler Carruth authored
      Again, tools are trickier to pick the main module header for than
      library source files. I've started to follow the pattern of using
      LLVMContext.h when it is included as a stub for program source files.
      
      llvm-svn: 169252
      4d88a1c2
  10. Nov 27, 2012
    • Andrew Kaylor's avatar
      Modifying lli to use the SectionMemoryManager. · 58365b9c
      Andrew Kaylor authored
      The functionality of SectionMemoryManager is equivalent to the LLIMCJITMemoryManager being replaced except that it allocates memory as RW and later changes it to RX or R as needed.  The page permissions are set in the call to MCJIT::finalizeObject.
      
      llvm-svn: 168722
      58365b9c
  11. Nov 16, 2012
  12. Nov 05, 2012
    • Andrew Kaylor's avatar
      Add a method to indicate section address re-assignment is finished. · a714efc1
      Andrew Kaylor authored
      Prior to this patch RuntimeDyld attempted to re-apply relocations every time reassignSectionAddress was called (via MCJIT::mapSectionAddress).  In addition to being inefficient and redundant, this led to a problem when a section was temporarily moved too far away from another section with a relative relocation referencing the section being moved.  To fix this, I'm adding a new method (finalizeObject) which the client can call to indicate that it is finished rearranging section addresses so the relocations can safely be applied.
      
      llvm-svn: 167400
      a714efc1
    • Jim Grosbach's avatar
      lli: Initialize the native asm parser for inline assembly. · 2cce3f91
      Jim Grosbach authored
      MCJIT supports inline assembly, but requires the asm parser to do so.
      Make sure to link it in and initialize it.
      
      llvm-svn: 167392
      2cce3f91
  13. Nov 01, 2012
  14. Oct 29, 2012
  15. Oct 12, 2012
  16. Oct 05, 2012
    • NAKAMURA Takumi's avatar
      lli: [MCJIT] Suppress "__main" for cygming in... · a549b51a
      NAKAMURA Takumi authored
      lli: [MCJIT] Suppress "__main" for cygming in LLIMCJITMemoryManager::getPointerToNamedFunction(), like legacy JITMemoryManager's.
      
      CRT's __main (aka premain) invokes global ctors on cygming. See also PR3897.
      
      llvm-svn: 165312
      a549b51a
  17. Sep 20, 2012
  18. Sep 05, 2012
    • Jim Grosbach's avatar
      MCJIT: Add faux remote target execution to lli for the MCJIT. · 0f435d08
      Jim Grosbach authored
      Simulate a remote target address space by allocating a seperate chunk of
      memory for the target and re-mapping section addresses to that prior to
      execution. Later we'll want to have a truly remote process, but for now
      this gets us closer to being able to test the remote target
      functionality outside LLDB.
      
      rdar://12157052
      
      llvm-svn: 163216
      0f435d08
  19. Aug 29, 2012
    • Jim Grosbach's avatar
      LLI: move instruction cache tweaks. · 748b9478
      Jim Grosbach authored
      Invalidate the instruction cache right before we start actually executing code, otherwise
      we can miss some that came later. This is still not quite right for a truly lazilly
      compiled environment, but it's closer.
      
      llvm-svn: 162803
      748b9478
  20. May 20, 2012
  21. May 19, 2012
  22. May 16, 2012
  23. Apr 29, 2012
  24. Apr 18, 2012
  25. Mar 13, 2012
  26. Jan 16, 2012
  27. Jan 11, 2012
  28. Oct 16, 2011
  29. Aug 24, 2011
  30. Jul 20, 2011
  31. Jul 19, 2011
  32. Mar 18, 2011
    • Jim Grosbach's avatar
      Beginnings of MC-JIT code generation. · 7b162490
      Jim Grosbach authored
      Proof-of-concept code that code-gens a module to an in-memory MachO object.
      This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld
      for similarly conceptual work for that part) which will take the compiled
      object and link it together with the rest of the system, providing back to the
      JIT a table of available symbols which will be used to respond to the
      getPointerTo*() queries.
      
      llvm-svn: 127916
      7b162490
  33. Nov 29, 2010
  34. Nov 17, 2010
Loading