Commit Graph

6813 Commits

Author SHA1 Message Date
Misha Brukman 25a49f0cf1 Removed unnecessary assignment (it was taken care by a superclass) and clarified
some comments.

llvm-svn: 7119
2003-07-07 22:18:06 +00:00
Misha Brukman 6aa98680fb * Made $Template refer to a path relative to the checked-out tree
* Made error messages print out what directory failed chdir()
* Put quotes around search arguments to grep
* Use `egrep' instead of `grep -e' because they are equivalent but `grep' does
  not have the `-e' option on Sparc/Solaris
* Added `--enable-jit' to the ./configure command because both X86 and Sparc
  have JITs and we want them to be tested
* Fixed the regular expressions parsing the changes in CVS which were causing
  the script to die

llvm-svn: 7118
2003-07-07 21:27:40 +00:00
John Criswell ed9fc328cc Fixed the directions for building the C front end.
llvm-svn: 7117
2003-07-07 19:29:20 +00:00
John Criswell c2ca0c44c8 Added information about how to unpack the distribution for those who do not
have access to CVS.

llvm-svn: 7116
2003-07-07 19:27:35 +00:00
Brian Gaeke c48e3fdffd Insert workaround for GAS bug in assembling FLD/FSTP XWORD PTR [...]
instructions, by outputting them as bytes.

llvm-svn: 7115
2003-07-07 18:34:20 +00:00
Misha Brukman c1db0fdd7e Moved RegClassIDs enum to be next to the RegTypes enum.
llvm-svn: 7114
2003-07-07 16:52:39 +00:00
Vikram S. Adve 55c8e21073 Correction to last fix: Pointer types do not return true in Type::IsIntegral().
llvm-svn: 7113
2003-07-06 22:50:31 +00:00
Vikram S. Adve 3bb921e8df Choose register instead of immediate for ConstantExpr in ChooseRegOrImmed.
llvm-svn: 7112
2003-07-06 20:33:21 +00:00
Vikram S. Adve d09c4c34c0 Major bug fix though it happened rarely (only on a compare after an
integer overflow):
We need to use %icc and not %xcc for comparisons on 32-bit or smaller
integer values.

llvm-svn: 7111
2003-07-06 20:13:59 +00:00
Vikram S. Adve 95b36820bb Regression test for bug in reg. allocation that was using %xcc instead
of %icc even for 32-bit and smaller comparisons.

llvm-svn: 7110
2003-07-06 20:12:18 +00:00
Vikram S. Adve c4499d6cb1 Make the RegClassID values public -- there is no other way to get them.
llvm-svn: 7109
2003-07-06 19:53:59 +00:00
Brian Gaeke d5676e8607 Add -d option to trust the disassembler.
llvm-svn: 7105
2003-07-03 21:44:32 +00:00
Brian Gaeke 5b343a4ba1 here little scriptie, nice scriptie...
llvm-svn: 7104
2003-07-03 21:15:02 +00:00
Misha Brukman bb95605448 Apparently, the "regType" and "regClass" used in the Sparc backend are not both
correct: empirically, "regType" is wrong for a number of registers. Thus, one
can only rely on the "regClass" to figure out what kind of register one is
dealing with.

This change switches to using only "regClass" and adds a few extra DEBUG() print
statements and a few clean-ups in comments and code, mostly minor.

llvm-svn: 7103
2003-07-03 18:36:47 +00:00
Sumant Kowshik 2b30ecdb77 Added support for poolallocarray and poolmakeunfreeable. The latter is used by the SAFECode project
llvm-svn: 7102
2003-07-03 17:55:47 +00:00
John Criswell 9558399227 Fixed an error in the pathname to LLVMGCCDIR for the pre-built binaries (forgot
that <> denotes a tag).

llvm-svn: 7100
2003-07-03 16:49:40 +00:00
John Criswell 6e0f34d4c2 Added information on software requirements for unpacking the archives that we
will eventually distribute.

llvm-svn: 7099
2003-07-03 16:43:01 +00:00
Misha Brukman 3aac8e11de * Reworded a bit about JITs (I don't like acronyms followed by 's)
* Added JIT capability to the LLI description section
* LLC is quasi-x86-capable

llvm-svn: 7098
2003-07-03 16:29:36 +00:00
John Criswell 4f0dde59cd Added another remark on how building the C front end is optional.
llvm-svn: 7097
2003-07-03 16:03:39 +00:00
John Criswell c5eb46092c Performed a major update for the pre-release.
Attempted to better structure and order the document.
Added more information about autoconf, the build system, and how to build LLVM.
Added directions on how to build the C front end.
Added a section on common problems and their solutions.

llvm-svn: 7096
2003-07-03 16:01:38 +00:00
John Criswell 163110df31 Adding a web page on how to start a new LLVM Project.
llvm-svn: 7095
2003-07-03 15:37:52 +00:00
Chris Lattner cedbb88d05 Reuse the values if they are constants: this is important so that we index into the right structure field
This fixes bug: BasicAA/2003-07-03-BasicAACrash.ll

llvm-svn: 7093
2003-07-03 06:42:38 +00:00
Chris Lattner 1646906d18 New testcase
llvm-svn: 7092
2003-07-03 06:29:15 +00:00
Chris Lattner 117da20334 Remove globals more aggressively from graphs.
Fix a bug where we removed nodes that were marked U.

