Commit Graph

3937 Commits

Author SHA1 Message Date
Chris Lattner
8947fbcb68 Expose expression reassociation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2557 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-08 22:18:34 +00:00
Chris Lattner
94fbab0022 Run expression reassociation as part of gccas
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2556 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-08 22:18:20 +00:00
Sumant Kowshik
9ddc86c6e5 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2552 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-08 18:09:58 +00:00
Chris Lattner
73e6298c9a Spell aggressive correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2551 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 22:15:01 +00:00
Chris Lattner
65f1b895bb Merge all include/llvm/Transforms/Scalar/* into a single Scalar.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2538 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 20:03:27 +00:00
Chris Lattner
ddca9d0dcb Fix makefiles after shuffling passes around the libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2532 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 19:27:33 +00:00
Chris Lattner
fc514f40a6 Move UnifyFunctionExitNodes to Utils library: final resting place this time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2531 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 19:18:48 +00:00
Chris Lattner
2b5235d650 Oops, somehow lost a slash. Fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2524 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 18:39:52 +00:00
Chris Lattner
c8cc4cb03b Updates to move some header files out of include/llvm/Transforms into
the Scalar and Utils subdirectories


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2523 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 18:36:35 +00:00
Chris Lattner
2154d13354 Straighten out makefiles after moving code to new Transform Utils library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2520 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 18:18:26 +00:00
Chris Lattner
5f06e10a84 GCSE is faster than SCCP, and it makes SCCP's job easier, so run it first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2503 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 18:54:12 +00:00
Chris Lattner
eadd32cda2 Instruction Combination can create a ton of trivially dead instructions. Remove
them with an DIE pass before more expensive optimizations are run.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2491 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 16:52:15 +00:00
Chris Lattner
9c1291c85e Run DCE AFTER SCCP and GCSE!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2476 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 03:04:17 +00:00
Chris Lattner
e23476a027 Remove unneccesary pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2421 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-30 20:53:05 +00:00
Chris Lattner
91b078dd54 These aren't tools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2412 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 20:29:30 +00:00
Chris Lattner
8ac58a83eb Move constant merging pass earlier
Include the SCCP pass in gccas


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2410 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 20:11:38 +00:00
Chris Lattner
fbaed2e070 Remove InstForest from analysis namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2401 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 18:13:31 +00:00
Chris Lattner
c6f3ae5c66 Eliminate duplicate or unneccesary #include's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2397 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 17:42:12 +00:00
Chris Lattner
96c466b06a Add new optional getPassName() virtual function that a Pass can override
to make debugging output a lot nicer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 14:57:45 +00:00
Chris Lattner
e6ef6690b0 Rename functions to be more consistend with other pass constructors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2388 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 21:45:36 +00:00
Chris Lattner
97e52e4336 Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2386 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 21:27:06 +00:00
Chris Lattner
4ec35ab1c6 Eliminate the cfg namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2371 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:21:53 +00:00
Chris Lattner
c6d52e07e5 Expose the internalize pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2365 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 05:49:53 +00:00
Chris Lattner
7bf5dfec19 Run the internalize pass to mark all functions except main internal when
linking the final program to allow smarter optimizations


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2364 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 05:49:45 +00:00
Chris Lattner
d43035e1d7 Use operator << to print modules
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2360 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 05:13:45 +00:00
Chris Lattner
598d21c7e5 Run GCSE as part of gccas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2340 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 01:00:15 +00:00
Chris Lattner
e5fb83ebb8 Expose new GCSE pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2339 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 00:48:17 +00:00
Chris Lattner
483e14ee04 s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2336 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 07:27:19 +00:00
Chris Lattner
f57b845547 * Rename MethodPass class to FunctionPass
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
  - Method is now const
  - It now takes one AnalysisUsage object to fill in instead of 3 vectors
    to fill in
  - Pass's now specify which other passes they _preserve_ not which ones
    they modify (be conservative!)
  - A pass can specify that it preserves all analyses (because it never
    modifies the underlying program)
* s/Method/Function/g in other random places as well


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 06:56:12 +00:00
Chris Lattner
76d12299b5 Make sure that there is no case where a signal can occur leaving a partially
written output file.  This is important because crashing testcases often write
part of a file out, and the testing harness decides the file is up-to-date next
time the test is run.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2303 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 19:55:25 +00:00
Chris Lattner
30af368082 * Add the printm pass to allow dumping the entire module after a transformation.
* s/Method/Function/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2234 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:32:47 +00:00
Chris Lattner
9d6e7eb74f Expose funcresolve pass through opt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2231 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:21:13 +00:00
Chris Lattner
f8b90ee366 * The cleangcc pass is broken into two parts, we only want to
FunctionResolvingPass one.
* We run it *after* the symbol stripping pass so that -strip can be
  pipelined with the constant merging pass or something else if desired.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2226 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:37:47 +00:00
Chris Lattner
6a1f6940a1 The cleangcc pass is brokeninto two pieces, execute both of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2225 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:33:32 +00:00
Chris Lattner
bc55a3140c Remove extranous #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2183 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:05:10 +00:00
Chris Lattner
02d6ef8976 s/PrintMethodPass/PrintFunctionPass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2182 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:05:01 +00:00
Chris Lattner
8bfa89c7f5 Add #includes
s/PrintMethodPass/PrintFunctionPass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2181 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:04:24 +00:00
Chris Lattner
2b59837f02 Add support for the gnu ld -s (strip) option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2157 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 05:18:12 +00:00
Chris Lattner
ad202a0620 GCCLD actually does transformations to simplify the linked program now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2155 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 00:14:58 +00:00
Chris Lattner
94202988a8 Remove asmwriter library from link line, because the useful contents of it
have been incorporated into the vmcore library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2153 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:35:30 +00:00
Chris Lattner
5bdf161418 Perform debug outputs with ->dump() instead of <<
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2152 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:34:44 +00:00
Chris Lattner
06272dcfb2 use dump method instead of Asm/Writer to do debug printing
Rename C to M because C used to be 'Class' and now we are 'Module'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2151 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:34:19 +00:00
Chris Lattner
2fbfdcffd3 Change references to the Method class to be references to the Function
class.  The Method class is obsolete (renamed) and all references to it
are being converted over to Function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 20:49:59 +00:00
Chris Lattner
69cd2b1ade Move the PromoteMemoryToRegister pass to be run _after_ the raise pointer
references pass, so it is given the chance to do some good!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2089 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 19:45:11 +00:00
Chris Lattner
bfd3a6afb0 Makefile change for IPO's that use the Datastructure analysis stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2015 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 18:10:31 +00:00
Chris Lattner
328207c3ff Add hook for pool allocation pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2013 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 18:08:07 +00:00
Chris Lattner
fe59454fa2 Checking for Cameron
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2011 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 17:56:28 +00:00
Cameron Buschardt
0732c70ffb Rename constructor function for mem2reg pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2008 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 23:29:23 +00:00
Chris Lattner
bc132d62d3 * Add support for DataStructure analysis
* Parameterize pass outputting with the printPass template, so analysis
  output can optionally take more arguments than just a stream.  The
  default output mode is just to use operator<< on the analysis.
* Remove CurrentModule hack, in favor of using printPass
* Remove special operator<<'s defined for FindUsedTypes and
  FindUnsafePointerTypes, in favor of printPass specializations
* Use std::cout instead of cout


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1995 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 22:43:12 +00:00
Vikram S. Adve
d32e70a09f Rename pass to DecomposeMultiDimRefs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1960 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:19:54 +00:00
Chris Lattner
081c409e27 Add a debugging option to gccas to cause it to not do level raise or anything
after it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1934 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 21:21:50 +00:00
Chris Lattner
2b72c360bb Expose dead instruction elimination pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1877 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-14 22:36:15 +00:00
Chris Lattner
084235a989 Echo the right tool name on error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1865 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-12 15:41:36 +00:00
Chris Lattner
2dc78088b7 Remove runtime library in favor of users linking against real libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1853 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-11 17:57:13 +00:00
Chris Lattner
41c3465812 * Implement linking to libraries
* Pass arguments to program through shell script


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1851 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-11 17:49:53 +00:00
Chris Lattner
71e7bb4bc0 Pull interprocedural analyses out of Analysis library into their own lib
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1827 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 18:44:29 +00:00
Chris Lattner
cabc17a293 Don't forget to build gccld!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1826 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 18:05:02 +00:00
Chris Lattner
70d12b037b Since verifier and SlotCalculator are now in VMCore library, libanalysis is
no longer required


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1823 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 17:41:18 +00:00
Chris Lattner
e2aed35319 Pull callgraph out of Cfg namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1822 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 17:40:37 +00:00
Chris Lattner
417fbe5287 Change to use new pass accessor functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1817 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 21:47:29 +00:00
Chris Lattner
bd0ef77cde Change over to use new style pass mechanism, now passes only expose small
creation functions in their public header file, unless they can help it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1816 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 21:46:54 +00:00
Chris Lattner
4ddcd54751 * Make all command line arguments static
* Change -trace & -tracem options to use a 3 values enum option
* Change to use new style interface to passes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1813 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 21:36:53 +00:00
Chris Lattner
eded4916d6 Move ProfilePaths class into ProfilePaths library, only expose a creation function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1812 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 20:04:59 +00:00
Anand Shukla
dc9a1f5ce8 Includes -paths option to trace paths in the program
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1811 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 19:57:59 +00:00
Anand Shukla
06e84ed495 Link in the PathProfiles library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1800 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 18:29:20 +00:00
Chris Lattner
ec4913ea7c Remove hack. This is better fixed in Makefile.common
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1795 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:25:46 +00:00
Chris Lattner
5b077b00a5 Cleanup to build with GCC 3.0.4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1794 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:25:24 +00:00
Chris Lattner
1156edf01c Build with newer compiler, with same bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1793 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:11:05 +00:00
Chris Lattner
bee1940791 GCC3.0.4 crashes when compiling this. Comment it out for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1792 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:03:37 +00:00
Chris Lattner
04bb837cc0 Genericize the ReversePostOrderIterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1785 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 21:48:59 +00:00
Chris Lattner
22d26d7c7d * Expose the verifier pass as one that can be ran
* Force the verifier to run before bytecode is written


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1783 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-20 17:56:53 +00:00
Chris Lattner
221d688a5e Method.h no longer includes BasicBlock.h
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12 21:07:25 +00:00
Chris Lattner
eeeaf52ab6 Enable register promotion pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1740 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12 17:17:33 +00:00
Chris Lattner
c8b758dedc Trim down makefile, again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1691 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:37:25 +00:00
Chris Lattner
69a28d0565 Cut down number of times libraries are included to link a little bit faster
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1678 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 06:43:56 +00:00
Chris Lattner
e41576d141 * Remove -noasm option. If we're not compiling, what's the point?
* convert over to pass based target backend.  Much cleaner now


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1665 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:43:19 +00:00
Chris Lattner
c889677195 Switch over to a model where we compile each method, emit assembly, then free
machineinstr memory before starting on the next method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1659 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:54:10 +00:00
Chris Lattner
7d922623e3 Catch the parse exception if bad input is provided. Much better than an abort
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1631 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-01 05:09:35 +00:00
Chris Lattner
0be4101d12 Add mergereturn pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1629 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-01 04:54:11 +00:00
Chris Lattner
c0cbbcf169 Add dependency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1620 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 18:33:23 +00:00
Chris Lattner
1fcaf00b6c Fix dependency problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1619 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 18:33:09 +00:00
Chris Lattner
0253ceeb56 Resolve deps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1615 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 15:52:41 +00:00
Chris Lattner
6a39f2c80c Resolve dependencies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1614 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 15:43:11 +00:00
Chris Lattner
fb1b3f119d Convert to use new Pass framework...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1610 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 00:47:12 +00:00
Chris Lattner
cd50d3fafa PassManager is now in its own header file
MethodPass's now cannot be run on external methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1609 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 00:46:45 +00:00
Chris Lattner
0f3bfffd9e PassManager is now in it's own header file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1608 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 00:46:22 +00:00
Chris Lattner
fa6db4be91 Convert analyze over to use new pass framework for its analyses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1607 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 00:46:09 +00:00
Chris Lattner
e8bab6a1c0 Accept, but ignore -lfoo options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1585 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-25 03:59:39 +00:00
Chris Lattner
e7fca510f3 Initial Checkin of gccld
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1578 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-24 19:12:12 +00:00
Chris Lattner
888912dbe0 In an amazing fit of stupidity, I flipped the conditional and didn't test
it right.  Sheesh :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1550 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 21:07:24 +00:00
Chris Lattner
e94525575f Only run DeadInst elimination early, because it is quick and painless and
pipelines well


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1549 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 21:06:44 +00:00
Chris Lattner
3dc67dd95b Misc cleanups. Allocate ofstream statically, and use a pass to write out the bytecode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1529 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 03:30:46 +00:00
Chris Lattner
5ad6b8b779 Try again, now it works right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1526 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 02:28:50 +00:00
Chris Lattner
d7db863c1d Rename LowerAllocations.h to ChangeAllocations.h since it now contains the
RaiseAllocations pass as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1525 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 01:04:08 +00:00
Chris Lattner
221653f8f6 Fix ordering dependency problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1524 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 01:03:39 +00:00
Chris Lattner
5048c3b853 Pull RaiseAllocations stuff out of the CleanGCC pass into it's own pass in
the ChangeAllocations.h header file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1522 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-22 00:13:51 +00:00
Chris Lattner
59b6b8e0b3 Move stuff out of the Optimizations directories into the appropriate Transforms
directories.  Eliminate the opt namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1520 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 23:17:48 +00:00
Chris Lattner
ae96151970 Chuck fixed the GCC problems so this hack is now unneccesary
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1519 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 23:17:07 +00:00
Chris Lattner
8efb9d733f Eliminate opt library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1516 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 23:13:46 +00:00
Chris Lattner
04c85dcad8 Rename SwapStructureContents -> IPO/SimpleStructMutation
Move MutateStructTypes.(cpp|h) -> IPO/MutateStructTypes.(cpp|h)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1510 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 07:52:35 +00:00
Chris Lattner
f4de63f65f Implement a more powerful, simpler, pass system. This pass system can figure
out how to run a collection of passes optimially given their behaviors and
charactaristics.

Convert code to use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1507 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 07:31:50 +00:00
Chris Lattner
697954c15d Changes to build successfully with GCC 3.02
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-20 22:54:45 +00:00
Chris Lattner
528e8b58a5 Add instruction combining pass
Rename -mergecons to -constmerge


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1478 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-14 16:50:35 +00:00
Chris Lattner
d584dcc6ef Add more passes to run after raising
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1476 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-14 16:48:30 +00:00
Chris Lattner
e20bcd81eb Build runtime library with local GCCAS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1447 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:44:23 +00:00
Chris Lattner
75ad704490 Implement strlen strdup strcmp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1446 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:44:09 +00:00
Chris Lattner
952d365a3a Tell the user if a file is corrupt or not... not that the file cannot be
found.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1433 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-08 20:31:32 +00:00
Chris Lattner
0d7a474463 Run DCE before cleanupGCCoutput which will cause some dead types (like FILE) to be removed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1429 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-07 04:25:36 +00:00
Chris Lattner
e04a967e7e Remove unnecesary namespace impot
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1419 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-05 06:35:30 +00:00
Chris Lattner
9c6f2ac665 Simplify induction variables before 'raising' the representation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1418 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-05 06:34:58 +00:00
Chris Lattner
fe196cf98b Use new induction variable simplification code with -indvars option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1410 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 04:32:04 +00:00
Chris Lattner
df89f6efbc Induction variables must be phi nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1402 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 17:27:42 +00:00
Chris Lattner
cee8f9ae67 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-27 00:03:19 +00:00
Chris Lattner
2409ddb5b2 -raise includes constprop and dce
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1397 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:37:43 +00:00
Chris Lattner
63202328d3 * Add hooks to globaldce
* Fix ugly hacks by implementing IPOs correctly
* Use an auto_ptr to manage the module lifecycle


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1395 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:22:39 +00:00
Chris Lattner
aa4730d9c3 Link to ipo library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1394 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:21:02 +00:00
Chris Lattner
aca8e90cd9 Fix problem where lli < foo.bc would have argc = 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1393 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:20:38 +00:00
Chris Lattner
de3b862a18 Add support to enable -lfoo to be processed correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1390 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:18:30 +00:00
Chris Lattner
75deac6b12 Add hooks to print natural loop information and induction variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1389 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:18:11 +00:00
Chris Lattner
ee6826b5e3 Change swapstructs itf
Add nasty hack to be removed later


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1356 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:18:53 +00:00
Chris Lattner
a8b3015d40 Run constprop before -raise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1354 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:16:07 +00:00
Chris Lattner
c2ae4f6d3b Fix link prob
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1297 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 11:03:17 +00:00
Chris Lattner
854acb996e Add hooks to call the new swap structcontents pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1243 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 07:16:10 +00:00
Chris Lattner
e764f60710 add Yet Another Instance of a Static Library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1242 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 07:15:53 +00:00
Chris Lattner
9f8ae2b8cc Add hooks for the FindUsedTypes pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1233 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 05:27:34 +00:00
Chris Lattner
483c3ee18e Add analysis pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1182 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 21:16:29 +00:00
Chris Lattner
068f487ee5 Move the Raise xform from opt to transforms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1072 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 02:41:09 +00:00
Chris Lattner
dbe0514e12 crunch the output of GCC a bit to make it nicer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1068 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 06:36:48 +00:00
Chris Lattner
11c862cf46 Fix dumb copy and paste typos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1063 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 04:33:33 +00:00
Chris Lattner
e166fe1910 Add hook for GCC cleanup pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1060 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 04:29:44 +00:00
Chris Lattner
f83bcfcd00 Build new gccas tool
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1059 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 04:29:30 +00:00
Chris Lattner
ecbde333a2 Initial checkin of GCCAS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1058 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 04:28:11 +00:00
Chris Lattner
53b20c34dc Implement memset memcpy, calloc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1055 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-30 22:37:01 +00:00
Chris Lattner
2b2e5b360e Initialize map for purify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1049 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-30 20:28:46 +00:00
Chris Lattner
fe83ab527d I screwed up the macros, so of course strtol didn't work. *sigh*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1035 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-29 17:47:10 +00:00
Chris Lattner
aa7420b35b Oops, accidentally broke reading from stdin when doing command line arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1026 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-29 14:00:48 +00:00
Chris Lattner
43e3f7c962 Implement a -trace command line option and a trace option in the interpreter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@989 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-27 08:43:52 +00:00
Chris Lattner
c259316730 * Make pointer values work better by treating them uniformly as 64 bit values.
This causes code that is generated by gcc to work better.
* Implement mul & div
* Export malloc, free, and pow
* add strtol, atoi, and atol to the runtime library


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@988 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-27 08:28:11 +00:00
Chris Lattner
204eec3f57 Provide argv for commands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@987 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-27 05:54:31 +00:00
Chris Lattner
e43db88b2d * Implement exit() builtin function
* Implement linked in runtime library with puts(char*) in it
* implement builtin putchar(int) function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@985 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-27 04:15:57 +00:00
Chris Lattner
4a82271451 Add support for building a runtime library for LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@983 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-24 19:52:41 +00:00
Chris Lattner
65be321fdb Implement a -L command line argument to specify a search path. Implement minimal ar compatibility stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@975 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-24 06:23:00 +00:00
Chris Lattner
d6b65255fe Changes to get some meaningful feedback from the bytecode reader. At some point this stuff should all be exception driven, but for now it is not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@970 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-24 01:15:12 +00:00
Chris Lattner
b81adf14fb Add '-v' option to enable verbose output from the linker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@966 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-23 20:44:55 +00:00
Chris Lattner
ffa6f9ca06 Fix to reference the right header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@915 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-19 15:39:14 +00:00
Chris Lattner
f8f2afb8cc Enhancements to pass argc & argv to main if required
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@909 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 21:55:32 +00:00
Chris Lattner
d7477ee9d9 Remove unneccesary retcode var
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@905 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:33:21 +00:00
Chris Lattner
2197d21c3b Refactor Assembly/Bytecode writer code into Assembly & bytecode libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@904 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:32:07 +00:00
Chris Lattner
9effd69ca2 Expose more xforms to the opt utility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@900 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:06:45 +00:00
Chris Lattner
c2c9dd1718 Bytecode writer is yanked out of Module printer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@899 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:06:31 +00:00
Vikram S. Adve
712ac2b951 Move malloc/free lowering after tracing until lli supports
calls to external malloc/free functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@893 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 18:20:20 +00:00
Chris Lattner
c9a1de6d1b Only output code if file open is successful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@890 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 17:07:22 +00:00
Vikram S. Adve
79a334968c Trace code should always be exported just before code generation;
this is not a debugging option.  But we can export it as assembly
instead of bytecode if -debugtrace is specified.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@889 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 13:51:20 +00:00
Chris Lattner
73e11d77aa Use the standard header not the old one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@886 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 06:13:08 +00:00
Chris Lattner
0eafc31684 Add support to insert trace code as an "optimization"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@884 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 06:05:15 +00:00
Chris Lattner
685639df42 Convert to new simpler, more powerful pass structure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@882 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 05:28:44 +00:00
Chris Lattner
6db0f4795c * Passes return true if they change something, not if they fail
* Convert opt to use Pass's and convert optimizations to pass structure


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@870 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 01:31:43 +00:00
Chris Lattner
05e5e070ee Passes return true if they change something, not if they fail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@869 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 01:31:22 +00:00
Chris Lattner
2db4b72017 ConcretePass should not be a templated class!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@838 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:47:13 +00:00
Chris Lattner
25c1229930 Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@837 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:41:24 +00:00
Chris Lattner
3524fc2197 Use the new Pass infrastructure to clean up llc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@835 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:30:47 +00:00
Chris Lattner
1f4b6eb79f Add library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@827 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 15:55:15 +00:00
Chris Lattner
90c5b3d753 Minor code cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@825 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 13:47:13 +00:00
Chris Lattner
2e42d3a306 Implement global variables. Struct and Pointer initializers are not implemented yet though
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@818 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 05:51:48 +00:00
Vikram S. Adve
2f64f9f264 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@811 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:29:28 +00:00
Chris Lattner
164cb69e04 Add a new -d argument to dump the internal rep as assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@804 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:23:33 +00:00
Chris Lattner
b27c9e72d1 MethodTypes take an explicit isVarArg argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@782 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 07:07:28 +00:00
Chris Lattner
1d7b50b4f8 Fix comment flyer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@781 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 07:06:57 +00:00
Chris Lattner
075a0b771e Add new linker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@780 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 07:06:23 +00:00
Chris Lattner
38c13463f6 Build the new linker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@779 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 07:06:06 +00:00
Vikram S. Adve
7b70f3f086 Repeat some libs due to circular dependences between Sparc and other
code gen libraries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@722 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:58:57 +00:00
Chris Lattner
b79757c621 Add hack to get rid of malloc & free instructions for code generation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@713 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-04 01:40:53 +00:00
Chris Lattner
3ff4387113 Pull iterators out of CFG.h and CFGdecls and put them in Support directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@664 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 22:56:31 +00:00
Chris Lattner
c4199ecf6e Add support to print a call graph, and also add support for module level interprocedural analyses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@659 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 00:07:36 +00:00
Chris Lattner
78f7e1a9cd Add proper support to send output to the right place
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@649 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-19 16:52:09 +00:00
Chris Lattner
565046714e Emit assembly language from the target...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@640 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-19 13:56:47 +00:00
Chris Lattner
da784ee81f C++ gives us auto_ptr's, so we might as well use them. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@629 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 17:04:18 +00:00
Vikram S. Adve
805eb96727 Minor changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@622 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 13:10:45 +00:00
Ruchira Sasanka
a5c5abc81b Added regalloc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@584 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 00:28:37 +00:00
Chris Lattner
43c6dfea25 Oops, accidentally checked my debugging makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@583 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 23:21:08 +00:00
Chris Lattner
b26bcc5087 Make a new llvm/Target #include directory.
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@566 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 05:34:53 +00:00
Chris Lattner
f6e0e28135 Checkin changes to:
1. Clean up the TargetMachine structure.  No more wierd pointers that have to
   be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument.  The same
   should be done with the instinfo, it just isn't now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@565 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 04:32:55 +00:00
Chris Lattner
0e6530ee1b This checkin represents some cleanup of the backend, implementing the following things:
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@559 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:37:52 +00:00
Chris Lattner
b312259842 Export the instruction forest support from the analysis library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@556 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 01:42:42 +00:00
Chris Lattner
365a76e46e Genericize support for calling functions a bit
Add external method support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@528 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 04:49:44 +00:00
Chris Lattner
e4ca607ab0 iFix dependence order
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@517 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 21:03:12 +00:00
Chris Lattner
424b847f07 Remove extraneous space
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@509 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 19:35:33 +00:00
Chris Lattner
c9744e7f26 Make use of the new TOOLNAME/USEDLIBS options provided in Makefile.common
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@501 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 22:59:25 +00:00
Chris Lattner
195b539500 Remove old old file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@497 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 22:52:07 +00:00
Chris Lattner
e737c7ac63 Convert llc driver to standard tool format
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@496 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 22:20:50 +00:00
Chris Lattner
a105022a78 Uhm... that was really bad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@493 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:26:51 +00:00
Chris Lattner
46ac43c1bb Clean up driver
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@492 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:26:31 +00:00
Chris Lattner
6dcf92a150 Remove support for const pool merging, which is obsolete now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@471 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:59:35 +00:00
Chris Lattner
e88df63b94 Build lli first
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@469 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:58:57 +00:00
Vikram S. Adve
c34b88fd13 Makefile for tools/tests/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@409 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:28:25 +00:00
Vikram S. Adve
0eca9ed813 Driver to test IsPowerOf2. Could be extended for other library routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@408 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:28:10 +00:00
Vikram S. Adve
e595ba7631 Changed link line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@405 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:23:35 +00:00
Vikram S. Adve
14335835f1 Add calls to NormalizeMethod() and to ScheduleInstructionsWithSSA().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@404 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:23:14 +00:00
Chris Lattner
86660981e1 Lots of new functionality
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@372 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-27 05:16:50 +00:00
Vikram S. Adve
989bfcf387 Add dependence to libvmcore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-25 12:43:25 +00:00
Chris Lattner
766403276f Compile LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-23 17:09:06 +00:00
Chris Lattner
92101acd7f Initial checkin of interpreter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-23 17:05:04 +00:00
Chris Lattner
0c4897e5c5 Add library dep
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:48:43 +00:00
Chris Lattner
da5cfa369f Parenthesize output for expranalyze so that pointer stuff being multiplied isn't confusing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:48:37 +00:00
Chris Lattner
f3a5981663 Build as before dis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:48:09 +00:00
Chris Lattner
afb0cbb9f8 Change option name slightly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 23:02:51 +00:00
Chris Lattner
a8e1fd30ed Use the new Alias command line option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 20:22:30 +00:00
Chris Lattner
1e78f36127 CommandLine library cleanup. No longer use getValue/setValue, instead, just treat the commandline
args as the objects they represent and the "right thing" will happen


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 19:27:24 +00:00
Chris Lattner
e2aad23855 -help is verbose enough that we don't need this anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 18:31:02 +00:00
Chris Lattner
57dbb3ad63 Moved inline/llvm/Tools/* to include/llvm/Support/*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 17:46:59 +00:00
Chris Lattner
6c5a32d545 Removal of the redundant CompileContext wrapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 03:09:03 +00:00
Chris Lattner
0f68368fd8 Verbosify descriptions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 02:54:25 +00:00
Chris Lattner
8f367bd3c0 Large scale changes to implement new command line argument facility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 02:35:57 +00:00
Chris Lattner
aceb9132b7 Privatize LLCOptions. It had no business being visible to the entire
program.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-22 04:40:02 +00:00
Chris Lattner
953e0d7076 Convert from using C style char*'s to strings.
Look ma, no strdups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-22 03:57:31 +00:00
Chris Lattner
a99495ae53 Instructions for use
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 21:05:39 +00:00
Chris Lattner
ea1c7b6f7d Make sure we build all of the code!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 21:04:03 +00:00
Chris Lattner
7e583cfafe Renamed include/llvm/Codegen to include/llvm/CodeGen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 20:58:30 +00:00
Chris Lattner
0df0e74f2b Make the makefile work
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 19:31:40 +00:00
Chris Lattner
85202d4622 Support changed expression api
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 19:08:44 +00:00
Chris Lattner
e6b9529b48 Autodep functionality broken. Remove so we get successful builds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 18:59:13 +00:00
Vikram S. Adve
cb465fc71e Driver and options for the llc compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 12:42:29 +00:00
Chris Lattner
955f899bcd Add support to call LevelRaise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-20 19:16:47 +00:00
Chris Lattner
1546bff423 Update makefile for more accurate deps
Include support to print out Expression types


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-20 19:16:29 +00:00
Chris Lattner
a3c8916228 Fix clean target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-18 23:43:53 +00:00
Vikram S. Adve
416ae8da19 Reordered link line for correct static linking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-15 21:13:29 +00:00
Chris Lattner
c13aff657e Add better support for post dominator information.
Print method name for each analysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-06 16:59:10 +00:00
Chris Lattner
f3dc2c9a07 Initial checkin of analyze tool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-03 15:30:38 +00:00
Chris Lattner
9aa97849a0 Build new analyze tool
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-03 15:30:21 +00:00
Chris Lattner
95781b6ca9 Include ADCE pass, rename include/Opt directory to llvm/Optimizations
Optimizations now in opt namespace.
Rename SCCP pass to DoSCCP


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-30 06:38:31 +00:00
Chris Lattner
7fc9fe3439 Miscellaneous cleanups:
* Convert post to pre-increment for for loops
  * Use generic programming more
  * Use new Value::cast* instructions
  * Use new Module, Method, & BasicBlock forwarding methods
  * Use new facilities in STLExtras.h
  * Use new Instruction::isPHINode() method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-27 23:41:11 +00:00
Chris Lattner
241b064267 Add command line arguments for Constant Pool Merging & Sparse Conditional Constant Prop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-27 23:37:58 +00:00
Chris Lattner
b12063919f Add stub for induction variable code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-20 19:27:34 +00:00
Chris Lattner
526f97e7a3 Removed silly test code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-13 19:55:50 +00:00
Chris Lattner
9bff2e9522 Added options to print out basic blocks in a variety of different orderings
as a testcase for cfg iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-13 19:55:41 +00:00
Chris Lattner
84608e43b2 Added a stupid testcase for iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-08 00:35:25 +00:00
Chris Lattner
009505452b Initial revision
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-06 20:29:01 +00:00