1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Commit Graph

1542 Commits

Author SHA1 Message Date
Chris Lattner
a9bca01256 Move ToolRunner.(cpp|h) into the bugpoint directory
llvm-svn: 28699
2006-06-06 22:30:59 +00:00
Chris Lattner
f16f3e80fc Make the llvm-config library dependency database depend on all of the libraries.
llvm-svn: 28695
2006-06-06 17:43:03 +00:00
Reid Spencer
ff02d7d45a Add the -Xlinker option to bugpoint which allows an option to be passed
through to gcc when its being used as a linker. This allows -L and -l
(and any other) options to be added so that non-complete bytecode files
can be processed with bugpoint. The -Xlinker option can be added as many
times as needed.

llvm-svn: 28692
2006-06-06 00:00:42 +00:00
Chris Lattner
b2e5814fae temporarily add back this option, I will remove it in a couple days
llvm-svn: 28675
2006-06-02 23:43:27 +00:00
Chris Lattner
9cfabaf195 Fix a -pedantic warning
llvm-svn: 28670
2006-06-02 22:11:06 +00:00
Chris Lattner
2a1a013f1d Add flags to get access to build_mode, objdir, srcdir etc.
If installed, ignore the prefix the tree is configured with: always use the
prefix that llvm-config is currently at, which may be different if the tree
was moved.

llvm-svn: 28669
2006-06-02 22:03:50 +00:00
Chris Lattner
58709a9965 Make llvm-config "do the right thing" when an install tree is relocated or
when run out of a build directory.

llvm-svn: 28668
2006-06-02 21:48:10 +00:00
Chris Lattner
f6262f0c01 Capture the build mode (e.g. Debug/Release) in the llvm-config script.
llvm-svn: 28665
2006-06-02 19:13:29 +00:00
Chris Lattner
f49f76bae4 Convert to standard file header
llvm-svn: 28663
2006-06-02 18:58:21 +00:00
Chris Lattner
e00b96984a Remove a couple of things no longer figured out by autoconf
llvm-svn: 28662
2006-06-02 18:55:36 +00:00
Reid Spencer
a3e44daec0 Add several more autoconf variables so that new features can be implemented
by our illustrious project leader.

llvm-svn: 28659
2006-06-02 18:31:41 +00:00
Chris Lattner
960386a1cf Add a gross "--use-current-dir-as-prefix" option as a temporary workaround
for the "build with one prefix and move the installed files to another dir"
problem.

llvm-svn: 28654
2006-06-02 01:23:18 +00:00
Chris Lattner
0f2c3368eb Remove some variables from the configured section that aren't.
llvm-svn: 28653
2006-06-02 01:04:35 +00:00
Chris Lattner
ebf12c3fcb Remove more "alpha is archive" stuff.
llvm-svn: 28652
2006-06-02 00:56:15 +00:00
Reid Spencer
6919c1b53f Suppress -pedantic warnings about print("%a")
llvm-svn: 28650
2006-06-02 00:39:08 +00:00
Chris Lattner
d04d3c12d6 Remove obsolete CORE_IS_ARCHIVE support
llvm-svn: 28649
2006-06-02 00:30:31 +00:00
Chris Lattner
2e015da996 Update the ignore file
llvm-svn: 28647
2006-06-02 00:23:15 +00:00
Reid Spencer
af36a41a09 Teach CppWriter how to emit an inline (partial) function.
llvm-svn: 28645
2006-06-01 23:43:47 +00:00
Reid Spencer
4be70bcdc9 Restore default arguments for llvm2cpp back to health by declaring an
emitted variable to actually have a type (picky, picky, picky!)

llvm-svn: 28625
2006-06-01 07:24:29 +00:00
Reid Spencer
b2d478a52b Fix a bug where incorrect C++ was being emitted.
llvm-svn: 28615
2006-06-01 04:21:20 +00:00
Reid Spencer
89a048bb1a Build llvm-config into the ToolDir not in the local directory. This makes
it more likely to be in a developer's path and consistent with all the
other tools.

llvm-svn: 28613
2006-06-01 01:52:49 +00:00
Reid Spencer
4663b7a174 Oops, llc needs libTarget.a not Target.o
llvm-svn: 28611
2006-06-01 01:42:33 +00:00
Reid Spencer
94a443bb29 Use archive libraries instead of object files for VMCore, BCReader,
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.

llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Andrew Lenharth
1ba06d364e fix utostr
llvm-svn: 28597
2006-05-31 20:18:56 +00:00
Reid Spencer
055e4e1fae Major reorganization and extension of the code. The diff on this will be a
mess as functions were moved around into a better ordering. The code was
extended to provide various -gen-* options to better control what the
generated output should be. Currently it is possible to generate entire
modules (three different ways), functions, global variables, and types.

llvm-svn: 28589
2006-05-31 17:31:38 +00:00
Reid Spencer
d5b51c6db3 Don't generate module definitions when the -fragment option is given.
llvm-svn: 28583
2006-05-31 04:43:19 +00:00
Reid Spencer
abbb7e5b84 llvm2cpp is ready to be compiled so add it to the makefile, but make it
optional.

