Commit Graph

553 Commits

Author SHA1 Message Date
Daniel Dunbar 94c7b791b1 Switch opt to using StandardPasses.h
- No functionality change, but please check if you don't believe me.

llvm-svn: 72789
2009-06-03 18:22:15 +00:00
Misha Brukman 7182686dbf Fixed file header comment.
llvm-svn: 68250
2009-04-01 21:37:19 +00:00
Dan Gohman 38a9631d5f Eliminate several more unnecessary intptr_t casts.
llvm-svn: 64888
2009-02-18 05:09:16 +00:00
Duncan Sands 44c8cd97a5 Rename AddReadAttrs to FunctionAttrs, and teach it how
to work out (in a very simplistic way) which function
arguments (pointer arguments only) are only dereferenced
and so do not escape.  Mark such arguments 'nocapture'.

llvm-svn: 61525
2008-12-31 16:14:43 +00:00
Devang Patel 8c84d28250 Enable LoopIndexSplit pass.
llvm-svn: 60555
2008-12-04 21:40:31 +00:00
Devang Patel 3bc9e25df2 Disable -loop-index-split for now.
llvm-svn: 60087
2008-11-26 04:58:14 +00:00
Zhongxing Xu 50e6f82ce4 Adjust indent.
llvm-svn: 60081
2008-11-26 02:57:24 +00:00
Nuno Lopes 0460bb27e0 fix memory leak in pass manager when adding an analysis pass that already existed. as pass manager takes ownership of the added passes, it has to delete the pass if it isnt added to the pass list
tweak the opt tool so that it doesnt access a Pass after the ownership was taken by the pass manager

llvm-svn: 58730
2008-11-04 23:03:58 +00:00
Daniel Dunbar 81b5fa5620 Move Print*Pass to use raw_ostream.
llvm-svn: 57946
2008-10-22 03:25:22 +00:00
Daniel Dunbar 54d5b9ea2c Privatize PrintModulePass and PrintFunctionPass and add
createPrintModulePass and createPrintFunctionPass.
 - So clients who compile w/o RTTI can use them.

llvm-svn: 57933
2008-10-21 23:33:38 +00:00
Duncan Sands 9c40c28926 Rationalize the names of passes that print information:
-callgraph => print-callgraph
    -callscc   => print-callgraph-sccs
    -cfgscc    => print-cfg-sccs
    -externalfnconstants => print-externalfnconstants
    -print               => print-function
    -print-alias-sets (no change)
    -print-callgraph     => dot-callgraph
    -print-cfg           => dot-cfg
    -print-cfg-only      => dot-cfg-only
    -print-dom-info (no change)
    -printm              => print-module
    -printusedtypes      => print-used-types

llvm-svn: 56487
2008-09-23 12:47:39 +00:00
Oscar Fuentes a229b3c9a7 Initial support for the CMake build system.
llvm-svn: 56419
2008-09-22 01:08:49 +00:00
Duncan Sands 5408dfd3b8 Turn on the AddReadAttrs pass.
llvm-svn: 56345
2008-09-19 14:34:36 +00:00
Duncan Sands 938e8f60d6 Teach -callgraph to always print the callgraph (as the
description says it does), not just when -analyze is
used as well.  This means printing to stderr, so adjust
some tests.

llvm-svn: 56337
2008-09-19 07:57:09 +00:00
Devang Patel 7293f0f344 Fix comments, help messages.
llvm-svn: 56282
2008-09-17 16:01:39 +00:00
Devang Patel 11b862aed5 Fix cut-n-pasto.
llvm-svn: 56265
2008-09-17 00:01:04 +00:00
Devang Patel 9966ccffb4 Add -O1, -O2 and -O3 that matches llvm-gcc's -O1, -O2 and -O3 respectively.
llvm-svn: 56255
2008-09-16 22:25:14 +00:00
Duncan Sands 18da83555f End of the GlobalsModRef experiment.
llvm-svn: 56222
2008-09-15 18:42:38 +00:00
Duncan Sands fa1472fd55 Give GlobalsModRef a whirl in the nightly testers.
I placed it just before GVN because that it is the
pass most likely to benefit from it.  Some quick
and dirty testing confirms that this is a decent
place for it.

llvm-svn: 56144
2008-09-12 08:23:37 +00:00
Devang Patel d3a1b46aad Backout 55429
llvm-svn: 55432
2008-08-27 20:51:49 +00:00
Devang Patel fdef44d7c4 Add facility to create a target.
llvm-svn: 55429
2008-08-27 20:00:27 +00:00
Evan Cheng 4015ae1d2c Goodbye tail duplication (for good this time).
llvm-svn: 53574
2008-07-14 22:29:15 +00:00
Duncan Sands 2e6f7b49bf Fix comment.
llvm-svn: 53525
2008-07-13 20:14:38 +00:00
Chris Lattner 501c3b67fd Fix PR2231 - opt -internalize -std-compile-opts should run internalize first
llvm-svn: 53523
2008-07-13 19:35:21 +00:00
Devang Patel 81ea3bb55c Move dominator info printer into tool/opt/GraphPrinters.cpp
llvm-svn: 52907
2008-06-30 17:32:58 +00:00
Owen Anderson fd24ce0a99 Re-enable the newly simplified ADCE. This fixes a regression on
Dhrystone introduced by its removal.

