Duncan Sands
bcdbfb63dc
Rename getABITypeSize to getTypePaddedSize, as
...
suggested by Chris.
llvm-svn: 62099
2009-01-12 20:38:59 +00:00
Dan Gohman
6d6dd15fc3
Handle weak_extern in the JIT. This fixes
...
SingleSource/UnitTests/2007-04-25-weak.c in JIT mode. The test
now passes on systems which are able to produce a correct
reference output to compare with.
llvm-svn: 61674
2009-01-05 05:32:42 +00:00
Evan Cheng
caa31a82fc
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin.
...
llvm-svn: 60828
2008-12-10 02:32:19 +00:00
Evan Cheng
1264f4bc9c
Fix a bug introduced by r59265. If lazy compilation is disabled, return actual function ptr instead of ptr to stub if function is already compiled.
...
llvm-svn: 60822
2008-12-10 01:33:59 +00:00
Evan Cheng
f8ba919d76
Always emit a function pointer as a pointer to the function stub (if there is one). This makes it possible to compare function pointer values in lazy compilation mode. This fixes PR3043.
...
llvm-svn: 59265
2008-11-13 21:50:50 +00:00
Evan Cheng
b6c760349e
Change binary dump format.
...
llvm-svn: 59119
2008-11-12 08:22:43 +00:00
Evan Cheng
b9dbae83d7
Comments and indentation.
...
llvm-svn: 59007
2008-11-10 23:26:16 +00:00
Evan Cheng
e2bed5dc3b
Forgot these.
...
llvm-svn: 58952
2008-11-10 01:52:24 +00:00
Evan Cheng
7f1eececb4
Remove a InvalidateInstructionCache call with incorrect size.
...
llvm-svn: 58898
2008-11-08 08:15:39 +00:00
Evan Cheng
3d9c134136
Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr.
...
llvm-svn: 58897
2008-11-08 08:02:53 +00:00
Evan Cheng
fe6df6ae18
Rename isString -> isExternalSymbol; getString -> getExternalSymbol since these work on externsym machine relocations.
...
llvm-svn: 58895
2008-11-08 07:37:34 +00:00
Evan Cheng
8dfc67205a
More debug output.
...
llvm-svn: 58894
2008-11-08 07:22:53 +00:00
Evan Cheng
237175e1ab
More debug output.
...
llvm-svn: 58868
2008-11-07 22:30:29 +00:00
Evan Cheng
6e23b1e651
Jump tables may be emitted by target.
...
llvm-svn: 58835
2008-11-07 09:02:17 +00:00
Evan Cheng
1ea366a419
Improve JIT debugging outputs format consistency.
...
llvm-svn: 58807
2008-11-06 17:46:04 +00:00
Evan Cheng
3e727721d0
Need a \n.
...
llvm-svn: 58788
2008-11-06 01:18:29 +00:00
Evan Cheng
7390b46342
Undo 58778 but makes the binary dump prettier.
...
llvm-svn: 58782
2008-11-05 23:44:08 +00:00
Evan Cheng
575f3150cf
Remove debug output that's not really useful.
...
llvm-svn: 58778
2008-11-05 23:21:11 +00:00
Evan Cheng
2702e22b83
Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X
...
indirect gv reference. Please don't call it lazy.
llvm-svn: 58746
2008-11-05 01:50:32 +00:00
Evan Cheng
45516a94c1
Silence a compiler warning.
...
llvm-svn: 58598
2008-11-03 07:14:02 +00:00
Jim Grosbach
31e64cbf49
Revert errant deletion. The target needs to be able to specify that it doesn't want the generic constant pool to be emitted.
...
llvm-svn: 58475
2008-10-30 23:44:39 +00:00
Evan Cheng
479adf22ee
Let target resolve some relocation results.
...
llvm-svn: 58407
2008-10-29 23:54:46 +00:00
Jim Grosbach
d735f403a0
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.
llvm-svn: 58338
2008-10-28 18:25:49 +00:00
Nuno Lopes
112ac04abd
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.
...
llvm-svn: 57900
2008-10-21 11:42:16 +00:00
Jim Grosbach
a49386d8e7
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..
llvm-svn: 57013
2008-10-03 16:17:20 +00:00
Dan Gohman
30c5ce1b7d
Switch the MachineOperand accessors back to the short names like
...
isReg, etc., from isRegister, etc.
llvm-svn: 57006
2008-10-03 15:45:36 +00:00
Nicolas Geoffray
c3efec61f5
Acquire the lock only when necessary. More precisely, do not acquire
...
the lock when calling a method which may materialize the llvm::Function.
llvm-svn: 56995
2008-10-03 07:27:08 +00:00
Evan Cheng
a0459a1c5a
Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable.
...
llvm-svn: 56303
2008-09-18 07:54:21 +00:00
Anton Korobeynikov
6ad8b060d0
Make safer variant of alias resolution routine to be default
...
llvm-svn: 56005
2008-09-09 20:05:04 +00:00
Evan Cheng
15fd1af657
MMI may be null.
...
llvm-svn: 55626
2008-09-02 08:14:01 +00:00
Evan Cheng
4fa90a1d3e
Get rid of a couple of dynamic_cast.
...
llvm-svn: 55022
2008-08-20 00:28:12 +00:00
Dale Johannesen
718fcee02d
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.
llvm-svn: 54656
2008-08-11 23:46:25 +00:00
Dale Johannesen
a4de0fa539
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.
llvm-svn: 54442
2008-08-07 01:30:15 +00:00
Chris Lattner
9c5a1a7da3
Implement JIT support for global aliases, patch by David Chisnall!
...
llvm-svn: 52738
2008-06-25 20:21:35 +00:00
Chris Lattner
ef1aa7c9db
Switch the PPC backend and target-independent JIT to use the libsystem
...
InvalidateInstructionCache method instead of calling through
a hook on the JIT. This is a host feature, not a target feature.
llvm-svn: 52734
2008-06-25 17:18:44 +00:00
Anton Korobeynikov
5b04f6d658
Provide generic hooks for icache invalidation. Add PPC implementation.
...
Patch by Gary Benson!
llvm-svn: 52418
2008-06-17 17:30:05 +00:00
Nate Begeman
f924b6e0d9
Fix a backwards check in the JIT symbol table code
...
llvm-svn: 51229
2008-05-18 19:09:10 +00:00
Evan Cheng
d86d86bbdf
Disable JIT symbol table for now.
...
llvm-svn: 51152
2008-05-15 17:31:35 +00:00
Nicolas Geoffray
aaa764cf3a
Be pessimistic in computing the buffer size when aligning.
...
llvm-svn: 50008
2008-04-20 23:39:44 +00:00
Nicolas Geoffray
c80229e1c7
Cosmetic changes, as suggested by Evan. No functionality changes.
...
llvm-svn: 49993
2008-04-20 17:44:19 +00:00
Nicolas Geoffray
f005e6fa3b
Enable jitting with a known memory size.
...
llvm-svn: 49924
2008-04-18 20:59:31 +00:00
Nicolas Geoffray
1f3211af01
Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function
...
the stub will resolve.
llvm-svn: 49814
2008-04-16 20:46:05 +00:00
Chris Lattner
e7147e7478
Fix some serious logic errors that broke the jit on darwin/x86-64.
...
llvm-svn: 49606
2008-04-13 07:04:56 +00:00
Evan Cheng
37eb9de565
Add debugging code.
...
llvm-svn: 49566
2008-04-12 00:22:01 +00:00
Chris Lattner
08453a5234
Reenable JIT symbol table.
...
llvm-svn: 49548
2008-04-11 18:11:56 +00:00
Chris Lattner
4cc62604a1
disable this for now.
...
llvm-svn: 49248
2008-04-05 04:12:01 +00:00
Chris Lattner
066a1dea6c
Provide an initial cut at exposing JIT compiled symbols to performance
...
tools. This is currently only enabled on the mac, but could easily be
supported by other hosts that are interested.
llvm-svn: 49207
2008-04-04 05:51:42 +00:00
Dan Gohman
2b96ce84aa
Add explicit keywords.
...
llvm-svn: 48801
2008-03-25 22:06:05 +00:00
Chris Lattner
273b161c3e
fix 80 col violations
...
llvm-svn: 48019
2008-03-07 20:05:43 +00:00
Nicolas Geoffray
72fa78e195
Enable exception handling int JIT
...
llvm-svn: 47079
2008-02-13 18:39:37 +00:00