Commit Graph

2367 Commits

Author SHA1 Message Date
Mikhail Glushenkov
cf04ed88af Move llvmc2 header files under include/llvm/CompilerDriver
llvm-svn: 56466
2008-09-22 20:50:40 +00:00
Mikhail Glushenkov
3895eee874 Plugin support for llvmc2 (a-la opt).
llvm-svn: 56465
2008-09-22 20:49:34 +00:00
Mikhail Glushenkov
9526cb9083 Add a 'Debugging' section to the documentation.
llvm-svn: 56464
2008-09-22 20:48:48 +00:00
Mikhail Glushenkov
e412a69526 Make comments a little bit more clear.
llvm-svn: 56463
2008-09-22 20:48:22 +00:00
Mikhail Glushenkov
72e4c4e976 Get rid of GlobalLanguageMap. Global state is evil.
llvm-svn: 56462
2008-09-22 20:47:46 +00:00
Mikhail Glushenkov
0bc434886d Rename our version of ccc to ccc2
llvm-svn: 56461
2008-09-22 20:47:09 +00:00
Mikhail Glushenkov
efc58306e4 Fix some comments
llvm-svn: 56460
2008-09-22 20:46:44 +00:00
Mikhail Glushenkov
7afbd753b7 Add a (forward_as) option property
llvm-svn: 56459
2008-09-22 20:46:19 +00:00
Mikhail Glushenkov
54297e6546 Delete the file llvmc2/doc/LLVMC-Enhancements.rst + some minor language/spelling fixes.
llvm-svn: 56458
2008-09-22 20:45:17 +00:00
Oscar Fuentes
e51d9c0c3a CMake build system: support for parallel builds.
llvm-svn: 56453
2008-09-22 18:21:51 +00:00
Oscar Fuentes
0f25988689 Initial support for the CMake build system.
llvm-svn: 56419
2008-09-22 01:08:49 +00:00
Duncan Sands
317cef874d Turn on the AddReadAttrs pass.
llvm-svn: 56345
2008-09-19 14:34:36 +00:00
Duncan Sands
aaa27f4261 Teach -callgraph to always print the callgraph (as the
description says it does), not just when -analyze is
used as well.  This means printing to stderr, so adjust
some tests.

llvm-svn: 56337
2008-09-19 07:57:09 +00:00
Devang Patel
f08b10b15d Fix comments, help messages.
llvm-svn: 56282
2008-09-17 16:01:39 +00:00
Devang Patel
65b85f3049 Fix cut-n-pasto.
llvm-svn: 56265
2008-09-17 00:01:04 +00:00
Devang Patel
e2702c8994 Add -O1, -O2 and -O3 that matches llvm-gcc's -O1, -O2 and -O3 respectively.
llvm-svn: 56255
2008-09-16 22:25:14 +00:00
Duncan Sands
1f456b0b4a End of the GlobalsModRef experiment.
llvm-svn: 56222
2008-09-15 18:42:38 +00:00
Duncan Sands
05a3e3ea40 Give GlobalsModRef a whirl in the nightly testers.
I placed it just before GVN because that it is the
pass most likely to benefit from it.  Some quick
and dirty testing confirms that this is a decent
place for it.

llvm-svn: 56144
2008-09-12 08:23:37 +00:00
Evan Cheng
d57bce51ca Allow use of ssh to perform remote execution.
llvm-svn: 55979
2008-09-09 06:11:26 +00:00
Devang Patel
c4040a69b7 Backout 55429
llvm-svn: 55432
2008-08-27 20:51:49 +00:00
Devang Patel
369cc38542 Add facility to create a target.
llvm-svn: 55429
2008-08-27 20:00:27 +00:00
Chris Lattner
fe3155fc62 Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream.  Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
 1) This makes Value::print be non-virtual.
 2) AP[S]Int and ConstantRange can no longer print to ostream directly, 
    use raw_ostream instead.
 3) This fixes a bug in raw_os_ostream where it didn't flush itself 
    when destroyed.
 4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream 
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.

llvm-svn: 55263
2008-08-23 22:23:09 +00:00
Dan Gohman
e5a492f261 Don't silently ignore errors when opening output streams.
llvm-svn: 55120
2008-08-21 15:33:45 +00:00
Owen Anderson
2c1d54952b Use raw_ostream throughout the AsmPrinter.
llvm-svn: 55092
2008-08-21 00:14:44 +00:00
Anton Korobeynikov
dd94221bda Link GC metadata printers by default to llc
llvm-svn: 54892
2008-08-17 14:33:01 +00:00
Anton Korobeynikov
c2606f65c7 Move X86 assembler printers into separate directory. This allows JIT-only users not to link it in (use 'x86codegen' llvm-config arg for this)
llvm-svn: 54886
2008-08-17 13:53:59 +00:00
Owen Anderson
13498aa150 Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.
llvm-svn: 54822
2008-08-15 21:31:02 +00:00
Evan Cheng
1cc01afa14 Add -fast command line option to lli. It enables fast codegen path.
llvm-svn: 54524
2008-08-08 08:12:06 +00:00
Matthijs Kooijman
1424ba7e0a Improve bugpoint output a bit by outputting the actual instructions instead of
just it's name, which is often empty. Also remove a newline from the output
that wasn't really needed.

llvm-svn: 54158
2008-07-29 08:55:30 +00:00
Devang Patel
89a4804599 Identify llvm bit-code file that is causing linking failure in LTO mode.
llvm-svn: 53972
2008-07-24 00:34:11 +00:00
Devang Patel
f48125000e Quit early, if unable to reproduce error using original input files.
Quit, if unable to fix error when linker input files are all native object files.