llvm-svn: 28570
2006-05-30 21:20:55 +00:00
Reid Spencer
2a2457158d Fix more bugs. This version now passes all of the Feature test except for
a floating point conversion problem with NAN in intrinsics.ll. llvm2cpp
makes an attempt to provide the correct conversion, based on the
implementation in the CBackend writer, but it doesn't get NAN correct.

llvm-svn: 28568
2006-05-30 21:18:23 +00:00
Reid Spencer
d6d062ca7b Fix many small bugs in llvm2cpp. This patch gets llvm2cpp working with
everything except PHI nodes and one odd recurse/opaque type situation.
PHI nodes forward reference INSTRUCTIONS (aaaaaaaahhhhhhh!) :)

llvm-svn: 28554
2006-05-30 10:21:41 +00:00
Reid Spencer
605d7b0bcf First complete version of llvm2cpp that doesn't crash on any of the Feature
tests. The output in a few cases still doesn't compile, however.

llvm-svn: 28547
2006-05-30 03:43:49 +00:00
Chris Lattner
439c210c7f Silly cleanup
llvm-svn: 28544
2006-05-29 18:52:52 +00:00
Chris Lattner
39cf538534 silly cleanup
llvm-svn: 28543
2006-05-29 18:52:05 +00:00
Reid Spencer
bf39add572 Next batch of implementation:
1. Get rid of old AsmWriter cruft that's not needed.
2. Implement several instructions. Enough to get by globalvars.ll and
   alignment.ll in the Feature test suite.
