Commit Graph

5343 Commits

Author SHA1 Message Date
Chris Lattner 13082d63dd Adjust to new AA interface
llvm-svn: 5637
2003-02-26 19:29:16 +00:00
Chris Lattner 71b82bb494 Convert to work with new AliasAnalysis interface by conservatively assuming all pointers are arbitrarily large accesses
llvm-svn: 5636
2003-02-26 19:28:57 +00:00
Chris Lattner 0edc91ff2a Calculate and pass load sizes to the alias analysis infrastructure
llvm-svn: 5635
2003-02-26 19:27:35 +00:00
Chris Lattner d1e3208147 Adjust to new AA interface
Add tracking for Mod/Ref info

llvm-svn: 5634
2003-02-26 19:27:05 +00:00
Chris Lattner 3a3118394c - Checkin of the alias analysis work:
* Takes into account the size of the memory reference to determine aliasing.
    * Expose mod/ref information in a more consistent way
    * BasicAA can now disambiguate A[i][1] and A[j][2] for conservative request
      sizes

llvm-svn: 5633
2003-02-26 19:26:51 +00:00
Chris Lattner 7b5727a400 Tweak to work with new AA implementation
llvm-svn: 5632
2003-02-26 19:25:04 +00:00
Chris Lattner c6bf7ec5e0 Checkin of new alias analysis interface:
* Takes into account the size of the memory reference to determine aliasing.
  * Expose mod/ref information in a more consistent way

llvm-svn: 5631
2003-02-26 19:24:47 +00:00
Chris Lattner d4ed5c67e9 Allow ImmutablePass's to require other immutable passes and to be initialized
llvm-svn: 5630
2003-02-26 19:10:57 +00:00
Chris Lattner daaf2982e7 * Un "protect" the getAnalysis<> functions
* Add a new initializePass() method to ImmutablePass

llvm-svn: 5629
2003-02-26 19:10:28 +00:00
Chris Lattner 1e3b79f901 Remove implemented projects
llvm-svn: 5628
2003-02-26 16:38:22 +00:00
Chris Lattner e1f59b6e01 Update programmers manual for renamed method
llvm-svn: 5627
2003-02-26 16:38:15 +00:00
Chris Lattner dbb8c65e26 Hopefully final tweak to this testcase
llvm-svn: 5626
2003-02-26 16:18:00 +00:00
Chris Lattner 90aed35455 Add a new test for basicaa
llvm-svn: 5625
2003-02-25 21:43:37 +00:00
Chris Lattner 13b3e5bdab Fix typeo
llvm-svn: 5624
2003-02-25 21:14:59 +00:00
Chris Lattner ae1f73b4f5 Remove wierd case that can never happen
llvm-svn: 5623
2003-02-25 20:27:09 +00:00
Chris Lattner a5dc1ec0a4 Add new helper template function
llvm-svn: 5622
2003-02-25 00:00:50 +00:00
Chris Lattner 49952645c8 Fix testcase
llvm-svn: 5621
2003-02-24 23:14:07 +00:00
Chris Lattner 4869f3700e Rename Instruction::hasSideEffects() -> mayWriteToMemory()
llvm-svn: 5620
2003-02-24 20:48:32 +00:00
Chris Lattner 7606fb65c0 This is a substantial rewrite of the AliasSetTracker class which now uses
a union-find based algorithm, is significantly faster, and is more general.
It will also scale to handle call instructions correctly, which is a nice
added bonus.

This includes a new pass -print-alias-sets which can be used to show how
alias sets are formed for a particular analysis.

llvm-svn: 5619
2003-02-24 20:37:56 +00:00
Chris Lattner a65cd08dd8 Initial checkin of CallSite wrapper for Call/Invoke instructions
llvm-svn: 5618
2003-02-24 20:35:45 +00:00
Chris Lattner 9caf224833 Fix test
llvm-svn: 5617
2003-02-24 20:30:14 +00:00
Chris Lattner c2be148276 Make printing messages nicer
llvm-svn: 5616
2003-02-24 20:07:54 +00:00
Chris Lattner 940863bd22 Fix #endif
llvm-svn: 5615
2003-02-24 04:40:35 +00:00
Chris Lattner af9598f6a8 Add support for the slist extension
llvm-svn: 5614
2003-02-24 04:31:49 +00:00
Chris Lattner 45d67d6ea7 Initial implementation of Loop invariant memory->scalar promotion
llvm-svn: 5613
2003-02-24 03:52:32 +00:00
Chris Lattner 24545b6ec4 Tweak testcase
llvm-svn: 5612
2003-02-24 03:52:13 +00:00
Chris Lattner 15c1063736 New testcase for scalar promotion
llvm-svn: 5611
2003-02-24 03:52:04 +00:00
Chris Lattner 26f159046c Split mem2reg promotion into two parts: a function which does the work, and
a pass which wraps the function.  This allows other passes to use the functionality

