Chris Lattner
bb8d661b27
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10533 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 06:54:37 +00:00
Chris Lattner
9e25906482
Turn QOI section into CQ section (QUI can be added later if needed)
...
Add PR187
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10532 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 06:31:56 +00:00
Chris Lattner
0f98e75adf
Generalize a special case to fix PR187
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10531 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 06:27:08 +00:00
Chris Lattner
60921c9aa1
Factor code out into the Utils library
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10530 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 05:58:40 +00:00
Chris Lattner
abbc2dd779
Add new function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10529 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 05:56:28 +00:00
Chris Lattner
bb0aca5917
If -enable-linscan is specified, add ENABLE_LINEARSCAN=1 to the make commandline
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10527 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 03:47:31 +00:00
Chris Lattner
8ffc66dac4
Update template
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10525 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19 03:34:46 +00:00
Alkis Evlogimenos
4c080863de
Remove TwoAddressInstruction from the public headers and add an ID
...
instead, since this pass doesn't expose any state to its users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10520 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 22:40:24 +00:00
Brian Gaeke
78cb3f218a
Add install target for libraries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10519 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 20:57:48 +00:00
Chris Lattner
5e46b513f3
Prune some #includes
...
Add a statistic for # reloads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10518 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 20:25:31 +00:00
John Criswell
47df12d80d
Reverted back to previous revision - this was previously merged
...
according to the CVS log messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10517 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 17:19:19 +00:00
John Criswell
d000e1dc2f
Merged in RELEASE_11.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10516 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 16:43:17 +00:00
Alkis Evlogimenos
a71e05acdd
Modify linear scan register allocator to use the two-address
...
instruction pass. This also fixes all remaining bugs for this new
allocator to pass all tests under test/Programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10515 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 13:15:02 +00:00
Alkis Evlogimenos
a3d0e5c2b2
Fix bug in reserved registers. DH actually aliases DX and EDX which
...
are not reserved registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10514 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 13:12:18 +00:00
Alkis Evlogimenos
9af9dbde7d
Modify local register allocator to use the two-address instruction pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10513 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 13:08:52 +00:00
Alkis Evlogimenos
71499ded4d
Add TwoAddressInstructionPass to handle instructions that have two or
...
more operands and the two first operands are constrained to be the
same. The pass takes an instruction of the form:
a = b op c
and transforms it into:
a = b
a = a op c
and also preserves live variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10512 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 13:06:04 +00:00
Alkis Evlogimenos
485ec3c21e
Rename LiveIntervals::expired() to LiveIntervals::expiredAt().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10511 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:56:11 +00:00
Alkis Evlogimenos
43f692f90f
When a variable is killed and redifined in a basic block only one
...
killing instruction is tracked. This causes the LiveIntervals to
create bogus intervals. The workaound is to add a range to the
interval from the redefinition to the end of the basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10510 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:53:43 +00:00
Alkis Evlogimenos
dd2cc65f34
Handle multiple virtual register definitions gracefully.
...
Move some of the longer LiveIntervals::Interval method out of the
header and add debug information to them. Fix bug and simplify range
merging code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10509 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:48:48 +00:00
Chris Lattner
5b7142a877
add boog
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10508 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:16:25 +00:00
Chris Lattner
ba7df4c482
When we delete instructions from the loop, make sure to remove them from the
...
AliasSetTracker as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10507 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:12:32 +00:00
Chris Lattner
2cffeec014
Add a new AliassetTracker::remove method. Because we need to be able to remove
...
a pointer from an AliasSet, maintain the pointer values on a doubly linked
list instead of a singly linked list, to permit efficient removal from the
middle of the list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10506 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 08:11:56 +00:00
Chris Lattner
45ab10cb6e
Check in patch that Reid submitted
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10505 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18 06:40:22 +00:00
Misha Brukman
e12e5f3a81
Fix the links to match our 'llvm' namespace in doxygen-generated docs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10504 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 23:10:49 +00:00
Misha Brukman
97f9cf2de2
* Converted C-style comments to C++
...
* Doxygenified comments
* Reordered #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10503 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 22:08:20 +00:00
Misha Brukman
3d0ad411a5
Reordered #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10502 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 22:06:28 +00:00
Misha Brukman
c3402cd735
Doxygenified some comments, reduced extraneous space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10501 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 22:06:08 +00:00
Misha Brukman
d71295a684
Reorganized the Sparc backend to be more modular -- each different
...
implementation of a Target{RegInfo, InstrInfo, Machine, etc} now has a separate
header and a separate implementation file.
This means that instead of a massive SparcInternals.h that forces a
recompilation of the whole target whenever a minor detail is changed, you should
only recompile a few files.
Note that SparcInternals.h is still around; its contents should be minimized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10500 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 22:04:00 +00:00
Misha Brukman
3e7ada642a
Since we are now in the 'llvm' namespace, the mangled C++ name of structs
...
and hence the links, all change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10495 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 18:46:49 +00:00
John Criswell
7d2779c3b7
Added Stacker to Reid Spencer's list of contributions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10494 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 18:15:04 +00:00
Brian Gaeke
6ca5b8f5f4
Make getObjectType() smarter about ranlibbed Mac OS X archives.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10493 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17 00:18:18 +00:00
Misha Brukman
b49fa616d4
Disable __attribute__((weak)) on Mac OS X and other lame platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10489 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-16 22:57:30 +00:00
Chris Lattner
a28e3cea1c
Add a faq entry for the demo page
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10488 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-16 22:33:55 +00:00
Brian Gaeke
0f7d2e8b8d
Fix typo in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10487 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-16 21:55:45 +00:00
Chris Lattner
ef1b62b00a
There is no reason to add -load support to LLC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10483 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 23:10:25 +00:00
Misha Brukman
ad64385129
Added info about PR186: weak linkage on memory functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10479 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 22:48:12 +00:00
Misha Brukman
a5df0cdbe2
Make all memory functions have weak linkage so that they can be overridden with
...
custom memory-management implementations (e.g., bash).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10478 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 22:32:50 +00:00
Chris Lattner
9e45d2e0e8
Fix for PR185 & IndVarsSimplify/2003-12-15-Crash.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10473 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 17:34:02 +00:00
Chris Lattner
215da0c040
New testcase, for PR185
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10471 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 17:33:41 +00:00
Chris Lattner
cfde00b3d7
This header is dead
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10470 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 06:39:18 +00:00
Alkis Evlogimenos
f6f91bf668
Change preserve all claim to just preserve live variables and phielimination.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10469 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 04:55:38 +00:00
Chris Lattner
d598561318
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10468 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15 00:03:53 +00:00
Chris Lattner
d64152a708
Refactor code just a little bit, allowing us to implement TailCallElim/return_constant.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10467 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 23:57:39 +00:00
Chris Lattner
2040d6ecbd
new test
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10466 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 23:39:34 +00:00
Chris Lattner
f7a743d7ed
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10465 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 23:25:48 +00:00
Chris Lattner
2cdd21c2e4
Finegrainify namespacification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10464 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 21:35:53 +00:00
Chris Lattner
b6d465f813
Finegrainify namespacification
...
Make the Timer code give correct user/system/user+system times when -track-memory is enabled
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10463 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 21:27:33 +00:00
Alkis Evlogimenos
721b4e5715
I wonder how this didn't cause any tests to fail...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10462 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 13:30:19 +00:00
Alkis Evlogimenos
4d7af65903
Change interface of MachineOperand as follows:
...
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
b) add isUse(), isDef()
c) rename opHiBits32() to isHiBits32(),
opLoBits32() to isLoBits32(),
opHiBits64() to isHiBits64(),
opLoBits64() to isLoBits64().
This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 13:24:17 +00:00
Alkis Evlogimenos
97323a47d8
Change preserve all claim to just preserve live variables and phielimination.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10460 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14 10:14:23 +00:00