Chris Lattner [Tue, 2 Aug 2005 19:15:30 +0000 (19:15 +0000)]
Consolidate all of the various log2 computing functions into MathExtras.h.
Also, provide accelerated implementations when building with GCC.
Patch contributed by Jim Laskey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22591
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 19:14:25 +0000 (19:14 +0000)]
Update a doc, patch contributed by Jim Laskey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22590
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 19:07:49 +0000 (19:07 +0000)]
add a pass name to make debugging dumps nicer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22588
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 2 Aug 2005 16:04:59 +0000 (16:04 +0000)]
Fix grammar: it's == "it is".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22587
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 03:31:14 +0000 (03:31 +0000)]
Like the comment says, do not insert cast instructions before phi nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22586
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 2 Aug 2005 03:26:32 +0000 (03:26 +0000)]
It's dangerous coding on Mondays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22585
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 03:24:05 +0000 (03:24 +0000)]
This code was very close, but not quite right. It did not take into
consideration the case where a reference in an unreachable block could
occur. This fixes Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll,
something I ran into while bugpoint'ing another pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22584
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 03:23:03 +0000 (03:23 +0000)]
New testcase that caused simplifycfg to crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22583
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 2 Aug 2005 03:04:47 +0000 (03:04 +0000)]
Implement SetInterruptFunction for Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22582
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 02:52:02 +0000 (02:52 +0000)]
add a comment, make a check more lenient
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22581
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 02:44:31 +0000 (02:44 +0000)]
Simplify for loop, clear a per-loop map after processing each loop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22580
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 02:16:17 +0000 (02:16 +0000)]
When the user hits ctrl-c, bugpoint should attempt to stop reduction as
quickly as possible and output what it has so far. If they hit it twice,
bugpoint is killed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22579
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 02:14:22 +0000 (02:14 +0000)]
Implement sys::SetInterruptFunction on Unix, stub it on win32 so that the
build will not fail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22578
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 02:13:42 +0000 (02:13 +0000)]
add a new function proto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22577
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 01:32:29 +0000 (01:32 +0000)]
Add a comment
Make LSR ignore GEP's that have loop variant base values, as we currently
cannot codegen them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22576
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 00:41:11 +0000 (00:41 +0000)]
Fix an iterator invalidation problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22575
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 00:11:53 +0000 (00:11 +0000)]
200.sixtrack prints FP numbers with a very strange notation that uses D
instead of E for exponentials (e.g. 1.234D-43). Add support for this
notation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22574
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Aug 2005 00:10:52 +0000 (00:10 +0000)]
make is the standard name, not gmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22573
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Aug 2005 20:38:31 +0000 (20:38 +0000)]
Mark these as V9 specific
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22572
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 1 Aug 2005 20:06:01 +0000 (20:06 +0000)]
update function codes to reflect /su flags that have been added since this was written
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22571
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Aug 2005 18:16:37 +0000 (18:16 +0000)]
Fix casts from long to sbyte on ppc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22570
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 1 Aug 2005 17:47:28 +0000 (17:47 +0000)]
use llabs not abs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22569
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 1 Aug 2005 17:35:40 +0000 (17:35 +0000)]
one cannot allocate a global, until one is done initializing the global pointers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22568
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Aug 2005 17:10:50 +0000 (17:10 +0000)]
temporarily fail these two tests until LSR evolves to support them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22567
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Aug 2005 16:52:50 +0000 (16:52 +0000)]
ConstantInt::get only works for arguments < 128.
SimplifyLibCalls probably has to be audited to make sure it does not make
this mistake elsewhere. Also, if this code knows that the type will be
unsigned, obviously one arm of this is dead.
Reid, can you take a look into this further?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22566
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 30 Jul 2005 18:33:25 +0000 (18:33 +0000)]
Keep tabs and trailing spaces out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22565
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 30 Jul 2005 18:22:27 +0000 (18:22 +0000)]
Fix VC++ build problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22564
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Jul 2005 01:40:57 +0000 (01:40 +0000)]
fix float->long conversions on x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22563
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Jul 2005 01:33:38 +0000 (01:33 +0000)]
this tests every fp-to-integer conversion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22562
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Jul 2005 00:43:00 +0000 (00:43 +0000)]
fix a typeo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22561
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 30 Jul 2005 00:21:31 +0000 (00:21 +0000)]
Ack, typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22560
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Jul 2005 00:17:52 +0000 (00:17 +0000)]
Change the fp to integer code to not perform 2-byte stores followed by
1 byte loads and other operations. This is bad for store-forwarding on
common CPUs. We now do this:
fnstcw WORD PTR [%ESP]
mov %AX, WORD PTR [%ESP]
instead of:
fnstcw WORD PTR [%ESP]
mov %AL, BYTE PTR [%ESP + 1]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22559
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 30 Jul 2005 00:15:07 +0000 (00:15 +0000)]
Commit a new LoopStrengthReduce pass that can use scalar evolutions and
target data to decide which loop induction variables to strength reduce
and how to do so. This work is mostly by Chris Lattner, with tweaks by
me to get it working on some of MultiSource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22558
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 30 Jul 2005 00:12:19 +0000 (00:12 +0000)]
Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so that
other passes may use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22557
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Jul 2005 00:05:54 +0000 (00:05 +0000)]
Use a custom expander for all FP to int conversions, as the X86 only has
FP-to-int-in-memory: this exposes the load from the stored slot to the
selection dag, allowing it to be folded into other operaions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22556
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Jul 2005 00:04:12 +0000 (00:04 +0000)]
Allow targets to have custom expanders for FP_TO_*INT conversions where
both the src and dest values are legal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22555
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 29 Jul 2005 23:40:16 +0000 (23:40 +0000)]
support near allocations for the JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22554
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 29 Jul 2005 23:32:02 +0000 (23:32 +0000)]
turn off GOT on archs that didn't use it (not that it appeard to harm them much with it on)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22553
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Jul 2005 01:00:29 +0000 (01:00 +0000)]
Implement a FIXME: move a bunch of cruft for handling FP_TO_*INT operations
that the X86 does not support to the legalizer. This allows it to be better
optimized, etc, and will help with SSE support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22551
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Jul 2005 00:54:34 +0000 (00:54 +0000)]
Don't forget to diddle with the control word when performing an FISTP64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22550
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Jul 2005 00:40:01 +0000 (00:40 +0000)]
Use a custom expander to compile this:
long %test4(double %X) {
%tmp.1 = cast double %X to long ; <long> [#uses=1]
ret long %tmp.1
}
to this:
_test4:
sub %ESP, 12
fld QWORD PTR [%ESP + 16]
fistp QWORD PTR [%ESP]
mov %EDX, DWORD PTR [%ESP + 4]
mov %EAX, DWORD PTR [%ESP]
add %ESP, 12
ret
instead of this:
_test4:
sub %ESP, 28
fld QWORD PTR [%ESP + 32]
fstp QWORD PTR [%ESP]
call ___fixdfdi
add %ESP, 28
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22549
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Jul 2005 00:33:32 +0000 (00:33 +0000)]
Allow targets to define custom expanders for FP_TO_*INT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22548
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Jul 2005 00:11:56 +0000 (00:11 +0000)]
allow a target to request that unknown FP_TO_*INT conversion be promoted to
a larger integer destination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22547
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Jul 2005 23:31:12 +0000 (23:31 +0000)]
instead of having all conversions be handled by one case value, and then have
subcases inside, break things out earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22546
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Jul 2005 20:18:33 +0000 (20:18 +0000)]
New testcase for PR610
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22545
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 28 Jul 2005 18:14:47 +0000 (18:14 +0000)]
support bsr, and more .td simplification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22543
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 28 Jul 2005 18:13:59 +0000 (18:13 +0000)]
new is not a valid default anywhere, so make this pure virtual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22542
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 28 Jul 2005 16:25:57 +0000 (16:25 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22539
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 28 Jul 2005 12:45:20 +0000 (12:45 +0000)]
get lazy JITing working. Some of shootout runs now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22538
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 28 Jul 2005 12:44:13 +0000 (12:44 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22537
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Jul 2005 05:23:43 +0000 (05:23 +0000)]
Eliminate an extra copy from R1 that Nate noticed on function calls that
have to write arguments to the stack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22536
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Jul 2005 04:42:11 +0000 (04:42 +0000)]
Specify the correct number of operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22535
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 28 Jul 2005 04:00:49 +0000 (04:00 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22534
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 28 Jul 2005 03:02:05 +0000 (03:02 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22533
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 28 Jul 2005 02:25:30 +0000 (02:25 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22532
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 28 Jul 2005 02:04:44 +0000 (02:04 +0000)]
Please do not reintroduce tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22531
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 27 Jul 2005 23:11:27 +0000 (23:11 +0000)]
Fix some comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22530
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 27 Jul 2005 23:11:25 +0000 (23:11 +0000)]
Fix debug info to not print out recently freed memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22529
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 27 Jul 2005 23:03:38 +0000 (23:03 +0000)]
Print symbolic register names in debug dumps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22528
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 27 Jul 2005 21:58:38 +0000 (21:58 +0000)]
Fix PR608:
Previously the script assumed the version number was the last field, now
it assumes it is the first sequence of digits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22527
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 27 Jul 2005 06:12:32 +0000 (06:12 +0000)]
Eliminate all remaining tabs and trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 27 Jul 2005 06:06:29 +0000 (06:06 +0000)]
Implement the optimization for the Red Zone on Darwin. This removes the
unnecessary SP manipulation in leaf routines that don't need it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22522
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 27 Jul 2005 05:58:01 +0000 (05:58 +0000)]
fix some warnings when compiled with 32-bit hosts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22521
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 27 Jul 2005 05:53:44 +0000 (05:53 +0000)]
Eliminate tabs and trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22520
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Jul 2005 22:08:53 +0000 (22:08 +0000)]
Testcase for PR607
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22519
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Jul 2005 19:07:51 +0000 (19:07 +0000)]
add a note about the red zone
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22518
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Jul 2005 19:03:27 +0000 (19:03 +0000)]
Wrap some long lines, fix emission of weak global variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22517
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 26 Jul 2005 18:59:06 +0000 (18:59 +0000)]
Update the PPC readme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22516
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Jul 2005 16:38:28 +0000 (16:38 +0000)]
ConvertibleToGEP always returns 0, remove some old crufty code which
is actually dead because of this!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22515
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Jul 2005 23:42:58 +0000 (23:42 +0000)]
fix a warning on 32-bit systems
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22513
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 25 Jul 2005 21:15:28 +0000 (21:15 +0000)]
Fix an optimization put in for accessing static globals. This obviates
the need to build PIC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22512
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 25 Jul 2005 20:25:08 +0000 (20:25 +0000)]
Get rid of bash specific syntax for variable dereferencing, replacing it
with the more crufty (but more widely available) "eval" command.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22509
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 23 Jul 2005 07:46:48 +0000 (07:46 +0000)]
fix compile error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22508
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 22 Jul 2005 22:58:34 +0000 (22:58 +0000)]
PowerPC no-pic code is not quite ready for prime-time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22507
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 22 Jul 2005 22:43:40 +0000 (22:43 +0000)]
No, really, it's an Alpha! And you probably thought it was a PowerPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22506
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 22:24:01 +0000 (22:24 +0000)]
Handle more imm forms, and load small negative i32 constants without hitting memory (should do the same for arbitrary zero extended small negative constants)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22505
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 22:00:24 +0000 (22:00 +0000)]
I know PowerPC wishes it could be alpha, but it cannot. so there
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22504
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 21:53:35 +0000 (21:53 +0000)]
make sure we always handle small negatives well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22503
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 21:00:30 +0000 (21:00 +0000)]
finally found the gcc defined constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22502
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 20:54:01 +0000 (20:54 +0000)]
Alpha has JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22501
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 20:52:16 +0000 (20:52 +0000)]
Alpha JIT (beta)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22500
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 20:50:29 +0000 (20:50 +0000)]
simpilfy instruction encoding (and make the lines way shorter, aka Misha happification)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22499
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 20:49:37 +0000 (20:49 +0000)]
update interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22498
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 20:48:12 +0000 (20:48 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22497
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 22 Jul 2005 20:46:42 +0000 (20:46 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22496
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Jul 2005 21:55:08 +0000 (21:55 +0000)]
new testcase for PR602
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22495
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 21 Jul 2005 20:44:43 +0000 (20:44 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22494
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Jul 2005 19:17:18 +0000 (19:17 +0000)]
revert to using 4-byte alignment for doubles, as specified by the ABI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22493
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Jul 2005 01:29:16 +0000 (01:29 +0000)]
llvm.sqrt somehow escaped documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22490
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 21 Jul 2005 01:25:49 +0000 (01:25 +0000)]
Support assembling fsqrt on darwin. This will be implemented better when
PowerPC gets subtarget support up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22489
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Jul 2005 01:09:27 +0000 (01:09 +0000)]
If errno doesn't matter (e.g. in -ffast-math scenarios), sqrt* should be
compiled to llvm.sqrt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22488
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 20 Jul 2005 22:42:00 +0000 (22:42 +0000)]
Generate mfocrf when targeting g5. Generate fsqrt/fsqrts when targetin g5.
8-byte align doubles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22486
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 20 Jul 2005 21:06:37 +0000 (21:06 +0000)]
* "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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22485
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 20 Jul 2005 19:12:00 +0000 (19:12 +0000)]
Allow this to pass on non-linux systems as well, such as darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22484
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 20 Jul 2005 18:49:28 +0000 (18:49 +0000)]
Do not let MaskedValueIsZero consider undef to be zero, for reasons
explained in the comment.
This fixes UnitTests/2003-09-18-BitFieldTest on darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22483
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 20 Jul 2005 16:29:20 +0000 (16:29 +0000)]
count the number of relocations performed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22480
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 20 Jul 2005 03:56:48 +0000 (03:56 +0000)]
set the target triple so that we don't fail due to X86 abi issues
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22479
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 19 Jul 2005 16:51:05 +0000 (16:51 +0000)]
Integrate SelectFPExpr into SelectExpr. This gets PPC32 closer to being
automatically generated from a target description.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22470
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 19 Jul 2005 16:50:03 +0000 (16:50 +0000)]
Remove unnecessary FP_EXTEND. This causes worse codegen for SSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22469
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 19 Jul 2005 04:52:44 +0000 (04:52 +0000)]
For: memory operations -> stores
This is the first incremental patch to implement this feature. It adds no
functionality to LLVM but setup up the information needed from targets in
order to implement the optimization correctly. Each target needs to specify
the maximum number of store operations for conversion of the llvm.memset,
llvm.memcpy, and llvm.memmove intrinsics into a sequence of store operations.
The limit needs to be chosen at the threshold of performance for such an
optimization (generally smallish). The target also needs to specify whether
the target can support unaligned stores for multi-byte store operations.
This helps ensure the optimization doesn't generate code that will trap on
an alignment errors.
More patches to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22468
91177308-0d34-0410-b5e6-
96231b3b80d8