Chris Lattner
788318cb69
Remove a now-unneeded library
...
llvm-svn: 23942
2005-10-24 02:31:05 +00:00
Chris Lattner
496a666266
Don't link these three passes in anymore
...
llvm-svn: 23941
2005-10-24 02:30:25 +00:00
Chris Lattner
bde3845548
DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now
...
llvm-svn: 23940
2005-10-24 02:26:13 +00:00
Chris Lattner
1b91cbd627
Now that all libraries are built in either .o or .a form, make BUILD_ARCHIVE
...
default to turning off building of relinked objects.
llvm-svn: 23939
2005-10-24 02:21:45 +00:00
Chris Lattner
df88d79c08
only build .a version of this library
...
llvm-svn: 23938
2005-10-24 02:14:49 +00:00
Chris Lattner
f07e354d8c
Only build .a file versions of these libraries, instead of .a and .o versions.
...
This should speed up build times.
llvm-svn: 23937
2005-10-24 02:11:51 +00:00
Chris Lattner
437b6116c9
There is no need to build an archive version of this library
...
llvm-svn: 23936
2005-10-24 02:09:03 +00:00
Chris Lattner
87d4e1c130
This file is hopelessly out of date
...
llvm-svn: 23935
2005-10-24 02:07:08 +00:00
Chris Lattner
1e050bd88b
Only build .a file versions of these libraries, instead of .a and .o versions.
...
This should speed up build times.
llvm-svn: 23934
2005-10-24 02:05:35 +00:00
Chris Lattner
8c087e962c
Only build .a file versions of these libraries, instead of .a and .o versions.
...
This should speed up build times.
llvm-svn: 23933
2005-10-24 01:59:48 +00:00
Chris Lattner
c64f3de8d5
use archives when possible
...
llvm-svn: 23932
2005-10-24 01:52:15 +00:00
Chris Lattner
bd77fac034
Make sure that anything using the ADCE pass pulls in the UnifyFunctionExitNodes
...
code
llvm-svn: 23931
2005-10-24 01:40:23 +00:00
Chris Lattner
8788942988
pull in the .a version of scalaropts lib to reduce the size of programs
...
using the JIT
llvm-svn: 23930
2005-10-24 01:15:14 +00:00
Chris Lattner
2a5442f365
pull in the archive version of this lib to reduce exe size
...
llvm-svn: 23929
2005-10-24 01:13:21 +00:00
Chris Lattner
f4d2a4b3bf
Pull in the archive versions of these libs to reduce executable size
...
llvm-svn: 23928
2005-10-24 01:12:14 +00:00
Chris Lattner
8df7c01299
don't bother building the archive version of this library
...
llvm-svn: 23927
2005-10-24 01:08:20 +00:00
Chris Lattner
1f001771b2
Link in datastructure as a relinked o file
...
llvm-svn: 23926
2005-10-24 01:07:56 +00:00
Chris Lattner
652ce549ec
Link to archive versions of libraries instead of the relinked ones
...
llvm-svn: 23925
2005-10-24 01:05:53 +00:00
Chris Lattner
ca014adf8e
expose a ctor
...
llvm-svn: 23924
2005-10-24 01:00:45 +00:00
Chris Lattner
71a15b5b83
add a proto
...
llvm-svn: 23923
2005-10-24 01:00:32 +00:00
Chris Lattner
8f16bb6c3c
Use the new LinkAllAnalyses.h header instead of forcing passes to be
...
in relinked object files
llvm-svn: 23922
2005-10-24 01:00:13 +00:00
Chris Lattner
1c5b428ff8
new header
...
llvm-svn: 23921
2005-10-24 00:59:49 +00:00
Chris Lattner
75d4f6fbcb
implement some prototypes
...
llvm-svn: 23920
2005-10-24 00:38:38 +00:00
Chris Lattner
2a40d3aa90
add some prototypes
...
llvm-svn: 23919
2005-10-24 00:38:25 +00:00
Chris Lattner
b45e57c2dd
move this to the analyze tool
...
llvm-svn: 23918
2005-10-24 00:27:36 +00:00
Chris Lattner
edfdf36c69
Don't invade the system namespace
...
llvm-svn: 23917
2005-10-24 00:16:03 +00:00
Chris Lattner
672471fbed
Use archive versions of these libraries, using the LinkAllPasses header.
...
llvm-svn: 23916
2005-10-24 00:12:20 +00:00
Chris Lattner
63e504ff43
There is no need for this to be VC++ only
...
llvm-svn: 23915
2005-10-24 00:08:51 +00:00
Chris Lattner
a551033ea8
Fix a nasty bug that was causing miscompilation of global variables
...
on big endian 32-bit targets in some cases (e.g. PPC). This fixes several
PPC JIT failures.
llvm-svn: 23914
2005-10-23 23:54:56 +00:00
Chris Lattner
ac23014355
Shrinkify to match llc
...
llvm-svn: 23912
2005-10-23 22:39:01 +00:00
Chris Lattner
41548484f4
Shrinkify to make --help output look better
...
llvm-svn: 23911
2005-10-23 22:37:13 +00:00
Chris Lattner
0b2bf4c255
shrinkify the option name a bit
...
llvm-svn: 23910
2005-10-23 22:35:42 +00:00
Chris Lattner
d36c34822e
Simplify this, matching changes in the tblgen emitter
...
llvm-svn: 23909
2005-10-23 22:34:25 +00:00
Chris Lattner
03bf3a1763
Simplify this due to changes in the tblgen side
...
llvm-svn: 23908
2005-10-23 22:33:22 +00:00
Chris Lattner
4f48e67c6c
Add the needed #include, emit enums with the sizes of tables, remove
...
definitions from the LLVM namespace, since they are all static.
llvm-svn: 23907
2005-10-23 22:33:08 +00:00
Chris Lattner
abcce5c4b3
mark this as beta
...
llvm-svn: 23906
2005-10-23 22:23:45 +00:00
Chris Lattner
8ff9df29a9
If a user requests help, give them help on both features and processors
...
llvm-svn: 23905
2005-10-23 22:23:13 +00:00
Chris Lattner
766361e8f4
Autogen subtarget information from .td files.
...
llvm-svn: 23904
2005-10-23 22:15:34 +00:00
Chris Lattner
4b5921d4d8
Add subtarget feature/processor defns to the .td file
...
llvm-svn: 23903
2005-10-23 22:08:45 +00:00
Chris Lattner
a389f0d8fa
rearrange things a bit so that instructions can use subtarget features in the
...
future.
llvm-svn: 23902
2005-10-23 22:08:13 +00:00
Chris Lattner
437fd559d7
add a marker
...
llvm-svn: 23901
2005-10-23 22:07:20 +00:00
Chris Lattner
b54070745e
add a note that Nate mentioned last week
...
llvm-svn: 23898
2005-10-23 21:44:59 +00:00
Chris Lattner
2e81fba9cd
Put some of my random notes somewhere public
...
llvm-svn: 23897
2005-10-23 19:52:42 +00:00
Jeff Cohen
b92e9c57d5
Work around GCC's dislike of attributes on function definitions.
...
llvm-svn: 23896
2005-10-23 15:22:50 +00:00
Jeff Cohen
c55b4cd773
Remove deleted files from Visual Studio.
...
llvm-svn: 23895
2005-10-23 15:21:52 +00:00
Chris Lattner
49f7b69997
Remove the obsolete instr selector emitter
...
llvm-svn: 23894
2005-10-23 05:47:52 +00:00
Chris Lattner
f64f8407c2
Improve help output.
...
llvm-svn: 23893
2005-10-23 05:33:39 +00:00
Chris Lattner
0d4923b975
improve -help output
...
llvm-svn: 23892
2005-10-23 05:28:51 +00:00
Chris Lattner
18a70c35b8
Move static functions from .h file, reduce #includes, pass strings by const&,
...
use LowercaseString from StringExtras.h, remove extraneous space from help
output.
llvm-svn: 23891
2005-10-23 05:26:26 +00:00
Chris Lattner
e70c297044
Move static functions to .cpp file, reduce #includes, pass strings by
...
const&.
llvm-svn: 23890
2005-10-23 05:25:19 +00:00
Jeff Cohen
8b7b47ca88
Remove redundant flag.
...
llvm-svn: 23889
2005-10-23 04:51:22 +00:00
Jeff Cohen
11e26b52b2
When a function takes a variable number of pointer arguments, with a zero
...
pointer marking the end of the list, the zero *must* be cast to the pointer
type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.
The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.
llvm-svn: 23888
2005-10-23 04:37:20 +00:00
Andrew Lenharth
c6072af580
Add several things.
...
loads
branches
setcc
working calls
Global address
External addresses
now I can manage malloc calls.
llvm-svn: 23887
2005-10-23 03:43:48 +00:00
Andrew Lenharth
4b3932aa89
add TargetExternalSymbol
...
llvm-svn: 23886
2005-10-23 03:40:17 +00:00
Jeff Cohen
5ec46cdf5c
Add new files to Visual Studio.
...
llvm-svn: 23885
2005-10-23 01:22:33 +00:00
Andrew Lenharth
5a990417f8
Well, the Constant matching pattern works. Can't say much about calls or globals yet.
...
llvm-svn: 23884
2005-10-22 22:06:58 +00:00
Chris Lattner
711a5fe009
document this as experimental
...
llvm-svn: 23883
2005-10-22 22:00:45 +00:00
Chris Lattner
42b3a5d596
This file is entirely ifdef'd out
...
llvm-svn: 23882
2005-10-22 19:37:08 +00:00
Chris Lattner
9faa5b7a9a
BuildSDIV and BuildUDIV only work for i32/i64, but they don't check that
...
the input is that type, this caused a failure on gs on X86 last night.
Move the hard checks into Build[US]Div since that is where decisions like
this should be made.
llvm-svn: 23881
2005-10-22 18:50:15 +00:00
Jim Laskey
13a19453d2
Add g3 back to the mix and reorder to irritate them anal folk. Actually, it's
...
to group appropriately and provide cues to maintainers that the lists don't
need to be ordered.
llvm-svn: 23880
2005-10-22 08:04:24 +00:00
Jim Laskey
a1beea6c7d
Sort the features and processor lists for the sake of search (and maintainers.)
...
llvm-svn: 23879
2005-10-22 07:59:56 +00:00
Chris Lattner
c5d511c4d9
64-bit reg support should not be enabled by default, as support isn't complete.
...
llvm-svn: 23878
2005-10-21 22:15:43 +00:00
Chris Lattner
75ea5b10bf
add a case missing from the dag combiner that exposed the failure on
...
2005-10-21-longlonggtu.ll.
llvm-svn: 23875
2005-10-21 21:23:25 +00:00
Chris Lattner
e296949fbe
Instead of aborting if not a case we can handle specially, break out and
...
let the generic code handle it. This fixes CodeGen/Generic/2005-10-21-longlonggtu.ll on ppc.
also, reindent this code
llvm-svn: 23874
2005-10-21 21:17:10 +00:00
Chris Lattner
68b61a8c8f
New testcase that crashes the ppc backend
...
llvm-svn: 23871
2005-10-21 21:09:13 +00:00
Jim Laskey
9ed9032e22
Plugin new subtarget backend into the build.
...
llvm-svn: 23870
2005-10-21 19:05:19 +00:00
Jim Laskey
cfda85ad91
New TableGen backends for subtarget information. Only command line stuff
...
active now. Scheduling itinerary next.
llvm-svn: 23869
2005-10-21 19:00:04 +00:00
Chris Lattner
229878b7bc
silence a release mode warning
...
llvm-svn: 23868
2005-10-21 16:01:26 +00:00
Chris Lattner
c82a034580
add missing prototype
...
llvm-svn: 23867
2005-10-21 15:49:28 +00:00
Chris Lattner
e95b5745c0
Make the coallescer a bit smarter, allowing it to join more live ranges.
...
For example, we can now join things like [0-30:0)[31-40:1)[52-59:2)
with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range.
The resultant range ends up being [0-30:0)[31-60:1).
This fires a lot through-out the test suite (e.g. shrinking bc from
19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about
50 copies eliminated from crafty).
llvm-svn: 23866
2005-10-21 06:49:50 +00:00
Chris Lattner
76c97afbbc
Fix LiveInterval::getOverlapingRanges to take things in the right order
...
(an unused method).
Fix the merger so that it can merge ranges like this [10:12)[16:40) with
[12:38) into [10:40) instead of bogus ranges. This sort of input will be
possible for the merger coming shortly
llvm-svn: 23865
2005-10-21 06:41:30 +00:00
Nate Begeman
fd0d55ec69
Match rotate. This does actually match the rotates in an rc5 cipher, but I
...
haven't seen it fire on our testsuite.
llvm-svn: 23863
2005-10-21 06:36:18 +00:00
Chris Lattner
5df0e36e98
My previous patch was too conservative. Reject FP and void types, but do
...
allow pointer types.
llvm-svn: 23859
2005-10-21 05:45:41 +00:00
Nate Begeman
ae5d9bd65b
Don't generate operations that aren't yet supported
...
llvm-svn: 23858
2005-10-21 01:52:45 +00:00
Nate Begeman
62e9e5462c
Kill some now-dead code.
...
llvm-svn: 23857
2005-10-21 01:52:20 +00:00
Nate Begeman
8f62cd32ad
Fix a typo in the dag combiner, so that this can work on i64 targets
...
llvm-svn: 23856
2005-10-21 01:51:45 +00:00
Andrew Lenharth
a099c0131e
byte zap not immediate goodness
...
llvm-svn: 23855
2005-10-21 01:24:05 +00:00
Chris Lattner
8bda5afd91
Make tblgen emit:
...
tblgen: In ZAPNOTi: Cannot use 'IZAPX' in an input pattern!
for a bad pattern, instead of an ugly assertion.
llvm-svn: 23854
2005-10-21 01:19:59 +00:00
Nate Begeman
4dd383120f
Invert the TargetLowering flag that controls divide by consant expansion.
...
Add a new flag to TargetLowering indicating if the target has really cheap
signed division by powers of two, make ppc use it. This will probably go
away in the future.
Implement some more ISD::SDIV folds in the dag combiner
Remove now dead code in the x86 backend.
llvm-svn: 23853
2005-10-21 00:02:42 +00:00
Andrew Lenharth
a6a23b5874
Inst cleanup. As a bonus, operands are in the correct order for cmovs. Expect new stuff to pass in the JIT tonight
...
llvm-svn: 23852
2005-10-20 23:58:36 +00:00
Chris Lattner
a553780e98
Use a literal to define ineg instead of immzero
...
llvm-svn: 23851
2005-10-20 23:30:37 +00:00
Chris Lattner
b7b75e1b68
Fix a conditional so we don't access past the end of the range. Thanks to
...
Andrew for bringing this to my attn.
llvm-svn: 23850
2005-10-20 22:50:10 +00:00
Andrew Lenharth
d4c0ed74e4
added a few 1 operand form stuff. Seems to break regalloc on alpha. sigh
...
llvm-svn: 23849
2005-10-20 19:39:24 +00:00
Andrew Lenharth
7e0e8234f6
add cttz and ctpop
...
llvm-svn: 23848
2005-10-20 19:38:11 +00:00
Nate Begeman
7efe53d90b
Fix a couple bugs in the const div stuff where we'd generate MULHS/MULHU
...
for types that aren't legal, and fail a divisor is less than zero
comparison, which would cause us to drop a subtract.
llvm-svn: 23846
2005-10-20 17:45:03 +00:00
Chris Lattner
a6efeb01f9
don't use llabs with apparently VC++ doesn't have
...
llvm-svn: 23845
2005-10-20 17:01:00 +00:00
Chris Lattner
35852fc391
Fix order of eval problem from when I refactored this into a function.
...
llvm-svn: 23844
2005-10-20 16:56:40 +00:00
Andrew Lenharth
eb0ad1863b
Sounds good, finish the intop conversion.
...
llvm-svn: 23843
2005-10-20 14:42:48 +00:00
Nate Begeman
60bbe2d1e5
Add some more patterns for i64 on ppc
...
llvm-svn: 23842
2005-10-20 07:51:08 +00:00
Chris Lattner
3cf40798ab
add a new method, play around with some code.
...
Fix a *bug* in the extendIntervalEndTo method. In particular, if adding
[2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30).
Which is not the most smart thing to do. Now produce [0:30).
llvm-svn: 23841
2005-10-20 07:39:25 +00:00
Chris Lattner
6380f3c96d
add a new method
...
llvm-svn: 23840
2005-10-20 07:37:59 +00:00
Chris Lattner
8816353040
Refactor some code, pulling it out into a function. No functionality change.
...
llvm-svn: 23839
2005-10-20 06:06:30 +00:00
Chris Lattner
0c0b38bb4c
Do NOT touch FP ops with LSR. This fixes a testcase Nate sent me from an
...
inner loop like this:
LBB_RateConvertMono8AltiVec_2: ; no_exit
lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
fmr f3, f3
fadd f0, f2, f0
fadd f3, f0, f3
fcmpu cr0, f3, f1
bge cr0, LBB_RateConvertMono8AltiVec_2 ; no_exit
to an inner loop like this:
LBB_RateConvertMono8AltiVec_1: ; no_exit
fsub f2, f2, f1
fcmpu cr0, f2, f1
fmr f0, f2
bge cr0, LBB_RateConvertMono8AltiVec_1 ; no_exit
Doh! good catch!
llvm-svn: 23838
2005-10-20 04:47:10 +00:00
Chris Lattner
fd07fcda67
Add some pattern fragments to simplify the repetitive parts of the patterns
...
for some common ops and use them for a few examples. Andrew, if you like
this, feel free to convert the rest over, if you hate it, feel free to
revert.
llvm-svn: 23837
2005-10-20 04:21:06 +00:00
Chris Lattner
cd4be8798f
simplify this a bit by using immediates
...
llvm-svn: 23836
2005-10-20 03:57:03 +00:00
Nate Begeman
c6f067a8c4
Move the target constant divide optimization up into the dag combiner, so
...
that the nodes can be folded with other nodes, and we can not duplicate
code in every backend. Alpha will probably want this too.
llvm-svn: 23835
2005-10-20 02:15:44 +00:00
Nate Begeman
5765717aad
Enable targets to say that integer divide is expensive, which will trigger
...
an upcoming optimization in the DAG Combiner.
llvm-svn: 23834
2005-10-20 02:14:14 +00:00
Andrew Lenharth
794f15868a
forgot this one
...
llvm-svn: 23833
2005-10-20 00:29:02 +00:00
Andrew Lenharth
7b69867052
ret 0; works, not much else
...
still lots of uglyness.
Maybe calls will come soon.
Fixing the return value of things will be necessary to make alpha work.
llvm-svn: 23832
2005-10-20 00:28:31 +00:00
John Criswell
196e8c1f58
This fixes PR638:
...
Regression/CodeGen/Generic/2004-02-08-UnwindSupport.llx
llvm-svn: 23831
2005-10-19 20:07:15 +00:00
Jim Laskey
74ab9960f2
Added InstrSchedClass to each of the PowerPC Instructions.
...
Note that when adding new instructions that you should refer to the table at the
bottom of PPCSchedule.td.
llvm-svn: 23830
2005-10-19 19:51:16 +00:00
John Criswell
b2544ff7a7
Moved to Regression/Codegen/Generic.
...
llvm-svn: 23829
2005-10-19 18:52:52 +00:00
John Criswell
14582b1a73
This is a generic test for all code generators. It originally came from
...
Regression/Codegen/X86.
llvm-svn: 23826
2005-10-19 18:51:07 +00:00
Nate Begeman
9f3c26c4ea
Write patterns for the various shl and srl patterns that don't involve
...
doing something clever.
llvm-svn: 23824
2005-10-19 18:42:01 +00:00
John Criswell
6b7df0ef4e
Force i386 code generation for an i386 specific test.
...
llvm-svn: 23821
2005-10-19 18:30:39 +00:00
Jim Laskey
9761100055
Push processor descriptions to the top of target and add command line info.
...
llvm-svn: 23820
2005-10-19 13:34:52 +00:00
Chris Lattner
c9ad735e78
add support for literal immediates in patterns to match, allowing us to
...
write things like this:
def : Pat<(add GPRC:$in, 12),
(ADD12 GPRC:$in)>;
Andrew: if this isn't enough or doesn't work for you, please lemme know.
llvm-svn: 23819
2005-10-19 04:41:05 +00:00
Chris Lattner
c16b0c387f
now that tblgen is smarter, use integers directly. This should help Andrew too
...
llvm-svn: 23818
2005-10-19 04:32:04 +00:00
Chris Lattner
7f6f565846
Add basic support for integer constants in pattern results.
...
llvm-svn: 23817
2005-10-19 04:30:56 +00:00
Chris Lattner
2ae2f99326
Fix some checking that was causing duraid to get a perplexing assertion
...
instead of a happy error message
llvm-svn: 23816
2005-10-19 04:12:14 +00:00
Chris Lattner
b8014e10ae
Add support for patterns that have physical registers in them. Testcase:
...
def : Pat<(trunc G8RC:$in),
(OR8To4 G8RC:$in, X0)>;
Even though this doesn't make any sense on PPC :)
llvm-svn: 23815
2005-10-19 02:07:26 +00:00
Chris Lattner
c8f899f98d
Asserting here is to violent
...
llvm-svn: 23814
2005-10-19 01:55:23 +00:00
Chris Lattner
5f37623218
teach ppc backend these are copies
...
llvm-svn: 23813
2005-10-19 01:50:36 +00:00
Chris Lattner
62041778e6
Make this work with the internalize change
...
llvm-svn: 23812
2005-10-19 01:41:47 +00:00
Chris Lattner
5b6f4dc623
Convert these cases to patterns
...
llvm-svn: 23811
2005-10-19 01:38:02 +00:00
Chris Lattner
8baf5043a8
Nate wants to define 'Pat's which turn into instructions that don't have
...
patterns. Certainly a logical request.
llvm-svn: 23810
2005-10-19 01:27:22 +00:00
Nate Begeman
9eaa6bac06
Woo, it kinda works. We now generate this atrociously bad, but correct,
...
code for long long foo(long long a, long long b) { return a + b; }
_foo:
or r2, r3, r3
or r3, r4, r4
or r4, r5, r5
or r5, r6, r6
rldicr r2, r2, 32, 31
rldicl r3, r3, 0, 32
rldicr r4, r4, 32, 31
rldicl r5, r5, 0, 32
or r2, r3, r2
or r3, r5, r4
add r4, r3, r2
rldicl r2, r4, 32, 32
or r4, r4, r4
or r3, r2, r2
blr
llvm-svn: 23809
2005-10-19 01:12:32 +00:00
Chris Lattner
38d7f2be4c
Testcase that crashes llvmgcc in type layout
...
llvm-svn: 23806
2005-10-19 00:52:21 +00:00
Chris Lattner
ecdf842311
apply some tblgen majik to simplify the X register definitions
...
llvm-svn: 23805
2005-10-19 00:17:55 +00:00
Nate Begeman
5172ce641e
Teach Legalize how to do something with EXTRACT_ELEMENT when the type of
...
the pair of elements is a legal type.
llvm-svn: 23804
2005-10-19 00:06:56 +00:00
Nate Begeman
92e77502f3
Make a new reg class for 64 bit regs that aliases the 32 bit regs. This
...
will have to tide us over until we get real subreg support, but it prevents
the PrologEpilogInserter from spilling 8 byte GPRs on a G4 processor.
Add some initial support for TRUNCATE and ANY_EXTEND, but they don't
currently work due to issues with ScheduleDAG. Something wll have to be
figured out.
llvm-svn: 23803
2005-10-19 00:05:37 +00:00
Nate Begeman
78afac2ddd
Add the ability to lower return instructions to TargetLowering. This
...
allows us to lower legal return types to something else, to meet ABI
requirements (such as that i64 be returned in two i32 regs on Darwin/ppc).
llvm-svn: 23802
2005-10-18 23:23:37 +00:00
Chris Lattner
0a71a9ac86
Fix Generic/2005-10-18-ZeroSizeStackObject.ll by not requesting a zero
...
sized stack object if either the array size or the type size is zero.
llvm-svn: 23801
2005-10-18 22:14:06 +00:00
Chris Lattner
84b36df7e9
new testcase
...
llvm-svn: 23798
2005-10-18 22:13:39 +00:00
Chris Lattner
8396a308a7
remove hack
...
llvm-svn: 23797
2005-10-18 22:11:42 +00:00
Chris Lattner
13a57822a1
This was never updated for the project makefile changes
...
llvm-svn: 23790
2005-10-18 18:50:26 +00:00
Chris Lattner
46a97ab3e8
This never got updated to reflect the project makefile changes
...
llvm-svn: 23789
2005-10-18 18:48:30 +00:00
Jim Laskey
d812a2e449
Simple edits; remove unimplimented cases and clarify long haul SLU cases.
...
llvm-svn: 23788
2005-10-18 16:59:23 +00:00
Chris Lattner
5a2fb9787b
Fix the JIT encoding of LWA, LD, STD, and STDU.
...
llvm-svn: 23787
2005-10-18 16:51:22 +00:00
Jim Laskey
c6533006c8
Checking in first round of scheduling tablegen files. Not tied in as yet.
...
llvm-svn: 23786
2005-10-18 16:23:40 +00:00
Chris Lattner
53b9c3ad4c
add a case
...
llvm-svn: 23785
2005-10-18 06:30:51 +00:00
Chris Lattner
727671a3dc
Fix PR637
...
llvm-svn: 23784
2005-10-18 06:29:43 +00:00
Chris Lattner
45517baf9f
Add an option to this pass. If it is set, we are allowed to internalize
...
all but main. If it's not set, we can still internalize, but only if an
explicit symbol list is provided.
llvm-svn: 23783
2005-10-18 06:29:22 +00:00
Chris Lattner
f09e38ccac
add an option to the internalize pass
...
llvm-svn: 23782
2005-10-18 06:28:16 +00:00
Chris Lattner
6c14c35bd7
Fold (select C, load A, load B) -> load (select C, A, B). This happens quite
...
a lot throughout many programs. In particular, specfp triggers it a bunch for
constant FP nodes when you have code like cond ? 1.0 : -1.0.
If the PPC ISel exposed the loads implicit in pic references to external globals,
we would be able to eliminate a load in cases like this as well:
%X = external global int
%Y = external global int
int* %test4(bool %C) {
%G = select bool %C, int* %X, int* %Y
ret int* %G
}
Note that this breaks things that use SrcValue's (see the fixme), but since nothing
uses them yet, this is ok.
Also, simplify some code to use hasOneUse() on an SDOperand instead of hasNUsesOfValue directly.
llvm-svn: 23781
2005-10-18 06:04:22 +00:00
Chris Lattner
ed653cbe43
Duraid pointed out that it is impolite to emit PPC:: into the IA64 backend
...
llvm-svn: 23780
2005-10-18 04:41:01 +00:00
Nate Begeman
e74dfbb9ce
Do the right thing and enable 64 bit regs under the control of a subtarget
...
option. Currently the only way to enable this is to specify the
64bitregs mattr flag. It is never enabled by default on any config yet.
llvm-svn: 23779
2005-10-18 00:56:42 +00:00
Nate Begeman
0b71e007ef
First bits of 64 bit PowerPC stuff, currently disabled. A lot of this is
...
purely mechanical.
llvm-svn: 23778
2005-10-18 00:28:58 +00:00
Nate Begeman
418c6e4045
Implement some feedback from Chris re: constant canonicalization
...
llvm-svn: 23777
2005-10-18 00:28:13 +00:00
Nate Begeman
bd5f41a6a6
Legalize BUILD_PAIR appropriately for upcoming 64 bit PowerPC work.
...
llvm-svn: 23776
2005-10-18 00:27:41 +00:00
John Criswell
d122b68735
Use %s instead of hard coding the input filename.
...
This allows the test to work when srcdir != objdir.
llvm-svn: 23775
2005-10-17 21:54:18 +00:00
Nate Begeman
ec48a1bfbd
fold fmul X, +2.0 -> fadd X, X;
...
llvm-svn: 23774
2005-10-17 20:40:11 +00:00
Chris Lattner
da1b152c43
Make this work for FP constantexprs
...
llvm-svn: 23773
2005-10-17 20:18:38 +00:00
Chris Lattner
7fde91e365
Oops, X+0.0 isn't foldable, but X+-0.0 is.
...
llvm-svn: 23772
2005-10-17 17:56:38 +00:00
Chris Lattner
32979336a7
relax this a bit, as we only support the default rounding mode
...
llvm-svn: 23771
2005-10-17 17:49:32 +00:00
Chris Lattner
8113c67003
Apparently, people object to floating pointers. Picky picky.
...
llvm-svn: 23770
2005-10-17 15:19:24 +00:00
Jim Laskey
87ce5d85bb
As requested, a blurb on sub-targets.
...
llvm-svn: 23769
2005-10-17 12:19:10 +00:00
Chris Lattner
721f3ce90f
fix some grammar-o's I noticed
...
llvm-svn: 23768
2005-10-17 04:18:41 +00:00
Chris Lattner
9fcf000d9e
Feedback from Nate.
...
llvm-svn: 23767
2005-10-17 03:09:31 +00:00
Chris Lattner
776c73f032
Document -view-isel-dags and -view-sched-dags
...
llvm-svn: 23766
2005-10-17 01:40:33 +00:00
Chris Lattner
ed54f2f5e7
Add notes about MF.viewCFG() and friends.
...
llvm-svn: 23765
2005-10-17 01:36:23 +00:00
Chris Lattner
eeb2bda2fa
add a trivial fold
...
llvm-svn: 23764
2005-10-17 01:07:11 +00:00
Chris Lattner
17acad625c
Add a bunch of info about the isel autogenerator. Review appreciated!
...
llvm-svn: 23763
2005-10-16 20:02:19 +00:00
Chris Lattner
d6f1a33d26
Fill this out some more. Add description of MBB/MF. Fix some broken links,
...
turn some broken <a name> into <a href>'s.
llvm-svn: 23762
2005-10-16 18:31:08 +00:00
Chris Lattner
c9afa28b92
Add a stub for the TargetSubtarget class. Jim, please fill a blurb in here
...
when you get a chance.
llvm-svn: 23761
2005-10-16 17:06:07 +00:00
Chris Lattner
bf589c5129
Update this significantly, mention subtarget and isel generation support.
...
llvm-svn: 23760
2005-10-16 17:03:22 +00:00
Nate Begeman
6cca84e43c
More PPC32 -> PPC changes, as well as merging some classes that were
...
redundant after the change.
llvm-svn: 23759
2005-10-16 05:39:50 +00:00
Chris Lattner
825298b060
Make the generated code significantly more memory efficient, by using
...
SelectNodeTo instead of getTargetNode when possible.
llvm-svn: 23758
2005-10-16 01:41:58 +00:00
Chris Lattner
acf3d627b9
update this a little bit to talk about the dag combiner and remove inaccuracies.
...
This still doesn't talk about autogen much
llvm-svn: 23757
2005-10-16 00:36:38 +00:00
Chris Lattner
e540800d5a
Fix this logic.
...
llvm-svn: 23756
2005-10-15 22:35:40 +00:00
Chris Lattner
17cc9edd33
Add a case we were missing that was causing us to fail CodeGen/PowerPC/rlwinm.ll:test3
...
llvm-svn: 23755
2005-10-15 22:18:08 +00:00
Nate Begeman
c0896117d3
Remove some dead code now that the dag combiner exists.
...
llvm-svn: 23754
2005-10-15 22:08:02 +00:00
Chris Lattner
d869bec4fe
Remove some dead code: the ORI/ORIS cases are autogen'd. This makes
...
SelectIntImmediateExpr dead.
llvm-svn: 23753
2005-10-15 22:06:18 +00:00
Chris Lattner
03354280eb
prune #includes
...
llvm-svn: 23752
2005-10-15 21:58:54 +00:00
Chris Lattner
a52969c8d6
These instructions are now autogenerated
...
llvm-svn: 23751
2005-10-15 21:44:56 +00:00
Chris Lattner
286c1d7cfa
Add a pattern for FSQRTS
...
llvm-svn: 23750
2005-10-15 21:44:15 +00:00
Chris Lattner
efa382616b
remove dead code
...
llvm-svn: 23749
2005-10-15 21:40:12 +00:00
Chris Lattner
6b22d2554a
Implement the last major missing piece in the DAG isel generator: when emitting
...
a pattern match, make sure to emit the (minimal number of) type checks that
verify the pattern matches this specific instruction. This allows FMA32
patterns to not match double expressions for example.
llvm-svn: 23748
2005-10-15 21:34:21 +00:00
Chris Lattner
b986f471be
Use getExtLoad here instead of getNode, as extloads produce two values. This
...
fixes a legalize failure on SPASS for itanium.
llvm-svn: 23747
2005-10-15 20:24:07 +00:00
Chris Lattner
e33870d154
remove broken SRA/rlwimi case
...
llvm-svn: 23746
2005-10-15 19:04:48 +00:00
Chris Lattner
6f3b954662
Rename PPC32*.h to PPC*.h
...
This completes the grand PPC file renaming
llvm-svn: 23745
2005-10-14 23:59:06 +00:00
Chris Lattner
0aa794ba5b
Merge PPCJITInfo.h and PPC32JITInfo.h. Note that the PowerPCJITInfo
...
and PPC32JITInfo classes should be merged.
llvm-svn: 23744
2005-10-14 23:53:41 +00:00
Chris Lattner
bfca1ab79d
Rename PowerPC*.h to PPC*.h
...
llvm-svn: 23743
2005-10-14 23:51:18 +00:00
Chris Lattner
e80bf1b33a
Rename PowerPCInstrBuilder.h -> PPC*
...
llvm-svn: 23742
2005-10-14 23:45:43 +00:00
Chris Lattner
2ed745a905
Nuke the PowerPCTargetMachine.h header. Note that the PowerPCTargetMachine
...
still should be merged into the PPC32TargetMachine class
llvm-svn: 23741
2005-10-14 23:44:05 +00:00
Chris Lattner
7503d46feb
Rename PowerPC*.td -> PPC*.td
...
llvm-svn: 23740
2005-10-14 23:40:39 +00:00
Chris Lattner
f3b97f53b9
These are dead
...
llvm-svn: 23739
2005-10-14 23:38:51 +00:00
Chris Lattner
0921e3bfc1
Eliminate PowerPC.td and PPC32.td, consolidating them into PPC.td
...
llvm-svn: 23738
2005-10-14 23:37:35 +00:00
Chris Lattner
09cd9e7661
Like the comment says...
...
llvm-svn: 23737
2005-10-14 22:48:24 +00:00
Chris Lattner
2121f3ca50
Nuke PowerPCInstrFormats.h, its contents are dead. Remove the definitions
...
from the .td file that correspond to it
llvm-svn: 23736
2005-10-14 22:44:13 +00:00
Nate Begeman
9d7008b08d
Properly split f32 and f64 into separate register classes for scalar sse fp
...
fixing a bunch of nasty hackery
llvm-svn: 23735
2005-10-14 22:06:00 +00:00
Nate Begeman
c41e1be2e8
Remove an unnecsesary file. PPC32 and PPC64 share architected registers.
...
We will decide with subtarget support whether we ever use an i64 register
class.
llvm-svn: 23734
2005-10-14 18:58:46 +00:00
Chris Lattner
56f31f5408
add the integer truncate/extension operations
...
llvm-svn: 23733
2005-10-14 06:40:20 +00:00
Chris Lattner
95866d3923
Make sure targets depend on TargetSelectionDAG.td
...
llvm-svn: 23732
2005-10-14 06:31:58 +00:00
Chris Lattner
7d9f719d42
These are now autogenerated
...
llvm-svn: 23731
2005-10-14 06:26:29 +00:00
Chris Lattner
c4db8f4163
Now that we have int/fp lattice values, implement the SDTCisOpSmallerThanOp
...
type constraint. This lets tblgen realize that it doesn't need any dynamic
type checks for fextend/fround on PPC (and many other targets), because there
are only two fp types.
llvm-svn: 23730
2005-10-14 06:25:00 +00:00
Chris Lattner
ecaf56b21a
Fairly serious rework of the typing code to add new int/fp lattice values.
...
Overall, no functionality change yet though.
llvm-svn: 23729
2005-10-14 06:12:03 +00:00
Chris Lattner
cdf483556f
simplify the code a bit
...
llvm-svn: 23728
2005-10-14 05:08:37 +00:00
Chris Lattner
9c0d3c5932
Add patterns for FP round/extend
...
llvm-svn: 23727
2005-10-14 04:55:50 +00:00
Chris Lattner
6e83cbf7f3
add a new SDTCisOpSmallerThanOp type constraint, and implement fround/fextend in terms of it
...
llvm-svn: 23726
2005-10-14 04:55:10 +00:00
Chris Lattner
4892df38f3
Add basic support for recognizing a new SDTCisOpSmallerThanOp type constraint
...
llvm-svn: 23725
2005-10-14 04:53:53 +00:00
Chris Lattner
7b0275ba8c
Implement a couple of new (important) features.
...
1. If an operation has to be int or fp and the target only supports one
int or fp type, relize that the op has to have that type.
2. If a target has operations on multiple types, do not emit matching code
for patterns involving those operators, since we do not emit the code to
check for them yet. This prevents PPC from generating FP ops currently.
Also move some code around into more logical places.
llvm-svn: 23724
2005-10-14 04:11:13 +00:00
Chris Lattner
90c5b9c83c
Do not let getLegalValueTypes return a list with duplicates in it
...
llvm-svn: 23723
2005-10-14 03:54:49 +00:00
Nate Begeman
6e673b24d3
fold sext_in_reg, sext_in_reg where both have the same VT. This was
...
popping up in Fourinarow.
llvm-svn: 23722
2005-10-14 01:29:07 +00:00
Chris Lattner
e3870fbe4a
Allow $
...
llvm-svn: 23721
2005-10-14 01:28:34 +00:00
Nate Begeman
d59e5a7abb
Relax the checking on zextload generation a bit, since as sabre pointed out
...
you could be AND'ing with the result of a shift that shifts out all the
bits you care about, in addition to a constant.
Also, move over an add/sub_parts fold from legalize to the dag combiner,
where it works for things other than constants. Woot!
llvm-svn: 23720
2005-10-14 01:12:21 +00:00
Chris Lattner
a6d62322e5
Fix errors when compiling with -pedantic
...
llvm-svn: 23719
2005-10-14 00:33:05 +00:00
Chris Lattner
b8282987f4
Fix the trunc(load) case, finally allowing crafty and povray to pass
...
llvm-svn: 23718
2005-10-13 22:10:05 +00:00
Chris Lattner
dbc5ae3109
Fix some bugs in (sext (load x))
...
llvm-svn: 23717
2005-10-13 21:52:31 +00:00
Chris Lattner
258521d7ea
When ExpandOp'ing a [SZ]EXTLOAD, make sure to remember that the chain
...
is also legal. Add support for ExpandOp'ing raw EXTLOADs too.
llvm-svn: 23716
2005-10-13 21:44:47 +00:00