llvm-svn: 51669
2008-05-29 08:48:21 +00:00
Owen Anderson 698e72ec2c Remove ADCE from the optimization pipeline.
llvm-svn: 51581
2008-05-27 04:27:27 +00:00
Evan Cheng c5c7a290e9 Re-enable tail duplication pass (now with default threshold down to 1 instruction).
llvm-svn: 51184
2008-05-16 07:57:10 +00:00
Evan Cheng 13e693f331 Remove tail duplication pass.
llvm-svn: 51139
2008-05-15 07:43:15 +00:00
Devang Patel 38e59eb0c7 Recover nestedloop regression reported by nightly tester.
llvm-svn: 51110
2008-05-14 18:04:30 +00:00
Devang Patel a37cf46c87 Do not run instruction combiner in middle of loop optimization passes.
llvm-svn: 51084
2008-05-14 00:26:11 +00:00
Owen Anderson 18709fef4a Re-enable loop deletion by default.
llvm-svn: 50941
2008-05-10 07:10:24 +00:00
Owen Anderson 0d84582dc0 Disable loop deletion until the release branch.
llvm-svn: 50787
2008-05-06 23:56:34 +00:00
Owen Anderson 7db342b0a8 Enable dead loop elimination.
llvm-svn: 50682
2008-05-05 23:38:07 +00:00
Chris Lattner e3b320bd4b move libcalls to the same place llvm-gcc has it.
llvm-svn: 50593
2008-05-02 22:05:06 +00:00
Chris Lattner b15e1f963d enable jump threading pass by default. This causes no miscompilations
and can significantly shrinkify some code, particularly from C++ land.

llvm-svn: 50025
2008-04-21 04:22:09 +00:00
Duncan Sands 9ed1242efc Run SimplifyLibCalls near the beginning, not at
the end.  It is now run at the same moment as in
llvm-gcc.  Also, run StripDeadPrototypes at the
end, just before running DeadTypeElimination.
This may be useful when doing LTO.  Note that
llvm-gcc runs StripDeadPrototypes but not
DeadTypeElimination.

llvm-svn: 49848
2008-04-17 12:03:38 +00:00
Evan Cheng 2025a490d0 Move memcpy / memset optimization pass after GVN.
llvm-svn: 49457
2008-04-10 01:33:05 +00:00
Owen Anderson ef9a6fd5c2 Factor a bunch of functionality related to memcpy and memset transforms out of
GVN and into its own pass.

llvm-svn: 49419
2008-04-09 08:23:16 +00:00
Chris Lattner 345353d6b4 remove attributions from tools.
llvm-svn: 45421
2007-12-29 20:44:31 +00:00
Chris Lattner 8fa21acd25 remove attributions from tools/utils makefiles.
llvm-svn: 45414
2007-12-29 20:07:17 +00:00
Dan Gohman 2c6a821fd7 Move the space in overview output for commands out of each of the
commands and into the common code.

llvm-svn: 42752
2007-10-08 15:45:12 +00:00
Owen Anderson 4266bb73e8 Turn GVN on by default.
llvm-svn: 41787
2007-09-08 22:23:52 +00:00
Devang Patel 42e2abe0e8 Enable loop index split pass.
llvm-svn: 41714
2007-09-04 20:46:58 +00:00
Owen Anderson 10e52eddb3 Rename FastDSE to just DSE.
llvm-svn: 40668
2007-08-01 06:36:51 +00:00
Dan Gohman 070a3f94a2 Remove a FIXME comment that wasn't removed when the code it accompanied
was removed.

llvm-svn: 40591
2007-07-30 15:01:09 +00:00
Owen Anderson a603a80607 Turn on FastDSE by default.
Note: FastDSE now equals or exceeds the results of old DSE on all of SPEC2000 and SPEC2006. Unless major problems
show up in the testers, it will likely completely replace old DSE in the near future.

llvm-svn: 39986
2007-07-17 21:59:21 +00:00
Evan Cheng bd9b21f1c5 Change sroa threshold back.
llvm-svn: 39980
2007-07-17 20:07:21 +00:00
Evan Cheng 20b76421ed Temporarily set SROA threshold to 512.
llvm-svn: 39950
2007-07-17 01:52:05 +00:00
Gabor Greif e16561cd5d Here is the bulk of the sanitizing.
Almost all occurrences of "bytecode" in the sources have been eliminated.

llvm-svn: 37913
2007-07-05 17:07:56 +00:00
Devang Patel f5a15dd9da Fix PR1539. Add LoopPassPrinter.
llvm-svn: 37909
2007-07-05 15:32:03 +00:00
Devang Patel 9a259a20b3 Fix PR 1526.
llvm-svn: 37780
2007-06-28 23:09:25 +00:00
Chris Lattner 9e9a34c6bf use the new MemoryBuffer interfaces to simplify error reporting in clients.
llvm-svn: 36900
2007-05-06 23:45:49 +00:00
Chris Lattner 9b4a428978 make sure the ofstream for opt's output file is destroyed, so that the bits
actually land on disk.

llvm-svn: 36877
2007-05-06 19:17:23 +00:00
Chris Lattner f5599efb00 switch tools to bitcode from bytecode
llvm-svn: 36872
2007-05-06 09:32:02 +00:00
Chris Lattner c424ba7ebd add support to llvm-prof for reading from a bitcode file
llvm-svn: 36836
2007-05-06 04:43:00 +00:00
Chris Lattner 0f49a6fe89 if -bitcode is specified, read and write a bitcode file instead of a bytecode file.
llvm-svn: 36830
2007-05-06 02:42:03 +00:00
Devang Patel 8c78a0bff0 Drop 'const'
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Devang Patel e95c6ad802 Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.

