| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
As an ExecutionEngine class function, its definition
really belongs in ExecutionEngine.cpp, not JIT.cpp.
llvm-svn: 131320
|
|
|
|
|
|
|
|
| |
In particular, into EngineBuilder. This should only impact
the private API between the EE and EB classes, not external
clients, since JITCtor and MCJITCtor are both protected members.
llvm-svn: 131317
|
|
|
|
|
|
| |
Please ensure the build is clean and tests are passing when recommitting.
llvm-svn: 131044
|
|
|
|
|
|
|
| |
As an ExecutionEngine class function, its definition
really belongs in ExecutionEngine.cpp, not JIT.cpp.
llvm-svn: 131027
|
|
|
|
|
|
|
|
| |
In particular, into EngineBuilder. This should only impact
the private API between the EE and EB classes, not external
clients, since JITCtor and MCJITCtor are both protected members.
llvm-svn: 131026
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a bit more sinister as the memset doesn't do what the constructor does.
There seems to be a cleaner solution than a cast here though, instead we
can point the memset destination into the union its actually trying to
clear.
An alternative is to point to the Untyped member of this union. Review
appreciated, and if that is cleaner I'm happy to switch. All of these
should be functionally equivalent to the original code.
llvm-svn: 130395
|
|
|
|
|
|
|
|
|
|
|
|
| |
mean that it has to be ConstantArray of ConstantStruct. We might have
ConstantAggregateZero, at either level, so don't crash on that.
Also, semi-deprecate the sentinal value. The linker isn't aware of sentinals so
we end up with the two lists appended, each with their "sentinals" on them.
Different parts of LLVM treated sentinals differently, so make them all just
ignore the single entry and continue on with the rest of the list.
llvm-svn: 129307
|
|
|
|
|
|
|
| |
of { i32, void ()* }. Teach the verifier to verify that, deleting copies of
checks strewn about.
llvm-svn: 129128
|
|
|
|
| |
llvm-svn: 129025
|
|
|
|
|
|
|
|
| |
Patch by Johannes Schaub!
Fixes PR8548
llvm-svn: 127047
|
|
|
|
| |
llvm-svn: 120910
|
|
|
|
| |
llvm-svn: 120298
|
|
|
|
|
|
| |
static methods that return a new APInt.
llvm-svn: 120261
|
|
|
|
| |
llvm-svn: 119508
|
|
|
|
| |
llvm-svn: 118973
|
|
|
|
| |
llvm-svn: 118958
|
|
|
|
|
|
|
| |
deregisters registered by it FDE structures allowing consecutive
JIT runs to succeed. Patch by Yuri. Fixes PR8285.
llvm-svn: 117004
|
|
|
|
|
|
| |
patch by Evzen Muller!
llvm-svn: 103876
|
|
|
|
| |
llvm-svn: 100709
|
|
|
|
|
|
| |
freeing that memory when the GV is destroyed.
llvm-svn: 99706
|
|
|
|
| |
llvm-svn: 99589
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
|
|
|
|
|
| |
llc.cpp also defined these flags, meaning that when I linked all of LLVM's
libraries into a single shared library, llc crashed on startup with duplicate
flag definitions. This patch passes them through the EngineBuilder into
JIT::selectTarget().
llvm-svn: 95390
|
|
|
|
|
|
|
|
| |
1-argument ExecutionEngine::create(Module*) ambiguous with the signature that
used to be ExecutionEngine::create(ModuleProvider*, defaulted_params). Fixed
by removing the 1-argument create(). Fixes PR6221.
llvm-svn: 95236
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.
Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.
Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
llvm-svn: 94686
|
|
|
|
|
|
| |
integer type is used.
llvm-svn: 93509
|
|
|
|
| |
llvm-svn: 92771
|
|
|
|
|
|
| |
dereference the type pointer.
llvm-svn: 92726
|
|
|
|
| |
llvm-svn: 92621
|
|
|
|
|
|
| |
and creation interfaces.
llvm-svn: 89151
|
|
|
|
| |
llvm-svn: 86606
|
|
|
|
|
|
|
| |
now correctly runs clang's test/CodeGen/indirect-goto.c. The JIT will abort
on it until someone feels compelled to implement this.
llvm-svn: 85488
|
|
|
|
|
|
|
| |
http://llvm.org/PR5184, and beef up the comments to describe what both options
do and the risks of lazy compilation in the presence of threads.
llvm-svn: 85295
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compiled.
When functions are compiled, they accumulate references in the JITResolver's
stub maps. This patch removes those references when the functions are
destroyed. It's illegal to destroy a Function when any thread may still try to
call its machine code.
This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs
and fixes a couple "do stuff inside assert()" bugs from r84522.
llvm-svn: 84975
|
|
|
|
|
|
|
| |
GlobalValue is destroyed. Function destruction still leaks machine code and
can crash on leaked stubs, but this is some progress.
llvm-svn: 83987
|
|
|
|
|
|
|
| |
mappings, which could cause errors and assert-failures. This patch fixes that,
adds a test, and refactors the global-mapping-removal code into a single place.
llvm-svn: 83678
|
|
|
|
|
|
|
| |
where the element is of a basic builtin type. For example, to get
an i8* use getInt8PtrTy.
llvm-svn: 83379
|
|
|
|
|
|
|
|
| |
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.
llvm-svn: 83297
|
|
|
|
|
|
|
|
| |
"the jit has not been linked in" if the interpreter failed.
This fixes a unit test failure.
llvm-svn: 82601
|
|
|
|
| |
llvm-svn: 82600
|
|
|
|
|
|
|
| |
really old code from when we were running sparcv9 bc files on x86
(before I ported llvm-gcc 3 to work on x86) :)
llvm-svn: 79871
|
|
|
|
| |
llvm-svn: 79870
|
|
|
|
| |
llvm-svn: 79832
|
|
|
|
| |
llvm-svn: 79823
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://llvm.org/viewvc/llvm-project?view=rev&revision=78127, I'm changing the
ExecutionEngine's global mappings to hold AssertingVH<const GlobalValue>. That
way, if unregistering a mapping fails to actually unregister it, we'll get an
assert. Running the jit nightly tests didn't uncover any actual instances of
the problem.
This also uncovered the fact that AssertingVH<const X> didn't work, so I fixed
that too.
llvm-svn: 78400
|
|
|
|
|
|
| |
address from the reverse mapping, and add a test that this works now.
llvm-svn: 78127
|
|
|
|
| |
llvm-svn: 77145
|
|
|
|
| |
llvm-svn: 76553
|