Commit Graph

8470 Commits

Author SHA1 Message Date
Brian Gaeke 0af759d3af Okay, this is a little hack that "scratches an itch" of mine.
I dislike having to examine the output of "dis" to see what symbols
are in a bytecode file. So, here is a first cut at a "nm" utility for llvm.
Flame away.... :-)

llvm-svn: 9153
2003-10-16 04:43:15 +00:00
John Criswell a4d32ad1d2 Added autoconf support for the sample project.
llvm-svn: 9152
2003-10-16 01:49:07 +00:00
John Criswell fa322d1f92 Added autoconf support for the sample project.
Fixed the header comment in Makefile.rules
Changed all references to the echo program in Makefile.rules to the value
found by autoconf.

llvm-svn: 9151
2003-10-16 01:49:00 +00:00
John Criswell dd8d7829b3 Adding autoconf support to the sample project.
llvm-svn: 9150
2003-10-16 01:45:35 +00:00
John Criswell 419c0dab18 Adding autoconf support for the sample project.
This should make setting up a new project much easier.

llvm-svn: 9149
2003-10-16 01:45:10 +00:00
John Criswell 334a2ed2d1 Adding autoconf support for the sample project.
llvm-svn: 9148
2003-10-16 01:44:20 +00:00
Chris Lattner ddf92c8a9a Vector is my friend, do you like vector?
llvm-svn: 9147
2003-10-15 22:10:10 +00:00
Chris Lattner fd27d111d9 lalala
llvm-svn: 9146
2003-10-15 22:09:57 +00:00
Chris Lattner 1318d56b4b We'll need this soon as well
llvm-svn: 9145
2003-10-15 22:09:46 +00:00
Chris Lattner 9177d11367 #include vector which we will need here soon
llvm-svn: 9144
2003-10-15 22:09:32 +00:00
Chris Lattner 46c3217be4 This file uses assert and doesn't include anything which already #includes <cassert>
llvm-svn: 9142
2003-10-15 21:55:37 +00:00
Chris Lattner 3334c884bc Give this file a proper header
llvm-svn: 9141
2003-10-15 21:49:57 +00:00
Chris Lattner 4973805acd The levelraise pass is a broken old piece of crufty code that should be
left on the side of the road without a second thought.

It is preventing forward progress, so for now, we will disable it by default.

llvm-svn: 9140
2003-10-15 21:48:38 +00:00
Brian Gaeke 828449f9fe Fix up error message.
llvm-svn: 9139
2003-10-15 20:46:58 +00:00
Brian Gaeke adbbfebfae Flush output after writing out the list of function names.
llvm-svn: 9138
2003-10-15 20:42:48 +00:00
John Criswell be945ca24e Updated some of the information for the new autoconf changes.
llvm-svn: 9136
2003-10-15 16:52:57 +00:00
Chris Lattner f95d9b99b3 Decrease usage of use_size()
llvm-svn: 9135
2003-10-15 16:48:29 +00:00
Chris Lattner 30c715b30b Remove usage of use_size()
llvm-svn: 9134
2003-10-15 16:43:24 +00:00
Chris Lattner f77a856f3b Cleanup
llvm-svn: 9133
2003-10-15 16:42:21 +00:00
Chris Lattner f92877f304 Add new hasOneUse() method. Remove explicit inline qualifiers
llvm-svn: 9132
2003-10-15 16:39:04 +00:00
Chris Lattner dc92fa6473 add support forloading additional .so files on the command line
llvm-svn: 9131
2003-10-14 22:24:31 +00:00
Chris Lattner 3f6e522257 Change the execute methods to take the shared object filename by const reference.
Other adjustments to work with the new ToolRunner interfaces

llvm-svn: 9130
2003-10-14 21:59:36 +00:00
Chris Lattner 1499851ef6 Generalize abstract interpreter interface to allow linking in an arbitrary number of shared objects
llvm-svn: 9129
2003-10-14 21:52:52 +00:00
Misha Brukman 1d2d8ec853 Order #includes as per the style guide.
llvm-svn: 9128
2003-10-14 21:42:11 +00:00
Misha Brukman 5b255e59ac Enabling incremental bytecode loading in the JIT:
* Use the incremental bytecode reader interface to speed up execution

