Commit Graph

2485 Commits

Author SHA1 Message Date
Mikhail Glushenkov
03c050f018 Comment fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65943 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03 10:04:57 +00:00
Mikhail Glushenkov
cfa036b8f0 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65941 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03 10:03:53 +00:00
Mikhail Glushenkov
178b00ce50 Move example plugins to the example/ directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65939 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03 10:02:53 +00:00
Nick Lewycky
e9742d2f6c ENABLE_PIC is either 0 or 1, but is always defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03 07:45:09 +00:00
Bill Wendling
38efa38c86 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65896 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 23:13:18 +00:00
Mikhail Glushenkov
540d73f0cb Move the rules for building plugins to Makefile.rules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65827 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 09:04:13 +00:00
Mikhail Glushenkov
b14f5b5e9d Fix build with objdir != srcdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65826 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 09:03:36 +00:00
Mikhail Glushenkov
95e2aa8967 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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 09:03:02 +00:00
Mikhail Glushenkov
f188178a2f 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65821 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02 09:01:14 +00:00
Chris Lattner
e3ff456fd1 disable exports from a bunch more tools, those without plugins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26 19:01:11 +00:00
Chris Lattner
6b37dcdedf use TOOL_NO_EXPORTS, this shrinks the llvm-as binary from 1825296 to
1662184 bytes (~10%)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65551 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26 18:29:42 +00:00
Nick Lewycky
a3fd95b017 Tabs to spaces presto chango! Pointed out by Duncan Sands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26 09:08:43 +00:00
Nick Lewycky
dcd158af27 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26 07:56:49 +00:00
Nick Lewycky
677c2c2a62 Add the function attributes pass during LTO time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65508 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26 06:56:16 +00:00
Nick Lewycky
a9183c8020 If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
off in libLTO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65310 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-23 07:41:55 +00:00
Nick Lewycky
ca4286295f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65295 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-22 22:15:44 +00:00
Rafael Espindola
6210a9493a really fix style
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64923 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18 17:49:06 +00:00
Rafael Espindola
98c507ed5c fix style
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18 08:30:15 +00:00
Dan Gohman
865f006bb4 Eliminate several more unnecessary intptr_t casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18 05:09:16 +00:00
Devang Patel
38ed388fb3 Remove changes that were accidently included in previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64835 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17 22:45:18 +00:00
Devang Patel
13319ceffd 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64834 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17 22:43:44 +00:00
Rafael Espindola
f163a95705 tools like nm and ar only need register_claim_file and add_symbols. Don't abort
if other hooks are missing.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17 21:08:21 +00:00
Nick Lewycky
45eb7865c9 Shoot! Remove this debugging line again!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-15 22:50:17 +00:00
Nick Lewycky
e0afaa301d 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-15 22:49:17 +00:00
Dan Gohman
a971b29425 Rename bugpoint's error message file so that if it somehow
gets left behind, it's less cryptic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64399 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12 20:53:27 +00:00
Duncan Sands
535e3e8df9 Revert r64299: it breaks the build when configured
without --enable-pic, like my nightly tester.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64302 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-11 13:23:49 +00:00
Nick Lewycky
46dec95319 Try this. Darwin -> LTO, PIC -> LTO + possibly gold too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64299 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-11 08:44:13 +00:00
Devang Patel
ca70533d3d 62987 disables LTO build on darwin.
Revert 62987 for now. Nicolas please investigate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64285 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-11 02:34:33 +00:00
Chris Lattner
3a4baf1951 fix bugpoint url, patch by Pieter de Bie!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-07 18:56:30 +00:00
Nick Lewycky
0df91b2c86 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64002 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-07 03:15:01 +00:00
Nick Lewycky
b454eabe7f Correct strange whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63927 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-06 07:01:00 +00:00
Nick Lewycky
ea97aa6129 Free the buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-06 01:58:34 +00:00
Chris Lattner
7d8f9b6133 fix PR3488: llvm-ar r doesn't replace existing files
Patch by Daniel Shelton!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63870 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-05 17:58:39 +00:00
Duncan Sands
7a2e7e5c20 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63861 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-05 10:21:34 +00:00
Duncan Sands
105de28dab 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63860 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-05 09:54:02 +00:00
Nick Lewycky
98245c7060 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63834 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-05 05:36:01 +00:00
Nick Lewycky
c1da8864a9 Remove accidentally included debug message!
Reword a comment for clarity. Remove some extra whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63823 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-05 04:14:23 +00:00
Torok Edwin
6cbbdfd2e9 Alphabetize includes. Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04 21:00:02 +00:00
Torok Edwin
1845d99041 mention that PIC is needed for libLTO and libLLVMgold
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04 19:12:25 +00:00
Torok Edwin
4cb16349b0 remove printf - it was there only for debugging!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04 17:40:28 +00:00
Torok Edwin
3e5a0d8b0b add support for .a files containing LLVM IR to the gold plugin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04 17:39:30 +00:00
Nick Lewycky
3e62b2dc93 Add LLVM plugin for gold.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63623 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03 07:13:24 +00:00
Mikhail Glushenkov
7ba6052852 Add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63364 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-30 02:12:57 +00:00
Mikhail Glushenkov
19d3e82905 Add three new option properties.
Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63172 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-28 03:47:20 +00:00
Nick Lewycky
1281741311 Build libLTO on any platform so long as PIC is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-26 03:04:57 +00:00
Mike Stump
0a26891ce9 Perform optional clang building.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62895 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-24 00:00:41 +00:00
Mikhail Glushenkov
e441b831c0 Fix 'llvm-config --libs' output.
Change the naming scheme for llvmc plugins so that they do not appear in
'llvm-config --libs' output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 13:05:00 +00:00
Mikhail Glushenkov
b6b514124d Change the hook API back to prevent memory leaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62686 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 13:04:33 +00:00
Mikhail Glushenkov
a298bb7525 Allow hooks with arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21 13:04:00 +00:00
Mikhail Glushenkov
2388a588bd 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62312 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-16 07:02:28 +00:00
Mikhail Glushenkov
5c1799b293 Delete trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-16 06:53:46 +00:00
Rafael Espindola
bb46f52027 Add the private linkage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62279 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-15 20:18:42 +00:00
Mikhail Glushenkov
f9b1d79a54 Some small documentation fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62251 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-15 02:42:40 +00:00
Mikhail Glushenkov
564b75a4c6 Clarify the documentation a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62249 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-15 02:04:54 +00:00
Mikhail Glushenkov
15b064d045 Make -o a prefix option.
Both 'llvmc -o file' and 'llvmc -ofile' should work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62211 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-14 02:02:16 +00:00
Mikhail Glushenkov
f8c430b3da Add a --check-graph option to llvmc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61989 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09 16:16:27 +00:00
Oscar Fuentes
82447ebb41 CMake: replace `rm' with portable invocations of cmake.
Based on a bug report by Yonggang Luo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07 19:24:44 +00:00
Chris Lattner
5d5a897529 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61730 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05 19:01:32 +00:00
Bill Wendling
93d9ad567d Setting BUILD_ARCHIVE to 0 has the same effect as defining it to 1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-03 01:48:26 +00:00
Chris Lattner
df98617b23 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02 07:01:27 +00:00
Misha Brukman
f2f8d79790 Add spacing between type and variable name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61530 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31 17:41:49 +00:00
Misha Brukman
8050e9e854 Comment headers should extend to 80 chars.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61529 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31 17:40:52 +00:00
Misha Brukman
262b05f637 Fix spacing to be uniform for parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61528 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31 17:39:58 +00:00
Duncan Sands
9e89ba31f1 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'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61525 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31 16:14:43 +00:00
Mikhail Glushenkov
5c2b6b26c9 Some enhancements for the 'case' expression.
Add (error) and (empty).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61117 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-17 02:47:01 +00:00
Mikhail Glushenkov
23f522a545 Add a comment to the auto-generated docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60985 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-13 17:51:47 +00:00
Mikhail Glushenkov
8cc8288bef Merge llvm-rst.css and llvm.css.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60984 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-13 17:50:58 +00:00
Mikhail Glushenkov
462886e8ad Some more documentation tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60970 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-13 03:11:37 +00:00
Mikhail Glushenkov
d565203d96 More cosmetic tweaks for llvmc docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60969 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-13 02:28:58 +00:00
Mikhail Glushenkov
905315441e Fix W3C validator errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60912 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 23:43:14 +00:00
Mikhail Glushenkov
99a3a2c44c Use correct file for the llvmc tutorial.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60910 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 23:33:33 +00:00
Mikhail Glushenkov
68319f87cc Update the auto-generated llvmc documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60909 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 23:24:40 +00:00
Mikhail Glushenkov
ba71d677dd Add a '-Wo,' option that passes options to opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60902 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 22:19:14 +00:00
Mikhail Glushenkov
de1e521648 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60873 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11 10:38:06 +00:00
Mikhail Glushenkov
74bcb057c0 Support -emit-llvm properly (with -S and -c).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60764 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-09 14:40:18 +00:00
Dan Gohman
70ef449741 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60681 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08 04:02:47 +00:00
Oscar Fuentes
f76eda70fa CMake: Added Tool.cpp to tools/llvmc/driver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60670 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 17:01:16 +00:00
Mikhail Glushenkov
4410e3203d Describe recent changes in the documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60668 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:47:42 +00:00
Mikhail Glushenkov
b4ced5a3c4 Make 'extern' an option property.
Makes (forward) work better.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60667 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:47:12 +00:00
Mikhail Glushenkov
940cdfe697 Plugin updates: support more options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60666 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:46:23 +00:00
Mikhail Glushenkov
b677df82ed Join tools couldn't be used in the middle of the toolchain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60665 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:45:37 +00:00
Mikhail Glushenkov
0bef2ad481 Enable the Clang plugin by default.
This will eventually replace `ccc`. The command `llvmc -clang` now uses
the Clang toolchain instead of `llvm-gcc`.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60661 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:43:42 +00:00
Mikhail Glushenkov
c8813da34a Update plugins to use (actions).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60660 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:43:17 +00:00
Mikhail Glushenkov
f915253dfc Use (actions) instead of option properties, support external options.
Also includes a major refactoring. See documentation for more
information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60656 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-07 16:41:11 +00:00
Devang Patel
4d6e2331c3 Enable LoopIndexSplit pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60555 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-04 21:40:31 +00:00
Nick Lewycky
6e11687282 Remove warning about declaration does not declare anything. This class was
already declared in the other headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60261 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-30 00:36:34 +00:00
Nick Lewycky
4fd40e884c Add protected visibility to libLTO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60257 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-29 22:49:59 +00:00
Mikhail Glushenkov
bfdef3a6b2 Scrap some boilerplate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60200 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 00:14:11 +00:00
Mikhail Glushenkov
739c720e66 Add 'hidden' and 'really_hidden' option properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60198 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 00:13:25 +00:00
Mikhail Glushenkov
3321b0ff24 Documentation: clarify what is meant by 'multiple edges'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60197 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-28 00:12:09 +00:00
Mikhail Glushenkov
7e6d70a425 Disallow multiple edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60127 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26 22:59:45 +00:00
Devang Patel
6f9f3e1a18 Disable -loop-index-split for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60087 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26 04:58:14 +00:00
Zhongxing Xu
3253f4c979 Adjust indent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60081 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26 02:57:24 +00:00
Oscar Fuentes
63c956c083 CMake: llvmc2 is now known as llvmc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60052 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25 22:18:49 +00:00
Mikhail Glushenkov
113ec35f7f Since the old llvmc was removed, rename llvmc2 to llvmc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25 21:38:12 +00:00
Mikhail Glushenkov
536637fb75 docs: Add author info + fix incorrect code example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60046 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25 21:34:53 +00:00
Mikhail Glushenkov
ebdeca786d Small documentation update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60045 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25 21:34:29 +00:00
Mikhail Glushenkov
f80f0aacf9 Document the plugin priority feature.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60044 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25 21:34:01 +00:00
Andrew Lenharth
0c6ba44890 ignore the -m elf_i386 directive used in the linux kernel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59642 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 17:00:08 +00:00
Mikhail Glushenkov
35fde15059 Support dependencies between plugins by priority-sorting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59449 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 17:30:25 +00:00
Mikhail Glushenkov
010887765a Add a layer of indirection to make plugins more flexible.
Use strings instead of TableGen defs in the compilation graph
definition. Makes it easier for the plugins to modify an existing graph.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59447 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17 17:29:18 +00:00
Oscar Fuentes
232ed2d373 CMake: Removed some cruft.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59376 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15 20:51:18 +00:00
Oscar Fuentes
2c688da09e CMake: Recursively invokes cmake using the right directories.
LLVM_MAIN_SRC_DIR and LLVM_BINARY_DIR are not the cmake top level
directories when LLVM is embedded on the build of other project.

Fixes PR #3072.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59374 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-15 20:35:25 +00:00
Oscar Fuentes
2833f59cad CMake: Remove unused tablegenning code from tools/llvmc2/driver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59333 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-14 23:59:50 +00:00
Daniel Dunbar
0d9eb9b491 Add Binary flag to raw_fd_ostream constructor.
Document raw_fd_ostream's treatment of "-".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59219 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13 05:01:07 +00:00
Mikhail Glushenkov
aa4774caaa Some cosmetic changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59096 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-12 00:04:46 +00:00
Devang Patel
17ddcd99dd Remove incomplete lto-bugpoint tool. If there is an interest then we can resurrect this tool later on and finish implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59071 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11 19:35:38 +00:00
Oscar Fuentes
123f4fd42b CMake: forces rebuild of llvm-config's library dependency info when a
library is added or changed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59051 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-11 17:10:58 +00:00
Oscar Fuentes
63b27a61f8 CMake: Corrected detection of `nm'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58941 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-09 20:26:31 +00:00
Oscar Fuentes
3ab40ca3d5 CMake: Support for cross-compiling. For now, requires a previously
built native tblgen which is passed to cmake in the variable
LLVM_TABLEGEN.

