Chris Lattner [Wed, 30 Mar 2005 01:10:00 +0000 (01:10 +0000)]
don't depend on the cfg being set up yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20936
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 29 Mar 2005 22:48:55 +0000 (22:48 +0000)]
Fix BranchCC (it's still dumb), and implement FP select (also dumb)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20935
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 29 Mar 2005 22:24:51 +0000 (22:24 +0000)]
Implement integer select and i1 sign extend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20934
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 29 Mar 2005 21:54:38 +0000 (21:54 +0000)]
Implement SetCC, fix ZERO_EXTEND_INREG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20933
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 20:36:05 +0000 (20:36 +0000)]
import all of the rest of the stubs that dsa uses for direct comparison
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20932
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 29 Mar 2005 20:35:10 +0000 (20:35 +0000)]
Compare dependence analysis with llvm instructions versus machine instrutions. the problem with using machine instructions and alias analysis is that aa does not handle tmp instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20931
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 29 Mar 2005 20:33:42 +0000 (20:33 +0000)]
Dependence analyzer that just determines dependences within a loop for loads and stores using alias analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20930
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 20:04:24 +0000 (20:04 +0000)]
learn about some more functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20929
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 29 Mar 2005 19:24:04 +0000 (19:24 +0000)]
Fix up some types and constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20928
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 19:16:59 +0000 (19:16 +0000)]
Fix a problem where we not marking incoming arguments to functions with
external linkage as incomplete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20927
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 19:09:56 +0000 (19:09 +0000)]
Fix a bug that andrew noticed where we do not correctly sign/zero extend
returned integer values all of the way to 64-bits (we only did it to 32-bits
leaving the top bits undefined). This causes problems for targets like alpha
whose ABI's define the top bits too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20926
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 17:44:52 +0000 (17:44 +0000)]
there is no point comparing against null pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20925
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 17:21:53 +0000 (17:21 +0000)]
Fix a major problem with global variable initializers. This could cause
us to have stuff pointing to the null pointer, which makes no sense
(the null ptr is an ssa value, not the null object)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20922
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 15:13:27 +0000 (15:13 +0000)]
fix a warning in the optimized build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20920
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 06:52:20 +0000 (06:52 +0000)]
add some more functions, ignore setcc for constraints!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20917
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 06:37:47 +0000 (06:37 +0000)]
disable this transformation in the one obscure case that really pessimizes
pointer analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20916
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 06:25:11 +0000 (06:25 +0000)]
there is no reason to run -instcombine -instcombine!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20915
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Mar 2005 06:09:07 +0000 (06:09 +0000)]
Handle "known" external calls context sensitively, add support for realloc
and a couple of other functions that are important.
Handle aggregate undef values for gv initializers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20914
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 29 Mar 2005 00:03:27 +0000 (00:03 +0000)]
Implement div, rem, and frameindex
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20907
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 28 Mar 2005 23:08:54 +0000 (23:08 +0000)]
Pattern ISel: fix argument loading for i64s (thanks chris)
Simple ISel: fix i64 subtract
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20903
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 28 Mar 2005 22:28:37 +0000 (22:28 +0000)]
Remove fake instruction 'subc' (mnemonic for subfc).
More pattern isel updates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20902
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 28 Mar 2005 22:03:13 +0000 (22:03 +0000)]
implement legalization of build_pair for nate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20901
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 28 Mar 2005 20:05:49 +0000 (20:05 +0000)]
First step in adding pcmarker intrinsic. Second step (soon) is adding backend support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20900
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 28 Mar 2005 19:36:43 +0000 (19:36 +0000)]
Implement proper loads and zero-extends of all types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20897
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 28 Mar 2005 15:21:43 +0000 (15:21 +0000)]
Emit .global @function and .global @object entries so the Intel ias
assembler may be used; identify LLVM output as such.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20892
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 28 Mar 2005 06:21:17 +0000 (06:21 +0000)]
Teach andersens that non-escaping memory cannot be mod/ref'd by external fn calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20891
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 28 Mar 2005 04:32:12 +0000 (04:32 +0000)]
Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20890
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 28 Mar 2005 04:03:52 +0000 (04:03 +0000)]
Make anders-aa much more precise by not being completely pessimistic about
external functions. Teach it about a few important ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20889
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Mon, 28 Mar 2005 02:52:28 +0000 (02:52 +0000)]
Fix VC++ build breakage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20888
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 28 Mar 2005 02:01:12 +0000 (02:01 +0000)]
Rename createPromoteMemoryToRegister() to
createPromoteMemoryToRegisterPass() to be consistent with other pass
creation functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20885
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Mar 2005 22:03:46 +0000 (22:03 +0000)]
wrap some long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20884
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Mar 2005 21:57:09 +0000 (21:57 +0000)]
remove ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20883
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Mar 2005 21:56:55 +0000 (21:56 +0000)]
speed up steens by using spliceFrom, improve its precision by realizing that
an incomplete node cannot alias a complete node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20882
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Mar 2005 18:58:23 +0000 (18:58 +0000)]
teach andersens about undef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20881
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Mar 2005 00:02:33 +0000 (00:02 +0000)]
Don't give up completely, maybe other AA can say something about this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20873
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 23:56:33 +0000 (23:56 +0000)]
Factor out percentage printing into its own function. Make two changes to
the function: print more precision XX.X% instead of XX%, and cast to ULL
before scaling by 100/1000 to avoid wrap around for large numbers of queries
(such as occur for 253.perlbmk and 176.gcc)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20872
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 23:29:03 +0000 (23:29 +0000)]
Cache mapping information for a call site after computing it for a mod/ref
query. If the next mod/ref query happens to be for the same call site
(which is extremely likely), use the cache instead of recomputing the
callee/caller mapping. This makes -aa-eval ***MUCH*** faster with
ds-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20871
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 22:54:46 +0000 (22:54 +0000)]
Remove more long dead code: dsa doesn't provide must alias info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20870
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 22:48:42 +0000 (22:48 +0000)]
remove some unsafe code that has long been dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20869
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 22:47:03 +0000 (22:47 +0000)]
slightly improve mod/ref for DSAA by checking the globals graph for fallback
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20868
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 22:43:20 +0000 (22:43 +0000)]
Teach steens-aa two things about mod/ref information:
1. If memory never escapes the program, it cannot be mod/ref'd by external
functions.
2. If memory is global never mod/ref'd in the program, it cannot be mod/ref'd
by any call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20867
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 26 Mar 2005 22:16:44 +0000 (22:16 +0000)]
Interchange this loop so that we test all pointers against one call site
before moving on to the next call site. This will be a more efficient way
to compute the mod/ref set for AA implementations like DSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20866
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 08:25:22 +0000 (08:25 +0000)]
Fix that pesky floats in integer regs problem by assigning the f32 type to
the correct register class. Also remove the loading of float data into int
regs part of varargs; it will need to be implemented differently later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20857
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 07:46:36 +0000 (07:46 +0000)]
Get closer to having varargs working. There's still something strange
going on with copies between floating point and integer register files
being generated. Once that is solved, varargs will be done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20856
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 02:17:46 +0000 (02:17 +0000)]
Make 64bit args and float args work correct with calls. Thanks to Chris
for explaining EXTRACT_ELEMENT to me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20847
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 01:30:30 +0000 (01:30 +0000)]
Change LowerCallTo to take a boolean isVarArg argument. This is needed
by the PowerPC backend, and probably others in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20843
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 01:29:23 +0000 (01:29 +0000)]
Change interface to LowerCallTo to take a boolean isVarArg argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20842
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 01:28:53 +0000 (01:28 +0000)]
Next round of pattern isel changes, mostly dealing with calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20841
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Mar 2005 01:28:05 +0000 (01:28 +0000)]
Correct a documention link
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20840
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 20:54:45 +0000 (20:54 +0000)]
no really, don't double count these nodes either!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20837
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 20:37:32 +0000 (20:37 +0000)]
Don't count all of the nodes in the SCC once for each function in the SCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20836
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 16:45:43 +0000 (16:45 +0000)]
Grow the EQ classes for globals at the end of the BU pass. This shrinks
memory usage in the TD pass for 254.gap from 31.3MB to 3.9MB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20834
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 15:36:19 +0000 (15:36 +0000)]
fix the RUN line on this testcase so it passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20833
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 25 Mar 2005 08:34:25 +0000 (08:34 +0000)]
Support global addresses and fix call returns. Varargs still aren't
handled correctly for floating point arguments, or more than 8 arguemnts.
This does however, allow hello world to run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20832
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 06:37:22 +0000 (06:37 +0000)]
Enhance loopsimplify to preserve alias analysis instead of clobbering it.
This prevents crashes on some programs when using -ds-aa -licm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20831
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 05:49:37 +0000 (05:49 +0000)]
Treat free operations as volatile, since they cannot be moved. This fixes
Transforms/LICM/2005-03-24-LICM-Aggregate-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20830
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 05:49:13 +0000 (05:49 +0000)]
New testcase that crashes licm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20829
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 00:22:36 +0000 (00:22 +0000)]
Fix a bug where LICM was not updating AA information properly when sinking
a pointer value out of a loop causing it to be duplicated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20828
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 00:06:09 +0000 (00:06 +0000)]
remove a debugging timer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20827
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 00:05:04 +0000 (00:05 +0000)]
Two changes here:
1. Instead of copying Local graphs to the BU graphs to start with, use
spliceFrom to do the job (which is constant time in this case). On
176.gcc, this chops off .17s from the bu pass.
2. When building SCC graphs, simplify the logic and use spliceFrom to
do the heavy lifting, instead of cloneInto/delete. This slices
another .14s off 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20826
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Mar 2005 00:02:41 +0000 (00:02 +0000)]
Make the spliceFrom case where one graph is completely empty be constant time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20825
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 23:46:04 +0000 (23:46 +0000)]
add a new DSGraph::spliceFrom method, which violently takes the content of
one graph and plops it into another, without breaking a sweat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20824
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 23:45:20 +0000 (23:45 +0000)]
add new spliceFrom methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20823
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 23:35:30 +0000 (23:35 +0000)]
Implement next round of Pattern ISel fixes
1. void returns
2. multiplies
3. calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20822
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 23:34:38 +0000 (23:34 +0000)]
Fix an incorrect argument being passed to BuildMI for indirect calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20821
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 23:06:02 +0000 (23:06 +0000)]
This replaces the correct but slow code with a more aggressive scc-finder
based approach to find globals and call sites that need to be copied. This
speeds up the BU pass on 176.gcc from 22s back up to 2.3s. Not as good
as 1.5s, but at least it's correct :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20820
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 21:17:27 +0000 (21:17 +0000)]
only look at successors of globals. This gets us down to "only" 22s in the
bu pass for 176.gcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20818
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 21:07:47 +0000 (21:07 +0000)]
Unfortunately, a previous patch was not safe. Revert it, reimplement
something correct. Unfortunately this takes 176.gcc's BU phase back
up to 29s from 1.5. This fixes DSGraph/2005-03-24-Global-Arg-Alias.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20817
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 20:07:16 +0000 (20:07 +0000)]
Commit Gabor Greif's patch to use iterators in lowering intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20816
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 18:42:51 +0000 (18:42 +0000)]
don't bother |'ing in 0's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20815
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 18:42:28 +0000 (18:42 +0000)]
be more aggressive about incompleteness marking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20814
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 17:57:43 +0000 (17:57 +0000)]
new testcase that DS-AA is causing to be miscompiled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20813
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 17:32:20 +0000 (17:32 +0000)]
eliminate dead variables, patch contributed by Gabor Greif!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20812
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 06:28:42 +0000 (06:28 +0000)]
Implement more of the PPC32 Pattern ISel:
1) dynamic stack alloc
2) loads
3) shifts
4) subtract
5) immediate form of add, and, or, xor
6) change flag from -pattern-isel to -enable-ppc-pattern-isel
Remove dead arguments from getGlobalBaseReg in the simple ISel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20810
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 06:16:18 +0000 (06:16 +0000)]
Fix silly "no newline at end of file" warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20809
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 05:13:53 +0000 (05:13 +0000)]
Fix compilation errors, patch contributed by the fabulous Bill Wendling!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20808
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 05:12:48 +0000 (05:12 +0000)]
fix a compilation error, patch contributed by Bill Wendling!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20807
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 04:41:43 +0000 (04:41 +0000)]
Addition of the PPC32 Pattern ISel. While it is far from complete, it will
be brought up to parity with the current simple ISel in the coming days.
Currently, -pattern-isel is required to trigger it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20805
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 24 Mar 2005 04:39:54 +0000 (04:39 +0000)]
Remove comments that are now meaningless from the pattern ISels, at Chris's
request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20804
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 04:22:04 +0000 (04:22 +0000)]
Fix a crash while promoting a value out of a loop from a global variable
when using ds-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20802
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 03:04:50 +0000 (03:04 +0000)]
teach ds-aa about mod/ref for external function calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20801
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 02:41:19 +0000 (02:41 +0000)]
Simplify dead code into a fixme :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20800
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Mar 2005 01:22:52 +0000 (01:22 +0000)]
fix a compiler crash in runtime/libprofile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20799
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:51:12 +0000 (23:51 +0000)]
wrap a long line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20797
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:49:47 +0000 (23:49 +0000)]
If we are calling an external function, chain to another AA to potentially
decide, don't just immediately give up.
This implements GlobalsModRef/chaining-analysis.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20796
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:48:56 +0000 (23:48 +0000)]
GlobalMR should be able to analyze this function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20795
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:27:34 +0000 (23:27 +0000)]
if a function doesn't access memory at all, it definitely doesn't read it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20794
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 23:26:58 +0000 (23:26 +0000)]
Make this more efficient by only making one virtual method call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20793
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 22:06:41 +0000 (22:06 +0000)]
Make this a bit more aggressive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20792
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 21:59:34 +0000 (21:59 +0000)]
a hack to allow count-aa to work with ds-aa :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20791
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 21:59:07 +0000 (21:59 +0000)]
Add two options to allow -count-aa to print queries either (1) all queries,
or (2) only queries that are not successful (e.g. return may alias)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20790
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 23 Mar 2005 21:14:33 +0000 (21:14 +0000)]
Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20789
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 21:00:12 +0000 (21:00 +0000)]
enable -debug-only=licm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20788
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 20:12:08 +0000 (20:12 +0000)]
turn a dead conditional into an assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20787
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 20:08:59 +0000 (20:08 +0000)]
Totally gut mergeInGraph. There is absolutely no reason to be merging
global roots in from callees to callers. The BU graphs do not have accurate
globals information and all of the clients know it. Instead, just make sure
the GG is up-to-date, and they will be perfectly satiated.
This speeds up the BU pass on 176.gcc from 5.5s to 1.5s, and Loc+BU+TD
from 7s to 2.7s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20786
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 16:43:11 +0000 (16:43 +0000)]
wrap a long line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20785
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 23 Mar 2005 15:20:01 +0000 (15:20 +0000)]
don't lie to the register allocator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20784
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:48:09 +0000 (01:48 +0000)]
Make -steens-aa more conservative (aka correct) by making sure to obey
incompleteness flags.
Make it more aggressive by taking field sensitive information into
account.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20781
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 23 Mar 2005 01:47:20 +0000 (01:47 +0000)]
Added alias analysis.
Fixed many many bugs.
This now works on almost all Singlesource , and most of MultiSource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20780
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Mar 2005 01:47:19 +0000 (01:47 +0000)]
implement Analysis/DSGraph/field-sensitive.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20779
91177308-0d34-0410-b5e6-
96231b3b80d8