Skip to content
  1. Sep 11, 2018
  2. Sep 06, 2018
    • Lang Hames's avatar
      [ORC] Make RuntimeDyldObjectLinkingLayer2 take memory managers by unique_ptr. · bf985258
      Lang Hames authored
      The existing memory manager API can not be shared between objects when linking
      concurrently (since there is no way to know which concurrent allocations were
      performed on behalf of which object, and hence which allocations would be safe
      to finalize when finalizeMemory is called). For now, we can work around this by
      requiring a new memory manager for each object.
      
      This change only affects the concurrent version of the ORC APIs.
      
      llvm-svn: 341579
      bf985258
  3. Aug 28, 2018
    • Lang Hames's avatar
      [ORC] Add an addObjectFile method to LLJIT. · 37a66413
      Lang Hames authored
      The addObjectFile method adds the given object file to the JIT session, making
      its code available for execution.
      
      Support for the -extra-object flag is added to lli when operating in
      -jit-kind=orc-lazy mode to support testing of this feature.
      
      llvm-svn: 340870
      37a66413
  4. Aug 17, 2018
    • Lang Hames's avatar
      [ORC] Rename VSO to JITDylib. · d5f56c59
      Lang Hames authored
      VSO was a little close to VDSO (an acronym on Linux for Virtual Dynamic Shared
      Object) for comfort. It also risks giving the impression that instances of this
      class could be shared between ExecutionSessions, which they can not.
      
      JITDylib seems moderately less confusing, while still hinting at how this
      class is intended to be used, i.e. as a JIT-compiled stand-in for a dynamic
      library (code that would have been a dynamic library if you had wanted to
      compile it ahead of time).
      
      llvm-svn: 340084
      d5f56c59
  5. Jul 20, 2018
    • Lang Hames's avatar
      [ORC] Replace SymbolResolvers in the new ORC layers with search orders on VSOs. · fd0c1e71
      Lang Hames authored
      A search order is a list of VSOs to be searched linearly to find symbols. Each
      VSO now has a search order that will be used when fixing up definitions in that
      VSO. Each VSO's search order defaults to just that VSO itself.
      
      This is a first step towards removing symbol resolvers from ORC altogether. In
      practice symbol resolvers tended to be used to implement a search order anyway,
      sometimes with additional programatic generation of symbols. Now that VSOs
      support programmatic generation of definitions via fallback generators, search
      orders provide a cleaner way to achieve the desired effect (while removing a lot
      of boilerplate).
      
      llvm-svn: 337593
      fd0c1e71
  6. Jun 26, 2018
    • Lang Hames's avatar
      [ORC] Add LLJIT and LLLazyJIT, and replace OrcLazyJIT in LLI with LLLazyJIT. · 6a94134b
      Lang Hames authored
      LLJIT is a prefabricated ORC based JIT class that is meant to be the go-to
      replacement for MCJIT. Unlike OrcMCJITReplacement (which will continue to be
      supported) it is not API or bug-for-bug compatible, but targets the same
      use cases: Simple, non-lazy compilation and execution of LLVM IR.
      
      LLLazyJIT extends LLJIT with support for function-at-a-time lazy compilation,
      similar to what was provided by LLVM's original (now long deprecated) JIT APIs.
      
      This commit also contains some simple utility classes (CtorDtorRunner2,
      LocalCXXRuntimeOverrides2, JITTargetMachineBuilder) to support LLJIT and
      LLLazyJIT.
      
      Both of these classes are works in progress. Feedback from JIT clients is very
      welcome!
      
      llvm-svn: 335670
      6a94134b
Loading