llvm-svn: 7090
2003-07-03 02:03:53 +00:00
Chris Lattner 79c2e891c0 INCLUDE_PARENT_GRAPH is required
llvm-svn: 7089
2003-07-02 23:57:21 +00:00
Chris Lattner c812e5f44e INCLUDE_PARENT_GRAPH is required!
llvm-svn: 7088
2003-07-02 23:57:05 +00:00
Chris Lattner 9a75369b74 Disable incorrect mustalias code
llvm-svn: 7087
2003-07-02 23:56:51 +00:00
Chris Lattner 959177fb96 Remove space at end of line
llvm-svn: 7084
2003-07-02 23:44:15 +00:00
Chris Lattner 10bcbf402a Remove dead method
llvm-svn: 7083
2003-07-02 23:43:06 +00:00
Chris Lattner 7fd198806a Fix how we are handling unreachable functions. This DRAMATICALLY improves efficiency
llvm-svn: 7082
2003-07-02 23:42:48 +00:00
John Criswell 68c49640b7 Updated prior to the pre-release.
Removed items which are done (or near completion).
Added new items so that we don't forget them.

llvm-svn: 7081
2003-07-02 23:03:18 +00:00
Misha Brukman 97d3ce313b The word `open' was really intended to be `option'.
llvm-svn: 7080
2003-07-02 21:20:04 +00:00
John Criswell e59e2fdbc8 Removed the --enable-profiling option.
llvm-svn: 7079
2003-07-02 21:16:06 +00:00
John Criswell 61471078af Removed the --enable-profiling option (again).
llvm-svn: 7078
2003-07-02 20:49:38 +00:00
Chris Lattner cd7482b354 Keep track of how many inlinings are performed
llvm-svn: 7076
2003-07-02 20:24:42 +00:00
Chris Lattner d3d5c5c98e Try using trivially dead deletion
llvm-svn: 7075
2003-07-02 19:49:11 +00:00
Misha Brukman 20d93ca01d * Force all "don't care" bits to 0 so that there are absolutely no unset bits in
the TableGen descriptions; all unset bits are thus errors.
* As a result, found and fixed instructions where some operands were not
  actually assigned into the right portion of the instruction.

llvm-svn: 7074
2003-07-02 19:37:48 +00:00
Misha Brukman eccc0dac91 The classes F4_3 and F4_4 have an `rd' operand that needs to be set.
llvm-svn: 7073
2003-07-02 18:27:47 +00:00
Misha Brukman 81951e1142 Properly fix instruction syntax in comments, using `imm' for instructions that
use an immediate value instead of a register.

