Commit Graph

1399 Commits

Author SHA1 Message Date
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