Evan Cheng
366cf29ca5
More debug output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58868 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07 22:30:29 +00:00
Evan Cheng
47c01a0099
Jump tables may be emitted by target.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58835 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07 09:02:17 +00:00
Evan Cheng
eb5d95a22d
Improve JIT debugging outputs format consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58807 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06 17:46:04 +00:00
Evan Cheng
6863fb033a
Need a \n.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58788 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-06 01:18:29 +00:00
Evan Cheng
a7916f586d
Undo 58778 but makes the binary dump prettier.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58782 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 23:44:08 +00:00
Evan Cheng
5e136c0f37
Remove debug output that's not really useful.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58778 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 23:21:11 +00:00
Evan Cheng
c96a8e7df1
Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X
...
indirect gv reference. Please don't call it lazy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58746 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 01:50:32 +00:00
Evan Cheng
4e20c5c30b
Debugging output tweak.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58737 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 00:22:28 +00:00
Evan Cheng
b0b53491ef
For some targets, it's not possible to place GVs in the same memory buffer as the MachineCodeEmitter allocated memory. Code and data has different read / write / execution privilege requirements.
...
This is a short term workaround. The current solution is for the JIT memory manager to manage code and data memory separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58688 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 09:30:48 +00:00
Evan Cheng
89687e3e4a
80 col violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58684 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 06:10:31 +00:00
Evan Cheng
9200605cd5
Silence a compiler warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58598 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-03 07:14:02 +00:00
Jim Grosbach
8fe95356dd
Revert errant deletion. The target needs to be able to specify that it doesn't want the generic constant pool to be emitted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58475 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-30 23:44:39 +00:00
Evan Cheng
ef5784ef9b
Let target resolve some relocation results.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58407 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-29 23:54:46 +00:00
Jim Grosbach
bc6d876adf
Support for constant islands in the ARM JIT.
...
Since the ARM constant pool handling supercedes the standard LLVM constant
pool entirely, the JIT emitter does not allocate space for the constants,
nor initialize the memory. The constant pool is considered part of the
instruction stream.
Likewise, when resolving relocations into the constant pool, a hook into
the target back end is used to resolve from the constant ID# to the
address where the constant is stored.
For now, the support in the ARM emitter is limited to 32-bit integer. Future
patches will expand this to the full range of constants necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58338 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-28 18:25:49 +00:00
Nicolas Geoffray
46fa139e26
Support for allocation of TLS variables in the JIT. Allocation of a global
...
variable is moved to the execution engine. The JIT calls the TargetJITInfo
to allocate thread local storage. Currently, only linux/x86 knows how to
allocate thread local global variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58142 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 15:41:43 +00:00
Oscar Fuentes
5c5b6dfd0e
CMake: Turned some libraries into partially linked objects. Corrected
...
names of LLVMCore and ARMCodeGen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57943 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22 02:51:53 +00:00
Nuno Lopes
cef7527a85
fix a tricky bug in the JIT global variable emitter, that was triggered when JITing a variable independently of a function. This lead to sharing memory memory between functions and GVs thus changing the value of a GV could change the code in execution. more details on the ML.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57900 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 11:42:16 +00:00
Nuno Lopes
c8ed902298
little optimization: reuse getPointerToGlobalIfAvailable(CGV) value in emitGlobals()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57484 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-14 10:04:52 +00:00
Mon P Wang
77fcca845e
Revert r57340 move guard mutex in getPointerToFunction as this can cause
...
deadlock issues with java
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57356 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-10 18:07:10 +00:00
Mon P Wang
1c341c8462
Moved guard mutex upwards to guard materializing a function
...
in getPointerToFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-10 01:47:42 +00:00
Dale Johannesen
23a98551ab
Add a "loses information" return value to APFloat::convert
...
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-09 23:00:39 +00:00
Dale Johannesen
7111b02c73
Rename APFloat::convertToAPInt to bitcastToAPInt to
...
make it clearer what the function does. No functional
change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57325 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-09 18:53:47 +00:00
Duncan Sands
4520dd2b7b
Add <cstdio> include where needed by gcc-4.4.
...
Patch by Samuel Tardieu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57291 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-08 07:23:46 +00:00
Daniel Dunbar
489032a2b7
Unbreak build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 17:11:57 +00:00
Jim Grosbach
cce6c297c5
On Darwin ARM, memory needs special handling to do JIT. This patch expands
...
this handling to work properly for modifying stub functions, relocations
back to entry points after JIT compilation, etc..
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 16:17:20 +00:00
Dan Gohman
d735b8019b
Switch the MachineOperand accessors back to the short names like
...
isReg, etc., from isRegister, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:45:36 +00:00
Nicolas Geoffray
dcb31e1790
Acquire the lock only when necessary. More precisely, do not acquire
...
the lock when calling a method which may materialize the llvm::Function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 07:27:08 +00:00
Evan Cheng
18314dc741
Add runStaticConstructorsDestructors which runs ctors / dtors of a single module. Patch by David Chisnall.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56849 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-30 15:51:21 +00:00
Devang Patel
0598866c05
Large mechanical patch.
...
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-25 21:00:45 +00:00
Evan Cheng
446531e7bb
Add DisableGVCompilation which forces the JIT to assert when it tries to allocate space for a GlobalVariable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56557 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-24 16:25:55 +00:00
Devang Patel
eaf42abab6
s/ParameterAttributes/Attributes/g
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-23 23:03:40 +00:00
Oscar Fuentes
3d01fc7de8
Initial support for the CMake build system.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 01:08:49 +00:00
Evan Cheng
bc4707a255
Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-18 07:54:21 +00:00
Anton Korobeynikov
19e861a4ff
Make safer variant of alias resolution routine to be default
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56005 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-09 20:05:04 +00:00
Evan Cheng
252ddfbdbc
MMI may be null.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55626 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-02 08:14:01 +00:00
Nicolas Geoffray
d046fc61ac
Add support for JIT exceptions on Darwin. Since we're dealing with libgcc,
...
whose darwin code was written after the ability to dynamically register frames,
we need to do special hacks to make things work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55507 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-28 22:34:49 +00:00
Dan Gohman
b6e3d6ce70
Avoid a warning about isTargetNullPtr being unused in release builds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55350 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-26 01:38:29 +00:00
Evan Cheng
a044dfcb5a
Get rid of a couple of dynamic_cast.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55022 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-20 00:28:12 +00:00
Nicolas Geoffray
2d450ebe18
Update the JIT exception writer to better mimic the codegen exception writer.
...
Also skip indirect encoding for platforms that ask for one: we direclty
write an address, not a pointer to the address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54987 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-19 14:48:14 +00:00
Nicolas Geoffray
a7ec87cd07
Register the frame register function when allocating the JIT,
...
so that lli works out of the box with -enable-eh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54920 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-18 14:53:56 +00:00
Anton Korobeynikov
ffe31d7bf1
Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. This makes JIT asmprinter-free.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54843 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-16 12:57:46 +00:00
Dale Johannesen
50dd1d0280
Some fixes for x86-64 JIT. Make it use small code
...
model, except for external calls; this makes
addressing modes PC-relative. Incomplete.
The assertion at the top of Emitter::runOnMachineFunction
was obviously bogus (always true) so I removed it.
If someone knows what the correct test should be to cover
all the various targets, please fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54656 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-11 23:46:25 +00:00
Gordon Henriksen
c13c4d6a1b
Fix the LLVMCreateJITCompiler C binding.
...
Evan broke it in r54523 by adding a parameter in the implementation without
updating the header correspondingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54555 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-08 20:49:28 +00:00
Evan Cheng
502f20b17e
Add new parameter Fast to createJIT to enable the fast codegen path.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54523 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-08 08:11:34 +00:00
Dale Johannesen
dd947ea3c5
Rewrite JIT handling of GlobalVariables so they
...
are allocated in the same buffer as the code,
jump tables, etc.
The default JIT memory manager does not handle buffer
overflow well. I didn't introduce this and I'm not
attempting to fix it here, but it is more likely to
be hit now since we're putting more stuff in the
buffer. This affects one test that I know of so far,
MultiSource/Benchmarks/NPB-serial/is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54442 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-07 01:30:15 +00:00
Dan Gohman
1eac4e0844
Use strcpy instead of sprintf here. This avoids a GCC 4.3 format-string
...
warning. There wasn't actually a problem here, because the contents of
the string are known.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54385 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-05 23:36:35 +00:00
Dan Gohman
8f613f30a7
Trim #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54350 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-05 15:32:23 +00:00
Evan Cheng
60b75f462e
Fix for PR2578. Do not split off a block whose size is less than FreeRangeHeader::getMinBlockSize(). Patch by Damien.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54152 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-29 07:38:32 +00:00
Chris Lattner
663ceeb948
Add a new hidden option to the interpreter to cause it to print
...
out every volatile load and store. This is useful for tracking
down insane volatile memory bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53241 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 17:25:49 +00:00
Dan Gohman
eccfb6a165
Use empty() instead of size().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53178 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 17:52:43 +00:00