Commit Graph

854 Commits

Author SHA1 Message Date
Chris Lattner
fd13129bdf Reorder #includes to follow LLVM conventions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8375 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-05 20:08:15 +00:00
Brian Gaeke
d1cab3e6ce Interpreter, JIT moved to lib/ExecutionEngine (includes -> llvm/ExecutionEngine)
Build lli using executionengine library


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8372 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-05 19:42:34 +00:00
Brian Gaeke
5c9cd9564f -abort-on-exception is gone. Rebuild your gccld shell scripts, folks! :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8368 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-05 19:23:03 +00:00
Brian Gaeke
70975eef57 Make CreateArgv part of lli rather than part of ExecutionEngine.
Switch Interpreter and JIT's "run" methods to take a Function and a vector of
 GenericValues.
Move (almost all of) the stuff that constructs a canonical call to main()
 into lli (new methods "callAsMain", "makeStringVector").
Nuke getCurrentExecutablePath(), enableTracing(), getCurrentFunction(),
 isStopped(), and many dead decls from interpreter.
Add linux strdup() support to interpreter.
Make interpreter's atexit handler runner and JIT's runAtExitHandlers() look
 more alike, in preparation for refactoring.
atexit() is spelled "atexit", not "at_exit".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8366 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-05 18:42:01 +00:00
Brian Gaeke
8e53948881 Move EE dtor where it belongs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8345 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-04 22:57:27 +00:00
Brian Gaeke
f58815e161 Interpreter cleanups:
Get rid of support for DebugMode (make it always off).
Mung some comments.
Get rid of interpreter's PROFILE_STRUCTURE_FIELDS and PerformExitStuff
 which have been disabled forever.
Get rid of -abort-on-exception (make it always on).
Get rid of user interaction stuff (debug mode innards).
Simplify Interpreter's callMainFunction().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8344 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-04 22:21:24 +00:00
Brian Gaeke
82d8277ad5 ExecutionEngine.cpp: Move execution engine creation stuff into a new
static method here.
 Remove some extra blank lines.
ExecutionEngine.h: Add its prototype.
lli.cpp: Call it.

Make creation method for each type of EE into a static method of its
own subclass.

Interpreter/Interpreter.cpp: ExecutionEngine::createInterpreter -->
 Interpreter::create
Interpreter/Interpreter.h: Likewise.
JIT/JIT.cpp: ExecutionEngine::createJIT --> VM::create
JIT/VM.h: Likewise.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8343 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-03 20:34:19 +00:00
John Criswell
22edc39046 Added code that makes the bytecode file readable (needed by the generated shell
script).
Removed the use of sys/types.h and sys/stat.h.
Modified FileExists() so that it uses the access() system call to check for
file existance.  This requires less header files and might even be a tad bit
faster.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8328 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-02 21:11:22 +00:00
John Criswell
d35b5b542d Modified the code so that it uses the MakeFileExecutable() method. The new
library code now adds all execute bits that are allowed by the umask value to
the file's current permission bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8325 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-02 20:17:20 +00:00
Chris Lattner
145b7ddd67 #include is unnecessary
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8316 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:45:46 +00:00
Chris Lattner
253aef8e59 Preselection is now integrated into the Sparc target library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8305 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:30:17 +00:00
Chris Lattner
0748a3904a Sparc peephole optimizer moved out of post-opts library into Sparc target library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8302 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:26:14 +00:00
Chris Lattner
36f18aefe8 Remove the -stopAfterNPasses option, which has been long obsoleted by bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8278 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 21:47:24 +00:00
Chris Lattner
cf37c23a47 * move the dead-type-eliminate passes to the end, where they are more useful
* add prune-eh and inlining passes
* other minor pass reorganizations


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8277 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 21:45:55 +00:00
Chris Lattner
55b2eb3ef8 Rename TarjanSCCIterator -> scc_iterator
* Increases consistency with other iterators (e.g. df_iterator, po_iterator...)
  * It's shorter
  * We don't name classes by the implementation, we name it for the interface!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8273 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 20:01:57 +00:00