llvm-svn: 7072
2003-07-02 18:15:43 +00:00
Misha Brukman 6f9caec57f Fixed instruction syntax in the comments (specifies how instr is used).
llvm-svn: 7071
2003-07-02 18:02:58 +00:00
Misha Brukman 7dee443c1c * If compiling on X86 or Sparc, automagically enable the JIT for that arch
* Setting ENABLE_X86_JIT or ENABLE_SPARC_JIT on the `make' command-line will
  force the inclusion of that JIT on a different architecture
* If neither JIT is enabled (e.g., compiling on a different architecture), the
  -march option will not be available to LLI.
* As a side effect of the $ARCH variable, the Sparc LLI can now link just a bit
  faster by not including the x86 library.

llvm-svn: 7070
2003-07-02 17:53:19 +00:00
John Criswell 7ace0c39c8 Removed the CPPFLAGS and CFLAGS variables since the -DHAVE_CONFIG_H messes
up the test suite.  Since all the LLVM software assumes that config.h exists,
we can just do away with it for now.

llvm-svn: 7069
2003-07-02 16:53:44 +00:00
Vikram S. Adve 7a4abf89fa Force fixed-size but large alloca objects to the dynamically allocated
area to avoid using up precious stack space within the 4095 offset limit
from %fp.  Such objects that would themselves live at a large offset
were being put there already so this is a simple change.

llvm-svn: 7066
2003-07-02 06:59:22 +00:00
Chris Lattner ad7b9c1810 Remove dead Nodes list
llvm-svn: 7065
2003-07-02 06:06:34 +00:00
Chris Lattner 116f68a990 Complete rewrite of td pass
llvm-svn: 7064
2003-07-02 04:39:44 +00:00
Chris Lattner 049d558988 Print collapsed to match the paper
llvm-svn: 7063
2003-07-02 04:39:27 +00:00
Chris Lattner 0b61cdd191 Reduce amount of work we do calculating mustaliases if the arg is a global
llvm-svn: 7062
2003-07-02 04:39:13 +00:00
Chris Lattner 03f3cb1af7 Add support for ParentGraph only when building in debug mode
Minor cleanups, reenable folding of call nodes to external functions

llvm-svn: 7061
2003-07-02 04:38:49 +00:00
Chris Lattner db6e0ac800 Add some functions to the blacklist
llvm-svn: 7060
2003-07-02 04:38:00 +00:00
Chris Lattner 5a3d63d5aa Make the BU closure keep track of which actual calls happen
Minor cleanups

llvm-svn: 7059
2003-07-02 04:37:48 +00:00
Chris Lattner 3ff99e3731 Make local pass print out its progress
llvm-svn: 7058
2003-07-02 04:37:26 +00:00
Chris Lattner 60321c2c49 Add new methods
llvm-svn: 7057
2003-07-02 04:37:00 +00:00
Chris Lattner b10e385c01 Disable the parent graph code when not compiled in DEBUG mode
llvm-svn: 7056
2003-07-02 04:33:55 +00:00
Vikram S. Adve 9a8f8e3e95 Leak fix: delete old objects before reallocation in an assignment operator!
llvm-svn: 7055
2003-07-02 01:25:44 +00:00
Vikram S. Adve 1fce4cfa95 Minor beautification: fold a couple of lines of code.
llvm-svn: 7054
2003-07-02 01:24:00 +00:00
Vikram S. Adve cf952cb504 (1) Major bug fix: DecomposeArrayRef() replaces its argument instr. and
deletes it, but we were merrily trying to fix the operands of that
    instruction anyway!  Instead, fix the replacement instruction.

(2) An Improvement: Check for and extract global values in all operands,
    not just in known pointer operands.  For example, they can occur in
    call arguments, and probably other unforeseeable places as well.
    This also eliminates the special-case handling of Load and Store.

llvm-svn: 7053
2003-07-02 01:23:15 +00:00
Vikram S. Adve fa1dde06aa A def. operand of a machine instruction may be an ordinary Value*,
not just an Instruction*, at least in one unfortunate case:
the first operand to the va_arg instruction.
Modify ValueToDefVecMap to map from Value*, not Instruction*.

llvm-svn: 7052
2003-07-02 01:16:01 +00:00
Vikram S. Adve b5f8ada255 Bug/case fixes:
(1) select: Ok to convert a pointer to a float or double.
(2) regalloc: Some MachineInstr* for caller-saving code before a call
    were being inserted before and after the call!
(3) Don't insert the caller-saving instructions in the
    MachineCodeForInstruction for the Call instruction.
    *All* instructions generated by register allocation need to be
    recorded in those maps, but it needs to be done uniformly.

llvm-svn: 7051
2003-07-02 01:13:57 +00:00
John Criswell 29eafac9ff Added the ARCH variable so that some of the Makefiles can perform actions based
upon the target hardware architecture (as opposed to always checking the OS).

llvm-svn: 7050
2003-07-01 22:07:39 +00:00
John Criswell 10d05e2a53 Fixed a broken hyperlink.
Moved commas outside of hyperlinks in the contributors list.

llvm-svn: 7049
2003-07-01 21:55:57 +00:00
Chris Lattner afede5d65b TD pass keeps track of which functions have complete arguments
llvm-svn: 7048
2003-07-01 21:12:10 +00:00
Chris Lattner 931978ab2b Add new operator= impl
llvm-svn: 7047
2003-07-01 21:11:59 +00:00
Chris Lattner 8309574e8d Fix bug: Regression/Other/2002-03-11-ExprAssertion.ll
llvm-svn: 7046
2003-07-01 21:08:52 +00:00
Chris Lattner c5703edeb6 Fix testcase failing because of change of output
llvm-svn: 7045
2003-07-01 21:03:30 +00:00
John Criswell 57c57a1bbf Updated the name of the LLVM disassembler so that the test does not fail.
llvm-svn: 7044
2003-07-01 20:31:45 +00:00
Chris Lattner a4f746d536 new testcase
llvm-svn: 7043
2003-07-01 18:52:01 +00:00
Chris Lattner b6e3fb6350 Move to test/programs/LLvmsource
llvm-svn: 7037
2003-07-01 17:50:11 +00:00
Chris Lattner 972e76f00d Ok, I'm a moron. Fixed now
llvm-svn: 7035
2003-07-01 17:15:11 +00:00
Chris Lattner 31f1db746b Fix major problem that was causing all kinds of nasty foldings
llvm-svn: 7034
2003-07-01 17:10:50 +00:00
Chris Lattner 09711cc547 Make testcase a bit more interesting
llvm-svn: 7033
2003-07-01 16:28:32 +00:00
Chris Lattner b7d4e63b23 New testcase
llvm-svn: 7032
2003-07-01 16:28:20 +00:00
Chris Lattner 23428214e9 Rework TD pass to work with the precise call graph constructed by the BU phase
llvm-svn: 7031
2003-07-01 16:28:11 +00:00
Chris Lattner e809e3afd8 Do not treat global variables as functions! (and assert failing)
llvm-svn: 7030
2003-07-01 16:27:53 +00:00
Chris Lattner 8a30ad6d89 Dont' print scalar nodes for ConstantPointerRefs
llvm-svn: 7029
2003-07-01 16:27:32 +00:00
Chris Lattner 0c770cd936 Add new methods to BUDS for keeping track of a precise call graph
llvm-svn: 7028
2003-07-01 16:27:15 +00:00
Chris Lattner 269467d216 Minor cleanups
llvm-svn: 7027
2003-07-01 16:04:18 +00:00
Chris Lattner f5410e8237 Update to configure the tree before building it.
llvm-svn: 7026
2003-07-01 16:02:00 +00:00
John Criswell 33ba19f8f7 The Makefile now adds autoconf information to the compiler and linker flag
variables instead of overwriting those variables.  This makes it more flexible
and keeps some of the test Makefiles from breaking.

llvm-svn: 7025
2003-07-01 15:02:59 +00:00
John Criswell 7320d2fd32 Renamed all of the LObj* variables (which represent libtool objects) to Obj*.
One of the test Makefiles uses the same variable names for something else,
and this was probably interfering with it.

llvm-svn: 7024
2003-07-01 14:52:28 +00:00
Chris Lattner 40c4f1357b Fix verbose support bug
llvm-svn: 7023
2003-06-30 22:41:22 +00:00
John Criswell 45654a1cbe Removed the LIBS environment variable as it interferes with the tests and
is currently unused.

llvm-svn: 7022
2003-06-30 22:33:53 +00:00
John Criswell 3a821176f1 Added John Criswell to the contributors list.
llvm-svn: 7021
2003-06-30 22:20:46 +00:00
John Criswell c7418da8c1 Removed the --enable-profiling and --enable-verbose options.
llvm-svn: 7020
2003-06-30 22:17:28 +00:00
John Criswell 61efc69ce3 Removed the --enable-verbose option.
llvm-svn: 7019
2003-06-30 22:16:39 +00:00
John Criswell e17afeb1b4 Adding in sample project tree.
llvm-svn: 7018
2003-06-30 22:13:48 +00:00
John Criswell 568d13cf93 Adding in projects subtree.
llvm-svn: 7017
2003-06-30 22:12:19 +00:00
Chris Lattner c0822444fd This causes an assert in the assembler. :(
llvm-svn: 7016
2003-06-30 22:03:21 +00:00
John Criswell 0f929780d2 Removed these files as they are replaced by autoconf.
llvm-svn: 7015
2003-06-30 22:01:54 +00:00
John Criswell 3ef61afb76 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner 53426e6526 Setjmp should always return zero if we don't implement longjmp. This avoids
leaving trash in the register, fixing anagram

llvm-svn: 7013
2003-06-30 19:35:54 +00:00
Brian Gaeke eba22eb59d Get rid of the duplicate '0x' in debug mode.
llvm-svn: 7012
2003-06-30 18:06:20 +00:00
Misha Brukman 2202c5a688 Spell `apparently' with an `e'.
llvm-svn: 7011
2003-06-30 15:33:47 +00:00
Chris Lattner 31514c1c92 New testcase
llvm-svn: 7010
2003-06-30 15:17:39 +00:00
Chris Lattner d9b889c4df Add dependency on analyze
llvm-svn: 7009
2003-06-30 15:17:36 +00:00
Chris Lattner 70923c688d Use the getFunctionNames method
llvm-svn: 7008
2003-06-30 05:57:39 +00:00
Chris Lattner bfce1115e3 Add new method
llvm-svn: 7007
2003-06-30 05:57:30 +00:00
Chris Lattner f8865a4389 Split CallSiteIterator out into DSCallSiteIterator.h, and generalize it a bit
llvm-svn: 7006
2003-06-30 05:27:53 +00:00
Chris Lattner fa52af4fb0 Be more const-correct
llvm-svn: 7005
2003-06-30 05:27:18 +00:00
Chris Lattner 53f4dd7f22 Be more const correct
llvm-svn: 7004
2003-06-30 05:27:05 +00:00
Chris Lattner 0929c5ef68 Fix bug in last checkin
llvm-svn: 7003
2003-06-30 05:18:26 +00:00
Chris Lattner a7630bdc06 Constness changes
llvm-svn: 7002
2003-06-30 05:10:09 +00:00
Chris Lattner 4ffb4e0e03 Reimplement the BU closure to collapse all SCC graphs into a single graph.
Look at all of the code that gets deleted!