llvm-svn: 53935
2008-07-22 22:20:18 +00:00
Devang Patel
9fe33297d0 Remove temp. files in the end.
llvm-svn: 53930
2008-07-22 20:03:45 +00:00
Bill Wendling
d657157149 Remove more tabs.
llvm-svn: 53905
2008-07-22 09:08:05 +00:00
Devang Patel
0e9a854b14 Provide llvm bitcode file to native object file interface.
llvm-svn: 53886
2008-07-21 23:04:39 +00:00
Nick Kledzik
627baa1eea tentative definitions are default visibility
llvm-svn: 53780
2008-07-19 00:58:07 +00:00
Devang Patel
e40c53a846 typo.
llvm-svn: 53778
2008-07-18 23:47:27 +00:00
Devang Patel
9405778796 If all linker input files are native object files then lto-bugpoint is not useful.
llvm-svn: 53777
2008-07-18 23:46:41 +00:00
Devang Patel
c85cc2183a Start writing lto-bugpoint tool.
llvm-svn: 53774
2008-07-18 22:59:45 +00:00
Devang Patel
8927d00a25 Name string length is end position marker - begin position marker.
llvm-svn: 53697
2008-07-16 19:49:09 +00:00
Devang Patel
e1c10d31ec Do not forget global definitions from inline asm code block.
llvm-svn: 53693
2008-07-16 18:06:52 +00:00
Devang Patel
da53eaaea8 LinkOnce definitions have default scope, like weak definitions. Otherwise, the linker may not be able to match LinkOnce definition from one module with an exteranl reference from other module.
llvm-svn: 53580
2008-07-15 00:00:11 +00:00
Evan Cheng
91029f36ff Goodbye tail duplication (for good this time).
llvm-svn: 53574
2008-07-14 22:29:15 +00:00
Dan Gohman
5115e43548 Reformat this message to fit in 80 cols.
llvm-svn: 53561
2008-07-14 17:43:27 +00:00
Duncan Sands
2513505573 Fix comment.
llvm-svn: 53525
2008-07-13 20:14:38 +00:00
Chris Lattner
540afcff82 Fix PR2231 - opt -internalize -std-compile-opts should run internalize first
llvm-svn: 53523
2008-07-13 19:35:21 +00:00
Nick Kledzik
59b22302bb fix dangling pointer and argv off by one errors. Add support for --disable-inlining
llvm-svn: 53249
2008-07-08 21:14:10 +00:00
Owen Anderson
1aebb33c1d Global variables beginning with \01 have special meaning on Darwin, so we need to remove
the name prefix when we change them from internal to external.  This allows bugpointing
of codegen miscompilations to work more reliably on Darwin.

llvm-svn: 53236
2008-07-08 16:38:42 +00:00
Nick Kledzik
fb163aa055 add _lto_codegen_debug_options so that linker can use it
llvm-svn: 53213
2008-07-07 23:24:06 +00:00
Devang Patel
af72f3b02e Provide a hook to set the code generation debug options to investigate lto failures.
llvm-svn: 53119
2008-07-03 22:53:14 +00:00
Owen Anderson
9f7122a150 Use ADCE instead of just DCE. ADCE will better clean up after jump threading,
for instance.

llvm-svn: 53045
2008-07-02 18:42:07 +00:00
Devang Patel
41de5d3b17 Rename new lto2 tool as lto.
lto2->lto

llvm-svn: 52912
2008-06-30 18:15:01 +00:00
Devang Patel
e4fccc657e Remove old LTO interface.
llvm-svn: 52909
2008-06-30 18:04:55 +00:00
Devang Patel
5b8e75e2fe Move dominator info printer into tool/opt/GraphPrinters.cpp
llvm-svn: 52907
2008-06-30 17:32:58 +00:00
Argyrios Kyrtzidis
d3c6fde00b Since we are using GCC to assemble the program, make sure the assembly syntax is AT&T.
llvm-svn: 52827
2008-06-27 15:08:59 +00:00
Chris Lattner
8439b66738 jump threading can introduce allocas, make sure we promote
them back to registers!

llvm-svn: 52729
2008-06-25 16:54:18 +00:00
Chris Lattner
20daa88e13 run mem2reg after the second jump threading pass in llvm-ld.
llvm-svn: 52728
2008-06-25 16:51:55 +00:00
Chris Lattner
66e5fe72f4 remove some dead options.
llvm-svn: 52726
2008-06-25 16:44:08 +00:00
Duncan Sands
054b82d555 Fix some warnings reported by gcc-4.3. Hopefully
this still compiles on windows - I can't test!

llvm-svn: 52488
2008-06-19 08:47:31 +00:00
Bill Wendling
adf865a112 Refactor the way to get a string containing the features of the target.
llvm-svn: 52470
2008-06-18 21:39:02 +00:00
Bill Wendling
c7a2b72a42 If compiling for PPC on an i386 box, the LTO wouldn't get the altivec (and
other) feature information. The workaround is inelegant and could be cleaned up
if this information were available some other way (say, in the IR).

llvm-svn: 52447
2008-06-18 06:35:30 +00:00
Argyrios Kyrtzidis
7236092c4c Add an "exe" suffix only if the output file has no suffix at all.
llvm-svn: 52289
2008-06-15 15:20:16 +00:00
Argyrios Kyrtzidis
fb24e9922d Make sure all produced executable files have "exe" suffix on Windows.
With this more general way, -native and -native-cbe options are handled too.