Chris Lattner
729d73d425 Don't explicitly use the SCC class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8271 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:55:06 +00:00
Chris Lattner
9f2a06e76d The SCC::HasLoop method is now in the main iterator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8269 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:51:38 +00:00
Chris Lattner
6c5fd8e055 The tarjan iterator now returns a reference to the current SCC, not a possibly null pointer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8262 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:35:16 +00:00
Chris Lattner
8d0a23ab42 Indent classes correctly in the namespace
move bodies out-of-line
Add getAnalysisUsage method for SFGSCC


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8259 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:27:11 +00:00
Chris Lattner
23ebd75aff * Cleanups
* Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8258 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 19:23:41 +00:00
John Criswell
3a9ce67289 "Help keep our secrets secret."
Added code to respect the umask value.  Before, files were generated world
readable, which may not be desirable for all installations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8215 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 14:46:12 +00:00
Misha Brukman
85544baf54 Renaming dis' -> llvm-dis'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8197 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 22:14:16 +00:00
Misha Brukman
231d64dd08 Build llvm-as and llvm-dis as the upgrade path to renamed tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8192 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 21:43:51 +00:00
John Criswell
b5d09bf4cc Added code to avoid checking for .bc when the filename is too short.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8190 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 21:42:29 +00:00
Misha Brukman
ad0bf0fc0c Renaming LLVM dis' to llvm-dis'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8189 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 21:34:13 +00:00
Misha Brukman
cbb62dd6b7 Renaming LLVM as' to llvm-as'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8188 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 21:32:57 +00:00
Chris Lattner
a55c4b1ce7 Reorder #includes
Make sure that we veryify the result before writing it out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8177 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 16:25:34 +00:00
Tanya Lattner
14baebf4ee First version of llvm-ar added to cvs repository.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8173 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 15:22:38 +00:00
Chris Lattner
0c8c0e80ca Remove some long-dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8135 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 19:52:02 +00:00
Chris Lattner
39c07264da Targets now configure themselves based on the source module, not on the
ad-hoc "Config" flags


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8134 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 19:50:53 +00:00
Chris Lattner
62c720a5bd Targets now configure themselves with the module, not flags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8133 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 19:50:12 +00:00
Chris Lattner
1543e40cea Add preliminary support for "any" pointersize/endianness. This will need
to change soon though.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8123 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 14:02:47 +00:00
Chris Lattner
bb43350e32 Add support for modules with "any" pointersize/endianness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8122 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 14:02:14 +00:00
Chris Lattner
a2b2dc9795 add preliminary support for -export-dynamic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8058 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 19:18:45 +00:00
Chris Lattner
c28c1d3cd1 Kill warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8056 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 18:57:43 +00:00
Misha Brukman
79063d6c4b Squash the warning that `Result' may not be initialized on all code paths.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8042 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 03:35:24 +00:00
John Criswell
69582b35b6 The JIT now passes the environment pointer to the main() function when it
starts a program.  This allows the GNU env program to compile and JIT under
LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8022 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 21:12:30 +00:00
Misha Brukman
c1fdca8045 Make the bytecode file executable as well for LLEE purposes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7992 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-20 20:38:15 +00:00
Chris Lattner
a59f71adea no-strict-aliasing redux
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7965 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 22:32:48 +00:00
Chris Lattner
c13115c633 The CBE generates code which violates the TBAA rules of C, thus we must disable
optimizations based on these rules.  :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7964 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 22:32:03 +00:00
Chris Lattner
04aa29d7bf Add new -disable-verify option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7960 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 20:47:13 +00:00
Misha Brukman
5560c9d49c Spell `necessary' correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 14:43:39 +00:00
Chris Lattner
57c6941631 Give correct command line for making a shared object
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7929 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 23:38:53 +00:00
Chris Lattner
57e5a702d0 Make sure that "newmain" gets names for its arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7927 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 22:14:20 +00:00
Chris Lattner
e533cefbc0 Fix message
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7926 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-17 22:08:25 +00:00
Misha Brukman
bdfb1d83d2 `execve_test' is not part of LLEE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7912 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 23:31:54 +00:00
Misha Brukman
593ece0050 A lot of changes were suggested by Chris.
ExecveHandler.c:
* Use "" instead of <> for LLVM include files
* Use raw I/O, we don't need buffering
* Set errno = 0 before using open()
* strlen() doesn't count NULL terminator in its size
* Use memcmp() instead of strcmp()
* Return result of the real execve(), not 0
* Search for path to bytecode file if not absolute/relative path

SysUtils.c:
* Convert all comments to C-style
* Stop using `bool', use `unsigned' instead

SysUtils.h:
* Stop using `bool', use `unsigned' instead
* Updated comment to FindExecutable()

README.txt:
* Describe the goal of LLEE and an application


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7911 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 23:31:16 +00:00
Chris Lattner
ad6ba3e071 Revert my last (accidental) checkin, but keep the typeo fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7879 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 04:56:47 +00:00
Chris Lattner
80df4638fe rename selection library to selectiondag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7878 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 04:56:09 +00:00
Chris Lattner
4c7fc1e813 Incorporate mapping library into the sparc library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7800 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-13 02:28:20 +00:00
Misha Brukman
0abaaf49fd Initial checkin of the LLEE, the (LL)VM (E)xecution (E)nvironment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7760 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 22:29:36 +00:00
Chris Lattner
4c08840e4b Include the new selection library for the X86 target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7720 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 14:59:53 +00:00
Misha Brukman
249d64a14c Chomped spurious blank lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7700 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-08 15:37:35 +00:00
Misha Brukman
3d9cafa003 File-related functions moved to FileUtilities.h .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7696 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:42:28 +00:00
Chris Lattner
23d5724c61 Completely remove mention of the correlated branch elimination pass. It has
bugs and needs to be reworked anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7692 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:30:12 +00:00
Misha Brukman
57d708b122 * The possessive third-person singular has no apostrophe (its)
* Grouped header files to fit with the LLVM standard
* Fit code into 80 columns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7690 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:23:52 +00:00
Misha Brukman
e49603d79d Re-grouped and alphabetized headers for easier reading and cleaner style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7689 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:19:30 +00:00
Misha Brukman
11c6592daf Fixed path for SystemUtils.h and a few code cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7688 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:05:13 +00:00
Misha Brukman
0bd75bb92d Moved SystemUtils.h to include/Support and SystemUtils.cpp to lib/Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7687 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:04:42 +00:00
Chris Lattner
47ae4a1cee If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for
narrowing, no matter what.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7596 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 15:51:05 +00:00
Misha Brukman
a493ae300b Only test the vector of functions if it is non-empty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7594 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 15:26:21 +00:00
Misha Brukman
5d3f1f01aa Do not attempt to reduce a test case if it is an empty set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7570 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 19:03:42 +00:00
John Criswell
5cfff2545d Added code that ensures that we don't try to reduce an empty vector of basic
blocks.
This fixes the bugpoint regressions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7569 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 18:24:31 +00:00
Chris Lattner
ca25b956f1 Make sure to flush the output stream so that we get incremental updates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7555 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 00:56:43 +00:00
Chris Lattner
6730c8133a Print accurate run instructions for when testing LLC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7554 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 00:56:27 +00:00
Chris Lattner
15d11276c1 Fix problem I introduced in bugpoint with the cleanup functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7549 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-03 22:29:43 +00:00
Chris Lattner
c648dabf65 DEBUG got moved to Debug.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7491 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 22:13:59 +00:00
Chris Lattner
65f62790d6 Use the new FileUtilities library to do diff'ing of files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7484 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 20:29:45 +00:00
Chris Lattner
794a58ed19 Use the C++, more portable, deleter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7483 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 20:29:18 +00:00
Chris Lattner
10b9fa89a1 Don't emit modules with lots of cruft hanging off of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7478 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 16:14:33 +00:00
Chris Lattner
587a6ce4b9 Parameterize the performFinalCleanups a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7477 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 16:13:49 +00:00
Misha Brukman
3b624625e7 Ignore intrinsic functions -- don't mangle their names or rewrite calls to them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7438 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 21:45:20 +00:00
Misha Brukman
be6bf5668c CodeGeneratorBug.cpp:
* Temporarily externing InputArgv to print it out for the benefit of LLI command
  needed to reproduce the result.
* Print out the list of functions currently being tested
* ListReducer now returns a bool if there was a failure, so test for it

ListReducer.h:
* Handle the case where there is no problem by returning true if failure is
  found. Also correctly handles the case when there is only 1 pass/function.

