Chris Lattner
6b4f386826
instead of having all conversions be handled by one case value, and then have
...
subcases inside, break things out earlier.
llvm-svn: 22546
2005-07-28 23:31:12 +00:00
Chris Lattner
941a101c38
New testcase for PR610
...
llvm-svn: 22545
2005-07-28 20:18:33 +00:00
Andrew Lenharth
0fcc129f80
support bsr, and more .td simplification
...
llvm-svn: 22543
2005-07-28 18:14:47 +00:00
Andrew Lenharth
f623af9b64
new is not a valid default anywhere, so make this pure virtual
...
llvm-svn: 22542
2005-07-28 18:13:59 +00:00
Reid Spencer
69d45ce28e
Fix a problem in getDirectoryContents where sub-directory names were
...
appended to a path string that didn't end in a slash, yielding invalid
path names.
Path contribute by Nicholas Riley.
llvm-svn: 22539
2005-07-28 16:25:57 +00:00
Andrew Lenharth
5a08d95904
get lazy JITing working. Some of shootout runs now
...
llvm-svn: 22538
2005-07-28 12:45:20 +00:00
Andrew Lenharth
02e0c80ecb
Like constants, globals on some platforms are GOT relative. This means they have to be allocated
...
near the GOT, which new doesn't do. So break out the allocate into a new function.
Also move GOT index handling into JITResolver. This lets it update the mapping when a Lazy
function is JITed. It doesn't managed the table, just the mapping. Note that this is
still non-ideal, as any function that takes a function address should also take a GOT
index, but that is a lot of changes. The relocation resolve process updates any GOT entry
it sees is out of date.
llvm-svn: 22537
2005-07-28 12:44:13 +00:00
Chris Lattner
5d02e3a15e
Eliminate an extra copy from R1 that Nate noticed on function calls that
...
have to write arguments to the stack
llvm-svn: 22536
2005-07-28 05:23:43 +00:00
Chris Lattner
a9dac1cd7a
Specify the correct number of operands
...
llvm-svn: 22535
2005-07-28 04:42:11 +00:00
Reid Spencer
30e43e3126
Run the verifier pass after all the other passes rather than before them.
...
This catches mistakes in the passes rather than just verifying the bytecode
input to llc.
llvm-svn: 22534
2005-07-28 04:00:49 +00:00
Nate Begeman
b125feb99f
Fold constant adds into loads and stores to frame indices.
...
For the following code:
double %ext(int %A.0__, long %A.1__) {
%A_addr = alloca %typedef.DComplex ; <%typedef.DComplex*> [#uses=2]
%tmp.1 = cast %typedef.DComplex* %A_addr to int* ; <int*> [#uses=1]
store int %A.0__, int* %tmp.1
%tmp.2 = getelementptr %typedef.DComplex* %A_addr, int 0, uint 1 ; <double*> [#uses=2]
%tmp.3 = cast double* %tmp.2 to long* ; <long*> [#uses=1]
store long %A.1__, long* %tmp.3
%tmp.5 = load double* %tmp.2 ; <double> [#uses=1]
ret double %tmp.5
}
We now generate:
_ext:
.LBB_ext_0: ;
stw r3, -12(r1)
stw r4, -8(r1)
stw r5, -4(r1)
lfd f1, -8(r1)
blr
Instead of:
_ext:
.LBB_ext_0: ;
stw r3, -12(r1)
addi r2, r1, -12
stw r4, 4(r2)
stw r5, 8(r2)
lfd f1, 4(r2)
blr
This also fires hundreds of times on MultiSource.
llvm-svn: 22533
2005-07-28 03:02:05 +00:00
Reid Spencer
db38cd714e
Make the verifier pass run (in debug mode) in llc. This adds a sanity check
...
to llc when debugging. Also allow other passes to be run from llc.
Patch contributed by Michael McCracken.
llvm-svn: 22532
2005-07-28 02:25:30 +00:00
Jeff Cohen
2894295331
Please do not reintroduce tabs.
...
llvm-svn: 22531
2005-07-28 02:04:44 +00:00
Nate Begeman
d230bf7242
Fix some comments
...
llvm-svn: 22530
2005-07-27 23:11:27 +00:00
Chris Lattner
b0658628c1
Fix debug info to not print out recently freed memory.
...
llvm-svn: 22529
2005-07-27 23:11:25 +00:00
Chris Lattner
1a3a4c7791
Print symbolic register names in debug dumps
...
llvm-svn: 22528
2005-07-27 23:03:38 +00:00
Reid Spencer
e82a9e2218
Fix PR608:
...
Previously the script assumed the version number was the last field, now
it assumes it is the first sequence of digits.
llvm-svn: 22527
2005-07-27 21:58:38 +00:00
Jeff Cohen
bd51ec7461
Eliminate all remaining tabs and trailing spaces.
...
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Nate Begeman
54792213a7
Implement the optimization for the Red Zone on Darwin. This removes the
...
unnecessary SP manipulation in leaf routines that don't need it.
llvm-svn: 22522
2005-07-27 06:06:29 +00:00
Chris Lattner
d9239c4ae0
fix some warnings when compiled with 32-bit hosts
...
llvm-svn: 22521
2005-07-27 05:58:01 +00:00
Jeff Cohen
81980781a1
Eliminate tabs and trailing spaces.
...
llvm-svn: 22520
2005-07-27 05:53:44 +00:00
Chris Lattner
bd89428daa
Testcase for PR607
...
llvm-svn: 22519
2005-07-26 22:08:53 +00:00
Chris Lattner
9c98c4366a
add a note about the red zone
...
llvm-svn: 22518
2005-07-26 19:07:51 +00:00
Chris Lattner
2e2dd83e7d
Wrap some long lines, fix emission of weak global variables
...
llvm-svn: 22517
2005-07-26 19:03:27 +00:00
Nate Begeman
cd48821a69
Update the PPC readme
...
llvm-svn: 22516
2005-07-26 18:59:06 +00:00
Chris Lattner
1b22c180d7
ConvertibleToGEP always returns 0, remove some old crufty code which
...
is actually dead because of this!
llvm-svn: 22515
2005-07-26 16:38:28 +00:00
Chris Lattner
dd4417e8f9
fix a warning on 32-bit systems
...
llvm-svn: 22513
2005-07-25 23:42:58 +00:00
Nate Begeman
19014db53f
Fix an optimization put in for accessing static globals. This obviates
...
the need to build PIC.
llvm-svn: 22512
2005-07-25 21:15:28 +00:00
Reid Spencer
df34319bd0
Get rid of bash specific syntax for variable dereferencing, replacing it
...
with the more crufty (but more widely available) "eval" command.
llvm-svn: 22509
2005-07-25 20:25:08 +00:00
Andrew Lenharth
14ff2e9791
fix compile error
...
llvm-svn: 22508
2005-07-23 07:46:48 +00:00
Chris Lattner
dd14de5a1e
PowerPC no-pic code is not quite ready for prime-time
...
llvm-svn: 22507
2005-07-22 22:58:34 +00:00
Misha Brukman
d487149ded
No, really, it's an Alpha! And you probably thought it was a PowerPC.
...
llvm-svn: 22506
2005-07-22 22:43:40 +00:00
Andrew Lenharth
b6f81cea2f
Handle more imm forms, and load small negative i32 constants without hitting memory (should do the same for arbitrary zero extended small negative constants)
...
llvm-svn: 22505
2005-07-22 22:24:01 +00:00
Andrew Lenharth
c87d7f8593
I know PowerPC wishes it could be alpha, but it cannot. so there
...
llvm-svn: 22504
2005-07-22 22:00:24 +00:00
Andrew Lenharth
3f4c4133e5
make sure we always handle small negatives well
...
llvm-svn: 22503
2005-07-22 21:53:35 +00:00
Andrew Lenharth
5732bc768f
finally found the gcc defined constants
...
llvm-svn: 22502
2005-07-22 21:00:30 +00:00
Andrew Lenharth
b77c3f2f18
Alpha has JIT
...
llvm-svn: 22501
2005-07-22 20:54:01 +00:00
Andrew Lenharth
ba955f96e3
Alpha JIT (beta)
...
llvm-svn: 22500
2005-07-22 20:52:16 +00:00
Andrew Lenharth
653f21b2cd
simpilfy instruction encoding (and make the lines way shorter, aka Misha happification)
...
llvm-svn: 22499
2005-07-22 20:50:29 +00:00
Andrew Lenharth
0e1c0e7c79
update interface
...
llvm-svn: 22498
2005-07-22 20:49:37 +00:00
Andrew Lenharth
8a56432457
the JIT memory manager will construct a GOT if you want it too. Also, it places the constants in the allocated memory, rather than a malloc area
...
llvm-svn: 22497
2005-07-22 20:48:12 +00:00
Andrew Lenharth
8fc535e9bd
allow constants to be relocated like GV (necessary for alpha, as constants are relocated with globals, not with .text), and allow targets to have a GOT managed for them
...
llvm-svn: 22496
2005-07-22 20:46:42 +00:00
Chris Lattner
df5e211e12
new testcase for PR602
...
llvm-svn: 22495
2005-07-21 21:55:08 +00:00
Nate Begeman
7259cc60c4
Support building non-PIC
...
Remove the LoadHiAddr pseudo-instruction.
Optimization of stores to and loads from statics.
Force JIT to use new non-PIC codepaths.
llvm-svn: 22494
2005-07-21 20:44:43 +00:00
Chris Lattner
1766305e60
revert to using 4-byte alignment for doubles, as specified by the ABI
...
llvm-svn: 22493
2005-07-21 19:17:18 +00:00
Chris Lattner
d19bed2fc0
llvm.sqrt somehow escaped documentation.
...
llvm-svn: 22490
2005-07-21 01:29:16 +00:00
Nate Begeman
95421ab212
Support assembling fsqrt on darwin. This will be implemented better when
...
PowerPC gets subtarget support up.
llvm-svn: 22489
2005-07-21 01:25:49 +00:00
Chris Lattner
408aab3fd9
If errno doesn't matter (e.g. in -ffast-math scenarios), sqrt* should be
...
compiled to llvm.sqrt.
llvm-svn: 22488
2005-07-21 01:09:27 +00:00
Nate Begeman
ae843fcefe
Generate mfocrf when targeting g5. Generate fsqrt/fsqrts when targetin g5.
...
8-byte align doubles.
llvm-svn: 22486
2005-07-20 22:42:00 +00:00
Misha Brukman
9c80f41fe7
* "GNU Compiler Collection's gcc tool" is redundant
...
* Made bullet points start with a verb and lowercase, since they are not
complete sentences
* Cleaned up grammar, removed extraneous verbosity
llvm-svn: 22485
2005-07-20 21:06:37 +00:00