Skip to content
  1. Mar 23, 2015
  2. Feb 26, 2015
  3. Jan 23, 2015
    • Lang Hames's avatar
      [Orc] New JIT APIs. · 93de2a12
      Lang Hames authored
      This patch adds a new set of JIT APIs to LLVM. The aim of these new APIs is to
      cleanly support a wider range of JIT use cases in LLVM, and encourage the
      development and contribution of re-usable infrastructure for LLVM JIT use-cases.
      
      These APIs are intended to live alongside the MCJIT APIs, and should not affect
      existing clients.
      
      Included in this patch:
      
      1) New headers in include/llvm/ExecutionEngine/Orc that provide a set of
         components for building JIT infrastructure.
         Implementation code for these headers lives in lib/ExecutionEngine/Orc.
      
      2) A prototype re-implementation of MCJIT (OrcMCJITReplacement) built out of the
         new components.
      
      3) Minor changes to RTDyldMemoryManager needed to support the new components.
         These changes should not impact existing clients.
      
      4) A new flag for lli, -use-orcmcjit, which will cause lli to use the
         OrcMCJITReplacement class as its underlying execution engine, rather than
         MCJIT itself.
      
      Tests to follow shortly.
      
      Special thanks to Michael Ilseman, Pete Cooper, David Blaikie, Eric Christopher,
      Justin Bogner, and Jim Grosbach for extensive feedback and discussion.
      
      llvm-svn: 226940
      93de2a12
  4. Jan 22, 2015
    • Chris Bieneman's avatar
      Assigning and copying command line option objects shouldn't be allowed. · e71fb5ce
      Chris Bieneman authored
      Summary:
      The default copy and assignment operators for these objects probably don't actually do what the clients intend, so they should be deleted.
      
      Places using the assignment operator to set the value of an option should cast to the option's data type first to call into the override for operator=. Places using the copy constructor just need to be changed to not copy (i.e. passing by const reference instead of value).
      
      Reviewers: dexonsmith, chandlerc
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D7114
      
      llvm-svn: 226762
      e71fb5ce
  5. Dec 03, 2014
  6. Nov 29, 2014
  7. Sep 23, 2014
  8. Sep 03, 2014
  9. Aug 27, 2014
  10. Aug 26, 2014
  11. Aug 25, 2014
    • Rafael Espindola's avatar
      Modernize raw_fd_ostream's constructor a bit. · 3fd1e993
      Rafael Espindola authored
      Take a StringRef instead of a "const char *".
      Take a "std::error_code &" instead of a "std::string &" for error.
      
      A create static method would be even better, but this patch is already a bit too
      big.
      
      llvm-svn: 216393
      3fd1e993
  12. Aug 20, 2014
  13. Aug 19, 2014
    • Rafael Espindola's avatar
      Don't own the buffer in object::Binary. · 48af1c2a
      Rafael Espindola authored
      Owning the buffer is somewhat inflexible. Some Binaries have sub Binaries
      (like Archive) and we had to create dummy buffers just to handle that. It is
      also a bad fit for IRObjectFile where the Module wants to own the buffer too.
      
      Keeping this ownership would make supporting IR inside native objects
      particularly painful.
      
      This patch focuses in lib/Object. If something elsewhere used to own an Binary,
      now it also owns a MemoryBuffer.
      
      This patch introduces a few new types.
      
      * MemoryBufferRef. This is just a pair of StringRefs for the data and name.
        This is to MemoryBuffer as StringRef is to std::string.
      * OwningBinary. A combination of Binary and a MemoryBuffer. This is needed
        for convenience functions that take a filename and return both the
        buffer and the Binary using that buffer.
      
      The C api now uses OwningBinary to avoid any change in semantics. I will start
      a new thread to see if we want to change it and how.
      
      llvm-svn: 216002
      48af1c2a
    • Rafael Espindola's avatar
      2a8a2795
  14. Aug 13, 2014
  15. Aug 08, 2014
  16. Aug 07, 2014
    • Rafael Espindola's avatar
      Nuke the old JIT. · f8b27c41
      Rafael Espindola authored
      I am sure we will be finding bits and pieces of dead code for years to
      come, but this is a good start.
      
      Thanks to Lang Hames for making MCJIT a good replacement!
      
      llvm-svn: 215111
      f8b27c41
  17. Aug 01, 2014
  18. Jul 31, 2014
  19. Jul 06, 2014
  20. Jun 24, 2014
  21. Jun 13, 2014
  22. Jun 12, 2014
  23. Apr 29, 2014
    • David Blaikie's avatar
      PR19553: Memory leak in RuntimeDyldELF::createObjectImageFromFile · 7a1e775a
      David Blaikie authored
      This starts in MCJIT::getSymbolAddress where the
      unique_ptr<object::Binary> is release()d and (after a cast) passed to a
      single caller, MCJIT::addObjectFile.
      
      addObjectFile calls RuntimeDyld::loadObject.
      RuntimeDld::loadObject calls RuntimeDyldELF::createObjectFromFile
      
      And the pointer is never owned at this point. I say this point, because
      the alternative codepath, RuntimeDyldMachO::createObjectFile certainly
      does take ownership, so this seemed like a good hint that this was a/the
      right place to take ownership.
      
      llvm-svn: 207580
      7a1e775a
  24. Apr 25, 2014
  25. Apr 22, 2014
  26. Mar 08, 2014
  27. Mar 06, 2014
    • Ahmed Charles's avatar
      Replace OwningPtr<T> with std::unique_ptr<T>. · 56440fd8
      Ahmed Charles authored
      This compiles with no changes to clang/lld/lldb with MSVC and includes
      overloads to various functions which are used by those projects and llvm
      which have OwningPtr's as parameters. This should allow out of tree
      projects some time to move. There are also no changes to libs/Target,
      which should help out of tree targets have time to move, if necessary.
      
      llvm-svn: 203083
      56440fd8
  28. Mar 05, 2014
  29. Feb 24, 2014
    • Rafael Espindola's avatar
      Replace the F_Binary flag with a F_Text one. · 90c7f1cc
      Rafael Espindola authored
      After this I will set the default back to F_None. The advantage is that
      before this patch forgetting to set F_Binary would corrupt a file on windows.
      Forgetting to set F_Text produces one that cannot be read in notepad, which
      is a better failure mode :-)
      
      llvm-svn: 202052
      90c7f1cc
  30. Jan 23, 2014
    • Alp Toker's avatar
      Replace the interim lli build fix with something cleaner · ce4ab597
      Alp Toker authored
      Eliminates the LLI_BUILDING_CHILD build hack from r199885.
      
      Also add a FIXME to remove code that tricks the tests into passing when the
      feature fails to work. Please don't do stuff like this, the tests exist for a
      reason!
      
      llvm-svn: 199929
      ce4ab597
  31. Jan 22, 2014
  32. Jan 15, 2014
  33. Jan 14, 2014
    • Renato Golin's avatar
      Sanitize MCJIT remote execution · 695895ca
      Renato Golin authored
      MCJIT remote execution (ChildTarget+RemoteTargetExternal) protocol was in
      dire need of refactoring. It was fail-prone, had no error reporting and
      implemented the same message logic on every single function.
      
      This patch rectifies it, and makes it work on ARM, where it was randomly
      failing. Other architectures shall profit from this change as well, making
      their buildbots and releases more reliable.
      
      llvm-svn: 199261
      695895ca
  34. Jan 10, 2014
Loading