Chris Lattner
b7fbcc9696
switch Triple to take twines instead of stringrefs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135889 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-24 20:45:08 +00:00
Chris Lattner
3f25ee080c
Add Twine support for characters, and switch twine to use a union internally
...
to eliminate some casting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135888 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-24 20:44:30 +00:00
Frits van Bommel
f627530999
Omit explicit length here, now that I've had a chance to test this with gcc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135867 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-24 09:53:46 +00:00
Benjamin Kramer
5333658df7
Initialize DenseSets lazily.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135717 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-21 23:03:59 +00:00
Chris Lattner
c30a38f34b
move tier out of an anonymous namespace, it doesn't make sense
...
to for it to be an an anon namespace and be in a header.
Eliminate some extraenous uses of tie.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135669 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-21 06:21:31 +00:00
Jeffrey Yasskin
3ba292dbc2
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity
...
errors like the one corrected by r135261. Migrate all LLVM callers of the old
constructor to the new one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 21:45:40 +00:00
Chris Lattner
22e522e086
various cleanups noticed by Frits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135396 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 16:35:57 +00:00
Chris Lattner
1419f9206e
remove pasto
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135394 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 16:04:11 +00:00
Frits van Bommel
b80e3477d1
Hopefully fix some GCC-based buildbots. GCC apparently decays the array to a pointer here before overload resolution, so construct with an explicit length instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135391 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 12:31:03 +00:00
Frits van Bommel
c48e1ef0e2
Introduce the 'makeArrayRef(...)' family of functions, which fills a similar role for ArrayRef<> as std::make_pair() fills for std::pair<>: they return the right instantiation of ArrayRef<T> based on the types of the parameters.
...
They mostly mirror the ArrayRef constructors, with two exceptions:
* There's no function mirroring the default constructor because it wouldn't have any parameters to deduce the right ArrayRef<T> from.
* There's an explicit SmallVector<T> overload in addition to the SmallVectorImpl<T> overload. Without it, the single-element overload would try to create an ArrayRef<Smallvector<T> > because it's a better match according to the overloading rules. (And both overloads are used in the current tree, so neither is redundant)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135389 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 11:58:53 +00:00
Chris Lattner
79976a4072
add iteration support to TinyPtrVector for clang's use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135367 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 01:53:11 +00:00
Chris Lattner
840635741f
fix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some
...
mallocs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135366 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 01:43:58 +00:00
Chris Lattner
9d69d4aadd
introduce a new TinyPtrVector class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135365 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18 01:40:02 +00:00
Jeffrey Yasskin
3d42bfbbdd
Add an APFloat::convertToInt(APSInt) function that automatically manages the
...
memory for the result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135259 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-15 07:04:56 +00:00
Chris Lattner
d7c027322e
The key of a StringMap can contain nul's in it, so having first() return
...
const char* doesn't make sense. Have it return StringRef instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14 18:31:43 +00:00
Jay Foad
5d4f9909c4
Add some bits that I found useful when converting InsertValueInst and
...
ExtractValueInst APIs to use ArrayRef: a new constructor taking a
(begin, end) range, and operators == and != for element-wise comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135039 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13 09:15:05 +00:00
Owen Anderson
9cbd7afb76
Fix a subtle issue in SmallVector. The following code did not work as expected:
...
vec.insert(vec.begin(), vec[3]);
The issue was that vec[3] returns a reference into the vector, which is invalidated when insert() memmove's the elements down to make space. The method needs to specifically detect and handle this case to correctly match std::vector's semantics.
Thanks to Howard Hinnant for clarifying the correct behavior, and explaining how std::vector solves this problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134554 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 22:36:59 +00:00
Nick Lewycky
298bc9a1a5
Add ImmutableList::contains(). Patch by Rui Paulo!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134545 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 21:59:48 +00:00
Eric Christopher
4d59ff95d8
Remove the confusing getDarwinNumber() api and friends.
...
Part of rdar://9714064
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134291 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-02 00:19:55 +00:00
Douglas Gregor
6ced1d12dd
Add initial *-*-rtems* target, from Joel Sherrill
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134282 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-01 22:41:06 +00:00
Jay Foad
2a4a6fecf0
Extend ConstantUniqueMap with a new template parameter ValRefType,
...
representing a constant reference to ValType. Normally this is just
"const ValType &", but when ValType is a std::vector we want to use
ArrayRef as the reference type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 08:50:06 +00:00
Jay Foad
e275c1c9b5
Remove deprecated forms of StringMap::GetOrCreateValue().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133517 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-21 15:37:05 +00:00
Chris Lattner
39ff10a293
use the MapEntryTy typedef instead of writing it out long form,
...
add some fixme's about methods that should be removed.
Merged from type-system-rewrite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133504 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-21 06:22:33 +00:00
Argyrios Kyrtzidis
9fa7cb1ba6
Constify PackedVector::reference::operator T().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133074 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 19:18:13 +00:00
Ted Kremenek
cf886188fb
add option for literal formatting to APInt::toString()
...
toString() now takes an optional bool argument that,
depending on the radix, adds the appropriate prefix
to the integer's string representation that makes it into a
meaningful C literal, e.g.:
hexademical: '-f' becomes '-0xf'
octal: '77' becomes '077'
binary: '110' becomes '0b110'
Patch by nobled@dreamwidth.org !
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133032 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 00:51:55 +00:00
Argyrios Kyrtzidis
74ee8ace0c
Introduce PackedVector, useful for storing a vector of values using a specific number of bits for each
...
value. Both signed and unsigned types can be used, e.g
PackedVector<signed, 2> vec;
will create a vector accepting values -2, -1, 0, 1. Any other value will hit an assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132325 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-31 03:53:41 +00:00
John McCall
fe754ab90a
...this is not a good commit day for me.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132294 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-29 19:44:55 +00:00
John McCall
832a9d1a76
On Darwin ARM, set the UNWIND_RESUME libcall to _Unwind_SjLj_Resume.
...
This is important for the correct lowering of unwind instructions
(which doesn't matter at all) and llvm.eh.resume calls (which does).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132291 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-29 19:39:04 +00:00
Argyrios Kyrtzidis
6d5502eb49
Add asserts in StringRef to make sure we avoid undefined behavior:
...
-strlen should not be called with NULL. Also guarantee that StringRef's Length is 0 if Data is NULL.
-memcmp should not be called with NULL (even if size is 0)
Patch by Matthieu Monrocq!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131747 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-20 19:24:12 +00:00
Zhongxing Xu
aea7689e62
Remove redundant template partial specilization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131402 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-16 12:42:22 +00:00
John McCall
6765f78efb
Add an operator+= for appending StringRefs onto std::strings.
...
Previously this pattern would be compiled using an implicit conversion
to std::string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131325 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13 23:58:45 +00:00
Bob Wilson
6e97eced2f
Fix a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130761 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-03 17:22:56 +00:00
Lenny Maiorani
6cf081cbe5
Remove bounded StringRef::compare() since nothing but Clang SA was using it and it is just as easy to use StringRef::substr() preceding StringRef::compare() to achieve the same thing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130430 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28 20:20:12 +00:00
Chandler Carruth
776157ac92
Fix more -Wnon-pod-memset warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130392 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28 08:17:08 +00:00
Ted Kremenek
e6b693db8c
Add utility method to DenseMap to return the amount of memory used for its buckets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130382 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28 04:52:57 +00:00
Chris Lattner
450ed1a05b
silence some -Wnon-pod-memset warnings, since std::pair is not POD.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130364 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28 00:55:53 +00:00
Chris Lattner
6311a55b9d
Improve adherence to general style, use "foo_t &x" instead of "foo_t& x"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130153 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 21:02:12 +00:00
Chris Lattner
e27c3ea2bc
allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,
...
patch by Johannes Schaub!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130151 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 20:58:50 +00:00
Sebastian Redl
f462ab431f
Give ImmutableIntervalMap.h an include guard.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130094 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 15:46:46 +00:00
Jay Foad
ddcdcc8863
Remove unused STL header includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-23 19:53:52 +00:00
Justin Holewinski
e1fee48cd0
PTX: Add intrinsics to list of built-in intrinsics, which allows them to be
...
used by Clang. To help Clang integration, the PTX target has been split
into two targets: ptx32 and ptx64, depending on the desired pointer size.
- Add GCCBuiltin class to all intrinsics
- Split PTX target into ptx32 and ptx64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129851 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20 15:37:17 +00:00
Daniel Dunbar
558692fd0a
ADT/Triple: Renambe isOSX... methods to isMacOSX for consistency with the OS
...
triple component.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129838 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20 00:14:25 +00:00
Daniel Dunbar
398a5ca9cd
ADT/Triple: Drop support for -osx style triples, we are going with -macosx
...
instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129836 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 23:55:20 +00:00
Daniel Dunbar
1af394766f
ADT/Triple: Add support for Triple::MacOSX per feedback from Chris, will remove
...
Triple::OSX once Clang has moved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129833 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 23:34:12 +00:00
Daniel Dunbar
e1fe09f682
ADT/Triple: Add isOSDarwin() and isOSWindows() helper functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129815 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 21:12:05 +00:00
Daniel Dunbar
4860fe0ad0
ADT/Triple: Add helper function for OS X version checks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129801 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 20:30:10 +00:00
Daniel Dunbar
8974153870
ADT/Triple: Add isOSVersionLT helper function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129800 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 20:30:07 +00:00
Daniel Dunbar
087d6a59ad
ADT/Triple: Generalize and simplify getDarwinNumber to just be getOSVersion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129799 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 20:24:34 +00:00
Daniel Dunbar
0dde4c00ee
ADT/Triple: Add support for more explicit "osx" and "ios" OS names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129798 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19 20:19:27 +00:00
Lenny Maiorani
437ef0cfb7
Implements StringRef::compare with bounds. It is behaves similarly to strncmp(). Unit tests also included.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129582 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 17:56:50 +00:00