| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
miss previously.
llvm-svn: 229089
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch refactors a key piece of the Orc APIs: It removes the
*::getSymbolAddress and *::lookupSymbolAddressIn methods, which returned target
addresses (uint64_ts), and replaces them with *::findSymbol and *::findSymbolIn
respectively, which return instances of the new JITSymbol type. Unlike the old
methods, calling findSymbol or findSymbolIn does not cause the symbol to be
immediately materialized when found. Instead, the symbol will be materialized
if/when the getAddress method is called on the returned JITSymbol. This allows
us to query for the existence of symbols without actually materializing them. In
the future I expect more information to be attached to the JITSymbol class, for
example whether the returned symbol is a weak or strong definition. This will
allow us to properly handle weak symbols and multiple definitions.
llvm-svn: 228557
|
|
|
|
|
|
| |
remove an unused parameter.
llvm-svn: 228543
|
|
|
|
| |
llvm-svn: 228539
|
|
|
|
| |
llvm-svn: 228537
|
|
|
|
| |
llvm-svn: 228531
|
|
|
|
|
|
| |
further c++ify the Kaleidoscope/Orc tutorials.
llvm-svn: 228530
|
|
|
|
| |
llvm-svn: 228524
|
|
|
|
|
|
| |
breaks due to unused variables).
llvm-svn: 228520
|
|
|
|
| |
llvm-svn: 228519
|
|
|
|
|
|
|
|
| |
This tutorial builds on the lazy_codegen kaleidoscope/orc tutorial by making
a small set of changes (~75 lines diff) to defer ir-generation for function
definitions until functions are actually referenced.
llvm-svn: 228466
|
|
|
|
|
|
|
|
| |
This tutorial builds on the initial kaleidoscope/orc tutorial by adding a
LazyEmittingLayer to the custom stack. This extra layer defers compilation
of modules in the JIT until they are statically referenced.
llvm-svn: 228459
|
|
|
|
|
|
|
| |
This tutorial demonstrates a very basic custom Orc JIT stack that performs eager
compilation: All modules are CodeGen'd immediately upon being added to the JIT.
llvm-svn: 228456
|
|
|
|
| |
llvm-svn: 226419
|
|
|
|
| |
llvm-svn: 226418
|
|
|
|
| |
llvm-svn: 226417
|
|
|
|
|
|
| |
I forgot to do this for r226308. Thanks to Eric Christopher for the reminder.
llvm-svn: 226327
|
|
|
|
|
|
|
|
| |
calls to functions weren't evaluated correctly.
Patch by Charlie Turner. Thanks Charlie!
llvm-svn: 226308
|
|
|
|
|
|
| |
CMake-produced solutions that care about such things (like MSVC). This takes the Kaleidescope target out of the root solution folder and places it into the Examples folder where it belongs.
llvm-svn: 225354
|
|
|
|
| |
llvm-svn: 225320
|
|
|
|
| |
llvm-svn: 225318
|
|
|
|
| |
llvm-svn: 225315
|
|
|
|
|
|
| |
Thanks to Rafael Espindola for testing assistance.
llvm-svn: 223678
|
|
|
|
|
|
| |
dependencies for the KS tutorials
llvm-svn: 223677
|
|
|
|
|
|
|
| |
make all doesn't build the examples and it was uniquified since
last build.
llvm-svn: 223675
|
|
|
|
|
|
|
|
|
| |
a description of how to add debug information using DWARF and
DIBuilder to the language.
Thanks to David Blaikie for his assistance with this tutorial.
llvm-svn: 223671
|
|
|
|
| |
llvm-svn: 223670
|
|
|
|
| |
llvm-svn: 223188
|
|
|
|
| |
llvm-svn: 220962
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this a DataLayoutPass can be reused for multiple modules.
Once we have doInitialization/doFinalization, it doesn't seem necessary to pass
a Module to the constructor.
Overall this change seems in line with the idea of making DataLayout a required
part of Module. With it the only way of having a DataLayout used is to add it
to the Module.
llvm-svn: 217548
|
|
|
|
|
|
| |
Replaced link component 'jit' with 'mcjit'.
llvm-svn: 217032
|
|
|
|
|
|
|
|
| |
Approved by Jim Grosbach, Lang Hames, Rafael Espindola.
This reinstates commits r215111, 215115, 215116, 215117, 215136.
llvm-svn: 216982
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 215967
|
|
|
|
|
|
|
|
|
|
|
| |
be deleted. This will be reapplied as soon as possible and before
the 3.6 branch date at any rate.
Approved by Jim Grosbach, Lang Hames, Rafael Espindola.
This reverts commits r215111, 215115, 215116, 215117, 215136.
llvm-svn: 215154
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
to globally be controlled. Individual targets (e.g. ExceptionDemo) can
still override this by using LLVM_REQUIRE_RTTI and LLVM_REQUIRE_EH if
they need to be compiled with RTTI or exception handling respectively.
llvm-svn: 213663
|
|
|
|
| |
llvm-svn: 212920
|
|
|
|
| |
llvm-svn: 207594
|
|
|
|
| |
llvm-svn: 203089
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eventually DataLayoutPass should go away, but for now that is the only easy
way to get a DataLayout in some APIs. This patch only changes the ones that
have easy access to a Module.
One interesting issue with sometimes using DataLayoutPass and sometimes
fetching it from the Module is that we have to make sure they are equivalent.
We can get most of the way there by always constructing the pass with a Module.
In fact, the pass could be changed to point to an external DataLayout instead
of owning one to make this stricter.
Unfortunately, the C api passes a DataLayout, so it has to be up to the caller
to make sure the pass and the module are in sync.
llvm-svn: 202204
|
|
|
|
|
|
|
| |
Instead, have a DataLayoutPass that holds one. This will allow parts of LLVM
don't don't handle passes to also use DataLayout.
llvm-svn: 202168
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r201608 made llvm corretly handle private globals with MachO. r201622 fixed
a bug in it and r201624 and r201625 were changes for using private linkage,
assuming that llvm would do the right thing.
They all got reverted because r201608 introduced a crash in LTO. This patch
includes a fix for that. The issue was that TargetLoweringObjectFile now has
to be initialized before we can mangle names of private globals. This is
trivially true during the normal codegen pipeline (the asm printer does it),
but LTO has to do it manually.
llvm-svn: 201700
|
|
|
|
|
|
|
| |
Since r201608 got reverted, it is not safe to use private linkage in these cases
until it is committed back.
llvm-svn: 201688
|
|
|
|
|
|
|
| |
Now that llvm's codegen knows to use an 'l' prefix when needed, we can just
use PrivateLinkage.
llvm-svn: 201624
|
|
|
|
|
|
| |
The demo uses _Unwind_GetIP which is not available on that platform.
llvm-svn: 201261
|
|
|
|
|
|
| |
script.
llvm-svn: 199089
|
|
|
|
| |
llvm-svn: 199087
|