Commit Graph

3447 Commits

Author SHA1 Message Date
Chris Lattner
bd78696719 Minor simplification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3619 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:55:04 +00:00
Chris Lattner
de69a4ca2f Checkin initial support for automatic memory leak detection routines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3618 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:51:16 +00:00
Chris Lattner
96c2ce8614 Checkin initial support for automatic memory leak detection routines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3617 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:51:12 +00:00
Chris Lattner
a6299345ee * Add capability to recognize alias properties of the following common cases:
- A[c1] cannot alias A[c2] where constants c1 != c2
  - A[i] cannot alias B[j] if A & B are provably different arrays

This should help out array based codes.  For example, from bzip2 from spec,
3 additional loads can be GCSE'd, and _21_ additional loads can be LICMd due
to this change.

In a test example from the Spec GAP benchmark (vecffe.c), this change allows
_52_ additional loads to be GCSE'd and _224_ additional LICM'd loads.

Not bad for such a simple change.  Other testcases show no change at all
because they just don't use arrays.  Not too suprising there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:45:18 +00:00
Chris Lattner
e4f318c7fc New testcase that tests for array pointer analysis type stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3615 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:08:36 +00:00
Chris Lattner
72846c2dcd Fix bug in testcase now that load-vn is not built into gcse
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3614 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-07 22:50:41 +00:00
Chris Lattner
92bab83913 Fix broken test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3613 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-07 22:48:30 +00:00
Chris Lattner
482004cb34 Test commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3612 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-07 05:33:45 +00:00
Joel Stanley
aaeb1c160e *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3611 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 23:42:40 +00:00
Joel Stanley
72ef35ea5f Fixed typos and added &lt/&gt/&amp tags where appropriate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3610 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 23:05:12 +00:00
Chris Lattner
2b76306eb7 * Fix a couple more <>&'s
* Correct an extremely minor technical point about a deprecated interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3609 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 22:51:10 +00:00
Chris Lattner
83b5ee060d Minor fixes html type fixes: & -> &amp; > -> &gt; etc.
Hopefully permission thing works this time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3608 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 22:12:58 +00:00
Chris Lattner
f1ebdc3b71 Minor fix, test that web autoupdate works for people non-chris
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3607 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 22:09:21 +00:00
Joel Stanley
9b96c44ad8 Added subsections to 'Basic Inspection and Traversal Routines':
* Iterating over the BasicBlocks in a Function
* Iterating over the Instructions in a BasicBlock
* Turning an iterator into a class pointer
* Finding call sites: a more complex example


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3606 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 21:55:13 +00:00
Chris Lattner
bded132d00 Move code out of header files into .cpp files to make future changes easier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3605 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 21:33:15 +00:00
Chris Lattner
fab8c796f6 * Clean up some comments
* Move code out of header file to .cpp files, to make future changes easier
* Add arguments to classes so that they can be automatically inserted into their
  parent structure upon creation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3604 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 21:31:57 +00:00
Chris Lattner
82f2f954fd Fix script due to new www/ top level directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3603 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 21:04:36 +00:00
Chris Lattner
b0d7e626a9 Remove obsolete script
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3602 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 21:04:22 +00:00
Chris Lattner
a42414bcf6 * Clean up indentation a bit
* Fix broken comments (copy and pasto)
* Remove irrelevant comment
* Add extra argument to function that causes it to get inserted into a module
  automatically.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3601 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 20:47:31 +00:00
Chris Lattner
482701563a * Remove extraneous #includes
* Add extra argument to Function ctor to allow automatic insertion into module


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3600 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 20:46:32 +00:00
Chris Lattner
b0dbd7fc5a Initial checkin of Correlated Expression Elimination Pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3599 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:41:55 +00:00
Chris Lattner
4dd7d3e34d * No longer need to run die after instcombine
* Run new correlated expressions pass
* Simplify the CFG (removing dead blocks, merging blocks, eliminating branches
  on constant booleans, etc) after correlated exprs pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3598 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:41:33 +00:00