llvm-svn: 36652
2007-05-02 21:39:20 +00:00
Devang Patel 09f162ca6a Do not use typeinfo to identify pass in pass manager.
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Chris Lattner 8cc95f24a7 remove cruft
llvm-svn: 36268
2007-04-20 04:45:58 +00:00
Devang Patel ada3ca2234 Enable loop rotate pass.
llvm-svn: 35863
2007-04-10 15:43:36 +00:00
Devang Patel 901a27d892 Now LoopUnswitch is a LoopPass.
llvm-svn: 34992
2007-03-07 00:26:10 +00:00
Chris Lattner a0e49f2ead push bytecode decompressor out through APIs. Now the bytecode reader
api's look like this:

ModuleProvider *getBytecodeModuleProvider(
  const std::string &Filename,  ///< Name of file to be read
  BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer,
  std::string* ErrMsg = 0,      ///< Optional error message holder
  BytecodeHandler* H = 0        ///< Optional handler for reader events
);

This is ugly, but allows a client to say:

  getBytecodeModuleProvider("foo", 0);

If they do this, there is no dependency on the compression libraries, saving
codesize.

llvm-svn: 34012
2007-02-07 21:41:02 +00:00
Reid Spencer 3aaaa0b2bd For PR411:
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.

llvm-svn: 33918
2007-02-05 20:47:22 +00:00
Reid Spencer 8de97bba5a For PR1072:
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.

llvm-svn: 33844
2007-02-03 23:15:56 +00:00
Reid Spencer 22dbfb626f For PR1152:
Step 1: Copy gccas functionality to opt. This endows opt with a new
-std-compile-opts option to get the set of optimization passes that
gccas used. It also adds -disable-inlining and -disable-opt which
both apply only if -std-compile-opts is given. The -strip-debug option
was also removed. It just makes sure that "-strip" gets done early and
is mostly there for compatibility with gccas. Finally, a new
-verify-each option will cause the verify pass to be run after each pass.

llvm-svn: 33786
2007-02-02 14:46:29 +00:00
Chris Lattner d700d9dde4 shutdown at end of run
llvm-svn: 33697
2007-01-31 04:45:28 +00:00
Reid Spencer 5301e7c605 For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.

llvm-svn: 33663
2007-01-30 20:08:39 +00:00
Chris Lattner 19bb6b996b default to emiting an uncompressed .bc file
llvm-svn: 33420
2007-01-21 06:34:18 +00:00
John Criswell 2bcf535e0f Remove DSA.
llvm-svn: 32542
2006-12-13 16:54:24 +00:00
Bill Wendling f3baad3ee1 Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.

llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Chris Lattner 76d4632d92 make all llvm tools call llvm_shutdown when they exit, static'ify some stuff.
With this change, I can now move -stats to print when llvm_shutdown is called.

llvm-svn: 32250
2006-12-06 01:18:01 +00:00
Chris Lattner e549bac57b This needs the callgraph data structure to stick around as long as the
printer does.

llvm-svn: 32236
2006-12-05 19:43:42 +00:00
Chris Lattner 571dd5778f target constructors are never used
llvm-svn: 32099
2006-12-01 21:59:37 +00:00
Nick Lewycky e5a8617778 Fix opt -o option. Don't pass a pointer to an auto variable which is going
away before it's needed, and don't try to delete that pointer!

llvm-svn: 32055
2006-12-01 00:43:14 +00:00
Bill Wendling afd54eb8b6 Replacing std::iostreams with llvm iostreams. Some of these changes involve
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.

llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Bill Wendling a531ac291c Convert to using llvm streams instead of iostreams.
llvm-svn: 31989
2006-11-28 23:33:06 +00:00
Bill Wendling 605795ea8c Need iostream to be included for the time being.
llvm-svn: 31820
2006-11-17 10:05:07 +00:00
Reid Spencer de46e48420 For PR786:
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.

llvm-svn: 31380
2006-11-02 20:25:50 +00:00
Chris Lattner 28689ff2d0 Use LINK_COMPONENTS to specify *components* to link against instead of
using USED_LIBS to specify *libraries* to link against.

llvm-svn: 30090
2006-09-04 05:59:09 +00:00
Chris Lattner 29619a9a01 Add a --disable-compression option like llvm-link/llvm-as etc have
llvm-svn: 29941
2006-08-28 17:31:55 +00:00
Reid Spencer e7141c8be6 For PR387:
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.

llvm-svn: 29934
2006-08-28 01:02:49 +00:00
Chris Lattner dc729ee32b -analyze mode shouldn't output a .bc file.
llvm-svn: 29923
2006-08-27 22:40:26 +00:00
Chris Lattner 3c9b2420df Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
llvm-svn: 29921
2006-08-27 22:30:17 +00:00
Chris Lattner 8e5e13b4fe Merge the 'analyze' mode code with the 'opt' mode code. Eliminate the
'autodetect .ll files' functionality.

llvm-svn: 29915
2006-08-27 22:07:01 +00:00
Reid Spencer a322366501 For PR885:
Consolidate the LinkAllAnalyses.h and LinkAllPasses.h headers into one
so there is no dupliation.

llvm-svn: 29787
2006-08-21 05:34:03 +00:00
Nate Begeman a12dc61def Fix a build failure
llvm-svn: 29786
2006-08-21 04:57:01 +00:00
Reid Spencer c295914b7a For PR797:
Make sys::Program::ExecuteAndWait not throw exceptions and update any
affected code. It now return -9999 to signal that the program couldn't be
executed. Only one case (in bugpoint) actually examines the result code.

