| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of label ID's. This cleans up and regularizes a bunch
of code and makes way for future progress.
Unfortunately, this pointed out to me that JITDwarfEmitter.cpp
is largely copy and paste from DwarfException/MachineModuleInfo
and other places. This is very sad and disturbing. :(
One major change here is that TidyLandingPads moved from being
called in DwarfException::BeginFunction to being called in
DwarfException::EndFunction. There should not be any
functionality change from doing this, but I'm not an EH expert.
llvm-svn: 98459
|
|
|
|
|
|
| |
are inside the function by the target at the point of use.
llvm-svn: 98255
|
|
|
|
|
|
|
| |
and add a FIXME about how we are eventually going to zap this
lookup table once mc world domination is complete.
llvm-svn: 98031
|
|
|
|
|
|
|
|
|
| |
just count references to it from JIT output to decide when to destroy it. This
patch waits to destroy the JIT's memory of a stub until the Function it refers
to is destroyed. External function stubs and GVIndirectSyms aren't destroyed
until the JIT itself is.
llvm-svn: 97737
|
|
|
|
|
|
| |
the set.
llvm-svn: 97720
|
|
|
|
|
|
|
| |
destroyed, it could leave stubs in the StubToResolverMap, which would confuse
the lookup for subsequent lazy compilations.
llvm-svn: 97698
|
|
|
|
| |
llvm-svn: 97608
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
|
|
| |
finished.
llvm-svn: 96304
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
|
|
| |
Patch by Shivram K!
llvm-svn: 96037
|
|
|
|
|
|
|
|
|
|
| |
the global TheJIT and TheJITResolver variables. Lazy compilation is supported
by a global map from a stub address to the JITResolver that knows how to
compile it.
Patch by Olivier Meurant!
llvm-svn: 95837
|
|
|
|
| |
llvm-svn: 95781
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 94746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
jump table entries.
llvm-svn: 94505
|
|
|
|
|
|
|
|
|
| |
variables.
JITInfo::getPICJumpTableEntry can probably be removed now, but I don't plan to do
this.
llvm-svn: 94501
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. MachineJumpTableInfo is now created lazily for a function the first time
it actually makes a jump table instead of for every function.
2. The encoding of jump table entries is now described by the
MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the
TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
throughout the compiler that "knows" that jump table entries are always
32-bits in pic mode (for example).
3. The size and alignment of jump table entries is now calculated based on
their kind, instead of at machinefunction creation time.
Future work includes using the EntryKind in more places in the compiler,
eliminating other logic that "knows" the layout of jump tables in various
situations.
llvm-svn: 94470
|
|
|
|
| |
llvm-svn: 94378
|
|
|
|
|
|
|
| |
DebugLocTuple. Also use an AssertingVH to ensure that MDNodes aren't
destroyed while the FilenameCache is using them.
llvm-svn: 94245
|
|
|
|
|
|
|
|
|
|
|
| |
missing ones are libsupport, libsystem and libvmcore. libvmcore is
currently blocked on bugpoint, which uses EH. Once it stops using
EH, we can switch it off.
This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.
llvm-svn: 94164
|
|
|
|
| |
llvm-svn: 93864
|
|
|
|
| |
llvm-svn: 93630
|
|
|
|
|
|
| |
integer type is used.
llvm-svn: 93509
|
|
|
|
|
|
|
|
| |
boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for."
Patch by James Y Knight!
llvm-svn: 93079
|
|
|
|
| |
llvm-svn: 92771
|
|
|
|
| |
llvm-svn: 92760
|
|
|
|
|
|
| |
dereference the type pointer.
llvm-svn: 92726
|
|
|
|
| |
llvm-svn: 92673
|
|
|
|
| |
llvm-svn: 92621
|
|
|
|
| |
llvm-svn: 92618
|
|
|
|
| |
llvm-svn: 92616
|
|
|
|
| |
llvm-svn: 92562
|
|
|
|
| |
llvm-svn: 92561
|
|
|
|
| |
llvm-svn: 92560
|
|
|
|
| |
llvm-svn: 92191
|
|
|
|
|
|
|
|
|
|
|
| |
they're available_externally broke VMKit, which was relying on the fact that
functions would only be materialized when they were first called. We'll have
to wait for http://llvm.org/PR5737 to really fix this.
I also added a test for one of the F->isDeclaration() calls which wasn't
covered by anything else in the test suite.
llvm-svn: 91943
|
|
|
|
|
|
|
|
|
| |
argument to runJITOnFunction(), which caused a null pointer dereference at
every call.
Patch by Gianluca Guida!
llvm-svn: 91939
|
|
|
|
| |
llvm-svn: 91626
|
|
|
|
|
|
|
|
|
| |
remove start/finishGVStub and the BufferState helper class from the
MachineCodeEmitter interface. It has the side-effect of not setting the
indirect global writable and then executable on ARM, but that shouldn't be
necessary.
llvm-svn: 91464
|
|
|
|
|
|
|
|
| |
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.
llvm-svn: 91421
|
|
|
|
| |
llvm-svn: 91377
|
|
|
|
|
|
|
| |
nlewycky's fix to add -rdynamic so the JIT can look symbols up in Linux builds
of the JITTests binary.
llvm-svn: 91250
|
|
|
|
|
|
| |
defined in the test, and I don't have time tonight to figure it out.
llvm-svn: 91209
|
|
|
|
|
|
| |
supported by emitGlobals, but I don't have a test case for that.
llvm-svn: 91208
|
|
|
|
|
|
|
| |
This code was crashing always with oprofile enabled, since it tried to create a StringRef
out of NULL, which run strlen on NULL.
llvm-svn: 91046
|
|
|
|
| |
llvm-svn: 90813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
way for each TargetJITInfo subclass to allocate its own stubs. This
means stubs aren't as exactly-sized anymore, but it lets us get rid of
TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC
support the eager JIT, fixing http://llvm.org/PR4816.
* Rename the JITEmitter's stub creation functions to describe the kind
of stub they create. So far, all of them create lazy-compilation
stubs, but they sometimes get used when far-call stubs are needed.
Fixing http://llvm.org/PR5201 will involve fixing this.
llvm-svn: 89715
|