llvm-svn: 5610
2003-02-22 23:57:48 +00:00
Chris Lattner 6dbd10c760 Add a new interface file for the PromoteMemToReg interface in the Utils library
llvm-svn: 5609
2003-02-22 23:04:52 +00:00
Chris Lattner 04cad6a010 Clean up std namespace references
llvm-svn: 5608
2003-02-22 22:25:17 +00:00
Chris Lattner ae43714e27 New testcase to check to see if LICM is performing scalar promotion
llvm-svn: 5607
2003-02-22 22:20:19 +00:00
Chris Lattner ef6ea65807 Dramatically simplify building of natural loops and fix a bug where the BBMap
was not correctly computed.

llvm-svn: 5606
2003-02-22 21:33:11 +00:00
Chris Lattner 1cbe5116ff Fix the requisite bug that I introduced
llvm-svn: 5605
2003-02-20 00:28:00 +00:00
Chris Lattner 1dc4c29b6d Fix 80 character formatting
llvm-svn: 5604
2003-02-20 00:18:07 +00:00
Chris Lattner 0049419836 Fix bug: 2003-02-19-LoopInfoNestingBug.ll
llvm-svn: 5603
2003-02-20 00:17:17 +00:00
Chris Lattner c93ead3d25 Add a testcase for broken loopinfo
llvm-svn: 5602
2003-02-20 00:09:26 +00:00
Chris Lattner 2bb3969979 Make tests rerun if analyze is rebuilt
llvm-svn: 5601
2003-02-20 00:09:19 +00:00
Chris Lattner 61493ff1d6 Fix warnings compiling C files
llvm-svn: 5600
2003-02-19 22:12:20 +00:00
Chris Lattner e5325ff767 Remove support for memset
llvm-svn: 5599
2003-02-18 20:42:15 +00:00
Chris Lattner eccbaee3c3 Add lots of functions
llvm-svn: 5598
2003-02-18 20:42:07 +00:00
Chris Lattner 57c8d99bbd 4 new transformations:
* X*C + X --> X * (C+1)
  * X + X*C --> X * (C+1)
  * X - X*C --> X * (1-C)
  * X*C - X --> X * (C-1)

llvm-svn: 5592
2003-02-18 19:57:07 +00:00
Chris Lattner 395934091d Add new testcases
llvm-svn: 5591
2003-02-18 19:55:31 +00:00
Chris Lattner de293ee40f Modernize testcase
llvm-svn: 5590
2003-02-18 19:43:53 +00:00
Chris Lattner 2ae37b0229 Modernize testcases
llvm-svn: 5589
2003-02-18 19:43:21 +00:00
Chris Lattner c5fccf34ab test for a variety of new transformations:
* A & ~A == 0
  * A / (2^c) == A >> c  if unsigned
  * 0 / A == 0
  * 1.0 * A == A
  * A * (2^c) == A << c
  * A ^ ~A == -1
  * A | ~A == -1
  * 0 % X = 0
  * A % (2^c) == A & (c-1) if unsigned
  * A - (A & B) == A & ~B
  * -1 - A == ~A

llvm-svn: 5588
2003-02-18 19:28:47 +00:00
Chris Lattner 3082c5a070 Add a variety of new transformations:
* A & ~A == 0
  * A / (2^c) == A >> c  if unsigned
  * 0 / A == 0
  * 1.0 * A == A
  * A * (2^c) == A << c
  * A ^ ~A == -1
  * A | ~A == -1
  * 0 % X = 0
  * A % (2^c) == A & (c-1) if unsigned
  * A - (A & B) == A & ~B
  * -1 - A == ~A

llvm-svn: 5587
2003-02-18 19:28:33 +00:00
Chris Lattner 2bf6c22c9b modernize testcase
llvm-svn: 5586
2003-02-18 19:16:45 +00:00
Chris Lattner 2deaf77d1d Modernize testcase
llvm-svn: 5585
2003-02-18 18:06:44 +00:00
Chris Lattner b39d6355e1 Fix resolution of indirect function calls... whoops
llvm-svn: 5576
2003-02-14 23:27:18 +00:00
Anand Shukla f8c09ee341 Changes to runtime framework
llvm-svn: 5572
2003-02-14 20:41:53 +00:00