llvm-svn: 29785
2006-08-21 02:04:43 +00:00
Reid Spencer 713eedc1fb For PR797:
Rid the Assembly Parser of exceptions. This is a really gross hack but it
will do until the Assembly Parser is re-written as a recursive descent.
The basic premise is that wherever the old "ThrowException" function was
called (new name: GenerateError) we set a flag (TriggerError). Every
production checks that flag and calls YYERROR if it is set. Additionally,
each call to ThrowException in the grammar is replaced with GEN_ERROR
which calls GenerateError and then YYERROR immediately. This prevents
the remaining production from continuing after an error condition.

llvm-svn: 29763
2006-08-18 08:43:06 +00:00
Reid Spencer 378f7d5d20 For PR872:
Shrinkify LLVM's footprint by removing the analyze tool and moving its
functionality into the opt tool. THis eliminates one of the largest tools
from LLVM and doesn't make opt much bigger because it already included
most of the analysis passes.  To get the old analyze functionality pass
the -analyze option to opt. Note that the integeration here is dead
simple. The "main" of analyze was just copied to opt and invoked if the
-analyze option was given. There may be opportunities for further
integration such as removing the distinction between transform passes
and analysis passes.

To use the analysis functionality, if you previously did this:
  analyze $FNAME -domset -disable-verify
you would now do this:
  opt -analyze $FNAME -domset -disable-verify
Pretty simple.

llvm-svn: 29762
2006-08-18 06:34:30 +00:00
Chris Lattner 05a8970245 Tools require EH for their top-level try blocks.
llvm-svn: 29035
2006-07-07 00:46:19 +00:00
Chris Lattner 16cf81306e Don't pass target name into TargetData anymore, it is never used or needed.
llvm-svn: 28831
2006-06-16 18:23:49 +00:00
Reid Spencer 5113dc5cfe For PR780:
1. Add #includes to LinkAllVMCore.h to get Mangler.o and InlineAsm.o
2. Make Mangler.h and InlineAsm.h use the macros to ensure linkage
3. Make each of the tools with --load options include LinkAllVMCore.h
This should be the last set of changes for this bug and 800.

llvm-svn: 28719
2006-06-07 23:03:13 +00:00
Reid Spencer a647c7ff42 Use archive libraries instead of object files for VMCore, BCReader,
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.

llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Owen Anderson 8c2c1e90c4 Refactor a bunch of includes so that TargetMachine.h doesn't have to include
TargetData.h.  This should make recompiles a bit faster with my current
TargetData tinkering.

llvm-svn: 28238
2006-05-12 06:33:49 +00:00
Chris Lattner 02f92a88b6 reorder some libraries
llvm-svn: 26309
2006-02-22 00:59:06 +00:00
John Criswell fe5f33b120 Move some constant folding code shared by Analysis and Transform passes
into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a, which provides any missing definitions.

llvm-svn: 24036
2005-10-27 15:54:34 +00:00
John Criswell 94b7bea733 1. Remove libraries no longer created from the list of libraries linked into the
SparcV9 JIT.
2. Make LLVMTransformUtils a relinked object file and always link it before
   LLVMAnalysis.a.  These two libraries have circular dependencies on each
   other which creates problem when building the SparcV9 JIT.  This change
   fixes the dependency on all platforms problems with a minimum of fuss.

llvm-svn: 24023
2005-10-26 20:35:13 +00:00
Chris Lattner 788318cb69 Remove a now-unneeded library
llvm-svn: 23942
2005-10-24 02:31:05 +00:00
Chris Lattner 672471fbed Use archive versions of these libraries, using the LinkAllPasses header.
llvm-svn: 23916
2005-10-24 00:12:20 +00:00
Reid Spencer ce9612b23c Two changes:
1. Get rid of TOOLLINKOPTS as it is a hold over from llvm-test and only
   used to communicate additional libraries to the linker. The *standard*
   way to do that is with the LIBS variable which this change supports.

2. Allow the TARGETS_TO_BUILD variable to be set from the configuration
   substitution. This is the result of the --enable-target= parameter to
   the configure script.

llvm-svn: 21449
2005-04-22 17:14:14 +00:00
Misha Brukman 650ba8eb56 Remove trailing whitespace
llvm-svn: 21428
2005-04-22 00:00:37 +00:00
Jeff Cohen c8f1f4bc8e Use binary mode for reading/writing bytecode files
llvm-svn: 19751
2005-01-22 17:36:17 +00:00
Jeff Cohen 72f8f4cc3d Get the #ifdef right on LinkAllPasses.h.
llvm-svn: 19310
2005-01-06 07:01:08 +00:00
Jeff Cohen 13932fb27f Fix minor mistakes
llvm-svn: 19309
2005-01-06 06:29:42 +00:00
Jeff Cohen 00d5508496 Add project opt to Visual Studio.
llvm-svn: 19307
2005-01-06 06:02:53 +00:00
Reid Spencer 1fbccbe786 Make opt honor the quiet option when printing the bytecode warning.
llvm-svn: 19294
2005-01-05 17:31:55 +00:00
Reid Spencer c967184a50 Move the code for printing out a warning about bytecode output to a console
into lib/Support so it can be used with other tools.

llvm-svn: 19238
2005-01-01 23:57:01 +00:00
Reid Spencer 996ec72d48 For PR351:
* Place a try/catch block around the entire tool to Make sure std::string
  exceptions are caught and printed before exiting the tool.
* Make sure we catch unhandled exceptions at the top level so that we don't
  abort with a useless message but indicate than an unhandled exception was
  generated.