llvm-svn: 7001
2003-06-30 05:09:58 +00:00
Chris Lattner 348d93c8c2 Handle the case where OldNodeMap == &ScalarMap correctly
llvm-svn: 7000
2003-06-30 05:09:29 +00:00
Chris Lattner 312783f0d2 Remove dead method
llvm-svn: 6999
2003-06-30 04:53:39 +00:00
Chris Lattner 01877f5224 Do not delete the same graph multiple times when freeing memory if graphs are sharing
llvm-svn: 6998
2003-06-30 04:53:27 +00:00
Chris Lattner 7695128217 Do not multiply delete graphs if functions are sharing graphs
llvm-svn: 6997
2003-06-30 04:53:08 +00:00
Chris Lattner 6d187fdc5a Move usages of explicit hash_* datastructures to use typedefs
llvm-svn: 6996
2003-06-30 03:36:09 +00:00
Chris Lattner 88cd849788 New testcase
llvm-svn: 6995
2003-06-30 03:25:53 +00:00
Chris Lattner 63aeacfe3d Revamp DSGraphs so that they can support multiple functions in the same
DSGraph at one time

llvm-svn: 6994
2003-06-30 03:15:25 +00:00
Chris Lattner 151576413e Adjust for new DSGraph API
llvm-svn: 6993
2003-06-30 03:14:54 +00:00
Chris Lattner 6e69c28229 Eliminate using declarations, adjust for new DSGraph API
llvm-svn: 6992
2003-06-30 03:14:44 +00:00
Chris Lattner 34bdfbf903 Substantial revamp: DSGraphs now may contain the graphs for multiple functions
in the same graph

llvm-svn: 6991
2003-06-30 03:14:23 +00:00
Chris Lattner 1fecb674e0 Add argument
llvm-svn: 6990
2003-06-30 03:13:36 +00:00
Chris Lattner 13cb5ae4ff Remove prototype for dead method
llvm-svn: 6989
2003-06-30 03:13:28 +00:00
Chris Lattner 2e2dc8e19d Add clean target to clean up my mess
llvm-svn: 6988
2003-06-29 23:20:51 +00:00
Chris Lattner 7e29f97d1d Abstract out the predicate which decides whether a function gets complete
arguments or not...

llvm-svn: 6987
2003-06-29 22:37:07 +00:00
Chris Lattner 205d1acfba Fix minor bug in previous checkin
llvm-svn: 6986
2003-06-29 22:36:31 +00:00
Chris Lattner 992abdae26 Add support for ensuring that nodes are not incomplete
llvm-svn: 6985
2003-06-29 22:36:15 +00:00
Chris Lattner 10db1077ff This node should not be incomplete!
llvm-svn: 6984
2003-06-29 22:35:55 +00:00
Chris Lattner c0f4dc1cfa New testcase
llvm-svn: 6983
2003-06-29 22:20:53 +00:00
Chris Lattner 16e3c398c8 Add support for "physical subtyping", which fixes:
DSGraph/2003-06-29-NodeCollapsing2.ll & DSGraph/PhysicalSubtyping.ll