llvm-svn: 52287
2008-06-15 13:48:12 +00:00
Argyrios Kyrtzidis
5528f7cca9 Make sure that the current executable filename has "exe" suffix on Windows.
llvm-svn: 52286
2008-06-15 12:07:01 +00:00
Argyrios Kyrtzidis
b42d541919 Append "exe" suffix to executable files.
llvm-svn: 52285
2008-06-15 12:01:16 +00:00
Matthijs Kooijman
ff367ca183 Let bugpoint display generated messages on stderr only if no interpreter was
found, this ensures that messages like "Found gcc" end up on stdout where they
belong.

llvm-svn: 52235
2008-06-12 13:09:43 +00:00
Matthijs Kooijman
544dfaed0d Add -silence-passes option to bugpoint. This option suppresses output generated
when bugpoint is running passes in a child process.

llvm-svn: 52234
2008-06-12 13:02:26 +00:00
Mikhail Glushenkov
dd905591da Make all help strings start in upper case.
llvm-svn: 51788
2008-05-30 21:14:10 +00:00
Mikhail Glushenkov
9db02580c5 Fix the -opt switch and add a test case for it.
llvm-svn: 51784
2008-05-30 19:56:27 +00:00
Mikhail Glushenkov
da5109acd4 Fix indentation.
llvm-svn: 51782
2008-05-30 18:53:09 +00:00
Mikhail Glushenkov
23bd8d1eb2 Add a --dry-run option to llvmc2. Patch by Holger Schurig.
llvm-svn: 51781
2008-05-30 18:48:52 +00:00
Mikhail Glushenkov
de53ad5a62 Add a --save-temps option.
llvm-svn: 51760
2008-05-30 06:29:17 +00:00
Mikhail Glushenkov
fd530e8c6a Add a check for side effect-free options (specified only in the OptionList).
llvm-svn: 51759
2008-05-30 06:28:37 +00:00
Mikhail Glushenkov
c90efd29e5 Documentation update.
llvm-svn: 51758
2008-05-30 06:28:00 +00:00
Mikhail Glushenkov
77e32bbe23 Show argv[0] in error messages (like gcc).
llvm-svn: 51755
2008-05-30 06:26:35 +00:00
Mikhail Glushenkov
3cc06cc83a New feature: OptionList.
It can be handy to have all information about options gathered in a single place
to provide an overview of all supported options. This patch allows the following:

def Options : OptionList<[
(switch_option "E", (help "Help string")),
(alias_option "quiet", "q")
...
]>;

Tool-specific option properties (like 'append_cmd') have (obviously) no meaning in
this context, so the only properties that are allowed are 'help' and 'required'.

See usage example in examples/Clang.td.

llvm-svn: 51754
2008-05-30 06:26:08 +00:00
Mikhail Glushenkov
46e4310766 Documentation update.
llvm-svn: 51753
2008-05-30 06:25:24 +00:00
Mikhail Glushenkov
6d853110ba A small optimization: use static char* array instead of StrVector.
llvm-svn: 51752
2008-05-30 06:24:49 +00:00
Mikhail Glushenkov
85844e2353 Make it possible to test if the '-o' option is provided.
The following is now allowed:

    (case (not_empty "o"), do_something, ...)

This didn't work previously because "-o" is built-in.

llvm-svn: 51751
2008-05-30 06:24:07 +00:00
Mikhail Glushenkov
471d982643 Add support for option aliases.
llvm-svn: 51749
2008-05-30 06:22:52 +00:00
Mikhail Glushenkov
64ec622f1d Fix some headers.
llvm-svn: 51745
2008-05-30 06:20:54 +00:00
Mikhail Glushenkov
9f66c06b4e New tests for the 'case' expression: not_empty, in_language.
llvm-svn: 51744
2008-05-30 06:19:52 +00:00
Mikhail Glushenkov
9d884b6cfb -E should print to stdout.
llvm-svn: 51743
2008-05-30 06:18:50 +00:00
Mikhail Glushenkov
1abbaf5299 Make it possible to have multiple input languages for a single tool.
llvm-svn: 51742
2008-05-30 06:18:16 +00:00
Mikhail Glushenkov
9cc41e71af Rename StringVector to StrVector (to be consistent with LLVMCConfigurationEmitter.cpp).
llvm-svn: 51741
2008-05-30 06:17:29 +00:00
Mikhail Glushenkov
419acffb7c Minor error message fixes.
llvm-svn: 51740
2008-05-30 06:16:59 +00:00
Mikhail Glushenkov
2b1ce739f3 Documentation and examples improvements
llvm-svn: 51739
2008-05-30 06:16:32 +00:00
Mikhail Glushenkov
e0bb150778 Do not generate empty 'if's for the output_suffix property.
llvm-svn: 51737
2008-05-30 06:15:20 +00:00
Mikhail Glushenkov
1cc4f2a4a5 Update documentation, add examples.
llvm-svn: 51736
2008-05-30 06:14:42 +00:00
Mikhail Glushenkov
5bc64aef11 Rename LLVMC-Tutorial.rst to LLVMC-Reference.rst
llvm-svn: 51735
2008-05-30 06:14:01 +00:00
Mikhail Glushenkov
c9f69ac2fe Make it possible to change the output file suffix based on command-line options.
For instance, the following command:

    llvmc2 -E hello.c

now generates a file with the correct suffix (hello.i).

llvm-svn: 51733
2008-05-30 06:13:02 +00:00
Mikhail Glushenkov
7ded98d7b6 Add support for user-provided hooks and environment variable reads to the cmd_line tool property.
Used like this: (cmd_line "$CALL(MyHook) --option -o $ENV(VARIABLE) $CALL(AnotherHook)")
Also works with case expressions.

Hook declarations are auto-generated, the definitions should be provided by the user
(just drop a .cpp file in the tools/llvmc2 directory).

Hooks should live in the "hooks" namespace and have type std::string hooks::Hook(void).

