Commit Graph

2300 Commits

Author SHA1 Message Date
Devang Patel
c2aec57c63 Do not forget global definitions from inline asm code block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53693 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-16 18:06:52 +00:00
Devang Patel
f0d286b77f 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53580 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15 00:00:11 +00:00
Evan Cheng
5f2f218825 Goodbye tail duplication (for good this time).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53574 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 22:29:15 +00:00
Dan Gohman
cebf59b4a9 Reformat this message to fit in 80 cols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53561 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 17:43:27 +00:00
Duncan Sands
56eb133095 Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53525 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-13 20:14:38 +00:00
Chris Lattner
3dda08ad5d Fix PR2231 - opt -internalize -std-compile-opts should run internalize first
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53523 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-13 19:35:21 +00:00
Nick Kledzik
920ae9863b fix dangling pointer and argv off by one errors. Add support for --disable-inlining
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53249 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 21:14:10 +00:00
Owen Anderson
7220b814ed 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53236 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-08 16:38:42 +00:00
Nick Kledzik
82eec45b00 add _lto_codegen_debug_options so that linker can use it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53213 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 23:24:06 +00:00
Devang Patel
a93ae711a9 Provide a hook to set the code generation debug options to investigate lto failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53119 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 22:53:14 +00:00
Owen Anderson
735e6eabf1 Use ADCE instead of just DCE. ADCE will better clean up after jump threading,
for instance.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53045 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 18:42:07 +00:00
Devang Patel
ebd69421a2 Rename new lto2 tool as lto.
lto2->lto


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52912 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 18:15:01 +00:00
Devang Patel
5eabc9d4f6 Remove old LTO interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52909 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 18:04:55 +00:00
Devang Patel
687e03b2fa Move dominator info printer into tool/opt/GraphPrinters.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52907 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 17:32:58 +00:00
Argyrios Kyrtzidis
ca29dffa16 Since we are using GCC to assemble the program, make sure the assembly syntax is AT&T.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52827 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-27 15:08:59 +00:00
Chris Lattner
c4ab7acc0b jump threading can introduce allocas, make sure we promote
them back to registers!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52729 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-25 16:54:18 +00:00
Chris Lattner
6c31e87d7c run mem2reg after the second jump threading pass in llvm-ld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52728 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-25 16:51:55 +00:00
Chris Lattner
8e336eb04d remove some dead options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52726 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-25 16:44:08 +00:00
Duncan Sands
9954c76f2c Fix some warnings reported by gcc-4.3. Hopefully
this still compiles on windows - I can't test!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52488 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-19 08:47:31 +00:00
Bill Wendling
e424254897 Refactor the way to get a string containing the features of the target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52470 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-18 21:39:02 +00:00
Bill Wendling
604a818463 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).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52447 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-18 06:35:30 +00:00
Argyrios Kyrtzidis
48cca1fd46 Add an "exe" suffix only if the output file has no suffix at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 15:20:16 +00:00
Argyrios Kyrtzidis
1662183a83 Make sure all produced executable files have "exe" suffix on Windows.
With this more general way, -native and -native-cbe options are handled too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52287 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 13:48:12 +00:00
Argyrios Kyrtzidis
e2bc1cb711 Make sure that the current executable filename has "exe" suffix on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52286 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 12:07:01 +00:00
Argyrios Kyrtzidis
5b90a7296c Append "exe" suffix to executable files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52285 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 12:01:16 +00:00
Matthijs Kooijman
ad6996d74f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52235 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-12 13:09:43 +00:00
Matthijs Kooijman
fbea227f41 Add -silence-passes option to bugpoint. This option suppresses output generated
when bugpoint is running passes in a child process.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52234 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-12 13:02:26 +00:00
Mikhail Glushenkov
856e106d20 Make all help strings start in upper case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51788 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 21:14:10 +00:00
Mikhail Glushenkov
74a0c28fba Fix the -opt switch and add a test case for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51784 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 19:56:27 +00:00
Mikhail Glushenkov
18aac1c622 Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51782 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 18:53:09 +00:00
Mikhail Glushenkov
7ef36069c8 Add a --dry-run option to llvmc2. Patch by Holger Schurig.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51781 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 18:48:52 +00:00
Mikhail Glushenkov
7329610dfa Add a --save-temps option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51760 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:29:17 +00:00
Mikhail Glushenkov
a7d0ae34fb Add a check for side effect-free options (specified only in the OptionList).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51759 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:28:37 +00:00
Mikhail Glushenkov
0ab8ac318f Documentation update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51758 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:28:00 +00:00
Mikhail Glushenkov
ed3ba406c7 Show argv[0] in error messages (like gcc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51755 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:26:35 +00:00
Mikhail Glushenkov
e43228958c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51754 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:26:08 +00:00
Mikhail Glushenkov
270cae3bf8 Documentation update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51753 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:25:24 +00:00
Mikhail Glushenkov
5fe8475e3a A small optimization: use static char* array instead of StrVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51752 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:24:49 +00:00
Mikhail Glushenkov
92b8da75a1 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51751 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:24:07 +00:00
Mikhail Glushenkov
6be4ffc7c3 Add support for option aliases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51749 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:22:52 +00:00
Mikhail Glushenkov
fb37f39111 Fix some headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51745 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:20:54 +00:00
Mikhail Glushenkov
2e73e851d8 New tests for the 'case' expression: not_empty, in_language.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51744 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:19:52 +00:00
Mikhail Glushenkov
ef4160dff0 -E should print to stdout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:18:50 +00:00
Mikhail Glushenkov
ffcf3a1a69 Make it possible to have multiple input languages for a single tool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51742 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:18:16 +00:00
Mikhail Glushenkov
aa3bb17fcc Rename StringVector to StrVector (to be consistent with LLVMCConfigurationEmitter.cpp).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51741 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:17:29 +00:00
Mikhail Glushenkov
35bca4116e Minor error message fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51740 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:16:59 +00:00
Mikhail Glushenkov
163dc1eaa8 Documentation and examples improvements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51739 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:16:32 +00:00
Mikhail Glushenkov
37f509a70c Do not generate empty 'if's for the output_suffix property.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51737 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:15:20 +00:00
Mikhail Glushenkov
cd0858e170 Update documentation, add examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51736 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:14:42 +00:00
Mikhail Glushenkov
1e4bab2c02 Rename LLVMC-Tutorial.rst to LLVMC-Reference.rst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51735 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:14:01 +00:00
Mikhail Glushenkov
5c7578de08 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51733 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:13:02 +00:00
Mikhail Glushenkov
08bd2e74dc 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51732 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:12:24 +00:00
Mikhail Glushenkov
4eaa389519 Enable the response file ('llvmc @file') support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51731 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:11:45 +00:00
Mikhail Glushenkov
706aecf98e Update the code to the fact that StringSet now lives in llvm/ADT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51730 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:11:18 +00:00
Mikhail Glushenkov
b5ccfbf0a9 Make it possible to use the generalised 'case' construct in the cmd_line property.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51728 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:10:19 +00:00
Mikhail Glushenkov
e5557f4da4 Add a generalised 'case' construct.
Besides assigning edge weights, it will also be used by the cmd_line tool property.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51727 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 06:08:50 +00:00
Nick Kledzik
baa154330e 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51722 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-30 00:59:13 +00:00
Anton Korobeynikov
43d1fd449f For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51687 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 17:41:17 +00:00
Owen Anderson
c5b271072e Re-enable the newly simplified ADCE. This fixes a regression on
Dhrystone introduced by its removal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51669 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29 08:48:21 +00:00
Nick Kledzik
ed185d6e96 use space insted of tabs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51623 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-28 00:06:14 +00:00
Nick Kledzik
9178a65263 fix infinite recursion if a global's initializer references the global
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51617 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-27 22:07:08 +00:00
Devang Patel
3b75d20c1a Add instcombine after global optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51611 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-27 20:42:44 +00:00
Devang Patel
00481ed5db Use IPSCCPPass instead of IPConstantPropagationPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51605 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-27 20:18:45 +00:00
Owen Anderson
9e2abd3840 Remove ADCE from the optimization pipeline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51581 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-27 04:27:27 +00:00
Dan Gohman
ee335e35ac Add #includes to make some dependencies explicit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51496 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23 20:40:06 +00:00
Dale Johannesen
ed1ec3aa6b Make LTO expect common and weak to be represented differently.
Reading .bc files from before that change will no longer work.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51457 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23 00:15:10 +00:00
Evan Cheng
03dace82f4 Rename -no-lazy to -disable-lazy-compilation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51386 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-21 18:20:21 +00:00
Dale Johannesen
6a6f2dda36 Add CommonLinkage, in a way that preserves the
behavior on old .bc files.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 22:46:40 +00:00
Dale Johannesen
7d5633e907 Add CommonLinkage to lto (treated same as weak AFAICT)
and llvm-nm (prints as C).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51209 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 22:44:18 +00:00
Evan Cheng
df0457241d Re-enable tail duplication pass (now with default threshold down to 1 instruction).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51184 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 07:57:10 +00:00
Gabor Greif
b1dbcd886a Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51143 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 10:04:30 +00:00
Evan Cheng
38503d4046 Remove tail duplication pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51139 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 07:43:15 +00:00
Devang Patel
8ffe2e2156 Recover nestedloop regression reported by nightly tester.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51110 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-14 18:04:30 +00:00
Devang Patel
81a1d08cb7 Do not run instruction combiner in middle of loop optimization passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51084 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-14 00:26:11 +00:00
Mikhail Glushenkov
5c98d824f6 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50973 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-12 16:33:06 +00:00
Mikhail Glushenkov
ecb977e64f Make it possible to choose between different compilation graph definitions at compile-time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50972 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-12 16:32:24 +00:00
Mikhail Glushenkov
a673037097 Fix some error messages; Make LLVMC pass through the exit code of a failed tool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50971 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-12 16:31:42 +00:00
Owen Anderson
4982babf4a Re-enable loop deletion by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50941 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-10 07:10:24 +00:00
Mikhail Glushenkov
910fd57533 Rename Example.td to Graph.td.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50910 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-09 19:11:28 +00:00
Nick Kledzik
6b89d928ed use doxygen comments for makeBuffer()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50908 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-09 18:44:41 +00:00
Mikhail Glushenkov
8e7254cd44 Reapply 50867: A small refactoring (extract method) + some comment fixes.
Fixed the build breakage, sorry for that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50895 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-09 08:27:26 +00:00
Nick Kledzik
90dcff7190 <rdar://problem/5917641> use getMemBufferCopy if supplied buffer is not already zero terminated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50880 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-09 01:09:59 +00:00
Tanya Lattner
0561f78a14 Revertin 50867 since it was breaking the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50871 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-08 21:54:20 +00:00
Mikhail Glushenkov
194a78f149 Add -E and -S options
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50868 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-08 20:02:36 +00:00
Mikhail Glushenkov
21607fa63c A small refactoring (extract method) + some comment fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50867 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-08 20:02:03 +00:00
Mikhail Glushenkov
4561ab5d81 Use Doxygen-style comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50833 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-07 21:50:19 +00:00
Owen Anderson
77a895e599 Disable loop deletion until the release branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50787 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 23:56:34 +00:00
Mikhail Glushenkov
e0ff9ae91e Change from llvm::SmallSet<std::string> to llvm::StringMap<char>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50766 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:18:58 +00:00
Mikhail Glushenkov
29063554d0 Add new edge property combinator: weight.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50765 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:18:20 +00:00
Mikhail Glushenkov
6a6cd729aa Add a help string for the -c option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50764 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:17:42 +00:00
Mikhail Glushenkov
77ddce97ad Update documentation to reflect the current state of affairs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50763 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:17:19 +00:00
Mikhail Glushenkov
be86712de8 Some cosmetic changes (change some comments, move code around a bit).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50762 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:16:52 +00:00
Mikhail Glushenkov
4c11a62d69 Refactoring: split the function CompilationGraph::Build() into two parts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50760 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:15:35 +00:00
Mikhail Glushenkov
76b1b24dc8 Use edge weights to choose the right linker based on input language names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50759 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:15:12 +00:00
Mikhail Glushenkov
bb8b58dcf3 Add weights to graph edges. Choose between edges based on their weight.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50757 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:14:24 +00:00
Mikhail Glushenkov
d83038c960 Remove the UnpackValues() function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50756 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:13:45 +00:00
Mikhail Glushenkov
978d498e40 Add a --linker command-line option, make all tests pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50755 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:13:00 +00:00
Mikhail Glushenkov
895820da24 Naming fix: LLVMCCConfigurationEmitter -> LLVMCConfigurationEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50754 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:12:03 +00:00
Mikhail Glushenkov
87416b4cea Add -x option (like in gcc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50750 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:10:53 +00:00
Mikhail Glushenkov
35a85e8453 Take object file as input and handle files with the same name correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50749 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:10:20 +00:00
Mikhail Glushenkov
be9d9a153f Add output redirection, rename namespace llvmcc to namespace llvmc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50746 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:08:59 +00:00
Mikhail Glushenkov
f7bab8c743 Make AutoGenerated.inc depend also on Tools.td and Common.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50745 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:08:12 +00:00
Mikhail Glushenkov
3d688228f6 Utilize topological sort in CompilationGraph::Build().
This makes more interesting graph topologies possible. Currently all tests pass,
but more testing is needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50744 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:07:48 +00:00
Mikhail Glushenkov
0260658079 Add TopologicalSort method to CompilationGraph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 18:07:14 +00:00
Mikhail Glushenkov
d7bb87a5a3 Do not require positional arguments when we're only printing out the graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50742 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:44:16 +00:00
Mikhail Glushenkov
4f6e3a497e Make ChooseEdge more generic and use it to choose between different toolchains.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50741 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:28:03 +00:00
Mikhail Glushenkov
bbbc9d4384 Remove unnecessary argument from PassThroughGraph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50740 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:27:37 +00:00
Mikhail Glushenkov
c74bfc946d Add inward edge counters to Nodes; Associate JoinLists with JoinTools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50738 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:26:53 +00:00
Mikhail Glushenkov
97fda6d915 Enhancements for --view-graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50737 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:26:14 +00:00
Mikhail Glushenkov
2ba4c5abab Split the Build function into two parts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50736 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:25:51 +00:00
Mikhail Glushenkov
d81887841c Make llvmc return 1 when the compilation fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50735 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:25:23 +00:00
Mikhail Glushenkov
b96cb60827 Return const char* instead of std::string in Tool classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50733 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:24:26 +00:00
Mikhail Glushenkov
6591c8938c Add an ability to choose between different edges based on edge properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50732 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:23:50 +00:00
Mikhail Glushenkov
64683edb4d Add new edge properties: parameter_equals, element_in_list, and.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50730 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:22:47 +00:00
Mikhail Glushenkov
581936a99c Implemented switch_on edge property.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50729 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 17:22:03 +00:00
Mikhail Glushenkov
a4db8c070f Cosmetic change: if( -> if (
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50728 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:37:33 +00:00
Mikhail Glushenkov
e74420ab24 Remove ExampleWithOpt.td: this file was merged with Example.td.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50727 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:37:12 +00:00
Mikhail Glushenkov
d752c3ffd8 More work on edge properties. Use Edge classes instead of strings in CompilationGraph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50726 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:36:50 +00:00
Mikhail Glushenkov
0a174930e2 Ongoing work: add an edge typechecker, rudimentary support for edge properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50725 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:36:06 +00:00
Mikhail Glushenkov
0d08db0345 Convert internal representation to use DAG. This gives us more flexibility and enables future improvements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50724 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:35:25 +00:00
Mikhail Glushenkov
aa4948f992 Small const-correctness fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50723 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:34:39 +00:00
Mikhail Glushenkov
b90cd834ca Code reorg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50722 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 16:34:12 +00:00
Owen Anderson
3f3d95c75a Enable dead loop elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50682 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-05 23:38:07 +00:00
Anton Korobeynikov
cae8ccd12d Drop llvmc also, it will be replaced by shiny new llvmc2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50615 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-04 06:19:55 +00:00
Anton Korobeynikov
a9d9ca469f Drop llvm2cpp, it's now a llc target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50614 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-04 06:16:50 +00:00
Chris Lattner
866b9e1520 move libcalls to the same place llvm-gcc has it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50593 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-02 22:05:06 +00:00
Anton Korobeynikov
9ef7425a4d Add possibility of using arbitrary to to execute stuff from bugpoint.
Patch by Pekka Jääskeläinen!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50373 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-28 20:53:48 +00:00
Chris Lattner
e78109eb3a several multiple-retval fixes for bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50331 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-28 00:04:58 +00:00
Nick Lewycky
280a6e607d Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50265 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-25 16:53:59 +00:00
Anton Korobeynikov
9692db9c09 Disable building of llvm2cpp. The directory will be removed before 2.3 release.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50193 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23 22:46:24 +00:00
Anton Korobeynikov
5027652b8a First step of implementing PR1538: move llvm2cpp logic to new 'target'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50189 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23 22:29:24 +00:00
Bill Wendling
480311b548 Use the Create static method for some of these objects. They no longer
have public constructors. This should fix PR2246.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50145 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23 07:13:17 +00:00
Owen Anderson
d2368dc344 Move MemCpyOpt after GVN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50097 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22 07:12:26 +00:00
Evan Cheng
c290a5b9ff Added command line option -no-lazy to disable JIT lazy compilation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50095 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22 06:51:41 +00:00
Owen Anderson
ecbc963eda Add MemCpyOpt to LTO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50081 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22 03:57:36 +00:00
Gabor Greif
f1f12f91e8 fix some residual old API that fell thru the cracks of the conversion script, closes http://llvm.org/bugs/show_bug.cgi?id=2246
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50062 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 21:31:55 +00:00
Owen Anderson
eb60fb9c1f Use GVN in LTO instead of GCSE+LoadVN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 07:51:07 +00:00
Chris Lattner
1d40281ae6 Add jump threading to liblto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50028 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 04:31:40 +00:00
Chris Lattner
e12d8e422d run the jump threading pass in llvm-ld also
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50027 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 04:28:40 +00:00
Chris Lattner
2510c3b70f enable jump threading pass by default. This causes no miscompilations
and can significantly shrinkify some code, particularly from C++ land.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50025 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 04:22:09 +00:00
Duncan Sands
fa191e4cd4 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49848 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 12:03:38 +00:00
Dan Gohman
33ef2bb268 Fix a memory leak in llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49793 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 15:56:26 +00:00
Owen Anderson
6bc41e8a74 Revert r49614. As Dan pointed out, some of these aren't correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49657 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 17:38:21 +00:00
Owen Anderson
386ea355e7 Replace calls of the form V1->setName(V2->getName()) with V1->takeName(V2),
which is significantly more efficient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49614 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-13 19:15:17 +00:00
Evan Cheng
5d4ed3ba11 Move memcpy / memset optimization pass after GVN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49457 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10 01:33:05 +00:00
Owen Anderson
a723d1e48f Factor a bunch of functionality related to memcpy and memset transforms out of
GVN and into its own pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49419 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-09 08:23:16 +00:00
Tanya Lattner
cb76b12a3a Remove llvm-upgrade.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49347 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07 18:32:47 +00:00
Duncan Sands
e2c4304654 Use Intrinsic::getDeclaration in more places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49338 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07 13:45:04 +00:00
Bill Wendling
58f3bcdbb9 Remove tabs. Patch by Mike Stump!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49317 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07 05:47:52 +00:00
Gabor Greif
051a950000 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-06 20:25:17 +00:00