llvm-svn: 6982
2003-06-29 20:27:45 +00:00
Chris Lattner 0aca3e714f Add print method to not get silly warning from analyze
llvm-svn: 6981
2003-06-29 20:27:16 +00:00
Chris Lattner 3ff1d70ecb New, smaller testcase
llvm-svn: 6980
2003-06-29 18:17:20 +00:00
Chris Lattner 5da440b239 New pass which is useful for writing regression tests
llvm-svn: 6979
2003-06-29 18:17:07 +00:00
Chris Lattner 7da5f74c56 New testcase
llvm-svn: 6978
2003-06-29 17:18:59 +00:00
Chris Lattner 7ac937e011 Until there is a setjmp/longjmp transformation pass, codegen setjmp as a noop
and longjmp as an abort!

llvm-svn: 6977
2003-06-29 16:42:32 +00:00
Chris Lattner e019d9e068 Fix testcase
llvm-svn: 6976
2003-06-29 01:09:07 +00:00
Chris Lattner 3a51027f3d New testcase
llvm-svn: 6975
2003-06-29 01:03:53 +00:00
Chris Lattner 5a61d2ffe2 Make sure that the global is known to be internal
llvm-svn: 6974
2003-06-29 00:57:34 +00:00
Chris Lattner 0877def4f6 Expose must alias information for global variables, implementing: DSGraph/mustalias.ll
llvm-svn: 6973
2003-06-29 00:54:08 +00:00
Chris Lattner 426b890f0d If the alias analysis algorithm we are using can provide MUST alias information,
expose it directly as value numbering information

llvm-svn: 6972
2003-06-29 00:53:34 +00:00
Chris Lattner 16e9212e2e Add support for gathering sets of must aliases
llvm-svn: 6971
2003-06-29 00:23:11 +00:00
Chris Lattner 83e21a0c93 Count operands to instructions as well as just results. This allows for global variables to be checked as well
llvm-svn: 6970
2003-06-29 00:07:11 +00:00
Chris Lattner 7739abc07b New testcase
llvm-svn: 6969
2003-06-28 23:52:34 +00:00
Chris Lattner e9505ee0f9 Do not chain to basic-aa
llvm-svn: 6968
2003-06-28 23:49:06 +00:00
Chris Lattner 69bdc6df96 Remove obsolete script
llvm-svn: 6967
2003-06-28 23:32:28 +00:00
Chris Lattner 423909da4d Remove usage of grep-not script
llvm-svn: 6966
2003-06-28 23:32:04 +00:00
Chris Lattner a6fee9d6d5 Remove explicit control flow through the use of the 'not' script
llvm-svn: 6965
2003-06-28 23:23:34 +00:00
Chris Lattner 213fbb3bbb Move DSGraph tests to test/Regression/Analysis/DSGraph
llvm-svn: 6964
2003-06-28 23:17:42 +00:00
Chris Lattner e4bdb41532 Move files to test/Regression/Analysis/DSGraph
llvm-svn: 6963
2003-06-28 23:17:26 +00:00
Chris Lattner abdf66ccfb No use in having CFGSimplify and SimplifyCFG directories!
llvm-svn: 6962
2003-06-28 23:14:35 +00:00
Chris Lattner cd1d05ab33 Eliminate explicit control flow in tests
llvm-svn: 6961
2003-06-28 23:13:12 +00:00
Chris Lattner 6cf9053473 Use not instead of grep-not
llvm-svn: 6960
2003-06-28 23:02:51 +00:00
Chris Lattner f8037d9b2b Switch tests over to use the 'not' script, instead of explicit control flow
llvm-svn: 6959
2003-06-28 23:02:20 +00:00
Chris Lattner 5d83a502b0 Force the interpreter for this testcase
llvm-svn: 6958
2003-06-28 23:02:04 +00:00
Chris Lattner dabfbcf19b Get rid of control flow in the test
llvm-svn: 6957
2003-06-28 22:53:07 +00:00
Chris Lattner 9793cf6789 New script for testrunner programs
llvm-svn: 6956
2003-06-28 22:52:52 +00:00
Chris Lattner 11c21f3eb2 Convert scripts from using explicit control flow to use the new grep-not script
llvm-svn: 6955
2003-06-28 22:44:42 +00:00
Chris Lattner 25479c3cfe Handle quoting right
llvm-svn: 6954
2003-06-28 22:43:58 +00:00
Chris Lattner 2785679e9e Make the TestRunner tests not print out horrible things when they run
llvm-svn: 6953
2003-06-28 22:35:46 +00:00
Chris Lattner 4be846d21e Fix testcase
llvm-svn: 6952
2003-06-28 22:31:37 +00:00
Chris Lattner 6793a25de8 Initial checkin of grep-not script
llvm-svn: 6951
2003-06-28 22:28:31 +00:00
Chris Lattner 63e2794408 Add the test/Scripts directory to the path used by TestRunner
llvm-svn: 6950
2003-06-28 22:21:39 +00:00
Chris Lattner 0e2647b413 Describe directory
llvm-svn: 6949
2003-06-28 22:20:19 +00:00
Chris Lattner 6545a75e93 Improve the make rule
llvm-svn: 6948
2003-06-28 22:16:59 +00:00
Chris Lattner fa578d0eb4 Propagate globals graph from the local to bu to td globals graphs. This
fixes bug: DSGraph/buglobals.ll

