oota-llvm.git
19 years agoprint the machine CFG in the -print-machineinstrs dump
Chris Lattner [Fri, 1 Apr 2005 06:48:38 +0000 (06:48 +0000)]
print the machine CFG in the -print-machineinstrs dump

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20976 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix stores to global addresses
Nate Begeman [Fri, 1 Apr 2005 05:57:17 +0000 (05:57 +0000)]
Fix stores to global addresses
Fix calls with no arguments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20975 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoSupport indexed loads and stores. This drops Shootout/matrix time from
Nate Begeman [Fri, 1 Apr 2005 04:45:11 +0000 (04:45 +0000)]
Support indexed loads and stores.  This drops Shootout/matrix time from
18.8 to 14.8 seconds.  The Pattern ISel is now often faster than the
Simple ISel, esp. on memory intensive code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20973 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement FP_TO_SINT and FP_TO_UINT
Nate Begeman [Fri, 1 Apr 2005 02:59:27 +0000 (02:59 +0000)]
Implement FP_TO_SINT and FP_TO_UINT

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20972 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd support for adding 0.0 and -0.0 to the constant pool, since we lie and
Nate Begeman [Fri, 1 Apr 2005 01:08:07 +0000 (01:08 +0000)]
Add support for adding 0.0 and -0.0 to the constant pool, since we lie and
say that we support them, for the purposes of generating fsel instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20970 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFactor out common code, support FP comparison in folded SetCC
Nate Begeman [Fri, 1 Apr 2005 00:32:34 +0000 (00:32 +0000)]
Factor out common code, support FP comparison in folded SetCC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20969 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agofsel generation for f32 and f64 select
Nate Begeman [Thu, 31 Mar 2005 23:55:40 +0000 (23:55 +0000)]
fsel generation for f32 and f64 select
generate compare immediate for integer compare with constant
fold setcc into branch
fold setcc into select