llvm-svn: 9127
2003-10-14 21:39:53 +00:00
Misha Brukman 56a8642a42 Enabling incremental bytecode loading in the JIT:
* FunctionPassManager ctor now takes in a ModuleProvider
* run() materializes function before running passes on it

llvm-svn: 9126
2003-10-14 21:38:42 +00:00
Misha Brukman 299f3e650f Enabling incremental bytecode loading in the JIT:
* The VM is now constructed with a ModuleProvider

llvm-svn: 9125
2003-10-14 21:37:41 +00:00
Misha Brukman 2f1e200248 Enabling incremental bytecode loading in the JIT:
* ExecutionEngine and VM can be constructed using a ModuleProvider.

llvm-svn: 9124
2003-10-14 21:36:31 +00:00
Misha Brukman 1ff924b5c2 Enabling incremental bytecode loading in the JIT:
* ExecutionEngine can be constructed from a ModuleProvider
* Alphabetized order of forward-declared classes

llvm-svn: 9123
2003-10-14 21:35:52 +00:00
Misha Brukman 2c611561ea Enabling incremental bytecode loading in the JIT:
* Add ModuleProvider as a parameter to FunctionPassManager

llvm-svn: 9122
2003-10-14 21:34:56 +00:00
Chris Lattner 66da9ef634 Substantial cleanups:
* Add header comment
 * Remove extraneous #includes
 * Move the FileType enum into the GCC class
 * The GCC class is not virtual.
 * Move all of the "constructor" functions into the classes themselves
 * Stop using cl::list as arguments, use std::vector instead (which cl::list
   derives from)
 * Improve comments

llvm-svn: 9121
2003-10-14 21:34:11 +00:00
Chris Lattner f8a84dbff3 The return value of compileSharedObject was never used. Return the shared
object's name instead

llvm-svn: 9120
2003-10-14 21:09:11 +00:00
Chris Lattner 74d64c7d02 Actually return an error if something bad happens, don't just exit.
llvm-svn: 9119
2003-10-14 21:07:25 +00:00
Chris Lattner 6ad91d7166 minor cleanups
llvm-svn: 9118
2003-10-14 21:01:51 +00:00
Chris Lattner 5d068b78b7 The -mode option is no longer
llvm-svn: 9117
2003-10-14 20:58:07 +00:00
Chris Lattner 67cc196bf7 Fix minor formatting bug
llvm-svn: 9116
2003-10-14 20:55:56 +00:00
Chris Lattner 2ed0642a95 Eliminate the bugpoint -mode option, by making bugpoint automatically infer the root of all of your problems
llvm-svn: 9115
2003-10-14 20:52:55 +00:00
Chris Lattner fdfe370406 Output a contorted sequence of instructions to make sure that we don't access
off the bottom of the stack.  This fixes PR#41