llvm-svn: 6947
2003-06-28 22:14:55 +00:00
Chris Lattner c7ba69d8b4 Drop references to globals who do exist in the globals graph, but are never
read or written to.  Keep track of how many times this happens.  This should
be good for deleting things like references to type information in C++ classes

llvm-svn: 6946
2003-06-28 22:10:58 +00:00
Chris Lattner 856a6cbb80 Avoid double negatives
llvm-svn: 6945
2003-06-28 21:58:28 +00:00
Chris Lattner fb9e684f5c Add new DSGraph::ScalarMapTy typedef to avoid pulling representation issues
into callers of getScalarMap

llvm-svn: 6944
2003-06-28 21:57:13 +00:00
Chris Lattner 1ad22dedd1 Add new 'isComplete' method
llvm-svn: 6943
2003-06-28 21:56:42 +00:00
Chris Lattner 111065409a New testcase
llvm-svn: 6942
2003-06-28 21:56:22 +00:00
Chris Lattner 2890f428a9 New pass to perform DSA based optimizations. Initially we just support turning
globals into constants if we can prove it's safe

llvm-svn: 6941
2003-06-28 21:54:55 +00:00
Chris Lattner 58626c9be7 New makefile for Dsgraph tests
llvm-svn: 6940
2003-06-28 21:16:38 +00:00
Chris Lattner 34a4ddae0f Add DSGraph to the tests
llvm-svn: 6939
2003-06-28 21:16:27 +00:00
Chris Lattner d401f39872 Avoid printing out huge structures or arrays if they are just filled with zeros
llvm-svn: 6938
2003-06-28 20:08:24 +00:00
Chris Lattner 7969401e16 Add support for a new zeroinitializer token which can be used to get rid of
huge arrays of zero initialized values

llvm-svn: 6937
2003-06-28 20:01:34 +00:00
Chris Lattner 37d4db2e7b Add test for new zeroinitializer token
llvm-svn: 6936
2003-06-28 20:01:03 +00:00
Chris Lattner fd7016a8ba jmp_buf is really a pointer type that is passed around...
llvm-svn: 6935
2003-06-28 19:29:34 +00:00
Chris Lattner 27223935d7 Add support for the Invoke instruction!
llvm-svn: 6934
2003-06-28 17:53:05 +00:00
Chris Lattner 2d52dd12b2 New testcase for invoke support
llvm-svn: 6933
2003-06-28 17:52:38 +00:00
Chris Lattner a80de5a3be Preserve compatibility with non-gcc compilers
llvm-svn: 6932
2003-06-28 17:15:12 +00:00
Chris Lattner 90921a7eee Fix bug: CBackend/2003-06-28-LinkOnceGlobalVars.llx
llvm-svn: 6931
2003-06-28 17:08:36 +00:00
Chris Lattner de025f3220 New testcase
llvm-svn: 6930
2003-06-28 17:07:23 +00:00
Chris Lattner fbfcf01b98 Allow the inlining limit to be controlled from the command line!
llvm-svn: 6929
2003-06-28 15:57:04 +00:00
Chris Lattner 719c715639 Add support for 'unsigned' command line arguments
llvm-svn: 6928
2003-06-28 15:47:20 +00:00
John Criswell abebb9af11 Added code to the clean rule that deletes files placed in the source directory.
These files interfer with a second build attempt.

llvm-svn: 6927
2003-06-27 17:03:20 +00:00
John Criswell 8224df947c Added the OPTIONAL_DIRS variable for specifying optional directories to build.
llvm-svn: 6926
2003-06-27 16:58:44 +00:00
Chris Lattner 8bf2e04b87 New testcase that crashes the cfe
llvm-svn: 6925
2003-06-27 02:37:53 +00:00
Brian Gaeke c1e4ee0f50 Nice tasty llc fixes. These should fix LLC for x86 for everything in
SingleSource except oopack and Oscar.  (Sorry, Oscar.)

include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
 accessors for ImplicitUses/Defs.
lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
 really wanted this, just use MI->print(O, TM); instead...
lib/Target/X86:
FloatingPoint.cpp: ...like this.
X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
 target-specific flag bit.
X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
 which implicitly use CL, because the assembler needs to see the CL in
 order to generate the right instruction.
Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
  to name constants in the constant pool for each function instead. This
  avoids keeping state between runOnMachineFunction() invocations, which
  is a no-no. Having MangledGlobals be global is a bogon I'd like to get
  rid of too, but making it a static member of Printer causes link errors
  (why???).
 Make NumberForBB into a member of Printer instead of a global, too.
 Make printOp and printMemReference into methods of Printer.
 X86InstrInfo::print is now Printer::printMachineInstruction, because
  TargetInstrInfo::print is history. (Because of this, we have to qualify
  the names of some TargetInstrInfo methods we call.)
 Print out the ImplicitUses field of any instruction we print that has
  the PrintImplUses bit set.

llvm-svn: 6924
2003-06-27 00:00:48 +00:00
Brian Gaeke 92aefe564a Here are the notes from our Reoptimizer meetings.
llvm-svn: 6923
2003-06-26 20:37:42 +00:00
Chris Lattner 5a42f1b49e Modify script to support checkins on branches
llvm-svn: 6921
2003-06-26 20:11:07 +00:00
Brian Gaeke 4ab222142f Number constants from constant pool as CPIf_i where f is the function index
and i is the constant pool index.

llvm-svn: 6920
2003-06-26 18:02:30 +00:00
Chris Lattner d104cdb0ba Add a testcase to ensure that ctor/dtor attributes work in C
llvm-svn: 6919
2003-06-26 14:56:36 +00:00
Chris Lattner eaae578820 Add support to globaldce for deleting dead function prototypes
llvm-svn: 6918
2003-06-26 05:41:18 +00:00
Chris Lattner fd5d323ea9 When internalizing global ctor/dtor list, also mark it constant. This is gross, but
until DSA is working all of the time and is totally reliable, we do this.