Code generation quality for Shootout is now on par with the Simple ISel

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20968 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agomake fp div trick dependend on flag
Andrew Lenharth [Thu, 31 Mar 2005 22:02:25 +0000 (22:02 +0000)]
make fp div trick dependend on flag

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20967 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix spelling of `corresponds'
Misha Brukman [Thu, 31 Mar 2005 21:30:35 +0000 (21:30 +0000)]
Fix spelling of `corresponds'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20966 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoPCMarker support for DAG and Alpha
Andrew Lenharth [Thu, 31 Mar 2005 21:24:06 +0000 (21:24 +0000)]
PCMarker support for DAG and Alpha

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20965 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAssorted fixes:
Duraid Madina [Thu, 31 Mar 2005 12:31:11 +0000 (12:31 +0000)]
Assorted fixes:
  * Stop being pessimistic about output register allocation
  * Start to handle function descriptors: compute target GPs and so on
  when doing indirect calls etc. Not there yet, though. For the moment,
  we try to use _indirect_ branches wherever possible, to stress test
  function descriptors.
  * FP divide-by-zero should work now
  * add varargs (it doesn't work, though)

At this point, all of SingleSource passes (modulo C++ tests that are due
to issues with the CFE, see note in the README.) Much of MultiSource also
passes although there's still a ton of bugs around. Something for me to
work on tomorrow, then. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20960 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* declare local common symbols as such (.lcomm, not merely .common)
Duraid Madina [Thu, 31 Mar 2005 07:40:24 +0000 (07:40 +0000)]
* declare local common symbols as such (.lcomm, not merely .common)
* begin great adventure into correct function descriptor materialization

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20956 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agodaintyness
Duraid Madina [Thu, 31 Mar 2005 07:36:43 +0000 (07:36 +0000)]
daintyness

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20955 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadd what we need to fudge a 'floating point conditional move', this is
Duraid Madina [Thu, 31 Mar 2005 07:32:32 +0000 (07:32 +0000)]
add what we need to fudge a 'floating point conditional move', this is
used to get FP div-by-zero working properly (shunt the right answer
depending on how frcpa sets its predicate output)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20954 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoPass the correct values to the chain argument for node construction during
Nate Begeman [Thu, 31 Mar 2005 02:05:53 +0000 (02:05 +0000)]
Pass the correct values to the chain argument for node construction during
LowerCallTo.
Handle ISD::ADD in SelectAddr, allowing us to have nonzero immediates for
loads and stores, amazing!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20946 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoRewrite LowerCallTo and Select(ISD::CALL) to properly handle float varargs
Nate Begeman [Thu, 31 Mar 2005 00:15:26 +0000 (00:15 +0000)]
Rewrite LowerCallTo and Select(ISD::CALL) to properly handle float varargs
Tell the SelectionDAG ISel to expand SEXTLOAD of i1 and i8, rather than
  complicate the code in ISD::SEXTLOAD to do it by hand
Combine the FP and Int ISD::LOAD codegen
Generate better code for constant pool loads

As a result, all of Shootout, and likely many other programs are now
working.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20945 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix calls whose arguments fit entirely in registers to not break the Chain.
Nate Begeman [Wed, 30 Mar 2005 19:38:35 +0000 (19:38 +0000)]
Fix calls whose arguments fit entirely in registers to not break the Chain.
Implement SINT_TO_FP and UINT_TO_FP
Remove some dead code from the simple ISel

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20944 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Put command-line switches and function names in <tt>
Misha Brukman [Wed, 30 Mar 2005 19:14:24 +0000 (19:14 +0000)]
* Put command-line switches and function names in <tt>
* Add links to mailing lists and publications

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20943 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoyea, fine Duraid
Andrew Lenharth [Wed, 30 Mar 2005 18:22:52 +0000 (18:22 +0000)]
yea, fine Duraid

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20942 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd section for Itanium
Duraid Madina [Wed, 30 Mar 2005 05:33:54 +0000 (05:33 +0000)]
Add section for Itanium

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20941 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix frame index code to generate legal PowerPC instructions. About half of
Nate Begeman [Wed, 30 Mar 2005 02:23:08 +0000 (02:23 +0000)]
Fix frame index code to generate legal PowerPC instructions.  About half of
Shootout now works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20940 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix external symbol printing in the AsmPrinter. Tell the ISel that we
Nate Begeman [Wed, 30 Mar 2005 01:45:43 +0000 (01:45 +0000)]
Fix external symbol printing in the AsmPrinter.  Tell the ISel that we
don't support things like memcpy directly.  This allows a handful of the
Shootout programs to work, yay!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20939 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Add section for Alpha
Misha Brukman [Wed, 30 Mar 2005 01:14:38 +0000 (01:14 +0000)]
* Add section for Alpha
* Remove extraneous subsections

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20938 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoInstead of setting up the CFG edges at selectiondag construction time, set
Chris Lattner [Wed, 30 Mar 2005 01:10:47 +0000 (01:10 +0000)]
Instead of setting up the CFG edges at selectiondag construction time, set
them up after the code has been emitted.  This allows targets to select one
mbb as multiple mbb's as needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20937 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agodon't depend on the cfg being set up yet
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

19 years agoFix BranchCC (it's still dumb), and implement FP select (also dumb)
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

19 years agoImplement integer select and i1 sign extend
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

19 years agoImplement SetCC, fix ZERO_EXTEND_INREG
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

19 years agoimport all of the rest of the stubs that dsa uses for direct comparison
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

19 years agoCompare dependence analysis with llvm instructions versus machine instrutions. the...
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

19 years agoDependence analyzer that just determines dependences within a loop for loads and...
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

19 years agolearn about some more functions.
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

19 years agoFix up some types and constants
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

19 years agoFix a problem where we not marking incoming arguments to functions with
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

19 years agoFix a bug that andrew noticed where we do not correctly sign/zero extend
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

19 years agothere is no point comparing against null pointer.
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

19 years agoFix a major problem with global variable initializers. This could cause
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

19 years agofix a warning in the optimized build
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

19 years agoadd some more functions, ignore setcc for constraints!
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

19 years agodisable this transformation in the one obscure case that really pessimizes
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

19 years agothere is no reason to run -instcombine -instcombine!
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

19 years agoHandle "known" external calls context sensitively, add support for realloc
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

19 years agoImplement div, rem, and frameindex
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

19 years agoPattern ISel: fix argument loading for i64s (thanks chris)
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

19 years agoRemove fake instruction 'subc' (mnemonic for subfc).
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

19 years agoimplement legalization of build_pair for nate
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

19 years agoFirst step in adding pcmarker intrinsic. Second step (soon) is adding backend support.
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

19 years agoImplement proper loads and zero-extends of all types
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

19 years agoEmit .global @function and .global @object entries so the Intel ias
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

19 years agoTeach andersens that non-escaping memory cannot be mod/ref'd by external fn calls.
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

19 years agoFix grammar
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

19 years agoMake anders-aa much more precise by not being completely pessimistic about
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

19 years agoFix VC++ build breakage
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

19 years agoRename createPromoteMemoryToRegister() to
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

19 years agowrap some long lines
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

19 years agoremove ...
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

19 years agospeed up steens by using spliceFrom, improve its precision by realizing that
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

19 years agoteach andersens about undef
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

19 years agoDon't give up completely, maybe other AA can say something about this.
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

19 years agoFactor out percentage printing into its own function. Make two changes to
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

19 years agoCache mapping information for a call site after computing it for a mod/ref
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

19 years agoRemove more long dead code: dsa doesn't provide must alias info
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

19 years agoremove some unsafe code that has long been dead
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

19 years agoslightly improve mod/ref for DSAA by checking the globals graph for fallback
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

19 years agoTeach steens-aa two things about mod/ref information:
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

19 years agoInterchange this loop so that we test all pointers against one call site
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

19 years agoFix that pesky floats in integer regs problem by assigning the f32 type to
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

19 years agoGet closer to having varargs working. There's still something strange
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

19 years agoMake 64bit args and float args work correct with calls. Thanks to Chris
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

19 years agoChange LowerCallTo to take a boolean isVarArg argument. This is needed
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

19 years agoChange interface to LowerCallTo to take a boolean isVarArg argument.
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

19 years agoNext round of pattern isel changes, mostly dealing with calls.
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

19 years agoCorrect a documention link
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

19 years agono really, don't double count these nodes either!
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

19 years agoDon't count all of the nodes in the SCC once for each function in the SCC.
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

19 years agoGrow the EQ classes for globals at the end of the BU pass. This shrinks
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

19 years agofix the RUN line on this testcase so it passes.
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

19 years agoSupport global addresses and fix call returns. Varargs still aren't
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

19 years agoEnhance loopsimplify to preserve alias analysis instead of clobbering it.
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

19 years agoTreat free operations as volatile, since they cannot be moved. This fixes
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

19 years agoNew testcase that crashes licm.
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

19 years agoFix a bug where LICM was not updating AA information properly when sinking
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

19 years agoremove a debugging timer.
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

19 years agoTwo changes here:
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

19 years agoMake the spliceFrom case where one graph is completely empty be constant time.
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

19 years agoadd a new DSGraph::spliceFrom method, which violently takes the content of
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

19 years agoadd new spliceFrom methods.
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

19 years agoImplement next round of Pattern ISel fixes
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

19 years agoFix an incorrect argument being passed to BuildMI for indirect calls.
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

19 years agoThis replaces the correct but slow code with a more aggressive scc-finder
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

19 years agoonly look at successors of globals. This gets us down to "only" 22s in the
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

19 years agoUnfortunately, a previous patch was not safe. Revert it, reimplement
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

19 years agoCommit Gabor Greif's patch to use iterators in lowering intrinsics.
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

19 years agodon't bother |'ing in 0's
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

19 years agobe more aggressive about incompleteness marking
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

19 years agonew testcase that DS-AA is causing to be miscompiled.
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

19 years agoeliminate dead variables, patch contributed by Gabor Greif!
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

19 years agoImplement more of the PPC32 Pattern ISel:
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

19 years agoFix silly "no newline at end of file" warning
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

19 years agoFix compilation errors, patch contributed by the fabulous Bill Wendling!
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