Reid Spencer
30e43e3126
Run the verifier pass after all the other passes rather than before them.
...
This catches mistakes in the passes rather than just verifying the bytecode
input to llc.
llvm-svn: 22534
2005-07-28 04:00:49 +00:00
Reid Spencer
db38cd714e
Make the verifier pass run (in debug mode) in llc. This adds a sanity check
...
to llc when debugging. Also allow other passes to be run from llc.
Patch contributed by Michael McCracken.
llvm-svn: 22532
2005-07-28 02:25:30 +00:00
Chris Lattner
879a78ea54
add a new -filetype argument to llc.
...
llvm-svn: 22287
2005-06-25 03:32:05 +00:00
Chris Lattner
704a543530
minor cleanups, use copy ctor instead of manually doing it.
...
llvm-svn: 22285
2005-06-25 03:00:34 +00:00
Chris Lattner
c8a5e80f4f
refactor this interface
...
llvm-svn: 22284
2005-06-25 02:50:35 +00:00
Misha Brukman
960a8d47d7
Remove trailing whitespace
...
llvm-svn: 21428
2005-04-22 00:00:37 +00:00
Reid Spencer
298f85282c
For PR351:
...
* Place a try/catch block around the entire tool to Make sure std::string
exceptions are caught and printed before exiting the tool.
* Make sure we catch unhandled exceptions at the top level so that we don't
abort with a useless message but indicate than an unhandled exception was
generated.
llvm-svn: 19192
2004-12-30 05:36:08 +00:00
Reid Spencer
bbdeb2181d
Fix usage of changed function prototype
...
llvm-svn: 17798
2004-11-14 22:30:54 +00:00
Reid Spencer
c4abcbefb1
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer
8cb2484800
The functions in Signal.h are now in the llvm::sys namespace - adjust
...
llvm-svn: 16091
2004-08-29 19:28:55 +00:00
Misha Brukman
c9bf3b6db9
* Tabs to spaces
...
* Delete extra blank lines
llvm-svn: 14779
2004-07-12 22:58:07 +00:00
Chris Lattner
0171aec781
Goodbye macro hell, hello nice clean and simple code. This also gives llc
...
the ability to dynamically load and use targets that are not linked into it
statically. e.g.:
llc -load libparisc.so -march=parisc foo.bc -o foo.s
llvm-svn: 14751
2004-07-11 04:03:24 +00:00
Reid Spencer
6d8b0985d1
Add #include <iostream> since Value.h does not include it any more.
...
llvm-svn: 14623
2004-07-04 12:20:55 +00:00
Chris Lattner
6f0bab5b9d
Header file moved
...
llvm-svn: 13813
2004-05-27 05:41:36 +00:00
Brian Gaeke
f6f76523cb
Add a better head-of-file comment.
...
llvm-svn: 12447
2004-03-16 21:47:20 +00:00
Misha Brukman
34ab36e8c8
SparcV8 removed until it grows up becomes a mature backend.
...
llvm-svn: 12288
2004-03-11 18:16:33 +00:00
Chris Lattner
ab9a9c4119
Add a hook to run with the V8 target, though it doesn't currently work. Also
...
mark the PPC backend as experimental
llvm-svn: 11962
2004-02-28 19:55:16 +00:00
Brian Gaeke
c6de948cd1
Great renaming part II: Sparc --> SparcV9 (also includes command-line options and Makefiles)
...
llvm-svn: 11827
2004-02-25 19:08:12 +00:00
Chris Lattner
3c9511b0ac
Make sure to print a stack trace whenever an error signal is delivered to
...
the tool.
llvm-svn: 11633
2004-02-19 20:32:39 +00:00
Chris Lattner
81eae02a9e
When the user runs 'llc foo.bc -march=c', write the output to "foo.cbe.c", not
...
to "foo.s".
llvm-svn: 11485
2004-02-15 22:54:19 +00:00
Chris Lattner
5a793ef4b5
Add support for -march=c
...
llvm-svn: 11410
2004-02-13 23:19:09 +00:00
Brian Gaeke
e3e4d098e1
Add a -march=powerpc option. Automatically select it if this looks like a
...
big-endian, 32-bit module, or if __ppc__, __POWERPC__, or __APPLE__ are
defined.
llvm-svn: 11075
2004-02-02 19:06:12 +00:00
Chris Lattner
2a1a75c9aa
Pass extra arguments around n stuph
...
llvm-svn: 10631
2003-12-28 09:51:04 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
John Criswell
569fd0bb5c
Removed extraneous comment line.
...
llvm-svn: 9308
2003-10-20 20:40:30 +00:00
John Criswell
d06dc1136b
Added copyright header to all C++ source files.
...
llvm-svn: 9291
2003-10-20 17:47:21 +00:00
Misha Brukman
e63af2ec7e
Fix grammar.
...
llvm-svn: 9026
2003-10-10 17:56:49 +00:00
John Criswell
65e849241f
Added code to avoid checking for .bc when the filename is too short.
...
llvm-svn: 8190
2003-08-28 21:42:29 +00:00
Chris Lattner
f1f637aac9
Targets now configure themselves with the module, not flags
...
llvm-svn: 8133
2003-08-24 19:50:12 +00:00
Chris Lattner
98320af078
Add support for modules with "any" pointersize/endianness
...
llvm-svn: 8122
2003-08-24 14:02:14 +00:00
Misha Brukman
6f05e9ea0c
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...
llvm-svn: 7419
2003-07-30 15:29:55 +00:00
Misha Brukman
582cf5be31
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.
llvm-svn: 7207
2003-07-18 22:21:40 +00:00
Misha Brukman
543aedd7d0
Fixed indentation.
...
llvm-svn: 7122
2003-07-07 22:28:42 +00:00
Chris Lattner
85559692cb
Minor cleanups
...
llvm-svn: 6799
2003-06-20 15:49:04 +00:00
Brian Gaeke
667447173d
tools/llc/llc.cpp: Make "-o -" work.
...
llvm-svn: 6780
2003-06-18 21:43:33 +00:00
Brian Gaeke
19420e8daf
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.
llvm-svn: 6776
2003-06-18 21:14:23 +00:00
Chris Lattner
a7bf3dea5c
Reindent code to match the rest of the file
...
llvm-svn: 6772
2003-06-18 18:46:08 +00:00
Chris Lattner
dec82c2ca1
Remove duplicate pass
...
llvm-svn: 6631
2003-06-05 20:51:10 +00:00
Chris Lattner
f8db81aac0
Remove ugly hack (that I put in originally) for building in trace stuff
...
automatically in LLC
llvm-svn: 6358
2003-05-27 21:23:02 +00:00
Chris Lattner
0316a440a1
Add a new option to disable stripping of bytecode files
...
llvm-svn: 5969
2003-04-28 03:28:56 +00:00
Chris Lattner
bbe1aba425
Remove two fields from TargetData which are target specific.
...
llvm-svn: 5963
2003-04-26 20:11:09 +00:00
Chris Lattner
86ff9b94a9
Make sure to copy double alignment as well
...
llvm-svn: 5936
2003-04-25 06:06:13 +00:00
Chris Lattner
658693c26d
Kill using declarations
...
llvm-svn: 5934
2003-04-25 05:26:11 +00:00
Chris Lattner
5efddeb447
Make sure to add a targetdata instance to the passmanager, and make it match the
...
one in use by the TargetMachine
llvm-svn: 5931
2003-04-25 05:22:29 +00:00
Chris Lattner
1228ad2415
Remove support for "target data" pass ctors
...
llvm-svn: 5900
2003-04-24 18:36:41 +00:00
Chris Lattner
bdb65e864f
Rename header
...
llvm-svn: 5283
2003-01-14 22:57:15 +00:00
Chris Lattner
4b2c56d87f
Eliminate direct access to TargetData structure
...
llvm-svn: 5156
2002-12-28 20:00:00 +00:00
Chris Lattner
fcf89885a1
* Privatize the TargetName
...
llvm-svn: 4418
2002-10-29 21:48:33 +00:00
Chris Lattner
eec571dce8
Allow TargetMachine to refuse static code gen
...
llvm-svn: 4415
2002-10-29 21:12:46 +00:00
Chris Lattner
7bfce07f26
* Remove explicit strcmp calls
...
* Rename Sparc.h to TargetMachineImpls.h
llvm-svn: 4406
2002-10-29 20:45:04 +00:00
Chris Lattner
4b838cd6b5
Change LowerAllocations pass to 'require' TargetData instead of it being
...
passed in.
llvm-svn: 3930
2002-09-25 23:47:49 +00:00
Chris Lattner
1740f763c0
Indent a comment right, add a new one
...
llvm-svn: 3819
2002-09-19 16:06:28 +00:00
Vikram S. Adve
c1a58ef078
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.
llvm-svn: 3753
2002-09-16 16:35:34 +00:00
Misha Brukman
2e598f0092
Function.h is unnecessary when Module.h is included.
...
llvm-svn: 3716
2002-09-14 03:04:02 +00:00
Chris Lattner
ea9f0c3c4e
Print the tool name when an error comes from so that I can tell which
...
tool of a pipeline is having issues.
llvm-svn: 3167
2002-07-30 21:43:22 +00:00
Chris Lattner
5b4d1e6d6c
*** empty log message ***
...
llvm-svn: 3040
2002-07-23 22:04:43 +00:00
Chris Lattner
99ad379582
*** empty log message ***
...
llvm-svn: 2985
2002-07-22 02:10:13 +00:00
Chris Lattner
858f3734a1
Strip the symbols out of the bytecode to inflate generated executables less.
...
llvm-svn: 2811
2002-06-30 16:25:07 +00:00
Anand Shukla
c28bf298bb
Changes for 64bit gcc
...
llvm-svn: 2799
2002-06-25 21:57:48 +00:00
Chris Lattner
dfd421a7df
MEGAPATCH checkin.
...
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779
2002-06-25 16:13:24 +00:00
Chris Lattner
6b2ba36c18
Fix tracing code support to link in the tracing routines if neccesary.
...
This is required because trace code can insert calls to functions that
are (now) in an LLVM library, not a native library.
This change makes it easier to use the tracing code because the native
link options don't have to change, and it fits in a lot better with the
LLVM model.
llvm-svn: 2675
2002-05-20 21:20:08 +00:00
Chris Lattner
466c66f47a
Merge all include/llvm/Transforms/Scalar/* into a single Scalar.h
...
llvm-svn: 2538
2002-05-07 20:03:27 +00:00
Chris Lattner
453a66845a
Remove unneccesary pass.
...
llvm-svn: 2421
2002-04-30 20:53:05 +00:00
Chris Lattner
96e0c48175
Eliminate duplicate or unneccesary #include's
...
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner
536cf1b13f
* Rename MethodPass class to FunctionPass
...
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
- Method is now const
- It now takes one AnalysisUsage object to fill in instead of 3 vectors
to fill in
- Pass's now specify which other passes they _preserve_ not which ones
they modify (be conservative!)
- A pass can specify that it preserves all analyses (because it never
modifies the underlying program)
* s/Method/Function/g in other random places as well
llvm-svn: 2333
2002-04-27 06:56:12 +00:00
Chris Lattner
ded2679ed0
Make sure that there is no case where a signal can occur leaving a partially
...
written output file. This is important because crashing testcases often write
part of a file out, and the testing harness decides the file is up-to-date next
time the test is run.
llvm-svn: 2303
2002-04-18 19:55:25 +00:00
Chris Lattner
53b18fe247
s/PrintMethodPass/PrintFunctionPass
...
llvm-svn: 2182
2002-04-08 22:05:01 +00:00
Chris Lattner
bc15ae64dd
Change references to the Method class to be references to the Function
...
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144
2002-04-07 20:49:59 +00:00
Vikram S. Adve
1231c34e04
Rename pass to DecomposeMultiDimRefs.
...
llvm-svn: 1960
2002-03-24 03:19:54 +00:00
Chris Lattner
5e721a352c
* Make all command line arguments static
...
* Change -trace & -tracem options to use a 3 values enum option
* Change to use new style interface to passes
llvm-svn: 1813
2002-02-26 21:36:53 +00:00
Chris Lattner
4e02006161
* Remove -noasm option. If we're not compiling, what's the point?
...
* convert over to pass based target backend. Much cleaner now
llvm-svn: 1665
2002-02-03 23:43:19 +00:00
Chris Lattner
ed11b34f8d
Switch over to a model where we compile each method, emit assembly, then free
...
machineinstr memory before starting on the next method.
llvm-svn: 1659
2002-02-03 07:54:10 +00:00
Chris Lattner
70f03681e8
PassManager is now in its own header file
...
MethodPass's now cannot be run on external methods
llvm-svn: 1609
2002-01-31 00:46:45 +00:00
Chris Lattner
d4ebfa46da
In an amazing fit of stupidity, I flipped the conditional and didn't test
...
it right. Sheesh :)
llvm-svn: 1550
2002-01-22 21:07:24 +00:00
Chris Lattner
4cecd63a42
Rename LowerAllocations.h to ChangeAllocations.h since it now contains the
...
RaiseAllocations pass as well.
llvm-svn: 1525
2002-01-22 01:04:08 +00:00
Chris Lattner
2521ae1011
Implement a more powerful, simpler, pass system. This pass system can figure
...
out how to run a collection of passes optimially given their behaviors and
charactaristics.
Convert code to use it.
llvm-svn: 1507
2002-01-21 07:31:50 +00:00
Chris Lattner
3dc9a2a61f
Changes to build successfully with GCC 3.02
...
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner
463cc31132
Create a new #include "Support/..." directory structure to move things
...
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
3b77672a36
Remove unneccesary retcode var
...
llvm-svn: 905
2001-10-18 20:33:21 +00:00
Chris Lattner
80630ae4ed
Refactor Assembly/Bytecode writer code into Assembly & bytecode libraries
...
llvm-svn: 904
2001-10-18 20:32:07 +00:00
Chris Lattner
a5d14f7a24
Bytecode writer is yanked out of Module printer
...
llvm-svn: 899
2001-10-18 20:06:31 +00:00
Vikram S. Adve
a70aaaf07a
Move malloc/free lowering after tracing until lli supports
...
calls to external malloc/free functions.
llvm-svn: 893
2001-10-18 18:20:20 +00:00
Chris Lattner
236f063966
Only output code if file open is successful
...
llvm-svn: 890
2001-10-18 17:07:22 +00:00
Vikram S. Adve
6c1fee9a85
Trace code should always be exported just before code generation;
...
this is not a debugging option. But we can export it as assembly
instead of bytecode if -debugtrace is specified.
llvm-svn: 889
2001-10-18 13:51:20 +00:00
Chris Lattner
0a383effcc
Convert to new simpler, more powerful pass structure
...
llvm-svn: 882
2001-10-18 05:28:44 +00:00
Chris Lattner
2322c8bab6
Passes return true if they change something, not if they fail
...
llvm-svn: 869
2001-10-18 01:31:22 +00:00
Chris Lattner
463b90cb78
ConcretePass should not be a templated class!
...
llvm-svn: 838
2001-10-15 17:47:13 +00:00
Chris Lattner
902a7235a7
Minor cleanups
...
llvm-svn: 837
2001-10-15 17:41:24 +00:00
Chris Lattner
c8af2adc9f
Use the new Pass infrastructure to clean up llc
...
llvm-svn: 835
2001-10-15 17:30:47 +00:00
Chris Lattner
a68fff6614
Minor code cleanups
...
llvm-svn: 825
2001-10-15 13:47:13 +00:00
Vikram S. Adve
dc3f0d62c7
*** empty log message ***
...
llvm-svn: 811
2001-10-14 23:29:28 +00:00
Chris Lattner
96e32057bc
MethodTypes take an explicit isVarArg argument
...
llvm-svn: 782
2001-10-13 07:07:28 +00:00
Chris Lattner
7a83259579
Add hack to get rid of malloc & free instructions for code generation
...
llvm-svn: 713
2001-10-04 01:40:53 +00:00
Chris Lattner
43647563f5
Add proper support to send output to the right place
...
llvm-svn: 649
2001-09-19 16:52:09 +00:00
Chris Lattner
d5ca24e73e
Emit assembly language from the target...
...
llvm-svn: 640
2001-09-19 13:56:47 +00:00
Chris Lattner
b28fb4bcf5
C++ gives us auto_ptr's, so we might as well use them. :)
...
llvm-svn: 629
2001-09-18 17:04:18 +00:00
Vikram S. Adve
ee361e80bc
Minor changes.
...
llvm-svn: 622
2001-09-18 13:10:45 +00:00
Chris Lattner
a0a3946882
Make a new llvm/Target #include directory.
...
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files
llvm-svn: 566
2001-09-14 05:34:53 +00:00
Chris Lattner
7e70cdb641
Checkin changes to:
...
1. Clean up the TargetMachine structure. No more wierd pointers that have to
be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument. The same
should be done with the instinfo, it just isn't now.
llvm-svn: 565
2001-09-14 04:32:55 +00:00
Chris Lattner
3e2a85a0e3
This checkin represents some cleanup of the backend, implementing the following things:
...
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory. The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.
llvm-svn: 559
2001-09-14 03:37:52 +00:00