24a26e58ef
The flag modifications weren't picking up the old values of the
...
flags before. Save them in a temporary variable, then restore them from the
temporary after creating the new constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6520 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-02 02:10:31 +00:00
d5af63f325
Remove obsolete code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6518 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-02 00:09:00 +00:00
bba1b6df9a
Move target specific code to target files. The new MachineCodeEmitter
...
class is actually target independent!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6517 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-01 23:24:36 +00:00
63b99f91c9
Fix induction variable name clash in for loops, in finishFunction().
...
Modify new MachineOperand so that its flags match the old MachineOperand's
flags, for the flags that matter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6513 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-01 22:08:29 +00:00
f86d635e20
Fixed rewriting of branches -- they now work forward and backward.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6463 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 06:26:48 +00:00
417a7c06e8
Since malloc is no longer used, no need to free() memory.
...
Fixed BasicBlock patching by supplying correct type for the displacement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6453 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:39:37 +00:00
6607fbec94
Fix call to mmap, so that it can be used on sparc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6424 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 03:37:13 +00:00
8e5bf70dff
mmap() seems to be failing on Sparc, so just use malloc()/free() .
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6387 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-28 18:44:38 +00:00
1df4d5e668
Link in Sparc libs for the JIT, even on X86 to be able to support debugging
...
of Sparc JIT (printing out instrs) on X86. Con: this increases linking time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6361 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 21:42:05 +00:00
abb027cf41
Allow for specification of which JIT to run on the commandline.
...
`lli -march=x86' or `lli -march=sparc' will forcefully select the JIT even on a
different platform. Running lli without the -march option will select the JIT
for the platform that it's currently running on.
Pro: can test Sparc JIT (debug printing mode) on X86 -- faster to compile/link
LLVM source base to test changes.
Con: Linking lli on x86 now pulls in all the Sparc libs -> longer link time
(but X86 can bear it, right?)
In the future, perhaps this should be a ./configure option to enable/disable
target JITting...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6360 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 21:40:39 +00:00
6b2125c624
Fix typeos
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6204 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 17:53:49 +00:00
9a23122b6a
Add support for more constant expressions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6203 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 17:51:49 +00:00
44edb6bdd2
Add support for atexit function, remove support for __main function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6194 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 14:21:30 +00:00
22080f9f16
Add support for atexit handlers to the JIT, fixing 2003-05-14-AtExit.c
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6193 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 13:53:40 +00:00
1b72216a71
Fix compilation problems with previous checking *blush*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6191 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 13:27:36 +00:00
6701a8603f
Add a framework for intercepting system calls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6190 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 13:26:47 +00:00
7e527424fc
Clean up cast
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6174 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-13 20:29:17 +00:00
56adf152f6
Make sure that globals are emitted AFTER the passmanager is set up for the JIT,
...
because the globals may refer to functions that need to be compiled!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6105 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12 02:14:34 +00:00
d7916e988c
switch main LLI core execution to use an InstVisitor instead of a switch statement
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6081 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-10 21:22:39 +00:00
77113b6272
Fix testcase: SingleSource/UnitTests/2003-05-02-DependantPHI.c
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6074 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-10 20:21:16 +00:00
6125fddb52
Add support for function stubs, which allow calling functions which need to
...
have an address available, but have not yet been code generated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6059 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-09 03:30:07 +00:00
eb5a93b86b
Minor speedup by avoiding callbacks to functions already generated
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6052 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 21:44:21 +00:00
c309a7627c
Improve efficiency of JIT by having it use direct function calls instead of
...
signals to regain control from the executing code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6051 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 21:34:11 +00:00
66a8494e98
assert early instead of late for unimplemented feature
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6050 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 21:08:43 +00:00
374344c0cc
Implement varargs support for LLI!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6043 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 16:52:43 +00:00
f88b9a6397
Add a pointersize/endianness safe load routine to match the store routine
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6042 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 16:52:16 +00:00
da82ed52ac
A large number of simple changes:
...
* s/Method/Function
* Kill some obsolete (external) functions that used to be to support tracing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6041 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 16:18:31 +00:00
cdf5178f83
Add support for recording arguments passed through the ... of a varargs function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6040 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 16:06:52 +00:00
b2abb5a586
Fix bug: Jello/2003-05-07-ArgumentTest.llx
...
Also fixes yacr2/ks benchmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6017 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-07 20:31:37 +00:00
10daaa1416
Remove two fields from TargetData which are target specific.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5963 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-26 20:11:09 +00:00
7471c486c0
Only do the %ld -> %lld promotion when running a 64 bit bytecode on a 32 bit host
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5942 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 18:28:44 +00:00
c8cff9e643
Add __strdup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5941 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 18:23:38 +00:00
6b73fec0ce
MAke sure that LLI properly configures align_of(double)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5938 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 06:15:05 +00:00
d5bc41a249
Fix problem where we would read 64 bits worth of pointer information, even on 32 bit targets!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5930 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 04:21:19 +00:00
2be50797a1
Fix bug where pointers were assumed to always be 64 bits in size!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5890 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:41:01 +00:00
5f311a7bce
Add memcpy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5887 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:23:16 +00:00
fd506f551d
Fix a problem with setcc instructions and pointers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5886 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 19:55:35 +00:00
957d62aa79
Implement a bunch of new external functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5885 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 19:55:24 +00:00
669b76ae87
Implement &|^ on bool values
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5884 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 19:21:00 +00:00
f87a198dcb
Add support for _IO_getc function used on linux
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5883 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 19:20:50 +00:00
d8c03bfa0a
* Implement access to external variables in LLI
...
* Implement GetElementPtr constant expressions when initializing global variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5880 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 19:01:49 +00:00
cf31784c69
We now need to link libscalar to get the switch lowering pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5874 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:43:02 +00:00
0286835685
Kill using declarations
...
Kill code for invalid operations on pointers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5856 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 21:22:33 +00:00
5bff50d1b0
Implement cast to bool
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5855 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 21:15:56 +00:00
b945e4ddae
Get rid of extraneous arguments to implementation functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5852 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 20:37:39 +00:00
09e9392d63
Add support to LLI for switch instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5851 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 20:34:47 +00:00
59ee0eeffd
Make stderr, stdout, stdin work with LLI
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5832 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-21 22:44:36 +00:00
04e2ad76f8
Fix wierd idiom
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5831 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-21 22:43:32 +00:00
9dbf6dddce
fprintf CAN take exactly 2 args
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5830 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-21 22:43:20 +00:00
f9a88b684d
Implement scanf and fix sscanf to actually endian swap the results correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5763 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 22:12:37 +00:00