See

http://www.cmake.org/Wiki/CmakeMingw

for a quick example on how to cross-compile with CMake.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58939 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-09 18:53:19 +00:00
Daniel Dunbar
77e0c85dcc Add LLVMC2 tool definitions for Objective-C and Objective-C++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58885 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-08 03:25:47 +00:00
Nick Lewycky
82b80d9884 Update to add newer bitcodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58852 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-07 14:52:51 +00:00
Evan Cheng
ec740e325c Add command line option -entry-funcion to override entry function (default is main).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58779 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 23:21:52 +00:00
Devang Patel
f75e78900c On darwin, 32-bit x86 target is i386-apple-darwin...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58731 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 23:13:50 +00:00
Nuno Lopes
641397f2ef fix memory leak in pass manager when adding an analysis pass that already existed. as pass manager takes ownership of the added passes, it has to delete the pass if it isnt added to the pass list
tweak the opt tool so that it doesnt access a Pass after the ownership was taken by the pass manager

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58730 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 23:03:58 +00:00
Tanya Lattner
e32d58f637 Revert 58687. This breaks mingw.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58719 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 21:06:11 +00:00
Nick Lewycky
c40b75b55a Don't "shell out" to resolve paths. Using pure perl makes llvm-config
friendlier to non-Unixes that happen to have perl. Patch from Sascha Othman!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58687 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 08:05:21 +00:00
Oscar Fuentes
6e1b1253e0 CMakeLists: removed asmprinter component from
tools/llc/CMakeLists.txt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58678 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04 03:28:37 +00:00
Oscar Fuentes
980e842153 CMake: Removed some cruft.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58358 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-29 02:33:15 +00:00
Nick Lewycky
33b1c30b0b Remove -check-exit-code from bugpoint. This is subsumed by -append-exit-code.
Note that -check-exit-code was on by default while -append-exit-code is not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58221 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 23:59:36 +00:00
Oscar Fuentes
48ed0f59d5 CMake: If we have clang' under the tools/' subdirectory, add it to
the build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58179 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:52:09 +00:00
Oscar Fuentes
579e43a44a CMake: GetTargetTriple: new module for determining the target
triple. Assign to LLVM_HOSTTRIPLE so it figures in config.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58176 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:47:52 +00:00
Daniel Dunbar
3b0da26e20 Move Print*Pass to use raw_ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57946 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22 03:25:22 +00:00
Oscar Fuentes
1dc9716121 CMake: `make install' for libraries, executables and header files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57945 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22 02:56:07 +00:00
Daniel Dunbar
f4db3a51c7 Privatize PrintModulePass and PrintFunctionPass and add
createPrintModulePass and createPrintFunctionPass.
 - So clients who compile w/o RTTI can use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57933 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 23:33:38 +00:00
Mikhail Glushenkov
cc30d9caa5 Re-apply Makefile changes. Fix build with srcdir != objdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57636 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-16 14:02:29 +00:00
Bill Wendling
e90842ca52 Unbreak the build. Please test out the proper fix for this by compiling LLVM
with the build directory different from the source directory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57583 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 16:20:13 +00:00
Anton Korobeynikov
b2029c98ea Temporary revert r57567 and unbreak the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57578 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 14:22:06 +00:00
Mikhail Glushenkov
8323748329 llvmc2: Documentation update. Describe recent work on plugins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57568 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 09:29:13 +00:00
Mikhail Glushenkov
a01ab7f381 llvmc2: Some Makefile fixes and renames.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57567 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 09:28:50 +00:00
Mikhail Glushenkov
a1e6eb8b73 Use (a slightly modified) llvm.css for llvmc2 docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57566 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 09:27:44 +00:00
Dan Gohman
b8cab9227a Fix command-line option printing to print two spaces where needed,
instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57521 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-14 20:25:08 +00:00
Devang Patel
7a76ed6774 Fix build failure.
Patch by Erick Tryzelaar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57355 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-10 17:57:50 +00:00
Oscar Fuentes
80533040bc CMake: Reflected changes on source file structure. New plugin support
for llvmc2 incomplete.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57076 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 21:18:50 +00:00
Mikhail Glushenkov
3945b7cfce Rename llvmc2/core to llvmc2/driver.
Makefiles try to remove 'core' by default, so it wasn't a very good name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 21:26:27 +00:00
Mikhail Glushenkov
b6cc085134 Rename llvmc2/src to llvmc2/core.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57000 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 10:27:23 +00:00
Mikhail Glushenkov
c32dece5a8 Fix build breakage when objdir!=srcdir (proper fix).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56999 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 10:26:37 +00:00
Mikhail Glushenkov
9d1b696441 Fix build breakage (again) when srcdir != objdir, other small fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56998 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 09:09:34 +00:00
Bill Wendling
a079e2bdf5 Unbreak the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56988 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 00:26:49 +00:00
Mikhail Glushenkov
597f3f8c5d Fix build breakage.
Forgot to include Makefile.plugins.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56970 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 22:41:42 +00:00
Mikhail Glushenkov
e4a5ea3130 Build system tweaks to make it more convenient for the plugin authors.
Plugins can be now compiled in with a slight Makefile change.
For example, to compile the new Clang driver, use:

cd $LLVMC2_DIR
make TOOLNAME=ccc2 BUILTIN_PLUGINS=Clang

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56967 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 21:15:05 +00:00
Bill Wendling
46f7a5ec1a Avoid name shadowing with E variable defined in for(). This was giving VC++
grief.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56961 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 18:39:11 +00:00
Oscar Fuentes
e1ad087fcb CMake: Builds all targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56641 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26 04:40:32 +00:00
Oscar Fuentes
5f1f2aef7d CMake: Lists of source files updated. Removed bogus dependency from
lib/VMCore/CMakeLists.txt


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56541 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-24 01:58:12 +00:00
Duncan Sands
3ee8fc9649 Rationalize the names of passes that print information:
-callgraph => print-callgraph
    -callscc   => print-callgraph-sccs
    -cfgscc    => print-cfg-sccs
    -externalfnconstants => print-externalfnconstants
    -print               => print-function
    -print-alias-sets (no change)
    -print-callgraph     => dot-callgraph
    -print-cfg           => dot-cfg
    -print-cfg-only      => dot-cfg-only
    -print-dom-info (no change)
    -printm              => print-module
    -printusedtypes      => print-used-types


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56487 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-23 12:47:39 +00:00
Mikhail Glushenkov
14ef05937f Convert llvmc2 plugins to use llvm/Support/Registry.h machinery.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56467 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:51:19 +00:00
Mikhail Glushenkov
4a1a77c1c9 Move llvmc2 header files under include/llvm/CompilerDriver
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56466 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:50:40 +00:00
Mikhail Glushenkov
c82ce4a8a7 Plugin support for llvmc2 (a-la opt).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56465 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:49:34 +00:00
Mikhail Glushenkov
9ecd30c4a2 Add a 'Debugging' section to the documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56464 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:48:48 +00:00
Mikhail Glushenkov
0737651452 Make comments a little bit more clear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56463 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 20:48:22 +00:00