| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This code has been superseded by the new Building A JIT series.
llvm-svn: 271059
|
|
|
|
|
|
|
|
| |
warnings in examples; other minor fixes.
Differential revision: http://reviews.llvm.org/D20397
llvm-svn: 270008
|
|
|
|
|
|
|
|
| |
This enables lazy JITing on Windows x86-64.
Patch by David. Thanks David!
llvm-svn: 268845
|
|
|
|
|
|
|
|
|
|
|
| |
At the same time, fixes InstructionsTest::CastInst unittest: yes
you can leave the IR in an invalid state and exit when you don't
destroy the context (like the global one), no longer now.
This is the first part of http://reviews.llvm.org/D19094
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266379
|
|
|
|
| |
llvm-svn: 257313
|
|
|
|
| |
llvm-svn: 254695
|
|
|
|
| |
llvm-svn: 252379
|
|
|
|
|
|
| |
r251933 changed the Orc compile callbacks API, which broke this.
llvm-svn: 251942
|
|
|
|
|
|
| |
some AST nodes
llvm-svn: 249703
|
|
|
|
|
|
|
|
|
|
| |
directories; other minor cleanups.
Patch by Eugene Zelenko!
Differential Revision: http://reviews.llvm.org/D13172
llvm-svn: 248811
|
|
|
|
| |
llvm-svn: 247971
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Replace getDataLayout() with a createDataLayout() method to make
explicit that it is intended to create a DataLayout only and not
accessing it for other purpose.
This change is the last of a series of commits dedicated to have a
single DataLayout during compilation by using always the one owned
by the module.
Reviewers: echristo
Subscribers: jholewinski, llvm-commits, rafael, yaron.keren
Differential Revision: http://reviews.llvm.org/D11103
(cherry picked from commit 5609fc56bca971e5a7efeaa6ca4676638eaec5ea)
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 243114
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 0f720d984f419c747709462f7476dff962c0bc41.
It breaks clang too badly, I need to prepare a proper patch for clang
first.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 243089
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Replace getDataLayout() with a createDataLayout() method to make
explicit that it is intended to create a DataLayout only and not
accessing it for other purpose.
This change is the last of a series of commits dedicated to have a
single DataLayout during compilation by using always the one owned
by the module.
Reviewers: echristo
Subscribers: jholewinski, llvm-commits, rafael, yaron.keren
Differential Revision: http://reviews.llvm.org/D11103
(cherry picked from commit 5609fc56bca971e5a7efeaa6ca4676638eaec5ea)
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 243083
|
|
|
|
|
|
|
| |
We only need to pass in a DataLayout when mangling a raw string, not when
constructing the mangler.
llvm-svn: 240405
|
|
|
|
| |
llvm-svn: 236506
|
|
|
|
|
|
|
| |
Looks like the usual missing explicit move-constructor issue with MSVC. I should
have a fix shortly.
llvm-svn: 236472
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and avoid cloning unused decls into every partition.
Module partitioning showed up as a source of significant overhead when I
profiled some trivial test cases. Avoiding the overhead of partitionging
for uncalled functions helps to mitigate this.
This change also means that it is no longer necessary to have a
LazyEmittingLayer underneath the CompileOnDemand layer, since the
CompileOnDemandLayer will not extract or emit function bodies until they are
called.
llvm-svn: 236465
|
|
|
|
| |
llvm-svn: 234673
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MCJIT.
This patch decouples the two responsibilities of the RTDyldMemoryManager class,
memory management and symbol resolution, into two new classes:
RuntimeDyld::MemoryManager and RuntimeDyld::SymbolResolver.
The symbol resolution interface is modified slightly, from:
uint64_t getSymbolAddress(const std::string &Name);
to:
RuntimeDyld::SymbolInfo findSymbol(const std::string &Name);
The latter passes symbol flags along with symbol addresses, allowing RuntimeDyld
and others to reason about non-strong/non-exported symbols.
The memory management interface removes the following method:
void notifyObjectLoaded(ExecutionEngine *EE,
const object::ObjectFile &) {}
as it is not related to memory management. (Note: Backwards compatibility *is*
maintained for this method in MCJIT and OrcMCJITReplacement, see below).
The RTDyldMemoryManager class remains in-tree for backwards compatibility.
It inherits directly from RuntimeDyld::SymbolResolver, and indirectly from
RuntimeDyld::MemoryManager via the new MCJITMemoryManager class, which
just subclasses RuntimeDyld::MemoryManager and reintroduces the
notifyObjectLoaded method for backwards compatibility).
The EngineBuilder class retains the existing method:
EngineBuilder&
setMCJITMemoryManager(std::unique_ptr<RTDyldMemoryManager> mcjmm);
and includes two new methods:
EngineBuilder&
setMemoryManager(std::unique_ptr<MCJITMemoryManager> MM);
EngineBuilder&
setSymbolResolver(std::unique_ptr<RuntimeDyld::SymbolResolver> SR);
Clients should use EITHER:
A single call to setMCJITMemoryManager with an RTDyldMemoryManager.
OR (exclusive)
One call each to each of setMemoryManager and setSymbolResolver.
This patch should be fully compatible with existing uses of RTDyldMemoryManager.
If it is not it should be considered a bug, and the patch either fixed or
reverted.
If clients find the new API to be an improvement the goal will be to deprecate
and eventually remove the RTDyldMemoryManager class in favor of the new classes.
llvm-svn: 233509
|
|
|
|
| |
llvm-svn: 233171
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
DataLayout keeps the string used for its creation.
As a side effect it is no longer needed in the Module.
This is "almost" NFC, the string is no longer
canonicalized, you can't rely on two "equals" DataLayout
having the same string returned by getStringRepresentation().
Get rid of DataLayoutPass: the DataLayout is in the Module
The DataLayout is "per-module", let's enforce this by not
duplicating it more than necessary.
One more step toward non-optionality of the DataLayout in the
module.
Make DataLayout Non-Optional in the Module
Module->getDataLayout() will never returns nullptr anymore.
Reviewers: echristo
Subscribers: resistor, llvm-commits, jholewinski
Differential Revision: http://reviews.llvm.org/D7992
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 231270
|
|
|
|
| |
llvm-svn: 230705
|
|
|
|
|
|
| |
tutorial.
llvm-svn: 230664
|
|
|
|
|
|
|
|
| |
diffs
between them.
llvm-svn: 230542
|
|
|
|
|
|
| |
comments in the fully_lazy tutorial to minimize the diff between the two.
llvm-svn: 230202
|
|
|
|
| |
llvm-svn: 230201
|
|
|
|
|
|
| |
NFC.
llvm-svn: 230143
|
|
|
|
|
|
|
| |
Not sure if/how to make the CMake build use C++14 for the examples, so
let's stick to C++11 for now.
llvm-svn: 229888
|
|
|
|
| |
llvm-svn: 229821
|
|
|
|
|
|
|
|
| |
still.
The new JIT doesn't IRGen stubs until they're referenced.
llvm-svn: 229807
|
|
|
|
| |
llvm-svn: 229765
|
|
|
|
|
|
| |
function body pointer in the fully lazy orc/kaleidoscope tutorial.
llvm-svn: 229760
|
|
|
|
|
|
| |
explanation up a little.
llvm-svn: 229467
|
|
The version of the tutorial uses the new compile callbacks API to inject stubs
that trigger IRGen & Codegen of their respective function bodies when they are
first called.
llvm-svn: 229466
|