Evan Cheng [Sat, 24 Dec 2005 09:48:35 +0000 (09:48 +0000)]
Let the helper functions know about X86::FR32RegClass and X86::FR64RegClass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25004
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 24 Dec 2005 08:29:32 +0000 (08:29 +0000)]
All addressing modes are now exposed. The only remaining relocated forms
are for function prologue.
TODO: move external symbols over to using RelLit.
: have a pattern that matches constpool|globaladdr
: have a pattern that matches (add x imm) -> x, imm or (...) -> ..., 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25003
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 24 Dec 2005 07:34:33 +0000 (07:34 +0000)]
Unify the patterns for loads and stores. Now offset addressing should be
supported. This almost completes memory operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25002
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 24 Dec 2005 05:36:33 +0000 (05:36 +0000)]
Let's see if we can break things.
Lower GOT relative addresses to Lo and HI.
Update both ISels to select them when they can.
Saves instructions here and there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25001
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 24 Dec 2005 03:41:56 +0000 (03:41 +0000)]
move loads and stores over. Smart addr selection comming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25000
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 24 Dec 2005 01:00:15 +0000 (01:00 +0000)]
Fix one of the things in the todo file, and get a bit closer to folding
constant offsets from statics into the address arithmetic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24999
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 23 Dec 2005 22:27:56 +0000 (22:27 +0000)]
For PR625:
Don't install contents of CVS directories and don't double install when
srcdir == objdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24998
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Dec 2005 22:14:32 +0000 (22:14 +0000)]
* Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.
* Added a pseudo instruction (for each target) that represent "return void".
This is a workaround for lack of optional flag operand (return void is not
lowered so it does not have a flag operand.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24997
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Dec 2005 22:11:47 +0000 (22:11 +0000)]
* Support for hasInFlag and hasOutFlag (on instructions). Remove nameless FLAG
support which is fragile.
* Fixed a number of bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24996
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 23 Dec 2005 20:08:28 +0000 (20:08 +0000)]
Remove redundant debug locations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24995
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 16:14:29 +0000 (16:14 +0000)]
this test fails
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24994
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 16:13:52 +0000 (16:13 +0000)]
this test is malformed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24993
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 16:12:20 +0000 (16:12 +0000)]
unbreak the build :-/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24992
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 07:37:47 +0000 (07:37 +0000)]
not a good idea
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24991
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Dec 2005 07:31:11 +0000 (07:31 +0000)]
More X86 floating point patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24990
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Dec 2005 07:30:30 +0000 (07:30 +0000)]
Operand 1 of TRUNCSTORE can be any of integer and floating point types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24989
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Dec 2005 07:29:34 +0000 (07:29 +0000)]
Allow custom lowering of LOAD, EXTLOAD, ZEXTLOAD, STORE, and TRUNCSTORE. Not
currently used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24988
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 07:08:39 +0000 (07:08 +0000)]
fix something-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24987
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 06:37:38 +0000 (06:37 +0000)]
implement vaarg. Varargs now should work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24986
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 06:24:04 +0000 (06:24 +0000)]
implement vastart. The dag isel compiles this:
void test3(va_list Y);
void test2(int F, ...) {
va_list X;
va_start(X, F);
test3(X);
}
into this:
test2:
save -104, %o6, %o6
st %i5, [%i6+88]
st %i4, [%i6+84]
st %i3, [%i6+80]
st %i2, [%i6+76]
st %i1, [%i6+72]
add %i6, 72, %o0
st %o0, [%i6+-4]
call test3
nop
restore %g0, %g0, %g0
retl
nop
The simple isel emits:
test2:
save -96, %o6, %o6
st %i0, [%i6+68]
st %i1, [%i6+72]
st %i2, [%i6+76]
st %i3, [%i6+80]
st %i4, [%i6+84]
st %i5, [%i6+88]
or %g0, 1, %l0
or %g0, 4, %l1
umul %l0, %l1, %l0
add %l0, 7, %l0
and %l0, -8, %l0
sub %o6, %l0, %o6
add %o6, 96, %l0
add %i6, 72, %l1
st %l1, [%l0]
ld [%l0], %o0
call test3
nop
restore %g0, %g0, %g0
retl
nop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24985
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 06:09:30 +0000 (06:09 +0000)]
remove benchmark list, remove issues addressed by the dag-dag isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:48:07 +0000 (05:48 +0000)]
Simplify store(bitconv(x)) to store(x). This allows us to compile this:
void bar(double Y, double *X) {
*X = Y;
}
to this:
bar:
save -96, %o6, %o6
st %i1, [%i2+4]
st %i0, [%i2]
restore %g0, %g0, %g0
retl
nop
instead of this:
bar:
save -104, %o6, %o6
st %i1, [%i6+-4]
st %i0, [%i6+-8]
ldd [%i6+-8], %f0
std %f0, [%i2]
restore %g0, %g0, %g0
retl
nop
on sparcv8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24983
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:44:41 +0000 (05:44 +0000)]
fold (conv (load x)) -> (load (conv*)x).
This allows us to compile this:
void foo(double);
void bar(double *X) { foo(*X); }
To this:
bar:
save -96, %o6, %o6
ld [%i0+4], %o1
ld [%i0], %o0
call foo
nop
restore %g0, %g0, %g0
retl
nop
instead of this:
bar:
save -104, %o6, %o6
ldd [%i0], %f0
std %f0, [%i6+-8]
ld [%i6+-4], %o1
ld [%i6+-8], %o0
call foo
nop
restore %g0, %g0, %g0
retl
nop
on SparcV8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24982
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:37:50 +0000 (05:37 +0000)]
Fold bitconv(bitconv(x)) -> x. We now compile this:
void foo(double);
void bar(double X) { foo(X); }
to this:
bar:
save -96, %o6, %o6
or %g0, %i0, %o0
or %g0, %i1, %o1
call foo
nop
restore %g0, %g0, %g0
retl
nop
instead of this:
bar:
save -112, %o6, %o6
st %i1, [%i6+-4]
st %i0, [%i6+-8]
ldd [%i6+-8], %f0
std %f0, [%i6+-16]
ld [%i6+-12], %o1
ld [%i6+-16], %o0
call foo
nop
restore %g0, %g0, %g0
retl
nop
on V8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24981
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:30:37 +0000 (05:30 +0000)]
constant fold bits_convert in getNode and in the dag combiner for fp<->int
conversions. This allows V8 to compiles this:
void %test() {
call float %test2( float 1.
000000e+00, float 2.
000000e+00, double 3.
000000e+00, double* null )
ret void
}
into:
test:
save -96, %o6, %o6
sethi 0, %o3
sethi
1049088, %o2
sethi
1048576, %o1
sethi
1040384, %o0
or %g0, %o3, %o4
call test2
nop
restore %g0, %g0, %g0
retl
nop
instead of:
test:
save -112, %o6, %o6
sethi 0, %o4
sethi
1049088, %l0
st %o4, [%i6+-12]
st %l0, [%i6+-16]
ld [%i6+-12], %o3
ld [%i6+-16], %o2
sethi
1048576, %o1
sethi
1040384, %o0
call test2
nop
restore %g0, %g0, %g0
retl
nop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24980
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:15:23 +0000 (05:15 +0000)]
make sure bit_convert's are expanded
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24979
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:13:35 +0000 (05:13 +0000)]
make sure bit_converts are expanded
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24978
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 23 Dec 2005 05:00:38 +0000 (05:00 +0000)]
Get bugpoint building with VC++ again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24977
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 05:00:16 +0000 (05:00 +0000)]
fix the int<->fp instructions, which apparently take a single float register
to represent the int part (because it's always 32-bits)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24976
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 02:31:39 +0000 (02:31 +0000)]
Use BIT_CONVERT to simplify this code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24975
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 00:59:59 +0000 (00:59 +0000)]
Simplify some code by using BIT_CONVERT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24974
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 00:52:30 +0000 (00:52 +0000)]
Fix a pasto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24973
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 00:50:25 +0000 (00:50 +0000)]
fix a thinko in the bit_convert handling code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24972
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 00:46:10 +0000 (00:46 +0000)]
improve comment: mention vectors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24971
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 00:16:34 +0000 (00:16 +0000)]
add very simple support for the BIT_CONVERT node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24970
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Dec 2005 00:15:59 +0000 (00:15 +0000)]
add a new node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24969
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 21:46:37 +0000 (21:46 +0000)]
Revert previous patch. Additional tests fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24968
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 21:18:39 +0000 (21:18 +0000)]
clean up .td file by using evan's new FLAG thing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24967
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 21:16:35 +0000 (21:16 +0000)]
remove a dead node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24966
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 21:16:08 +0000 (21:16 +0000)]
remove dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24965
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 21:15:17 +0000 (21:15 +0000)]
fix handling of weak linkage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24964
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 21:07:29 +0000 (21:07 +0000)]
Fix PR409:
Implement the suggested check to ensure that out-of-range float constants
don't get accepted by LLVM accidentally. Adjust the supporting test cases
as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24963
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 20:37:36 +0000 (20:37 +0000)]
silence some bogus gcc warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24962
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 20:02:55 +0000 (20:02 +0000)]
For PR351:
Generally, remove use of fork/exec from bugpoint in favor of the portable
sys::Program::ExecuteAndWait method. This change requires two new options
to bugpoint to tell it that it is running in "child" mode. In this mode,
it reads its input and runs the passes. The result code signals to the
parent instance of bugpoint what happened (success, fail, crash).
This change should make bugpoint usable on Win32 systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24961
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 20:00:16 +0000 (20:00 +0000)]
For PR351:
* Allow the ExecuteAndWait to return negative values if a signal is
detected as the reason for the child termination. This is needed to
support bugpoint detecting bad things in its child processes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24960
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 19:26:06 +0000 (19:26 +0000)]
Fix test/Regression/Other/2002-01-31-CallGraph.ll after the recent callgraph
rework.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24959
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 17:19:28 +0000 (17:19 +0000)]
move some random notes out of my email into someplace useful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24956
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 13:29:14 +0000 (13:29 +0000)]
this is a hack, which may or may not hang around. In short:
whimper out of doing things the Right Way, and hack up a generic
'BRCALL' instruction, that gets generated when calls are lowered.
This gets selected by hand in the DAG isel, where it gets turned
into real (i.e. in tablegen) br.call instructions.
BUG: this dies on void calls, but seems to work otherwise?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24952
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 07:14:45 +0000 (07:14 +0000)]
we can't do this directly in lowering, so we need this case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24951
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 07:13:51 +0000 (07:13 +0000)]
oops, back this out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24950
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 07:02:51 +0000 (07:02 +0000)]
i need to do this to take over the earth
when I take over the earth, sabre will be happy because i'll stop asking
him silly questions!!!!!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24949
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 06:41:39 +0000 (06:41 +0000)]
we can't all have brains now, can we
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24948
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 06:39:57 +0000 (06:39 +0000)]
this should take care of calls to varadic functions, but it doesn.,t
BUG: calling printf(string, float) will load the float into the wrong
register, completely forget about loading the string, etce
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24947
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 06:38:38 +0000 (06:38 +0000)]
we need to emit the getf.d instruction in lowering, so add it
to IA64ISD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24946
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 06:09:08 +0000 (06:09 +0000)]
credit where credit is due
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24945
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 06:07:52 +0000 (06:07 +0000)]
Separate the call graph implementation from its interface. This implements
the rough idea sketched out in http://nondot.org/sabre/LLVMNotes/CallGraphClass.txt,
allowing new spiffy implementations of the callgraph interface to be built.
Many thanks to Saem Ghani for contributing this!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24944
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Dec 2005 05:23:45 +0000 (05:23 +0000)]
The 81st column doesn't like code in it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24943
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 04:07:40 +0000 (04:07 +0000)]
I shoulda done this a *long* time ago (tm): implement calls properly,
i.e. r1/r12/rp are saved/restored regardless of scheduling/luck
TODO: calls to external symbols, indirect (function descriptor) calls,
performance (we're being paranoid right now)
BUG: the code for handling calls to vararg functions breaks if FP
args are passed (this will make printf() go haywire so a bunch of
tests will fail)
BUG: this seems to trigger some legalize nastiness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24942
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 03:58:17 +0000 (03:58 +0000)]
kill SelectCALL() in the DAG isel, we handle this in lowering now, like
SPARCv8. (we copy sparcv8's workaround for tablegen not being nice about
ISD::CALL/TAILCALL)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24941
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 03:57:15 +0000 (03:57 +0000)]
Fix documentation for the AlarmSetup function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24940
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 22 Dec 2005 03:56:03 +0000 (03:56 +0000)]
update tablegen files - nothing to see here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24939
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 03:31:26 +0000 (03:31 +0000)]
For PR351:
Move the system dependent portion to lib/System/*/Alarm.inc. This makes the
SlowOperationInformer platform independent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24938
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 03:23:46 +0000 (03:23 +0000)]
Implement a generic polled Alarm function. This merely removes the system
dependent portion of the lib/Support/SlowOperationTimer code into the
lib/System implementation where it can be ported to different platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24937
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 22 Dec 2005 02:35:21 +0000 (02:35 +0000)]
Attempt to fix a crash on WIN32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24936
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 22 Dec 2005 02:26:21 +0000 (02:26 +0000)]
Bye bye HACKTROCITY.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24935
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 22 Dec 2005 02:25:14 +0000 (02:25 +0000)]
Added special flag node FLAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24934
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 22 Dec 2005 02:24:50 +0000 (02:24 +0000)]
* Added support for FLAG - a special nameless flag register. Can be used as
either an operand or a result.
* Fixed some more flag / chain bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24933
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 02:08:30 +0000 (02:08 +0000)]
For PR678:
* Make it possible to pass a fourth argument to the CHECK_PROGRAM_SANITY
macro that controls whether a non-sane program generates an error or
a warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24931
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 01:50:56 +0000 (01:50 +0000)]
Implement PR679:
* Changed the -rpath option from cl::opt to cl::list
* Changed the interface to GenerateNative to take a std::vector<std::string>
instead of just a std::string
* Changed GenerateNative to generate multiple -Wl,-rpath, options to be
passed to gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24930
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 22 Dec 2005 01:50:11 +0000 (01:50 +0000)]
Add new files to Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24929
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 22 Dec 2005 01:46:59 +0000 (01:46 +0000)]
Oh oh... Unix is case sensitive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24928
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 22 Dec 2005 01:44:51 +0000 (01:44 +0000)]
Make it compile with VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24927
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 01:41:00 +0000 (01:41 +0000)]
Add an eol at the end to shut gcc sup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24926
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 22 Dec 2005 01:40:06 +0000 (01:40 +0000)]
Add an eol at the end to shut gcc up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24925
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 21 Dec 2005 23:17:06 +0000 (23:17 +0000)]
Some simple cleanups:
1. When srcdir == objdir have "spotless" say that it isn't supported in
that mode rather than just let make say "no such target"
2. Minor doc cleanups
3. Fix the double rebuild problem with yacc files. A missing dependency
caused parallel builds to skip building the .cpp file after the .cpp
file was regenerated by bison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24924
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Dec 2005 23:15:41 +0000 (23:15 +0000)]
Added TargetLowering::isMaskedValueZeroForTargetNode() declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24923
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Dec 2005 23:14:54 +0000 (23:14 +0000)]
Lefted out TargetLowering::
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24922
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Dec 2005 23:05:39 +0000 (23:05 +0000)]
* Fix a GlobalAddress lowering bug.
* Teach DAG combiner about X86ISD::SETCC by adding a TargetLowering hook.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24921
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Dec 2005 22:22:16 +0000 (22:22 +0000)]
Oops. Accidentally deleted RET pattern. It's still needed for return void;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24920
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 21 Dec 2005 20:51:37 +0000 (20:51 +0000)]
Disengage DEBUG_LOC from non-PPC targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24919
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 21 Dec 2005 20:47:34 +0000 (20:47 +0000)]
Sync up the project with my tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24918
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Dec 2005 20:21:51 +0000 (20:21 +0000)]
* Added support for X86 RET with an additional operand to specify number of
bytes to pop off stack.
* Added support for X86 SETCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24917
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Dec 2005 20:20:49 +0000 (20:20 +0000)]
Allows instructions which no explicit operands. e.g. X86 RET which has but
an implicit flag operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24916
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 19:51:24 +0000 (19:51 +0000)]
add dwarfwriter to the xcode project
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24915
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 21 Dec 2005 19:48:16 +0000 (19:48 +0000)]
Start of Dwarf framework.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24914
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 21 Dec 2005 19:46:32 +0000 (19:46 +0000)]
Oops llvm namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24913
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 21 Dec 2005 19:44:40 +0000 (19:44 +0000)]
Start of Dwarf framework code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24912
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 19:40:42 +0000 (19:40 +0000)]
make sure to relegalize all cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24911
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 19:36:36 +0000 (19:36 +0000)]
enable the gep isel opt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24910
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 18:31:50 +0000 (18:31 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24908
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 18:31:29 +0000 (18:31 +0000)]
allow logical operators on packed integral types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24907
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 18:22:19 +0000 (18:22 +0000)]
Get logical operations to like packed types, allow BinOp::getNot to create
the right vector of -1's as its operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24906
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 18:02:52 +0000 (18:02 +0000)]
fix a bug I introduced that broke recursive expansion of nodes (e.g. scalarizing vectors)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24905
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 17:53:23 +0000 (17:53 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24904
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 17:53:02 +0000 (17:53 +0000)]
Implement Regression/Assembler/2005-12-21-ZeroInitVector.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24903
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 17:52:42 +0000 (17:52 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24902
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 16:22:46 +0000 (16:22 +0000)]
add some nodes, forgot to commit this last night :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24901
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 07:50:26 +0000 (07:50 +0000)]
This was meant to go in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24900
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 07:47:04 +0000 (07:47 +0000)]
Rewrite FP stackifier support in the X86InstrInfo.td file, splitting patterns
that were overloaded to work before and after the stackifier runs. With the
new clean world, it is possible to write patterns for these instructions: woo!
This also adds a few simple patterns here and there, though there are a lot
still missing. These should be easy to add though. :)
See the comments under "Floating Point Stack Support" for more details on
the new world order.
This patch as absolutely no effect on the generated code, woo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24899
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Dec 2005 05:34:58 +0000 (05:34 +0000)]
Wrap some long lines: no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24898
91177308-0d34-0410-b5e6-
96231b3b80d8