llvm-svn: 6917
2003-06-26 05:30:40 +00:00
Chris Lattner c8a619313a Run the simplify CFG pass after instcombine which has the effect of deleting
ALL of the global ctor/dtor stuff if it is not used!

llvm-svn: 6916
2003-06-26 05:29:50 +00:00
Chris Lattner b254fe29d2 New variable which is just the GCCLD tool
llvm-svn: 6914
2003-06-26 05:28:00 +00:00
Chris Lattner 4ede64e304 Implement more aggressive folding of constant GEP instructions
llvm-svn: 6913
2003-06-26 05:22:45 +00:00
Chris Lattner 0f1d8a3947 Add support for elimination of load instruction from global constants
llvm-svn: 6912
2003-06-26 05:06:25 +00:00
Chris Lattner 8c4b0d05ee add tests for elimination of loads
llvm-svn: 6911
2003-06-26 05:05:51 +00:00
Chris Lattner e4b7d467f8 Move the instcombine pass before globaldce, so that if globals are made dead by instcombine, that they can be deleted.
llvm-svn: 6910
2003-06-26 04:32:31 +00:00
Chris Lattner 0fe5e45ee9 Don't register the destructors if the list is empty
llvm-svn: 6909
2003-06-26 04:20:38 +00:00
Brian Gaeke dda8abec9b Integrate the C writer's name mangler.
llvm-svn: 6908
2003-06-25 22:00:39 +00:00
Brian Gaeke 25e766aca5 First draft of X86 LLC backend. This should be OK for small programs like
Shootout, but it has some issues with bigger programs. Work in progress.

llvm-svn: 6907
2003-06-25 18:01:07 +00:00
Chris Lattner 63912f05ab Add test for instcombine -1*X -> -X
llvm-svn: 6905
2003-06-25 17:10:34 +00:00
Chris Lattner 35236d8477 Instcombine: X * -1 -> -X
llvm-svn: 6904
2003-06-25 17:09:20 +00:00
Chris Lattner 81d75b7cfc Fix bug: LevelRaise/2003-06-25-ExprAnalysis.ll
llvm-svn: 6903
2003-06-25 17:09:03 +00:00
Chris Lattner 930c8595f8 New testcase
llvm-svn: 6902
2003-06-25 17:08:34 +00:00
Chris Lattner b396afde26 Fix bug: Mem2Reg/2003-06-26-IterativePromote.ll
llvm-svn: 6901
2003-06-25 14:58:56 +00:00
Chris Lattner fec65d7526 New testcase
llvm-svn: 6900
2003-06-25 14:55:30 +00:00
Chris Lattner 0b3def4d49 Remove completed tasks
llvm-svn: 6899
2003-06-25 14:31:06 +00:00
Joel Stanley fbb9ab4913 - Fixed name mangling conditions to handle 'linkonce' linkage type. In
particular, name mangling for GlobalValues only occurs when the linkage type is
internal or when the name must be mangled to avoid a collision.  See comments in
CWriter::getValueName for more information.

- 'inline' keyword is now emitted for functions with 'linkonce' linkage type.

- Fixed typos.

llvm-svn: 6898
2003-06-25 04:52:09 +00:00
Chris Lattner 2599356122 Try to run cleanups even if nothing was modified in the preview passes
llvm-svn: 6897
2003-06-25 04:13:52 +00:00
Chris Lattner 0192b72fde Run dead arg elimination, and tell it that it's ok to hack up non-internal functions
llvm-svn: 6896
2003-06-25 04:13:36 +00:00
Chris Lattner 2ab04f7a41 Add argument to DAE to allow operation on non-internal functions
llvm-svn: 6895
2003-06-25 04:12:49 +00:00
Brian Gaeke 7610971759 It seems likely that floats would need a cast too, because they are
ordinarily promoted to doubles.

llvm-svn: 6894
2003-06-25 03:05:33 +00:00
Chris Lattner ef3d5d055d New testcase
llvm-svn: 6893
2003-06-24 23:40:27 +00:00
Chris Lattner 7f8bb880b4 Don't print message, remove temp files
llvm-svn: 6892
2003-06-24 23:38:09 +00:00
Chris Lattner ee967711e9 Fix bug: ADCE/2003-06-24-BadSuccessor.ll
llvm-svn: 6891
2003-06-24 23:02:45 +00:00
Chris Lattner 67baccf458 New testcase
llvm-svn: 6890
2003-06-24 22:58:05 +00:00
Chris Lattner 8bd8bc8399 Make assertion more descriptive
llvm-svn: 6889
2003-06-24 22:20:19 +00:00
Chris Lattner 0892887b1f Modernize testcase
llvm-svn: 6888
2003-06-24 21:51:03 +00:00
Chris Lattner 834105502d Do not mark ALL terminators live if any instruciton in the block is live. We only
want to mark it live if it is an unconditional branch.  This fixes bug:
ADCE/2002-05-28-Crash.ll and makes this pass _much_ more useful.