3. Handle constants properly (don't repeat definitions).
4. Make the output compatible with llvm-dis for diff purposes.

llvm-svn: 28541
2006-05-29 18:08:06 +00:00
Reid Spencer
a51c941d8a Fix file header comment.
llvm-svn: 28540
2006-05-29 18:06:28 +00:00
Reid Spencer
d526d5be09 Remove temporary testing rules.
llvm-svn: 28539
2006-05-29 18:05:59 +00:00
Reid Spencer
631bd45185 Fix two bugs in the CppWriter.cpp:
1. Return the module from the MakeModule function so it can be verified.
2. Make sure types get generated with their names

llvm-svn: 28536
2006-05-29 02:58:15 +00:00
Reid Spencer
2bd5cd1602 Fix the file's comment block.
llvm-svn: 28535
2006-05-29 02:35:29 +00:00
Reid Spencer
8bd3003e72 Initial Commit of llvm2cpp
This is a safekeeping commit. The program is not finished. It currently
handles modules, types, global variables and function declarations. Blocks
and instructions remain to be done.

llvm-svn: 28528
2006-05-29 00:57:22 +00:00
Reid Spencer
574d4e6992 For PR786:
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.

llvm-svn: 28453
2006-05-24 19:21:13 +00:00
Chris Lattner
f604017e47 Patches to make the LLVM sources more -pedantic clean. Patch provided
by Anton Korobeynikov!  This is a step towards closing PR786.

llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Reid Spencer
f7b690de87 Remove the llvm-db and bugpoint restrictions from the win32 platform so
they can be compiled with ming32. The use of fork(2) has been removed.

llvm-svn: 28369
2006-05-17 21:20:50 +00:00
Rafael Espindola
dd49dfc0df added a skeleton of the ARM backend
llvm-svn: 28301
2006-05-14 22:18:28 +00:00
Chris Lattner
017b3a4335 Free memory allocated by copy_env.
llvm-svn: 28299
2006-05-14 19:17:28 +00:00
Chris Lattner
084de55c60 print a nice error if bugpoint gets an error reading inputs. Bug identified
by coverity.

llvm-svn: 28298
2006-05-14 19:15:56 +00:00
Chris Lattner
aa818c1cad Fix a bug found by inspection.
llvm-svn: 28297
2006-05-14 19:11:40 +00:00
Chris Lattner
cf71b13e15 Delete memory allocated by CopyEnv
llvm-svn: 28288
2006-05-14 18:38:13 +00:00
Chris Lattner
60dfdded64 Remove dead return value.
llvm-svn: 28245
2006-05-12 17:28:36 +00:00
Owen Anderson
29e4d70aed Refactor a bunch of includes so that TargetMachine.h doesn't have to include
TargetData.h.  This should make recompiles a bit faster with my current
TargetData tinkering.

llvm-svn: 28238
2006-05-12 06:33:49 +00:00
Chris Lattner
db59f434fd wrap long line
llvm-svn: 28113
2006-05-04 23:35:31 +00:00
Chris Lattner
bf8f91715e Adjust to use proper TargetData copy ctor
llvm-svn: 28112
2006-05-04 21:18:40 +00:00
Reid Spencer
9ee2fec714 For PR764:
Don't check in the LibDeps.txt and FinalLibDeps.txt files to CVS because
the content differs from platform to platform. Instead, adjust the makefile
so that a dummy llvm-config is built if Perl is not available.

llvm-svn: 28084
2006-05-03 17:49:50 +00:00
Owen Anderson
71bc529dfa Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.
This fixes PR 759.

llvm-svn: 28074
2006-05-03 01:29:57 +00:00
Chris Lattner
59c6239ce7 This no longer needs the JIT.
llvm-svn: 27942
2006-04-22 05:04:23 +00:00
Reid Spencer
aea3695ef8 Okay, llvm-config is good to go now.
llvm-svn: 27916
2006-04-20 21:14:39 +00:00
Reid Spencer
ab12fd6b0d Several Changes To Support Building llvm-config:
1. If Perl is not available, don't run Perl dependent targets.
2. Check in FinalLibDeps.txt for build environments that can't build it
   because there's no Perl processor.
3. Ensure that FinalLibDeps.txt depends on LibDeps.txt so it is
   automatically regenerated.
4. Support objdir != srcdir building.

llvm-svn: 27915
2006-04-20 21:13:58 +00:00
Reid Spencer
bcfe43138e Don't build llvm-config until issues are resolved.
llvm-svn: 27914
2006-04-20 21:00:24 +00:00
Reid Spencer
0b4370f18b Build the llvm-config directory as a tool.
llvm-svn: 27913
2006-04-20 20:53:23 +00:00
Chris Lattner
6e568d6bfc Never link in sparcv9
llvm-svn: 27884
2006-04-20 17:07:46 +00:00
Andrew Lenharth
90e3af9ab1 fix printing call graphs
llvm-svn: 27820
2006-04-18 23:45:19 +00:00
Chris Lattner
8228f79eae Add a warning.
llvm-svn: 27795
2006-04-18 05:31:20 +00:00
Chris Lattner
90357afa3d Add a warning
llvm-svn: 27794
2006-04-18 05:26:10 +00:00
Reid Spencer
6a45c4a655 Distribute CVS versions of lex files
llvm-svn: 27629
2006-04-12 20:56:12 +00:00
Jeff Cohen
dab30f45d8 Get JIT/Interpreter working on Windows again.
llvm-svn: 27037
2006-03-24 02:53:49 +00:00
Reid Spencer
50cf826977 Ignore the lexer output.
llvm-svn: 27034
2006-03-24 02:22:22 +00:00
Chris Lattner
3d5ca510c9 remove always-null IntrinsicLowering argument.
llvm-svn: 26971
2006-03-23 05:28:02 +00:00
Chris Lattner
dbdfef7604 add an assert to get a slightly better msg about this problem
llvm-svn: 26812
2006-03-16 23:16:17 +00:00
Reid Spencer
728a2e9f62 Convert llvm.cs.uiuc.edu -> llvm.org
llvm-svn: 26748
2006-03-14 05:54:52 +00:00
Chris Lattner
334513448f Fix a really annoying bug in bugpoint that made reducing C++ testcases
almost impossible with the new CFE.  It now guarantees that the static
ctor/dtor list is correctly split between the modules.

llvm-svn: 26624
2006-03-08 23:55:38 +00:00
Chris Lattner
010b65bfa0 Fit to 80 columns.
Add support for running static ctor/dtors that aren't handled by __main.
This fixes programs with the JIT and the new CFE, such as HBD.

llvm-svn: 26620
2006-03-08 18:43:36 +00:00
Reid Spencer
9720d6fc61 Make sure command line options are parsed before we try to add the LibPath
(-L options) to TheLinker. Problem noticed by Wink Saville.

llvm-svn: 26571
2006-03-06 06:38:19 +00:00
Andrew Lenharth
89ca36285c For transforms the behave differently if main goes away, add an option to prevent bugpoint from removing main
llvm-svn: 26557
2006-03-05 22:21:36 +00:00
Robert Bocchino
5a5c750102 Implemented -quiet feature for analyze
llvm-svn: 26494
2006-03-03 02:12:04 +00:00
Chris Lattner
2bd9a8623c Turn on loop unswitching tonight
llvm-svn: 26312
2006-02-22 07:33:49 +00:00
Chris Lattner
eb069a779c reorder some libraries
llvm-svn: 26309
2006-02-22 00:59:06 +00:00
Chris Lattner
a13bad3d53 remove support for the skeleton target
llvm-svn: 26236
2006-02-16 21:10:57 +00:00
Chris Lattner
78250fee02 Adjust to new style "generated files in CVS" mechanism for lex output
llvm-svn: 26163
2006-02-14 05:16:35 +00:00
Chris Lattner
5a9a874f44 SparcV8 -> Sparc
llvm-svn: 26008
2006-02-05 08:30:45 +00:00
Andrew Lenharth
1c7b272409 Pass plugins on to children when optimizing.
llvm-svn: 25650
2006-01-26 18:37:21 +00:00
Chris Lattner
28415cda31 Remove dead #include
llvm-svn: 25520
2006-01-23 00:38:14 +00:00
Chris Lattner
685b2eb976 It doesn't make sense to give llc a list of passes on the command line,
LLVM doesn't use it and it can't work anyway.

llvm-svn: 25519
2006-01-23 00:36:05 +00:00
Chris Lattner
c82e99be7e this doesn't work, remove it
llvm-svn: 25518
2006-01-23 00:32:33 +00:00
Chris Lattner
4093868c98 add explicit #includes of iostream
llvm-svn: 25510
2006-01-22 22:53:40 +00:00
Reid Spencer
783084211a For PR521:
With these patches we implement the ability for the Linker library to
keep track of which libraries were actually bytecode files (not archives)
and cause their users to remove such files from the list of libraries to
pass to the native linker.

llvm-svn: 25169
2006-01-10 03:14:40 +00:00
Reid Spencer
ae8ad0d55a Fix line length of a comment.
llvm-svn: 25149
2006-01-08 22:40:10 +00:00
Chris Lattner
0d03087d6d remove unused header
llvm-svn: 25101
2006-01-05 00:21:37 +00:00
Jim Laskey
61138e28ff Applied some recommend changes from sabre. The dominate one beginning "let the
pass manager do it's thing."  Fixes crash when compiling -g files and suppresses
dwarf statements if no debug info is present.

llvm-svn: 25100
2006-01-04 22:28:25 +00:00
Jim Laskey
c8681a0c43 Adding MachineDebugInfo as a immutable pass.
llvm-svn: 25088
2006-01-04 13:42:02 +00:00
Reid Spencer
51f85aa27b Revert removal of std:: prefixes and addtion of "using namespace std;".
This violates the LLVM coding standards.

llvm-svn: 25050
2005-12-30 09:07:29 +00:00
Duraid Madina
5bcf91632a don't need this anymore
llvm-svn: 25049
2005-12-30 02:50:44 +00:00
Duraid Madina
c2dd544342 delete file portably
llvm-svn: 25048
2005-12-30 02:47:21 +00:00
Reid Spencer
18c09dcf35 General cleanup:
1. Don't mix C++ and C standard I/O, convert to C++ iostreams
2. Wrap long lines
3. use the std namespace to simplify/shorten the code

llvm-svn: 25042
2005-12-29 21:13:45 +00:00
Duraid Madina
474f75e205 ditto
llvm-svn: 25038
2005-12-28 06:58:12 +00:00
Duraid Madina
92f1927bff more compliance stufff
llvm-svn: 25037
2005-12-28 06:56:09 +00:00
Duraid Madina
362af3db08 behold my standards-compliant humps!
llvm-svn: 25033
2005-12-28 05:56:36 +00:00
Duraid Madina
446f8cd8d0 WAKEY WAKEY
llvm-svn: 25032
2005-12-28 05:48:55 +00:00
Jeff Cohen
fcce4dc8b6 Get bugpoint building with VC++ again.
llvm-svn: 24977
2005-12-23 05:00:38 +00:00
Reid Spencer
36b05575fe For PR351:
Generally, remove use of fork/exec from bugpoint in favor of the portable
sys::Program::ExecuteAndWait method. This change requires two new options
to bugpoint to tell it that it is running in "child" mode. In this mode,
it reads its input and runs the passes. The result code signals to the
parent instance of bugpoint what happened (success, fail, crash).

This change should make bugpoint usable on Win32 systems.

llvm-svn: 24961
2005-12-22 20:02:55 +00:00
Chris Lattner
06a349fb05 Fix test/Regression/Other/2002-01-31-CallGraph.ll after the recent callgraph
rework.

llvm-svn: 24959
2005-12-22 19:26:06 +00:00
Reid Spencer
bca47d81ca Implement PR679:
* Changed the -rpath option from cl::opt to cl::list
* Changed the interface to GenerateNative to take a std::vector<std::string>
  instead of just a std::string
* Changed GenerateNative to generate multiple -Wl,-rpath, options to be
  passed to gcc.

llvm-svn: 24930
2005-12-22 01:50:56 +00:00
Reid Spencer
338df5077c Implement PR512:
This patch adds a -post-link-opts option to llvm-ld which allows an arbitrary
program to optimize bytecode after linking. The program is passed two file
names. The first is the input (linked bytecode) the second is where it must
place its output (presumably after optimizing). If the output file is bytecode,
it is used as a substitute for the input. This will allow things like poolalloc
to be written as a separate program instead of a loadable module or built into
LLVM.

llvm-svn: 24893
2005-12-21 05:03:23 +00:00
Chris Lattner
9823998a84 rename option for consistency with -mcpu -mattr etc
llvm-svn: 24734
2005-12-16 05:19:55 +00:00
Chris Lattner
06de420b3c rename option
llvm-svn: 24732
2005-12-16 05:19:18 +00:00
Chris Lattner
ad407557f7 provide an option to override the target triple in a module from the commandline.
llvm-svn: 24730
2005-12-16 05:00:21 +00:00
Chris Lattner
073c670431 provide an option to override the target triple in a module from the command
line.

llvm-svn: 24729
2005-12-16 04:59:57 +00:00
Chris Lattner
2c346c9a4b Fix printing of the instructions.
llvm-svn: 24714
2005-12-14 22:01:07 +00:00
Reid Spencer
5b1da8f9d0 Remove -start-group and -end-group no-op options, accidentally committed
in last patch.

llvm-svn: 24710
2005-12-14 19:08:51 +00:00
Reid Spencer
2b33292a67 Adjust the constructor to the Linker class to take an argument that names
the module being constructed. This is used to correctly name the module.
Previously the name of the linker tool was used which produces confusing
output when the module identifier is used in an error message.

llvm-svn: 24699
2005-12-13 20:00:37 +00:00
Andrew Lenharth
ce9b9b83a8 This solves the problem of the CBE renaming symbols that start with . but the assembly side still trying to reference them by their old names. Should be safe untill we hit a language front end that lets you specify such a name.
llvm-svn: 24626
2005-12-06 20:51:30 +00:00
Chris Lattner
460650a331 Revert my previous patch which broke due to lazy streaming of functions
from .bc files.

llvm-svn: 24575
2005-12-02 19:00:22 +00:00
Chris Lattner
40ca7be091 If a module has a main, but it is defined externally, refuse to run it.
Attempting to run it will find lli's main, which isn't the desired effect.

llvm-svn: 24569
2005-12-01 22:48:23 +00:00
Chris Lattner
789cdc4b29 Allow users to specify -Wl,-native* multiple times if they please
llvm-svn: 24392
2005-11-17 16:08:04 +00:00
Chris Lattner
6d1e384d01 Add a new -fast option, which generates code quickly.
llvm-svn: 24234
2005-11-08 02:12:17 +00:00
Chris Lattner
e18362e079 add a hack that fixes:
llvm-gcc main.c -Wl,-native -o a.out -g

This is important because it used by many configure scripts.

John, please pull this onto the 1.6 branch.

llvm-svn: 24163
2005-11-03 07:17:51 +00:00
John Criswell
d6538108e8 Move some constant folding code shared by Analysis and Transform passes
into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a, which provides any missing definitions.

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

llvm-svn: 24023
2005-10-26 20:35:13 +00:00
Chris Lattner
4067c1daf1 transforms before analyses
llvm-svn: 23976
2005-10-25 17:10:30 +00:00
Chris Lattner
fc3715f21a Remove a now-unneeded library
llvm-svn: 23942
2005-10-24 02:31:05 +00:00
Chris Lattner
cb0f9408b3 pull in the archive version of this lib to reduce exe size
llvm-svn: 23929
2005-10-24 01:13:21 +00:00
Chris Lattner
e14aab9fe9 Pull in the archive versions of these libs to reduce executable size
llvm-svn: 23928
2005-10-24 01:12:14 +00:00
Chris Lattner
c63137a58c Link in datastructure as a relinked o file
llvm-svn: 23926
2005-10-24 01:07:56 +00:00
Chris Lattner
4fe7c5dd1c Link to archive versions of libraries instead of the relinked ones
llvm-svn: 23925
2005-10-24 01:05:53 +00:00
Chris Lattner
33758432f4 Use the new LinkAllAnalyses.h header instead of forcing passes to be
in relinked object files

llvm-svn: 23922
2005-10-24 01:00:13 +00:00
Chris Lattner
67d9e82237 move this to the analyze tool
llvm-svn: 23918
2005-10-24 00:27:36 +00:00
Chris Lattner
6018768ec6 Use archive versions of these libraries, using the LinkAllPasses header.
llvm-svn: 23916
2005-10-24 00:12:20 +00:00
Chris Lattner
21ad999fef Shrinkify to make --help output look better
llvm-svn: 23911
2005-10-23 22:37:13 +00:00
Chris Lattner
455911544a shrinkify the option name a bit
llvm-svn: 23910
2005-10-23 22:35:42 +00:00
Jeff Cohen
a38c737e85 When a function takes a variable number of pointer arguments, with a zero
pointer marking the end of the list, the zero *must* be cast to the pointer
type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.

The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.

llvm-svn: 23888
2005-10-23 04:37:20 +00:00
Chris Lattner
546641acdd document this as experimental
llvm-svn: 23883
2005-10-22 22:00:45 +00:00
Chris Lattner
fb0fa6792e Fix PR637
llvm-svn: 23784
2005-10-18 06:29:43 +00:00
Chris Lattner
9619965bcc Speed up isBytecodeLPath from 20s to .01s in common cases. This makes -native
not completely painful to use.  Once we decide a directory has a bytecode
library, we know it this function returns true, no need to scan entire directories.

llvm-svn: 23405
2005-09-23 06:11:24 +00:00
Chris Lattner
e20b536b12 1. Do not use .c_str() to keep a persistent handle on a temporary string.
2. Concatenate -lfoo and -L/bar options into a single option instead of
   passing "-L /bar" (for example) which doesn't work on Darwin.
3. Send -v output to stderr instead of stdout

llvm-svn: 23404
2005-09-23 06:05:46 +00:00
Jim Laskey
1f9c40400c Add help support for -mcpu and -mattr.
llvm-svn: 23222
2005-09-02 19:27:43 +00:00
Jim Laskey
f32ef9a37f 1. Use SubtargetFeatures in llc/lli.
2. Propagate feature "string" to all targets.

3. Implement use of SubtargetFeatures in PowerPCTargetSubtarget.

llvm-svn: 23192
2005-09-01 21:38:21 +00:00
Reid Spencer
46a7fdeb66 Implement PR614:
These changes modify the makefiles so that the output of flex and bison are
placed in the SRC directory, not the OBJ directory. It is intended that they
be checked in as any other LLVM source so that platforms without convenient
access to flex/bison can be compiled. From now on, if you change a .y or
.l file you *must* also commit the generated .cpp and .h files.

llvm-svn: 23115
2005-08-27 18:50:39 +00:00
Chris Lattner
239aee9cd3 If the user interrupts bugpoint, don't extract loops
llvm-svn: 22603
2005-08-02 23:25:56 +00:00
Chris Lattner
0755b356ab Pass -export-dynamic to gcc when compiling with -native and the link is
performed with -export-dynamic (aka. -disable-internalize).

Patch by Nicholas Riley!

llvm-svn: 22601
2005-08-02 22:07:38 +00:00
Chris Lattner
c7ffb0c713 When the user hits ctrl-c, bugpoint should attempt to stop reduction as
quickly as possible and output what it has so far.  If they hit it twice,
bugpoint is killed.

llvm-svn: 22579
2005-08-02 02:16:17 +00:00
Jeff Cohen
019104459d Keep tabs and trailing spaces out.
llvm-svn: 22565
2005-07-30 18:33:25 +00:00
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
Jeff Cohen
bd51ec7461 Eliminate all remaining tabs and trailing spaces.
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Chris Lattner
eb6bad32e9 Fix PR576.
Instead of emitting a JIT stub that looks like this:

internal void %l1_main_entry_2E_ce_wrapper(int) {
header:
        %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) )           ; <sbyte*> [#uses=1]
        %resolverCast = cast sbyte* %resolver to void (int)*            ; <void (int)*> [#uses=1]
        call void %resolverCast( int %0 )
        ret void
}

Emit one that looks like this:

internal void %l1_main_entry_2E_ce_wrapper(int) {
Entry:
	%fpcache = load void (int)** %l1_main_entry_2E_ce.fpcache               ; <void (int)*> [#uses=2]
        %isNull = seteq void (int)* %fpcache, null              ; <bool> [#uses=1]
        br bool %isNull, label %lookupfp, label %usecache

usecache:               ; preds = %lookupfp, %Entry
        %fp = phi void (int)* [ %resolverCast, %lookupfp ], [ %fpcache, %Entry ]            ; <void (int)*> [#uses=1]
        call void %fp( int %0 )
        ret void

lookupfp:               ; preds = %Entry
        %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) )           ; <sbyte*> [#uses=1]
        %resolverCast = cast sbyte* %resolver to void (int)*            ; <void (int)*> [#uses=2]
        store void (int)* %resolverCast, void (int)** %l1_main_entry_2E_ce.fpcache
        br label %usecache
}


This makes the JIT debugger *MUCH* faster on large programs, as
getPointerToNamedFunction takes time linear with the size of the program, and
before we would call it every time a function in the text module was called from
the safe module (ouch!).

llvm-svn: 22387
2005-07-12 01:00:32 +00:00
Reid Spencer
c38a1c7061 Make sure we don't error out if an invalid path is used, just simply
exit from isBytecodeLPath with "false".

llvm-svn: 22360
2005-07-08 16:48:52 +00:00
Reid Spencer
04d734c2f6 Final Changes For PR495:
This chagne just renames some sys::Path methods to ensure they are not
misused. The Path documentation now divides methods into two dimensions:
Path/Disk and accessor/mutator. Path accessors and mutators only operate
on the Path object itself without making any disk accesses. Disk accessors
and mutators will also access or modify the file system. Because of the
potentially destructive nature of disk mutators, it was decided that all
such methods should end in the work "Disk" to ensure the user recognizes
that the change will occur on the file system. This patch makes that
change. The method name changes are:

makeReadable        -> makeReadableOnDisk
makeWriteable       -> makeWriteableOnDisk
makeExecutable      -> makeExecutableOnDisk
setStatusInfo       -> setStatusInfoOnDisk
createDirectory     -> createDirectoryOnDisk
createFile          -> createFileOnDisk
createTemporaryFile -> createTemporaryFileOnDisk
destroy             -> eraseFromDisk
rename              -> renamePathOnDisk

These changes pass the Linux Deja Gnu tests.

llvm-svn: 22354
2005-07-08 03:08:58 +00:00
Reid Spencer
5534b2d505 For PR495:
Get rid of the difference between file paths and directory paths. The Path
class now simply stores a path that can refer to either a file or a
directory. This required various changes in the implementation and interface
of the class with the corresponding impact to its users. Doxygen comments were
also updated to reflect these changes. Interface changes are:

appendDirectory -> appendComponent
appendFile -> appendComponent
elideDirectory -> eraseComponent
elideFile -> eraseComponent
elideSuffix -> eraseSuffix
renameFile -> rename
setDirectory -> set
setFile -> set

Changes pass Dejagnu and llvm-test/SingleSource tests.

llvm-svn: 22349
2005-07-07 23:21:43 +00:00
Reid Spencer
fb7bca6fa6 For PR495:
Change interface to Path class:
readable -> canRead
writable -> canWrite
executable -> canExecute

More (incremental) changes coming to close 495.

llvm-svn: 22345
2005-07-07 18:21:42 +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
Andrew Lenharth
167120f2b7 make SparcV8 and V9 seperately configurable
llvm-svn: 22204
2005-06-08 22:32:51 +00:00
Reid Spencer
1751711b06 Make sure that tool names don't have any leading or trailing spaces in them.
If they do, it screws up the concatenation of the .exe suffix on cygwin.

llvm-svn: 22142
2005-05-19 21:10:31 +00:00
Reid Spencer
dc6de29edc Make sure that tool names don't have any leading or trailing spaces in them.
If they do, it screws up the concatenation of the .exe suffix on cygwin.

llvm-svn: 22141
2005-05-19 21:03:11 +00:00
Reid Spencer
d540363ed5 For PR514:
* Make sure the "etcdir" gets checked for configuration files so that
  the installed location for config files is checked.
* Remove the st.in file (moved to projects/Stacker/tools/stkrc)

llvm-svn: 22135
2005-05-19 01:06:46 +00:00
Reid Spencer
be70df8ffb For PR514:
* language specification files are no longer configured with "configure"
* add substitutions for %bindir%, %libdir%, and various llvmgcc related
  variables needed in the c and cpp spec files.
* Implement the stubstituions in the Compiler Driver.
* Move st.in to projects/Stacker/tools/stkrc where it belongs.

llvm-svn: 22128
2005-05-19 00:52:28 +00:00
Chris Lattner
f30a6e0fbc If loopextract breaks the program provide output so that we can repro the
problem.

llvm-svn: 21790
2005-05-08 21:54:56 +00:00
Chris Lattner
ae62d64e6c Move licm after reassociate, add some cond-propagate passes
llvm-svn: 21769
2005-05-07 22:45:35 +00:00
Misha Brukman
3ae7b6af05 * Use consistent spacing for function arguments
* Output single-character strings as chars

llvm-svn: 21705
2005-05-05 22:38:21 +00:00
Misha Brukman
fc2b6af1b1 Minor clean-ups
llvm-svn: 21678
2005-05-03 20:30:34 +00:00
Misha Brukman
acbc3604de Clean up and correct llvmc configurations for C and C++
llvm-svn: 21667
2005-05-03 06:13:18 +00:00
Misha Brukman
02594aa1f7 std::string(NULL) does not a proper constructor make
llvm-svn: 21666
2005-05-03 06:10:51 +00:00
Misha Brukman
c30b62238f Omit periods at the end of command-line switch explanations for consistency
llvm-svn: 21664
2005-05-03 05:36:14 +00:00
Reid Spencer
2f676b4fd8 Add the simplify-libcalls pass.
llvm-svn: 21585
2005-04-27 02:22:47 +00:00
Misha Brukman
b4a985dcc0 extract has been renamed to llvm-extract to avoid conflicting with another tool
llvm-svn: 21501
2005-04-24 17:46:58 +00:00
Misha Brukman
e33c68918a There are still uses for spaces in Makefiles -- to make text line up together,
regardless of the tab size/stop settings on the developer side

llvm-svn: 21499
2005-04-24 17:43:41 +00:00
Misha Brukman
328b40490c extract has been renamed to llvm-extract to avoid conflicting with another tool
llvm-svn: 21498
2005-04-24 17:36:05 +00:00
Reid Spencer
ec6c11679f Make the CBackend actually get included in llc by using USEDLIBS instead of
USEDLIB as the variable to which "CBackend" is appended. The surrounding
if clause is safe because currently the configure script ensures that the
CBackend target is always added to TARGETS_TO_BUILD. By using a non-hard
coded construct in the makefile, we gain uniformity and the ability to
change the default set of targets by only changing the configure script.

llvm-svn: 21474
2005-04-23 17:24:33 +00:00
Chris Lattner
92d1aa5cf0 Always enable the C backend. This fixes a *vast* number of failures on the
testers last night, as llc was not getting the cbe linked in.

llvm-svn: 21468
2005-04-23 14:36:22 +00:00
Reid Spencer
05a3a32d50 Don't always build CBackend and Skeleton. Make use of the TARGETS_TO_BUILD
parameter instead which will correctly list the set of targets to be built.

llvm-svn: 21451
2005-04-22 17:32:05 +00:00
Reid Spencer
868f3fb2e0 Implement the --enable-targets= feature of the configure script. The make
variable TARGETS_TO_BUILD is used to determine which targets in lib/Target
are built and which libraries are linked into llc. This effectively
implements the feature. One item remains: disabling targets in the dejagnu
test suite.

llvm-svn: 21450
2005-04-22 17:20:11 +00:00
Reid Spencer
8e5135f359 Two changes:
1. Get rid of TOOLLINKOPTS as it is a hold over from llvm-test and only
   used to communicate additional libraries to the linker. The *standard*
   way to do that is with the LIBS variable which this change supports.

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

llvm-svn: 21449
2005-04-22 17:14:14 +00:00
Jeff Cohen
4d31aeb9df Eliminate tabs and trailing spaces
llvm-svn: 21441
2005-04-22 04:13:13 +00:00
Misha Brukman
960a8d47d7 Remove trailing whitespace
llvm-svn: 21428
2005-04-22 00:00:37 +00:00
Misha Brukman
7f8c9b4840 #include system headers after all LLVM headers
llvm-svn: 21374
2005-04-20 04:51:29 +00:00
Misha Brukman
75950190e3 Eliminate trailing spaces at end-of-line
llvm-svn: 21372
2005-04-20 04:08:35 +00:00
Misha Brukman
cf206fe8e1 Consistently eschew space between *' or &' and function argument name
llvm-svn: 21371
2005-04-20 04:07:47 +00:00
Misha Brukman
30460cb33d * Print commands as we execute them with `-v'
* Add option `-save-temps'
Patch contributed by Markus Oberhumer.

llvm-svn: 21367
2005-04-20 03:22:18 +00:00
Reid Spencer
e7b69542d9 Ensure that the arguments passed to sys::Program::ExecuteAndWait include
the program name as the first argument. Thanks go to Markus Oberhumer for
noticing this problem.

llvm-svn: 21220
2005-04-11 05:48:04 +00:00
Chris Lattner
380f2b2963 The first argument to ExecuteAndWait should be the program name, but pointed
out by Markus F.X.J. Oberhumer.

llvm-svn: 21211
2005-04-10 20:59:38 +00:00
Chris Lattner
003634d3ab there is no reason to run -instcombine -instcombine!
llvm-svn: 20915
2005-03-29 06:25:11 +00:00
Alkis Evlogimenos
e0e628a401 Rename createPromoteMemoryToRegister() to
createPromoteMemoryToRegisterPass() to be consistent with other pass
creation functions.

llvm-svn: 20885
2005-03-28 02:01:12 +00:00
Chris Lattner
f02e163076 statically link ia64 into llc
llvm-svn: 20656
2005-03-17 18:39:06 +00:00
Chris Lattner
c9a3ea81bf Fix the missing symbols problem Bill was hitting. Patch contributed by
Bill Wendling!!

llvm-svn: 20649
2005-03-17 15:38:16 +00:00
Chris Lattner
6ad326ee0b method renamed
llvm-svn: 20616
2005-03-15 15:48:22 +00:00
Chris Lattner
354330cd68 Replace more a*'s with arg_*'s, thanks to Gabor Greif!
llvm-svn: 20615
2005-03-15 15:48:06 +00:00
Alkis Evlogimenos
a5d7d0a516 Use arg_iterator and arg_begin and arg_end functions.
llvm-svn: 20608
2005-03-15 07:02:26 +00:00
Chris Lattner
72c87c7c54 move the reassociation pass after the LICM pass. This speeds up mgrid
from 10.27s to 9.57s with the CBE.

llvm-svn: 20508
2005-03-07 03:19:50 +00:00
Reid Spencer
140a377f08 Changes to enable creation of native executables directly from gccld and to
ensure that -L paths don't contain both bytecode and native libraries.
This patch contributed by Adam Treat.

llvm-svn: 20370
2005-02-28 08:45:35 +00:00
Chris Lattner
a024984017 Fix spelling, patch contributed by Gabor Greif!
llvm-svn: 20343
2005-02-27 06:18:25 +00:00
Reid Spencer
23cd09f4a7 Use DataInstall macro instead of INSTALL.
llvm-svn: 20322
2005-02-24 21:43:43 +00:00
Chris Lattner
10b250cb01 Fix a bugpoint crash that JeffC noticed, looking like this:
*** Attempting to perform final cleanups: Final cleanups failed.  Sorry. :(  Ple
ase report a bug!

<llc>llc.exe: bytecode didn't read correctly.
llc.exe: bytecode didn't read correctly.
<crash>
Assertion failed: M && "You can't write a null module!!", file c:\llvm\lib\bytec
ode\writer\writer.cpp, line 1094


The fact that llc bombed (in this case) is ok, but bugpoint shouldn't crash after this.

llvm-svn: 20285
2005-02-23 06:12:11 +00:00
Reid Spencer
bf2bc971e1 Adjust the help output so that it will fit cleanly within 80 columns.
llvm-svn: 20239
2005-02-18 20:00:05 +00:00
Jeff Cohen
db8aa0169c Get bugpoint compiling with VC++ again, not that it works anyway.
llvm-svn: 20211
2005-02-16 05:05:31 +00:00
Andrew Lenharth
a64831e448 add Alpha to llc
llvm-svn: 20198
2005-02-15 21:14:09 +00:00
Chris Lattner
2e22b6d55f Conform to the documented interface by null terminating argument lists!
llvm-svn: 20167
2005-02-13 23:10:45 +00:00
Chris Lattner
f745e933a6 Make sure to null terminate argument lists!
llvm-svn: 20166
2005-02-13 23:02:34 +00:00
Chris Lattner
8080f15dd8 Print the module, not the pointer.
llvm-svn: 20156
2005-02-13 19:12:31 +00:00
Reid Spencer
9b3fe42066 Fix PR506:
* Use error returned from Archive::OpenAndLoad
* Make sure only std::string is thrown so it gets caught and printed.

llvm-svn: 20147
2005-02-13 07:34:17 +00:00
Chris Lattner
da0c4d8004 clean up comments
llvm-svn: 19920
2005-01-29 17:29:05 +00:00
Chris Lattner
624546465c This has been deprecated for long enough, nuke it.
llvm-svn: 19919
2005-01-29 17:27:26 +00:00
Chris Lattner
bc9df59c41 Add support for fp tolerances
llvm-svn: 19774
2005-01-23 03:45:26 +00:00