llvm-svn: 19192
2004-12-30 05:36:08 +00:00
Reid Spencer d3f2e95e6c Add LLVMbzip2 library, now required.
llvm-svn: 18255
2004-11-25 20:22:06 +00:00
Reid Spencer b2d0fa0823 Fix usage of changed function prototype
llvm-svn: 17798
2004-11-14 22:30:54 +00:00
Reid Spencer 57cbe39d1e Change Library Names Not To Conflict With Others When Installed
llvm-svn: 17286
2004-10-27 23:18:45 +00:00
Reid Spencer 5fd95ce095 We're not doing automake any more
llvm-svn: 17168
2004-10-22 21:02:23 +00:00
Reid Spencer c1c320c335 We won't use automake
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer 6a11a75f31 Initial automake generated Makefile template
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Misha Brukman b889b2ad97 Fix hyphenation and quoting style for great justice
llvm-svn: 17024
2004-10-15 23:22:48 +00:00
Reid Spencer ace94df71f Update to reflect changes in Makefile rules.
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Reid Spencer f6d9ceebc6 Initial version of automake Makefile.am file.
llvm-svn: 16894
2004-10-10 22:36:40 +00:00
Reid Spencer 7c16caa336 Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.

llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer 74c3dc6927 Add the LLVMsystem.a library as it is now used for operating system
independence of the tool.

llvm-svn: 16092
2004-08-29 19:29:38 +00:00
Reid Spencer e3263ecaf0 The functions in Signal.h are now in the llvm::sys namespace - adjust
llvm-svn: 16091
2004-08-29 19:28:55 +00:00
Chris Lattner a29ca1b7df Prune unused #include
llvm-svn: 14753
2004-07-11 04:05:32 +00:00
Chris Lattner ec2a1566cc Add -load option
llvm-svn: 14740
2004-07-11 01:08:19 +00:00
Chris Lattner e67d8400f6 Make sure to link all IPA's into opt, so that it has access to stuff like
anders-aa

llvm-svn: 14395
2004-06-25 05:19:17 +00:00
Chris Lattner 1553edc2da Neuter the -q option. Stop printing the "program modified" message, ever
llvm-svn: 13844
2004-05-27 20:32:10 +00:00
Reid Spencer c8878edc5a Re-introduce the -q option and make opt always return 0, even if the
optimization pasess fail. This is necessary to avoid breaking feature
tests in the tests suite that depend on this behavior. *sigh*

llvm-svn: 13832
2004-05-27 16:28:54 +00:00
Reid Spencer 7873671463 Removed the -q option and the default message written to stderr. The
output produces confusing results in TestRunner.sh

llvm-svn: 13828
2004-05-27 08:26:22 +00:00
Chris Lattner 278f5152d3 Header file moved
llvm-svn: 13813
2004-05-27 05:41:36 +00:00
Chris Lattner 46e18c7f87 Fix wonky header
Address PR305: LLVM tools will happily spew bytecode onto your terminal

llvm-svn: 12602
2004-04-02 05:06:57 +00:00
Chris Lattner 12439ffbac Make sure to print a stack trace whenever an error signal is delivered to the
tool.

llvm-svn: 11632
2004-02-19 20:32:12 +00:00
Chris Lattner 98cd4bf06f Make 'opt -o -' work correctly instead of creating a file named './-'
llvm-svn: 10359
2003-12-10 14:41:33 +00:00
Brian Gaeke 960707c335 Put all LLVM code into the llvm namespace, as per bug 109.
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
John Criswell abe5cdcf21 Added LLVM copyright to Makefiles.
llvm-svn: 9314
2003-10-20 22:29:16 +00:00
John Criswell 567fe2f312 Removed extraneous comment line.
llvm-svn: 9308
2003-10-20 20:40:30 +00:00
John Criswell 09344dcf97 Added copyright header to all C++ source files.
llvm-svn: 9291
2003-10-20 17:47:21 +00:00
Misha Brukman d67697411a Fix grammar.
llvm-svn: 9026
2003-10-10 17:56:49 +00:00
Chris Lattner 361e9c8b97 Remove instloops library
llvm-svn: 7210
2003-07-21 19:07:27 +00:00
Anand Shukla 6d79113343 Added pass to instrument backedges for lightweight tracing
llvm-svn: 7202
2003-07-18 16:25:40 +00:00
Misha Brukman ecfc0d2d3c Converted tabs to spaces.
llvm-svn: 7139
2003-07-10 16:35:17 +00:00
Brian Gaeke e38c7d9f2d Use $(PLATFORMLIBDL) to selectively bring in -ldl only on those platforms where
it is needed.

llvm-svn: 6753
2003-06-17 20:09:18 +00:00
Chris Lattner 02a168310b Kill using declarations
llvm-svn: 6292
2003-05-22 20:13:16 +00:00
Chris Lattner d571e2aa91 Make sure to create a target data that matches the Module's target properties.
llvm-svn: 5904
2003-04-24 19:13:02 +00:00
Chris Lattner aa038c856a Remove support for "target data" pass ctors
llvm-svn: 5900
2003-04-24 18:36:41 +00:00
Chris Lattner 52c7138d22 Don't support codegen passes in opt
llvm-svn: 5797
2003-04-16 23:02:16 +00:00
Chris Lattner 51bdb6156b Remove codegen libraries to speed up linking opt
llvm-svn: 5796
2003-04-16 22:55:55 +00:00
Chris Lattner f46a02c88e Give verbose error messages if bytecode file cannot be parsed
llvm-svn: 5789
2003-04-16 20:51:36 +00:00
Chris Lattner 30f40d94cc Rename -no-* to -disable-*
llvm-svn: 5642
2003-02-26 20:00:41 +00:00
Chris Lattner b8450599f3 Add new -no-verify option
llvm-svn: 5542
2003-02-12 18:45:08 +00:00
Chris Lattner 4dbe59b5ba Add a new -no-output option, useful for -aa-eval tests.
llvm-svn: 5541
2003-02-12 18:43:33 +00:00
Misha Brukman 356163f48a ipa.a only needs to be mentioned once, and spaces should be used instead of
tabs for readability.