llvm-svn: 51732
2008-05-30 06:12:24 +00:00
Mikhail Glushenkov
97687bef23 Enable the response file ('llvmc @file') support.
llvm-svn: 51731
2008-05-30 06:11:45 +00:00
Mikhail Glushenkov
a5bf652530 Update the code to the fact that StringSet now lives in llvm/ADT.
llvm-svn: 51730
2008-05-30 06:11:18 +00:00
Mikhail Glushenkov
b81c3fc00f Make it possible to use the generalised 'case' construct in the cmd_line property.
llvm-svn: 51728
2008-05-30 06:10:19 +00:00
Mikhail Glushenkov
4f4ac7de01 Add a generalised 'case' construct.
Besides assigning edge weights, it will also be used by the cmd_line tool property.

llvm-svn: 51727
2008-05-30 06:08:50 +00:00
Nick Kledzik
7afde12ac4 remove the StripSymbolsPass. This should not be done by default in libLTO.dylib. The linker will remove the symbol names if needed after LTO is done
llvm-svn: 51722
2008-05-30 00:59:13 +00:00
Anton Korobeynikov
f77142326f For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"
llvm-svn: 51687
2008-05-29 17:41:17 +00:00
Owen Anderson
15538467ae Re-enable the newly simplified ADCE. This fixes a regression on
Dhrystone introduced by its removal.

llvm-svn: 51669
2008-05-29 08:48:21 +00:00
Nick Kledzik
50804655b3 use space insted of tabs
llvm-svn: 51623
2008-05-28 00:06:14 +00:00
Nick Kledzik
8f4cd26727 fix infinite recursion if a global's initializer references the global
llvm-svn: 51617
2008-05-27 22:07:08 +00:00
Devang Patel
ee44ba5c4b Add instcombine after global optimizations.
llvm-svn: 51611
2008-05-27 20:42:44 +00:00
Devang Patel
17e36d815e Use IPSCCPPass instead of IPConstantPropagationPass.
llvm-svn: 51605
2008-05-27 20:18:45 +00:00
Owen Anderson
9a9030f206 Remove ADCE from the optimization pipeline.
llvm-svn: 51581
2008-05-27 04:27:27 +00:00
Dan Gohman
c877140168 Add #includes to make some dependencies explicit.
llvm-svn: 51496
2008-05-23 20:40:06 +00:00
Dale Johannesen
73677fe660 Make LTO expect common and weak to be represented differently.
Reading .bc files from before that change will no longer work.

llvm-svn: 51457
2008-05-23 00:15:10 +00:00
Evan Cheng
272fb86c64 Rename -no-lazy to -disable-lazy-compilation.
llvm-svn: 51386
2008-05-21 18:20:21 +00:00
Dale Johannesen
12b968dd1e Add CommonLinkage, in a way that preserves the
behavior on old .bc files.

llvm-svn: 51210
2008-05-16 22:46:40 +00:00
Dale Johannesen
5da4b3ee8b Add CommonLinkage to lto (treated same as weak AFAICT)
and llvm-nm (prints as C).

llvm-svn: 51209
2008-05-16 22:44:18 +00:00
Evan Cheng
2ad66b343d Re-enable tail duplication pass (now with default threshold down to 1 instruction).
llvm-svn: 51184
2008-05-16 07:57:10 +00:00
Gabor Greif
48ffb6c7dc Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.
llvm-svn: 51143
2008-05-15 10:04:30 +00:00
Evan Cheng
0a854f3b63 Remove tail duplication pass.
llvm-svn: 51139
2008-05-15 07:43:15 +00:00
Devang Patel
61c4c1d7a1 Recover nestedloop regression reported by nightly tester.
llvm-svn: 51110
2008-05-14 18:04:30 +00:00
Devang Patel
06f96f31ce Do not run instruction combiner in middle of loop optimization passes.
llvm-svn: 51084
2008-05-14 00:26:11 +00:00
Mikhail Glushenkov
18508c5df4 Filter option names to escape symbols not allowed as C++ identifiers.
Makes it possible to use options with names like "Wa,".
Also fixes the -Wall option handling as a side-effect.

llvm-svn: 50973
2008-05-12 16:33:06 +00:00
Mikhail Glushenkov
0cc6bb7a70 Make it possible to choose between different compilation graph definitions at compile-time.
llvm-svn: 50972
2008-05-12 16:32:24 +00:00
Mikhail Glushenkov
5005376b0c Fix some error messages; Make LLVMC pass through the exit code of a failed tool.
llvm-svn: 50971
2008-05-12 16:31:42 +00:00
Owen Anderson
e34787f5c0 Re-enable loop deletion by default.
llvm-svn: 50941
2008-05-10 07:10:24 +00:00
Mikhail Glushenkov
216a541699 Rename Example.td to Graph.td.
llvm-svn: 50910
2008-05-09 19:11:28 +00:00
Nick Kledzik
14848b7675 use doxygen comments for makeBuffer()
llvm-svn: 50908
2008-05-09 18:44:41 +00:00
Mikhail Glushenkov
ac930296dd Reapply 50867: A small refactoring (extract method) + some comment fixes.
Fixed the build breakage, sorry for that.

