Dan Gohman
5ed61fe6a1
Bounds-check APInt's operator[].
...
llvm-svn: 119708
2010-11-18 17:14:56 +00:00
Chris Lattner
b0e36085c4
now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the
...
cookie argument to the SourceMgr diagnostic stuff. This cleanly separates
LLVMContext's inlineasm handler from the sourcemgr error handling
definition, increasing type safety and cleaning things up.
llvm-svn: 119486
2010-11-17 08:13:01 +00:00
Daniel Dunbar
2ed3fe08e9
report_fatal_error: Simplify a possible ambiguity.
...
llvm-svn: 118972
2010-11-13 02:48:51 +00:00
Ted Kremenek
3e100cf582
Fix memory leak in StringRef::edit_distance(). 'Allocated' could be leaked on an early return.
...
llvm-svn: 118370
2010-11-07 06:09:02 +00:00
Daniel Dunbar
f4d90ba9f5
CrashRecoveryContext: Add RunSafelyOnThread helper function.
...
llvm-svn: 118272
2010-11-05 07:19:09 +00:00
Mikhail Glushenkov
b8211b80bc
Rename FindExecutable to PrependMainExecutablePath.
...
Makes it more clear that it is just a path manipulation function.
llvm-svn: 118174
2010-11-03 16:14:16 +00:00
Dan Gohman
0baea2aa1b
Print an error as one big string instead of breaking it up.
...
llvm-svn: 118130
2010-11-03 00:24:33 +00:00
Mikhail Glushenkov
4fb337560c
Revert r118057, this is better fixed in appendSuffix itself.
...
llvm-svn: 118088
2010-11-02 22:18:28 +00:00
Dan Gohman
35b2013bf8
Don't append a dot on platforms which don't use exe suffixes.
...
llvm-svn: 118057
2010-11-02 20:49:48 +00:00
Mikhail Glushenkov
82ee8dad50
FindExecutable: remove the executability check.
...
This makes the behaviour of FindExecutable more consistent across platforms, but
I'm not very happy with the name...
llvm-svn: 118049
2010-11-02 20:32:46 +00:00
Dan Gohman
e1db7f2005
Fix these error messages to be less confusing. These error
...
messages primarily indicate errors running the viewer, not
errors with the graph file itself.
llvm-svn: 117665
2010-10-29 17:03:40 +00:00
Mikhail Glushenkov
fdba1308ee
Remove an unnecessary check and an unnecessary temporary.
...
llvm-svn: 117583
2010-10-28 19:33:04 +00:00
Douglas Gregor
21afc3b012
Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance
...
llvm-svn: 116867
2010-10-19 22:13:48 +00:00
NAKAMURA Takumi
fe84f39adb
lib/Support/raw_ostream.cpp: Fix Cygwin's build.
...
setmode is provided by io.h on Cygwin.
llvm-svn: 116784
2010-10-19 01:21:55 +00:00
Daniel Dunbar
418e7046f7
CrashRecoveryContext: Add missing return, so that the signal fires after we our
...
routine is off the stack. Otherwise we show up rather confusingly in the stack
trace.
llvm-svn: 116755
2010-10-18 21:55:18 +00:00
Oscar Fuentes
889c1e7d80
Build with RTTI and exceptions disabled. Only in GCC for now.
...
llvm-svn: 116682
2010-10-17 02:26:16 +00:00
Francois Pichet
a3037c3abd
Always use binary mode for output stream. This is important to prevent unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32.
...
llvm-svn: 116509
2010-10-14 20:30:58 +00:00
Chris Lattner
b9681ad442
fix a bug I introduced, no idea how this didn't repro right.
...
llvm-svn: 116462
2010-10-14 00:30:00 +00:00
Chris Lattner
698661c741
add uadd_ov/usub_ov to apint, consolidate constant folding
...
logic to use the new APInt methods. Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
llvm-svn: 116457
2010-10-14 00:05:07 +00:00
Chris Lattner
2c819b0358
constify these methods.
...
llvm-svn: 116455
2010-10-13 23:54:10 +00:00
Chris Lattner
79bdd88fa4
add a few operations for signed operations that also
...
return an overflow flag.
llvm-svn: 116452
2010-10-13 23:46:33 +00:00
John Thompson
f41f11c37e
Unbreak cmake build.
...
llvm-svn: 116003
2010-10-07 23:12:15 +00:00
Dan Gohman
0df7ea4c24
Move tool_output_file into its own file.
...
llvm-svn: 115973
2010-10-07 20:32:40 +00:00
Dan Gohman
6547a50f49
After printing "Running 'Graphviz' program... " and running the
...
Graphviz program, print something with a newline, to avoid leaving
the line unfinished.
llvm-svn: 115620
2010-10-05 15:30:27 +00:00
Benjamin Kramer
90086abf2c
Grow BumpPtrAllocator's slab size dynamically if we allocated many slabs. This
...
reduces the amount of malloc calls and may reduce memory overhead.
Some numbers:
ASTContext stats, clang -cc1 -disable-free -fsyntax-only Cocoa_h.m
without dynamic growth | with dynamic growth
Number of memory regions: 3158 | Number of memory regions: 432
Bytes used: 12333185 | Bytes used: 12333185
Bytes allocated: 12935168 | Bytes allocated: 12800000
Bytes wasted: 601983 (includes alignment, etc) | Bytes wasted: 466815 (includes alignment, etc)
ASTContext stats, clang -cc1 -disable-free -fsyntax-only on clang's ASTReader.cpp
without dynamic growth | with dynamic growth
Number of memory regions: 10987 | Number of memory regions: 551
Bytes used: 42910356 | Bytes used: 42910356
Bytes allocated: 45002752 | Bytes allocated: 44711936
Bytes wasted: 2092396
(includes alignment, etc) | Bytes wasted: 1801580 (includes alignment, etc)
llvm-svn: 115151
2010-09-30 16:18:28 +00:00
Oscar Fuentes
b4b12535e8
Removed a bunch of unnecessary target_link_libraries.
...
llvm-svn: 114999
2010-09-28 22:39:14 +00:00
Nick Lewycky
5154ee0bca
Make ConstantRange::makeICmpRegion handle all the edge cases properly. This
...
also fixes PR8250.
llvm-svn: 114972
2010-09-28 18:18:36 +00:00
Benjamin Kramer
c758311025
Push twines deeper into SourceMgr's error handling methods.
...
llvm-svn: 114847
2010-09-27 17:42:11 +00:00
Dan Gohman
ca8ebc8de2
Delete an unused declaration.
...
llvm-svn: 114839
2010-09-27 16:54:49 +00:00
Dan Gohman
a0da88931c
Add support for viewing graphviz graphs with xdot.py.
...
llvm-svn: 114832
2010-09-27 16:28:34 +00:00
Duncan Sands
84a3bddfc3
Add better support for environment portion of triple. Original patch by
...
Cameron Esfahani, tweaked to use array_lengthof.
llvm-svn: 114073
2010-09-16 08:25:48 +00:00
Duncan Sands
c8ba8d2085
Some versions of gcc still warn about "ignoring return value ... declared
...
with attribute warn_unused_result" here - suppress the warning harder.
llvm-svn: 114072
2010-09-16 08:20:49 +00:00
Nick Lewycky
4c82c6c6fe
Create PTX backend. Patch by Che-Liang Chiou!
...
llvm-svn: 113235
2010-09-07 18:14:24 +00:00
Nick Lewycky
ad48e01eef
Add completely hokey binary-and and binary-or operations to ConstantRange and
...
teach LazyValueInfo to use them.
llvm-svn: 113196
2010-09-07 05:39:02 +00:00
Nick Lewycky
a35462da3d
Add a new isSignWrappedSet() method to ConstantRange.
...
Fix zeroExtend and signExtend to support empty sets, and to return the smallest
possible result set which contains the extension of each element in their
inputs. For example zext i8 [100, 10) to i16 is now [0, 256), not i16 [100, 10)
which contains 63446 members.
llvm-svn: 113187
2010-09-06 23:52:49 +00:00
Dan Gohman
2adf2f2714
Use the FindProgramByName fallback only with known absolute paths.
...
I wasn't able to convince myself that all GetMainExecutable
implementations always return absolute paths; this prevents
unexpected behavior in case they ever don't.
llvm-svn: 112888
2010-09-02 22:32:38 +00:00
John McCall
7f55c258c6
After some discussion with djg, teach SmallVector to grow from a zero
...
capacity and remove the workaround in SmallVector<T,0>. There are some
theoretical benefits to a N->2N+1 growth policy anyway.
llvm-svn: 112870
2010-09-02 21:55:03 +00:00
NAKAMURA Takumi
4fa39acb53
llvm::FindExecutable(): Retrieve the name with suffix.exe, if available.
...
bugpoint uses it.
llvm-svn: 112803
2010-09-02 03:46:04 +00:00
Dan Gohman
a2233f2801
Make tool_output_file's raw_ostream instance a member variable instead
...
of a base class.
This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.
llvm-svn: 112706
2010-09-01 14:20:41 +00:00
Duncan Sands
1b6744a376
Remove a hack that tries to understand incorrect triples from the
...
Triple class constructor. Only valid triples should now be used
inside LLVM - front-ends are now responsable for rejecting or
correcting invalid target triples. The Triple::normalize method
can be used to straighten out funky triples provided by users.
Give this a whirl through the buildbots to see if I caught all
places where triples enter LLVM.
llvm-svn: 112470
2010-08-30 10:57:54 +00:00
Benjamin Kramer
9bf0380a54
StringRef::compare_numeric also differed from StringRef::compare for characters > 127.
...
llvm-svn: 112189
2010-08-26 15:25:35 +00:00
Benjamin Kramer
b04d4af057
Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases.
...
llvm-svn: 112185
2010-08-26 14:21:08 +00:00
Dan Gohman
3d9ed28046
Use Bits.data() instead of &Bits[0].
...
llvm-svn: 111993
2010-08-24 23:16:53 +00:00
Benjamin Kramer
08fd2cf26a
Avoid O(n*m) complexity in StringRef::find_first(_not)_of(StringRef).
...
- Cache used characters in a bitset to reduce memory overhead to just 32 bytes.
- On my core2 this code is faster except when the checked string was very short
(smaller than the list of delimiters).
llvm-svn: 111817
2010-08-23 18:16:08 +00:00
Benjamin Kramer
d3eb989f37
Update CMake build.
...
llvm-svn: 111669
2010-08-20 18:56:46 +00:00
Dan Gohman
12cbe696e4
Delete SlowOperationInformer, which is no longer used.
...
llvm-svn: 111661
2010-08-20 18:07:37 +00:00
Dan Gohman
e9a469115c
Make outs() close its file when its stream is destructed, so that
...
pending output errors are detected.
llvm-svn: 111643
2010-08-20 16:44:56 +00:00
Dan Gohman
443f2d6426
Delete raw_stdout_ostream and raw_stderr_ostream, which are unused
...
outside of outs() and errs() themselves, and they don't really
need custom classes.
llvm-svn: 111642
2010-08-20 16:39:41 +00:00
Dan Gohman
38adfdd100
Move raw_ostream's Error flag into raw_fd_ostream, as that's the only
...
class which is using it.
llvm-svn: 111639
2010-08-20 16:34:20 +00:00
Dan Gohman
b87ad69350
Introduce a new tool_output_file class, which extends raw_ostream with
...
functionality that most command-line tools need: ensuring that the
output file gets deleted if the tool is interrupted or encounters an
error.
llvm-svn: 111595
2010-08-20 00:48:10 +00:00
Dale Johannesen
370c77c064
Do not assert when reading an exponent out of range.
...
llvm-svn: 111534
2010-08-19 17:58:35 +00:00
Dan Gohman
c825ceefb4
Make raw_fd_ostream consider itself the owner of STDOUT_FILENO when
...
constructed with an output filename of "-". In particular, allow the
file descriptor to be closed, and close the file descriptor in the
destructor if it hasn't been explicitly closed already, to ensure
that any write errors are detected.
llvm-svn: 111436
2010-08-18 22:26:19 +00:00
Dan Gohman
3490ff4002
Tidy.
...
llvm-svn: 111432
2010-08-18 22:04:43 +00:00
Dan Gohman
44790e7aa7
Revert r111321. This doesn't fix a problem.
...
llvm-svn: 111339
2010-08-18 01:34:52 +00:00
Chris Lattner
b91c903f46
stomp some more undefined behavior, PR7775.
...
llvm-svn: 111337
2010-08-18 00:33:47 +00:00
Chris Lattner
7aa9eb16fd
include config.h to get config params, hopefully unbreaking mingw builder.
...
llvm-svn: 111325
2010-08-17 23:22:10 +00:00
Chris Lattner
ce3b2c3f77
Fix the rest of rdar://8318441 which happens when a raw_fd_ostream
...
(e.g. errs()) fails in close() due to (e.g.) a broken pipe. As
previously written, the had_error() flag would get set and then
the raw_ostream dtor would report a fatal error. There is nothing
the client can do about this and we have no way to report the error,
so just eat it.
llvm-svn: 111321
2010-08-17 23:11:56 +00:00
Chris Lattner
6217082dc3
report_fatal_error can't use errs(), because errs() can call
...
into report_fatal_error. Just blast the string to stderr with write(2)
and hope for the best! Part of rdar://8318441
llvm-svn: 111320
2010-08-17 23:03:53 +00:00
Daniel Dunbar
09b0c78918
CrashRecovery: Clear the current context on the first crash, to avoid re-entering it if the cleanup code crashes.
...
llvm-svn: 111309
2010-08-17 22:32:39 +00:00
Daniel Dunbar
b30266ed20
CrashRecovery: Add CrashRecoveryContext::GetCurrent(), so clients can find the active context from anywhere.
...
llvm-svn: 111308
2010-08-17 22:32:37 +00:00
Daniel Dunbar
ff329942cd
CrashRecovery: Make CrashRecoveryContext static methods thread safe.
...
llvm-svn: 111307
2010-08-17 22:32:34 +00:00
Jim Grosbach
a927736604
remove trailing whitespace
...
llvm-svn: 111254
2010-08-17 17:37:22 +00:00
Dan Gohman
9c9ce53b29
Add hooks to FoldingSetTrait to allow specializations to provide
...
implementations of equality comparison and hash computation. This
can be used to optimize node lookup by avoiding creating lots of
temporary ID values just for hashing and comparison purposes.
llvm-svn: 111130
2010-08-16 15:30:39 +00:00
Dan Gohman
27c98e6303
Reverse the order of GetNodeProfile's arguments, for consistency
...
with FoldingSetTrait::Profile.
llvm-svn: 111127
2010-08-16 14:53:42 +00:00
Duncan Sands
501dff76ce
Add a 'normalize' method to the Triple class, which takes a mucked up
...
target triple and straightens it out. This does less than gcc's script
config.sub, for example it turns i386-mingw32 into i386--mingw32 not
i386-pc-mingw32, but it does a decent job of turning funky triples into
something that the rest of the Triple class can understand. The plan
is to use this to canonicalize triple's when they are first provided
by users, and have the rest of LLVM only deal with canonical triples.
Once this is done the special case workarounds in the Triple constructor
can be removed, making the class more regular and easier to use. The
comments and unittests for the Triple class are already adjusted in this
patch appropriately for this brave new world of increased uniformity.
llvm-svn: 110909
2010-08-12 11:31:39 +00:00
Nick Lewycky
d385c22cf3
Clean up ConstantRange a bit:
...
- remove ashr which never worked.
- fix lshr and shl and add tests.
- remove dead function "intersect1Wrapped".
- add a new sub method to subtract ranges, with test.
llvm-svn: 110861
2010-08-11 22:04:36 +00:00
Eric Christopher
87947f7729
Fix a couple of warnings.
...
llvm-svn: 110527
2010-08-08 00:00:34 +00:00
Benjamin Kramer
a7d0ccfe7f
Roll back my last two commits, valgrind complains.
...
llvm-svn: 110518
2010-08-07 13:27:41 +00:00
Benjamin Kramer
591a79fb2f
Kill rarely used std::sort.
...
llvm-svn: 110516
2010-08-07 12:37:00 +00:00
Owen Anderson
a5a3ff586f
Remove layering violation.
...
llvm-svn: 110505
2010-08-07 06:01:13 +00:00
Owen Anderson
1a9078b862
Add an inverse() method to ConstantRange.
...
llvm-svn: 110504
2010-08-07 05:47:46 +00:00
Owen Anderson
07d0637000
Add a convenience constructor.
...
llvm-svn: 110493
2010-08-07 00:42:06 +00:00
Chris Lattner
3db3bb0032
avoid undef behavior on minint, fixing PR7783.
...
llvm-svn: 110114
2010-08-03 16:41:24 +00:00
Daniel Dunbar
c90e82a7f1
Fix -Wmissing-field-initializers warnings.
...
llvm-svn: 109872
2010-07-30 17:49:04 +00:00
Daniel Dunbar
4a338e3dc4
CrashRecovery: Use ThreadLocal::erase() instead of set(0).
...
llvm-svn: 109752
2010-07-29 15:24:21 +00:00
Daniel Dunbar
9789f81eb4
Make sure to include config.h, to pickup LLVM_ON_WIN32.
...
llvm-svn: 109721
2010-07-29 01:52:04 +00:00
Daniel Dunbar
af77e22b36
CrashRecoveryContext: Add a simple POSIX implementation.
...
- This works, but won't handle crashes on stack overflow, or signals delivered
to a thread other than the one that crashed. The latter is particular annoying
on Darwin, because SIGABRT tends to go to the main thread.
llvm-svn: 109717
2010-07-29 01:21:47 +00:00
Douglas Gregor
b7b5a7dff0
Unbreak my CMake build, say you'll compile for me again...
...
llvm-svn: 109598
2010-07-28 17:17:46 +00:00
Daniel Dunbar
19a3b37441
Support: Add CrashRecoveryContext helper object.
...
- Designed as a simple wrapper to allow clients to attempt to catch crashes
(memory errors, assertion violations, etc.) and do some kind of recovery.
- Currently doesn't actually attempt to catch crashes.
llvm-svn: 109586
2010-07-28 15:40:20 +00:00
Benjamin Kramer
92d8998348
Don't pass StringRef by reference.
...
llvm-svn: 108366
2010-07-14 22:38:02 +00:00
Chris Lattner
ca97c92eb4
add some triple for minix, patch by Kees van Reeuwijk from PR7582
...
llvm-svn: 107785
2010-07-07 15:52:27 +00:00
Duncan Sands
7b90966d4a
Rather than giving SmallPtrSetImpl a member field SmallArray which is magically
...
replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a
pointer to the start of the storage, and have SmallPtrSet pass in the value to use.
This has the disadvantage that SmallPtrSet becomes bigger by one pointer. It has
the advantage that it no longer uses tricky C++ rules, and is clearly correct while
I'm not sure the previous version was. This was inspired by g++-4.6 pointing out
that SmallPtrSetImpl was writing off the end of SmallArray, which it was. Since
SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to
valid memory. But it was writing off the end of the declared array type - sounds
kind of dubious to me, like it sounded dubious to g++-4.6. Maybe g++-4.6 is wrong
and this construct is perfectly valid and correctly compiled by all compilers, but
I think it is better to avoid the whole can of worms by avoiding this construct.
llvm-svn: 107285
2010-06-30 15:02:37 +00:00
Eric Christopher
7f103a2653
Fix thinko.
...
llvm-svn: 107042
2010-06-28 18:33:48 +00:00
Eric Christopher
51f2908328
Pull in the libCrashReporterClient.a information with a warning comment.
...
Remove library check and regenerate configure.
llvm-svn: 107028
2010-06-28 18:25:51 +00:00
Benjamin Kramer
58e6c2eded
Rewrite MemoryBuffer::getSTDIN to use read(2) and a SmallVector buffer.
...
llvm-svn: 106856
2010-06-25 16:07:18 +00:00
Benjamin Kramer
948dd57945
Bring back the empty vector workaround I removed in r106839. Looks like MSVC needs it.
...
llvm-svn: 106841
2010-06-25 12:51:01 +00:00
Benjamin Kramer
ce2a92220f
Tweak MemoryBuffer to allocate the class itself, the name and possibly the
...
buffer in the same chunk of memory.
2 less mallocs for every uninitialized MemoryBuffer and 1 less malloc for every
MemoryBuffer pointing to a memory range translate into 20% less mallocs on
clang -cc1 -Eonly Cocoa_h.m.
llvm-svn: 106839
2010-06-25 11:50:40 +00:00
Dan Gohman
b377e2828d
Add overloads for getFile and getFileOrSTDIN which take a const char *
...
instead of a StringRef, avoiding the need to copy the string in the
common case.
llvm-svn: 106754
2010-06-24 16:25:50 +00:00
Eric Christopher
e9c1bb6cb1
Look for and use a different darwin crash reporter library.
...
llvm-svn: 106576
2010-06-22 21:01:04 +00:00
Dan Gohman
2ceaa71bdb
Add an explicit keyword.
...
llvm-svn: 106538
2010-06-22 13:53:29 +00:00
Benjamin Kramer
bf5c3d42ba
Use calloc instead of new/memset, it is more efficient when the set is very large.
...
llvm-svn: 106390
2010-06-19 17:00:31 +00:00
Dan Gohman
6e681a5fbe
Give NamedRegionTimer an Enabled flag, allowing all its clients to
...
switch from this:
if (TimePassesIsEnabled) {
NamedRegionTimer T(Name, GroupName);
do_something();
} else {
do_something(); // duplicate the code, this time without a timer!
}
to this:
{
NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled);
do_something();
}
llvm-svn: 106285
2010-06-18 15:56:31 +00:00
Jason Molenda
dd6a4cabf6
Add the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and
...
DW_OP_breg[0..31] to Dwarf.h.
Add "DW_" prefix to the llvm::dwarf::*String methods which did not
already have them in Dwarf.cpp.
llvm-svn: 106197
2010-06-17 01:23:24 +00:00
Daniel Dunbar
e22295e8a6
fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and
...
no tolerance is set.
llvm-svn: 106033
2010-06-15 19:20:30 +00:00
Daniel Dunbar
b645fa13a9
fpcmp: Fix a possible infinite loop when comparing something like:
...
1..19 ok
to
1..20 o k
(yes, the odd space is necessary).
llvm-svn: 106032
2010-06-15 19:20:28 +00:00
Daniel Dunbar
5729f51410
Use const_iterator where appropriate.
...
llvm-svn: 105620
2010-06-08 17:21:57 +00:00
Daniel Dunbar
f2363de7ad
DeltaAlgorithm: Tweak split to split by first/second half instead of even/odd, since adjacent changes are more likely to be related.
...
llvm-svn: 105613
2010-06-08 16:21:26 +00:00
Daniel Dunbar
579ba2ac42
ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm.
...
- This can give substantial speedups in the delta process for inputs we can construct dependency information for.
llvm-svn: 105612
2010-06-08 16:21:22 +00:00
Benjamin Kramer
4e36e5bb4c
Use realloc instead of malloc+memcpy when growing a POD SmallVector. A smart
...
realloc implementation can try to expand the allocated memory block in-place,
avoiding the copy.
llvm-svn: 105605
2010-06-08 11:44:30 +00:00
Dan Gohman
fb85820f9a
Minor code simplification.
...
llvm-svn: 104959
2010-05-28 16:50:23 +00:00
Dan Gohman
feaeb36edf
Fix a redundant-return warning.
...
llvm-svn: 104958
2010-05-28 16:50:01 +00:00
Dan Gohman
c36b1f35f0
Add basic error checking to MemoryBuffer::getSTDIN.
...
llvm-svn: 104855
2010-05-27 17:31:51 +00:00
Jakob Stoklund Olesen
d1d7ed63ff
Add StringRef::compare_numeric and use it to sort TableGen register records.
...
This means that our Registers are now ordered R7, R8, R9, R10, R12, ...
Not R1, R10, R11, R12, R2, R3, ...
llvm-svn: 104745
2010-05-26 21:47:28 +00:00
Daniel Dunbar
c120ffe3f6
Fix __crashreport_info__ declaration.
...
llvm-svn: 104300
2010-05-20 23:50:19 +00:00
Dan Gohman
744c96dd48
Add a comment explaining why this code uses Append mode.
...
llvm-svn: 104095
2010-05-19 01:21:34 +00:00
Dan Gohman
dea5310433
Usage of O_NONBLOCK in bjam is now confirmed as a bug and fixed upstream.
...
Update the comment.
llvm-svn: 104021
2010-05-18 15:25:14 +00:00
Chris Lattner
9e01b615a4
improve portability to systems that don't have round, patch by
...
Evzen Muller!
llvm-svn: 103877
2010-05-15 17:11:55 +00:00
Daniel Dunbar
dac182450b
Add new configure option, --disable-timestamps, intended to turn off anything which would mess up binary/object comparisons. Currently:
...
- Disables 'Built on ...' in 'foo --version'.
- Disables timestamps from being embedded into .dir files.
llvm-svn: 103423
2010-05-10 20:11:56 +00:00
Daniel Dunbar
401d4c9341
Run interrupt routines as part of report_fatal_error, since we are failing
...
ungracefully.
llvm-svn: 103334
2010-05-08 02:10:36 +00:00
Dan Gohman
d351116be0
Handle the case where open(2) or close(2) is interrupted by a signal when
...
automatic syscall restarting is disabled.
Also, fix the build on systems which don't define EWOULDBLOCK.
llvm-svn: 103158
2010-05-06 02:06:20 +00:00
Dan Gohman
ef969f3539
Handle EWOULDBLOCK as EAGAIN. And add a comment explaining why
...
EAGAIN and EWOULDBLOCK are used here.
Also, handle the case where a write call is interrupted after
some data has already been written.
llvm-svn: 103153
2010-05-06 01:27:36 +00:00
Chris Lattner
d7f69cb7ef
Implement rdar://7415680 - Twine integer support lacks greatness
...
Microoptimize Twine's with unsigned and int to not pin their value to
the stack. This saves stack space in common cases and allows mem2reg
in the caller. A simple example is:
void foo(const Twine &);
void bar(int x) {
foo("xyz: " + Twine(x));
}
Before:
__Z3bari:
subq $40, %rsp
movl %edi, 36(%rsp)
leaq L_.str3(%rip), %rax
leaq 36(%rsp), %rcx
leaq 8(%rsp), %rdi
movq %rax, 8(%rsp)
movq %rcx, 16(%rsp)
movb $3, 24(%rsp)
movb $7, 25(%rsp)
callq __Z3fooRKN4llvm5TwineE
addq $40, %rsp
ret
After:
__Z3bari:
subq $24, %rsp
leaq L_.str3(%rip), %rax
movq %rax, (%rsp)
movslq %edi, %rax
movq %rax, 8(%rsp)
movb $3, 16(%rsp)
movb $7, 17(%rsp)
leaq (%rsp), %rdi
callq __Z3fooRKN4llvm5TwineE
addq $24, %rsp
ret
It saves 16 bytes of stack and one instruction in this case.
llvm-svn: 103107
2010-05-05 18:40:33 +00:00
Benjamin Kramer
ce84a2558c
Try again if write(2) reports an recoverable error.
...
This should fix mysteriously crashing boost regression tests when stderr is
managed by bjam (PR7043).
llvm-svn: 103085
2010-05-05 15:17:47 +00:00
Devang Patel
561fa8490e
Fix typo. add a test case.
...
llvm-svn: 101812
2010-04-19 20:31:39 +00:00
Devang Patel
6188093cca
Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag.
...
llvm-svn: 101805
2010-04-19 19:14:02 +00:00
Chris Lattner
1049e1ce1f
reduce indentation
...
llvm-svn: 101692
2010-04-18 03:35:23 +00:00
Dan Gohman
b29cda9b3c
Fix a bunch of namespace polution.
...
llvm-svn: 101376
2010-04-15 17:08:50 +00:00
Benjamin Kramer
55cfaa37de
BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)
...
llvm-svn: 101138
2010-04-13 16:38:06 +00:00
Benjamin Kramer
5b0650bf6e
Let BumpPtrAllocator lazily allocate the first slab.
...
We have some code in llvm and clang where a BumpPtrAllocator is declared in a
class but never used in the common case. Stop wasting memory there.
llvm-svn: 101130
2010-04-13 14:41:51 +00:00
Chris Lattner
33154c1fc6
Fix PR6826: GraphWriter delete the generated file before "dotty" load it,
...
patch by 'ether'.
llvm-svn: 101116
2010-04-13 04:35:39 +00:00
Chris Lattner
c86cdc7d47
add minix support, patch by Kees van Reeuwijk! PR6797
...
llvm-svn: 100895
2010-04-09 20:45:04 +00:00
Chris Lattner
5c289f217b
clean this up, fix std::min ambiguity on some platforms.
...
llvm-svn: 100894
2010-04-09 20:43:54 +00:00
Benjamin Kramer
53dd088b58
Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free.
...
llvm-svn: 100767
2010-04-08 15:25:57 +00:00
Chris Lattner
59c5753174
rename llvm_install_error_handler -> install_fatal_error_handler
...
and friends.
llvm-svn: 100717
2010-04-07 23:12:29 +00:00
Chris Lattner
2104b8d36e
rename llvm::llvm_report_error -> llvm::report_fatal_error
...
llvm-svn: 100709
2010-04-07 22:58:41 +00:00
Chris Lattner
97c4cb8947
enhance SMDiagnostic to also maintain a pointer to the SourceMgr.
...
Add a simplified constructor for clients that don't have locations
like "file not found" errors.
llvm-svn: 100538
2010-04-06 18:06:18 +00:00
Chris Lattner
654091391b
give the SourceMgr object a cookie.
...
llvm-svn: 100504
2010-04-06 00:33:43 +00:00
Chris Lattner
3c799811c1
Give llvm::SourceMgr the ability to have a client-specified
...
diagnostic handler.
llvm-svn: 100503
2010-04-06 00:26:48 +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
Owen Anderson
f93bdd1024
Push const through the regex engine. Fixes some of the warnings in PR6616.
...
llvm-svn: 100438
2010-04-05 17:50:20 +00:00
Benjamin Kramer
15630f8238
Remove accidental include and add a comment.
...
llvm-svn: 100107
2010-04-01 14:39:55 +00:00
Benjamin Kramer
10b0f3b314
Various improvements to MemoryBuffer::getFile:
...
- Use a RAII object to close the FD.
- Use sys::StrError instead of thread-unsafe strerror calls.
- Recover gracefully if read returns zero. This works around an issue on
DragonFlyBSD where /dev/null has an st_size of 136 but we can't read 136 bytes
from it.
llvm-svn: 100106
2010-04-01 14:35:22 +00:00
Benjamin Kramer
04c713dd45
Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allows
...
only a single type of object to be allocated. Use it to make VNInfo destruction
typesafe.
llvm-svn: 99919
2010-03-30 20:16:45 +00:00
Douglas Gregor
83fd0156a9
Introduce namespace-scope functions to enable LLVM statistics without
...
passing the command-line parameter "-stats" and to print the resulting
statistics without calling llvm_shutdown().
llvm-svn: 99893
2010-03-30 17:32:08 +00:00
Torok Edwin
8061bb141e
Reapply r99881 with some fixes: only call destructor in releaseMemory!
...
llvm-svn: 99883
2010-03-30 11:17:48 +00:00
Torok Edwin
a2d1dc42e1
Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9.
...
llvm-svn: 99882
2010-03-30 10:25:08 +00:00
Torok Edwin
ba6d13c0ea
Introduce another Reset() method in BumpPtrAllocator that calls a destructor
...
on all objects it has allocated, if they are all of the same size and alignment.
Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653).
valnos is not reliable for this purpose, as seen in r99400
(which still leaked, and sometimes caused double frees).
llvm-svn: 99881
2010-03-30 10:08:26 +00:00
Chris Lattner
39e56a05f7
stringref'ize Timer apis
...
llvm-svn: 99877
2010-03-30 05:34:02 +00:00
Chris Lattner
90fe73dc92
finally, maintain a global list of timer groups, allowing us to
...
implement TimerGroup::printAll, which prints and resets all active
timers.
llvm-svn: 99876
2010-03-30 05:27:58 +00:00
Chris Lattner
4cd6571fef
add a new TimerGroup::print method, and refactor away the bogus
...
TimerGroup copy ctor and assignment operator.
llvm-svn: 99875
2010-03-30 05:20:02 +00:00
Chris Lattner
6cbd8d118e
rename GetLibSupportInfoOutputFile -> CreateInfoOutputFile and
...
have it always return a new stream to simplify clients.
llvm-svn: 99874
2010-03-30 05:01:08 +00:00
Chris Lattner
dcd68b7a65
if a timergroup is destroyed before its timers, print times.
...
llvm-svn: 99873
2010-03-30 04:58:26 +00:00
Chris Lattner
9a608d248e
change TimerGroup to keep a linked list of active timers
...
instead of just a count of them, and refactor the guts of
report printing out of removeTimer into its own method.
Refactor addTimerToPrint away.
llvm-svn: 99872
2010-03-30 04:40:01 +00:00
Chris Lattner
707431cf26
reapply my timer rewrite with a change for PassManager to store
...
timers by pointer instead of by-value.
llvm-svn: 99871
2010-03-30 04:03:22 +00:00
Chris Lattner
ec8ef9b643
revert r99862 which is causing FNT failures.
...
llvm-svn: 99870
2010-03-30 03:57:00 +00:00
Chris Lattner
57a0542397
fairly major rewrite of various timing related stuff.
...
llvm-svn: 99862
2010-03-30 02:38:19 +00:00
Chris Lattner
dcd7f927bd
move a function into a more logical place in the file
...
llvm-svn: 99842
2010-03-29 21:34:06 +00:00
Chris Lattner
09a4074869
remove support for per-time peak memory tracking, this
...
isn't used by anyone and is better exposed as a non-per-timer
thing. Also, stop including System/Mutex.h in Timer.h
llvm-svn: 99841
2010-03-29 21:28:41 +00:00
Chris Lattner
b355db7877
various timer fixes: move operator= out of line,
...
eliminate the per-timer lock (timers should be
externally locked if needed), the info-output-stream
can never be dbgs(), so drop the check. Make some
stuff private.
llvm-svn: 99839
2010-03-29 21:24:52 +00:00
Chris Lattner
5092a6de8e
s/.../.
...
llvm-svn: 99834
2010-03-29 20:40:19 +00:00
Chris Lattner
fafa57a82a
move code around and improve indentation, no functionality change.
...
llvm-svn: 99831
2010-03-29 20:35:01 +00:00
Chris Lattner
35a069b3a5
improve portability to minix, patch by
...
Kees van Reeuwijk for PR6704
llvm-svn: 99677
2010-03-26 23:54:15 +00:00
Dan Gohman
b452d4e9e4
Fix minor style issues.
...
llvm-svn: 99414
2010-03-24 19:38:02 +00:00
Duncan Sands
8712da360b
Fix comment typo.
...
llvm-svn: 99392
2010-03-24 09:05:14 +00:00
Dan Gohman
6556c8962c
Add the ability to "intern" FoldingSetNodeID data into a
...
BumpPtrAllocator-allocated region to allow it to be stored in a more
compact form and to avoid the need for a non-trivial destructor call.
Use this new mechanism in ScalarEvolution instead of
FastFoldingSetNode to avoid leaking memory in the case where a
FoldingSetNodeID uses heap storage, and to reduce overall memory
usage.
llvm-svn: 98829
2010-03-18 16:16:38 +00:00
Douglas Gregor
6d7d7b5197
Extend MemoryBuffer::getFile() to take an optional "stat" structure
...
pointer. If given, the structure will be set with the stat information from
the file actually read.
llvm-svn: 98575
2010-03-15 20:32:14 +00:00
Chris Lattner
4c1e4db3ff
make APFloat::toString be const.
...
llvm-svn: 97883
2010-03-06 19:20:13 +00:00
Chris Lattner
6783832ec2
add an assertion requested on llvmdev.
...
llvm-svn: 97769
2010-03-05 00:49:08 +00:00
John McCall
c6dbe30e88
Don't potentially read past the end of the fill data when making a NaN from
...
an APInt.
llvm-svn: 97467
2010-03-01 18:38:45 +00:00
John McCall
c12b133d00
Properly clear all the extra bits in a significand when making a NaN from an
...
APInt. Be certain to set the integer bit in an x87 extended-precision
significand so that we don't accidentally make a pseudo-NaN.
llvm-svn: 97382
2010-02-28 12:49:50 +00:00
John McCall
512b650210
Add an override to StringRef::getAsInteger which parses into an APInt.
...
It gets its own implementation totally divorced from the (presumably
performance-sensitive) routines which parse into a uint64_t.
Add APInt::operator|=(uint64_t), which is situationally much better than
using a full APInt.
llvm-svn: 97381
2010-02-28 09:55:58 +00:00
John McCall
dcb9a7ad3d
Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-width
...
payloads. APFloat's internal folding routines always make QNaNs now,
instead of sometimes making QNaNs and sometimes SNaNs depending on the
type.
llvm-svn: 97364
2010-02-28 02:51:25 +00:00
John McCall
b42cc681ba
Make APFloat's string-parsing routines a bit safer against very large exponents.
...
llvm-svn: 97278
2010-02-26 22:20:41 +00:00
Benjamin Kramer
7f98b46dc1
Replace a temporary std::string with SmallString.
...
llvm-svn: 97259
2010-02-26 20:28:29 +00:00
Wesley Peck
e4801e49c9
Adding the MicroBlaze backend.
...
The MicroBlaze is a highly configurable 32-bit soft-microprocessor for
use on Xilinx FPGAs. For more information see:
http://www.xilinx.com/tools/microblaze.htm
http://en.wikipedia.org/wiki/MicroBlaze
The current LLVM MicroBlaze backend generates assembly which can be
compiled using the an appropriate binutils assembler.
llvm-svn: 96969
2010-02-23 19:15:24 +00:00
Jeffrey Yasskin
cc2e3d22df
Fix viewCFG on Linux.
...
llvm-svn: 96834
2010-02-23 00:04:53 +00:00
Dan Gohman
30ff721f09
Fix various doxygen warnings.
...
llvm-svn: 96779
2010-02-22 04:10:52 +00:00
Duncan Sands
142b9edaf1
Refer to -help instead of --help since this is what tools themselves say.
...
Also, have tools output -help-hidden rather than refer to --help-hidden,
for consistency, and likewise adjust documentation. This doesn't change
every mention of --help, only those which seemed clearly safe.
llvm-svn: 96578
2010-02-18 14:08:13 +00:00
Daniel Dunbar
eb85711e43
Add Regex::sub, for doing regular expression substitution with backreferences.
...
llvm-svn: 96503
2010-02-17 20:08:42 +00:00
Chris Lattner
115158fa4f
enhance raw_svector_ostream::write_impl to work with unbuffered streams,
...
which may call write_impl on things that are not the usual buffer.
llvm-svn: 96209
2010-02-15 02:18:26 +00:00
Chris Lattner
f733d75892
make PadToColumn return the stream so you can use:
...
OS.PadToColumn(42) << "foo";
llvm-svn: 96208
2010-02-15 02:17:50 +00:00
Dan Gohman
4a618827de
Fix "the the" and similar typos.
...
llvm-svn: 95781
2010-02-10 16:03:48 +00:00
Chris Lattner
8228b11abc
add support for the sparcv9-*-* target triple to turn on
...
64-bit sparc codegen. Patch by Nathan Keynes!
llvm-svn: 95293
2010-02-04 06:34:01 +00:00
John McCall
df951bddb8
Make APInt::countLeadingZerosSlowCase() treat the contents of padding bits
...
as undefined. Fixes an assertion in APFloat::toString noticed by Dale.
llvm-svn: 95196
2010-02-03 03:42:44 +00:00
Benjamin Kramer
ef14f80e95
Fix MSVC build.
...
llvm-svn: 94809
2010-01-29 15:19:06 +00:00
Benjamin Kramer
b17c58674e
Convert some users of ftostr to raw_ostream.
...
llvm-svn: 94808
2010-01-29 14:42:22 +00:00
Benjamin Kramer
6bee24ae9a
Use llvm::format instead of ftostr (which just calls sprintf).
...
llvm-svn: 94807
2010-01-29 14:40:33 +00:00
Benjamin Kramer
29063eac23
Replace strcpy with memcpy when we have the length around anyway.
...
llvm-svn: 94746
2010-01-28 18:04:38 +00:00
Mikhail Glushenkov
76be2d1cca
Make SMDiagnostic::Print a const method.
...
llvm-svn: 94672
2010-01-27 10:13:28 +00:00
Mikhail Glushenkov
84afae33a9
Trailing whitespace.
...
llvm-svn: 94671
2010-01-27 10:13:11 +00:00
Dan Gohman
3f8ed9e1ae
Fix a typo that several people pointed out. Also, address the case of
...
wrapping that Duncan pointed out.
llvm-svn: 94547
2010-01-26 15:56:18 +00:00
Dan Gohman
5325efc5af
Add a comment about a missed opportunity.
...
llvm-svn: 94507
2010-01-26 04:13:15 +00:00
Dan Gohman
837ada7692
Print empty and full sets specially.
...
llvm-svn: 94506
2010-01-26 04:12:55 +00:00
Chris Lattner
1386a88c95
Changes to fix buffering that I forgot to commit with previous patch.
...
llvm-svn: 94222
2010-01-22 21:16:10 +00:00
Chris Lattner
8fa0e35f97
add a new MCAsmStreamer::GetCommentOS method to simplify stuff
...
that doesn't want to use twines.
llvm-svn: 94199
2010-01-22 19:17:48 +00:00
Dan Gohman
7c6759094a
Avoid printing a spurious semicolon when there is no filename.
...
llvm-svn: 94071
2010-01-21 10:13:27 +00:00
David Greene
35dca86659
Fix an infinite recursion problem. dbgs() should return errs() in
...
release mode.
llvm-svn: 94001
2010-01-20 15:27:19 +00:00
Benjamin Kramer
608fd2b606
Fix refacto reported by Nicolas Geoffray.
...
llvm-svn: 93723
2010-01-18 12:40:05 +00:00
Bill Wendling
efda1e4f0f
Temporarily revert r93581. It was causing failures in the ExecutionEngine tests
...
on the build bots.
llvm-svn: 93606
2010-01-16 01:06:58 +00:00
Ted Kremenek
12821816c6
BumpPtrAllocator: Have the DefaultSlabAllocator created at runtime, not initialization time. This removes one of the 'init_constructors' reported in <rdar://problem/7545356>.
...
llvm-svn: 93581
2010-01-15 23:29:34 +00:00
Benjamin Kramer
2e06b93f43
Introduce Twine::toStringRef, a variant of toVector which avoids the copy if the
...
twine can be represented as a single StringRef. Use the new methode to simplify
some twine users.
llvm-svn: 93317
2010-01-13 12:45:23 +00:00
Benjamin Kramer
93ad708a46
Remove unused string functions.
...
llvm-svn: 93183
2010-01-11 20:33:12 +00:00
Benjamin Kramer
6bf8240762
Add StrInStrNoCase, a StringRef version of CStrInCStrNoCase.
...
llvm-svn: 93174
2010-01-11 19:45:18 +00:00
Benjamin Kramer
0ef736fef2
Turns out llvm-gcc still uses SplitString with a vector. Add it back until I
...
have a fix.
llvm-svn: 93163
2010-01-11 18:44:35 +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
Duncan Sands
a230552b94
Suppress use of uninitialized variable warning.
...
llvm-svn: 93046
2010-01-09 08:30:33 +00:00
Douglas Gregor
47ed966813
More trivial optimizations to a function well outside the critical path
...
llvm-svn: 92896
2010-01-07 02:24:06 +00:00
Douglas Gregor
09470e6a4e
Switch StringRef::edit_distance over to using raw pointers, since both
...
std::vector and llvm::SmallVector have annoying performance
tradeoffs. No, I don't expect this to matter, and now it won't.
llvm-svn: 92884
2010-01-07 00:51:54 +00:00
David Greene
9d24d0c3e6
Change errs() to dbgs().
...
llvm-svn: 92646
2010-01-05 01:29:03 +00:00
David Greene
649efc4656
Change errs() to dbgs().
...
llvm-svn: 92645
2010-01-05 01:28:58 +00:00
David Greene
f32fcb4d31
Change errs() to dbgs().
...
llvm-svn: 92643
2010-01-05 01:28:52 +00:00
David Greene
b28b1ed1a8
Change errs() to dbgs().
...
llvm-svn: 92642
2010-01-05 01:28:47 +00:00
David Greene
93a522baba
Change errs() to dbgs().
...
llvm-svn: 92641
2010-01-05 01:28:43 +00:00
David Greene
f92e6718bc
Change errs() to dbgs().
...
llvm-svn: 92640
2010-01-05 01:28:40 +00:00
David Greene
de7b353652
Change errs() to dbgs().
...
llvm-svn: 92638
2010-01-05 01:28:32 +00:00
David Greene
80604d5f09
Change errs() to dbgs().
...
llvm-svn: 92637
2010-01-05 01:28:29 +00:00
Douglas Gregor
5639af4eac
Document the edit-distance algorithm used in StringRef, switch it over
...
to SmallVector, and add a unit test.
llvm-svn: 92340
2009-12-31 04:24:34 +00:00
Douglas Gregor
165882c240
Implement edit distance for StringRef
...
llvm-svn: 92309
2009-12-30 17:23:44 +00:00
Chris Lattner
93163c401e
Do not crash when .ll printing metadata that smells like debug info, but isn't.
...
llvm-svn: 92268
2009-12-29 21:17:33 +00:00
Chris Lattner
0709a2790a
fix indentation, fit in 80 cols.
...
llvm-svn: 92267
2009-12-29 21:09:57 +00:00
Chris Lattner
3b32672733
fix .cpp file to not wrap the entire file in namespace blocks.
...
llvm-svn: 92250
2009-12-29 07:28:33 +00:00
John McCall
dd5044ac55
Implement support for converting to string at "natural precision", and fix some
...
major bugs in long-precision conversion.
llvm-svn: 92150
2009-12-24 23:18:09 +00:00
John McCall
e6212ace38
Substantially optimize APFloat::toString() by doing a single large divide to
...
cut the significand down to the desired precision *before* entering the
core divmod loop. Makes the overall algorithm logarithmic in the exponent.
There's still a lot of room for improvement here, but this gets the
performance back down to acceptable-for-diagnostics levels, even for
long doubles.
negligible, even on long doubles.
llvm-svn: 92130
2009-12-24 12:16:56 +00:00
John McCall
29b5c284ae
Add accessors for the largest-magnitude, smallest-magnitude, and
...
smallest-normalized-magnitude values in a given FP semantics.
Provide an APFloat-to-string conversion which I am quite ready to admit could
be much more efficient.
llvm-svn: 92126
2009-12-24 08:56:26 +00:00
John McCall
bd8d1e35a6
Set Remainder before Quotient in case Quotient and LHS alias. The new
...
order should be immune to such problems.
llvm-svn: 92124
2009-12-24 08:52:06 +00:00
David Greene
b760d0cde9
Clarify how dbgs() operates.
...
llvm-svn: 92083
2009-12-23 23:23:15 +00:00
Chris Lattner
bd7b13f07f
sizeof(char) is always 1.
...
llvm-svn: 92079
2009-12-23 23:03:24 +00:00
Douglas Gregor
3ab9e5077f
De-bork CMake build
...
llvm-svn: 92003
2009-12-23 17:03:46 +00:00
David Greene
64506db8e8
Provide dbgs(), a circular-buffering debug output stream. By default it
...
simply passes output to errs(). If -debug-buffer-size=N is set N > 0,
dbgs() buffers its output until program termination and dumps the last N
characters sent to it. This is handy when debugging very large inputs.
llvm-svn: 92002
2009-12-23 16:39:06 +00:00
David Greene
7ffbb50edf
Add circular_raw_ostream, which buffers its output in a circular queue
...
and outputs it when explicitly flushed. The intent is to use it in
situations such as debug output logging where a signal handler can take
care of flushing the buffer at program termination.
llvm-svn: 92001
2009-12-23 16:08:15 +00:00
Chris Lattner
dd3e9aaad3
Make some methods const. The only interesting change here is that
...
it changes raw_fd_ostream::preferred_buffer_size to return zero on
a scary stat failure instead of setting the stream to an error state.
This method really should not mutate the stream.
llvm-svn: 91740
2009-12-19 01:38:42 +00:00
Chris Lattner
4ea86c460a
now that libsystem no longer uses SmallVector, we can move
...
SmallVectorBase::grow_pod out of line, finally satisfying PR3758.
llvm-svn: 91529
2009-12-16 08:44:24 +00:00
Dan Gohman
fd5de58ec1
Micro-optimize these functions in the case where they are not inlined.
...
llvm-svn: 91316
2009-12-14 19:32:31 +00:00
Daniel Dunbar
d333139411
DeltaAlgorithm: Add a virtual destructor and home.
...
llvm-svn: 90957
2009-12-09 07:19:48 +00:00
Daniel Dunbar
c5b2ac4d97
Fix typo and add missing include.
...
llvm-svn: 90557
2009-12-04 08:17:07 +00:00
Dan Gohman
083f229ba2
Print a newline after the Args: line so that unrelated errs() output doesn't
...
end up on the same line.
llvm-svn: 90473
2009-12-03 19:03:18 +00:00
Daniel Dunbar
ff53d4694c
Add an implementation of the delta debugging algorithm.
...
- This is a pretty slow / memory intensive implementation, and I will likely
change it to an iterative model, but it works.
llvm-svn: 90447
2009-12-03 11:12:42 +00:00
Chris Lattner
0e3b78a6c2
return more useful error messages by using strerror to format errno
...
instead of returning an ambiguous reason.
llvm-svn: 90275
2009-12-01 22:51:41 +00:00
Douglas Gregor
7baad7365a
Perform explicit instantiations in the proper namespace, since Clang diagnoses this ill-formity.
...
llvm-svn: 89846
2009-11-25 06:04:18 +00:00
Daniel Dunbar
5a308f5399
SourceMgr: Add ShowLine argument to PrintMessage, to allow suppressing the source line output.
...
llvm-svn: 89627
2009-11-22 22:08:00 +00:00
Mikhail Glushenkov
5551c207cd
Move the handling of CommaSeparated options into ProvideOption.
...
Makes '--comma-separated val1,val2' mean the same thing as
'--comma-separated=val1,val2' (that is, 'val1' and 'val2' are not lumped
together as 'val1,val2'). Also declutters the main loop a bit.
llvm-svn: 89463
2009-11-20 17:23:17 +00:00
Daniel Dunbar
956c1581fa
Use StringRef::min instead of std::min.
...
llvm-svn: 89372
2009-11-19 18:53:18 +00:00
Mikhail Glushenkov
1d9f1fe7cc
Trailing whitespace.
...
llvm-svn: 89364
2009-11-19 17:29:36 +00:00
Edward O'Callaghan
ba993b8add
Add PS3 Triple class, Credit to John Thompson.
...
llvm-svn: 89339
2009-11-19 11:59:00 +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
Benjamin Kramer
713fd3564a
Revert CPU detection code to return "generic" instead of an empty string in case
...
of failure. The x86 target didn't like empty cpu names and broke x86 tests on
non-x86 buildbots.
llvm-svn: 89111
2009-11-17 17:57:04 +00:00
Owen Anderson
759d72dc8e
Fix a race condition in the Timer class.
...
llvm-svn: 89056
2009-11-17 07:06:10 +00:00
Edward O'Callaghan
e3f3ca70e6
Add PSP OS Target to Triple, Credit to Bruno Cardoso Lopes.
...
llvm-svn: 88849
2009-11-15 10:18:17 +00:00
Daniel Dunbar
d90a9a04f3
Report the detected host CPU in --version.
...
llvm-svn: 88813
2009-11-14 21:36:07 +00:00
Rafael Espindola
ff2c72b858
Distinguish "a," from "a". The first one splits into "a" + "" and the second one into
...
"a" + 0.
llvm-svn: 87084
2009-11-13 04:55:09 +00:00
Rafael Espindola
7c6854995d
Switch to smallvector. Also fix issue with using unsigend for MaxSplit.
...
llvm-svn: 87068
2009-11-13 02:18:25 +00:00
Rafael Espindola
d554e44092
Add a new split method to StringRef that puts the substrings in a vector.
...
llvm-svn: 87058
2009-11-13 01:24:40 +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
Nuno Lopes
f8fcac7470
fix crash in my previous patch
...
llvm-svn: 86987
2009-11-12 15:10:33 +00:00
Nuno Lopes
60d5b1cfdb
implement shl, ashr, and lshr methods. shl is not fully implemented as it is quite tricky.
...
llvm-svn: 86986
2009-11-12 14:53:53 +00:00
Sandeep Patel
598825e832
Show command-line args and features passed into backend in debug output. Approved by Evan Cheng.
...
llvm-svn: 86797
2009-11-11 03:23:46 +00:00
Daniel Dunbar
9806e4ab20
Add From arguments to StringRef search functions, and tweak doxyments.
...
Also, add unittests for find_first_of and find_first_not_of.
llvm-svn: 86770
2009-11-11 00:28:53 +00:00
Daniel Dunbar
124fc5e252
Fix MemoryBuffer::getSTDIN to *not* return null if stdin is empty, this is a lame API.
...
Also, Stringrefify some more MemoryBuffer functions, and add two performance FIXMEs.
llvm-svn: 86630
2009-11-10 00:43:58 +00:00
Nuno Lopes
640eb70bee
add zextOrTrunc and sextOrTrunc methods, that are similar to the ones in APInt
...
llvm-svn: 86549
2009-11-09 15:36:28 +00:00
Xerxes Ranby
7c16a89ebf
Make lib/Support/Debug.cpp SetCurrentDebugType implementation part of llvm namespace to match function declaration in Debug.h.
...
llvm-svn: 86544
2009-11-09 14:50:34 +00:00
Mikhail Glushenkov
358607dfa3
Trailing whitespace.
...
llvm-svn: 86347
2009-11-07 06:33:12 +00:00
Daniel Dunbar
ad36e8aceb
Pass StringRef by value.
...
llvm-svn: 86251
2009-11-06 10:58:06 +00:00
Duncan Sands
d732f396a2
A value is only assigned to errno if NumRead equals -1, so do
...
not reason based on errno if NumRead has a different value.
llvm-svn: 86046
2009-11-04 20:50:23 +00:00
Duncan Sands
4afa0838d7
Make this code more robust by not thinking we are making progress
...
if zero bytes were read.
llvm-svn: 85922
2009-11-03 19:10:22 +00:00
Chris Lattner
fbaac77c70
add a new 'SetCurrentDebugType' API (requested by Andrew Haley for JIT
...
stuff) to programmatically control the current debug flavor. While
I'm at it, doxygenate Debug.h and clean it up.
llvm-svn: 85395
2009-10-28 15:32:19 +00:00
Evan Cheng
deab9dee12
Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed.
...
llvm-svn: 85358
2009-10-28 01:08:17 +00:00
Evan Cheng
67c902147e
Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values.
...
llvm-svn: 85318
2009-10-27 21:35:42 +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
Dale Johannesen
0d670b5b92
Commit fixes for half precision I noted in review, so
...
they don't get lost; I don't think the originator has
write access.
llvm-svn: 84928
2009-10-23 04:02:51 +00:00
Daniel Dunbar
04f049f2f5
Move UnescapeString to a static function for its sole client; its inefficient and broken.
...
llvm-svn: 84358
2009-10-17 20:43:42 +00:00
Daniel Dunbar
59449581b2
Remove llvm::EscapeString, raw_ostream::write_escaped is much faster.
...
llvm-svn: 84357
2009-10-17 20:43:29 +00:00
Daniel Dunbar
4108c43fd1
Add raw_ostream::write_escaped, for writing escaped strings.
...
llvm-svn: 84355
2009-10-17 20:43:08 +00:00
Daniel Dunbar
77668004c4
Move StringMap's string has function into StringExtras.h
...
llvm-svn: 84344
2009-10-17 18:21:06 +00:00
Chris Lattner
4794b2b27b
Add half precision floating point support (float16) to APFloat,
...
patch by Peter Johnson! (PR5195)
llvm-svn: 84239
2009-10-16 02:13:51 +00:00
Chris Lattner
27f2049305
add haiku support, patch by Paul Davey!
...
llvm-svn: 84238
2009-10-16 02:06:30 +00:00
Jeffrey Yasskin
e2595b5be6
r83391 was completely broken since Twines keep references to their inputs, and
...
some of the inputs were temporaries. Here's a real fix for the miscompilation.
Thanks to sabre for pointing out the problem.
llvm-svn: 83417
2009-10-06 21:45:26 +00:00
Nicolas Geoffray
08506ee6b0
Bugfix for the CommaSeparated option. The original code was adding the whole
...
string at the end of the list, instead of the last comma-separated string.
llvm-svn: 83405
2009-10-06 19:55:53 +00:00
Jeffrey Yasskin
92e3a06623
Fix PR5112, a miscompilation on gcc-4.0.3. Patch by Collin Winter!
...
llvm-svn: 83391
2009-10-06 17:25:50 +00:00
Torok Edwin
819d15c7d9
Avoid using mutex locks if not in multithreaded mode by using a SmartScopedMutex
...
in RegisterStatistic.
llvm-svn: 82896
2009-09-27 11:08:03 +00:00
Chris Lattner
37d8015dc1
remove support for "NoSub" from regex. It seems like a minor optimization
...
and makes the API more annoying. Add a Regex::getNumMatches() method.
llvm-svn: 82877
2009-09-26 21:27:04 +00:00
Chris Lattner
f08d2db928
add and document regex support for FileCheck. You can now do stuff like:
...
; CHECK: movl {{%e[a-z][xi]}}, %eax
or whatever.
llvm-svn: 82717
2009-09-24 21:47:32 +00:00
Chris Lattner
688f991b38
wrap long lines.
...
llvm-svn: 82715
2009-09-24 21:44:20 +00:00
Chris Lattner
1ce83629df
tidy up, fix a memory leak in Regex::isValid
...
llvm-svn: 82707
2009-09-24 20:15:51 +00:00
Chris Lattner
4e37f877b5
reapply r82348 with a fix, thanks Jeffrey.
...
llvm-svn: 82683
2009-09-24 05:38:36 +00:00
Jeffrey Yasskin
a75d6bf3a8
Roll back r82348, which introduced an infinite loop in ParseCStringVector() that
...
a trivial unittest would have caught. This revision also adds the trivial
unittest.
llvm-svn: 82675
2009-09-24 01:14:07 +00:00
Daniel Dunbar
78faee0664
Switch FoldingSet::AddString to StringRef based API.
...
- This also fixes a dereference of std::string::end, which makes MSVC unhappy and was causing all the static analyzer clang tests to fail.
llvm-svn: 82517
2009-09-22 03:34:53 +00:00
Daniel Dunbar
c827d9ee0e
Workaround what I believe is an MSVC bug where it emits a definition for a
...
static const class member into each translation unit, with external linkage???
- If someone understands this issue better, please clue me in, I haven't
consulted the standard yet.
llvm-svn: 82516
2009-09-22 03:34:40 +00:00
Chris Lattner
5a3a854205
simplify as daniel suggests
...
llvm-svn: 82415
2009-09-20 22:56:43 +00:00
Chris Lattner
78f908c877
tidy up
...
llvm-svn: 82384
2009-09-20 07:16:54 +00:00
Chris Lattner
56efff07f5
smallvectorize getExtraOptionNames
...
llvm-svn: 82377
2009-09-20 06:21:43 +00:00
Chris Lattner
131dca9c48
minor cleanups.
...
llvm-svn: 82375
2009-09-20 06:18:38 +00:00
Chris Lattner
00f53807c3
strength reduce further StringRef-> const char*, saving another 620 bytes.
...
llvm-svn: 82372
2009-09-20 05:53:47 +00:00
Chris Lattner
b1f2e101db
switch an std::string to StringRef, shaving 400 bytes off CommandLine.o
...
llvm-svn: 82370
2009-09-20 05:48:01 +00:00
Chris Lattner
6ec8caf003
the switch from std::map -> StringMap caused --help output to be in
...
non-sorted order, restore the sort.
llvm-svn: 82368
2009-09-20 05:37:24 +00:00
Chris Lattner
8d0309daa0
eliminate the duplicate detection loop, moving it into the loop that populates the Opts vector in the first place.
...
llvm-svn: 82367
2009-09-20 05:22:52 +00:00
Chris Lattner
64dbb5ca5a
Eliminate a masochistic "algorithm" loop, shrinking CommandLine.o from 71524->70700 bytes.
...
llvm-svn: 82366
2009-09-20 05:18:28 +00:00
Chris Lattner
28610b9878
don't use count + insert, just do insert + failure. Also, instead of deleting from
...
the middle of a vector, swap the last element in and pop_back. Also saves 330 bytes :)
llvm-svn: 82365
2009-09-20 05:15:12 +00:00
Chris Lattner
41f8b0b7a6
switch to SmallPtrSet instead of std::set, saving 1K from the
...
release-asserts .o file (72900->71856).
llvm-svn: 82364
2009-09-20 05:12:14 +00:00
Chris Lattner
f74e28abfa
change an std::sort to an array_pod_sort call, shrinking CommandLine.o by 9%.
...
llvm-svn: 82363
2009-09-20 05:06:23 +00:00
Chris Lattner
e7c1e210c7
Several changes together in a murky mess:
...
1. Change some "\n" -> '\n'.
2. eliminte some std::string's by using raw_ostream::indent.
3. move a bunch of code out of the main arg parser routine into
a new static HandlePrefixedOrGroupedOption function.
4. Greatly simplify the implementation of getOptionPred, and make
it avoid splitting prefix options at = when that doesn't match
a non-prefix option.
llvm-svn: 82362
2009-09-20 05:03:30 +00:00
Daniel Dunbar
ecbb126e34
Fix refacto, this code was expecting to stride past the argument prefix.
...
llvm-svn: 82360
2009-09-20 04:03:41 +00:00
Daniel Dunbar
7d6781b0fe
Tabs -> spaces, and remove trailing whitespace.
...
llvm-svn: 82355
2009-09-20 02:20:51 +00:00
Chris Lattner
5a3fa4ef33
convert argname to StringRef, simplifying LookupOption.
...
llvm-svn: 82352
2009-09-20 02:02:24 +00:00
Chris Lattner
0a40a975dd
convert 'Value' to StringRef which makes it easier to
...
maintain the "null is unspecified, empty is empty" semantics.
llvm-svn: 82351
2009-09-20 01:53:12 +00:00
Chris Lattner
40fef8032e
Change CommaSeparated processing to do it with StringRef instead of temporary std::strings.
...
This requires StringRef'izing ProvideOption which I also did.
llvm-svn: 82350
2009-09-20 01:49:31 +00:00
Chris Lattner
77c2724360
rewrite ParseCStringVector in terms of stringref.
...
llvm-svn: 82348
2009-09-20 01:33:46 +00:00
Chris Lattner
372a8ae403
move a couple non-trivial methods out of line, add new
...
find_first_of/find_first_of methods.
llvm-svn: 82347
2009-09-20 01:22:16 +00:00
Chris Lattner
1b88fbdaa3
coding style cleanup
...
llvm-svn: 82346
2009-09-20 01:11:23 +00:00
Chris Lattner
3b8adaf488
convert a bunch more stuff to use StringRef. The ArgName arguments are now
...
stringref because they may not be nul terminated. For options like -Lfoo
this now avoids a O(n) temporary std::strings where N is the length of
the string after -L.
llvm-svn: 82345
2009-09-20 00:40:49 +00:00
Chris Lattner
ca2552d9f9
avoid a bunch of malloc thrashing for PositinoalVals by eliminating
...
a std::vector and a bunch of std::string temporaries.
llvm-svn: 82341
2009-09-20 00:07:40 +00:00
Chris Lattner
fa9c6f43a0
Avoid some temporary strings.
...
llvm-svn: 82339
2009-09-19 23:59:02 +00:00
Chris Lattner
84c1527b6b
add some more overloads of StringRef::getAsInteger for
...
common and useful integer types.
llvm-svn: 82338
2009-09-19 23:58:48 +00:00
Chris Lattner
68ee70035e
provide a "strtoull" operation that works on StringRef's.
...
llvm-svn: 82322
2009-09-19 19:47:14 +00:00
Chris Lattner
aecd74d895
convert a bunch of std::strings to use StringRef. This should eliminate
...
a massive number of temporary strings created when parsing a command line.
More still left to eliminate.
llvm-svn: 82318
2009-09-19 18:55:05 +00:00
Benjamin Kramer
543d9b2fba
Try to speed up the slowest parts of the CommandLine library
...
- Replace std::map<std::string with StringMap
- Eliminate unnecessary std::string copies
- ~10% speed-up for clang's testsuite on my machine (debug build)
llvm-svn: 82312
2009-09-19 10:01:45 +00:00
Chris Lattner
ac6271e3f4
add a version of the APFloat constructor that initializes to 0.0
...
llvm-svn: 82110
2009-09-17 01:08:43 +00:00
Daniel Dunbar
4498168753
Add StringRef::{rfind, rsplit}
...
llvm-svn: 82087
2009-09-16 22:38:48 +00:00
Daniel Dunbar
316b4a0206
Drop the raw_ostream required buffer size to 1.
...
- As best I can tell, we have eliminated all the code which used to require a
larger buffer size.
llvm-svn: 81912
2009-09-15 20:31:46 +00:00
Ted Kremenek
c74e09f654
Update CMake files.
...
llvm-svn: 81577
2009-09-11 21:49:45 +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
Chris Lattner
d747a9f21f
canonicalize namespace gymnastics
...
llvm-svn: 81402
2009-09-09 23:46:42 +00:00
Daniel Dunbar
aec990efd7
Add comment re: clang dependency.
...
llvm-svn: 81393
2009-09-09 23:01:25 +00:00
Sean Callanan
1358fb7feb
Added an abstract superclass, MCDisassembler, for
...
all disassemblers.
Modified the MemoryObject to support 64-bit address
spaces, regardless of the LLVM process's address
width.
Modified the Target class to allow extraction of a
MCDisassembler.
llvm-svn: 81392
2009-09-09 22:49:13 +00:00
Evan Cheng
49adbf42b1
Make sure the memory range is writable before memset'ing it.
...
llvm-svn: 81308
2009-09-09 01:45:24 +00:00
Daniel Dunbar
a8597a3749
Add Triple::getArchTypeForDarwinArchName, which converts a "Darwin" architecture
...
name (e.g. "ppc") to the appropriate constant.
Also, StringRefize additional Triple constructor.
llvm-svn: 81274
2009-09-08 23:32:51 +00:00
Daniel Dunbar
6119d878bb
Improve JIT error message for users crazy enough to use -march with JIT, and
...
mention -version in messages about missing targets.
llvm-svn: 81272
2009-09-08 23:32:35 +00:00
Daniel Dunbar
6e4ed8ca5f
Fix may-be-used-uninitialized warning.
...
llvm-svn: 81223
2009-09-08 16:14:54 +00:00
Duncan Sands
6c643bd25d
Avoid warnings if assertions are off.
...
llvm-svn: 81127
2009-09-06 19:28:38 +00:00
Duncan Sands
89720bbd11
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Benjamin Kramer
2b37efaf53
More MSVC warning fixes:
...
1. DUPMAX is defined in regcomp.c, no need to redefine it in regutils.
2. MSVC doesn't like snprintf, use _snprintf instead.
llvm-svn: 81114
2009-09-06 12:26:28 +00:00
Benjamin Kramer
0e098e9df7
Remove splint hints to silence warnings from ICC and MSVC.
...
llvm-svn: 81108
2009-09-06 09:29:39 +00:00
Duncan Sands
2fbeaf084f
Remove some unused variables and methods warned about by
...
icc (#177 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
2009-09-06 08:33:48 +00:00
Daniel Dunbar
fc39586b4f
Show derived host triple in --version.
...
llvm-svn: 80855
2009-09-02 23:52:38 +00:00
Ted Kremenek
1543d133db
Update CMake files.
...
llvm-svn: 80680
2009-09-01 17:01:02 +00:00
Richard Osborne
e7717e7b2a
Add triple parsing support for XCore.
...
llvm-svn: 80629
2009-08-31 21:51:36 +00:00
Daniel Dunbar
bf75ffd1e2
Fix some possible-use-of-uninitialized warnings.
...
llvm-svn: 80515
2009-08-30 21:13:58 +00:00
Torok Edwin
e14d4cdb5f
Add regular expression matching support, based on OpenBSD regexec()/regcomp()
...
implementation.
llvm-svn: 80493
2009-08-30 08:24:09 +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
Oscar Fuentes
a5ff9e354a
CMake: updated list of source files.
...
llvm-svn: 79959
2009-08-25 00:02:29 +00:00
Daniel Dunbar
b8dc4ea2c4
Add llvm::Triple::getArchTypePrefix for getting the intrinsic prefix for an
...
identifier architecture.
llvm-svn: 79906
2009-08-24 09:53:06 +00:00
Dan Gohman
c9fa051f85
Correctly account for the Spaces array nul terminator. Thanks Chris!
...
llvm-svn: 79894
2009-08-24 04:43:38 +00:00
Dan Gohman
f88f52e3b9
raw_ostream::indent is used for PadToColumn which often prints more
...
than 16 spaces. Make the Spaces array wide enough to handle common cases.
llvm-svn: 79890
2009-08-24 04:13:01 +00:00
Chris Lattner
0ffe0e096d
split raw_os_ostream out to its own header and implementation file. This
...
means that raw_ostream no longer has to #include <iosfwd>. Nothing in llvm
should use raw_os_ostream.h, but llvm-gcc and some unit tests do.
llvm-svn: 79886
2009-08-24 04:02:06 +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
Dan Gohman
a53c35d8d0
Unbreak the build for HAVE_GV platforms.
...
llvm-svn: 79883
2009-08-24 03:23:12 +00:00
Oscar Fuentes
94e470504f
CMake: Updated library dependencies and list of source files.
...
llvm-svn: 79876
2009-08-23 23:59:15 +00:00
Chris Lattner
96cffa63a2
remove the dead std::ostream APInt inserter
...
llvm-svn: 79875
2009-08-23 23:11:28 +00:00
Chris Lattner
486fcad4a8
fix some problems with my last patch which happen when one of
...
(HAVE_GV && (HAVE_DOT || HAVE_FDP || HAVE_NEATO || \
HAVE_TWOPI || HAVE_CIRCO))
are true.
llvm-svn: 79872
2009-08-23 22:53:53 +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
1518c64a23
llvm/Support/Streams.h is now dead, zap it.
...
llvm-svn: 79865
2009-08-23 21:50:26 +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
Daniel Dunbar
47a309c5ca
Fix off-by-one in llvm::Format::print.
...
- This also shortens the Format.h implementation, and uses the print buffer
fully (it was wasting a character).
- This manifested as llvm-test failures, because one side effect was that
raw_ostream would write garbage '\x00' values into the output stream if it
happened that the string was at the end of the buffer. This meant that grep
would report 'Binary file matches', which meant the silly pattern matching
llvm-test eventually does would fail. Cute. :)
llvm-svn: 79862
2009-08-23 20:31:39 +00:00
Chris Lattner
36b3caf9c0
clean up #includes.
...
llvm-svn: 79857
2009-08-23 18:09:02 +00:00
Benjamin Kramer
1a25d733f9
Kill off more cerr/cout uses and prune includes a bit.
...
llvm-svn: 79852
2009-08-23 11:37:21 +00:00
Benjamin Kramer
c9aa480832
Remove uses of Streams.h from CommandLine.cpp, fix some whitespace and other minor tweaks.
...
llvm-svn: 79847
2009-08-23 10:01:13 +00:00
Benjamin Kramer
b451afb5f2
Fix windows build.
...
llvm-svn: 79845
2009-08-23 08:57:52 +00:00
Daniel Dunbar
34ee203337
Fix some refactos for iostream changes (in -Asserts mode).
...
- The world needs better C++ refactoring tools, can I get an Amen!?
llvm-svn: 79843
2009-08-23 08:50:52 +00:00
Chris Lattner
471ba48cb9
remove some uses of llvm/Support/Streams.h
...
llvm-svn: 79842
2009-08-23 08:43:55 +00:00
Chris Lattner
4883d90396
convert LoopInfo.h and GraphWriter.h to use raw_ostream
...
llvm-svn: 79836
2009-08-23 07:19:13 +00:00
Chris Lattner
7e3cfe35ff
eliminate DOUT and make Debug.h not include Streams.h anymore, woo!
...
llvm-svn: 79835
2009-08-23 07:05:39 +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
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
ba4bd50a80
switch formattedstream to use raw_ostream::indent. This eliminates
...
the weird MAX_COLUMN_PAD limitation.
llvm-svn: 79785
2009-08-22 23:16:09 +00:00
Chris Lattner
e6db2c338b
add a raw_ostream::indent method, to be used like:
...
OS.indent(i) << "whatever";
people seem to like indenting things ;-)
llvm-svn: 79784
2009-08-22 23:10:29 +00:00
Anton Korobeynikov
876955cbb0
Fix typo.
...
llvm-svn: 79688
2009-08-21 23:09:47 +00:00
Anton Korobeynikov
13e8c7ef20
Implement APInt <-> APFloat conversion for IEEE 128-bit floats.
...
This fixes PR2555
llvm-svn: 79677
2009-08-21 22:10:30 +00:00
Erick Tryzelaar
6096409238
Clean up the APInt function getDigit.
...
llvm-svn: 79602
2009-08-21 06:48:37 +00:00
Eric Christopher
43a1decc8c
Update error messages for '+'. Fix grammar and make the two
...
negative checks resemble each other.
llvm-svn: 79595
2009-08-21 04:10:31 +00:00
Eric Christopher
820256bc99
Fix trailing whitespace and 80-col violation.
...
llvm-svn: 79594
2009-08-21 04:06:45 +00:00
Erick Tryzelaar
dadb1571b7
Fix bug with APInt::getBitsNeeded with for base 10 numbers 0-9.
...
llvm-svn: 79593
2009-08-21 03:15:28 +00:00
Erick Tryzelaar
1264bcb4de
Allow '+' to appear in APInt strings, and add more unit tests.
...
llvm-svn: 79592
2009-08-21 03:15:14 +00:00
Erick Tryzelaar
da666c801c
Add support for including '+' in APFloat strings, more asserts,
...
and many new unit tests.
llvm-svn: 79574
2009-08-20 23:30:43 +00:00
Dan Gohman
e392e6236d
Add a comment explaining why llvm_unreachable_internal doesn't call
...
the ErrorHandler callback.
llvm-svn: 79541
2009-08-20 17:15:19 +00:00
Daniel Dunbar
bf5998edfb
Fix two APFloat bugs in converting hexadecimal constants.
...
llvm-svn: 79540
2009-08-20 17:12:33 +00:00
Eli Friedman
28c7bbf515
Add triple parsing support for TCE.
...
llvm-svn: 79461
2009-08-19 20:46:03 +00:00
Daniel Dunbar
8b0b11582d
Switch to SmallString::str from SmallString::c_str, and remove
...
SmallString::c_str.
llvm-svn: 79456
2009-08-19 20:07:03 +00:00
Daniel Dunbar
e813cbaa21
Change raw_svector_ostream to reserve the input buffer if necessary, Ted was
...
right.
- This class turns out to be much more convenient to use if we do this; clients
can make sure the buffer is always big enough if they care (since our current
idiom tends to be to use a SmallString<256> for the input to this we should
generally be avoiding an unnecessary malloc).
Also, add a convenience raw_svector_ostream::str method which flushes the buffer
and returns a StringRef for the vector contents.
llvm-svn: 79446
2009-08-19 18:40:58 +00:00
Daniel Dunbar
ea579e3d29
Switch Twine::str() to use toVector(), which is now efficient.
...
llvm-svn: 79437
2009-08-19 18:09:47 +00:00
Daniel Dunbar
b090bf4626
Switch raw_svector_ostream to use the vector as the ostream buffer.
...
- This avoids unnecessary malloc/free overhead in the common case, and
unnecessary copying from the ostream buffer into the output vector.
llvm-svn: 79434
2009-08-19 17:54:29 +00:00
Daniel Dunbar
465de3e2be
Speculatively revert r79375, which may be breaking bootstrap, although in a
...
rather obscure way (the other candidate is r79377).
llvm-svn: 79426
2009-08-19 16:25:25 +00:00
Daniel Dunbar
0cf168635e
raw_ostream: Simplify write(unsigned char) to match write(const char*, unsigned).
...
llvm-svn: 79386
2009-08-19 00:23:39 +00:00
Daniel Dunbar
835da36ee9
raw_ostream: Remove pointless redefinitions of tell().
...
- The base class implementation is correct.
llvm-svn: 79385
2009-08-19 00:14:25 +00:00
Daniel Dunbar
317a6cd010
raw_ostream: Add the capability for subclasses to manually install an external
...
buffer.
llvm-svn: 79382
2009-08-18 23:42:36 +00:00
Daniel Dunbar
17a6fd2299
raw_ostream: Reduce FormattedStream's reliance on raw_ostream's implementation.
...
- Kill off begin(), end(), and iterator. It isn't clear what these
mean. Instead provide getBufferStart(), which can be used with
GetNumBytesInBuffer to the same effect.
- Update ComputeColumn to take arguments for the buffer to scan, this
simplifies the implementation of write_impl substantially.
- This should also fix possible problems with the scanning pointer pointing
outside of the current raw_ostream buffer.
llvm-svn: 79379
2009-08-18 23:36:04 +00:00
Daniel Dunbar
bc96fe7246
Speed up raw_ostream::<<(unsigned long long) for 32-bit systems by doing most
...
div/mods in 32-bits.
llvm-svn: 79375
2009-08-18 22:24:00 +00:00
Dan Gohman
23f90c1d3a
Fix a bug in raw_ostream::write(char) introduced by the change to
...
allow underlying stream classes to decline buffering. After
calling SetBuffered(), re-check whether the stream is Unbuffered
in order to handle the case where the underlying stream has
declined buffering.
llvm-svn: 79362
2009-08-18 20:09:59 +00:00
Daniel Dunbar
d882f4b6ff
Revert r78924, disabling buffering defeats all the fast paths in raw_ostream.
...
llvm-svn: 79361
2009-08-18 20:07:36 +00:00
Daniel Dunbar
959323a260
Improve Triple to recognize the OS in i386-mingw32.
...
llvm-svn: 79359
2009-08-18 19:26:55 +00:00
Erick Tryzelaar
a9680df669
Fix an uninitialized value warning in APFloat.
...
llvm-svn: 79353
2009-08-18 18:20:37 +00:00
Daniel Dunbar
33d86f22f2
Fix Triple to recognize the 'bfin' arch.
...
llvm-svn: 79325
2009-08-18 07:06:26 +00:00
Daniel Dunbar
320d331311
Recognize xscale as an ARM arch.
...
- Patch by Yonggang Luo.
llvm-svn: 79315
2009-08-18 04:51:26 +00:00
Daniel Dunbar
781f94d7fe
Add Triple matching for pic16 arch and solaris OS.
...
- Patch by Yonggang Luo.
llvm-svn: 79314
2009-08-18 04:43:27 +00:00
Chris Lattner
ee97b8b11c
the MinPad argument to PadToColumn only really makes sense to be 1,
...
just remove the argument and replace it with 1.
llvm-svn: 79246
2009-08-17 15:48:08 +00:00
Erick Tryzelaar
19f63b2e4d
Modify APFloat to take a StringRef instead of a c string.
...
This also adds unit tests to APFloat that mainly tests the
string handling of APFloat, but not much else of it's api.
llvm-svn: 79210
2009-08-16 23:36:19 +00:00
Dan Gohman
b20757bdeb
Mingw also doesn't have st_blksize.
...
llvm-svn: 79142
2009-08-15 21:41:03 +00:00
Dan Gohman
177102271d
Always check to see if raw_fd_ostream's file descriptor is attached to
...
a terminal, not just when it's STDOUT_FILENO.
llvm-svn: 79066
2009-08-15 02:05:19 +00:00
Dan Gohman
186b85dbcc
Add support for column computation on unbuffered streams.
...
llvm-svn: 79065
2009-08-15 02:02:59 +00:00
Dan Gohman
250635e3ac
Move FormattedStream's write_impl out of line.
...
llvm-svn: 79064
2009-08-15 02:01:04 +00:00
Dan Gohman
e9f0bf5dee
Remove an unnecessary #include.
...
llvm-svn: 79063
2009-08-15 01:56:38 +00:00
Chris Lattner
0792195c5a
fix "pc" to be lower case in a target triple, patch by Yonggang Luo
...
llvm-svn: 79016
2009-08-14 18:48:13 +00:00
Dan Gohman
4af229e0eb
When standard output is a terminal, set outs() to be unbuffered, to
...
mimic the behavior of stdtout, which is line-buffered when the output
is a terminal. This fixes some issues with bugpoint output appearing
being printed out of order.
llvm-svn: 78953
2009-08-13 23:18:56 +00:00
Dan Gohman
c04a00a0b0
Fix a compiler warning about comparing signed with unsigned.
...
llvm-svn: 78933
2009-08-13 20:32:03 +00:00
Dan Gohman
9820555546
Add an assert to check copy_to_buffer's precondition.
...
llvm-svn: 78926
2009-08-13 18:38:15 +00:00
Dan Gohman
854ea3c580
Set raw_os_ostream, raw_string_ostream, and raw_svector_ostream to be
...
unbuffered. std::ostream does its own buffering, and std::string and
SmallVector both have allocation strategies intended to handle frequent
appending.
llvm-svn: 78924
2009-08-13 17:41:40 +00:00
Dan Gohman
84487b98a5
Add support to raw_ostream for sizing the buffer according to the
...
needs of the underlying output mechanism. raw_fd_ostream now uses
st_blksize from fstat to determine a buffer size.
llvm-svn: 78923
2009-08-13 17:27:29 +00:00
Dan Gohman
54401d4174
Move SetBufferSize and SetUnbuffered out of line.
...
llvm-svn: 78909
2009-08-13 15:58:55 +00:00
Dan Gohman
52022c2373
Fix the buffer handling logic so that write_impl is always called with
...
a full buffer, rather than often being called with a
slightly-less-than-full buffer.
llvm-svn: 78907
2009-08-13 15:44:52 +00:00
Daniel Dunbar
3a1efd11bb
Convert APint::{fromString,APInt,getBitsNeeded} to use StringRef.
...
- Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.
llvm-svn: 78885
2009-08-13 02:33:34 +00:00
Dan Gohman
1432ef864e
This void is implicit in C++.
...
llvm-svn: 78848
2009-08-12 22:10:57 +00:00
Dale Johannesen
54be785be7
Add attempted idiotproofing comment per review.
...
llvm-svn: 78825
2009-08-12 18:04:11 +00:00