llvm-svn: 4970
2002-12-12 05:29:32 +00:00
Vikram S. Adve 42b7335d7c Repeat ipa.a. Since IPModRef is currently only used in analysis.o,
it was causing linking errors.

llvm-svn: 4959
2002-12-09 04:46:25 +00:00
Chris Lattner 6d192f5bb4 Remove extra target.a entry
llvm-svn: 4756
2002-11-19 16:59:41 +00:00
Chris Lattner a416ad30df No need to explicitly inclue ExportSymbols now
llvm-svn: 4543
2002-11-04 20:50:57 +00:00
Chris Lattner a9d552b3a9 Rename Sparc.h TargetMachineImpls.h
llvm-svn: 4409
2002-10-29 20:48:09 +00:00
Chris Lattner 57a10398a5 Add codegen library
llvm-svn: 4305
2002-10-28 00:54:59 +00:00
Chris Lattner e6e375e704 Temporary change to make datastructure stuff link in right
llvm-svn: 4005
2002-10-01 22:41:01 +00:00
Vikram S. Adve 3e1dc145bd Renamed library preselect to preopts.
llvm-svn: 3841
2002-09-20 00:43:20 +00:00
Vikram S. Adve 3517f30fd9 KEEP_SYMBOLS by default.
llvm-svn: 3813
2002-09-18 11:55:44 +00:00
Chris Lattner 66037f55d3 Enable correct support for dynamic loading on Linux
llvm-svn: 3780
2002-09-17 20:40:24 +00:00
Vikram S. Adve 14a25a370b Remove duplicate sparc entry.
llvm-svn: 3762
2002-09-16 18:28:27 +00:00
Vikram S. Adve 9a056ed4e0 Use .o files instead of .a files for several cases (that don't actually
need them) until other Makefiles can be updated to build archives.

llvm-svn: 3761
2002-09-16 18:13:12 +00:00
Vikram S. Adve 82491b79a1 Add support for optimization passes that use a TargetMachine object.
llvm-svn: 3752
2002-09-16 16:09:43 +00:00
Chris Lattner 447dd14bac Link to analysis.o not analysis.a
llvm-svn: 3537
2002-08-30 20:25:41 +00:00
Chris Lattner 00a43e1e7c Fixed linking problems that wanted me to link to analyze.o instead of analyze.a
so now we can link to analyze.a again.

llvm-svn: 3433
2002-08-21 23:47:46 +00:00
Chris Lattner 24749c4d4e Link in all analyses so that we get pointer analysis support built in
llvm-svn: 3427
2002-08-21 22:17:28 +00:00
Chris Lattner b05cd8a88d Change command line option message on -q to make it more accurate
llvm-svn: 3177
2002-07-31 16:52:49 +00:00
Chris Lattner 6f43f6d136 Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3168
2002-07-30 21:43:25 +00:00
Chris Lattner e79bf38f4a Factor PassNamePArser out into llvm/Support/PassNameParser.h
llvm-svn: 3109
2002-07-26 21:09:32 +00:00
Chris Lattner 64a6727d02 *** empty log message ***
llvm-svn: 3087
2002-07-25 16:31:09 +00:00
Chris Lattner 5a48a248bd Use the pass registration mechanism to populate command line options for
opt, not huge explicit gross tables.

llvm-svn: 3021
2002-07-23 18:12:22 +00:00
Chris Lattner a896b08b5c *** empty log message ***
llvm-svn: 3002
2002-07-23 17:52:38 +00:00
Chris Lattner f5cad15a67 *** empty log message ***
llvm-svn: 2985
2002-07-22 02:10:13 +00:00
Anand Shukla 4e25609b87 Removed emitfuncs: now its part of instrument library
llvm-svn: 2929
2002-07-16 18:59:55 +00:00
Anand Shukla 1a26e82bd5 added emitfuncs pass, and disabled reassociate pass (needs fixing)
llvm-svn: 2885
2002-07-12 20:14:27 +00:00
Anand Shukla e9f685d397 Added emitfuncs pass
llvm-svn: 2884
2002-07-12 20:12:59 +00:00
Chris Lattner 33422fedc2 *** empty log message ***
llvm-svn: 2813
2002-06-30 16:25:25 +00:00
Anand Shukla dfe130c161 correcting makefile: incorrectly checked in wrong version earlier
llvm-svn: 2798
2002-06-25 21:44:44 +00:00
Anand Shukla 68c9977d7f Changes for 64bit gcc
llvm-svn: 2797
2002-06-25 21:43:28 +00:00
Chris Lattner 113f4f4609 MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt

llvm-svn: 2779
2002-06-25 16:13:24 +00:00
Chris Lattner 5972e5cc5c Expose cfg simplification pass
llvm-svn: 2699
2002-05-21 20:05:16 +00:00
Chris Lattner 81525db280 expose LICM pass
llvm-svn: 2614
2002-05-10 22:44:37 +00:00
Chris Lattner 6205c268e0 Expose the lowerallocs pass
llvm-svn: 2602
2002-05-10 15:43:07 +00:00
Chris Lattner 35cc0d2027 Expose the pi node insertion pass.
llvm-svn: 2594
2002-05-10 05:41:49 +00:00
Chris Lattner a2f3b65dec Expose expression reassociation
llvm-svn: 2557
2002-05-08 22:18:34 +00:00
Chris Lattner b4bf0c1422 Spell aggressive correctly
llvm-svn: 2551
2002-05-07 22:15:01 +00:00
Chris Lattner 89a20ef164 Merge all include/llvm/Transforms/Scalar/* into a single Scalar.h
llvm-svn: 2538
2002-05-07 20:03:27 +00:00
Chris Lattner 15435fd550 Move UnifyFunctionExitNodes to Utils library: final resting place this time
llvm-svn: 2531
2002-05-07 19:18:48 +00:00
Chris Lattner 7608a46cbe Updates to move some header files out of include/llvm/Transforms into
the Scalar and Utils subdirectories

llvm-svn: 2523
2002-05-07 18:36:35 +00:00
Chris Lattner 56c3f22249 Straighten out makefiles after moving code to new Transform Utils library
llvm-svn: 2520
2002-05-07 18:18:26 +00:00
Chris Lattner b81da4b616 Expose the internalize pass.
llvm-svn: 2365
2002-04-28 05:49:53 +00:00
Chris Lattner 9f3b15b8fe Expose new GCSE pass
llvm-svn: 2339
2002-04-28 00:48:17 +00:00
Chris Lattner f998685cd9 s/Method/Function
llvm-svn: 2336
2002-04-27 07:27:19 +00:00
Chris Lattner c8e665431b * 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

llvm-svn: 2333
2002-04-27 06:56:12 +00:00
Chris Lattner c065ad850c 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.

llvm-svn: 2303
2002-04-18 19:55:25 +00:00
Chris Lattner fda0035ec9 * Add the printm pass to allow dumping the entire module after a transformation.
* s/Method/Function/

llvm-svn: 2234
2002-04-13 18:32:47 +00:00
Chris Lattner b86b11a02e Expose funcresolve pass through opt
llvm-svn: 2231
2002-04-12 18:21:13 +00:00
Chris Lattner 6e39131e01 s/PrintMethodPass/PrintFunctionPass
llvm-svn: 2182
2002-04-08 22:05:01 +00:00
Chris Lattner cd739a66cf Remove asmwriter library from link line, because the useful contents of it
have been incorporated into the vmcore library.

llvm-svn: 2153
2002-04-07 22:35:30 +00:00
Chris Lattner 97ca0eacb1 Makefile change for IPO's that use the Datastructure analysis stuff
llvm-svn: 2015
2002-03-28 18:10:31 +00:00
Chris Lattner b9530575ef Add hook for pool allocation pass
llvm-svn: 2013
2002-03-28 18:08:07 +00:00
Chris Lattner 92c3670048 Checking for Cameron
llvm-svn: 2011
2002-03-28 17:56:28 +00:00
Vikram S. Adve 025fdf98b6 Rename pass to DecomposeMultiDimRefs.
llvm-svn: 1960
2002-03-24 03:19:54 +00:00
Chris Lattner 6ba1a5f7d9 Expose dead instruction elimination pass
llvm-svn: 1877
2002-03-14 22:36:15 +00:00
Chris Lattner 46519418b0 Pull interprocedural analyses out of Analysis library into their own lib
llvm-svn: 1827
2002-03-06 18:44:29 +00:00
Chris Lattner 04805fa29c 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.

llvm-svn: 1816
2002-02-26 21:46:54 +00:00
Chris Lattner d209550828 Move ProfilePaths class into ProfilePaths library, only expose a creation function
llvm-svn: 1812
2002-02-26 20:04:59 +00:00
Anand Shukla d7291473cf Includes -paths option to trace paths in the program
llvm-svn: 1811
2002-02-26 19:57:59 +00:00
Anand Shukla 4882708cc9 Link in the PathProfiles library
llvm-svn: 1800
2002-02-26 18:29:20 +00:00
Chris Lattner f608d7f4f4 * Expose the verifier pass as one that can be ran
* Force the verifier to run before bytecode is written

llvm-svn: 1783
2002-02-20 17:56:53 +00:00
Chris Lattner e5e23525ec Enable register promotion pass
llvm-svn: 1740
2002-02-12 17:17:33 +00:00
Chris Lattner 4db2f2cbce Add mergereturn pass
llvm-svn: 1629
2002-02-01 04:54:11 +00:00
Chris Lattner ecd3fae58d Resolve dependencies
llvm-svn: 1614
2002-01-31 15:43:11 +00:00
Chris Lattner c90d6ba9a2 Convert to use new Pass framework...
llvm-svn: 1610
2002-01-31 00:47:12 +00:00
Chris Lattner 0e11e54d20 In an amazing fit of stupidity, I flipped the conditional and didn't test
it right.  Sheesh :)

llvm-svn: 1550
2002-01-22 21:07:24 +00:00
Chris Lattner 3787ee6be6 Rename LowerAllocations.h to ChangeAllocations.h since it now contains the
RaiseAllocations pass as well.

llvm-svn: 1525
2002-01-22 01:04:08 +00:00
Chris Lattner 4f0f09757d Pull RaiseAllocations stuff out of the CleanGCC pass into it's own pass in
the ChangeAllocations.h header file.

llvm-svn: 1522
2002-01-22 00:13:51 +00:00
Chris Lattner ee965abc36 Move stuff out of the Optimizations directories into the appropriate Transforms
directories.  Eliminate the opt namespace.

llvm-svn: 1520
2002-01-21 23:17:48 +00:00
Chris Lattner 4a75c2b248 Eliminate opt library
llvm-svn: 1516
2002-01-21 23:13:46 +00:00
Chris Lattner c940c536ab Rename SwapStructureContents -> IPO/SimpleStructMutation
Move MutateStructTypes.(cpp|h) -> IPO/MutateStructTypes.(cpp|h)

llvm-svn: 1510
2002-01-21 07:52:35 +00:00
Chris Lattner 0686e435d1 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.

llvm-svn: 1507
2002-01-21 07:31:50 +00:00
Chris Lattner 7f74a56e24 Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner 4f106568d4 Add instruction combining pass
Rename -mergecons to -constmerge

llvm-svn: 1478
2001-12-14 16:50:35 +00:00
Chris Lattner 28fef95650 Remove unnecesary namespace impot
llvm-svn: 1419
2001-12-05 06:35:30 +00:00
Chris Lattner 27ace6461f Use new induction variable simplification code with -indvars option
llvm-svn: 1410
2001-12-04 04:32:04 +00:00
Chris Lattner 5de2204fe8 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes

llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner ba5220d4c4 * Add hooks to globaldce
* Fix ugly hacks by implementing IPOs correctly
* Use an auto_ptr to manage the module lifecycle

llvm-svn: 1395
2001-11-26 19:22:39 +00:00
Chris Lattner b9d5c0ebdd Link to ipo library
llvm-svn: 1394
2001-11-26 19:21:02 +00:00
Chris Lattner bf3bfebb7b Change swapstructs itf
Add nasty hack to be removed later

llvm-svn: 1356
2001-11-26 18:18:53 +00:00
Chris Lattner fc92c5fa1a Add hooks to call the new swap structcontents pass
llvm-svn: 1243
2001-11-10 07:16:10 +00:00
Chris Lattner dcad3cc848 add Yet Another Instance of a Static Library
llvm-svn: 1242
2001-11-10 07:15:53 +00:00
Chris Lattner e326957333 Move the Raise xform from opt to transforms
llvm-svn: 1072
2001-11-01 02:41:09 +00:00
Chris Lattner 7a2d677332 Add hook for GCC cleanup pass
llvm-svn: 1060
2001-10-31 04:29:44 +00:00
Chris Lattner 3923967f1e Fix to reference the right header
llvm-svn: 915
2001-10-19 15:39:14 +00:00
Chris Lattner 75c9f9f958 Expose more xforms to the opt utility
llvm-svn: 900
2001-10-18 20:06:45 +00:00
Chris Lattner ed8947fb11 Use the standard header not the old one
llvm-svn: 886
2001-10-18 06:13:08 +00:00
Chris Lattner 6fc7ff4db8 Add support to insert trace code as an "optimization"
llvm-svn: 884
2001-10-18 06:05:15 +00:00
Chris Lattner 5b6026a13a * Passes return true if they change something, not if they fail
* Convert opt to use Pass's and convert optimizations to pass structure

llvm-svn: 870
2001-10-18 01:31:43 +00:00
Chris Lattner 9373bd69b7 Make use of the new TOOLNAME/USEDLIBS options provided in Makefile.common
llvm-svn: 501
2001-09-07 22:59:25 +00:00
Chris Lattner c3f679f2fe Remove support for const pool merging, which is obsolete now.
llvm-svn: 471
2001-09-07 16:59:35 +00:00
Chris Lattner 3dfcf026f0 Change option name slightly
llvm-svn: 287
2001-07-23 23:02:51 +00:00
Chris Lattner d5c3133364 Use the new Alias command line option
llvm-svn: 284
2001-07-23 20:22:30 +00:00
Chris Lattner ab0cc40796 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

llvm-svn: 283
2001-07-23 19:27:24 +00:00
Chris Lattner e2472bbf6c Moved inline/llvm/Tools/* to include/llvm/Support/*
llvm-svn: 279
2001-07-23 17:46:59 +00:00
Chris Lattner 0af2464a78 Large scale changes to implement new command line argument facility
llvm-svn: 272
2001-07-23 02:35:57 +00:00
Chris Lattner 05132dacd0 Add support to call LevelRaise
llvm-svn: 217
2001-07-20 19:16:47 +00:00
Vikram S. Adve 868a2aeccc Reordered link line for correct static linking.
llvm-svn: 198
2001-07-15 21:13:29 +00:00
Chris Lattner 57f61a32b0 Include ADCE pass, rename include/Opt directory to llvm/Optimizations
Optimizations now in opt namespace.
Rename SCCP pass to DoSCCP

llvm-svn: 118
2001-06-30 06:38:31 +00:00
Chris Lattner bef00adb40 Add command line arguments for Constant Pool Merging & Sparse Conditional Constant Prop
llvm-svn: 94
2001-06-27 23:37:58 +00:00
Chris Lattner ac6d4fd1b1 Add stub for induction variable code
llvm-svn: 38
2001-06-20 19:27:34 +00:00
Chris Lattner 03d5267ba1 Removed silly test code
llvm-svn: 31
2001-06-13 19:55:50 +00:00
Chris Lattner 4ddc451fb3 Added a stupid testcase for iterators.
llvm-svn: 17
2001-06-08 00:35:25 +00:00
Chris Lattner 2f7c963559 Initial revision
llvm-svn: 2
2001-06-06 20:29:01 +00:00