Miscompilation.cpp:
* ListReducer now returns a bool if there was a failure, so test for it


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7434 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 20:15:56 +00:00
Misha Brukman
9d679cbc6c * Moved InputArgv out of anonymous scope to be extern'd in another file.
* Added DEBUG() statements to print out parameters passed to executing programs
* Actually ADD parameters to a program running via the JIT (using vector<char*>)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7433 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 20:15:44 +00:00
Misha Brukman
800e6e216a Moved definition of InputArgv into ExecutionDriver.cpp -- it is only used there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7427 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 17:59:23 +00:00
Misha Brukman
7835c85227 Use a vector<char*> instead of char*[] so that we can add arbitrary number of
parameters, such as command-line arguments that the executing program gets via
bugpoint.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7423 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 17:44:15 +00:00
Chris Lattner
c1869e85de Add variable to capture arguments that should be passed to the user program
This is unused so far.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7422 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 17:36:07 +00:00
Misha Brukman
5d5bc7b90c Revert change: default architecture is never set, it is guessed from input
bytecode file. This means that LLC on X86 will compile to Sparc assembly given a
64-bit input bytecode file...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7419 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 15:29:55 +00:00
Misha Brukman
de9720ffce * Disambiguate symbols before we start splitting module by functions
* Moved DisambiguateGlobalSymbols() out of the ReduceMisCodegenFunctions class
* Added an assert to have a cleaner exit if `main' is not found in the module


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7380 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 16:02:28 +00:00
Misha Brukman
c1e39ee659 Implemented cleanups as suggested by Chris:
* Use Module::getNamedFunction() to delete "main" instead of using a loop
* Compare function pointers instead of function names to determine equivalence
* Simplified creation of a 2-element vector containing zeroes
* Manually performed LICM on code
* Added an abort() in case a function we're considering occurs in something that
  is not an instruction
* Use DEBUG() around code sections instead of just in a statement in a loop,
  because GCC's DCE may not be good enough to completely remove it in a release
  build
* Print out a command that can be directly copied-and-pasted to re-execute
* Instead of just checking if a symbol begins with a dot and fixing it
  accordingly, use Mangler and fix all the problems (invalid chars in C symbol
  names) entirely
* The new `main' function has external linkage


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7371 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 21:07:39 +00:00
Misha Brukman
fe04db890b Added comment to function isExecutingJIT()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7370 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 20:59:16 +00:00
Misha Brukman
91eabc13d3 BugDriver.h:
* Added method to query if BugDriver is executing the JIT currently.
  This provides the ability in adding code that is conditionally executed in
  codegen debugging phase.

CodeGeneratorBug.cpp:
* Delete test functions from the Safe module
* Code conditionally added when debugging the JIT:
  use the lazy resolver function added to Emitter.cpp to get function pointer
  by name. When compiled into an .so, this is the only way to get a pointer to
  an external function
* Added a symbol disambiguator which will keep symbols uniquely named across
  modules
* Delete generated files by default
* The function `main' *must* stay in the .bc file for the JIT, but that prevents
  debugging it alone. This patch makes the old `main' become `old_main' and adds
  a new function named `main' which just calls the original with the same
  parameters, thereby keeping functionality the same.

ExecutionDriver.cpp:
* Returned to getting unique filenames
* Simplified code choosing between using and not using shared library option


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7364 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 19:16:14 +00:00
Misha Brukman
248ea32cc9 Add in support to load shared objects (-load is provided by Support library).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7360 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 19:06:19 +00:00
Misha Brukman
a259c9be2a Made a bunch of cleanups, as per Chris' recommendations:
* Removed unused global and member variables
* Fixed comments (CodeGeneratorBug.cpp)
* Check for possibly failing GCC::create() and CBE::create()
* Remove generated files after diffing the output (e.g., shared object)
* Instead of using std::for_each, use explicit loops as std::for_each may
  duplicate the functor, and ours carries state
* Changed member var from cl::opt<std::string> to just std::string
* Fixed doxygen comments
* Fixed string comparisons to use [ str.empty() ] instead of [ str == "" ]
* Cache instances of CBE and GCC in BugDriver across compilations and executions
  while testing tools.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7302 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 21:59:10 +00:00
Misha Brukman
5073336cd4 Major addition to bugpoint: ability to debug code generators (LLC and LLI).
The C backend is assumed correct and is used to generate shared objects to be
loaded by the other two code generators.

LLC debugging should be functional now, LLI needs a few more additions to work,
the major one is renaming of external functions to call the JIT lazy function
resolver.

Bugpoint now has a command-line switch -mode with options 'compile' and
'codegen' to debug appropriate portions of tools.

ExecutionDriver.cpp: Added implementations of AbstractInterpreter for LLC and
GCC, broke out common code within other tools, and added ability to generate C
code with CBE individually, without executing the program, and the GCC tool can
generate executables shared objects or executables.

If no reference output is specified to Bugpoint, it will be generated with CBE,
because it is already assumed to be correct for the purposes of debugging using
this method. As a result, many functions now accept as an optional parameter a
shared object to be loaded in, if specified.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7293 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 18:17:43 +00:00
Misha Brukman
265789f155 Fixed misspelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7223 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-21 21:58:16 +00:00
Chris Lattner
b18ed088fb Remove instloops library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7210 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-21 19:07:27 +00:00
Misha Brukman
fcf2be75ec Initialize the target architecture based on compiler defines, so if compiled on
x86 or Sparc, LLC will automatically default to that platform, no guessing
required. On another platform, it will default to `noarch' and will have to
guess which architecture to compile to.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7207 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-18 22:21:40 +00:00
Anand Shukla
e79b4f1875 Added pass to instrument backedges for lightweight tracing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7202 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-18 16:25:40 +00:00
Misha Brukman
bc0e998c49 The word separate' only has one e'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7173 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-14 17:20:40 +00:00
Misha Brukman
cc41afa6b1 Converted tabs to spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7139 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-10 16:35:17 +00:00
Misha Brukman
29abc97100 Fixed indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7122 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-07 22:28:42 +00:00
Misha Brukman
82742916f3 * 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7070 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 17:53:19 +00:00
John Criswell
7a73b80b90 Merged in autoconf branch. This provides configuration via the autoconf
system.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30 21:59:07 +00:00
Chris Lattner
dc52353833 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6916 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-26 05:29:50 +00:00
Chris Lattner
293a33a911 Move the instcombine pass before globaldce, so that if globals are made dead by instcombine, that they can be deleted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6910 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-26 04:32:31 +00:00
Chris Lattner
898e0e42e3 Try to run cleanups even if nothing was modified in the preview passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6897 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-25 04:13:52 +00:00
Chris Lattner
06c818e717 Run dead arg elimination, and tell it that it's ok to hack up non-internal functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6896 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-25 04:13:36 +00:00
Chris Lattner
e643a6cb9a Add tail duplication pass to the pipeline, move the verifier pass to the front
Other minor reorganizations


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6849 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22 20:11:45 +00:00
Chris Lattner
5b836c4a06 Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6799 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-20 15:49:04 +00:00
Chris Lattner
dccb6d017b Funcresolve no longer performs nicification of resolved functions
instcombine does this


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6787 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-19 17:03:51 +00:00
Brian Gaeke
5ce1a585df tools/llc/llc.cpp: Make "-o -" work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6780 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-18 21:43:33 +00:00
Brian Gaeke
2e2f2dcd6a lib/Target/Sparc/Sparc.cpp:
Move LowerAllocations, PrintFunction, and SymbolStripping passes, and
  the corresponding -disable-strip and -d options, over here to the SPARC
  target-specific bits of llc. Rename -d to -dump-asm.

