Douglas Gregor
6d1ec14f0f
CMake: Build system fixes for XCode. llvm-config still causes us some serious trouble, but it's less serious than it used to be
...
llvm-svn: 67056
2009-03-16 22:53:26 +00:00
Evan Cheng
690b635aa6
Also pass -gcc-tool-args when building a shared object.
...
llvm-svn: 66746
2009-03-12 00:53:34 +00:00
Anton Korobeynikov
7d4d379a00
Another bug :(
...
llvm-svn: 66708
2009-03-11 21:05:21 +00:00
Anton Korobeynikov
3b046d084e
Unbreak the build. Dunno, why it did not fail on mingw :(
...
llvm-svn: 66692
2009-03-11 20:16:05 +00:00
Anton Korobeynikov
a09ba46ee3
Disable plugins / shared stuff generation on windows targets.
...
This fixes fallout from recent PIC/delibtoolize changes and unbreaks
build on cygming.
llvm-svn: 66686
2009-03-11 19:49:42 +00:00
Dan Gohman
02ba62c106
Change these sed lines to behave correctly when the input string
...
contains commas. This fixes PR3727.
llvm-svn: 66565
2009-03-10 19:01:23 +00:00
Chris Lattner
e3fc2d13be
Change various llvm utilities to use PrettyStackTraceProgram in
...
their main routines. This makes the tools print their argc/argv
commands if they crash.
llvm-svn: 66248
2009-03-06 05:34:10 +00:00
Dan Gohman
bcad718f73
Use CloneModule's ValueMap to avoid needing to look up
...
functions by name. This fixes PR718.
llvm-svn: 66239
2009-03-06 02:16:23 +00:00
Dan Gohman
4f42ac8400
Fix a bugpoint bug on anonymous functions. Instead of looking up
...
functions in the new module by name, use the ValueMap provided by
CloneModule to do the lookups.
llvm-svn: 66216
2009-03-05 23:20:46 +00:00
Mikhail Glushenkov
33435e49a9
Add example/Skeleton.
...
This is a template that can be used to build your own LLVMC-based drivers.
It can be also useful as a "bare-bones" LLVMC.
llvm-svn: 65944
2009-03-03 11:02:48 +00:00
Mikhail Glushenkov
b5f56fc268
Comment fixes.
...
llvm-svn: 65943
2009-03-03 10:04:57 +00:00
Mikhail Glushenkov
4f85b86120
Use LLVMLIBS instead of USEDLIBS.
...
Since this Makefile is supposed to be usable from LLVM-based projects not in the
tree, LLVMLIBS should be used instead of USEDLIBS. This depends on my previous
fix to Makefile.rules.
llvm-svn: 65941
2009-03-03 10:03:53 +00:00
Mikhail Glushenkov
b00b964697
Move example plugins to the example/ directory.
...
llvm-svn: 65939
2009-03-03 10:02:53 +00:00
Nick Lewycky
9e26e6d3cb
ENABLE_PIC is either 0 or 1, but is always defined.
...
llvm-svn: 65938
2009-03-03 07:45:09 +00:00
Bill Wendling
bf5d827194
Add a "-gcc-tool-args" option. This option acts like the "-tool-args" option,
...
but passes the arguments to the "gcc" invocation instead of to the "llc"
invocation.
llvm-svn: 65896
2009-03-02 23:13:18 +00:00
Mikhail Glushenkov
7cff81825f
Move the rules for building plugins to Makefile.rules.
...
llvm-svn: 65827
2009-03-02 09:04:13 +00:00
Mikhail Glushenkov
37b419cdee
Fix build with objdir != srcdir.
...
llvm-svn: 65826
2009-03-02 09:03:36 +00:00
Mikhail Glushenkov
ecfab627fd
Move code from Main.cpp to the include dir.
...
User drivers based on llvmc must all share the initialization code.
Putting main() into libCompilerDriver is not a very good idea IMO (and ld gave
me some strange EH-related error anyway).
llvm-svn: 65825
2009-03-02 09:03:02 +00:00
Mikhail Glushenkov
931d4521c3
Reorganize llvmc code.
...
Move the code from 'llvmc/driver' into a new CompilerDriver library, and change
the build system accordingly. Makes it easier for projects using LLVM to build
their own llvmc-based drivers.
Tested with objdir != srcdir.
llvm-svn: 65821
2009-03-02 09:01:14 +00:00
Chris Lattner
3f60b4803a
disable exports from a bunch more tools, those without plugins.
...
llvm-svn: 65558
2009-02-26 19:01:11 +00:00
Chris Lattner
dbf7b1c6e1
use TOOL_NO_EXPORTS, this shrinks the llvm-as binary from 1825296 to
...
1662184 bytes (~10%)
llvm-svn: 65551
2009-02-26 18:29:42 +00:00
Nick Lewycky
e23b9f4e59
Tabs to spaces presto chango! Pointed out by Duncan Sands.
...
llvm-svn: 65523
2009-02-26 09:08:43 +00:00
Nick Lewycky
5eb3773b99
Force 'llvm-config' to go first, optionally followed by lto and gold mixed in
...
with the rest of the parallel directories.
Build lto when possible on all platforms. Make gold to explicitly depend on
libLTO.
llvm-svn: 65518
2009-02-26 07:56:49 +00:00
Nick Lewycky
64a6fe1bc0
Add the function attributes pass during LTO time.
...
llvm-svn: 65508
2009-02-26 06:56:16 +00:00
Nick Lewycky
fc684c0c83
If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
...
off in libLTO.
llvm-svn: 65310
2009-02-23 07:41:55 +00:00
Nick Lewycky
338d07e94e
Add an option to the gold plugin to make it emit a file with the public api
...
list that can in turn be passed to -internalize pass through
-internalize-public-api-file.
Pass gold -plugin-opt=generate-api-file to produce "apifile.txt" in the current
directory.
llvm-svn: 65295
2009-02-22 22:15:44 +00:00
Rafael Espindola
6add6181c8
really fix style
...
llvm-svn: 64923
2009-02-18 17:49:06 +00:00
Rafael Espindola
e08484daf2
fix style
...
llvm-svn: 64905
2009-02-18 08:30:15 +00:00
Dan Gohman
38a9631d5f
Eliminate several more unnecessary intptr_t casts.
...
llvm-svn: 64888
2009-02-18 05:09:16 +00:00
Devang Patel
d57a720d57
Remove changes that were accidently included in previous commit.
...
llvm-svn: 64835
2009-02-17 22:45:18 +00:00
Devang Patel
4d20395a5f
The debugger sometimes lookup dynamically in the runtime to find ivar info of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF.
...
Add support for two additional DWARF attributes to encode Objective-C runtime version number.
llvm-svn: 64834
2009-02-17 22:43:44 +00:00
Rafael Espindola
fabd0534fd
tools like nm and ar only need register_claim_file and add_symbols. Don't abort
...
if other hooks are missing.
llvm-svn: 64812
2009-02-17 21:08:21 +00:00
Nick Lewycky
9178155206
Shoot! Remove this debugging line again!
...
llvm-svn: 64617
2009-02-15 22:50:17 +00:00
Nick Lewycky
b020e0d14c
Don't discard definitions of common symbols. Not sure if this is the right fix.
...
Before this change, the program:
int var;
int main(void) { return 0; }
when run under 'nm -g' would show 'U var' with the gold plugin and
'B var' with gcc.
llvm-svn: 64616
2009-02-15 22:49:17 +00:00
Dan Gohman
af2037fbfd
Rename bugpoint's error message file so that if it somehow
...
gets left behind, it's less cryptic.
llvm-svn: 64399
2009-02-12 20:53:27 +00:00
Duncan Sands
185fc29820
Revert r64299: it breaks the build when configured
...
without --enable-pic, like my nightly tester.
llvm-svn: 64302
2009-02-11 13:23:49 +00:00
Nick Lewycky
9dfffc6c9f
Try this. Darwin -> LTO, PIC -> LTO + possibly gold too.
...
llvm-svn: 64299
2009-02-11 08:44:13 +00:00
Devang Patel
8a9ced15d4
62987 disables LTO build on darwin.
...
Revert 62987 for now. Nicolas please investigate.
llvm-svn: 64285
2009-02-11 02:34:33 +00:00
Chris Lattner
c3aa8f7bab
fix bugpoint url, patch by Pieter de Bie!
...
llvm-svn: 64022
2009-02-07 18:56:30 +00:00
Nick Lewycky
4ddcc43724
Free the buffer in the case where we don't create a module out of it, as
...
pointed out by Torok Edwin.
Remove trailing whitespaces.
llvm-svn: 64002
2009-02-07 03:15:01 +00:00
Nick Lewycky
8811ecdadf
Correct strange whitespace.
...
llvm-svn: 63927
2009-02-06 07:01:00 +00:00
Nick Lewycky
74b5ef7cae
Free the buffer.
...
llvm-svn: 63907
2009-02-06 01:58:34 +00:00
Chris Lattner
413a0246f8
fix PR3488: llvm-ar r doesn't replace existing files
...
Patch by Daniel Shelton!
llvm-svn: 63870
2009-02-05 17:58:39 +00:00
Duncan Sands
2a3173287f
Revert the previous commit. It seems it didn't
...
really solve the problem. Also it changed the
name from libLLVMgold to LLVMgold (correcting
the name resulted in the original problem
suddenly reappearing).
llvm-svn: 63861
2009-02-05 10:21:34 +00:00
Duncan Sands
4dd55167ab
Stop llvm-config thinking that there are circular
...
dependencies between libraries due to __dso_handle
when doing "make install". I don't know what the
LINK_COMPONENTS stuff is about, so I left it alone.
llvm-svn: 63860
2009-02-05 09:54:02 +00:00
Nick Lewycky
9f694e4b3b
It's not obvious, but lto_module_create_from_memory doesn't need to use the
...
buffer after it creates the Module. Thus, we don't need to store this pointer
in claimed_file.
llvm-svn: 63834
2009-02-05 05:36:01 +00:00
Nick Lewycky
8691c47e9e
Remove accidentally included debug message!
...
Reword a comment for clarity. Remove some extra whitespace.
llvm-svn: 63823
2009-02-05 04:14:23 +00:00
Torok Edwin
a488ee0e35
Alphabetize includes. Update comment.
...
llvm-svn: 63771
2009-02-04 21:00:02 +00:00
Torok Edwin
c409c77817
mention that PIC is needed for libLTO and libLLVMgold
...
llvm-svn: 63755
2009-02-04 19:12:25 +00:00
Torok Edwin
a2794dba04
remove printf - it was there only for debugging!
...
llvm-svn: 63742
2009-02-04 17:40:28 +00:00
Torok Edwin
4b35a81845
add support for .a files containing LLVM IR to the gold plugin
...
llvm-svn: 63741
2009-02-04 17:39:30 +00:00
Nick Lewycky
fb643e4d9f
Add LLVM plugin for gold.
...
llvm-svn: 63623
2009-02-03 07:13:24 +00:00
Mikhail Glushenkov
c7d6951c92
Add some comments.
...
llvm-svn: 63364
2009-01-30 02:12:57 +00:00
Mikhail Glushenkov
2115d09a10
Add three new option properties.
...
Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'.
llvm-svn: 63172
2009-01-28 03:47:20 +00:00
Nick Lewycky
5c8fc9d549
Build libLTO on any platform so long as PIC is enabled.
...
llvm-svn: 62987
2009-01-26 03:04:57 +00:00
Mike Stump
82221d62a9
Perform optional clang building.
...
llvm-svn: 62895
2009-01-24 00:00:41 +00:00
Mikhail Glushenkov
1a0c083748
Fix 'llvm-config --libs' output.
...
Change the naming scheme for llvmc plugins so that they do not appear in
'llvm-config --libs' output.
llvm-svn: 62687
2009-01-21 13:05:00 +00:00
Mikhail Glushenkov
fbc89cecad
Change the hook API back to prevent memory leaks.
...
llvm-svn: 62686
2009-01-21 13:04:33 +00:00
Mikhail Glushenkov
bf9716e15d
Allow hooks with arguments.
...
llvm-svn: 62685
2009-01-21 13:04:00 +00:00
Mikhail Glushenkov
6e8d814d36
Registry.h should not depend on CommandLine.h.
...
Split Support/Registry.h into two files so that we have less to
recompile every time CommandLine.h is changed.
llvm-svn: 62312
2009-01-16 07:02:28 +00:00
Mikhail Glushenkov
b2f9a73029
Delete trailing whitespace.
...
llvm-svn: 62307
2009-01-16 06:53:46 +00:00
Rafael Espindola
6de96a1b5d
Add the private linkage.
...
llvm-svn: 62279
2009-01-15 20:18:42 +00:00
Mikhail Glushenkov
bc39dff6e5
Some small documentation fixes.
...
llvm-svn: 62251
2009-01-15 02:42:40 +00:00
Mikhail Glushenkov
bf78b20490
Clarify the documentation a bit.
...
llvm-svn: 62249
2009-01-15 02:04:54 +00:00
Mikhail Glushenkov
66068b3baf
Make -o a prefix option.
...
Both 'llvmc -o file' and 'llvmc -ofile' should work.
llvm-svn: 62211
2009-01-14 02:02:16 +00:00
Mikhail Glushenkov
0f88cfa2ac
Add a --check-graph option to llvmc.
...
llvm-svn: 61989
2009-01-09 16:16:27 +00:00
Oscar Fuentes
b97e96350f
CMake: replace `rm' with portable invocations of cmake.
...
Based on a bug report by Yonggang Luo.
llvm-svn: 61875
2009-01-07 19:24:44 +00:00
Chris Lattner
b0794619e6
make llvm-ld smart enough to link against native libraries that are
...
not in system library directories by checking -L paths as well.
Patch by Axel Naumann!
llvm-svn: 61730
2009-01-05 19:01:32 +00:00
Bill Wendling
cbb401c1d6
Setting BUILD_ARCHIVE to 0 has the same effect as defining it to 1.
...
llvm-svn: 61599
2009-01-03 01:48:26 +00:00
Chris Lattner
ac161bff07
Reimplement the old and horrible bison parser for .ll files with a nice
...
and clean recursive descent parser.
This change has a couple of ramifications:
1. The parser code is about 400 lines shorter (in what we maintain, not
including what is autogenerated).
2. The code should be significantly faster than the old code because we
don't have to work around bison's poor handling of datatypes with
ctors/dtors. This also makes the code much more resistant to memory
leaks.
3. We now get caret diagnostics from the .ll parser, woo.
4. The actual diagnostics emited from the parser are completely different
so a bunch of testcases had to be updated.
5. I now disallow "%ty = type opaque %ty = type i32". There was no good
reason to support this, it was just an accident of the old
implementation. I have no reason to think that anyone is actually using
this.
6. The syntax for sticking a global variable has changed to make it
unambiguous. I don't think anyone is depending on this since only clang
supports this and it is not solid yet, so I'm not worried about anything
breaking.
7. This gets rid of the last use of bison, and along with it the .cvs files.
I'll prune this from the makefiles as a subsequent commit.
There are a few minor cleanups that can be done after this commit (suggestions
welcome!) but this passes dejagnu testing and is ready for its time in the
limelight.
llvm-svn: 61558
2009-01-02 07:01:27 +00:00
Misha Brukman
b132910b8f
Add spacing between type and variable name.
...
llvm-svn: 61530
2008-12-31 17:41:49 +00:00
Misha Brukman
93b7c4085b
Comment headers should extend to 80 chars.
...
llvm-svn: 61529
2008-12-31 17:40:52 +00:00
Misha Brukman
d07751e5d8
Fix spacing to be uniform for parameters.
...
llvm-svn: 61528
2008-12-31 17:39:58 +00:00
Duncan Sands
44c8cd97a5
Rename AddReadAttrs to FunctionAttrs, and teach it how
...
to work out (in a very simplistic way) which function
arguments (pointer arguments only) are only dereferenced
and so do not escape. Mark such arguments 'nocapture'.
llvm-svn: 61525
2008-12-31 16:14:43 +00:00
Mikhail Glushenkov
5932d8c986
Some enhancements for the 'case' expression.
...
Add (error) and (empty).
llvm-svn: 61117
2008-12-17 02:47:01 +00:00
Mikhail Glushenkov
e04b5bfd19
Add a comment to the auto-generated docs.
...
llvm-svn: 60985
2008-12-13 17:51:47 +00:00
Mikhail Glushenkov
6027992ea9
Merge llvm-rst.css and llvm.css.
...
llvm-svn: 60984
2008-12-13 17:50:58 +00:00
Mikhail Glushenkov
afebaf96f9
Some more documentation tweaks.
...
llvm-svn: 60970
2008-12-13 03:11:37 +00:00
Mikhail Glushenkov
c0363fcba6
More cosmetic tweaks for llvmc docs.
...
llvm-svn: 60969
2008-12-13 02:28:58 +00:00
Mikhail Glushenkov
6932e2f368
Fix W3C validator errors.
...
llvm-svn: 60912
2008-12-11 23:43:14 +00:00
Mikhail Glushenkov
d9a7795abc
Use correct file for the llvmc tutorial.
...
llvm-svn: 60910
2008-12-11 23:33:33 +00:00
Mikhail Glushenkov
6fd5513284
Update the auto-generated llvmc documentation.
...
llvm-svn: 60909
2008-12-11 23:24:40 +00:00
Mikhail Glushenkov
4673023e71
Add a '-Wo,' option that passes options to opt.
...
llvm-svn: 60902
2008-12-11 22:19:14 +00:00
Mikhail Glushenkov
8d84a7d3b7
Merge Base.td and Tools.td.
...
This stuff is not used outside Base.td, and with the conversion of the
compilation graph to string-based format became much less (if at all)
useful.
llvm-svn: 60873
2008-12-11 10:38:06 +00:00
Mikhail Glushenkov
65b0b2bf28
Support -emit-llvm properly (with -S and -c).
...
llvm-svn: 60764
2008-12-09 14:40:18 +00:00
Dan Gohman
414cf50234
Generalize bugpoint's concept of a "safe" backend, and add options
...
to allow the "safe" backend to be run with a different path, and/or
with different command-line options.
This enables the following use cases:
- bugpoint llc against an llc command from a different build
- bugpoint llc against the same llc with different command-line options
- and more...
Also, document the existing "custom" interpreter options.
llvm-svn: 60681
2008-12-08 04:02:47 +00:00
Oscar Fuentes
8c78391c8a
CMake: Added Tool.cpp to tools/llvmc/driver.
...
llvm-svn: 60670
2008-12-07 17:01:16 +00:00
Mikhail Glushenkov
c0fc34660b
Describe recent changes in the documentation.
...
llvm-svn: 60668
2008-12-07 16:47:42 +00:00
Mikhail Glushenkov
7f1bef5a55
Make 'extern' an option property.
...
Makes (forward) work better.
llvm-svn: 60667
2008-12-07 16:47:12 +00:00
Mikhail Glushenkov
2804af0929
Plugin updates: support more options.
...
llvm-svn: 60666
2008-12-07 16:46:23 +00:00
Mikhail Glushenkov
ce31b34a6f
Join tools couldn't be used in the middle of the toolchain.
...
llvm-svn: 60665
2008-12-07 16:45:37 +00:00
Mikhail Glushenkov
8e1507d7c6
Enable the Clang plugin by default.
...
This will eventually replace `ccc`. The command `llvmc -clang` now uses
the Clang toolchain instead of `llvm-gcc`.
llvm-svn: 60661
2008-12-07 16:43:42 +00:00
Mikhail Glushenkov
385691b1bd
Update plugins to use (actions).
...
llvm-svn: 60660
2008-12-07 16:43:17 +00:00
Mikhail Glushenkov
85467c71d2
Use (actions) instead of option properties, support external options.
...
Also includes a major refactoring. See documentation for more
information.
llvm-svn: 60656
2008-12-07 16:41:11 +00:00
Devang Patel
8c84d28250
Enable LoopIndexSplit pass.
...
llvm-svn: 60555
2008-12-04 21:40:31 +00:00
Nick Lewycky
7450a7cbf5
Remove warning about declaration does not declare anything. This class was
...
already declared in the other headers.
llvm-svn: 60261
2008-11-30 00:36:34 +00:00
Nick Lewycky
af67df5881
Add protected visibility to libLTO.
...
llvm-svn: 60257
2008-11-29 22:49:59 +00:00
Mikhail Glushenkov
7283d44569
Scrap some boilerplate.
...
llvm-svn: 60200
2008-11-28 00:14:11 +00:00
Mikhail Glushenkov
3bb3da6f4c
Add 'hidden' and 'really_hidden' option properties.
...
llvm-svn: 60198
2008-11-28 00:13:25 +00:00
Mikhail Glushenkov
4ad34cbdc0
Documentation: clarify what is meant by 'multiple edges'.
...
llvm-svn: 60197
2008-11-28 00:12:09 +00:00