Chris Lattner
513d3e8fc5 Include stub for correlated expression elimination pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3597 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:39:29 +00:00
Chris Lattner
ae7f759825 Add skeleton to the section contents so that Joel knows what to fill in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3596 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:31:18 +00:00
Chris Lattner
b99344f791 Add new section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3595 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 16:40:10 +00:00
Chris Lattner
a30ed38e1f Trivial change to test CVS checkout scripts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3594 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 16:33:54 +00:00
Chris Lattner
1db872dd10 Commit Vikram's changes for 426 class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3593 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 16:26:13 +00:00
Chris Lattner
0377de4d97 Add information about the GlobalVariable and Module classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3592 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 14:50:55 +00:00
Chris Lattner
f4d4a49311 Fix file header to be accurate, instead of something I just copied and pasted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3591 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 03:59:56 +00:00
Chris Lattner
a9d2bffeeb Fix bug with critical edge splitting code where it wouldn't update PHI nodes
in the old destination block to indicate that the value flows from the new
edge splitting block, not from the original multi-successor block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3590 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 03:51:45 +00:00
Chris Lattner
9355b479c3 Initial checkin of the first part of the Programmer's Manual
There is still much to be done, but it's a good start.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3589 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:50:58 +00:00
Chris Lattner
4af3ccbbea Check in the implementation of critical edge detection and splitting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3588 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:35:34 +00:00
Chris Lattner
ca8474e7f2 - Rename BreakCriticalEdge to the slightly more standard SplitCriticalEdge
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3587 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:35:11 +00:00
Chris Lattner
3e57cb98bd * Doxygenize API
* Add new functions for identifying and breaking critical edges


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3586 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:19:25 +00:00
Chris Lattner
0c5d27e4a1 - Doxygenize comments
- Add new method to dominatorset: properlyDominates
- Add synonmys for operator[] to classes so that pointers to dominator
  information can be used more easily.
- Add API's to update dominator information


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3585 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:16:27 +00:00
Chris Lattner
f9bbe214fd Make getAnalysisToUpdate<AnalysisType>() public so that transformation APIs
can update analysis information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3584 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:14:47 +00:00
Chris Lattner
480e2efb2e * Remove notes at the top of the file
* Add information about how to debug a dynamically loaded pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3583 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:02:58 +00:00
Vikram S. Adve
68f716190b Add new function MachineInstrInfo::CreateZeroExtensionInstructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3582 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:36:41 +00:00
Vikram S. Adve
f36f06bb60 Add new function UltraSparcInstrInfo::CreateZeroExtensionInstructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3581 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:34:31 +00:00
Vikram S. Adve
84c0fcbde4 Bug fixes in casting between floats and ints smaller than 64 bits.
Add UltraSparcInstrInfo::CreateZeroExtensionInstructions to help with that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3580 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:33:59 +00:00
Vikram S. Adve
babc0fab19 -- Use size of pointer element type instead of pointer type in array offsets!
-- A few bug fixes in casting between floats and ints.
-- Use SRL reg, 0 instead of AND reg, 0xffffffff to clear high 32 bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3579 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:32:13 +00:00
Vikram S. Adve
537a877998 -- Bug fix: use byte offsets not typed offsets in output assembly!
-- Add support for ConstantExpr constants (only cast and add operators so far)
-- Avoid generating label Bbss.bss, which sometimes came out twice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3578 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:28:10 +00:00
Chris Lattner
20d4129fef Minor bug fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3577 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 23:12:40 +00:00
Chris Lattner
252030e86b Implement setcc for booleans. Fixes bug:
test/Regression/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3576 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 20:09:49 +00:00
Chris Lattner
8617b3579b Make sure that setcc is implemented for bools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3575 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 20:09:23 +00:00
Chris Lattner
0c4e886dbf - Renamed Type::isIntegral() to Type::isInteger()
- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3574 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:08:28 +00:00
Chris Lattner
65ad37205e - Renamed Type::isIntegral() to Type::isInteger()
- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3573 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:07:35 +00:00
Chris Lattner
ce8a14915d - Renamed Type::isIntegral() to Type::isInteger()
- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.
SCVS: ----------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3572 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:05:48 +00:00
Chris Lattner
625ea21205 Implement operator== and != for ranges
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3571 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:05:31 +00:00
Chris Lattner
eaee9e1317 Add distinction between integer and integral types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3570 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 00:52:52 +00:00