llvm-svn: 50895
2008-05-09 08:27:26 +00:00
Nick Kledzik
8bfd104963 <rdar://problem/5917641> use getMemBufferCopy if supplied buffer is not already zero terminated
llvm-svn: 50880
2008-05-09 01:09:59 +00:00
Tanya Lattner
56baa19bfb Revertin 50867 since it was breaking the build.
llvm-svn: 50871
2008-05-08 21:54:20 +00:00
Mikhail Glushenkov
c6482c5b8a Add -E and -S options
llvm-svn: 50868
2008-05-08 20:02:36 +00:00
Mikhail Glushenkov
49359aa3b3 A small refactoring (extract method) + some comment fixes.
llvm-svn: 50867
2008-05-08 20:02:03 +00:00
Mikhail Glushenkov
7e401e5002 Use Doxygen-style comments.
llvm-svn: 50833
2008-05-07 21:50:19 +00:00
Owen Anderson
3743bcf042 Disable loop deletion until the release branch.
llvm-svn: 50787
2008-05-06 23:56:34 +00:00
Mikhail Glushenkov
b2547a6c28 Change from llvm::SmallSet<std::string> to llvm::StringMap<char>.
llvm-svn: 50766
2008-05-06 18:18:58 +00:00
Mikhail Glushenkov
24d085fee4 Add new edge property combinator: weight.
llvm-svn: 50765
2008-05-06 18:18:20 +00:00
Mikhail Glushenkov
ca50cc143c Add a help string for the -c option
llvm-svn: 50764
2008-05-06 18:17:42 +00:00
Mikhail Glushenkov
7710d5fb19 Update documentation to reflect the current state of affairs.
llvm-svn: 50763
2008-05-06 18:17:19 +00:00
Mikhail Glushenkov
7e594e9a00 Some cosmetic changes (change some comments, move code around a bit).
llvm-svn: 50762
2008-05-06 18:16:52 +00:00
Mikhail Glushenkov
8eaf175d62 Refactoring: split the function CompilationGraph::Build() into two parts.
llvm-svn: 50760
2008-05-06 18:15:35 +00:00
Mikhail Glushenkov
3534026221 Use edge weights to choose the right linker based on input language names.
llvm-svn: 50759
2008-05-06 18:15:12 +00:00
Mikhail Glushenkov
7ea1b7e206 Add weights to graph edges. Choose between edges based on their weight.
llvm-svn: 50757
2008-05-06 18:14:24 +00:00
Mikhail Glushenkov
e2005cb90d Remove the UnpackValues() function.
llvm-svn: 50756
2008-05-06 18:13:45 +00:00
Mikhail Glushenkov
78aa308f84 Add a --linker command-line option, make all tests pass.
llvm-svn: 50755
2008-05-06 18:13:00 +00:00
Mikhail Glushenkov
89e32fbe59 Naming fix: LLVMCCConfigurationEmitter -> LLVMCConfigurationEmitter.
llvm-svn: 50754
2008-05-06 18:12:03 +00:00
Mikhail Glushenkov
008827951e Add -x option (like in gcc).
llvm-svn: 50750
2008-05-06 18:10:53 +00:00
Mikhail Glushenkov
dc50e8c5fa Take object file as input and handle files with the same name correctly.
llvm-svn: 50749
2008-05-06 18:10:20 +00:00
Mikhail Glushenkov
b70916c93f Add output redirection, rename namespace llvmcc to namespace llvmc.
llvm-svn: 50746
2008-05-06 18:08:59 +00:00
Mikhail Glushenkov
e9c941de05 Make AutoGenerated.inc depend also on Tools.td and Common.td
llvm-svn: 50745
2008-05-06 18:08:12 +00:00
Mikhail Glushenkov
c5fb5c9d2a Utilize topological sort in CompilationGraph::Build().
This makes more interesting graph topologies possible. Currently all tests pass,
but more testing is needed.

