Mikhail Glushenkov
b2ca0d19f2
llvmc: Update examples.
...
llvm-svn: 111553
2010-08-19 20:04:19 +00:00
Dan Gohman
7ba6f22b47
Eliminate some redundancy by relying on raw_fd_ostream to handle "-"
...
properly.
llvm-svn: 111373
2010-08-18 17:55:15 +00:00
Dan Gohman
083330a8f2
Allow the -analyze option to follow the -o option, which defaults to
...
standard output, instead of just hardcoding outs().
llvm-svn: 111372
2010-08-18 17:42:59 +00:00
Dan Gohman
b01aed1cb2
Don't translate "-" to outs() manually; raw_ostream does that automatically.
...
llvm-svn: 111371
2010-08-18 17:40:10 +00:00
Dan Gohman
80f9de4bb5
Don't translate "-" to outs() manually; raw_ostream does that
...
automatically.
llvm-svn: 111370
2010-08-18 17:26:50 +00:00
Dan Gohman
6111d7c05b
Don't register stdout to be deleted on a signal.
...
llvm-svn: 111368
2010-08-18 17:21:42 +00:00
Dan Gohman
3d051ff2bc
Remove an unused command-line option.
...
llvm-svn: 111367
2010-08-18 17:20:51 +00:00
Anton Korobeynikov
51b8b1d36c
This patch enables ENABLE_SHARED=1 to build DLL based LLVM toolchain on MingW & Cygwin.
...
Patch by Takumi Nakamura!
llvm-svn: 111268
2010-08-17 19:03:03 +00:00
Oscar Fuentes
5b823e0821
CMake: Improved COMMENT on a custom command
...
llvm-svn: 111111
2010-08-15 22:14:36 +00:00
Mikhail Glushenkov
b1ec90bcf4
Update tests.
...
llvm-svn: 111096
2010-08-15 07:07:24 +00:00
Mikhail Glushenkov
938e976b90
llvmc: remove dynamic plugins.
...
llvm-svn: 111094
2010-08-15 07:07:12 +00:00
Daniel Dunbar
2eca0252c3
llvm-mc: Add -show-inst-operands, for dumping the parsed instruction representation before matching.
...
llvm-svn: 110791
2010-08-11 06:37:09 +00:00
Rafael Espindola
ccab1dddd1
Make it possible to set the cpu used for codegen.
...
llvm-svn: 110759
2010-08-11 00:15:13 +00:00
Daniel Dunbar
a8272596bc
lto: Fix an inverted conditional which prevented the addition of symbols scraped
...
from inline assembly, except in cases where they had already been seen (in which
case they would get added twice).
- I can't see how this ever worked...
llvm-svn: 110757
2010-08-11 00:11:19 +00:00
Daniel Dunbar
4493c7e550
lto: Fix gratuitous memory leaks.
...
llvm-svn: 110756
2010-08-11 00:11:17 +00:00
Daniel Dunbar
919660b2ed
lto: Reduce nesting.
...
llvm-svn: 110752
2010-08-10 23:46:46 +00:00
Daniel Dunbar
5657e7b667
LTOModule.cpp: Fix numerous style issues.
...
llvm-svn: 110751
2010-08-10 23:46:39 +00:00
Rafael Espindola
0045646633
Make it possible to set the flags passed to the assembler.
...
Nick, please review.
llvm-svn: 110705
2010-08-10 18:55:09 +00:00
Rafael Espindola
148c3284ee
Fix silly bug.
...
llvm-svn: 110684
2010-08-10 16:32:15 +00:00
Rafael Espindola
d1e241a4c3
Use RunPassesOn as in the rest of bugpoint.
...
llvm-svn: 110682
2010-08-10 15:46:11 +00:00
Rafael Espindola
4ef89f5200
Make it possible to set the target triple and expose that with an option in the
...
gold plugin.
llvm-svn: 110604
2010-08-09 21:09:46 +00:00
Rafael Espindola
68f8b27bb9
Don't try to build a plugin on windows.
...
llvm-svn: 110573
2010-08-09 14:05:42 +00:00
Michael J. Spencer
4c0895893b
llc: Fix help typo as pointed out by Nick Lewycky.
...
llvm-svn: 110556
2010-08-08 23:26:49 +00:00
Rafael Espindola
fb1f29acf9
Add a opt-args option that can be used to pass arguments to every opt
...
invocation. Fixes PR7793:
bugpoint -debug test.ll --opt-args -unroll-count=4
llvm-svn: 110555
2010-08-08 22:14:20 +00:00
Rafael Espindola
717cd17f6f
s/libLLVMgold/LLVMgold/g
...
llvm-svn: 110552
2010-08-08 21:14:26 +00:00
Rafael Espindola
33e81a8221
Most of bugpoint now only needs to know the pass names.
...
llvm-svn: 110534
2010-08-08 03:55:08 +00:00
Rafael Espindola
414de85274
Try to fix cmake build.
...
llvm-svn: 110528
2010-08-08 00:50:57 +00:00
Rafael Espindola
bbdce49c2a
Run opt instead of bugpoint itself.
...
llvm-svn: 110524
2010-08-07 23:03:21 +00:00
Rafael Espindola
225801cd32
Another missing file :-(
...
llvm-svn: 110522
2010-08-07 21:58:44 +00:00
Rafael Espindola
16db6a5651
Add missing file.
...
llvm-svn: 110521
2010-08-07 21:53:04 +00:00
Rafael Espindola
92a4a833f9
Move the bugpoint test passes to a plugin in preparation for having bugpoint
...
use opt.
llvm-svn: 110520
2010-08-07 21:48:09 +00:00
Michael J. Spencer
4f50b97fd8
llc: Clarify -mc-relax-all description.
...
llvm-svn: 110477
2010-08-06 21:37:45 +00:00
Owen Anderson
a7aed18624
Reapply r110396, with fixes to appease the Linux buildbot gods.
...
llvm-svn: 110460
2010-08-06 18:33:48 +00:00
Owen Anderson
bda59bd247
Revert r110396 to fix buildbots.
...
llvm-svn: 110410
2010-08-06 00:23:35 +00:00
Owen Anderson
755aceb5d0
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
...
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
2010-08-05 23:42:04 +00:00
Bob Wilson
824edeb842
Revert bugpoint change due to buildbot breakage.
...
--- Reverse-merging r110333 into '.':
U tools/bugpoint/BugDriver.h
U tools/bugpoint/OptimizerDriver.cpp
U tools/bugpoint/bugpoint.cpp
U tools/bugpoint/BugDriver.cpp
llvm-svn: 110341
2010-08-05 16:26:32 +00:00
Rafael Espindola
86d7095eac
Run opt instead of bugpoint itself.
...
Fixes PR753.
llvm-svn: 110333
2010-08-05 15:25:38 +00:00
Rafael Espindola
d1c7ef4ab5
Add const to compileProgram and to the various test functions in CrashDebugger.
...
llvm-svn: 110306
2010-08-05 03:00:22 +00:00
Rafael Espindola
37302eadca
Add a Module argument to the remaining runPasses methods and mark getContext
...
const.
llvm-svn: 110300
2010-08-05 02:16:32 +00:00
Rafael Espindola
315190b28c
Make EmitProgressBitcode const and add a Module argument to runPasses. Use
...
that argument to simplify runPassesOn.
llvm-svn: 110291
2010-08-05 00:29:04 +00:00
Daniel Dunbar
40842fa2ee
build: Don't pass -avoid-version or -no-undefined on Darwin, they don't do
...
anything.
llvm-svn: 109957
2010-07-31 21:32:56 +00:00
Michael J. Spencer
f695f8f9ed
llc: Add -mc-relax-all.
...
llvm-svn: 109954
2010-07-31 19:57:02 +00:00
Rafael Espindola
e490460fc8
Add const to some methods and change TestMergedProgram to return the merged
...
module and take a const BugDriver.
llvm-svn: 109951
2010-07-31 14:34:49 +00:00
Rafael Espindola
40f18838b7
The BlockExtractorPass() constructor was not reading the BlockFile and that was
...
exactly what bugpoint expected it to do.
There was also only one user of
BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and
make BlockExtractorPass read BlockFile.
This fixes bugpoint's block extraction.
Nick, please review.
llvm-svn: 109936
2010-07-31 00:32:17 +00:00
Rafael Espindola
c89b1ef0a9
Add a Program argument to diffProgram to avoid a use of swapProgramIn.
...
llvm-svn: 109859
2010-07-30 14:19:00 +00:00
Duncan Sands
6263d492b5
Do not pass a copy of the value map, pass a reference to it.
...
llvm-svn: 109852
2010-07-30 05:50:45 +00:00
John McCall
9ad943ef28
Transcribe IRC to svn. Also don't print basic block names twice if they match.
...
llvm-svn: 109787
2010-07-29 18:20:13 +00:00
John McCall
61483f0e1f
Make the header self-contained and follow #include guidelines.
...
llvm-svn: 109774
2010-07-29 18:08:23 +00:00
John McCall
58c5088d48
Switch to using the LLVM CommandLine library so that our help
...
message is properly contaminated with nonsense about timing passes
that doesn't apply at all to this utility. :)
llvm-svn: 109769
2010-07-29 17:55:00 +00:00
Benjamin Kramer
a3e0ddb564
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter.
...
llvm-svn: 109767
2010-07-29 17:48:06 +00:00
Rafael Espindola
07035e6a00
Make the test while reducing blocks functional. This avoids accessing freed
...
memory when one of the original BB is destroyed.
llvm-svn: 109747
2010-07-29 14:20:59 +00:00
John McCall
eaeede9a06
Centralize the logic to permanently unify two instructions and make sure
...
it establishes a context and does a complaining diff. Also make sure we
unify the prelude and postlude of a diff after a block-diff call.
llvm-svn: 109744
2010-07-29 09:20:34 +00:00
John McCall
8489de298e
Diagnose non-structural differences in the case where blocks were
...
structurally identical.
llvm-svn: 109743
2010-07-29 09:04:45 +00:00
John McCall
0ed6b1326c
When unifying instructions during a block diff, actually complain about
...
any differences we see. This should only happen if there are "non-structural"
differences between the instructions, i.e. differences which wouldn't cause
diff to return true.
llvm-svn: 109742
2010-07-29 08:59:27 +00:00
John McCall
d293c4e6e0
Somehow I was getting reasonable results for the test cases I was interested
...
in despite not ever incrementing any path costs, so that the only nonzero costs
arose from the all-left path in the first column. Anyway. Perform the diff
starting from the beginning of the block to avoid capturing (say) loads of
allocas.
Vastly improves diff results on code that hasn't been mem2reg'ed.
llvm-svn: 109741
2010-07-29 08:53:59 +00:00
John McCall
10c91bfa66
Cache the result of errs() and implement formatted logging.
...
llvm-svn: 109740
2010-07-29 08:14:41 +00:00
John McCall
5e6a16d71f
Add the llvm-diff tool, which performs a relatively naive structural
...
diff of a function. There's a lot of cruft in the current version, and
it's pretty far from perfect, but it's usable.
Currently only capable of comparing functions. Currently ignores metadata.
Currently ignores most attributes of functions and instructions.
Patches welcome.
llvm-svn: 109739
2010-07-29 07:53:27 +00:00
Jakob Stoklund Olesen
1222249aab
Use the right gcc tool args for IsARMArchitecture.
...
llvm-svn: 109714
2010-07-29 00:52:16 +00:00
Gabor Greif
62f0aac99d
simplify by using CallSite constructors; virtually eliminates CallSite::get from the tree
...
llvm-svn: 109687
2010-07-28 22:50:26 +00:00
Rafael Espindola
594994a34c
Instead of abusing swapProgramIn, just add a Module argument to
...
EmitProgressBitcode.
llvm-svn: 109602
2010-07-28 18:12:30 +00:00
Rafael Espindola
235457ca7f
Clone and restore the module being reduced in
...
ReduceMiscompilingFunctions::TestFuncs. This makes the test functional
(i.e., no side effects).
Before we would end up using dead functions if a pass decided to remove them
(inline for example) and we would also keep broken functions and conclude that
that a single function was enough to reproduce the bug.
llvm-svn: 109387
2010-07-26 00:07:51 +00:00
Rafael Espindola
74cc8b270f
Revert unintended white space change.
...
llvm-svn: 109364
2010-07-24 23:05:45 +00:00
Rafael Espindola
f8203a3a6d
Fix a trivial use after free.
...
llvm-svn: 109363
2010-07-24 23:02:11 +00:00
Mikhail Glushenkov
1e5d7c6e82
Get rid of exceptions in llvmc.
...
llvmc can be now compiled with llvm-gcc on Windows.
llvm-svn: 109215
2010-07-23 03:42:55 +00:00
Chris Lattner
14caa59b14
there is now no reason to link in TARGETS_TO_BUILD since we list
...
arm explicitly. X86 and ARM are the only two targets that support
disassembly, so our explicit list is enough. These other targets
weren't getting pulled in anyway though, since there were no
references to their symbols.
llvm-svn: 108934
2010-07-20 21:26:27 +00:00
Chris Lattner
75217e8cb7
fix edis to only try to link in the x86 parts if the x86 backend is
...
enabled. Add direct ARM support.
llvm-svn: 108933
2010-07-20 21:23:57 +00:00
Douglas Gregor
5d69a3d518
Fix edis makefile
...
llvm-svn: 108931
2010-07-20 21:21:27 +00:00
Chris Lattner
9289f93153
fix DISABLE_EDIS
...
llvm-svn: 108925
2010-07-20 20:55:57 +00:00
Chris Lattner
03b7884b88
this logic is handled by tools/makefile.
...
llvm-svn: 108919
2010-07-20 20:33:59 +00:00
Chris Lattner
db2e0ba6b5
edis needs to link in mcdisassembler.
...
llvm-svn: 108876
2010-07-20 18:35:23 +00:00
Chris Lattner
b7a70ff82c
update cmake.
...
llvm-svn: 108875
2010-07-20 18:33:29 +00:00
Chris Lattner
36dd830ba6
edinfo doesn't need to be built here.
...
llvm-svn: 108873
2010-07-20 18:31:54 +00:00
Chris Lattner
979634bbb0
start straightening out libedis's dependencies and make it fit
...
better in the llvm world. Among other things, this changes:
1. The guts of libedis are now moved into lib/MC/MCDisassembler
2. llvm-mc now depends on lib/MC/MCDisassembler, not tools/edis,
so edis and mc don't have to be built in series.
3. lib/MC/MCDisassembler no longer depends on the C api, the C
API depends on it.
4. Various code cleanup changes.
There is still a lot to be done to make edis fit with the llvm
design, but this is an incremental step in the right direction.
llvm-svn: 108869
2010-07-20 18:25:19 +00:00
Owen Anderson
81781220d2
Speculatively revert r108813, in an attempt to get the self-host buildbots working again. I don't see why this patch
...
would cause them to fail the way they are, but none of the other intervening patches seem likely either.
llvm-svn: 108818
2010-07-20 08:26:15 +00:00
Owen Anderson
8dc129325f
Reapply r108794, a fix for the failing test from last time.
...
llvm-svn: 108813
2010-07-20 06:52:42 +00:00
Daniel Dunbar
4a35d6f8cd
Revert r108794, "Separate PassInfo into two classes: a constructor-free
...
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.
llvm-svn: 108805
2010-07-20 03:06:07 +00:00
Owen Anderson
e7c5fe586a
Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).
...
llvm-svn: 108794
2010-07-20 01:19:58 +00:00
Mikhail Glushenkov
303838d69f
llvmc: Add a new option type (switch_list).
...
llvm-svn: 108673
2010-07-19 03:16:25 +00:00
Daniel Dunbar
419197cc4d
Target: Give the TargetAsmParser access to the TargetMachine.
...
- Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this.
llvm-svn: 108664
2010-07-19 00:33:49 +00:00
Daniel Dunbar
fb44525696
edis: Save the TargetMachine in the EDDisassembler object.
...
llvm-svn: 108663
2010-07-19 00:33:43 +00:00
Daniel Dunbar
7f5bf5ae2a
MC: Move several clients to using AsmParser constructor function.
...
llvm-svn: 108645
2010-07-18 18:31:33 +00:00
Daniel Dunbar
7a85f9cf4d
llvm-mc: Fix llvm-mc -as-lex.
...
llvm-svn: 108644
2010-07-18 18:31:28 +00:00
Duncan Sands
2155e6539e
Fix what seems like a clear buffer overflow, noticed by cppcheck.
...
llvm-svn: 108629
2010-07-17 20:23:37 +00:00
Dan Gohman
aa28801f6a
Make llvm-bcanalyzer print out the full enum name for all metadata
...
code ids, not just some of them.
llvm-svn: 108543
2010-07-16 18:28:07 +00:00
Daniel Dunbar
bdb298912b
build/Darwin: Add an LLVM_LTO_VERSION_OFFSET make variable to allow offsetting
...
the libLTO library version from the actual build version.
llvm-svn: 108495
2010-07-16 01:41:38 +00:00
Bob Wilson
f1a6d7abc3
Remove some broken code to check the DISABLE_EDIS flag (edis is now in the
...
DIRS list, so it does no good to filter it from PARALLEL_DIRS), and replace
it with a check to disable building the shared library version of edis when
the flag is set. Disabling it entirely does not work because MC uses it now.
llvm-svn: 108367
2010-07-14 22:41:51 +00:00
Duncan Sands
41b4a6b36a
Convert some tab stops into spaces.
...
llvm-svn: 108130
2010-07-12 08:16:59 +00:00
Bill Wendling
03bcd6ecc8
Implement the "linker_private_weak" linkage type. This will be used for
...
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.
For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:
.globl l_objc_msgSend_fixup_alloc
.weak_definition l_objc_msgSend_fixup_alloc
.section __DATA, __objc_msgrefs, coalesced
.align 3
l_objc_msgSend_fixup_alloc:
.quad _objc_msgSend_fixup
.quad L_OBJC_METH_VAR_NAME_1
This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".
Currently only supported on Darwin platforms.
llvm-svn: 107433
2010-07-01 21:55:59 +00:00
Daniel Dunbar
02877d6e85
MC: Pass the target instance to the AsmParser constructor.
...
llvm-svn: 107426
2010-07-01 20:41:56 +00:00
Devang Patel
9b2a93a6cc
Preserve debug info for only extracted symbols.
...
llvm-svn: 107417
2010-07-01 19:58:05 +00:00
Mikhail Glushenkov
ed6aea770d
Make -filelist work with -linker=c++.
...
llvm-svn: 107362
2010-07-01 01:00:32 +00:00
Bill Wendling
3632171750
Revert r107205 and r107207.
...
llvm-svn: 107215
2010-06-29 22:34:52 +00:00
Bill Wendling
1767723dbe
Introducing the "linker_weak" linkage type. This will be used for Objective-C
...
metadata types which should be marked as "weak", but which the linker will
remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is
defined like this:
.globl l_objc_msgSend_fixup_alloc
.weak_definition l_objc_msgSend_fixup_alloc
.section __DATA, __objc_msgrefs, coalesced
.align 3
l_objc_msgSend_fixup_alloc:
.quad _objc_msgSend_fixup
.quad L_OBJC_METH_VAR_NAME_1
This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".
llvm-svn: 107205
2010-06-29 21:24:00 +00:00
Duncan Sands
b69a3e27df
Remove variables that are written by not read.
...
llvm-svn: 107126
2010-06-29 11:07:47 +00:00
Devang Patel
0dc3c2d37e
Use ValueMap instead of DenseMap.
...
The ValueMapper used by various cloning utility maps MDNodes also.
llvm-svn: 106706
2010-06-24 00:33:28 +00:00
Rafael Espindola
ef49815638
Add an extra-library-path option to the plugin. This is used to support
...
having a library both as bitcode and native code. We want to use the
bitcode first, but if codegen produces new undefined references we have to use
the native code to satisfy those references.
Gold has no notion of bitcode and native search directories, so instead it has
an API where the plugin can instruct it to look for the libraries it is passing
to it. This patch uses that API.
llvm-svn: 106674
2010-06-23 20:20:59 +00:00
Rafael Espindola
9d94ebf1b6
add_input_file and add_input_library now take const arguments, remove the
...
const_cast.
llvm-svn: 106410
2010-06-21 02:23:12 +00:00
Rafael Espindola
720f49ed86
Save more temps with -save-temps.
...
llvm-svn: 106409
2010-06-21 02:17:36 +00:00
Rafael Espindola
8297640062
Add a pass-through option to the plugin. The use case for this option is to
...
ask the linker to take another look into some library or object. The case when
one might want to do this is when codegen introduces a new undefined reference.
The canonical example is libgcc.
llvm-svn: 106303
2010-06-18 19:18:58 +00:00
Rafael Espindola
77b6d01906
Don't produce output only if *all* files are unused.
...
llvm-svn: 105962
2010-06-14 21:20:52 +00:00
Daniel Dunbar
70883c32ec
llvm-mc: Don't set NO_INSTALL on llvm-mc.
...
llvm-svn: 105837
2010-06-11 22:00:08 +00:00
Duncan Sands
9f403695e1
Change another reference to the "indirect callgraph node" to
...
refer to the "external node" instead.
llvm-svn: 105731
2010-06-09 17:39:05 +00:00
Duncan Sands
516473902b
Output "external node" rather than "Indirect CallGraph node" when printing
...
callgraph SCC's. This makes it match what the node itself would print. Also,
"indirect callgraph node" doesn't make sense - it has nothing particularly to
do with indirect calls.
llvm-svn: 105730
2010-06-09 17:35:00 +00:00
Nick Lewycky
4ecf2cc5ea
Plug a leak in the non-error case by removing one level of indirection.
...
llvm-svn: 105556
2010-06-07 21:42:19 +00:00
Dan Gohman
fa9ad13002
Run dead type elimination after dead argument elimination.
...
llvm-svn: 105552
2010-06-07 20:28:37 +00:00
Dan Gohman
34a2249fde
Use ->isVoidTy().
...
llvm-svn: 105550
2010-06-07 20:19:26 +00:00
Rafael Espindola
c4dca3aeb6
Misc cleanups to the gold plugin.
...
llvm-svn: 105534
2010-06-07 16:45:22 +00:00
Dan Gohman
8c292adba4
No need to special-case structs here; structs are first-class now.
...
llvm-svn: 105513
2010-06-05 00:42:29 +00:00
Dan Gohman
ae8bb42f5b
No need to special-case structs here; structs are first-class now.
...
llvm-svn: 105442
2010-06-04 00:18:06 +00:00
Rafael Espindola
8fb957e5cb
Add a emit-llvm option to the plugin and make the path argument to also-emit-llvm optional.
...
llvm-svn: 105414
2010-06-03 21:11:20 +00:00
Nick Lewycky
ca4180c92a
Perfer !string.empty() over string != "".
...
llvm-svn: 105397
2010-06-03 17:13:23 +00:00
Nick Lewycky
0ac5e2205c
Whitespace cleanup.
...
llvm-svn: 105395
2010-06-03 17:10:17 +00:00
Rafael Espindola
00121827b2
Don't preserve all symbols in a .so and instead trust gold to know what is
...
needed. The result is that now we are able to drop unnecessary symbol from
shared libraries.
llvm-svn: 105389
2010-06-03 14:45:44 +00:00
Dan Gohman
6debf89587
Eliminate some unnessary Path::exists() calls.
...
llvm-svn: 104888
2010-05-27 20:51:54 +00:00
Dan Gohman
ab366f055a
When handling raw_ostream errors manually, use clear_error() so that
...
raw_ostream doesn't try to do its own error handling.
Also, close the raw_ostream before checking for errors so that any
errors that occur during closing are caught by the manual check.
llvm-svn: 104882
2010-05-27 20:19:47 +00:00
Dan Gohman
d9225cee20
Don't special-case stdout in llvm::WriteBitcodeToFile; just consider
...
it to be the caller's responsibility to provide a stream in binary
mode. This fixes a layering violation and avoids an outs() call.
llvm-svn: 104878
2010-05-27 20:06:51 +00:00
Dan Gohman
93b2f9e97b
Don't create an output stream when output is disabled.
...
llvm-svn: 104875
2010-05-27 19:52:20 +00:00
Dan Gohman
174f57668f
Avoid calling outs() and fouts() when the stream isn't really needed.
...
llvm-svn: 104873
2010-05-27 19:47:36 +00:00
Duncan Sands
e9cd6d069d
Apply timeouts and memory limits in more places. In particular, when
...
bugpoint does "Running the code generator to test for a crash" this
gets you a crash if llc goes into an infinite loop or uses up vast
amounts of memory.
llvm-svn: 104485
2010-05-24 07:49:55 +00:00
Daniel Dunbar
3ff1a06de6
MC: Add an MCLoggingStreamer, for use in debugging integrated-as mismatches.
...
llvm-svn: 104463
2010-05-23 17:44:06 +00:00
Matt Fleming
638cdb2db1
Currently, createMachOStreamer() is invoked directly in llvm-mc which
...
isn't ideal if we want to be able to use another object file format.
Add a createObjectStreamer() factory method so that the correct object
file streamer can be instantiated for a given target triple.
llvm-svn: 104318
2010-05-21 12:54:43 +00:00
Daniel Dunbar
e85262d651
Remove dead option.
...
llvm-svn: 104303
2010-05-21 00:27:55 +00:00
Rafael Espindola
0af6889b89
Avoid renaming loadable modules at install time. Now the gold plugin is named
...
LLVMgold.so both in both the build and install directories.
llvm-svn: 103897
2010-05-16 03:13:23 +00:00
Dan Gohman
8d1bc79327
Use regular PassManager instead of FunctionPassManager in opt, since it
...
isn't doing lazy streaming. This also fixes a missing doFinalization call.
llvm-svn: 103774
2010-05-14 15:36:54 +00:00
Jakob Stoklund Olesen
3e0ddc000c
Fix complete badness in bugpoint's IsARMArchitecture() function.
...
The revision history for this function is interesting, with multiple layers of
wrongness being introduced one at a time.
This fixes a weird issue where bugpoint -run-llc would suddenly exit 13 half way
through isolating a miscompilation.
llvm-svn: 103721
2010-05-13 17:58:15 +00:00
Rafael Espindola
ba3398bb1a
Add an also-emit-llvm option to the gold plugin.
...
llvm-svn: 103714
2010-05-13 13:39:31 +00:00
Jeffrey Yasskin
e476fa0b8e
Fix PR6951 by fixing Module leaks in bugpoint.
...
llvm-svn: 103523
2010-05-11 23:25:16 +00:00
Dan Gohman
4cfccb801c
Remove the "WantsWholeFile" concept, as it's no longer needed. CBE
...
and the others use the regular addPassesToEmitFile hook now, and
llc no longer needs a bunch of redundant code to handle the
whole-file case.
llvm-svn: 103492
2010-05-11 19:57:55 +00:00
Sean Callanan
d7f09c7851
Extended the edis "IsBranch" property to call
...
instructions as well. Added support for checking
this to the llvm-mc tester as well.
llvm-svn: 103454
2010-05-11 01:27:08 +00:00
Bill Wendling
a12c1ff25a
The getDefaultSubtargetFeatures method of SubtargetFeature did actually return a
...
string of features for that target. However LTO was using that string to pass
into the "create target machine" stuff. That stuff needed the feature string to
be in a particular form. In particular, it needed the CPU specified first and
then the attributes. If there isn't a CPU specified, it required it to be blank
-- e.g., ",+altivec". Yuck.
Modify the getDefaultSubtargetFeatures method to be a non-static member
function. For all attributes for a specific subtarget, it will add them in like
normal. It will also take a CPU string so that it can satisfy this horrible
syntax.
llvm-svn: 103451
2010-05-11 00:30:02 +00:00
Kalle Raiskila
6be5829925
Add command line option --gcc to bugpoint.
...
Remove sending duplicate of the --gcc-tool-args parameters to gcc.
llvm-svn: 103397
2010-05-10 07:38:37 +00:00
Chris Lattner
b87e3fee0f
don't pass -f to llc, it doesn't have it anymore. Patch by Kevin Fan (PR7090)
...
llvm-svn: 103263
2010-05-07 16:27:04 +00:00
Chris Lattner
b903a15807
make -filetype=obj default to emitting its output to foo.obj
...
when on windows instead of foo.o. Patch by Nathan Jeffords!
llvm-svn: 103150
2010-05-06 00:54:20 +00:00
Sean Callanan
4cd930f417
Fixed a sign-extension bug in the X86 disassembler
...
that was causing PC-relative branch targets to be
evaluated incorrectly. Also added support for
checking operand values to the llvm-mc tester.
llvm-svn: 103128
2010-05-05 22:47:27 +00:00
Duncan Sands
211427bda9
Remove the -enable-sjlj-eh option, which doesn't do anything.
...
Remove the -enable-eh option which is only used by the JIT,
and replace it with -jit-enable-eh.
llvm-svn: 102865
2010-05-02 15:36:26 +00:00
Nick Lewycky
83e3060f08
The llc -f flag was removed.
...
llvm-svn: 102670
2010-04-29 23:37:44 +00:00
Dan Gohman
0cc5629f4e
llc no longer requires the -f option to overwrite files.
...
llvm-svn: 102651
2010-04-29 18:46:52 +00:00
Daniel Dunbar
c1626e3317
Remove dead option.
...
llvm-svn: 102621
2010-04-29 16:29:02 +00:00
Bill Wendling
633c48ec1d
r98363 deleted a '!' when cleaning up whitespace. This caused globals which are
...
*not* declarations to *not* be placed in the "preserve" list.
<rdar://problem/7870735>
llvm-svn: 102405
2010-04-27 00:55:25 +00:00
Sean Callanan
75d986935e
Fixed edis to tokenize instructions with no
...
operands correctly.
llvm-svn: 102227
2010-04-24 01:00:16 +00:00
Sean Callanan
85d70594f0
Fixes to edis that mark x86 call targets as
...
memory operands rather than immediate operands.
llvm-svn: 102217
2010-04-23 22:17:17 +00:00
Sean Callanan
62232d90cf
Fixed EDOperand to use the operand type, not the
...
flags, to determine whether or not the operand is
a memory operand.
llvm-svn: 102158
2010-04-23 01:56:36 +00:00
Mikhail Glushenkov
9cfb7051b6
Support .a files directly (without -l).
...
llvm-svn: 101789
2010-04-19 17:25:38 +00:00
Dan Gohman
7a0fde90f5
Fix more -Wcast-qual warnings.
...
llvm-svn: 101656
2010-04-17 17:44:03 +00:00
Chris Lattner
4422d31b84
introduce a new CallGraphSCC class, and pass it around
...
to CallGraphSCCPass's instead of passing around a
std::vector<CallGraphNode*>. No functionality change,
but now we have a much tidier interface.
llvm-svn: 101558
2010-04-16 22:42:17 +00:00
Nick Lewycky
bb2ec7de9c
Revert r64616 which worked around http://gcc.gnu.org/PR42757 , we just didn't
...
know it at the time.
llvm-svn: 101439
2010-04-16 04:32:20 +00:00
Dan Gohman
0977358509
Create an exports file, so that the plugin only exports the onload symbol.
...
llvm-svn: 101431
2010-04-16 00:43:25 +00:00
Dan Gohman
ebb4ae0912
Make things static that don't need to be referenced from outside the file.
...
llvm-svn: 101430
2010-04-16 00:42:57 +00:00
Dan Gohman
ff9ecb2824
Make the export files absolute paths, and change Makefile.rules
...
to expect them this way, to fix srcdir!=objdir builds.
llvm-svn: 101414
2010-04-15 23:08:00 +00:00
Dan Gohman
473a53f7b1
Generalize the EXPORTED_SYMBOL_FILE concept in the Makefiles to work with
...
native linking export files, including running sed to prepend underscores
on darwin, and make use of it in libLTO and libEnhancedDisassembly.
Remove the leading underscores from library export files so that they
work with the new EXPORTED_SYMBOL_FILE support.
llvm-svn: 101399
2010-04-15 20:54:25 +00:00
Benjamin Kramer
a944a9a902
Simplify ".bc" detection.
...
llvm-svn: 101365
2010-04-15 11:33:14 +00:00
Daniel Dunbar
f43481df34
Remove unnecessary uses of <iostream>.
...
llvm-svn: 101338
2010-04-15 03:47:24 +00:00
Chris Lattner
2df4fa5bc8
fix a crash on "lli ex" or any other file whose name is exactly two
...
characters long.
llvm-svn: 101336
2010-04-15 03:32:19 +00:00
Nick Lewycky
80ee5e299c
Don't forget cmake!
...
llvm-svn: 101234
2010-04-14 05:35:20 +00:00
Nick Lewycky
c37b45bd2d
Remove accidentally committed cruft.
...
llvm-svn: 101230
2010-04-14 04:46:11 +00:00
Nick Lewycky
7c167954e2
Bugpoint no longer uses exceptions.
...
llvm-svn: 101228
2010-04-14 04:40:31 +00:00
Douglas Gregor
9078f954bf
Unbreak CMake build by improving the EnhancedDisassembly makefile a
...
bit (we're not trying to build a shared library yet) and generating
the X86GenEDInfo.inc and ARMGenEDInfo.inc files as necessary.
llvm-svn: 101188
2010-04-13 22:47:43 +00:00
Sean Callanan
814e69b171
Fixed a nasty layering violation in the edis source
...
code. It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.
Also removed hacky #define-controlled initialization
of targets in edis. If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.
llvm-svn: 101179
2010-04-13 21:21:57 +00:00
Ted Kremenek
8af6f765f5
Add CMake support for 'edis'.
...
llvm-svn: 101177
2010-04-13 20:52:50 +00:00
Chris Lattner
6b2b064d7a
Make the disassembler respect the assembler dialect when printing instructions,
...
patch by Marius Wachtler!
llvm-svn: 101160
2010-04-13 18:41:17 +00:00
Sean Callanan
d75c8a0813
Build system fix to make llvm-mc properly build
...
after edis. Really, there ought to be some
mechanism to ensure that PARALLEL_DIRS get built
after DIRS.
llvm-svn: 101095
2010-04-12 23:55:28 +00:00
Sean Callanan
393c4df342
Build system fixes. llvm-mc depends on
...
libEnhancedDisassembly, so we now build the
static library in all cases (although the shared
library is only built when requested/possible).
Also, fixed a bug where edis wasn't properly
initializing the targets it uses.
llvm-svn: 101072
2010-04-12 21:55:49 +00:00
Sean Callanan
deee643b95
Bug fix: made the enhanced disassembler's link
...
flags work properly when EDIS_VERSION is defined
llvm-svn: 101063
2010-04-12 20:23:08 +00:00
Sean Callanan
2d03d3a8a7
Second try at integrating the edis tester. This
...
time I use the LIBS variable, which is not subject
to a %.a -> -l% transformation, to link llvm-mc
against libEnhancedDisassembly.
llvm-mc -edis works the same as llvm-mc
-disassemble, but outputs tokens and operands.
llvm-svn: 101058
2010-04-12 19:43:00 +00:00
Benjamin Kramer
1f336da54f
Boolify.
...
llvm-svn: 101035
2010-04-12 12:22:19 +00:00
Nick Lewycky
6ba630b077
Remove use of exceptions from bugpoint. No deliberate functionality change!
...
llvm-svn: 101013
2010-04-12 05:08:25 +00:00
Nick Lewycky
3e24f7e632
Remove dead argument and clean whitespace. No functionality change.
...
llvm-svn: 100954
2010-04-10 23:18:13 +00:00
Sean Callanan
a4ae4e7693
Updated the edis build mechanism to allow for builds
...
that do not build some (or all) of the targets that
edis supports.
llvm-svn: 100910
2010-04-10 00:48:10 +00:00
Chris Lattner
55ddc30f07
revert r100842 which broke several of the build bots.
...
llvm-svn: 100848
2010-04-09 04:24:20 +00:00
Sean Callanan
844a7febd3
Added a tester for the enhanced disassembler,
...
integrated into the llvm-mc testing tool.
llvm-svn: 100842
2010-04-09 01:43:16 +00:00
Sean Callanan
48b1804e79
Bugfixes for edis. Code to initialize instruction
...
state was being executed too lazily, and the LLVM
assembly syntax for the disassembler was not being
written into the proper disassembler state variable.
llvm-svn: 100830
2010-04-09 00:11:15 +00:00
Sean Callanan
03549ee5af
Added support for ARM disassembly to edis.
...
I also added a rule to the ARM target's Makefile to
build the ARM-specific instruction information table
for the enhanced disassembler.
I will add the test harness for all this stuff in
a separate commit.
llvm-svn: 100735
2010-04-08 00:48:21 +00:00
Chris Lattner
8900ef1931
add .o file writing for inline asm in llc. Here's a silly
...
demo:
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
<inline asm>:1:2: error: unrecognized instruction
abc incl %eax
^
LLVM ERROR: Error parsing inline asm
Only problem seems to be that the parser finalizes OutStreamer
at the end of the first inline asm, which isn't what we want.
For example:
$ cat asm.c
int foo(int X) {
__asm__ ("incl %0" : "+r" (X));
return X;
}
$ clang asm.c -S -o - -emit-llvm | llc
...
subq $8, %rsp
movl %edi, (%rsp)
movl %edi, %eax
## InlineAsm Start
incl %eax
## InlineAsm End
movl %eax, (%rsp)
movl %eax, 4(%rsp)
addq $8, %rsp
ret
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
$ otool -tv t.o
t.o:
(__TEXT,__text) section
_foo:
0000000000000000 subq $0x08,%rsp
0000000000000004 movl %edi,(%rsp)
0000000000000007 movl %edi,%eax
0000000000000009 incl %eax
$
don't stop at inc!
llvm-svn: 100491
2010-04-05 23:11:24 +00:00
Chris Lattner
3d18e71ae8
tidy #includes.
...
llvm-svn: 100489
2010-04-05 23:07:18 +00:00
Chris Lattner
0e45d24a4e
stringref-ize the MemoryBuffer::get apis. This requires
...
a co-committed clang patch.
llvm-svn: 100485
2010-04-05 22:42:30 +00:00
Chris Lattner
7012916275
fix an ugly wart in the MCInstPrinter api where the
...
raw_ostream to print an instruction to had to be specified
at MCInstPrinter construction time instead of being able
to pick at each call to printInstruction.
llvm-svn: 100307
2010-04-04 05:04:31 +00:00
Chris Lattner
9f59b3dd9b
remove some extraneous casts
...
llvm-svn: 100287
2010-04-03 21:03:50 +00:00
Chris Lattner
07d09ed49a
Add special case bitcode support for DebugLoc. This avoids
...
having the bitcode writer materialize mdnodes for all the
debug location tuples when writing out the bc file and
stores the information in a more compact form. For example,
the -O0 -g bc file for combine.c in 176.gcc shrinks from
739392 to 512096 bytes.
This concludes my planned short-term debug info work.
llvm-svn: 100261
2010-04-03 02:17:50 +00:00
Mikhail Glushenkov
729bcaded9
Pass -shared to the linker.
...
llvm-svn: 100260
2010-04-03 02:00:03 +00:00
Chris Lattner
ebc6f14766
add a couple missing enum names.
...
llvm-svn: 100257
2010-04-03 01:05:24 +00:00
Sean Callanan
dfc8a75755
Updated the install location for EnhancedDisassembly
...
on Mac OS X to use @rpath rather than an absolute
path. Also allowed the version to be set using an
environment variable.
llvm-svn: 100163
2010-04-02 00:53:42 +00:00
Mikhail Glushenkov
5506864ed4
Pass -m32/-m64 to assembler.
...
llvm-svn: 100064
2010-03-31 23:51:55 +00:00
Dan Gohman
7a4413a312
Fix llvm-ld to clean up its output files in case of an error.
...
llvm-svn: 99915
2010-03-30 19:56:41 +00:00
Chris Lattner
273f31d08d
revert r99719 which is breaking the botz.
...
llvm-svn: 99721
2010-03-27 18:01:10 +00:00
Dan Gohman
ec9e342d04
Make llvm-ld remove its output files in the event of an error.
...
llvm-svn: 99719
2010-03-27 16:49:51 +00:00
Dan Gohman
99ac24d1e3
No need to check the same condition twice.
...
llvm-svn: 99716
2010-03-27 16:36:08 +00:00
Daniel Dunbar
d821f4ac60
llvm-mc: Add a -mc-relax-all option, which relaxes every fixup. We always need
...
exactly two passes in that case, and don't ever need to recompute any layout,
so this is a nice baseline for relaxation performance.
llvm-svn: 99563
2010-03-25 22:49:09 +00:00
Dan Gohman
8e404fe769
Trim #includes.
...
llvm-svn: 99416
2010-03-24 19:56:17 +00:00
Dan Gohman
4634b7d4f6
It's not necessary to call raw_ostream::close explicitly on automatic
...
raw_ostream variables immediately before they go out of scope.
llvm-svn: 99413
2010-03-24 19:00:02 +00:00
Daniel Dunbar
b09b8906cb
llvm-mc: Support -filetype=null, for timing purposes.
...
llvm-svn: 99349
2010-03-23 23:47:12 +00:00
Bill Wendling
703d0b978a
Remove if DISABLED not if not DISABLED...
...
llvm-svn: 99343
2010-03-23 23:09:03 +00:00
Bill Wendling
c941619a73
Use "DISABLE_EDIS" to disable building "edis" explicitly. Don't build it for
...
Apple-style builds.
llvm-svn: 99336
2010-03-23 22:15:33 +00:00
Chris Lattner
7d32580e5a
make sure to delete the llvm module before calling llvm_shutdown,
...
this fixes crashes in error cases, PR6683
llvm-svn: 99334
2010-03-23 21:59:43 +00:00
Dan Gohman
e5732c63c4
llc doesn't need LinkAllVMCore.
...
llvm-svn: 99186
2010-03-22 16:59:44 +00:00
Jeffrey Yasskin
38da2b015f
Avoid leaking the FunctionPassManager from opt.
...
llvm-svn: 99180
2010-03-22 15:56:04 +00:00
Jeffrey Yasskin
a6eedc3c03
Free all Constants in ~LLVMConstantImpl. We avoid assertion failures
...
by dropping all references from all constants that can use other
constants before trying to destroy any of them.
I also had to free bugpoint's Module in ~BugDriver().
llvm-svn: 99160
2010-03-22 05:23:37 +00:00
Daniel Dunbar
d9d5b315ab
llvm-mc: Fix MCInstPrinter memory leaks.
...
llvm-svn: 99101
2010-03-20 22:36:35 +00:00
Daniel Dunbar
c5621ed07a
llvm-mc: Fix memory leak of MCAsmInfo.
...
llvm-svn: 99098
2010-03-20 22:36:25 +00:00
Daniel Dunbar
abf6e3657e
llvm-mc: Fix target selection for --disassemble to use GetTarget.
...
llvm-svn: 98973
2010-03-19 18:07:50 +00:00
Chris Lattner
90a7859ebc
fix an MCInstPrinter leak that jyasskin pointed out:
...
createAsmStreamer now takes ownership of the instprinter.
llvm-svn: 98939
2010-03-19 05:48:53 +00:00