Chris Lattner
8f0a16eac6
This fixes all kinds of problems with array handling. There are still bugs to
...
be fixed, but we are getting much closer now.
* Make DSNode::TypeRec a full fledged DSTypeRec type.
* Add methods used to update and access the typerecords elements
* Add methods to query if and to cause a node to be completely folded
* DSGraph construction doesn't use the allocation type for anything at all,
now nodes get their type information based on how they are used.
* Fixed a bug with global value handling introduced in the last checkin
* GEP support is now much better, arrays are handled correctly. The array
flag is now updated in type records. There are still cases that are not
handled yet (we do not detect pessimizations), but getting much closer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4465 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 05:45:02 +00:00
Chris Lattner
db94ca13b8
New testcases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4464 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 05:38:19 +00:00
Chris Lattner
f89e7c90c7
Tell cvs to ignore *.dot and *.ps files in this directory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4463 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 04:59:02 +00:00
Chris Lattner
2230b412f7
New testcase for the possible array merging scenarios
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4462 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 04:48:32 +00:00
Chris Lattner
6b1c4fcfb5
Can simplify code now with the isCommutative() method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4461 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 04:24:23 +00:00
Chris Lattner
f37c34430d
Use new isCommutative interface, which gives us SetEQ and SetNE for free.
...
Thanks fly out to Casey Carter for this fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4460 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 04:20:07 +00:00
Chris Lattner
f2da7241f5
New isAssociative/isCommutative inspection methods, graciously contributed by
...
Casey Carter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4459 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 04:14:01 +00:00
Chris Lattner
4932b31dce
Statistic class should return const reference to *this, not a reference to
...
the data type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4458 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 02:50:27 +00:00
Chris Lattner
6918c079a1
BreakCriticalEdges should update dominance frontier information as well as
...
other dominance stuff. Patch contributed by Casey Carter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4457 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 02:44:36 +00:00
Chris Lattner
a24e09df76
Add interface to update domfrontier info, thanks to Casey Carter for impl
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4456 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 02:39:48 +00:00
Chris Lattner
b07a4409c2
New testcases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4455 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 01:25:13 +00:00
Chris Lattner
2fdaddf445
Fix two problems:
...
* Load Implementation can cause unaligned memory accesses, which caused
problems for sparc.
* cast from pointer to pointer would zero the upper 32 bits of the pointer
which obviously causes problems on 64 bit hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4454 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 21:47:57 +00:00
Vikram S. Adve
601899d196
Bug fix: need to initialize new CallArgsDescriptor pointer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4453 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 20:38:49 +00:00
Vikram S. Adve
8f211a4ab0
Bug fix in setting an implicit ref.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4452 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 20:38:16 +00:00
Vikram S. Adve
9691807669
In getID(), don't call getValidSymbolName to mangle external names!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4451 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 20:16:38 +00:00
Chris Lattner
cc0b0c59e8
Add lots more info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4450 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 06:04:46 +00:00
Misha Brukman
b246cee5fb
Return 0 instead of 1 for correct execution. Makes automated testing happy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4449 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 02:18:29 +00:00
Chris Lattner
5728abc675
Make the testcase MORE complex
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4448 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 02:03:59 +00:00
Chris Lattner
188732c971
Remove fixme
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4447 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 02:02:37 +00:00
Chris Lattner
6a592271fb
Add special code to make printing SSA form machine instructions nicer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4446 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:55:38 +00:00
Chris Lattner
1162262a28
Name the first basic block
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4445 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:54:42 +00:00
Chris Lattner
8548ee75eb
Make sure to set the destination register correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4444 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:49:01 +00:00
Chris Lattner
9cc361579b
Allow BuildMI that helps automate construction of SSA information
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4443 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:48:41 +00:00
Chris Lattner
b752e9a2ae
Set the destination register field based on the target specific flags
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4442 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:15:31 +00:00
Chris Lattner
9d17740295
Add flag to specify when no value is produced by an instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4441 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:09:34 +00:00
Chris Lattner
443d0122d7
Sparc backend doesn't use target specific flags yet
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4440 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:07:12 +00:00
Chris Lattner
75e961ae6b
* Add new "Target Specific Flags" field to instruction descriptor
...
* Rename iclass to Flags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4439 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:06:53 +00:00
Chris Lattner
2a79a0927c
Use MRegisterInfo, if available, to print symbolic register names
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4438 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:58:19 +00:00
Chris Lattner
e5f5221b5e
Implement the new optional getRegisterInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4437 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:56:18 +00:00
Chris Lattner
478df7a7ae
Add new optional getRegisterInfo to TargetMachine
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4436 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:53:02 +00:00
Chris Lattner
1049164aa6
Implement structured machine code printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4435 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:48:05 +00:00
Chris Lattner
3dffa7953f
Print machine code after instruction selection
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4434 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:47:49 +00:00
Chris Lattner
42c7786227
Make sure to pass the LLVM basic block in
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4433 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:47:40 +00:00
Chris Lattner
fa78fbf446
Add support for structured printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4432 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:46:48 +00:00
Chris Lattner
dea73839f6
Improve comments, add methods for structured printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4431 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:46:31 +00:00
Chris Lattner
a22026a665
Jello now builds
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4430 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:41:11 +00:00
Chris Lattner
36b36037a3
Construct annotation, to make sure it's attached to function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4429 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:40:58 +00:00
Chris Lattner
8815c79ea4
Add method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4428 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:40:30 +00:00
Chris Lattner
88726188fe
Make argsize calculation stuff optional, so that Targets without FrameInfo
...
objects yet don't die
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4427 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:40:03 +00:00
Chris Lattner
ddd7fcb887
Implement autoinserting ctor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4426 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:19:00 +00:00
Chris Lattner
e316efc0e7
Rename annotation id
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4425 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:18:43 +00:00
Chris Lattner
7db458fb07
Add capability to have machine instruction autoinsert when it is created
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4424 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:18:23 +00:00
Misha Brukman
a3bbcb5b66
Fix spelling of `propagate'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4423 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:06:16 +00:00
Misha Brukman
81619b121c
Fixed spelling of `propagation'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4422 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 22:55:11 +00:00
Chris Lattner
b4f68ed32e
Convert backend to use passes, implement X86TargetMachine
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4421 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 22:37:54 +00:00
Chris Lattner
c66583ef3b
These are no longer virtual methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4420 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 22:01:44 +00:00
Chris Lattner
272ba1d0ad
Eliminate virtual methods that are sparc specific
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4419 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 22:01:26 +00:00
Chris Lattner
ab0aa7ff99
* Privatize the TargetName
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4418 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:48:33 +00:00
Chris Lattner
c56406c236
* Privatize the TargetName
...
* Move optSizeForSubWordData to TargetData
* Remove unused fields
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4417 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:48:17 +00:00
Chris Lattner
62eaf7ef60
Implement findOptimalStorageSize a bit more generally
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4416 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:47:50 +00:00