tools/llc/Makefile:
 Reindent. Add x86 library so that llc compiles again.

tools/llc/llc.cpp:
 Remove support for running arbitrary optimization passes. Use opt instead.
 Remove LowerAllocations, PrintFunction, and SymbolStripping passes, as noted
  above.
 Allow user to select a backend (x86 or SPARC); default to guessing from
  the endianness/pointer size of the input bytecode file.
 Fix typos.
 Delete empty .s file and exit with error status if target does not support
  static compilation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6776 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-18 21:14:23 +00:00
Chris Lattner
cccc28c674 Reindent code to match the rest of the file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6772 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-18 18:46:08 +00:00
Chris Lattner
a34f440f69 Add new DAE pass to gccld. It does not add cause any regressions in the test-suite
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6770 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-18 16:29:02 +00:00
Brian Gaeke
5285270871 Use $(PLATFORMLIBDL) to selectively bring in -ldl only on those platforms where
it is needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6753 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 20:09:18 +00:00
Chris Lattner
f25b7729c1 Life is too short. Link in too much stuff on Linux to make building on sun easier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6748 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 19:14:59 +00:00
Chris Lattner
da601403d9 The never-ending odyssey trying to get sparc to link
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6747 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 18:19:52 +00:00
Chris Lattner
d562436355 Make sure to get the value of ARCH before we use it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6746 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 17:53:35 +00:00
Chris Lattner
2bf4c61557 Do not link in the Sparc JIT when building on X86. Eventually the sparc will not
link in the X86 JIT either, but this makes testing easier.