llvm-svn: 50744
2008-05-06 18:07:48 +00:00
Mikhail Glushenkov
a7d9168707 Add TopologicalSort method to CompilationGraph.
llvm-svn: 50743
2008-05-06 18:07:14 +00:00
Mikhail Glushenkov
ae39dd376b Do not require positional arguments when we're only printing out the graph.
llvm-svn: 50742
2008-05-06 17:44:16 +00:00
Mikhail Glushenkov
9d7f3626fa Make ChooseEdge more generic and use it to choose between different toolchains.
llvm-svn: 50741
2008-05-06 17:28:03 +00:00
Mikhail Glushenkov
22a474513a Remove unnecessary argument from PassThroughGraph
llvm-svn: 50740
2008-05-06 17:27:37 +00:00
Mikhail Glushenkov
68908552ae Add inward edge counters to Nodes; Associate JoinLists with JoinTools.
llvm-svn: 50738
2008-05-06 17:26:53 +00:00
Mikhail Glushenkov
b677b370ce Enhancements for --view-graph
llvm-svn: 50737
2008-05-06 17:26:14 +00:00
Mikhail Glushenkov
228a181c54 Split the Build function into two parts.
llvm-svn: 50736
2008-05-06 17:25:51 +00:00
Mikhail Glushenkov
47c6a2dc65 Make llvmc return 1 when the compilation fails.
llvm-svn: 50735
2008-05-06 17:25:23 +00:00
Mikhail Glushenkov
c00f149f81 Return const char* instead of std::string in Tool classes
llvm-svn: 50733
2008-05-06 17:24:26 +00:00
Mikhail Glushenkov
8d99199482 Add an ability to choose between different edges based on edge properties.
llvm-svn: 50732
2008-05-06 17:23:50 +00:00
Mikhail Glushenkov
2ad807d5fe Add new edge properties: parameter_equals, element_in_list, and.
llvm-svn: 50730
2008-05-06 17:22:47 +00:00
Mikhail Glushenkov
00b7a3bfb5 Implemented switch_on edge property.
llvm-svn: 50729
2008-05-06 17:22:03 +00:00
Mikhail Glushenkov
8081df2fc6 Cosmetic change: if( -> if (
llvm-svn: 50728
2008-05-06 16:37:33 +00:00
Mikhail Glushenkov
adb7672c7a Remove ExampleWithOpt.td: this file was merged with Example.td.
llvm-svn: 50727
2008-05-06 16:37:12 +00:00
Mikhail Glushenkov
689a173ed2 More work on edge properties. Use Edge classes instead of strings in CompilationGraph.
llvm-svn: 50726
2008-05-06 16:36:50 +00:00
Mikhail Glushenkov
10283528ca Ongoing work: add an edge typechecker, rudimentary support for edge properties.
llvm-svn: 50725
2008-05-06 16:36:06 +00:00
Mikhail Glushenkov
72590c9cc7 Convert internal representation to use DAG. This gives us more flexibility and enables future improvements.
llvm-svn: 50724
2008-05-06 16:35:25 +00:00
Mikhail Glushenkov
cc7550a68c Small const-correctness fix
llvm-svn: 50723
2008-05-06 16:34:39 +00:00
Mikhail Glushenkov
de53f4ce11 Code reorg
llvm-svn: 50722
2008-05-06 16:34:12 +00:00
Owen Anderson
6f1d91a6c5 Enable dead loop elimination.
llvm-svn: 50682
2008-05-05 23:38:07 +00:00
Anton Korobeynikov
67c3a24fc6 Drop llvmc also, it will be replaced by shiny new llvmc2
llvm-svn: 50615
2008-05-04 06:19:55 +00:00
Anton Korobeynikov
7a74dc55b7 Drop llvm2cpp, it's now a llc target
llvm-svn: 50614
2008-05-04 06:16:50 +00:00
Chris Lattner
7b9b1fe01a move libcalls to the same place llvm-gcc has it.
llvm-svn: 50593
2008-05-02 22:05:06 +00:00
Anton Korobeynikov
ce2ed94866 Add possibility of using arbitrary to to execute stuff from bugpoint.
Patch by Pekka Jääskeläinen!

llvm-svn: 50373
2008-04-28 20:53:48 +00:00
Chris Lattner
0378973e09 several multiple-retval fixes for bugpoint.
llvm-svn: 50331
2008-04-28 00:04:58 +00:00
Nick Lewycky
1f831c0f57 Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.

llvm-svn: 50265
2008-04-25 16:53:59 +00:00
Anton Korobeynikov
cab97b00c5 Disable building of llvm2cpp. The directory will be removed before 2.3 release.
llvm-svn: 50193
2008-04-23 22:46:24 +00:00
Anton Korobeynikov
193b7db7c7 First step of implementing PR1538: move llvm2cpp logic to new 'target'
llvm-svn: 50189
2008-04-23 22:29:24 +00:00
Bill Wendling
f18d1755d0 Use the Create static method for some of these objects. They no longer
have public constructors. This should fix PR2246.

llvm-svn: 50145
2008-04-23 07:13:17 +00:00
Owen Anderson
7b318804cc Move MemCpyOpt after GVN.
llvm-svn: 50097
2008-04-22 07:12:26 +00:00
Evan Cheng
bd805d9a00 Added command line option -no-lazy to disable JIT lazy compilation.
llvm-svn: 50095
2008-04-22 06:51:41 +00:00
Owen Anderson
1b5d08ac04 Add MemCpyOpt to LTO.
llvm-svn: 50081
2008-04-22 03:57:36 +00:00
Gabor Greif
4a1122fc9e fix some residual old API that fell thru the cracks of the conversion script, closes http://llvm.org/bugs/show_bug.cgi?id=2246
llvm-svn: 50062
2008-04-21 21:31:55 +00:00
Owen Anderson
1d83396504 Use GVN in LTO instead of GCSE+LoadVN.
llvm-svn: 50036
2008-04-21 07:51:07 +00:00
Chris Lattner
1554876e9d Add jump threading to liblto.
llvm-svn: 50028
2008-04-21 04:31:40 +00:00
Chris Lattner
8d8e939418 run the jump threading pass in llvm-ld also
llvm-svn: 50027
2008-04-21 04:28:40 +00:00
Chris Lattner
c9547a13e5 enable jump threading pass by default. This causes no miscompilations
and can significantly shrinkify some code, particularly from C++ land.

llvm-svn: 50025
2008-04-21 04:22:09 +00:00
Duncan Sands
55efcf86e9 Run SimplifyLibCalls near the beginning, not at
the end.  It is now run at the same moment as in
llvm-gcc.  Also, run StripDeadPrototypes at the
end, just before running DeadTypeElimination.
This may be useful when doing LTO.  Note that
llvm-gcc runs StripDeadPrototypes but not
DeadTypeElimination.

llvm-svn: 49848
2008-04-17 12:03:38 +00:00
Dan Gohman
a7040d914f Fix a memory leak in llc.
llvm-svn: 49793
2008-04-16 15:56:26 +00:00
Owen Anderson
8aaa632351 Revert r49614. As Dan pointed out, some of these aren't correct.
llvm-svn: 49657
2008-04-14 17:38:21 +00:00
Owen Anderson
b54defaff0 Replace calls of the form V1->setName(V2->getName()) with V1->takeName(V2),
which is significantly more efficient.

llvm-svn: 49614
2008-04-13 19:15:17 +00:00
Evan Cheng
c0aac87374 Move memcpy / memset optimization pass after GVN.
llvm-svn: 49457
2008-04-10 01:33:05 +00:00
Owen Anderson
ca7e0e21f3 Factor a bunch of functionality related to memcpy and memset transforms out of
GVN and into its own pass.

llvm-svn: 49419
2008-04-09 08:23:16 +00:00
Tanya Lattner
8b8cf62b57 Remove llvm-upgrade.
llvm-svn: 49347
2008-04-07 18:32:47 +00:00
Duncan Sands
64f15131d8 Use Intrinsic::getDeclaration in more places.
llvm-svn: 49338
2008-04-07 13:45:04 +00:00
Bill Wendling
93e8f5fbc3 Remove tabs. Patch by Mike Stump!
llvm-svn: 49317
2008-04-07 05:47:52 +00:00
Gabor Greif
6c6b8a57f3 API changes for class Use size reduction, wave 1.
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.

llvm-svn: 49277
2008-04-06 20:25:17 +00:00
Torok Edwin
7cd3a341c4 -fPIC is required on x86-64 when building shared objects.
llvm-svn: 49274
2008-04-06 12:42:29 +00:00
Devang Patel
06fb040f05 Reenable running StripSymbols when EH is on.
Dale fixed EH.

llvm-svn: 49192
2008-04-03 21:30:06 +00:00
Dale Johannesen
8b316fb8bc Make EH work with unnamed functions. Reenable running
StripSymbols when EH is on.

llvm-svn: 49110
2008-04-02 20:10:52 +00:00
Chris Lattner
d141d16ed7 Change the MemoryBuffer::getFile* methods to take just a pointer to the
start of a filename, not a filename+length.  All clients can produce a
null terminated name, and the system api's require null terminated 
strings anyway.

llvm-svn: 49041
2008-04-01 18:04:03 +00:00
Chris Lattner
b529e3f1d8 stop building llvmc.
llvm-svn: 48964
2008-03-30 18:58:05 +00:00
Anton Korobeynikov
128a14cad5 Honour another bunch of parameter attributes in llvm2cpp
llvm-svn: 48942
2008-03-29 11:25:49 +00:00
Anton Korobeynikov
f688e4a53e Honour ByVal parameter attribute in llvm2cpp
llvm-svn: 48941
2008-03-29 11:15:01 +00:00
Mikhail Glushenkov
ee0874a62e Another test commit (with git-svn)
llvm-svn: 48843
2008-03-26 21:37:43 +00:00
Mikhail Glushenkov
f7e7761c32 Test commit
llvm-svn: 48840
2008-03-26 21:18:58 +00:00
Anton Korobeynikov
eb150a8e17 Fix the Cygwin/Mingw-On-Cygwin build. Patch by Alain Frisch!
llvm-svn: 48786
2008-03-25 18:53:36 +00:00
Tanya Lattner
33c22a3cde Disable building llvm-upgrade.
llvm-svn: 48764
2008-03-25 05:05:58 +00:00
Andrew Lenharth
8d9b6bbf8c With debug info, there are nameless constant global values. do not crash when we hit one
llvm-svn: 48749
2008-03-24 22:16:14 +00:00
Bill Wendling
00ecee8d58 Small format/grammar changes.
llvm-svn: 48723
2008-03-24 05:58:47 +00:00
Bill Wendling
cdd78a307c Grammar Nazi strikes! :-)
llvm-svn: 48722
2008-03-24 05:55:54 +00:00
Anton Korobeynikov
261bddcbeb Add first proof-of-concept universal compiler driver framework based
on ideas mentioned in PR686.
Written by Mikhail Glushenkov and contributed by Codedgers, Inc.

Old llvmc will be removed soon after new one will have all its properties.

llvm-svn: 48699
2008-03-23 08:57:20 +00:00
Andrew Lenharth
9d2ead09ba style and spelling
llvm-svn: 48562
2008-03-19 22:32:43 +00:00
Andrew Lenharth
febb9d6e5a llvm-ld deserves disable-verify too. opt shouldn't have all the fun options.
llvm-svn: 48550
2008-03-19 20:49:51 +00:00
Chris Lattner
7925cc72c0 Reimplement the parameter attributes support, phase #1. hilights:
1. There is now a "PAListPtr" class, which is a smart pointer around
   the underlying uniqued parameter attribute list object, and manages
   its refcount.  It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
   the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
   longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
   ParamAttrsWithIndex's, no need to make a SmallVector of a specific 
   size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
   dereferencing the pointer is simplified to just access the 
   PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
   bit simpler.

Phase #2 will rename some stuff (e.g. PAListPtr) and do other less 
invasive changes.

llvm-svn: 48289
2008-03-12 17:45:29 +00:00
Andrew Lenharth
f5496cc1b6 only extract main if the user didn't specify anything to extract
llvm-svn: 48023
2008-03-07 20:10:54 +00:00
Andrew Lenharth
c60ee447a1 make error message reflect default search function name
llvm-svn: 48021
2008-03-07 20:07:24 +00:00
Andrew Lenharth
6c788376e9 add a pass that can extract all kinds of global values, not just functions. Update llvm-extract to use it and optionally extract a global variable if you want it too
llvm-svn: 48015
2008-03-07 19:51:57 +00:00
Tanya Lattner
7cbf1d61dd Renable lto2 build.
llvm-svn: 47845
2008-03-03 17:32:40 +00:00
Nick Kledzik
daae7e585c suppress extra -install_name on Tiger. The 10.4 tools don't support it. Fix whitespace.
llvm-svn: 47817
2008-03-02 06:33:06 +00:00
Nick Lewycky
b02fe64d8b Add an unwind_to field to basic blocks, making them Users instead of Values.
This is the first checkin for PR1269, the new EH infrastructure.

llvm-svn: 47802
2008-03-02 02:48:09 +00:00
Nick Lewycky
03545e3023 Also handle "getresult".
llvm-svn: 47797
2008-03-01 21:47:06 +00:00
Tanya Lattner
4a827adc09 Disable lto because its broken on tiger.
llvm-svn: 47783
2008-03-01 07:36:30 +00:00
Nick Kledzik
ed226606ae stop building lto on all platforms. Start building lto2 on Darwin
llvm-svn: 47762
2008-02-29 19:31:29 +00:00
Nick Kledzik
40740d81c1 also pass -compatibility_version when linking shared object for Darwin
llvm-svn: 47747
2008-02-29 02:01:34 +00:00
Andrew Lenharth
497a43290e Make llvm-ar behave like ar, if you create an empty archive, ar creates an empty archive. llvm-ar would not generate an output file in this case
llvm-svn: 47733
2008-02-28 22:24:48 +00:00
Nick Kledzik
f32192eb76 fixes from review of first commit
llvm-svn: 47695
2008-02-27 22:25:36 +00:00
Nick Kledzik
fa11007ce3 use PROJ_SRC_DIR so this builds with Apple style builds
llvm-svn: 47694
2008-02-27 22:23:46 +00:00
Nick Kledzik
7ebb5aa81a first commit of new LTO system. It is not hooked up in the llvm/tools/Makefile, so no one will build it be default yet
llvm-svn: 47621
2008-02-26 20:26:43 +00:00
Bill Wendling
9f23194fe2 Detabify.
llvm-svn: 47596
2008-02-26 10:46:10 +00:00
Dale Johannesen
ae08bdb4cf Split ParameterAttributes.h, putting the complicated
stuff into ParamAttrsList.h.  Per feedback from
ParamAttrs changes.

llvm-svn: 47504
2008-02-22 22:17:59 +00:00
Devang Patel
c82bc3a9a1 Add -disable-output option.
llvm-svn: 47422
2008-02-21 01:41:25 +00:00
Anton Korobeynikov
891328ca3d Get rid of hash_map in llvmc
llvm-svn: 47374
2008-02-20 11:28:26 +00:00
Anton Korobeynikov
b2dfae5fed And final pack of warnings silencing
llvm-svn: 47372
2008-02-20 11:27:04 +00:00
Anton Korobeynikov
0c5e186924 Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings.
llvm-svn: 47367
2008-02-20 11:08:44 +00:00
Dale Johannesen
ecb2b233b1 Expand ParameterAttributes to 32 bits (in preparation
for adding alignment info, not there yet).  Clean up
interfaces to reference ParameterAttributes consistently.

llvm-svn: 47342
2008-02-19 21:38:47 +00:00
Dan Gohman
a248482a22 Fix a missing space in the description of the find-bugs option.
llvm-svn: 47271
2008-02-18 17:15:45 +00:00
Nick Lewycky
e6e0cdd2dc PR2027, Fix bugpoint's -find-bugs option, clean up the code.
llvm-svn: 47105
2008-02-14 05:01:46 +00:00
Devang Patel
1e5c60dee9 Begin setting features for target based on target triple string.
llvm-svn: 46863
2008-02-07 22:32:50 +00:00
Devang Patel
1e7348f797 Do not set time out, lets assume assembler will do its job in reasonable amount of time.
llvm-svn: 46718
2008-02-04 21:16:10 +00:00
Devang Patel
7410c70845 Do not strip symbols when EH is ON.
llvm-svn: 46657
2008-02-02 01:32:38 +00:00
Devang Patel
3467628b95 Supply appropriate arch info to darwin assembler.
llvm-svn: 46567
2008-01-30 19:19:31 +00:00
Devang Patel
1d270b0e12 Enable exception handling if it is supported.
llvm-svn: 46560
2008-01-30 17:43:03 +00:00
Chris Lattner
8354bf8cfb Add support for frameworks. Patch by Shantonu Sen!
llvm-svn: 46421
2008-01-27 22:58:59 +00:00
Devang Patel
2dda5ca0a4 - Introduces versioning macro LLVM_LTO_VERSION
- Communicate symbol visibility
- Communicate code generation model

llvm-svn: 46033
2008-01-15 23:52:34 +00:00
Chris Lattner
2570c282eb Fix llvm-ld -Xlinker, patch by Daniel Teske!
llvm-svn: 45770
2008-01-09 01:01:17 +00:00
Chris Lattner
3ca4e2df70 Fix PR1797
llvm-svn: 45736
2008-01-08 04:26:20 +00:00
Chris Lattner
7a9b0bf0eb remove attribution from a variety of miscellaneous files.
llvm-svn: 45425
2007-12-29 22:59:10 +00:00
Chris Lattner
a58796338b regenerate
llvm-svn: 45424
2007-12-29 20:47:37 +00:00
Chris Lattner
8e3ec201ea remove attributions
llvm-svn: 45423
2007-12-29 20:46:15 +00:00
Chris Lattner
309aeb140b remove attributions from tools.
llvm-svn: 45421
2007-12-29 20:44:31 +00:00
Chris Lattner
11718ad357 remove attributions from tools/utils makefiles.
llvm-svn: 45414
2007-12-29 20:07:17 +00:00
Gordon Henriksen
90d48b077d Fixing several transforms which would drop the collector attribute
when copying functions.

llvm-svn: 45356
2007-12-25 22:16:06 +00:00
Seo Sanghyeon
28edc56597 Actually parse q operation in llvm-ar
llvm-svn: 45353
2007-12-25 13:53:47 +00:00
Devang Patel
38b0dc8695 Revert my previous check-in.
llvm-svn: 45249
2007-12-20 01:46:01 +00:00
Devang Patel
61ad7ec0f7 Add lto version check mechanism.
llvm-svn: 45238
2007-12-20 00:24:01 +00:00
Christopher Lamb
2087584f25 regenerate.
llvm-svn: 45085
2007-12-17 01:17:35 +00:00
Christopher Lamb
a608afb52e Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
llvm-svn: 45082
2007-12-17 01:12:55 +00:00