Chris Lattner
c7a8eaf614
elimiante the dynamic_cast's from opt.
...
llvm-svn: 94160
2010-01-22 06:03:06 +00:00
Chris Lattner
5517958641
simplify code.
...
llvm-svn: 94159
2010-01-22 05:54:03 +00:00
Chris Lattner
5b0e01c54e
move some files out of the llvm-mc tool into the MCParser library so
...
other tools can link it.
llvm-svn: 94131
2010-01-22 01:58:08 +00:00
Chris Lattner
00646cfbd4
create a new MCParser library and move some stuff into it.
...
llvm-svn: 94129
2010-01-22 01:44:57 +00:00
Chris Lattner
6401c883c4
remove some confused code that used strtoull
...
llvm-svn: 94128
2010-01-22 01:17:12 +00:00
Sean Callanan
7a77eae2f3
Moved handling of inclusion from the AsmLexer to
...
the AsmParser, breaking AsmLexer's dependence on
SourceMgr.
llvm-svn: 94054
2010-01-21 00:19:58 +00:00
Sean Callanan
177934e021
Changed the AsmParser to handle error messages itself
...
rather than passing them off to the AsmLexer to handle.
This means the AsmLexer no longer requires a SourceMgr
to do error handling.
llvm-svn: 94047
2010-01-20 23:19:55 +00:00
Sean Callanan
1a0eeb6e06
Promoted the reference to the SourceMgr from AsmLexer
...
into AsmParser, in preparation for making AsmLexer
independent of the SourceMgr
llvm-svn: 94043
2010-01-20 22:45:23 +00:00
Sean Callanan
70855e42e6
Modified MCAsmLexer to return error information upward
...
rather than printing it locally, reducing its dependence
on SourceMgr.
llvm-svn: 94041
2010-01-20 22:18:24 +00:00
Chris Lattner
38caaf14c1
give createAsmStreamer an 'isLittleEndian' argument.
...
llvm-svn: 93986
2010-01-20 06:39:07 +00:00
Sean Callanan
936b0d3144
Promoted the getTok() method to MCAsmParser so that
...
the two token accessor functions are declared consistently.
Modified the clients of MCAsmParser to reflect this change.
llvm-svn: 93916
2010-01-19 21:44:56 +00:00
Sean Callanan
686ed8d248
Added a Lex function to the AsmParser, to allow handling
...
of include directives to occur within the parser itself.
This will break the lexer's dependency on a SourceMgr as
input.
llvm-svn: 93899
2010-01-19 20:22:31 +00:00
Chris Lattner
c35681b298
Generalize mcasmstreamer data emission APIs to take an address space
...
identifier. There is no way to work around it.
llvm-svn: 93896
2010-01-19 19:46:13 +00:00
Chris Lattner
0c65fd4902
add a "MCStreamer::EmitFill" method, and move the default implementation
...
(which just iteratively emits bytes) to MCStreamer.
llvm-svn: 93888
2010-01-19 18:45:47 +00:00
Chris Lattner
ab9cd3e132
fix parsing .comm directives on systems which do not represent alignments
...
as a power of 2. This fixes MC/AsmParser/directive_comm.s
llvm-svn: 93867
2010-01-19 06:22:22 +00:00
Eli Friedman
eb0c52f194
Make opt -O3 act more like clang -O3 etc., by making the inlining thresholds
...
match.
llvm-svn: 93798
2010-01-18 22:38:31 +00:00
Chris Lattner
6b4f73ea94
make llvm-config more portable to windows versions of perl,
...
patch by Michael Beck!
llvm-svn: 93793
2010-01-18 22:27:43 +00:00
Chris Lattner
b4ffc894e6
now that mangler is in libtarget, it can use MCAsmInfo instead of clients
...
having to pass various fields from it in. Simplify.
llvm-svn: 93686
2010-01-17 18:22:35 +00:00
Dan Gohman
915ad96b40
Don't create a (empty) output file, and don't warn about bitcode output
...
to a console, when --analyze is used.
Similarly, avoid creating an empty output file when --disable-output is used.
Print a warning when the -o option appears with either --analyze or
--disable-output, to indicate that the option is being ignored.
llvm-svn: 93685
2010-01-17 17:47:24 +00:00
Chris Lattner
f62e3ee8c5
move the mangler into libtarget from vmcore.
...
llvm-svn: 93664
2010-01-16 21:57:06 +00:00
Chris Lattner
6a941f0b85
remove obsolete comment.
...
llvm-svn: 93661
2010-01-16 21:34:51 +00:00
Chris Lattner
dc2cb5afad
bugpoint doesn't need the mangler at all. DisambiguateGlobalSymbols
...
dates to a time when two different LLVM values could have the same
name but different types. Simplify it to just assign names to unnamed
things and let the core symtab resolve duplicates.
llvm-svn: 93660
2010-01-16 21:34:01 +00:00
Chris Lattner
2ce863be1c
remove calls to dead methods.
...
llvm-svn: 93657
2010-01-16 21:20:34 +00:00
Chris Lattner
46d3a102da
remove use of getMangledName.
...
llvm-svn: 93655
2010-01-16 20:56:05 +00:00
Chris Lattner
9787fd0468
switch liblto to use the new getNameWithPrefix() method instead of getMangledName.
...
llvm-svn: 93643
2010-01-16 18:12:14 +00:00
Chris Lattner
e17df0b7f0
fix a bug in range information for $42, eliminate an
...
unneeded argument from ParseExpression.
llvm-svn: 93536
2010-01-15 19:39:23 +00:00
Chris Lattner
528d00b913
extend MCAsmParser::ParseExpression and ParseParenExpression
...
to return range information for subexpressions. Use this to
provide range info for several new X86Operands.
llvm-svn: 93534
2010-01-15 19:28:38 +00:00
Nate Begeman
d232150b83
Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available.
...
Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer
Further refactoring to completely remove MachOWriter and drive the object file
writer with the AsmPrinter MCInst/MCSection logic is forthcoming.
llvm-svn: 93527
2010-01-15 18:51:18 +00:00
Chris Lattner
14bf521792
add virtual methods to get the start/end of a MCParsedAsmOperand,
...
the default implementation returns "unknown".
llvm-svn: 93470
2010-01-14 22:29:57 +00:00
Chris Lattner
f29c0b6880
Split the TargetAsmParser "ParseInstruction" interface in half:
...
the new ParseInstruction method just parses and returns a list of
target operands. A new MatchInstruction interface is used to
turn the operand list into an MCInst.
This requires new/deleting all the operands, but it also gives
targets the ability to use polymorphic operands if they want to.
llvm-svn: 93469
2010-01-14 22:21:20 +00:00
Chris Lattner
77fd677111
prune #includes in TargetAsmParser.h
...
Pass in SMLoc of instr opcode into ParseInstruction.
Make AsmToken be a class, not a struct.
llvm-svn: 93457
2010-01-14 21:32:45 +00:00
Benjamin Kramer
c6fe3c3273
Reimplement getToken and SplitString as "StringRef helper functions"
...
- getToken is modeled after StringRef::split but it can split on multiple
separator chars and skips leading seperators.
- SplitString is a StringRef::split variant for more than 2 elements with the
same behaviour as getToken.
llvm-svn: 93161
2010-01-11 18:03:24 +00:00
David Greene
ed8a1def24
Enable debug buffering.
...
llvm-svn: 92667
2010-01-05 01:30:32 +00:00
David Greene
6e55be681e
Enable debug buffering.
...
llvm-svn: 92666
2010-01-05 01:30:21 +00:00
Mikhail Glushenkov
65f12ea72e
Forward -O0 to llvm-gcc.
...
llvm-svn: 92414
2010-01-02 08:27:23 +00:00
Mikhail Glushenkov
8181d150c0
Apparently, it is OK for -MT to be specified several times.
...
llvm-svn: 92413
2010-01-02 08:27:10 +00:00
Mikhail Glushenkov
8a52b77523
Minor simplifactions.
...
llvm-svn: 92393
2010-01-01 04:41:10 +00:00
Mikhail Glushenkov
8711c8dbcf
Minor simplifications.
...
llvm-svn: 92390
2010-01-01 03:50:51 +00:00
Bill Wendling
ae606a1d1d
Mark some debug variables as 'unused' to quiet compiler and analyzer.
...
llvm-svn: 92183
2009-12-28 01:34:57 +00:00
Douglas Gregor
66ffa50e6d
Fix another -Wmismatched-tags warning
...
llvm-svn: 92017
2009-12-23 18:27:13 +00:00
Douglas Gregor
35ac67ff8e
Fix struct/class mismatch for LTOModule and LTOCodeGenerator, detected by Clang
...
llvm-svn: 92004
2009-12-23 17:05:07 +00:00
Mikhail Glushenkov
0cb2a55c76
Make it easier to regenerate docs when srcdir != objdir.
...
llvm-svn: 92000
2009-12-23 12:50:03 +00:00
Mikhail Glushenkov
f48a0c43b6
Allow (set_option SwitchOption, true).
...
llvm-svn: 91997
2009-12-23 12:49:30 +00:00
Chris Lattner
b257d24f62
rename HexDisassembler -> Disassembler, it works on any input
...
integer encoding (0123, 0b10101, 42, etc).
llvm-svn: 91934
2009-12-22 22:50:29 +00:00
Chris Lattner
e3437b33f5
just discard the debug output from the disassembler.
...
llvm-svn: 91933
2009-12-22 22:47:43 +00:00
Chris Lattner
778f92ab02
specify what is invalid about it
...
llvm-svn: 91901
2009-12-22 07:03:21 +00:00
Chris Lattner
502f0f11e0
reject invalid input with a caret, e.g.:
...
simple-tests.txt:16:1: error: invalid instruction
0xff 0xff
^
llvm-svn: 91898
2009-12-22 06:58:29 +00:00
Chris Lattner
dd0c01b5de
various cleanups, make the disassemble reject lines with too much
...
data on them, for example:
addb %al, (%rax)
simple-tests.txt:11:5: error: excess data detected in input
0 0 0 0 0
^
llvm-svn: 91896
2009-12-22 06:56:51 +00:00
Chris Lattner
8879918722
If you thought that it didn't make sense for the disassembler
...
to not produce caret diagnostics, you were right!
llvm-svn: 91895
2009-12-22 06:45:48 +00:00
Chris Lattner
dc9845b79a
rewrite the file parser for the disassembler, implementing support for
...
comments. Also, check in a simple testcase for the disassembler,
including a test for r91864
llvm-svn: 91894
2009-12-22 06:37:58 +00:00
Chris Lattner
72cbaa2ecb
don't crash on blank lines, rename some variables.
...
llvm-svn: 91892
2009-12-22 06:24:00 +00:00
Sanjiv Gupta
bdef02be69
Adding a bunch of options to the mcc16 driver.
...
llvm-svn: 91776
2009-12-19 13:13:29 +00:00
Mikhail Glushenkov
1fe2678a06
Add a 'set_option' action for use in OptionPreprocessor.
...
llvm-svn: 91594
2009-12-17 07:49:16 +00:00
Chandler Carruth
187220e3f5
Update CMake build to include HexDisassembler.cpp.
...
llvm-svn: 91589
2009-12-17 06:35:17 +00:00
Sean Callanan
7e64550747
Test harness for the LLVM disassembler. When invoked
...
with -disassemble, llvm-mc now accepts lines of the
form
0x00 0x00
and passes the resulting bytes to the disassembler for
the chosen (or default) target, printing the result.
llvm-svn: 91579
2009-12-17 01:49:59 +00:00
Mikhail Glushenkov
096fc103fb
Validate the generated C++ code in llvmc tests.
...
Checks that the code generated by 'tblgen --emit-llvmc' can be actually
compiled. Also fixes two bugs found in this way:
- forward_transformed_value didn't work with non-list arguments
- cl::ZeroOrOne is now called cl::Optional
llvm-svn: 91404
2009-12-15 03:04:52 +00:00
Mikhail Glushenkov
53ec77972e
Small documentation update.
...
llvm-svn: 91401
2009-12-15 03:03:37 +00:00
Chris Lattner
4b2a6e200f
when opt crashes, print its command line arguments as a pretty stack trace.
...
Somehow opt was missed when this was added.
llvm-svn: 90912
2009-12-09 00:41:28 +00:00
Mikhail Glushenkov
550694d18a
Documentation update.
...
llvm-svn: 90775
2009-12-07 18:26:11 +00:00
Mikhail Glushenkov
67c106664b
Deprecate 'unpack_values'.
...
Use 'forward_values' + 'comma_separated' instead.
llvm-svn: 90774
2009-12-07 18:25:54 +00:00
Mikhail Glushenkov
e69994f04f
Pass '-msse' and friends to llc as '-mattr=+/-'.
...
llvm-svn: 90771
2009-12-07 17:03:21 +00:00
Mikhail Glushenkov
c563ce3e62
Forward -m32/-m64 to the linker.
...
llvm-svn: 90548
2009-12-04 06:38:45 +00:00
Mikhail Glushenkov
2b86846b65
Support -march/-mtune/-mcpu.
...
llvm-svn: 90547
2009-12-04 06:38:28 +00:00
Mikhail Glushenkov
35c5591286
Add relocation model options.
...
llvm-svn: 90222
2009-12-01 09:47:11 +00:00
Mikhail Glushenkov
b5f718f063
Typo.
...
llvm-svn: 90221
2009-12-01 09:19:09 +00:00
Mikhail Glushenkov
ed163ed103
Forward -save-temps to llvm-gcc.
...
llvm-svn: 90214
2009-12-01 06:51:30 +00:00
Mikhail Glushenkov
3a438a9336
Support -[weak_]framework and -F in llvmc.
...
llvm-svn: 90210
2009-12-01 05:59:55 +00:00
Tobias Grosser
dd7f2e797f
Remove ShortNames from getNodeLabel in DOTGraphTraits
...
llvm-svn: 90134
2009-11-30 12:38:47 +00:00
Tobias Grosser
90d334032a
Instantiate DefaultDOTGraphTraits
...
llvm-svn: 90133
2009-11-30 12:38:13 +00:00
Viktor Kutuzov
8981b3abe5
Rollback changes r89516: Added two SubtargetFeatures::AddFeatures methods, which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods.
...
llvm-svn: 89893
2009-11-25 22:44:18 +00:00
Daniel Dunbar
e8b8ccefcb
Add the rest of the build system logic for optional target disassemblers
...
llvm-svn: 89841
2009-11-25 04:46:58 +00:00
Viktor Kutuzov
7dcca8f7fc
Added two SubtargetFeatures::AddFeatures methods, which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods.
...
llvm-svn: 89516
2009-11-21 00:00:02 +00:00
Mikhail Glushenkov
3faece9462
Make example/Hello compile again.
...
llvm-svn: 89363
2009-11-19 17:29:25 +00:00
Viktor Kutuzov
c3e2b6bcf5
Added getDefaultSubtargetFeatures method to SubtargetFeatures class which returns a correct feature string for given triple.
...
llvm-svn: 89236
2009-11-18 20:20:05 +00:00
Viktor Kutuzov
dafdd883bc
Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch.
...
llvm-svn: 89122
2009-11-17 18:48:27 +00:00
Duncan Sands
3246fe0b6b
Make bugpoint pass -load arguments to LLI. This lets one use bugpoint with
...
programs that depend on native shared libraries. Patch by Timo Lindfors.
llvm-svn: 89087
2009-11-17 10:20:22 +00:00
Benjamin Kramer
68e4945c03
Add compare_lower and equals_lower methods to StringRef. Switch all users of
...
StringsEqualNoCase (from StringExtras.h) to it.
llvm-svn: 87020
2009-11-12 20:36:59 +00:00
Daniel Dunbar
c0fd8a4360
Stop running get_target_triple more than we need to.
...
llvm-svn: 86418
2009-11-07 23:52:20 +00:00
Kenneth Uildriks
90fedc6ef9
Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test
...
llvm-svn: 85900
2009-11-03 15:29:06 +00:00
Nick Lewycky
e0856c5f40
Line this up as well.
...
llvm-svn: 85748
2009-11-01 22:08:51 +00:00
Nick Lewycky
b244909ad4
Fix whitespace.
...
llvm-svn: 85747
2009-11-01 22:07:54 +00:00
Douglas Gregor
291f6145b8
Reverting 85714, 85715, 85716, which are breaking the build
...
llvm-svn: 85717
2009-11-01 16:42:53 +00:00
Dan Gohman
576ac96367
Remove the #include of Pass.h from PassManager.h. This breaks a significant
...
#include dependency, as frontends commonly pull in PassManager.h.
llvm-svn: 85714
2009-11-01 15:20:19 +00:00
Viktor Kutuzov
fd7ddd9c69
Fix to pass options from Gold plugin to LTO codegen
...
llvm-svn: 85419
2009-10-28 18:55:55 +00:00
Jeffrey Yasskin
aa8814a877
Revert the API changes from r85295 to make it easier for people to build
...
against both 2.6 and HEAD. The default is still changed to eager jitting.
llvm-svn: 85330
2009-10-27 22:39:42 +00:00
Jeffrey Yasskin
4567db45b8
Change the JIT to compile eagerly by default as agreed in
...
http://llvm.org/PR5184 , and beef up the comments to describe what both options
do and the risks of lazy compilation in the presence of threads.
llvm-svn: 85295
2009-10-27 20:30:28 +00:00
Chandler Carruth
56869f22c4
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Mikhail Glushenkov
a51c491f03
Document OptionPreprocessor.
...
llvm-svn: 85030
2009-10-25 01:44:11 +00:00
Duncan Sands
f34a264c60
Include config.h in order to have HAVE_STDINT_H be defined.
...
In the latest binutils the plugin-api.h needs this - without
it the LLVM gold plugin fails to compile.
llvm-svn: 84861
2009-10-22 16:03:32 +00:00
Chris Lattner
7a0d49da1b
llvm-ld doesn't throw.
...
llvm-svn: 84819
2009-10-22 00:52:28 +00:00
Chris Lattner
e6be8ce419
this doesn't use EH either.
...
llvm-svn: 84818
2009-10-22 00:50:24 +00:00
Chris Lattner
cc81526176
nothing opt uses can throw, remove the try block and -fexceptions when
...
building opt.
llvm-svn: 84816
2009-10-22 00:46:41 +00:00
Chris Lattner
cfa1911788
Add some command line options for twiddling the default data layout
...
used by opt when a module doesn't specify one. Patch from Kenneth Uildriks!
llvm-svn: 84814
2009-10-22 00:44:10 +00:00
Sanjiv Gupta
d6e77d004a
Added more options to mcc16 driver.
...
llvm-svn: 84752
2009-10-21 10:38:59 +00:00
Mikhail Glushenkov
93f1948caa
Clarify documentation on multi_val options.
...
llvm-svn: 84729
2009-10-21 02:13:52 +00:00
Jeffrey Yasskin
08fa03c740
Delete the MacOSJITEventListener per echristo's request. It was disabled by
...
default and didn't work anyway.
llvm-svn: 84720
2009-10-21 00:43:48 +00:00
Mikhail Glushenkov
867f67301b
First draft of the OptionPreprocessor.
...
More to follow...
llvm-svn: 84352
2009-10-17 20:09:29 +00:00
Mikhail Glushenkov
4500d416aa
-O[0-3] options should be also forwarded to opt and llc.
...
This will require implementing OptionPreprocessor to forbid invalid invocations
such as 'llvmc -O1 -O2'.
llvm-svn: 84349
2009-10-17 20:07:49 +00:00
Daniel Dunbar
2bdc1a5c86
llvm-as: Simplify, and don't create empty output files with -disable-output.
...
llvm-svn: 84304
2009-10-17 03:28:28 +00:00
Evan Cheng
5a28638560
Add a CodeGenOpt::Less level to match -O1. It'll be used by clients which do not want post-regalloc scheduling.
...
llvm-svn: 84272
2009-10-16 21:02:20 +00:00
Daniel Dunbar
c3bd60e393
MC: Remove unneeded context argument to MCExpr::Evaluate*.
...
llvm-svn: 84233
2009-10-16 01:57:52 +00:00
Daniel Dunbar
5f339244fb
MC: Tweak variable assignment diagnostics, and make reassignment of non-absolute
...
variables and symbols invalid.
llvm-svn: 84232
2009-10-16 01:57:39 +00:00
Daniel Dunbar
d20cda028a
MC: When parsing a variable reference, substitute absolute variables immediately
...
since they are allowed to be redefined.
llvm-svn: 84230
2009-10-16 01:34:54 +00:00
Duncan Sands
6f2ffcef20
There seems to be no reason for opt's -S option to be hidden.
...
Make it visible.
llvm-svn: 84127
2009-10-14 20:01:39 +00:00
Nick Lewycky
f8dd676a50
Fix Makefile to build correctly on Darwin. Patch by Sandeep Patel!
...
llvm-svn: 83813
2009-10-11 23:10:09 +00:00
Mikhail Glushenkov
28bca602a4
Slight rewording.
...
llvm-svn: 83620
2009-10-09 05:45:38 +00:00
Mikhail Glushenkov
8f30148560
Use llvm-as only for compiling .ll -> .bc.
...
llc can compile .ll files directly these days.
llvm-svn: 83618
2009-10-09 05:45:01 +00:00
Mikhail Glushenkov
bb8386af53
Unbreak the build.
...
Forgot about the need to reconfigure after modifying Base.td.in....
llvm-svn: 83529
2009-10-08 06:03:38 +00:00
Mikhail Glushenkov
35aadbc05c
Make the Base plugin understand -MF and -MT.
...
llvm-svn: 83525
2009-10-08 04:40:28 +00:00
Duncan Sands
9ed7b16bf3
Introduce and use convenience methods for getting pointer types
...
where the element is of a basic builtin type. For example, to get
an i8* use getInt8PtrTy.
llvm-svn: 83379
2009-10-06 15:40:36 +00:00
Chris Lattner
cb08fb7b83
remove llvm-db: it is completely broken and if anyone wants to do a debugger,
...
they should not base it on llvm-db (which not following almost any "best practices").
llvm-svn: 83288
2009-10-05 02:29:51 +00:00
Oscar Fuentes
cfd4ec0226
CMake: remove .so file extension from library names when building
...
dependency info.
Patch by Peter Collingbourne!
llvm-svn: 83275
2009-10-04 06:24:57 +00:00
Mikhail Glushenkov
efc9763468
Add a way to query the number of input files.
...
llvm-svn: 82957
2009-09-28 01:16:42 +00:00
Mikhail Glushenkov
b7787297f5
Document the 'not' combinator.
...
llvm-svn: 82956
2009-09-28 01:16:07 +00:00
Chris Lattner
351a7ef01a
add a new DirectiveMap stringmap, which allows more efficient dispatching
...
to directive handlers and allows for easier extensibility.
I only switched a few over for now.
llvm-svn: 82926
2009-09-27 21:16:52 +00:00
Chris Lattner
10a1cfd0f9
avoid copying MCAsmInfo by value, add an (extremely low prio) fixme.
...
llvm-svn: 82911
2009-09-27 19:38:39 +00:00
Daniel Dunbar
e813b22b13
Make llvm-bcanalyzer percentages more readable.
...
llvm-svn: 82772
2009-09-25 16:04:21 +00:00
Daniel Dunbar
75359a7c2f
Strip trailing whitespace.
...
llvm-svn: 82771
2009-09-25 16:03:57 +00:00
Duncan Sands
3cf0cdee4c
Print INST_INBOUNDS_GEP rather than UnknownCode30.
...
Likewise for constant inbounds GEP.
llvm-svn: 82763
2009-09-25 12:28:37 +00:00
Gabor Greif
98dd936bc9
pretty mechanical changes to match coding guidelines (blessed by sabre on IRC)
...
llvm-svn: 82603
2009-09-23 02:46:12 +00:00
Daniel Dunbar
a249c42e8c
Fix llvm-config --src-root and --obj-root for CMake builds.
...
llvm-svn: 82529
2009-09-22 06:09:31 +00:00
Daniel Dunbar
af890eb82f
llvm-config: Remove unused variables.
...
llvm-svn: 82528
2009-09-22 06:09:22 +00:00
Chris Lattner
4479034537
Add an intel syntax MCInstPrinter implementation. You can now
...
transcode from AT&T to intel syntax with "llvm-mc foo.s -output-asm-variant=1"
llvm-svn: 82385
2009-09-20 07:17:49 +00:00
Nick Lewycky
1303c0ab86
Remove the default value for ConstantStruct::get's isPacked parameter and
...
update the code which was broken by this.
llvm-svn: 82327
2009-09-19 20:30:26 +00:00
Devang Patel
af206b8c88
Write and read metadata attachments.
...
llvm-svn: 82259
2009-09-18 19:26:43 +00:00
Dan Gohman
e8d0150398
Now that llc can read .ll files directly, teach it to recognize .ll as
...
an extension, so that the default output filename for foo.ll is foo.s,
not foo.ll.s
llvm-svn: 82071
2009-09-16 19:18:41 +00:00
Kevin Enderby
ecd879a2d5
Fixed some problems with the logic of parsing line comments by adding
...
isAtStartOfComment and using that instead in two places where a loop
to check if the char was in MAI.getCommentString().
llvm-svn: 82059
2009-09-16 18:08:00 +00:00
Xerxes Ranby
a0f1088134
Make cmake generated llvm-config output correct JIT backend for non X86 targets.
...
llvm-svn: 82049
2009-09-16 14:36:35 +00:00
Chris Lattner
c6a889d0b6
use an accessor to simplify code.
...
llvm-svn: 81997
2009-09-16 04:12:47 +00:00
Dan Gohman
2b09de986c
Give llvm-link a -S option.
...
llvm-svn: 81859
2009-09-15 15:35:07 +00:00
Dan Gohman
972c9c5e0a
Don't bother using a PassManager just to print a Module.
...
llvm-svn: 81858
2009-09-15 15:33:42 +00:00
Chris Lattner
11b2fc9ea4
Change MCAsmStreamer to take an MCInstPrinter instead of a
...
full AsmPrinter, and change TargetRegistry to keep track
of registered MCInstPrinters.
llvm-mc is still linking in the entire
target foo to get the code emitter stuff, but this is an
important step in the right direction.
llvm-svn: 81754
2009-09-14 03:02:37 +00:00
Dan Gohman
3d2c91403c
Convert llvm-link to IRReader.
...
llvm-svn: 81632
2009-09-12 21:55:12 +00:00
Douglas Gregor
7241795049
De-bork CMake build. llvm-extract depends on asmparser
...
llvm-svn: 81574
2009-09-11 21:26:24 +00:00
Dan Gohman
e592923603
Fix llvm-extract's "writing bitcode to a terminal" warning, which wasn't
...
working. To support this, add an is_displayed() function to raw_ostream,
and generalize Process::StandardOutIsDisplayed and friends in order to
support it.
Also, call RemoveFileOnSignal before creating a file instead of after, so
that the file isn't left behind if the program is interrupted between when
the file is created and RemoveFileOnSignal is called.
While here, add a -S to llvm-extract and port it to IRReader so that it
supports assembly input.
llvm-svn: 81568
2009-09-11 20:46:33 +00:00
Kevin Enderby
ce4bec8e0c
Added the ParseInstruction() hook for target specific assembler directives so
...
that things like .word can be parsed as target specific. Moved parsing .word
out of AsmParser.cpp into X86AsmParser.cpp as it is 2 bytes on X86 and 4 bytes
for other targets that support the .word directive.
llvm-svn: 81461
2009-09-10 20:51:44 +00:00
Mikhail Glushenkov
d5107d1333
Allow llvmc to take .bc files as input.
...
llvm-svn: 81452
2009-09-10 17:04:32 +00:00
Nuno Lopes
bc56152196
fix leakage of Module
...
llvm-svn: 81445
2009-09-10 14:56:31 +00:00
Daniel Dunbar
a944234a1e
MC: Give target specific parsers access to the MCStreamer.
...
llvm-svn: 81416
2009-09-10 00:59:15 +00:00
Daniel Dunbar
a53337f731
Add -output-prefix option to bugpoint (to change the default output name).
...
llvm-svn: 81154
2009-09-07 19:26:11 +00:00
Benjamin Kramer
63951ada31
Fix an integer truncation noticed by MSVC.
...
llvm-svn: 81109
2009-09-06 09:35:10 +00:00
Daniel Dunbar
6b3153bb53
opt: Add -S option to print output as LLVM assembly.
...
llvm-svn: 81082
2009-09-05 11:34:53 +00:00
Kevin Enderby
9c0f7fc746
Added AsmToken enum constants to MCAsmLexer.h for '[', ']', '{', and '}' in
...
preparation of supporting other targets. Then changed the lexer to parse these
as tokens.
llvm-svn: 81050
2009-09-04 22:40:31 +00:00
Kevin Enderby
f92f9909c4
Added the AsmToken::Hash enum constant to MCAsmLexer.h in preparation of
...
supporting other targets. Changed the code to pass MCAsmInfo to the parser
and the lexer. Then changed the lexer to use CommentString from MCAsmInfo
instead of a literal '#' character.
llvm-svn: 81046
2009-09-04 21:45:34 +00:00
Kevin Enderby
7d91218c75
Removed the non-target independent AsmToken::Register enum constant
...
from MCAsmLexer.h in preparation of supporting other targets. Changed the
X86AsmParser code to reflect this by removing AsmLexer::LexPercent and looking
for AsmToken::Percent when parsing in places that used AsmToken::Register.
Then changed X86ATTAsmParser::ParseRegister to parse out registers as an
AsmToken::Percent followed by an AsmToken::Identifier.
llvm-svn: 80929
2009-09-03 17:15:07 +00:00
Dan Gohman
728a81ab18
Make bugpoint use ParseIRFile instead of doing the same thing manually.
...
llvm-svn: 80927
2009-09-03 16:32:58 +00:00
Dan Gohman
0054b460ff
Use IRReader.h in opt, to support reading of LLVM Assembly files directly.
...
llvm-svn: 80922
2009-09-03 16:00:08 +00:00
Chris Lattner
41bf56de79
TAI -> MAI
...
llvm-svn: 80899
2009-09-03 06:13:54 +00:00
Daniel Dunbar
76628def06
Tweak comment.
...
llvm-svn: 80891
2009-09-03 05:47:22 +00:00
Douglas Gregor
ef7c1fd909
Unbreak my CMake build. Say you'll link again.
...
llvm-svn: 80842
2009-09-02 22:45:31 +00:00
Dan Gohman
c76bfb777e
Switch llc from ParseBitcodeFile to ParseIRFile. This lets llc
...
transparently read either LLVM Assembly or LLVM Bitcode files.
llvm-svn: 80829
2009-09-02 19:35:19 +00:00
Daniel Dunbar
897ffadd2d
llvm-mc: Pass values to MCStreamer as MCExprs, not MCValues.
...
llvm-svn: 80578
2009-08-31 08:09:28 +00:00
Daniel Dunbar
b7b2097aac
llvm-mc: Simplify EmitAssignment ('.set' is identical to '=').
...
llvm-svn: 80577
2009-08-31 08:09:09 +00:00
Daniel Dunbar
b12b33051d
llvm-mc: Remove MCAsmParser::Parse[Paren]RelocatableExpression.
...
llvm-svn: 80576
2009-08-31 08:08:50 +00:00
Daniel Dunbar
7c82d56930
llvm-mc: Add MCAsmParser::Parse[Paren]Expression forms which return an MCExpr.
...
llvm-svn: 80574
2009-08-31 08:08:17 +00:00
Daniel Dunbar
940cda2590
llvm-mc: Add MCAsmParser::getContext.
...
llvm-svn: 80571
2009-08-31 08:07:44 +00:00
Daniel Dunbar
f363645da2
llvm-mc: Switch MCExpr construction to using static member functions, and taking the MCContext (which now owns all MCExprs).
...
llvm-svn: 80569
2009-08-31 08:07:22 +00:00
Daniel Dunbar
115e4d6d7b
llvm-mc: Move AsmExpr into MC lib (as MCExpr).
...
llvm-svn: 80567
2009-08-31 08:06:59 +00:00
Chris Lattner
edcbfe8529
only print the override triple if it exists!
...
llvm-svn: 80534
2009-08-31 03:22:35 +00:00
Chris Lattner
305b115a87
Fix some nasty callgraph dangling pointer problems in
...
argpromotion and structretpromote. Basically, when replacing
a function, they used the 'changeFunction' api which changes
the entry in the function map (and steals/reuses the callgraph
node).
This has some interesting effects: first, the problem is that it doesn't
update the "callee" edges in any callees of the function in the call graph.
Second, this covers for a major problem in all the CGSCC pass stuff, which
is that it is completely broken when functions are deleted if they *don't*
reuse a CGN. (there is a cute little fixme about this though :).
This patch changes the protocol that CGSCC passes must obey: now the CGSCC
pass manager copies the SCC and preincrements its iterator to avoid passes
invalidating it. This allows CGSCC passes to mutate the current SCC. However
multiple passes may be run on that SCC, so if passes do this, they are now
required to *update* the SCC to be current when they return.
Other less interesting parts of this patch are that it makes passes update
the CG more directly, eliminates changeFunction, and requires clients of
replaceCallSite to specify the new callee CGN if they are changing it.
llvm-svn: 80527
2009-08-31 00:19:58 +00:00
Daniel Dunbar
6a715dccdf
llvm-mc: MCStreamer cleanups. - Remove EmitLocalSymbol, this is unsupported for now.
...
- Switch Emit{CommonSymbol,Zerofill} to take alignment in bytes (for consistency).
llvm-svn: 80484
2009-08-30 06:17:16 +00:00
Andreas Neustifter
5155fc1b69
Since all std::cout is gone, also remove iostream include.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085620.html )
llvm-svn: 80349
2009-08-28 06:48:25 +00:00
Daniel Dunbar
96abad185d
llvm-mc: Emit .lcomm as .zerofill.
...
llvm-svn: 80343
2009-08-28 05:48:46 +00:00
Daniel Dunbar
e48a69b2a3
llvm-mc: Unique zero fill sections.
...
llvm-svn: 80342
2009-08-28 05:48:29 +00:00
Daniel Dunbar
8d38b8d20c
Revert r80305, I forgot a dependent change.
...
--- Reverse-merging r80305 into '.':
U tools/llvm-mc/AsmParser.cpp
llvm-svn: 80309
2009-08-27 23:58:10 +00:00
Daniel Dunbar
ba33ff294e
llvm-mc: Unique sections in .zerofill.
...
llvm-svn: 80305
2009-08-27 23:45:06 +00:00
Benjamin Kramer
53fd9f392d
Inverse logic to increase portability.
...
llvm-svn: 80240
2009-08-27 12:02:34 +00:00
Sanjiv Gupta
99c20d1459
To make mcc16 run correctly on mac.
...
llvm-svn: 80239
2009-08-27 11:54:38 +00:00
Daniel Dunbar
c7c5f9fa86
llvm-mc/Mach-O: Add MCCodeEmitter support, for encoding instructions.
...
- No relocations yet, of course.
llvm-svn: 80235
2009-08-27 08:17:51 +00:00
Daniel Dunbar
d18dd1d5f8
llvm-mc: Only show instruction encodings with --show-encoding.
...
llvm-svn: 80230
2009-08-27 07:56:39 +00:00
Daniel Dunbar
81cb753298
llvm-mc: Tweak MCCodeEmitter skeleton.
...
llvm-svn: 80193
2009-08-27 01:34:22 +00:00
Daniel Dunbar
65105174a6
Sketch TargetRegistry support for MCCodeEmitter abstract interface.
...
- Of course, nothing actually can provide this interface yet.
llvm-svn: 80188
2009-08-27 00:51:57 +00:00
Daniel Dunbar
4d7b2e3307
llvm-mc/Mach-O: Unique sections properly, so we don't get duplicate text
...
sections, etc.
- The quick and dirty way, just clone the TargetLoweringObjectFile
code. Eventually this should be shared... somehow.
llvm-svn: 80168
2009-08-26 22:49:51 +00:00
Daniel Dunbar
e73b267301
llvm-mc/Mach-O: Don't put assembler temporary labels in the symbol table.
...
- I moved section creation back into AsmParser. I think policy decisions like
this should be pushed higher, not lower, when possible (in addition the
assembler has flags which change this behavior, for example).
llvm-svn: 80162
2009-08-26 22:13:22 +00:00
Daniel Dunbar
90398bd222
llvm-mc: Make MCValue take const MCSymbol*s.
...
llvm-svn: 80078
2009-08-26 09:16:46 +00:00
Daniel Dunbar
18f3c9b994
llvm-mc: Make non-sensical max bytes to .align an error.
...
Also, warn about overflow in alignment values.
llvm-svn: 80077
2009-08-26 09:16:34 +00:00
Andreas Neustifter
5f4e42ef9c
Changed std::cout to outs(), retaining formating.
...
llvm-svn: 80076
2009-08-26 09:05:21 +00:00
Daniel Dunbar
4cf325e090
EXIT STAGE LEFT: gccas, gccld
...
llvm-svn: 80023
2009-08-25 20:21:09 +00:00
Dan Gohman
896ef2be35
Delete some unnecessary flushes.
...
llvm-svn: 80013
2009-08-25 17:48:17 +00:00
Dan Gohman
61a8796ddb
Make LLVM command-line tools overwrite their output files without -f.
...
This is conventional command-line tool behavior. -f now just means
"enable binary output on terminals".
Add a -f option to llvm-extract and llvm-link, for consistency.
Remove F_Force from raw_fd_ostream and enable overwriting and
truncating by default. Introduce an F_Excl flag to permit users to
enable a failure when the file already exists. This flag is
currently unused.
Update Makefiles and documentation accordingly.
llvm-svn: 79990
2009-08-25 15:34:52 +00:00
Duncan Sands
54dd438394
Fix the build when using gcc-4.4 on linux. Header needed
...
for stderr and fprintf.
llvm-svn: 79909
2009-08-24 10:59:01 +00:00
Chris Lattner
c143023bac
remove the last *stream> #include from a public header.
...
llvm-svn: 79892
2009-08-24 04:14:03 +00:00
Dan Gohman
2ebc96ae95
These flushes were only needed when the code was transitioning between
...
std::cout and outs().
llvm-svn: 79891
2009-08-24 04:13:48 +00:00
Chris Lattner
06fa176862
prune the #includes in raw_ostream.h by moving a
...
member out of line. ftostr is not particularly speedy,
so that method is presumably not perf sensitive.
llvm-svn: 79885
2009-08-24 03:52:50 +00:00
Chris Lattner
c521f54198
Prune #includes from llvm/Linker.h and llvm/System/Path.h,
...
forcing them down into various .cpp files.
This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>
sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.
llvm-svn: 79869
2009-08-23 22:45:37 +00:00
Chris Lattner
b9f25f9e19
eliminate the ostream version of CheckBitcodeOutputToConsole,
...
change the raw_ostream one to take the raw_ostream byref instead
of byptr. Prune #includes, eliminate a use of Streams.h
llvm-svn: 79863
2009-08-23 21:36:09 +00:00
Chris Lattner
6973395cc7
eliminate the std::ostream forms of the bitcode writing APIs.
...
llvm-svn: 79840
2009-08-23 07:49:08 +00:00
Chris Lattner
d04d9102ab
use raw_fd_ostream instead of fstream with graphwriter,
...
flush the right stream in opt.cpp.
llvm-svn: 79837
2009-08-23 07:31:22 +00:00
Chris Lattner
1362602eb2
Change Pass::print to take a raw ostream instead of std::ostream,
...
update all code that this affects.
llvm-svn: 79830
2009-08-23 06:03:38 +00:00
Chris Lattner
3924bb5792
remove the std::ostream version of module and type printing.
...
llvm-svn: 79823
2009-08-23 04:52:46 +00:00
Chris Lattner
b25de3ff60
eliminate the "Value" printing methods that print to a std::ostream.
...
This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819
2009-08-23 04:37:46 +00:00
Chris Lattner
abd1736998
simplify output file selection, fixing two FIXMEs about binary output
...
llvm-svn: 79808
2009-08-23 02:56:05 +00:00
Chris Lattner
9e6f1f160a
Change raw_fd_ostream to take flags as an optional bitmask
...
instead of as two bools. Use this to add a F_Append flag
which has the obvious behavior.
Other unrelated changes conflated into this patch:
1. REmove EH stuff from llvm-dis and llvm-as, the try blocks
are dead.
2. Simplify the filename inference code in llvm-as/llvm-dis,
because raw_fd_ostream does the right thing with '-'.
3. Switch machine verifier to use raw_ostream instead of ostream
(Which is the thing that needed append in the first place).
llvm-svn: 79807
2009-08-23 02:51:22 +00:00
Chris Lattner
7b26fce23e
Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.
...
llvm-svn: 79763
2009-08-22 20:48:53 +00:00
Daniel Dunbar
6860ac7375
llvm-mc: Clean up some handling of symbol/section association to be more correct
...
(external was really undefined and there wasn't an explicit representation for
absolute symbols).
- This still needs some cleanup to how the absolute "pseudo" section is dealt
with, but I haven't figured out the nicest approach yet.
llvm-svn: 79733
2009-08-22 07:22:36 +00:00
Eric Christopher
c8f625b1eb
Make unit-at-a-time on by default to match the behavior of llvm-gcc.
...
llvm-svn: 79698
2009-08-21 23:30:30 +00:00
Daniel Dunbar
67dfb1de23
llvm-mc: Improve handling of implicit alignment for magic section directives
...
(e.g., .objc_message_refs).
- Just emit a .align when we see the directive; this isn't exactly what 'as'
does but in practice it should be ok, at least for now. See FIXME.
llvm-svn: 79697
2009-08-21 23:30:15 +00:00
Eric Christopher
e64061f675
Kill trailing whitespace.
...
llvm-svn: 79696
2009-08-21 23:29:40 +00:00
Daniel Dunbar
4abcccb965
llvm-mc: In a .fill directive, still honor .align even if invalid maximum bytes
...
count is given (this matches 'as').
llvm-svn: 79683
2009-08-21 23:01:53 +00:00
Daniel Dunbar
8e5edd81bb
llvm-mc: Accept .fill size of 8.
...
llvm-svn: 79635
2009-08-21 15:43:35 +00:00