llvm-svn: 6887
2003-06-24 21:49:45 +00:00
Chris Lattner f65c39946a modernize testcase
llvm-svn: 6886
2003-06-24 21:23:50 +00:00
Chris Lattner 70f3ad6eb3 Make sure adce is basically working!
llvm-svn: 6885
2003-06-24 21:22:09 +00:00
Chris Lattner 639d5880f6 Modernize testcases
llvm-svn: 6884
2003-06-24 21:21:31 +00:00
Chris Lattner 7e270580c8 Fix bug: SCCP/2003-06-24-OverdefinedPHIValue.ll
llvm-svn: 6883
2003-06-24 20:29:52 +00:00
Chris Lattner 4ded20b380 New testcase
llvm-svn: 6882
2003-06-24 20:29:36 +00:00
Chris Lattner f7544873de Fix bug: TailDup/2003-06-24-Simpleloop.ll
llvm-svn: 6881
2003-06-24 19:48:06 +00:00
Chris Lattner 17b4e96e7e Testcase reduced by bugpoint
llvm-svn: 6880
2003-06-24 19:17:37 +00:00
Chris Lattner d410284dd2 Run the tail dup tests
llvm-svn: 6879
2003-06-24 18:49:51 +00:00
Joel Stanley d1e35d03b3 Prevented inclusion of (non-existent) stdint.h on Sparc.
llvm-svn: 6876
2003-06-24 02:46:47 +00:00
Chris Lattner 55d4bda861 Implement new transforms:
Replace (cast (sub A, B) to bool) -> (setne A, B)
  Replace (cast (add A, B) to bool) -> (setne A, -B)

llvm-svn: 6873
2003-06-23 21:59:52 +00:00
Chris Lattner eea63a519a Fix comment
llvm-svn: 6872
2003-06-23 21:52:59 +00:00
Chris Lattner b501ef80ff Yet another testcase
llvm-svn: 6871
2003-06-23 21:49:25 +00:00
Chris Lattner 4bc0c4b974 Test cases for when casts to bool can be eliminated
llvm-svn: 6870
2003-06-23 21:48:26 +00:00
Brian Gaeke 04bdfe624c Fix 2003-06-23-PromotedExprs.llx -- if we are adding two bytes we better
explicitly cast the result to be a byte, or C will gleefully promote it
to int.

llvm-svn: 6869
2003-06-23 20:00:51 +00:00
Brian Gaeke 226563f7b9 New test case for C Writer regression found in 256.bzip2
llvm-svn: 6868
2003-06-23 19:59:17 +00:00
Brian Gaeke bf4cc5e735 Allow .llx testcases (i.e., those that contain explicit RUN: stmts.)
llvm-svn: 6867
2003-06-23 19:58:50 +00:00
Brian Gaeke fcd72643fa Include <cmath> instead of <math.h>
Remove isnan; it's too unportable to handle cleanly at this point.

llvm-svn: 6866
2003-06-23 19:41:55 +00:00
Chris Lattner 4c9cd8262a Add support for GCC 3.3
llvm-svn: 6865
2003-06-23 19:16:20 +00:00
Chris Lattner 42d3570b92 New testcase for a GCC bug
llvm-svn: 6863
2003-06-23 18:06:21 +00:00
Chris Lattner bf2c46254a avoid dividing by zero when dealing with zero sized types (like [0 x double])
llvm-svn: 6862
2003-06-23 17:36:49 +00:00
Vikram S. Adve 50b1d41ad4 Add the padding needed for variable-size alloca's, which should work now.
llvm-svn: 6859
2003-06-23 02:13:57 +00:00
Chris Lattner 0c78f3fb14 New testcase narrowed down by Joel
llvm-svn: 6858
2003-06-22 21:40:38 +00:00
Chris Lattner 22ced56476 Fix bug: InstCombine/2003-06-22-ConstantExprCrash.ll
llvm-svn: 6857
2003-06-22 20:48:30 +00:00
Chris Lattner 92963de6fa Add paranoia checking
llvm-svn: 6856
2003-06-22 20:46:00 +00:00
Chris Lattner 3a8622527c New testcase
llvm-svn: 6855
2003-06-22 20:45:39 +00:00
Chris Lattner ef47a506a1 New testcases
llvm-svn: 6854
2003-06-22 20:32:35 +00:00
Chris Lattner c6fcd9338c Initial checkin
llvm-svn: 6853
2003-06-22 20:30:00 +00:00
Chris Lattner 268c1392da Test change
llvm-svn: 6852
2003-06-22 20:25:27 +00:00
Chris Lattner e81e0d8da9 Add tail duplication pass to the pipeline, move the verifier pass to the front
Other minor reorganizations

llvm-svn: 6849
2003-06-22 20:11:45 +00:00
Chris Lattner decc3639c1 Add prototype for tail-dup pass
llvm-svn: 6847
2003-06-22 20:10:42 +00:00
Chris Lattner a5434caa5c Initial checkin of Tail duplication pass.
llvm-svn: 6846
2003-06-22 20:10:28 +00:00
Chris Lattner 53b843fc04 Do not use the inefficient, fixed function, CBW, CDQ, ... instructions
llvm-svn: 6844
2003-06-22 03:31:18 +00:00
Chris Lattner bd3837b1b2 Get rid of WORDSIZE macro which can pollute untold numbers of translation units
llvm-svn: 6843
2003-06-22 03:09:10 +00:00
Chris Lattner 52de05c6b3 Remove a ton of extraneous #includes
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
Chris Lattner c7031d0244 Whoops, accidentally lost a #include
llvm-svn: 6841
2003-06-22 03:04:58 +00:00
Chris Lattner d791d8e427 Remove support for the MultiObject flag, which was fundamentally broken
llvm-svn: 6840
2003-06-22 03:03:52 +00:00
Chris Lattner 09ede5c936 Remove support for the MultiObject flag, which was just fundamentally broken
llvm-svn: 6839
2003-06-22 03:03:24 +00:00