For some reason, the sparc JIT was breaking the X86 JIT when it was linked in. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6745 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 15:54:52 +00:00
Chris Lattner
7a5500e2f6 Whoops, didn't mean to check that in :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6743 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 15:46:34 +00:00
Chris Lattner
97ac14f33c Use more structured command line option processing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6742 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-17 15:43:13 +00:00
Chris Lattner
2eb9a257c8 Actually, change it to use explicit new/delete, which is more likely to be
optimized INTO an alloca


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6727 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-16 22:29:09 +00:00
Chris Lattner
5b1688d73b Remove usage of alloca
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6726 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-16 22:22:11 +00:00
Brian Gaeke
ad95d9ef50 Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",
so that we can easily change its use to be conditional on the result of
an autoconf test later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6723 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-16 21:54:01 +00:00
Chris Lattner
4a4dabaac0 Fix major bug in my last checkin. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6688 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-13 16:10:26 +00:00
Chris Lattner
8fce4bf39b Remove obsolete comments about llvm-ar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6686 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-12 18:57:42 +00:00
Chris Lattner
5b4299c26d Remove duplicate pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6631 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 20:51:10 +00:00
Chris Lattner
b417c795d2 Remove stupid thinko that was preventing bugpoint from working
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6533 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-02 04:54:29 +00:00
Chris Lattner
24271cf8d7 Give better information about how the passes crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6532 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-02 04:54:16 +00:00
Chris Lattner
3ce0ea8fd8 Add support for: -o -
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6485 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:47:16 +00:00
Chris Lattner
42ed21b151 Add SRoA pass to gccas
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6442 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:24:06 +00:00
Chris Lattner
4dc3535e7a Move indvars pass after mem2reg pass where it is more likely to be useful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6441 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:23:10 +00:00
Chris Lattner
e68e4d59e8 Fix formatting in file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6398 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-29 15:13:15 +00:00
Misha Brukman
1df4d5e668 Link in Sparc libs for the JIT, even on X86 to be able to support debugging
of Sparc JIT (printing out instrs) on X86. Con: this increases linking time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6361 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 21:42:05 +00:00
Chris Lattner
68d9ed8b76 Remove ugly hack (that I put in originally) for building in trace stuff
automatically in LLC


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6358 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 21:23:02 +00:00
Chris Lattner
6ac79d115e Add compatibility option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6354 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 19:15:11 +00:00
Brian Gaeke
6ae73dc98f Remove ".bc" from the end of InputFile if it is there, in
tools/lli/lli.cpp:main().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6317 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-23 20:28:07 +00:00
Brian Gaeke
69a79600cb gccld.cpp:
Fix typo in header.
 Add IsArchive static method.
 Roll LoadLibraryFromDirectory() into LoadLibrary(), and factor
  LoadLibraryExactName() out of the result. Instead of treating the current
  directory specially, just insert it into LibPaths in the beginning of
  main().
 Make LoadLibrary() take a "search" flag that says whether to search for the
  correct library, or just trust that LibName is right.
 Make LinkLibrary() take a "search" flag, and pass it to LoadLibrary().
 Change the for-loop over InputFilenames to detect ar archives and link them
  in as libraries without searching.
 Change the for-loop over Libraries to explicitly turn on the "search" flag
  to LinkLibrary() that makes LoadLibrary() search for the correct library
  (i.e., when processing -lNAME options.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6316 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-23 20:27:07 +00:00
Brian Gaeke
dae7f92366 Clarify BugDriver.cpp:BugDriver::ParseInputFile()'s return values in its
explanatory comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6308 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-23 05:34:32 +00:00
Chris Lattner
6c8103f7dd Kill using declarations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6292 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-22 20:13:16 +00:00
Chris Lattner
dbe48dcaec Allow disabling final cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6271 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-21 20:38:59 +00:00
Chris Lattner
28b8ed90c7 Increase odds that this won't bork things
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6267 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-21 19:41:31 +00:00
Chris Lattner
9148ec65c2 Get rid of really old makefile cruft
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6218 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 21:31:31 +00:00
Chris Lattner
7cb77e188f Search LLVM_LIB_SEARCH_PATH for objects to allow it to find crtend.o
Implement minor library linking optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6181 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-13 22:14:13 +00:00
Chris Lattner
59039a926d Add a disable-verify option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6155 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12 22:12:44 +00:00
Chris Lattner
0b43f4ef29 Move static stuff to an anonymous namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6154 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12 22:08:58 +00:00
Chris Lattner
3cbacc9047 Print filename correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6119 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12 14:32:04 +00:00
Chris Lattner
19669f37b0 The JIT is the default mode for LLI now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6118 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12 14:31:57 +00:00
Chris Lattner
f479be58f5 Make a comment more accurate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5991 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-03 03:20:36 +00:00
Chris Lattner
cc876a7421 Add support for debugging miscompilations with the use of the JIT or CBE!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5990 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-03 03:19:41 +00:00
Chris Lattner
fb74224662 Bugpoint is always verbose, eliminate option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5989 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-03 03:18:41 +00:00
Misha Brukman
c8b27318a3 The Grammar Police is out on patrol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5985 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-03 02:16:43 +00:00
Chris Lattner
590607b01c Add an instcombine pass before levelraise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5980 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-02 18:19:05 +00:00
Chris Lattner
68492725a0 Add a new option to disable stripping of bytecode files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5969 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-28 03:28:56 +00:00
Chris Lattner
10daaa1416 Remove two fields from TargetData which are target specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5963 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-26 20:11:09 +00:00
Chris Lattner
6db70ef879 Add options to disable simplification with passes, in case one of them crashes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5950 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 22:08:12 +00:00
Chris Lattner
bc19466912 Make sure to copy double alignment as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5936 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 06:06:13 +00:00
Chris Lattner
b5881f126d Kill using declarations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5934 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:26:11 +00:00
Chris Lattner
2b5f2c1a64 Make sure to add a targetdata instance to the passmanager, and make it match the
one in use by the TargetMachine


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5931 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:22:29 +00:00
Chris Lattner
0c13998775 Rename Kept -> Suffix
FIX problem where we were incorrectly putting the prefix of the list into the "suffix" list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5926 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 03:16:33 +00:00
Chris Lattner
06943add8b Rename Kept -> Suffix
Fix problem where we accidentally returned KeepPrefix instead of KeepSuffix!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5925 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 03:16:05 +00:00
Chris Lattner
5f73e38548 Big programs have tons of global variable initializers, and most passes don't care
about them.  Try to delete them if it doesn't affect the passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5918 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 00:53:05 +00:00
Chris Lattner
16608b4c85 When cleaning up the final bytecode file, make sure to run DTE as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5917 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 00:52:30 +00:00
Chris Lattner
286921e8d2 Speed up convergence significantly and also reduce the size of testcases by making large portions of a function's CFG dead at a time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5915 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 23:51:38 +00:00
Chris Lattner
f607b79bc7 The big fix is this change:
-    if (I->isExternal() && !Functions.count(I))
+    if (!I->isExternal() && !Functions.count(I))

We were not actually deleting any functions from the module!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5914 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:54:06 +00:00
Chris Lattner
44be257166 Remove dead functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5913 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:53:24 +00:00
Chris Lattner
473a843f31 Make sure that deleted functions have external linkage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5912 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:53:01 +00:00
Chris Lattner
aae33f9137 Use the list reducer to improve convergence speed and to support crashes that
only occur when multiple passes interact or when multiple functions exist in a module


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5911 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:24:58 +00:00
Chris Lattner
39aebca3a2 Adjust to match new ListReducer interface
Move function to generic code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5910 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:24:22 +00:00
Chris Lattner
b4ebe13643 Allow reducer interfaces to mutate the lists passed in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5909 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:23:56 +00:00
Chris Lattner
ff4aaf0010 Move function from Miscompilation.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5908 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:23:34 +00:00
Chris Lattner
126840f49e Move the ListReducer Class into it's own header file instead of living in Miscompilation.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5907 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 20:16:29 +00:00
Chris Lattner
a148ccb158 Allow bugpoint to try new an different methods for pruning down lists
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5905 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:32:42 +00:00
Chris Lattner
9c3b55ea9f Make sure to create a target data that matches the Module's target properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5904 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:13:02 +00:00
Chris Lattner
c986392c30 Remove support for "target data" pass ctors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5900 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:36:41 +00:00
Chris Lattner
961f7b4e4f LevelRaise now gets target data from passmanager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5898 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:26:03 +00:00
Chris Lattner
640f22e66d Implement support for bugpoint to identify which FUNCTION an optimization
is miscompiling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5893 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 17:02:17 +00:00
Chris Lattner
eea21dd91c Print where reference output goes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5891 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:41:18 +00:00
Chris Lattner
a4dd4e2de8 The new CFrontend generates LOTs of basic blocks that just fall through and do
other funky stuff.  Clean it up early.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5889 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:40:42 +00:00
Chris Lattner
3c053a0a98 Allow specifying an input file for the program being executed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5888 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:31:37 +00:00
Chris Lattner
cf31784c69 We now need to link libscalar to get the switch lowering pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5874 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:43:02 +00:00
Chris Lattner
6e96a99ce3 Remove unnecessary &*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5873 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:38:00 +00:00
Chris Lattner
e0b235cd97 Build the appropriate target machine for the input pointer size and endianness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5838 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 18:10:32 +00:00
Chris Lattner
d34a51dbbe Add support for allowing the user to extend the GCCLD searchpath
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5825 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-21 19:53:24 +00:00
Chris Lattner
c65b104309 Eliminate useless duplicate libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5823 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-19 23:07:33 +00:00
Chris Lattner
10970eb05f Add first support for linking in .a files correctly and minimally, like a real linker does
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5822 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-19 22:44:38 +00:00
Chris Lattner
a856db22fa Add crufty compatibility stuff for ld
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5813 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-18 23:38:22 +00:00
Chris Lattner
e1c8153d63 Eliminate some compatibility stuff no longer needed :P
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5812 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-18 23:38:09 +00:00
Chris Lattner
f3d4f178b2 Use anonymous namespace instead of "static"
Kill using decl


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5811 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-18 23:01:25 +00:00
Chris Lattner
0af1e8e3a4 Don't support codegen passes in opt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5797 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 23:02:16 +00:00
Chris Lattner
f5653226b5 Remove codegen libraries to speed up linking opt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5796 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 22:55:55 +00:00
Chris Lattner
dabaa46c66 Allow the user to disable the internalize pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5792 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 21:43:22 +00:00
Chris Lattner
56620da5b4 Give verbose error messages if bytecode file cannot be parsed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5789 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 20:51:36 +00:00
Chris Lattner
8c7b0551f4 Improve compatibility with system AS further by allowing input from stdin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5780 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 17:49:18 +00:00
Chris Lattner
2c1d2f21fd * Get rid of using declaration
* Add two compatibility options to work better with new GCC frontend


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5779 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 17:41:08 +00:00
Chris Lattner
f2956fcc11 Namespacify command line options
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5778 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 17:34:29 +00:00
Chris Lattner
0e08e1beda Minor tweak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5758 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 17:30:35 +00:00
Chris Lattner
10f22cb1a0 Make sure that intermediate code is verifier clean to avoid wierd problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5723 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 18:17:13 +00:00
Chris Lattner
ba386d943f * Reduce the number of useless bytecode files produced by bugpoint.
- This also speeds it up as the bytecode writer isn't terribly fast.
* Add a new cleanup pass after everything else to run -funcresolve -globaldce


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5668 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-28 16:13:20 +00:00
Chris Lattner
ddd5b417c6 Rename -no-* to -disable-*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5642 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 20:00:41 +00:00
Chris Lattner
22a3b55406 Make printing messages nicer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5616 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 20:07:54 +00:00
Chris Lattner
f3bafc1043 Add new -no-verify option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5542 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-12 18:45:08 +00:00
Chris Lattner
d70b68ebd0 Add a new -no-output option, useful for -aa-eval tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5541 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-12 18:43:33 +00:00
Chris Lattner
3301b695cb Fix build problem on sparc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5428 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-29 18:15:34 +00:00
Chris Lattner
6520785dcd Make bugpoint *much* more powerful, giving it the capability to delete instructions
out of a large function to reduce it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5408 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-23 02:48:33 +00:00
Chris Lattner
f2bcccfbab Allow creating of passes like levelraise which use a targetdata ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5403 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-22 23:24:11 +00:00
Chris Lattner
cabda2134e link with static versions of some libs to avoid having to pull in all of ipo/ipa and datastructure at all
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5402 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-22 22:14:04 +00:00
Chris Lattner
285ca5ed2f Fix didn't fix the race condition in the makefiles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5394 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-22 15:41:10 +00:00
Chris Lattner
c479db964f Fix race condition in Makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5380 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-21 15:20:50 +00:00
Chris Lattner
784fac874c * Prune down library list. In particular, llc doesn't need all of IPO, and none of data structure and IPA completely!
* Do not keep symbols by default!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5375 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-19 21:55:43 +00:00
Chris Lattner
6ede045533 Rename header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5283 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:57:15 +00:00
Chris Lattner
66de1893bc Link in lots o libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5269 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 21:30:30 +00:00
Chris Lattner
0394891ef6 No longer need scalaropts lib
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5252 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:58:18 +00:00
Chris Lattner
c93489bf87 Eliminate direct access to TargetData structure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5156 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:00:00 +00:00
Chris Lattner
e1b52b7656 Fix compilation on GCC 3.2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5136 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24 00:44:34 +00:00
Chris Lattner
4fcfc12dab Don't try to buidl jello
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5135 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24 00:44:26 +00:00
Chris Lattner
d6840ac046 Fixes to compile with GCC 3.2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5134 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24 00:39:16 +00:00
Chris Lattner
a3b58e8e1b Jello is now part of LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5133 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24 00:14:25 +00:00
Chris Lattner
fe11a97fcd Substantial changes to refactor LLI to incorporate both the Jello JIT and
the traditional LLI interpreter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5125 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:59:41 +00:00
Chris Lattner
b76d4965c1 X86 target machine is now parameterizable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5124 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:55:01 +00:00
Chris Lattner
4a10645c70 New files for miscompilation detection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5120 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:50:16 +00:00
Chris Lattner
218e26ef35 Implement the start of the miscompilation detection stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5119 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:49:59 +00:00
Brian Gaeke
5c1f0f6914 brg
Add statistic for number of bytes of data area initialized.
We used this statistic in collecting data for the paper, but I forgot
to commit it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5112 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-22 18:53:23 +00:00
Chris Lattner
debb5ee6c0 Make stuff compiled with gccld not dump into the debugger if there's a problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5028 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-14 21:28:32 +00:00
Chris Lattner
041b31ce69 Pass command line arguments to main
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5027 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 16:48:57 +00:00
Chris Lattner
395a8821bf Add statistic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5026 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 15:28:42 +00:00
Misha Brukman
e4bdfa6353 Made status output debug-only (for testing diffs against lli).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5022 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 13:15:36 +00:00
Brian Gaeke
e48ec018a5 brg
InstSelectSimple.cpp: Add stub implementation of visitFreeInst.
 Add comments that mention how we are failing to implement malloc/free.
 Add initial implementation of visitAllocaInst.

X86TargetMachine.cpp: Include llvm/Transforms/Scalar.h.
 Add LowerAllocations pass before instruction selection.

jello/Makefile: Add scalaropts.a.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4994 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 06:46:31 +00:00
Chris Lattner
4c95e56743 Implement branches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4988 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 05:40:28 +00:00
Brian Gaeke
20244b7e2c This checkin is brought to you by the brian gaeke allnighter fund.
(lib/Target/X86) InstSelectSimple.cpp:
 Include llvm/DerivedTypes.h and iostream.
 Refactor visitMul out into a wrapper around doMultiply(), so that we
  can do multiplications on temporary values when we are doing
  getelementptrs.
 Refactor part of getReg out into makeAnotherReg, so that we can create
  registers willy-nilly to hold temporary values, when we are doing
  getelementptrs.
 Add stub implementations of visitMallocInst and visitAllocaInst.
 Add initial implementation of visitGetElementPtrInst.
 In copyConstantToRegister:
  We throw a *lot* of our asserts here. So, when we want to throw an
   assert, print out to stderr whatever expr or whatever constant made
   us barf.
  Support copying ConstantPointerNull to register, using a move immediate
   of zero.
 Rename FLDr4 and FLDr8 to FLDr32 and FLDr64, so that they match the meanings
  of the numbers in the other instruction names. All uses modified.
 Teach visitCallInst to extract byte- and short-class return values
  from subregs of EAX.  Add a FIXME note about how we would do it for
  float-class return values.
 Add a FIXME note about how we would cast float to int and back.

X86InstrInfo.def:
 Rename FLDr4 and FLDr8 to FLDr32 and FLDr64, so that they match the meanings
  of the numbers in the other instruction names. All uses modified.

(tools/jello) GlobalVars.cpp:
 Include iostream.
 If we have to emit a floating-point constant to memory, gamble and use
  the same method as for ints.
 If we have to emit a ConstantPointerNull to memory, try using a "void *"
  and "NULL".
 Otherwise, if we are going to throw an assert, print out whatever constant
  made us barf, first.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4973 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-12 15:33:40 +00:00
Misha Brukman
6a4a4cd837 ipa.a only needs to be mentioned once, and spaces should be used instead of
tabs for readability.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4970 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-12 05:29:32 +00:00
Vikram S. Adve
3dbbaff5ec Fix link errors due to new IPModRef pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4960 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-09 05:53:11 +00:00
Vikram S. Adve
027b27e5b9 Repeat ipa.a. Since IPModRef is currently only used in analysis.o,
it was causing linking errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4959 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-09 04:46:25 +00:00
Chris Lattner
bbdabce1e9 Add support to count the number of dynamic instructions executed by LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4955 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 05:51:08 +00:00
Chris Lattner
698e9ce568 Only build jello when compiling on X86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4938 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 03:53:40 +00:00
Chris Lattner
5d7a579842 Fix to make jello compile on Sparc even though it won't run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4937 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 03:52:51 +00:00
Chris Lattner
42aa3ae90b Add support for global value references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4908 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 06:45:40 +00:00
Chris Lattner
398b2f43ff Initial checkin of global var support code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4904 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 06:09:04 +00:00
Chris Lattner
b3bbffe7fa Implement simple global variable support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4903 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 06:04:17 +00:00
Chris Lattner
75a213dbe8 Implement external function support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4902 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 06:04:07 +00:00
Chris Lattner
41db76dec2 Initial checkin of Unresolved function fault handler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4900 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 05:05:26 +00:00
Chris Lattner
d6c10ea817 Implement lazy resolution of function calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4899 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 04:47:34 +00:00
Chris Lattner
6710121b6b Initial checkin of virtual machine implementation.
We can now run very trivial test cases


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4894 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-03 22:48:59 +00:00
Chris Lattner
9ec736860a Disable timing of bytecode loader
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4887 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-03 19:42:26 +00:00
Chris Lattner
3e80f7d9ce Final tweak to printer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4881 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-03 06:33:30 +00:00
Chris Lattner
ffe6eac6a2 Implement trivially simple debugger for MachineCodeEmitter interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4880 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-03 06:09:26 +00:00
Chris Lattner
18a171f34c Add initial support for machine code emission
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4865 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-02 21:22:04 +00:00
Chris Lattner
21049cf266 Build bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4790 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-20 22:28:18 +00:00
Chris Lattner
afade9294a Initial checkin of bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4789 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-20 22:28:10 +00:00
Chris Lattner
5113eb0c52 Move the function extractor pass from tools/extract into lib/Xform/IPO
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4759 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 18:42:59 +00:00
Chris Lattner
2181c0112f Remove extra target.a entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4756 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 16:59:41 +00:00
Chris Lattner
49d9a88428 Add a timer to evaluate bytecode load time and space requirements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4679 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:55:02 +00:00
Vikram S. Adve
8aa5aeab84 Don't build llc symbols by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4565 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 16:10:57 +00:00
Chris Lattner
6d37acb052 Give passnames to the printer classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4559 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 06:16:08 +00:00
Chris Lattner
c9d8beff59 No need to explicitly inclue ExportSymbols now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4543 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 20:50:57 +00:00
Vikram S. Adve
c405daf392 Simple passes that print out SCCs in the CFGs or in the CallGraph of a module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4532 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 14:20:22 +00:00
Chris Lattner
f74825436c Implement a new -print-callgraph analysis that turns a callgraph into a dot
graph


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4524 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 02:55:30 +00:00
Vikram S. Adve
02a74ccd61 Disable correlated expressions pass until it is reliable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4512 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-03 12:41:50 +00:00
Chris Lattner
52af630b24 Reassociate now works
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4472 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 17:13:11 +00:00
Misha Brukman
b246cee5fb Return 0 instead of 1 for correct execution. Makes automated testing happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4449 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 02:18:29 +00:00
Chris Lattner
a22026a665 Jello now builds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4430 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:41:11 +00:00
Chris Lattner
ab0aa7ff99 * Privatize the TargetName
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4418 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:48:33 +00:00
Chris Lattner
6334205cb5 Allow TargetMachine to refuse static code gen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4415 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:12:46 +00:00
Chris Lattner
083ee69349 Convert jello to use PassManager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4414 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:06:58 +00:00
Chris Lattner
6560b6b101 Rename Sparc.h TargetMachineImpls.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4409 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:48:09 +00:00
Chris Lattner
4aba5e34a1 * Remove explicit strcmp calls
* Rename Sparc.h to TargetMachineImpls.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4406 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:45:04 +00:00
Chris Lattner
e05c8fd5dd After removing stuff from TargetMachine, we now no longer have to include
it twice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4311 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:13:07 +00:00
Chris Lattner
d08e9fd389 Add codegen library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4305 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 00:54:59 +00:00
Chris Lattner
ddb1212d89 Initial checkin of LLVM JIT, codenamed jello. This tool is not built by
default, until it becomes stable.  Even then it will only work for for X86
targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4285 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-25 22:58:53 +00:00
Vikram S. Adve
c954161ea7 Added datastructure library to resolve link error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4279 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-25 21:17:34 +00:00
Chris Lattner
68ed318d33 * Fix extract to work with constant pointer refs correctly
* Extract makes all global vars external, so they don't have initializers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4121 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-12 20:50:16 +00:00
Chris Lattner
ac859db3e4 - Implement a new -print-cfg option for analyze, that causes it to print the
CFG of each function in the module to 'dot' files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4062 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-07 18:38:01 +00:00
Chris Lattner
71bcba7d1a Avoid making external global variables internal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4059 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-07 18:33:53 +00:00
Chris Lattner
7d3f8671c1 - The extract tool now is sure to extract the function implementation for
the specified name instead of extracting the prototype if both exist.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4045 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-06 21:30:04 +00:00
Chris Lattner
d2f86e7ce6 Temporary change to make datastructure stuff link in right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4005 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-01 22:41:01 +00:00
Chris Lattner
1751b7ed27 Change LowerAllocations pass to 'require' TargetData instead of it being
passed in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3930 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-25 23:47:49 +00:00
Chris Lattner
93c26685bf Make sure to close the file before deleting it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3905 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 00:09:48 +00:00
Chris Lattner
cc377df7f5 * Remove the -stopraise option, which is no longer needed now that we have
the -debug-pass=Arguments option
* Run instcombining BEFORE mem2reg so that getelementptr X, long 0's are
  cleaned up.  This is also important because scalar replacement of aggr.
  will want instcombine to run before it goes as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3879 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-22 18:50:22 +00:00
Vikram S. Adve
dcde9bd285 Renamed library preselect to preopts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3841 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:43:20 +00:00
Chris Lattner
b4ee4f935e Minor non-functionality changing changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3833 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 20:48:48 +00:00
Chris Lattner
0f82df410c Indent a comment right, add a new one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3819 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-19 16:06:28 +00:00
Chris Lattner
d14d37614b Avoid deleting the ostream more than once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3816 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 23:30:05 +00:00
Vikram S. Adve
2f0a51c419 KEEP_SYMBOLS by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3813 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 11:55:44 +00:00
Chris Lattner
ec9962e44a Compile sub-directories in parallel, because they don't have interdependencies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3808 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 03:25:58 +00:00
Vikram S. Adve
0a4aa5a026 gcc3.1.1 seems much more selective about what it loads from archives, and
does not link in many passes that are loaded by gcc2.95.3.  So use object
files instead of archives in many more cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3803 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 02:20:58 +00:00
Chris Lattner
72e66f4709 Enable correct support for dynamic loading on Linux
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3780 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 20:40:24 +00:00
Chris Lattner
44756999dc Enable correct support for dynamic loading on Linux
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3779 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-17 20:40:22 +00:00
Vikram S. Adve
6170504cce Remove duplicate sparc entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3762 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 18:28:27 +00:00
Vikram S. Adve
055451f011 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3761 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 18:13:12 +00:00
Vikram S. Adve
6189eae5cc Change several entries to use the .o instead of .a to expose pass options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3754 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 16:36:13 +00:00
Vikram S. Adve
7d0ba02640 Make all registered optimization passes available to llc.
Eliminate duplicate tracing options and use those defined by the trace passes.
Making the tracing step a module pass that runs before any llc-specific
passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3753 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 16:35:34 +00:00
Vikram S. Adve
18fdfc4eed Add support for optimization passes that use a TargetMachine object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3752 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 16:09:43 +00:00
Misha Brukman
655fb5c817 Function.h is unnecessary when Module.h is included.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3716 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-14 03:04:02 +00:00
Chris Lattner
b77640134e Export symbols for linux
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3707 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-13 22:20:19 +00:00
Chris Lattner
4dd7d3e34d * No longer need to run die after instcombine
* Run new correlated expressions pass
* Simplify the CFG (removing dead blocks, merging blocks, eliminating branches
  on constant booleans, etc) after correlated exprs pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3598 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:41:33 +00:00
Chris Lattner
0179450064 - Converted CWriter to be an LLVM pass.
- Convert dis to use a PassManager to do it's work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3560 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-31 00:30:15 +00:00
Chris Lattner
e8a7d74b0a Get FindUsedTypes pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3559 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-31 00:29:36 +00:00
Chris Lattner
c5394837fe - Reformat comments
- 'gccas' puts verifier in logical place in pass procession to avoid
    recomputing dominator information unneccesarily.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3553 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:55:32 +00:00
Chris Lattner
1acbea1678 - 'analyze' and 'as' now explicitly verify input because AsmParser doesn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3552 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:54:41 +00:00
Chris Lattner
cd7fbf2d0f - 'analyze' and 'as' now explicitly verify input because AsmParser doesn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3551 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:54:37 +00:00
Chris Lattner
c74cb8698f - Eliminate the last traces of the 'analysis' namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3550 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:53:53 +00:00
Chris Lattner
c619fa4ae5 Link to analysis.o not analysis.a
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3537 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:25:41 +00:00
Chris Lattner
1b7fbef3d3 - GCCAS now uses load value #ing for GCSE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3536 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:25:25 +00:00
Chris Lattner
e52e913626 New datastructure analysis correctly uses TargetData
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3525 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-29 20:10:29 +00:00
Anand Shukla
ecbb51b27e Added mapping lib in llc makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3514 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 16:46:11 +00:00
Chris Lattner
d6118277b0 Fixed linking problems that wanted me to link to analyze.o instead of analyze.a
so now we can link to analyze.a again.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3433 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 23:47:46 +00:00
Chris Lattner
8d64e17a83 Link in all analyses so that we get pointer analysis support built in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3427 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:17:28 +00:00
Chris Lattner
374a0950cc Do not leak memory for passes when using -stopAfterNPasses or -stopraise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3371 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-17 22:40:03 +00:00
Chris Lattner
0e4ca08843 Run GlobalDCE before deadtypeelim so that we do not retain types for global
variables that are obviously dead.  The most common case is %FILE


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3370 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-17 22:38:02 +00:00