llvm-svn: 9114
2003-10-14 19:09:05 +00:00
Chris Lattner 97c7a8ed1a Disable the leaf function optimization, which is apparently not legal on
X86/linux.  :(  The problem is that a signal delivered while the function
is executing could clobber the functions stack.  This is a partial fix
for PR41.

llvm-svn: 9113
2003-10-14 18:52:41 +00:00
Chris Lattner 4b9c23a19d Fix bug in script
llvm-svn: 9110
2003-10-14 01:22:08 +00:00
Chris Lattner b4778c73c9 Do not move variable sized allocations to the top of the caller, which might
break dominance relationships, and is otherwise bad.  This fixes bug:
Inline/2003-10-13-AllocaDominanceProblem.ll.  This also fixes miscompilation
of 3 176.gcc source files (reload1.c, global.c, flow.c)

llvm-svn: 9109
2003-10-14 01:11:07 +00:00
Chris Lattner 84b5eb206c New testcase which the inliner breaks
llvm-svn: 9108
2003-10-14 01:04:12 +00:00
John Criswell 3104d83bdb Added a link to the main page for LLVM.
Made the "Submitting a Bug" reference point to the web site, as we want people
using the latest and greatest bug reporting.
Fixed the indentation by assuming that tabs are 8 characters or less.

llvm-svn: 9107
2003-10-13 21:09:04 +00:00
Chris Lattner 6ca0b8738a Unbreak code generator debug mode
llvm-svn: 9106
2003-10-13 21:04:26 +00:00
John Criswell 49a9b67858 Adding additional license information to these files.
llvm-svn: 9102
2003-10-13 20:34:27 +00:00
Chris Lattner 08ca35b6d6 Do not allow fallthroughs in switch statements. This fixes PR37,
253.perlbmk, and test/Programs/SingleSource/UnitTests/2003-10-13-SwitchTest.c!

llvm-svn: 9101
2003-10-13 20:32:04 +00:00
Misha Brukman 292964c663 LLVM CVS repository has moved.
llvm-svn: 9099
2003-10-13 20:28:48 +00:00
Brian Gaeke 6855f03c56 Remove WordsEmitted statistic; there's already a non-backend-specific
jello statistic for this (just divide #-bytes-of-code-emitted by 4).

Rewrite head-of-file comment.

llvm-svn: 9098
2003-10-13 19:51:20 +00:00
Chris Lattner abb3b38448 LLI no longer has -abort-on-exception
llvm-svn: 9097
2003-10-13 18:26:49 +00:00
John Criswell 8c8c891090 Removed items that are done or irrelevant.
Added a few new items.

llvm-svn: 9096
2003-10-13 18:26:44 +00:00
Chris Lattner 8260db9a69 Use the autoconf macro John wrote
llvm-svn: 9095
2003-10-13 17:13:53 +00:00
Chris Lattner 612cafef0a Whoops, we inserted into the wrong set. What's up with the dead set anyway?
llvm-svn: 9094
2003-10-13 16:49:21 +00:00
Chris Lattner 951e7329e8 Use external df iterators to avoid revisiting blocks in functions with
multiple setjmp calls.

llvm-svn: 9093
2003-10-13 16:44:50 +00:00
Chris Lattner a3244bbefd Add missing default argument
llvm-svn: 9092
2003-10-13 16:44:30 +00:00
Chris Lattner f5d946eced Make use of "external" depth-first iterators to avoid revisiting nodes
multiple times.  This reduces the time to construct post-dominance sets a LOT.
For example, optimizing perlbmk goes from taking 12.9894s to 1.4074s.

llvm-svn: 9091
2003-10-13 16:36:06 +00:00
Chris Lattner 514e18c061 add support for "external" depth first iterators, which store the 'visited' set
outside of the iterator itself.

llvm-svn: 9090
2003-10-13 16:34:26 +00:00
John Criswell 42859559f2 Added a macro and code that checks for the %a format string in sprintf().
llvm-svn: 9089
2003-10-13 16:22:01 +00:00
John Criswell 55a0c88c30 Fixed the name of a hyperlink.
llvm-svn: 9088
2003-10-13 16:19:30 +00:00
John Criswell c41e7a81db Removed information on common build problems. That is now documented in
the FAQ (FAQ.html).

llvm-svn: 9087
2003-10-13 16:16:25 +00:00
John Criswell 8af732029a Fequently Asked Questions about LLVM. Mainly focuses on build problems, but
anything FAQ'ish should go here if it's not heavily documented elsewhere (like
the README.txt file or the Getting Started Guide).

llvm-svn: 9086
2003-10-13 16:13:06 +00:00
John Criswell 97735cf4af Master README file that points to all other documentation.
llvm-svn: 9085
2003-10-13 15:59:28 +00:00
Chris Lattner 97b07c2096 Extricate the "reverse" support from the depth-first iterator. This is really
a crappy form of post-order traversal which really does not belong here.  While
we are at it, improve documentation and use a vector instead of a stack.

This improves the post dominator analysis pass by ~5%, and probably also helps
other passes as well.

llvm-svn: 9084
2003-10-13 15:45:33 +00:00
Chris Lattner d6d5651acf Add operator= for type iterators to make them assignable
llvm-svn: 9083
2003-10-13 15:34:17 +00:00
Chris Lattner 78cab97abb Remove explicit inline qualifiers when the implicit ones work just as well
llvm-svn: 9082
2003-10-13 15:30:59 +00:00
Chris Lattner 0c068c097a Stop using "reverse depth first" order
llvm-svn: 9081
2003-10-13 15:21:58 +00:00
Chris Lattner e6f4e07706 Oops, forgot to commit this before: standardize header comments
llvm-svn: 9080
2003-10-13 14:58:11 +00:00
Chris Lattner aa78cc9e5d Minor cleanups
llvm-svn: 9079
2003-10-13 14:57:53 +00:00
Chris Lattner e859403772 Speed up TypesEqual by specializing it for all of the derived types, avoiding
a lot of virtual method dispatch overhead.

llvm-svn: 9078
2003-10-13 14:55:56 +00:00
Chris Lattner a785563692 Avoid calling getTypeSlot more
llvm-svn: 9077
2003-10-13 14:34:59 +00:00
Chris Lattner 1dc3f3fdc0 Avoid creating lots of pointless opaque types, with short lifetimes
llvm-svn: 9076
2003-10-13 14:03:36 +00:00
Chris Lattner c7bc3bb503 This is a header file, hear me roar
llvm-svn: 9075
2003-10-13 05:34:24 +00:00
Chris Lattner ab16a659d7 * Remove extraneous #includes
* Fix a nasty initializer ordering bug.  Any only-CFG passes which registered
  themselves before the CFGOnlyAnalysis vector initialized got forgotten and
  thus got invalidated and recomputed.

In particular, in my compiled version of gccas, the Loop information pass was
being recomputed unnecessarily.

llvm-svn: 9074
2003-10-13 05:33:01 +00:00
Chris Lattner 178957028b Wrap code at 80 columns
llvm-svn: 9073
2003-10-13 05:04:27 +00:00
Chris Lattner f0bf7cb739 This is a header file, thus it needs a -*-C++-*-
llvm-svn: 9072
2003-10-13 04:22:07 +00:00
Chris Lattner 44d2c3514a Regularize header file comments
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Chris Lattner c3ad6e0b1f make the indvar obviously non-canonical
llvm-svn: 9070
2003-10-13 03:31:42 +00:00
Chris Lattner 7cce14bfbf Regularize header file comment, eliminate using's
llvm-svn: 9069
2003-10-13 03:30:47 +00:00
Chris Lattner 3fe0b9646e Add new op_erase method
llvm-svn: 9068
2003-10-13 03:29:26 +00:00
Chris Lattner f7a60cd9fa Minor cleanups
llvm-svn: 9067
2003-10-13 01:02:33 +00:00
Chris Lattner 56b8526083 Checkin an improvement contributed by Bill:
Only transform call sites in a setjmp'ing function which are reachable from
the setjmp.  If the call dominates the setjmp (for example), the called
function cannot longjmp to the setjmp.

This dramatically reduces the number of invoke instructions created in some
large testcases.

llvm-svn: 9066
2003-10-13 00:57:16 +00:00
Chris Lattner c4622a6955 Add support to the loop canonicalization pass to make it transform loops to
have a SINGLE backedge.  This is useful to, for example, the -indvars pass.

This implements testcase LoopSimplify/single-backedge.ll and closes PR#34

llvm-svn: 9065
2003-10-13 00:37:13 +00:00
Chris Lattner 3e53700320 new testcase
llvm-svn: 9064
2003-10-12 22:26:42 +00:00
Chris Lattner e43629bad6 Make getNumBackEdges more efficient
llvm-svn: 9063
2003-10-12 22:14:27 +00:00
Chris Lattner 2a4080c140 Files moved to the LoopSimplify directory
llvm-svn: 9062
2003-10-12 21:57:11 +00:00
Chris Lattner 72272a70b8 Rename loop preheaders pass to loop simplify
llvm-svn: 9061
2003-10-12 21:52:28 +00:00
Chris Lattner efc15169f0 Rename -preheaders pass. Spelling fix
llvm-svn: 9060
2003-10-12 21:51:55 +00:00
Chris Lattner 55d4788397 File is renamed to LoopSimplify.cpp
llvm-svn: 9059
2003-10-12 21:44:18 +00:00
Chris Lattner 154e4d5dea First step in renaming the preheaders pass to loopsimplify
llvm-svn: 9058
2003-10-12 21:43:28 +00:00
Chris Lattner 9eb9fc8102 The -preheaders pass is now known as -loopsimplify
llvm-svn: 9057
2003-10-12 21:42:35 +00:00
Chris Lattner 9703c02ce4 The preheader insertion pass only depends on the CFG. Mark it as such, which
allows GCCAS to only run it once.

llvm-svn: 9056
2003-10-12 19:33:10 +00:00
Chris Lattner dd99f5bf8f Rename method
llvm-svn: 9055
2003-10-12 18:52:12 +00:00
Chris Lattner 2debdf6458 Rename method to indicate what it does
llvm-svn: 9054
2003-10-12 18:51:53 +00:00
Chris Lattner 1d243169d9 * Spell "necessary" correctly
* Print floating point values using C99 hexadecimal style FP if possible.
  This increases the number of floating point constants that may be emitted
  inline, and improves precision for global variable initializers which
  can not be emitted in integer form.

This fixes the Olden/Power benchmark with the CBE!!!!

llvm-svn: 9052
2003-10-12 08:12:58 +00:00
Chris Lattner 2e5cfa4fe8 Test that we can emit global initializers that are not normal FP values
llvm-svn: 9050
2003-10-12 07:31:25 +00:00
Chris Lattner 5d841b2de5 * Be TBAA safe
* Fix isFPCSafeToPrint to find more constants safe to print, which it was
  failing because ftostr was padding with leading space characters.
* Scan the entire module for global constants instead of each function at a
  time.  This has the advantage of allowing us to emit constants at global
  scope instead of function scope.  This speeds FP programs quite a bit.

llvm-svn: 9048
2003-10-12 04:36:29 +00:00
Brian Gaeke 91d16b3b3f Greatly expand documentation comment at head of file... I had to
try to understand it; maybe this will help someone else do so too.
Default CVSRootDir to $CVSROOT first, then the path in ~vadve only if $CVSROOT
 was not set.
Checkout with -z3 if we might be checking out over ssh/rsh.
Check the filename of gnuplot to see if it is executable; if not, as a
 last resort, try just plain "gnuplot", hoping it is in the path somewhere.
Remove a little extra whitespace.

llvm-svn: 9046
2003-10-11 05:34:00 +00:00
Brian Gaeke 74edce6f7c Make mmap's fd for anonymous memory acquisition default to -1, except on
Linux. This is consistent with what FreeBSD and Solaris both want.
This makes the JIT work on FreeBSD 5.1-RELEASE. Whee.

llvm-svn: 9045
2003-10-11 03:51:18 +00:00
Brian Gaeke bf7bbf1881 Quote qmtest args in $(CONTEXT).
I don't remember precisely what bug this fixed, but I remember that
it fixed a bug. Sorry. (I think one of these args had a Funny Shell Character
in it, or a space, or something, in my last build, and this seemed
like the obvious fix.)

llvm-svn: 9044
2003-10-11 00:10:05 +00:00
Chris Lattner 3f647b8bc0 Actually pass in a pointer to the thrown object, not a pointer to the
exception header.  This is the final missing piece from the PR#27 puzzle.

llvm-svn: 9043
2003-10-10 22:55:55 +00:00
Brian Gaeke 969378468e This seems to work around some unobvious bug in gcc on sparc which was
causing the build of lib/Target/X86 to fail.

llvm-svn: 9042
2003-10-10 21:55:29 +00:00