• Home
  • History
  • Annotate
  • only in /external/llvm/include/llvm/ADT/
History log of /external/llvm/include/llvm/ADT/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
PSInt.h
rrayRef.h
itVector.h
enseMap.h
enseSet.h
oldingSet.h
ashing.h
ntrusiveRefCntPtr.h
apVector.h
wningPtr.h
copedHashTable.h
mallBitVector.h
mallPtrSet.h
mallSet.h
mallVector.h
parseBitVector.h
parseMultiSet.h
parseSet.h
tringMap.h
riple.h
wine.h
niqueVector.h
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
PFloat.h
rrayRef.h
itVector.h
enseMap.h
epthFirstIterator.h
quivalenceClasses.h
oldingSet.h
ashing.h
mmutableIntervalMap.h
mmutableMap.h
mmutableSet.h
ntervalMap.h
ntrusiveRefCntPtr.h
wningPtr.h
ointerUnion.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
copedHashTable.h
mallVector.h
parseMultiSet.h
parseSet.h
tatistic.h
tringExtras.h
tringMap.h
tringRef.h
tringSwitch.h
inyPtrVector.h
riple.h
wine.h
dit_distance.h
list.h
list_node.h
terator.h
terator_range.h
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
PFloat.h
PInt.h
PSInt.h
rrayRef.h
itVector.h
enseMap.h
enseSet.h
quivalenceClasses.h
oldingSet.h
ashing.h
ntrusiveRefCntPtr.h
apVector.h
ptional.h
wningPtr.h
ointerIntPair.h
ointerUnion.h
CCIterator.h
TLExtras.h
etVector.h
mallBitVector.h
mallPtrSet.h
mallSet.h
mallString.h
mallVector.h
parseBitVector.h
parseMultiSet.h
parseSet.h
tringExtras.h
tringMap.h
tringRef.h
inyPtrVector.h
riple.h
alueMap.h
terator_range.h
olymorphic_ptr.h
90b81731c1a9bc126d0b29321b3513c9b85f8414 10-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196768:
------------------------------------------------------------------------
r196768 | majnemer | 2013-12-09 01:04:00 -0800 (Mon, 09 Dec 2013) | 5 lines

ADT: Implement MutableArrayRef::reverse_iterator

This adds rbegin/rend methods to MutableArrayRef, they will be used by a
follow-on commit in clang.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196945 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
b69143c6a9bfc969e7c95bbd48b83bb962086070 16-Nov-2013 Benjamin Kramer <benny.kra@googlemail.com> Annotate APInt methods where it's not clear whether they are in place with warn_unused_result.

Fix ScalarEvolution bugs uncovered by this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194928 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
3c3f6be0c8b8d6b38e219652580e2edef0f0a757 13-Nov-2013 Chandler Carruth <chandlerc@gmail.com> Fix a null pointer dereference when copying a null polymorphic pointer.

This bug only bit the C++98 build bots because all of the actual uses
really do move. ;] But not *quite* ready to do the whole C++11 switch
yet, so clean it up. Also add a unit test that catches this immediately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194548 91177308-0d34-0410-b5e6-96231b3b80d8
olymorphic_ptr.h
43ed63bc8310758d2a80deecb2e470f383ca5691 11-Nov-2013 Pete Cooper <peter_cooper@apple.com> Add LLVM_HAS_INITIALIZER_LISTS for upcoming C++11 support. Use it in ArrayRef

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194362 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
3481cdc57382b315c96ad82a6e166f9914dadddb 09-Nov-2013 Chandler Carruth <chandlerc@gmail.com> Switch to allow implicit construction. In many cases, we're wrapping
a derived type and this makes it *much* easier to write this code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194321 91177308-0d34-0410-b5e6-96231b3b80d8
olymorphic_ptr.h
aec427786be4f4dd0c8ecc0aa17899e6c836e45d 09-Nov-2013 Chandler Carruth <chandlerc@gmail.com> Add a polymorphic_ptr<T> smart pointer data type. It's a somewhat silly
unique ownership smart pointer which is *deep* copyable by assuming it
can call a T::clone() method to allocate a copy of the owned data.

This is mostly useful with containers or other collections of uniquely
owned data in C++98 where they *might* copy. With C++11 we can likely
remove this in favor of move-only types and containers wrapped around
those types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194315 91177308-0d34-0410-b5e6-96231b3b80d8
olymorphic_ptr.h
fffdcacff2de0c1eaf4dbd2884384d71d024776d 08-Nov-2013 Jordan Rose <jordan_rose@apple.com> Add ImmutableSet profiling info for 'bool'.

Useful for tri-state maps: true, false, and "no data yet".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194266 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
f34c3ca3046378bdb7e49b7366bafca0e0bafb9a 30-Oct-2013 Rui Ueyama <ruiu@google.com> Add {start,end}with_lower methods to StringRef.

startswith_lower is ocassionally useful and I think worth adding.
endwith_lower is added for completeness.

Differential Revision: http://llvm-reviews.chandlerc.com/D2041

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193706 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
2aaa47f396f185d28aa7855d345f7385681098e2 30-Oct-2013 Howard Hinnant <hhinnant@apple.com> Rehash but don't grow when full of tombstones.

This problem was found and fixed by José Fonseca in March 2011 for
SmallPtrSet, committed r128566. But as far as I can tell, all other
llvm hash tables retain the same problem: the bucket count can grow
without bound while size() remains near constant by repeated
insert/erase cycles that tend to fill the container with tombstones.
Here is a demo that has been reduced to a trivial case:

int
main()
{
llvm::DenseSet<unsigned> d;
for (unsigned i = 0; i < 0xFFFFFFF; ++i)
{
d.insert(i);
d.erase(i);
}
}

While the container size() never grows above 1, the bucket count grows
like this:

nb = 64
nb = 128
nb = 256
nb = 512
nb = 1024
nb = 2048
nb = 4096
nb = 8192
nb = 16384
nb = 32768
nb = 65536
nb = 131072
nb = 262144
nb = 524288
nb = 1048576
nb = 2097152
nb = 4194304
nb = 8388608
nb = 16777216
nb = 33554432
nb = 67108864
nb = 134217728
nb = 268435456

The above program currently consumes a few GB ram. This patch brings
the memory consumption down by several orders of magnitude, and keeps
the bucket count at 64 for the above test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193689 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
2558c2bfbaa4bfd49ee8e06be78a0ccb0f3ff0e7 25-Sep-2013 Joerg Sonnenberger <joerg@bec.de> Undefine NetBSD, it may have been defined by an earlier include of
sys/param.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191384 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
118a0659ab8a4d0e0af343b88e5fa71a5c1eb6a6 24-Sep-2013 Reid Kleckner <reid@kleckner.net> Explicitly request unsigned enum types when desired

The underlying type of all plain enums in MSVC is 'int', even if the
enumerator contains large 32-bit unsigned values or values greater than
UINT_MAX. The only way to get a large or unsigned enum type is to
request it explicitly with the C++11 strong enum types feature.

However, since LLVM isn't C++11 yet, I had to add a conditional
LLVM_ENUM_INT_TYPE to Compiler.h to control its usage.

The motivating true positive for this change is compiling PointerIntPair
with MSVC for win64. The PointerIntMask value is supposed to be pointer
sized value of all ones with some low zeros. Instead, it's truncated to
32-bits! We are only saved later because it is sign extended back in
the AND with int64_t, and we happen to want all ones.

This silences lots of -Wmicrosoft warnings during a clang self-host
targeting Windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191241 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
0d293e45b66c742fdbc3998209bb20ed6c5806bf 22-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> Provide basic type safety for array_pod_sort comparators.

This makes using array_pod_sort significantly safer. The implementation relies
on function pointer casting but that should be safe as we're dealing with void*
here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191175 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
cbe40cfe96a6bb3f2da56445269c2c71e55e0e56 13-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> Add warn_unused_result to empty() on various containers.

empty() doesn't actually empty out the container, making this a common typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190708 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
mallPtrSet.h
mallVector.h
list.h
f57a80f4942dafdb56e854d42af83abaf949ff9d 03-Sep-2013 Joerg Sonnenberger <joerg@bec.de> Add a Python-like join function to merge a list of strings with a
separator between each two elements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189846 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
441c557708b5dbe91f1799baf790ad418c23ea70 29-Aug-2013 Cameron Esfahani <dirty@apple.com> Clean up some usage of Triple. The base class has methods for determining if the target is iOS and Linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189604 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
2f02ded68a114410f11bc2f4e901d0d8e5850de1 29-Aug-2013 Alexander Kornienko <alexfh@google.com> isCharInSet refactoring.

Summary:
Made UnicodeCharSet a class, perform validity checking inside its
constructor instead of each isCharInSet call, use std::binary_search instead of
own implementation.
This patch comes with a necessary change in clang (sent separately).

Reviewers: jordan_rose, klimek

Reviewed By: klimek

CC: cfe-commits, rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D1534

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189582 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
0b6962f4be35aca7054ff68ef9bbbb2e03617d31 24-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> Add a function object to compare the first or second component of a std::pair.

Replace instances of this scattered around the code base.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189169 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
4a48389b27cafe30a38592b50e0f4b9e97b9d65e 24-Aug-2013 Dmitri Gribenko <gribozavr@gmail.com> Added const qualifier to StringRef::edit_distance member function

Patch by Ismail Pazarbasi.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189162 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
79ef34d1802eeea48aa4e9346abecbf8ceb2e8eb 21-Aug-2013 David Majnemer <david.majnemer@gmail.com> ADT/Triple: Helper to determine if we are targeting the Windows CRT

Summary:
This support will be utilized in things like clang to help check printf
format specifiers that are only valid when using the VSCRT.

Reviewers: rnk, asl, chandlerc

Reviewed By: chandlerc

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1455

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188935 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
296ca41b2d305f4aaf1d0562c7da90dc20cd9e14 21-Aug-2013 David Blaikie <dblaikie@gmail.com> Basic unit tests for PointerUnion

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188933 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
b937c55e93e9d52fa618b3488da04ff73182f3f9 20-Aug-2013 Jakub Staszak <kubastaszak@gmail.com> Make sure that pop_back_val() result is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188717 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
mallVector.h
586ea17be9fbf2fa1f2341900ebf1675a0924edc 17-Aug-2013 Chris Lattner <sabre@nondot.org> I'm told that != is not ==


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188583 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
b2820859240b8b8ad03384207ce896da60702f98 17-Aug-2013 Chris Lattner <sabre@nondot.org> allow != to compare PointerUnion, we already support ==.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188582 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
d861b90fe264ec42b941162ca920fadd0a80a1c1 16-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> Add difference_type to ImmutableMap/Set iterators so they have a complete set of typedefs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188579 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
4e31acb558a7f157244a11ae382c0138ee12d60b 16-Aug-2013 Aaron Ballman <aaron@aaronballman.com> Calling the base class constructor from the derived class' initializer list. This matches DenseMap's behavior, and silences some warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188528 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
e4a4aecffb25df25736fec328d9147ee43335c2b 07-Aug-2013 Chandler Carruth <chandlerc@gmail.com> Commit a no-op change to StringRef to (hopefully) trigger build bots.
r187874 seems to have been missed by the build bot infrastructure, and
the subsequent commits to compiler-rt don't seem to be queuing up new
build requsets. Hopefully this will.

As it happens, having the space here is the more common formatting. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187879 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
6e52c6164d499fac983f720540e9a8345f36f691 07-Aug-2013 Dmitri Gribenko <gribozavr@gmail.com> Remove the assertion for now. This breaks lld.

lld has a hashtable with StringRef keys; it needs to iterate over the keys in
*insertion* order. This is currently implemented as std::vector<StringRef> +
DenseMap<StringRef, T>. This will probably need a proper
DenseMapInfo<StringRef> if we don't want to lose memory/performance by
migrating to a different data structure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187868 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
9e8eafa0f0ad36c3e4397e97b67b8245b04ba618 07-Aug-2013 Dmitri Gribenko <gribozavr@gmail.com> YAMLTraits.h: replace DenseMap that used a bad implementation of DenseMapInfo
for StringRef with a StringMap

The bug is that the empty key compares equal to the tombstone key.

Also added an assertion to DenseMap to catch similar bugs in future.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187866 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
15658b290817d6f198ab08910a2d754ba11164d1 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix -Wdocumentation warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187336 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
7ffc854002282b0a6fd018d967a6def971dc341e 27-Jul-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Removed nextafter from missing operations since it is implemented in APFloat::next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187312 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
e130dc6cc9ec1423086c37f557ef8854064fef4a 26-Jul-2013 Bill Wendling <isanbard@gmail.com> Use a non-c'tor for converting a boolean into a StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187250 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
f38cc38fa647d4e72c053c39bbe0cdec1342535f 26-Jul-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> [PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code. Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing. Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The LLVM portions of this patch simply add ppc64le coverage everywhere
that ppc64 coverage currently exists. There is nothing of any import
worth testing until such time as little-endian code generation is
implemented. In the corresponding Clang patch, there is a new test
case variant to ensure that correct built-in defines for little-endian
code are generated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187179 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
fb5b3eaacbc65603b436279300c32512176150fe 26-Jul-2013 Bill Wendling <isanbard@gmail.com> Add a bool->StringRef c'tor to StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187166 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
6fccaafd8be0eb7619b5a210387b0d1254ef4174 25-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove the mblaze backend from llvm.

Approval in here http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064169.html

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187145 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
459d7bf8f6f1577c67d50c060bff7115d30f9fb9 11-Jul-2013 Benjamin Kramer <benny.kra@googlemail.com> Sync SmallBitVector with BitVector. Add unit tests for the missing methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186123 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
10b2997913457fe3b00f88a350fa4143dcdc6b1c 10-Jul-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove llvm/ADT/NullablePtr.h, there are no uses of it in-tree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186006 91177308-0d34-0410-b5e6-96231b3b80d8
ullablePtr.h
6afede522e4dfe34c1d42ccc251036596c300203 08-Jul-2013 Manman Ren <mren@apple.com> Revert r185852.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185861 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
f856249d496663b72b9eac37cdabb52932abd0e0 08-Jul-2013 Manman Ren <mren@apple.com> StringRef: add DenseMapInfo for StringRef.

Remove the implementation in include/llvm/Support/YAMLTraits.h.
Added a DenseMap type DITypeHashMap in DebugInfo.h:
DenseMap<std::pair<StringRef, unsigned>, MDNode*>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185852 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
7426a3b5880b68989e49f963229b7731cb36dba7 08-Jul-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [ADT/NullablePtr] Allow implicit conversion of NullablePtr<OtherT> -> NullablePtr<T> if OtherT is derived from T.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185851 91177308-0d34-0410-b5e6-96231b3b80d8
ullablePtr.h
4dfc257a1ad58be07753bfb96377869cb5dcf8e7 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> Revert "Revert "[APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float.""

This reverts commit r185099.

Looks like both the ppc-64 and mips bots are still failing after I reverted this
change.

Since:

1. The mips bot always performs a clean build,
2. The ppc64-bot failed again after a clean build (I asked the ppc-64
maintainers to clean the bot which they did... Thanks Will!),

I think it is safe to assume that this change was not the cause of the failures
that said builders were seeing. Thus I am recomitting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185111 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
d6bd98d01c3db23f9a66b1f1b2d3e65eef65382e 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> Revert "[APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float."

This reverts commit r185095. This is causing a FileCheck failure on
the 3dnow intrinsics on at least the mips/ppc bots but not on the x86
bots.

Reverting while I figure out what is going on.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185099 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
4da2ebeefb10390ad16238ae7a1038a987466225 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float.

The category which an APFloat belongs to should be dependent on the
actual value that the APFloat has, not be arbitrarily passed in by the
user. This will prevent inconsistency bugs where the category and the
actual value in APFloat differ.

I also fixed up all of the references to this constructor (which were
only in LLVM).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185095 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
575694b6a7d49004acc93294bc88d0bc337e4d27 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Added support for parsing float strings which contain {inf,-inf,NaN,-NaN}.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184713 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
fdec0c7a7302702d08f1221609221018af8085ec 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Added make{Zero,Inf} methods and implemented get{Zero,Inf} on top of them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184712 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
daee0b0def120605f6c702fc47ab3450037ae184 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Removed out of date comment from isNormal().

I already finished the isIEEENormal => isNormal transition. So isNormal is now
IEEE-754R compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184687 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
db045ab1532469551a56e5811e684920a6f7a10c 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Rename llvm::exponent_t => llvm::APFloat::ExponentType.

exponent_t is only used internally in APFloat and no exponent_t values are
exposed via the APFloat API. In light of such conditions it does not make any
sense to gum up the llvm namespace with said type. Plus it makes it clearer that
exponent_t is associated with APFloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184686 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
0ff4287fe2245f417ed78fa535fce360b8b8df23 21-Jun-2013 Justin Holewinski <jholewinski@nvidia.com> [NVPTX] Add support for selecting CUDA vs OCL mode based on triple

IR for CUDA should use "nvptx[64]-nvidia-cuda", and IR for NV OpenCL should use "nvptx[64]-nvidia-nvcl"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184579 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
d3d03fe758d4ee93ea225c6740742eb56b6dca3b 21-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Added missing doxygen module closing statement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184526 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
a1694e578492c90c246e59ec861c1a34f8ad7b4d 20-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Rename isIEEENormal => isNormal and remove old isNormal method.

The old isNormal is already functionally replaced by the method isFiniteNonZero
in r184350 and all references to said method were replaced in LLVM/clang in
r184356/134366.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184449 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
07969dc8aed62fcd5c5760b2ec331275479f4a80 19-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Converted all references to APFloat::isNormal => APFloat::isFiniteNonZero.

Turns out all the references were in llvm and not in clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184356 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
7032c883cdf8da579fbf9bf499d36a711eef676f 19-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Added isFiniteNonZero predicate.

This is the first patch in a series of patches to rename isNormal =>
isFiniteNonZero and isIEEENormal => isNormal. In order to prevent careless
errors on my part the overall plan is:

1. Add the isFiniteNonZero predicate with tests. I can do this in a method
independent of isNormal. (This step is this patch).
2. Convert all references to isNormal with isFiniteNonZero. My plan is to
comment out isNormal locally and continually convert isNormal references =>
isFiniteNonZero until llvm/clang compiles.
3. Remove old isNormal and rename isIEEENormal to isNormal.
4. Look through all of said references from patch 2 and see if we can simplify
them by using the new isNormal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184350 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
c896020dd8d6c2f25f5bf7eb9191fd4e72407015 19-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Expose isSmallest/isLargest as public methods.

I have had several requests to expose these two methods as public for various
potential optimizations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184345 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
8dcff889825c7f38dab27a349b7a21f186a5ff9e 15-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> APInt: Add a fast case for isAllOnesValue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184042 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
48d5e750a8189c55087333d2bbc5dd0e1e07ddfa 10-Jun-2013 Duncan Sands <baldrick@free.fr> Avoid warnings about unused parameters that tend to come up a lot when
building outside projects with a different compiler than that used to build
LLVM itself (eg switching between gcc and clang).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183650 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
a77376dae1e26572f94aa52b63f89749b785bc33 07-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> BitVector: Do the right thing in all() when Size is a multiple of BITWORD_SIZE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183525 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
597253da97ec4fa5fa4a03c2230ed026b1b6aad6 07-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> Optimize BitVector::all().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183521 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
b30718af1ada4b68c7c44e3dcbf4891efd5e3ba1 04-Jun-2013 Michael Gottesman <mgottesman@apple.com> IEEE-754R 5.7.2 General Operations is* operations (except for isCanonical).

Specifically the following work was done:

1. If the operation was not implemented, I implemented it.

2. If the operation was already implemented, I just moved its location
in the APFloat header into the IEEE-754R 5.7.2 section. If the name was
incorrect, I put in a comment giving the true IEEE-754R name.

Also unittests have been added for all of the functions which did not
already have a unittest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183179 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
abff3aa8217049cffe6da77c91e510c66b8c2313 03-Jun-2013 Manuel Klimek <klimek@google.com> Introduce needsCleanup() for APFloat and APInt.

This is needed in clang so one can check if the object needs the
destructor called after its memory was freed. This is useful when
creating many APInt/APFloat objects with placement new, where the
overhead of tracking the pointers for cleanup is significant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183100 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
da8b91a0731e34b97aadb0241ba6cefa4481cffa 01-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> DenseMap: Move the key into place when we use the move version of operator[].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183074 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
2e2922cd90922eaf3736421bd0ad4331f89f3e75 01-Jun-2013 Michael Gottesman <mgottesman@apple.com> Removed a comment above an include which is unnecessary and added a missing closing @} for a doxygen comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183065 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
8a70f5815dda98d23f0bbf519532703886159cda 01-Jun-2013 Michael Gottesman <mgottesman@apple.com> Added method comments for getZero,getInf.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183064 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
7f88a3b20dbaee2a9b265f60a7bc19d2dc6a8f3e 01-Jun-2013 Michael Gottesman <mgottesman@apple.com> Updated APFloat's comments to fit the LLVM style guide.

Also added a few more method comments and performed some copy editing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183063 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
964722ca40f48c65605e459e3a732bb8783b92f6 30-May-2013 Michael Gottesman <mgottesman@apple.com> Implement IEEE-754R 2008 nextUp/nextDown functions in the guise of the function APFloat::next(bool nextDown).

rdar://13852078

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182945 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
a32edcfbc5b99b808b67360311d513af650eab44 28-May-2013 Michael Gottesman <mgottesman@apple.com> [APInt] Implement tcDecrement as a counterpart to tcIncrement. This is for use in APFloat IEEE-754R 2008 nextUp/nextDown function.

rdar://13852078

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182801 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
03abfc7114ce60ef69c4335c16eb264957340fad 26-May-2013 Chris Lattner <sabre@nondot.org> Disable the StringMapEntry copy constructor, to make sure we
reject things like: "for (auto Entry : SomeStringMap)". Previously
this would copy the value but not the tail allocated string data
(the key).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182713 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
fce7b6b5d9905bf35641ee7f001b6b66dbc26c2d 25-May-2013 Michael Gottesman <mgottesman@apple.com> clang formatted APFloat.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182686 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
612ca08e662da624c29140d075c87c7fe2a70efa 25-May-2013 Michael Gottesman <mgottesman@apple.com> clang-formatted APInt.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182685 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
c6af2432c802d241c8fffbe0371c023e6c58844e 25-May-2013 Michael J. Spencer <bigcheesegs@gmail.com> Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182680 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
itVector.h
mallBitVector.h
parseBitVector.h
a5196664236bfadccfc3b805079072340e0f542d 23-May-2013 Michael Gottesman <mgottesman@apple.com> Fixed trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182556 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
cbc8777c588173b1d7d98b29f5a0b43ad35dc6e1 23-May-2013 Michael Gottesman <mgottesman@apple.com> Updated the comments of APInt.h to match the llvm style guide and be consistent. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182555 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
9e8dbe0d2de41d9f993d07f438f5f967fdfd9974 22-May-2013 Reid Kleckner <reid@kleckner.net> Remove unneeded call to a base default ctor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182503 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
039c56fb57d30b8d0b418a970f7f075694c34169 22-May-2013 Reid Kleckner <reid@kleckner.net> Fix StringMapIterator compile errors for non-MSVC compilers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182493 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
284ffa3863bc58f18a3eb879e49e05fdbe792413 22-May-2013 Reid Kleckner <reid@kleckner.net> [Support] Add StringMap::swap() and a default ctor for iterators

This makes StringMap<> more compatible with std::map<std::string, ...>.

Differential Revision: http://llvm-reviews.chandlerc.com/D842

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182487 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
6f43379e23e96442a6d3a747ce921cacebcfe9ac 21-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> Comment update: these things are called "configuration names" these days, not
"triples". Also remove the implication that they're only used for specifying a
target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182335 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
df6e5fb77ca864c55735b903eb022fb1e38fa3d2 15-May-2013 Douglas Gregor <dgregor@apple.com> Add missing #include

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181900 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
453f4f01302f00651aae2fc7658f6e23a2beadb0 15-May-2013 David Blaikie <dblaikie@gmail.com> Use only explicit bool conversion operators

BitVector/SmallBitVector::reference::operator bool remain implicit since
they model more exactly a bool, rather than something else that can be
boolean tested.

The most common (non-buggy) case are where such objects are used as
return expressions in bool-returning functions or as boolean function
arguments. In those cases I've used (& added if necessary) a named
function to provide the equivalent (or sometimes negative, depending on
convenient wording) test.

One behavior change (YAMLParser) was made, though no test case is
included as I'm not sure how to reach that code path. Essentially any
comparison of llvm::yaml::document_iterators would be invalid if neither
iterator was at the end.

This helped uncover a couple of bugs in Clang - test cases provided for
those in a separate commit along with similar changes to `operator bool`
instances in Clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181868 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
wningPtr.h
ointerUnion.h
5c332dbd30d9398ed25b30c3080506f7b8e92290 05-May-2013 Dmitri Gribenko <gribozavr@gmail.com> Add ArrayRef constructor from None, and do the cleanups that this constructor enables

Patch by Robert Wilhelm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181138 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
0512910867e77125b63054da2860a7812604c22e 03-May-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add llvm::Triple::systemz

First step towards reinstating the SystemZ backend. Tests will be
included in the main backend patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181007 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
a7a05ee70cb07f32996a0587a636b406c746b71b 02-May-2013 Aaron Ballman <aaron@aaronballman.com> Replaced usages of size_type with size_t to be more consistent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180947 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
a45391000ebfcf6193a97f2bb558f5beb845ee65 01-May-2013 Peng Cheng <gm4cheng@gmail.com> fix windows warning.

warning C4244: 'argument' : conversion from 'uint64_t' to 'const unsigned int', possible loss of data

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180847 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
711d324d50e5b335e98e576ce6725b056427e3f3 01-May-2013 Peng Cheng <gm4cheng@gmail.com> use static_cast to get rid of windows warning.

warning C4244: 'argument' : conversion from 'uint64_t' to 'const unsigned int', possible loss of data

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180846 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
2173e1839c2d00f7f980450dd537047b7b376e6b 26-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Use llvm/Object/MachO.h in macho-dumper. Drop the old macho parser.

For Mach-O there were 2 implementations for parsing object files. A
standalone llvm/Object/MachOObject.h and llvm/Object/MachO.h which
implements the generic interface in llvm/Object/ObjectFile.h.

This patch adds the missing features to MachO.h, moves macho-dump to
use MachO.h and removes ObjectFile.h.

In addition to making sure that check-all is clean, I checked that the
new version produces exactly the same output in all Mach-O files in a
llvm+clang build directory (including executables and shared
libraries).

To test the performance, I ran macho-dump over all the files in a
llvm+clang build directory again, but this time redirecting the output
to /dev/null. Both the old and new versions take about 4.6 seconds
(2.5 user) to finish.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180624 91177308-0d34-0410-b5e6-96231b3b80d8
nMemoryStruct.h
bbc65149945b1a2eac179f6d7b920f00102942fd 22-Apr-2013 Jia Liu <proljc@gmail.com> typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180023 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
8bb3b098b98cd62f074bb488d8294498ae8121e3 18-Apr-2013 Eli Bendersky <eliben@google.com> Fix typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179793 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
21a01d1ea89dba97c4f9e1f9f41485729a4046bc 15-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Make the host endianness check an integer constant expression.

I will remove the isBigEndianHost function once I update clang.

The ifdef logic is designed to
* not use configure/cmake to avoid breaking -arch i686 -arch ppc.
* default to little endian
* be as small as possible

It looks like sys/endian.h is the preferred header on most modern BSD systems,
but it is better to change this in a followup patch as machine/endian.h is
available on FreeBSD, OpenBSD, NetBSD and OS X.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179527 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
b3d25a940cfd44ffbac71adc6d8f3759ad8a8cb4 09-Apr-2013 Joe Groff <arcata@gmail.com> Fix PointerIntPair to be enum class compatible.

Some parts of PointerIntPair assumed that the IntType of the pair was implicitly
convertible to intptr_t, which is not the case for enum class values. Add a
static_cast<intptr_t> to make these conversions explicit and allow
PointerIntPair to be used with an enum class IntType. While we're here, rename
some of the argument values so we don't have variables named "Int" floating
around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179073 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
5cb04ae563edc3c46464a7aa00e24c05c524547b 04-Apr-2013 Nadav Rotem <nrotem@apple.com> Document the return value of SmallSet insert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178742 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
e1e9366281a98cd06b61d5d7e136ce2b1a433ba6 29-Mar-2013 Jean-Luc Duprat <jduprat@apple.com> SmallVector and SmallPtrSet allocations now power-of-two aligned.
This time tested on both OSX and Linux.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178377 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
mallVector.h
ef484a376cce3729b45ad86eab5724aa83a61823 29-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "Fix allocations of SmallVector and SmallPtrSet so they are more prone to"

This reverts commit 617330909f0c26a3f2ab8601a029b9bdca48aa61.

It broke the bots:

/home/clangbuild2/clang-ppc64-2/llvm.src/unittests/ADT/SmallVectorTest.cpp:150: PushPopTest
/home/clangbuild2/clang-ppc64-2/llvm.src/unittests/ADT/SmallVectorTest.cpp:118: Failure
Value of: v[i].getValue()
Actual: 0
Expected: value
Which is: 2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178334 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
mallVector.h
617330909f0c26a3f2ab8601a029b9bdca48aa61 29-Mar-2013 Jean-Luc Duprat <jduprat@apple.com> Fix allocations of SmallVector and SmallPtrSet so they are more prone to
being power-of-two sized.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178332 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
mallVector.h
7fe65d691dcce550d53ec9310913aab67ab6d654 27-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Cleanup the simplify_type implementation.

As far as simplify_type is concerned, there are 3 kinds of smart pointers:

* const correct: A 'const MyPtr<int> &' produces a 'const int*'. A
'MyPtr<int> &' produces a 'int *'.
* always const: Even a 'MyPtr<int> &' produces a 'const int*'.
* no const: Even a 'const MyPtr<int> &' produces a 'int*'.

This patch then does the following:

* Removes the unused specializations. Since they are unused, it is hard
to know which kind should be implemented.
* Make sure we don't drop const.
* Fix the default forwarding so that const correct pointer only need
one specialization.
* Simplifies the existing specializations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178147 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
ptional.h
list.h
2adf8ccbf0611df6393c30737d87faaf38cdcd0c 21-Mar-2013 Jakub Staszak <kubastaszak@gmail.com> Use pre-inc, pre-dec when possible.
They are generally faster (at least not slower) than post-inc, post-dec.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177608 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
80c6a66bbfb748c230d52345ededd3fd35ebddd7 20-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Add std prefixes to fix the build with xlc.
Patch by Kai <kai@redstar.de>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177574 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
dfe91cefd25614bc9ac1626d67df4d5ad5d3553f 15-Mar-2013 Daniel Dunbar <daniel@zuster.org> [ADT] Fix StringSet::insert() to not allocate on every lookup.
- The previous implementation always constructed the StringMap entry, even if
the key was present in the set.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177178 91177308-0d34-0410-b5e6-96231b3b80d8
tringSet.h
d455d4f4576059606823920150e0fc89a73412e1 15-Mar-2013 Craig Topper <craig.topper@gmail.com> Use NumBaseBits in a few more places in SmallBitVector instead of recalculating it. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177142 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
fa785cb22d50c657eb08c762d627cd6aa96982f3 08-Mar-2013 Jan Wen Voung <jvoung@google.com> Disable statistics on Release builds and move tests that depend on -stats.

Summary:
Statistics are still available in Release+Asserts (any +Asserts builds),
and stats can also be turned on with LLVM_ENABLE_STATS.

Move some of the FastISel stats that were moved under DEBUG()
back out of DEBUG(), since stats are disabled across the board now.

Many tests depend on grepping "-stats" output. Move those into
a orig_dir/Stats/. so that they can be marked as unsupported
when building without statistics.

Differential Revision: http://llvm-reviews.chandlerc.com/D486

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176733 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
8660057d189eb567777ce5bca2b479da8108b5ad 27-Feb-2013 Aaron Ballman <aaron@aaronballman.com> Switching -1ULL to UINT64_MAX to fix MSVC warnings. Patch thanks to Peng Cheng!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176197 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
54932806ac65c9818b9845ca337e57a471b31789 26-Feb-2013 Matt Arsenault <Matthew.Arsenault@amd.com> Another test commit. Remove trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176113 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
d433902628e8c48059f66ba316a7182460ac4a84 26-Feb-2013 Matt Arsenault <Matthew.Arsenault@amd.com> Test commit. Remove trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176111 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
70c808f5b7e1d9eaa3de872e162a25e956d4777e 22-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> An Optional<T> is pod-like if the inner type is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175908 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
633e24dc043c32ddfcfcf6181fe976e218dcb57a 21-Feb-2013 Pedro Artigas <partigas@apple.com> Clear the whole table including the tombstones, since the tombstone count will
be set to zero that is what it was intended. Should improve performance of
the data structure when clear is invoked frequently (both compile time and
memory usage).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175799 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
ea72255f5b0e8d92d5ae9feb5e92605d123888ca 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Add move ctor/assignment to Optional<T>

Code review feedback for r175580 by Jordan Rose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175729 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
7f838bbe450a28aba8769550a78219d3109c4a4e 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Correct spelling of 'enumerator'.

Post commit code review feedback to r175705 from Jordan Rose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175724 91177308-0d34-0410-b5e6-96231b3b80d8
one.h
2bbc19c1c6cd60b9c56750d7b03311c47a88b748 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Make Optional<T>'s operator bool 'explicit' in C++11

Provides a general way to add 'explicit' for conversion operators (a no-op when
compiling as C++98).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175723 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
b8ebc9e2444c73126bdc812165f808f22af10cfa 21-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> ADT/Optional.h: Appease msvc. It reapplies r175626.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175710 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
5c43245bf459c77077b607e1b55e6928cfbe464e 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Provide a "None" value for convenience when using Optional<T>()

This implementation of NoneType/None does have some holes but I haven't
found one that doesn't - open to improvement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175696 91177308-0d34-0410-b5e6-96231b3b80d8
one.h
ptional.h
6139b55222851e9fabde5c91de9e50ed8739c6c6 20-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> Revert r175626, "ADT/Optional.h: Appease msvc."

Sorry, I didn't cover +Asserts, by accident. :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175633 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
94e9d0d491f76aaab13f8bc7764ad73de11fa2bf 20-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175627 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
767ad1c808c798191cf9470e7a0e546d3b472472 20-Feb-2013 NAKAMURA Takumi <geek4civic@gmail.com> ADT/Optional.h: Appease msvc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175626 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
ad4da0fc321230261b4d0387f0ec216eb8aa50ca 20-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Move the SplatByte helper to APInt and generalize it a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175621 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
4318fc5e1e44f355ae117dcac385f1718d971e90 20-Feb-2013 David Blaikie <dblaikie@gmail.com> Rename llvm::Optional<T>::Reset to 'reset' as per LLVM naming conventions.

Code review feedback on r175580 from Jordan Rose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175595 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
a28eda7e401f37a2fe42ca9bba96b6e662b60cf0 20-Feb-2013 David Blaikie <dblaikie@gmail.com> Allow llvm::Optional to work with types without default constructors.

This generalizes Optional to require less from the T type by using aligned
storage for backing & placement new/deleting the T into it when necessary.

Also includes unit tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175580 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
9bc2c994827f2ff881d0563f0c14134b794b4928 20-Feb-2013 Jakub Staszak <kubastaszak@gmail.com> Move part of APInt implementation from header to cpp file. These methods
require call cpp file anyway, so we wouldn't gain anything by keeping them
inline.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175579 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
1f1713ff7a53c9c491c59886984f6a0534ce3630 19-Feb-2013 Douglas Gregor <dgregor@apple.com> Remove my bogus MapVector::erase() with a narrower ::pop_back(), and add a unit test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175538 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
a39058aaed4540fc37681cad728b99546595b2e8 19-Feb-2013 David Blaikie <dblaikie@gmail.com> Use LLVM_DELETED_FUNCTION rather than '// do not implement' comments.

Also removes some redundant DNI comments on function declarations already
using the macro.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175466 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
list.h
888fae7b49f5d39f2371edb78566476396e30c75 18-Feb-2013 Douglas Gregor <dgregor@apple.com> Add front/back/erase to MapVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175449 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
a94d32284a00c544332464dd6b1efa65b1224ea3 14-Feb-2013 Francois Pichet <pichet2000@gmail.com> Add missing typename to unbreak the MSVC 2012 build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175129 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
779a96362e18d008e224c1683e54181ba1fbe943 13-Feb-2013 Ryan Govostes <rzg@apple.com> Fix iterator definitions for ImmutableSet and ImmutableMap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175097 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
3df02ac9d46f7ce8f0f10bc693dfc3c6c5aa2863 13-Feb-2013 Ryan Govostes <rzg@apple.com> Add iterator_traits to ImmutableMap and ImmutableSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175085 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
cef6cfe4a67af030754b4151cd63076c4aab7467 13-Feb-2013 Craig Topper <craig.topper@gmail.com> Remove unnecessary condtional assignment. The next line ignores the result of the assignment with the same condition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175042 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
35b1423ee67a6ec7052016dda486e6ee4a118db4 07-Feb-2013 Meador Inge <meadori@codesourcery.com> ADT: Correct APInt::getActiveWords for zero values

PR15138 was opened because of a segfault in the Bitcode writer.
The actual issue ended up being a bug in APInt where calls to
APInt::getActiveWords returns a bogus value when the APInt value
is 0. This patch fixes the problem by ensuring that getActiveWords
returns 1 for 0 valued APInts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174641 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
72062f5744557e270a38192554c3126ea5f97434 31-Jan-2013 Tim Northover <Tim.Northover@arm.com> Add AArch64 as an experimental target.

This patch adds support for AArch64 (ARM's 64-bit architecture) to
LLVM in the "experimental" category. Currently, it won't be built
unless requested explicitly.

This initial commit should have support for:
+ Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions
(except the late addition CRC instructions).
+ CodeGen features required for C++03 and C99.
+ Compilation for the "small" memory model: code+static data <
4GB.
+ Absolute and position-independent code.
+ GNU-style (i.e. "__thread") TLS.
+ Debugging information.

The principal omission, currently, is performance tuning.

This patch excludes the NEON support also reviewed due to an outbreak of
batshit insanity in our legal department. That will be committed soon bringing
the changes to precisely what has been approved.

Further reviews would be gratefully received.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174054 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
e502bba8c6dde1d95cc350c7935a1aea0b41465f 30-Jan-2013 Michael Gottesman <mgottesman@apple.com> Encapsulate testing that we have an iOS Triple in Triple.h in the method isiOS
so we follow the convention that all other platforms follow by having an is*
test method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173983 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
6bbf4ff9c545c881422da37494b1ccb9c18d9c6a 25-Jan-2013 Nick Lewycky <nicholas@mxc.ca> Add an insert() method to MapVector. Adds the first MapVector unit test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173505 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
827de0520ee986fcda5f0d3290a3746249fa5847 25-Jan-2013 Andrew Trick <atrick@apple.com> ArrayRef reverse iterators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173424 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
2f0a4e1aadfa227ed2565e532f0d1a3cf8e8efa5 25-Jan-2013 Andrew Trick <atrick@apple.com> whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173423 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
0ac7e6f293bc502b39005496d2160b0089d3fa46 24-Jan-2013 Richard Trieu <rtrieu@google.com> Add asserts to SmallVector so that calls to front() and back() only succeed
if the vector is not empty. This will ensure that calls to these functions
will reference elements in the vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173321 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
9dd2a3b1f2c253e20262535bb89b1ab6cc680ece 22-Jan-2013 Eli Bendersky <eliben@google.com> Initial patch for x32 ABI support.

Add the x32 environment kind to the triple, and separate the concept of
pointer size and callee save stack slot size, since they're not equal
on x32.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173175 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
0a29cb045444c13160e90fe7942a9d7c720185ed 22-Jan-2013 Tim Northover <Tim.Northover@arm.com> Make APFloat constructor require explicit semantics.

Previously we tried to infer it from the bit width size, with an added
IsIEEE argument for the PPC/IEEE 128-bit case, which had a default
value. This default value allowed bugs to creep in, where it was
inappropriate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173138 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
dc89ed7da30e882cfdb74968b2a7613e37570409 22-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> SparseMultiSet.h: Add suggested parentheses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173128 91177308-0d34-0410-b5e6-96231b3b80d8
parseMultiSet.h
afe77f33b2a361ed0d001596dcdde0e16d57abee 21-Jan-2013 Michael Ilseman <milseman@apple.com> Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it.

A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173064 91177308-0d34-0410-b5e6-96231b3b80d8
parseMultiSet.h
8a53a8329f47f86757af17dbea2864aa95414615 18-Jan-2013 Jordan Rose <jordan_rose@apple.com> Add llvm::hexDigitValue to convert single characters to hex.

This is duplicated in a couple places in the codebase. Adopt this in APFloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172851 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
47f39340211f537cf79610832194c1884d420d62 15-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [ADT/StringMap] Follow-up to r172455, use the correct constructor for setting the InitialSize,
previously it was calling the "StringMapImpl(unsigned itemSize)" constructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172500 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
3735573343614644ead7a8bae674c312db8b1eb1 14-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [ADT/StringMap] Add a constructor in StringMap that accepts both an
initial size and an allocator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172455 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
289148afcb68b28e155ee87aa5a9efcf75adb444 14-Jan-2013 Joe Groff <arcata@gmail.com> Fix DenseMap when LLVM_HAS_RVALUE_REFERENCES is defined but equals 0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172454 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
a662a9862501fc86904e90054f7c1519101d9126 14-Jan-2013 Joe Groff <arcata@gmail.com> Add DenseMap::insert(value_type&&) method.
Use the existing move implementation of the internal DenseMap::InsertIntoBucket
method to provide a user-facing move insert method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172453 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
96f498bd9f140a98321c478f517877c4767b94fa 13-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Remove redundant 'llvm::' qualifications


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172358 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
674be02d525d4e24bc6943ed9274958c580bcfbc 10-Jan-2013 Jakub Staszak <kubastaszak@gmail.com> Fix include guards so they exactly match file names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
PSInt.h
mmutableIntervalMap.h
mmutableList.h
mmutableMap.h
mmutableSet.h
ntrusiveRefCntPtr.h
ullablePtr.h
ptional.h
wningPtr.h
riorityQueue.h
ariadicFunction.h
list_node.h
7aa1c321f00d29fdc84e9a03080853aa25dd06fc 07-Jan-2013 Shuxin Yang <shuxin.llvm@gmail.com> Implement APFloat::isDenormal()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171764 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
255cd6f317f3a0bad6e7939ca5ce49b33c6676f9 05-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171601 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
5d295b41a3f4194778b6bc01a828b2115bd3a3f1 05-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> DenseMap: Appease -fstrict-aliasing on g++-4.4.

With DenseMapInfo<Enum>, it is miscompiled on g++-4.4.

static inline Enum getEmptyKey() { return Enum(<arbitrary int/unsigned value>); }

isEauql(getEmptyKey(), ...)

The compiler mis-assumes the return value is not aliased to Enum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171600 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
319120f6229dcf37f288be2719bc095a2f454d55 05-Jan-2013 Alex Rosenberg <alexr@leftfield.org> Fix warnings from llvm-gcc as seen on darwin10 (10.6).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171567 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
7c5c12bd4d60070c90161df9f6ae078c1f7b1ce5 04-Jan-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add an iplist::clearAndLeakNodesUnsafely() function.

The iplist::clear() function can be quite expensive because it traverses
the entire list, calling deleteNode() and removeNodeFromList() on each
element. If node destruction and deallocation can be handled some other
way, clearAndLeakNodesUnsafely() can be used to jettison all nodes
without bringing them into cache.

The function name is meant to be ominous.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171540 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
138f084ca547c03d64b9a7acdbb84a01b8cd9111 04-Jan-2013 Eric Christopher <echristo@gmail.com> Make comment a bit more clear.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171473 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
23203faf0b36c263248f5b265530c56974d93c98 02-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Use a bool instead of a bitfield in llvm/ADT/Optional.

Fixes Valgrind failures and removes bitwise operations that don't provide any benefit.
Valgrind failures reported by NAKAMURA Takumi.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171413 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
edf315cd71334d5a7af31f4b882235d03b06f24d 27-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Provide a common half-open interval map info implementation, and just
re-use that for SlotIndexes. This way other users who want half-open
semantics can share the implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171158 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
e8ce626308eb047d226847660e7dceed1169038f 20-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> Don't leave IsUnsigned uninitialized in a default-constructed APSInt. Copying
such a structure has undefined behavior. Caught by -fsanitize=bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170652 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
fc8657be3470e5b3b63705c9252251acba3c1606 19-Dec-2012 Benjamin Kramer <benny.kra@googlemail.com> MapVector: Add lookup().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170527 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
7f1d6d688f6ae288a16a4151e8a27b518d97f6f7 18-Dec-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add an assertion for a likely ilist::splice() contract violation.

The single-element ilist::splice() function supports a noop move:

List.splice(I, List, I);

The corresponding std::list function doesn't allow that, so add a unit
test to document that behavior.

This also means that

List.splice(I, List, F);

is somewhat surprisingly not equivalent to

List.splice(I, List, F, next(F));

This patch adds an assertion to catch the illegal case I == F above.
Alternatively, we could make I == F a legal noop, but that would make
ilist differ even more from std::list.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170443 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
745bf82ebac69b390911d5af0b1664fa7ff6410e 18-Dec-2012 Eli Bendersky <eliben@google.com> Cleanup comment and formatting


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170398 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
6cd738f33934a93b114d7dd9e4291f87f445c5c4 07-Dec-2012 Ted Kremenek <kremenek@apple.com> Mark ImmutableMap::remove/add() const.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169629 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
b02ed5b8eafd11500bbefb7206ecbf5bc3fc324a 07-Dec-2012 Ted Kremenek <kremenek@apple.com> Add manualRetain() and manualRelease() to ImmutableMapRef, and add a new constructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169572 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
105fdbb1312bac8c46ba2e28e9d6a70c0af151c8 07-Dec-2012 Eli Bendersky <eliben@google.com> Add convenience accessor to Triple for OS == NaCl


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169565 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
091508d3d0b0ebe0216b73b30161fbc599f9d4f1 06-Dec-2012 Ted Kremenek <kremenek@apple.com> Revert "Allow modifying an ImmutableMap without canonicalizing it immediately."

Jordan and I discussed this, and we don't want this in the API.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169541 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
972f087dbbc233bff9270716f2af453b90a996d9 06-Dec-2012 Jordan Rose <jordan_rose@apple.com> Allow modifying an ImmutableMap without canonicalizing it immediately.

This is an alternative to the ImmutableMapRef interface where a factory
should still be canonicalizing by default, but in certain cases an
improvement can be made by delaying the canonicalization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169532 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
8181827d1b04f7bc6939ab099acc09ef2b247061 04-Dec-2012 Eli Bendersky <eliben@google.com> Remove a URL from code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169293 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f659c0de6c7a4684a2a30c344ce6827ea87032d8 04-Dec-2012 Eli Bendersky <eliben@google.com> Make NaCl naming consistent. The triple OSType is called NaCl and is represented
textually as NativeClient. Also added a link to the native client project for
readers unfamiliar with it.

A Clang patch will follow shortly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169291 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f7e78487de159940e00e3fadaf6b2e023e2ad8fe 03-Dec-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add a getMemorySize() function for DenseSet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169163 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
acb8d9fbe3853394a2537985349993580309b8cd 03-Dec-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Eliminate redundant bitwise operations when using a llvm/ADT/PointerUnion.

For comparison, with this code sample:

PointerUnion<int *, char *> Data;
PointerUnion<int *, char *> foo1() {
Data = new int;
return new int;
}
PointerUnion<int *, char *> foo2() {
Data = new char;
return new char;
}

Before this patch we would get:

define i64 @_Z4foo1v() uwtable ssp {
%1 = tail call noalias i8* @_Znwm(i64 4)
%2 = ptrtoint i8* %1 to i64
%3 = load i64* getelementptr inbounds (%"class.llvm::PointerUnion"* @Data, i64 0, i32 0, i32 0), align 8
%4 = and i64 %3, 1
%.masked.i = and i64 %2, -3
%5 = or i64 %4, %.masked.i
store i64 %5, i64* getelementptr inbounds (%"class.llvm::PointerUnion"* @Data, i64 0, i32 0, i32 0), align 8
%6 = tail call noalias i8* @_Znwm(i64 4)
%7 = ptrtoint i8* %6 to i64
%8 = and i64 %7, -3
ret i64 %8
}

define i64 @_Z4foo2v() uwtable ssp {
%1 = tail call noalias i8* @_Znwm(i64 1)
%2 = ptrtoint i8* %1 to i64
%3 = load i64* getelementptr inbounds (%"class.llvm::PointerUnion"* @Data, i64 0, i32 0, i32 0), align 8
%4 = and i64 %3, 1
%5 = or i64 %2, %4
%6 = or i64 %5, 2
store i64 %6, i64* getelementptr inbounds (%"class.llvm::PointerUnion"* @Data, i64 0, i32 0, i32 0), align 8
%7 = tail call noalias i8* @_Znwm(i64 1)
%8 = ptrtoint i8* %7 to i64
%9 = or i64 %8, 2
ret i64 %9
}

After the patch:

define i64 @_Z4foo1v() uwtable ssp {
%1 = tail call noalias i8* @_Znwm(i64 4)
%2 = ptrtoint i8* %1 to i64
store i64 %2, i64* getelementptr inbounds (%"class.llvm::PointerUnion"* @Data, i64 0, i32 0, i32 0), align 8
%3 = tail call noalias i8* @_Znwm(i64 4)
%4 = ptrtoint i8* %3 to i64
ret i64 %4
}

declare noalias i8* @_Znwm(i64)

define i64 @_Z4foo2v() uwtable ssp {
%1 = tail call noalias i8* @_Znwm(i64 1)
%2 = ptrtoint i8* %1 to i64
%3 = or i64 %2, 2
store i64 %3, i64* getelementptr inbounds (%"class.llvm::PointerUnion"* @Data, i64 0, i32 0, i32 0), align 8
%4 = tail call noalias i8* @_Znwm(i64 1)
%5 = ptrtoint i8* %4 to i64
%6 = or i64 %5, 2
ret i64 %6
}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169147 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
ointerUnion.h
255f89faee13dc491cb64fbeae3c763e7e2ea4e6 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort the #include lines for the include/... tree with the script.

AKA: Recompile *ALL* the source code!

This one went much better. No manual edits here. I spot-checked for
silliness and grep-checked for really broken edits and everything seemed
good. It all still compiles. Yell if you see something that looks goofy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169133 91177308-0d34-0410-b5e6-96231b3b80d8
AGDeltaAlgorithm.h
eltaAlgorithm.h
enseMap.h
epthFirstIterator.h
oldingSet.h
mmutableList.h
mmutableSet.h
ntervalMap.h
CCIterator.h
mallSet.h
parseSet.h
tringExtras.h
tringRef.h
alueMap.h
4334dd96a9e622fdcf2825a8f73a2d941d67be72 30-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Switch LLVM_USE_RVALUE_REFERENCES to LLVM_HAS_RVALUE_REFERENCES.

Rationale:
1) This was the name in the comment block. ;]
2) It matches Clang's __has_feature naming convention.
3) It matches other compiler-feature-test conventions.

Sorry for the noise. =]

I've also switch the comment block to use a \brief tag and not duplicate
the name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168996 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
itVector.h
enseMap.h
ntrusiveRefCntPtr.h
ptional.h
wningPtr.h
mallBitVector.h
mallVector.h
inyPtrVector.h
a5bf44b0b396e8b9ae0db5c62c05ac6618aab5d3 30-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Separate out the tests for whether the compiler suports R-value
references from whether it supports an R-value reference *this. No
version of GCC today supports the latter, which breaks GCC C++11
compiles of LLVM and Clang now.

Also add doxygen comments clarifying what's going on here, and update
the usage in Optional. I'll update the usages in Clang next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168993 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
adf0c3d82dbff1480c63f1ebe68c7c1e6bb5828c 30-Nov-2012 Jordan Rose <jordan_rose@apple.com> Add a new C++11 compatibility macro, LLVM_LVALUE_FUNCTION.

This expands to '&', and is intended to be used when an /optional/ rvalue
override is available.

Before:
void foo() const { ... }

After:
void foo() const LLVM_LVALUE_FUNCTION { ... }
void foo() && { ... }

This is used to allow moving the contents of an Optional.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168963 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
d5227545359a4816e52fd100b225ae140ec9b03a 16-Nov-2012 Andrew Trick <atrick@apple.com> typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168202 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
009cf9e9a3a386f89db2686a105736481aed10ca 15-Nov-2012 Sergei Larin <slarin@codeaurora.org> Fix indeterminism in MI scheduler DAG construction.
Similarly to several recent fixes throughout the code replace std::map use with the MapVector.
Add find() method to the MapVector.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168051 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
ac39a035351a20928e087617e412aa6ce510181f 15-Nov-2012 Guy Benyei <guy.benyei@intel.com> Add support for SPIR64 target - the 64bit counterpart of SPIR.

The new OpenCL SPIR extension spec will define separate SPIR for 32 and 64 bit architectures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168036 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
b61a11f7c0a6dd453f2b53e0583fe14603516420 15-Nov-2012 Jakub Staszak <kubastaszak@gmail.com> Use LLVM_DELETED_FUNCTION.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168009 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
06b423452c85f5a78a1b0555b767cf27b36c0752 14-Nov-2012 Eric Christopher <echristo@gmail.com> Remove the CellSPU port.

Approved by Chris Lattner.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167984 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
6d42bbfe5e18f7256049435f2e23d11aeee670f1 31-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove Triple::getArchTypeForDarwinArchName. I lives on the clang driver now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167157 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
3a9b71434cda6f66d65a031effec1bbe58e1dda3 31-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Add extra declarations of hash_value needed to build llvm with xlc 12.1.
Patch by Kai!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167085 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
fce241d76fa39347f852fa74363b61c5e42cc602 29-Oct-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> APFloat cleanup: Remove now unused fields "sign2" and "exponent2".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166952 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
b61054ff8f5568489109a0ccf2799307c3671309 26-Oct-2012 Derek Schuff <dschuff@google.com> Stop APInt::shl from generating llvm.trap

APInt::shl generated llvm.trap to guard against shifts greater than bit-width.
This was already checked with an assert, and there was a special case for
shifts equal to bit-width. Modify this check to catch shifts greater than or
equal to bit-width, so llvm.trap isn't generated.

Patch contributed by JF Bastien

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166803 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
99112c6b193c54409e2a3a5ea76c3759d5c1244c 24-Oct-2012 Pete Cooper <peter_cooper@apple.com> Improve DenseMap checks for power of 2 growth. Thanks for the tip Jakob

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166609 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ce892ca9bc7f9924a69ce6c844e1dff5aa4049e6 24-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Support/StringSet] Fix memory leak when inserted key already exists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166517 91177308-0d34-0410-b5e6-96231b3b80d8
tringSet.h
2430973fb657eb84dfbacb1e8886d3a29190e0b5 23-Oct-2012 Pete Cooper <peter_cooper@apple.com> Change DenseMap to use a power of 2 growth if one is given instead of the next power of 2. This was causing DenseMaps to grow 4x instead of 2x. I'll keep an eye on the buildbots as this could impact performance

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166493 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
fbaf206f470b5a6a54811547641ee41368a2cccd 23-Oct-2012 Pete Cooper <peter_cooper@apple.com> Fixed bug in SmallDenseMap where it wouldn't leave enough space for an empty bucket if the number of values was exactly equal to the small capacity. This led to an infinite loop when finding a non-existent element

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166492 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
5ce10521a0986e9626530c19e3247431dbb5f2ca 19-Oct-2012 Jordan Rose <jordan_rose@apple.com> Fix case for include of Compiler.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166243 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
e19f11215d8fa29635b28317dd1cfd1915d048d4 19-Oct-2012 Jordan Rose <jordan_rose@apple.com> Add move constructors for OwningPtr and OwningArrayPtr.

While LLVM itself is still C++03, there's no reason why tools built on
top of it can't use C++11 features.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166242 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
9d9a6128feb6e2251eb3bacdf2d1083a8b2f5b83 19-Oct-2012 Jordan Rose <jordan_rose@apple.com> Add a T&& constructor to llvm::Optional.

This allows llvm::Optional to be used with movable-but-not-copyable types.
While LLVM itself is still C++03, there's no reason why tools built on
top of it can't use C++11 features.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166241 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
82e9bc2f57c00c200d7227b94891f272462d9292 16-Oct-2012 Owen Anderson <resistor@mac.com> Speculative fix the mask constants to be of type uintptr_t. I don't know of any case where the old form was incorrect, but I'm more confident that such cases don't exist in this version.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166031 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
e3f7be36c75ddcafb24b52c36c55c3dc17215db3 16-Oct-2012 Owen Anderson <resistor@mac.com> Fix a bug in the set(I,E)/reset(I,E) methods that I recently added. The boundary condition for checking if I and E were in the same word were incorrect, and, beyond that, the mask computation was not using a wide enough constant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166015 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
3a1c35afbd02b012690c35ec827424c27792ec3f 16-Oct-2012 Owen Anderson <resistor@mac.com> Add range-based set()/reset() to BitVector. These allow fast setting/resetting of ranges of bits, particularly useful when dealing with very large BitVector's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165984 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mallBitVector.h
658c62862e470b59aaf25825de64d93fbaf8cb93 14-Oct-2012 Benjamin Kramer <benny.kra@googlemail.com> Fix a typo that made ImmutableMap::getMaxElement() useless.

Add a basic unit test for ImmutableMap. Found by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165907 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
2e522d05278a69cf75b41dcd4b358e46b5350425 12-Oct-2012 Duncan Sands <baldrick@free.fr> Add powerpc-ibm-aix to Triple. Patch by Kai.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165792 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
8161d81239f1d125cb1aeaf0be6916c36d4cdf2f 10-Oct-2012 Douglas Gregor <dgregor@apple.com> Add count() method to MapVector

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165559 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
62430fd1a1d901956dfbac7b0ab49e2e653d6fc5 09-Oct-2012 Douglas Gregor <dgregor@apple.com> Not everyone uses C++11, apparently

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165517 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
289c39965b1b799a22534d759fdf0a26302430d7 09-Oct-2012 Douglas Gregor <dgregor@apple.com> Allow MapVector clients to specify the map and vector types, and add a
clear() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165514 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
de2fae4c7bfaedb95705b272015592895e05fd9c 03-Oct-2012 Chandler Carruth <chandlerc@gmail.com> Third try at fixing this. ;] Go back to using std::remove_if, which has
most of the behavior we want, but wrap the predicate in one which erases
elements from the set if they pass the predicate. Oh what I wouldn't
give for a lambda here.

Let me know if the predicate wrapping is too much magic. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165076 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
75eac5f0ebff4d0ffe10ce6bc8f2867c5f15315b 03-Oct-2012 Chandler Carruth <chandlerc@gmail.com> Switch the SetVector::remove_if implementation to use partition which
preserves the values of the relocated entries, unlikely remove_if. This
allows walking them and erasing them.

Also flesh out the predicate we are using for this to support the
various constraints actually imposed on a UnaryPredicate -- without this
we can't compose it with std::not1.

Thanks to Sean Silva for the review here and noticing the issue with
std::remove_if.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165073 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
5c5b3cf5b8af06b8e9347f3f45e8c67438ffd446 03-Oct-2012 Chandler Carruth <chandlerc@gmail.com> Teach the new SROA to handle cases where an alloca that has already been
scheduled for processing on the worklist eventually gets deleted while
we are processing another alloca, fixing the original test case in
PR13990.

To facilitate this, add a remove_if helper to the SetVector abstraction.
It's not easy to use the standard abstractions for this because of the
specifics of SetVectors types and implementation.

Finally, a nice small test case is included. Thanks to Benjamin for the
fantastic reduced test case here! All I had to do was delete some empty
basic blocks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165065 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
5d37976090df34f003e5128e39593b763be0ca71 03-Oct-2012 Chandler Carruth <chandlerc@gmail.com> Clean up these doxygen comments to follow the proposed new style. This
also makes it more consistent with Clang and several passes' doxygen
style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165064 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
7bbd6e366b39157445cc921024a987e61ea68c00 02-Oct-2012 Andrew Kaylor <andrew.kaylor@intel.com> Support for generating ELF objects on Windows.

This adds 'elf' as a recognized target triple environment value and overrides the default generated object format on Windows platforms if that value is present. This patch also enables MCJIT tests on Windows using the new environment value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165030 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
e53d6051b7e173722351a5647bfd71eebee3d837 01-Oct-2012 Micah Villmow <villmow@gmail.com> Add in support for SPIR to LLVM core. This adds a new target and two new calling conventions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164948 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
07b4d5592ac761e48bf712f0dd07281bb7f8ab52 28-Sep-2012 Benjamin Kramer <benny.kra@googlemail.com> PackedVector: Make the BitVector implementation configurable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164826 91177308-0d34-0410-b5e6-96231b3b80d8
ackedVector.h
deda7b6e75b1796ef1a6d22b395098ffcbf32435 28-Sep-2012 Benjamin Kramer <benny.kra@googlemail.com> Provide malloc-free sentinels for the SparseBitVector internals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164823 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
94c22716d60ff5edf6a98a3c67e0faa001be1142 27-Sep-2012 Sylvestre Ledru <sylvestre@debian.org> Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
etVector.h
parseBitVector.h
7e2c793a2b5c746344652b6579e958ee42fafdcc 27-Sep-2012 Sylvestre Ledru <sylvestre@debian.org> Fix a typo 'iff' => 'if'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
etVector.h
parseBitVector.h
a2df2ba16a94bf20b9202594d01cfbf370c2091a 22-Sep-2012 Jordan Rose <jordan_rose@apple.com> Add llvm::getOrdinalSuffix to get the appropriate -st, -nd, -rd, -th suffix.

Used by clang to print parameter indexes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164440 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
3bbdddf527c762085802544665d6e77471ea035b 22-Sep-2012 Jordan Rose <jordan_rose@apple.com> DenseMap: assert that we have found a bucket before we try to insert into it.

This silences literally dozens of analyzer warnings on LLVM (since DenseMap
is such a commonly-used class).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164438 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
c312f098999d4640cf91934632ccecfc9ef30b85 19-Sep-2012 Rafael Espindola <rafael.espindola@gmail.com> Make MapVector a bit more expensive but harder to misuse. We now only
provide insertion order iteration, instead of the old option of
DenseMap order iteration over keys and insertion order iteration over
values.
This is implemented by keeping two copies of each key.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164221 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
3b62b01f9a6fbecbc8aa22750d797459f8ae6417 18-Sep-2012 Rafael Espindola <rafael.espindola@gmail.com> Add a MapVector class. It provides a regular set iteration, but
also provides a insertion order iteration over the values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164157 91177308-0d34-0410-b5e6-96231b3b80d8
apVector.h
fc601db2ed899d800ea0a50f7ecf7de2a820cbc1 17-Sep-2012 Craig Topper <craig.topper@gmail.com> Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164014 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
mmutableMap.h
mmutableSet.h
wningPtr.h
copedHashTable.h
parseSet.h
alueMap.h
list.h
f630e49efc7bf3f1716b6daab3c2cc11a908754a 16-Sep-2012 Craig Topper <craig.topper@gmail.com> Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164006 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
910cf7f712a1895b993df4677c1059c595353dcc 16-Sep-2012 Craig Topper <craig.topper@gmail.com> Tidy up formatting of some elses on a separate line from preceding bracing. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163992 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
644b3840b975cdd7465d16700740dd1dd7034df0 16-Sep-2012 Craig Topper <craig.topper@gmail.com> Tidy up trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163988 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
0c08f5d2b93e551cfe25ec8d387be987f1c89710 16-Sep-2012 Craig Topper <craig.topper@gmail.com> Remove unneeded header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163987 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
4e0ae44b3a1b5f7157351764fd125c7c85959797 15-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix Doxygen issues: wrap code examples in \code and use \p to refer to
parameters.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163984 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
c5252da873d547a19069eaf9030fec203f128f66 14-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix Doxygen issues:
* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
people want -- it starts a new paragraph);
* use \param instead of \arg to document parameters in order to be consistent
with the rest of the codebase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163902 91177308-0d34-0410-b5e6-96231b3b80d8
AGDeltaAlgorithm.h
eltaAlgorithm.h
2d9eb72178af8e79dc6432cd1b7d29bde16da1b9 13-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix Doxygen issues:
* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
people want -- it starts a new paragraph).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163790 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
AGDeltaAlgorithm.h
mallString.h
mallVector.h
tringExtras.h
tringRef.h
riple.h
wine.h
b2eb7406719a0cd70489a1229af643b04882b046 13-Sep-2012 Nick Lewycky <nicholas@mxc.ca> Fix typo in comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163782 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
0d651e0c9d47a459b91755ccf711119f5b085dc5 08-Sep-2012 Ted Kremenek <kremenek@apple.com> Add operator< for FoldingSetNodeID.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163454 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
c05d30601ced172b55be81bb529df6be91d6ae15 06-Sep-2012 Nadav Rotem <nrotem@apple.com> Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be
disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
15d0c81b2496a025af30a78e3a36fd7f05b165ef 05-Sep-2012 Roman Divacky <rdivacky@freebsd.org> Remove unused typedefs gcc4.8 warns about.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163225 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
f7e0ea6627517036c71dfd8e16e85cc7fbc44d4d 05-Sep-2012 Marshall Clow <mclow@qualcomm.com> Removed Trie.h; unused in a long time

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163191 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
43bf70986bb13c812e87ca959dd8f2dd9edf802c 02-Sep-2012 Logan Chien <tzuhsiang.chien@gmail.com> Rename ANDROIDEABI to Android.

Most of the code guarded with ANDROIDEABI are not
ARM-specific, and having no relation with arm-eabi.
Thus, it will be more natural to call this
environment "Android" instead of "ANDROIDEABI".

Note: We are not using ANDROID because several projects
are using "-DANDROID" as the conditional compilation
flag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163087 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
55a4b514faad3c7e91b1cb0ffd3313724c7efc03 30-Aug-2012 Will Dietz <wdietz2@illinois.edu> Fix HashString's Bernstein hash to use unsigned chars, as is usually done.

Changes the hash result for strings containing characters
with values >= 128, such as UTF8 strings (not normal ASCII).

Changed mostly so we match other implementations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162882 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
d939cd68f40e6fa0ccd6bee6391374b66abd71a1 28-Aug-2012 Hal Finkel <hfinkel@anl.gov> Add the Freescale vendor to Triple.

Adds the vendor 'fsl' (used by Freescale SDK) to Triple. This will allow
clang support for Freescale cross-compile configurations.

Patch by Tobias von Koch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162726 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
1144af3c9b4da48cd581156e05b24261c8de366a 25-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix integer undefined behavior due to signed left shift overflow in LLVM.
Reviewed offline by chandlerc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162623 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
enseMapInfo.h
ointerIntPair.h
parseBitVector.h
a00b80b04c5edb08639c1c6b32e9231fd8b066f7 23-Aug-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix a bunch of -Wdocumentation warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162446 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
parseSet.h
bc363931085587bac42a40653962a3e5acd1ffce 22-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Reduce alignment of SmallVector<T> to the required amount, rather than forcing 16-byte alignment. This fixes misaligned SmallVector accesses via ExtractValueInst's SmallVector data member.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162331 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
mallVector.h
cbeb8d9869aafec3c2c1ee0922f0a4d5bb4a916a 17-Aug-2012 Chandler Carruth <chandlerc@gmail.com> Flatten the aligned-char-array utility template to be a directly
templated union at the request of Richard Smith. This makes it
substantially easier to type. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162072 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
58aae3841cb054e909d6b5251399bfd7478653bc 15-Aug-2012 Chad Rosier <mcrosier@apple.com> Fix a typo in VariadicFunction.h that leads to invalid code in macro expansion.
Patch by Andy Gibbs <andyg1001@hotmail.co.uk>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161973 91177308-0d34-0410-b5e6-96231b3b80d8
ariadicFunction.h
b8ea08ca8c43016f5bc35e1a3b6557d414448fae 14-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Avoid undefined behavior in DenseMap::shrink_and_clear(). Log2_32_Ceil(0)
returns 32. This change mirrors the corresponding code in
SmallDenseMap::shrink_and_clear().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161829 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
7c626d30974c632ab500171ff185a24bcf2603bf 14-Aug-2012 Owen Anderson <resistor@mac.com> Add a roundToIntegral method to APFloat, which can be parameterized over various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161807 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
78cab947cf8f81fc3cadbedd90c20fbe6e5eb1ee 10-Aug-2012 Joerg Sonnenberger <joerg@bec.de> Add some missing includes for the build against stdcxx.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161657 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
b0f6759ab93b42570d71665b13d24ca2c4a5f276 06-Aug-2012 Eric Christopher <echristo@apple.com> Add support for the OpenBSD for Bitrig.

Patch by David Hill.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161344 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
46588d4fb9c38ed7ce0cb561884fc20230dc9fd7 01-Aug-2012 Axel Naumann <Axel.Naumann@cern.ch> Reference IntrusiveRefCntPtr in doxygen doc of RefCountedBase to get a link to the pointer class documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161112 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
147d9e05116518461653695a6022f6109f0eb936 01-Aug-2012 Chandler Carruth <chandlerc@gmail.com> Add range erase, element insert, and range insert methods to
TinyPtrVector. With these, it is sufficiently functional for my more
normal / pedestrian uses.

I've not included some r-value reference stuff here because the value
type for a TinyPtrVector is, necessarily, just a pointer.

I've added tests that cover the basic behavior of these routines, but
they aren't as comprehensive as I'd like. In particular, they don't
really test the iterator semantics as thoroughly as they should. Maybe
some brave soul will feel enterprising and flesh them out. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161104 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
0b1bcbf6b87f19402d8aef1ef9f6e527a07de9d4 01-Aug-2012 Chandler Carruth <chandlerc@gmail.com> Add basic in-bounds asserts to TinyPtrVector::erase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161103 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
12648bed2873fdf2120b54c5539026ff468283fb 01-Aug-2012 Nick Kledzik <kledzik@apple.com> Fix shadowed variable warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161097 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
06bd8ca8c276d9bc20b192188224e1e5215666a0 31-Jul-2012 Chandler Carruth <chandlerc@gmail.com> Implement copy and move assignment for TinyPtrVector. These try to
re-use allocated vectors as much as possible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161041 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
b4c28fc93f5149a0bd7967af44c429412e751c56 31-Jul-2012 Chandler Carruth <chandlerc@gmail.com> Clean up trailing whitespace and unnecessary blank lines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161025 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
40dab1059e72d3af59f2523fa8a7d05f40dafca5 31-Jul-2012 Chandler Carruth <chandlerc@gmail.com> Bring TinyPtrVector under test. Somehow we never picked up unit tests
for this class. These tests exercise most of the basic properties, but
the API for TinyPtrVector is very strange currently. My plan is to start
fleshing out the API to match that of SmallVector, but I wanted a test
for what is there first.

Sadly, it doesn't look reasonable to just re-use the SmallVector tests,
as this container can only ever store pointers, and much of the
SmallVector testing is to get construction and destruction right.

Just to get this basic test working, I had to add value_type to the
interface.

While here I found a subtle bug in the combination of 'erase', 'begin',
and 'end'. Both 'begin' and 'end' wanted to use a null pointer to
indicate the "end" iterator of an empty vector, regardless of whether
there is actually a vector allocated or the pointer union is null.
Everything else was fine with this except for erase. If you erase the
last element of a vector after it has held more than one element, we
return the end iterator of the underlying SmallVector which need not be
a null pointer. Instead, simply use the pointer, and poniter + size()
begin/end definitions in the tiny case, and delegate to the inner vector
whenever it is present.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161024 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
ba1f580f338e12c47a600050f7a77fae579acf93 31-Jul-2012 Chandler Carruth <chandlerc@gmail.com> Move the SmallVector unit tests to be type-parameterized so that we can
test more than a single instantiation of SmallVector.

Add testing for 0, 1, 2, and 4 element sized "small" buffers. These
appear to be essentially untested in the unit tests until now.

Fix several tests to be robust in the face of a '0' small buffer. As
a consequence of this size buffer, the growth patterns are actually
observable in the test -- yes this means that many tests never caused
a grow to occur before. For some tests I've merely added a reserve call
to normalize behavior. For others, the growth is actually interesting,
and so I captured the fact that growth would occur and adjusted the
assertions to not assume how rapidly growth occured.

Also update the specialization for a '0' small buffer length to have all
the same interface points as the normal small vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161001 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
a77b95a316e0eb04929c5d7fe96935124c3ed478 29-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> APInt: Simplify code.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160929 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e82fafe9e22c7f0bb35ec4cb7d5428bf9e930807 27-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallVector: Crank up verbosity of asserts per Chandler's request.

Also add assertions to validate the iterator in the insert method overloads.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160882 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
df7c5d4137fd5cf63d9a9b0f09c9d7255895908c 27-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallVector::erase: Assert that iterators are actually inside the vector.

The rationale here is that it's hard to write loops containing vector erases and
it only shows up if the vector contains non-trivial objects leading to crashes
when forming them out of garbage memory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160854 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
5e31044e119c75899b91ca97eb4d8ba786afc01c 23-Jul-2012 Richard Trieu <rtrieu@google.com> Add operator== to APSInt. This will compare the signed bit before doing
the comparison. This prevents large unsigned integers from being equal to
signed negative integers of the same bit width.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160642 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
c8e41c591741b3da1077f7000274ad040bef8002 23-Jul-2012 Sylvestre Ledru <sylvestre@debian.org> Fix a typo (the the => the)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160621 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
aa7507d68dcc04f3118a05b5dff4123ded03253e 19-Jul-2012 Bill Wendling <isanbard@gmail.com> Remove tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160471 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
mmutableSet.h
riple.h
6ef4996b095ef6c0d902798d2455716a79bd0a3d 18-Jul-2012 Jordan Rose <jordan_rose@apple.com> Allow PointerIntPairs to be created from const void *.

For a measure of safety, this conversion is only permitted if the
stored pointer type can also be created from a const void *.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160456 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
1cacae0f297b7330c4cd2b4f0a1f95ab2615bd65 17-Jul-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix broken ipo_ext_iterator constructors.

These functions have obviously never been used before.
They should be identical to the idf_ext_iterator counterparts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160381 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
31f18eeb2bff53ce48c9c980f0b0676401d593c8 17-Jul-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Allow for customized graph edge pruning in PostOrderIterator.h

Make it possible to prune individual graph edges from a post-order
traversal by specializing the po_iterator_storage template. Previously,
it was only possible to prune full graph nodes. Edge pruning makes it
possible to remove loop back-edges, for example.

Also replace the existing DFSetTraits customization hook with a
po_iterator_storage method for observing the post-order. DFSetTraits was
only used by LoopIterator.h which now provides a po_iterator_storage
specialization.

Thanks to Sean and Chandler for reviewing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160366 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
5449a1db40b75586c1daf70a14396295e7b3fe24 15-Jul-2012 Eric Christopher <echristo@apple.com> Move IsSameValue from clang's ASTImporter to be methods on the
APInt/APSInt classes.

Part of rdar://11875995

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160223 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
b76fb96cd66aec709e2a0cfda8c29c53ba5ad98c 13-Jul-2012 Galina Kistanova <gkistanova@gmail.com> Fixed few warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160192 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
d9cff9a25a9d4f2d8d9c1cb4960fb52cb049ef49 08-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallVector: Make use of move semantics to speed up moving objects in erase() and insert()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159914 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
ce9a04132d1bf85967d6ad062d45dd75f148eef1 03-Jul-2012 Chandler Carruth <chandlerc@gmail.com> Micro-optimize this function a bit. This shrinks the generated code
some, and allows the routine to be inlined into common callers. The
various bits that hit this code in their hotpath seem slightly lower on
the profile, but I can't really measure a performance improvement as
everything seems to still be bottlenecked on likely cache misses. =/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159648 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ac24e251014de60a16558fc0a1f2340c334d2aa8 30-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Avoid sign compare warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159481 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
305b515c2787f47adecbe120e4b4bef55c5e5525 20-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Remove 'static' from inline functions defined in header files.

There is a pretty staggering amount of this in LLVM's header files, this
is not all of the instances I'm afraid. These include all of the
functions that (in my build) are used by a non-static inline (or
external) function. Specifically, these issues were caught by the new
'-Winternal-linkage-in-inline' warning.

I'll try to just clean up the remainder of the clearly redundant "static
inline" cases on functions (not methods!) defined within headers if
I can do so in a reliable way.

There were even several cases of a missing 'inline' altogether, or my
personal favorite "static bool inline". Go figure. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158800 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
90420105964371571ccacdf47771c6ca05db2e67 19-Jun-2012 David Blaikie <dblaikie@gmail.com> Don't copy a potentially-uninitialized variable.

Based on review discussion of r158638 with Chandler Carruth, Tobias von Koch, and Duncan Sands and a -Wmaybe-uninitialized warning from GCC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158685 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
d45f7b6b5dd36b4732dff82ab7c8a856a7b36ae0 17-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Bring the return value of SmallVector::insert in line with std::vector::insert.

It always returns the iterator for the first inserted element, or the passed in
iterator if the inserted range was empty. Flesh out the unit test more and fix
all the cases it uncovered so far.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158645 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
b4bec53f367614132290425cb4805a2d5696153a 17-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Remove SmallMap, and the several files that were used to implement it.
We have SmallDenseMap now that has more correct and predictable
semantics, even though it is a more narrow abstraction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158644 91177308-0d34-0410-b5e6-96231b3b80d8
latArrayMap.h
ultiImplMap.h
mallMap.h
5f6c7cfa931a9f9a154c67927f5dec7e928c23d6 17-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallVector: return a valid iterator for the rare case of inserting an empty range into a SmallVector.

Patch by Johannes Schaub!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158643 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
8dffa4a106b52d893388c94c24e365e14c468b7c 17-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Add a unit test for 'swap', and fix a pile of bugs in
SmallDenseMap::swap.

First, make it parse cleanly. Yay for uninstantiated methods.

Second, make the inline-buckets case work correctly. This is way
trickier than it should be due to the uninitialized values in empty and
tombstone buckets.

Finally fix a few typos that caused construction/destruction mismatches
in the counting unittest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158641 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
6446d7e6d641135bdf9dc315ed69d0b10067fbd6 17-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Add tests for *DenesMap for both key and value types' construction and
destruction and fix a bug in SmallDenseMap they caught.

This is kind of a poor-man's version of the testing that just adds the
addresses to a set on construction and removes them on destruction. We
check that double construction and double destruction don't occur.
Amusingly enough, this is enough to catch a lot of SmallDenseMap issues
because we spend a lot of time with fixed stable addresses in the inline
buffer.

The SmallDenseMap bug fix included makes grow() not double-destroy in
some cases. It also fixes a FIXME there, the code was pretty crappy. We
now don't have any wasted initialization, but we do move the entries in
inline bucket array an extra time. It's probably a better tradeoff, and
is much easier to get correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158639 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
dd9d38d57bbd2161e04af90a9e03011afb039b16 17-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Introduce a SmallDenseMap container that re-uses the existing DenseMap
implementation.

This type includes an inline bucket array which is used initially. Once
it is exceeded, an array of 64 buckets is allocated on the heap. The
bucket count grows from there as needed. Some highlights of this
implementation:

- The inline buffer is very carefully aligned, and so supports types
with alignment constraints.
- It works hard to avoid aliasing issues.
- Supports types with non-trivial constructors, destructors, copy
constructions, etc. It works reasonably hard to minimize copies and
unnecessary initialization. The most common initialization is to set
keys to the empty key, and so that should be fast if at all possible.

This class has a performance / space trade-off. It tries to optimize for
relatively small maps, and so packs the inline bucket array densely into
the object. It will be marginally slower than a normal DenseMap in a few
use patterns, so it isn't appropriate everywhere.

The unit tests for DenseMap have been generalized a bit to support
running over different map implementations in addition to different
key/value types. They've then been automatically extended to cover the
new container through the magic of GoogleTest's typed tests.

All of this is still a bit rough though. I'm going to be cleaning up
some aspects of the implementation, documenting things better, and
adding tests which include non-trivial types. As soon as I'm comfortable
with the correctness, I plan to switch existing users of SmallMap over
to this class as it is already more correct w.r.t. construction and
destruction of objects iin the map.

Thanks to Benjamin Kramer for all the reviews of this and the lead-up
patches. That said, more review on this would really be appreciated. As
I've noted a few times, I'm quite surprised how hard it is to get the
semantics for a hashtable-based map container with a small buffer
optimization correct. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158638 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
904cf82f270b9d7bd26df2261f8776efdc9e2fa2 16-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Merge the SmallBitVector and BitVector unit tests with gtest's typed test magic and bring SmallBitVector up to date.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158600 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
48f4dcf0f7fd64df00839018d633944bc2464501 16-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Lift the NumElements and NumTombstones members into the super class
rather than the base class. Add a pile of boilerplate to indirect around
this.

This is pretty ugly, but it allows the super class to change the
representation of these values, which will be key for doing
a SmallDenseMap.

Suggestions on better method structuring / naming are welcome, but keep
in mind that SmallDenseMap won't have an 'unsigned' member to expose
a reference to... =/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158586 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
7f6c82a7e0fbf8ed012bc76471576c8cc42370a3 16-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Factor DenseMap into a base class that implements the hashtable logic,
and a derived class that provides the allocation and growth strategy.

This is the first (and biggest) step toward building a SmallDenseMap
that actually behaves exactly the same as DenseMap, and supports all the
same types and interface points with the same semantics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158585 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
cba91230c0beef79e5042d8e983198b26aac5616 14-Jun-2012 Stepan Dyatkovskiy <stpworld@narod.ru> SmallMap, FlatArrayMap::copyFrom
Replaced memcpy with std::copy, since the first one may work improperly with non POD data.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158457 91177308-0d34-0410-b5e6-96231b3b80d8
latArrayMap.h
14d81c416c72dc779dd31a81f68ebd6a6456f6f0 13-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Group the 'unsigned' members after the pointer to avoid 4 bytes of
padding on x86-64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158421 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
82ce516591f01e31a65cb582732a3de582fc220b 09-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Hashing: Remove outdated comment. Support for reserved hash values was removed in r151865.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158276 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
0fa2b7b90df9a20baf2d14b7bc4fe7db5144efde 02-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Add move semantics to APInt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157883 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
693e3ee0c2d2a2cb6f691222694a788dd595c108 01-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Provide move semantics for (Small)BitVector.

CodeGen makes a lot of BitVector copies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157826 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mallBitVector.h
91a8ad71aa5d08e37a8a4ed364d0dae720d8ea7c 01-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> IntrusiveRefCntPtr: Simplify operator= as suggested by Richard Smith.

This way the constructors do all the hard work. No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157773 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
aad82963837af31c1e5b8b9c3ac282b0e826b18b 29-May-2012 Douglas Gregor <dgregor@apple.com> DenseMap's move assignment operator needs to return *this

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157644 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
2edc74aa1fb541253f4286a70194960dab69506b 28-May-2012 Chris Lattner <sabre@nondot.org> add some helper methods to make the type more uniform.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157554 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
8e337120133c746640246feb9383556d383a94be 28-May-2012 Benjamin Kramer <benny.kra@googlemail.com> DenseMap: Use an early exit when there is nothing to do in DestroyAll().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157550 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
5acc40a0373ed183d944b4f165dbb0b6798d5a92 27-May-2012 Benjamin Kramer <benny.kra@googlemail.com> IntrusiveRefCntPtr: Use the same pattern as the other operator= overloads when using rvalue refs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157546 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
aee60d4d42b913bd3e4958f32ec9e7f2cf28b0ff 27-May-2012 Benjamin Kramer <benny.kra@googlemail.com> DenseMap: Provide a move ctor and move semantics for operator[] and FindAndConstruct.

The only missing part is insert(), which uses a pair of parameters and I haven't
figured out how to convert it to rvalue references. It's now possible to use a
DenseMap with std::unique_ptr values :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157539 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
295d8ff007ef2c36a91141d7f7aa218f43c4c4b5 27-May-2012 Benjamin Kramer <benny.kra@googlemail.com> DenseMap: Factor destruction into a common helper method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157538 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
e3f75f8797b9752bfe7923bff9a87a15a6fe3552 27-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Move-enable IntrusiveRefCntPtr.

These tend to be copied around a lot, moving it instead saves a ton of memory
accesses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157535 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
42a0b48dd3773574f648c19b4d9abafb6b4a4f16 24-May-2012 Justin Holewinski <jholewinski@nvidia.com> Remove the PTX back-end and all of its artifacts (triple, etc.)

This back-end was deprecated in favor of the NVPTX back-end.

NV_CONTRIB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157417 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
a7a2a3635f2fbe46d7d9074798e79e853f69d40b 22-May-2012 Nuno Lopes <nunoplopes@sapo.pt> fix the quotient returned by sdivrem() for the case when LHS is negative and RHS is positive
based on a patch by Preston Briggs, with some modifications

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157231 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
9e7e04823cb472ae8c36ce354365ba76ba1bcb36 19-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Disambiguate call to operator==.

clang++ and msvc happily had no problem with it but g++ refuses to compile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157126 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
96edb648e2ea10e1662758b791fc7b494fe74f49 19-May-2012 Benjamin Kramer <benny.kra@googlemail.com> ValueMap: Use DenseMap's find_as mechanism to reduce use list churn.

Otherwise just looking up a value in the map requires creating a VH, adding it to the use lists and destroying it again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157124 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
ac5802bca0285eee49c1c372846552823d819181 19-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Provide move semantics for TinyPtrVector and for DenseMap's rehash function.

This makes DenseMap<..., TinyPtrVector<...>> as cheap as it always should've been!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157113 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
inyPtrVector.h
661f760320e8b8e9bd44016585648bb1941b1584 15-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Fixed one small stupid, but critical bug.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156810 91177308-0d34-0410-b5e6-96231b3b80d8
latArrayMap.h
00570224891da83c5066b8d135232f96786dbd56 14-May-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove the expensive BitVector::operator~().

Returning a temporary BitVector is very expensive. If you must, create
the temporary explicitly: Use BitVector(A).flip() instead of ~A.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156768 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
9e10d773e155fcd9fba9c3e1a7d2e49f31c42731 14-May-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove BitVector binops.

These operators were crazy slow, calling malloc to return a temporary
result. At the same time, they look very innocent when used in code.

If you need temporary BitVectors to compute your thing, create them
explicitly, and use the inplace logical operators. This makes the high
cost explicit in the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156767 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
03a3811ab48139f45cf47f1168788e630af0d40b 14-May-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add BitVector::anyCommon().

The existing operation (A & B).any() is very slow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156760 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
b08174c0b1ed7a8c3cacc5df506eb98c79305a4e 12-May-2012 Michael J. Spencer <bigcheesegs@gmail.com> Add doxygen comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156665 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
b0940b46edbbe9d3f62d7f6f70330fd87f3507e1 12-May-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Support/StringRef] Add find_last_not_of and {r,l,}trim.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156652 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
ecee47eab409f6a6fada7ace3d9bee0a0146ac3f 09-May-2012 Chad Rosier <mcrosier@apple.com> Add Triple::getiOSVersion.

This new function provides a way to get the iOS version number from ios triples.
Part of rdar://11409204


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156483 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
e74ba3a46d1c86bb218e0d3ba5f28f986eb6e062 07-May-2012 Jordy Rose <jediknil@belkadan.com> Constify (trivially) ImmutableSet::iterator::getVisitState().

This was probably intended all along.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156318 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
49683f3c961379fbc088871a5d6304950f1f1cbc 04-May-2012 Justin Holewinski <jholewinski@nvidia.com> This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it.

The new target machines are:

nvptx (old ptx32) => 32-bit PTX
nvptx64 (old ptx64) => 64-bit PTX

The sources are based on the internal NVIDIA NVPTX back-end, and
contain more functionality than the current PTX back-end currently
provides.

NV_CONTRIB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156196 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
a83a6d3725a9a488e2d10c1f2af46d9c6d82958d 04-May-2012 Chandler Carruth <chandlerc@gmail.com> Add a FoldingSetVector datastructure which is analogous to a SetVector,
but using a FoldingSet underneath and with a largely compatible
interface to that of FoldingSet. This can be used anywhere a FoldingSet
would be natural, but iteration order is significant. The initial
intended use case is in Clang's template specialization lists to
preserve instantiation order iteration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156131 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
38dbb606755232e229f11994fc2bbf10e8c5788b 02-May-2012 John McCall <rjmccall@apple.com> Update SmallVector to support move semantics if the host does.
Note that support for rvalue references does not imply support
for the full set of move-related STL operations.

I've preserved support for an odd little thing in insert() where
we're trying to support inserting a new element from an existing
one. If we actually want to support that, there's a lot more we
need to do: insert can call either grow or push_back, neither of
which is safe against this particular use pattern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155979 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
3703baacf5c17425a07d57583148086a746c5f98 29-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallVector: Don't rely on having an assignment operator around in push_back for POD-like types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155791 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
1dd346ad05d2adbbd787c3bef8c335567f969b82 28-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Use the most basic superclass of SmallVector in ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155760 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
b856d555b0336234cb4d5e2d77c3d506efa17550 25-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Reapply the SmallMap patch with a fix.

Comparing ~0UL with an unsigned will always return false when long is 64 bits long.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155568 91177308-0d34-0410-b5e6-96231b3b80d8
latArrayMap.h
ultiImplMap.h
mallMap.h
bdbf0154769dd2f2565068a51fd49e4be0005f55 25-Apr-2012 Eric Christopher <echristo@apple.com> Revert "First implementation of:"

This reverts commit 76271a3366731d4c372fdebcd8d3437e6e09a61b.

as it's breaking the bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155562 91177308-0d34-0410-b5e6-96231b3b80d8
latArrayMap.h
ultiImplMap.h
mallMap.h
76271a3366731d4c372fdebcd8d3437e6e09a61b 25-Apr-2012 Stepan Dyatkovskiy <stpworld@narod.ru> First implementation of:
- FlatArrayMap. Very simple map container that uses flat array inside.
- MultiImplMap. Map container interface, that has two modes, one for small amount of elements and one for big amount.
- SmallMap. SmallMap is DenseMap compatible MultiImplMap. It uses FlatArrayMap for small mode, and DenseMap for big mode.

Also added unittests for new classes and update for ProgrammersManual.
For more details about new classes see ProgrammersManual and comments in sourcecode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155557 91177308-0d34-0410-b5e6-96231b3b80d8
latArrayMap.h
ultiImplMap.h
mallMap.h
55738761b393cc844e230a74e29edf4cdc37e9b8 21-Apr-2012 Chris Lattner <sabre@nondot.org> stop hiding SmallVector's append that takes a count + element.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155297 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
c0ccb8bb17028fe0dda139c0972c0125d10e6053 20-Apr-2012 Andrew Trick <atrick@apple.com> SparseSet: Add support for key-derived indexes and arbitrary key types.

This nicely handles the most common case of virtual register sets, but
also handles anticipated cases where we will map pointers to IDs.

The goal is not to develop a completely generic SparseSet
template. Instead we want to handle the expected uses within llvm
without any template antics in the client code. I'm adding a bit of
template nastiness here, and some assumption about expected usage in
order to make the client code very clean.

The expected common uses cases I'm designing for:
- integer keys that need to be reindexed, and may map to additional
data
- densely numbered objects where we want pointer keys because no
number->object map exists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155227 91177308-0d34-0410-b5e6-96231b3b80d8
ndexedMap.h
TLExtras.h
parseSet.h
4bb87cbac50098acc6816390c00fad419d3434fc 18-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallPtrSet: Reuse DenseMapInfo's pointer hash function instead of inventing a bad one ourselves.

DenseMap's hash function uses slightly more entropy and reduces hash collisions
significantly. I also experimented with Hashing.h, but it didn't gave a lot of
improvement while being much more expensive to compute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154996 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
164dfb094df947db2117c182ae033ea85c6c42a1 14-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Make StringMap's copy ctor non-explicit.

Without this gcc doesn't allow us to put a StringMap into a
std::map. Works with clang though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154737 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
f7c3e5f05199e1202c86198e0827cac19c0f48b5 11-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> FoldingSet: Push the hash through FoldingSetTraits::Equals, so clients can use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154496 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1fd63df6930a83d9d1378d2c68e19850c652078e 10-Apr-2012 Duncan Sands <baldrick@free.fr> Express the number of ULPs in fpaccuracy metadata as a real rather than a
rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154387 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
5cd79bc14ca51019af4db735d13eac95dab088ed 07-Apr-2012 Chandler Carruth <chandlerc@gmail.com> Perform partial SROA on the helper hashing structure. I really wish the
optimizers could do this for us, but expecting partial SROA of classes
with template methods through cloning is probably expecting too much
heroics. With this change, the begin/end pointer pairs which indicate
the status of each loop iteration are actually passed directly into each
layer of the combine_data calls, and the inliner has a chance to see
when most of the combine_data function could be deleted by inlining.
Similarly for 'length'.

We have to be careful to limit the places where in/out reference
parameters are used as those will also defeat the inliner / optimizers
from properly propagating constants.

With this change, LLVM is able to fully inline and unroll the hash
computation of small sets of values, such as two or three pointers.
These now decompose into essentially straight-line code with no loops or
function calls.

There is still one code quality problem to be solved with the hashing --
LLVM is failing to nuke the alloca. It removes all loads from the
alloca, leaving only lifetime intrinsics and dead(!!) stores to the
alloca. =/ Very unfortunate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154264 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
4e58263459d7f9ae862b52adafe585b66411272f 06-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> DenseMap: Perform the pod-like object optimization when the value type is POD-like, not the DenseMapInfo for it.

Purge now unused template arguments. This has been broken since r91421. Patch by Lubos Lunak!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154170 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
alueMap.h
a47406c442a81aaf368b6e1a9b31d1730975a717 02-Apr-2012 Hal Finkel <hfinkel@anl.gov> Add triple support for the IBM BG/P and BG/Q supercomputers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153882 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
e68e77569ff424d7c28f7386434103ecf2ebb9cb 23-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Move ftostr into its last user (cppbackend) and simplify it a bit.

New code should use raw_ostream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153326 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
4211c196d48a16748158452db918403f30088266 20-Mar-2012 Anna Zaks <ganna@apple.com> Make sure ImmutableSet never inserts Tombstone/Entry into DenseMap.

ImmutAVLTree uses random unsigned values as keys into a DenseMap,
which could possibly happen to be the same value as the Tombstone or
Entry keys in the DenseMap.

Test case is hard to come up with. We randomly get failures on the
internal static analyzer bot, which most likely hits this issue
(hard to be 100% sure without the full stack).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153148 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
4ec692317bc38588d01edb7584953c9aca4a9467 14-Mar-2012 Francois Pichet <pichet2000@gmail.com> Fixes the MSVC build.
Commit r152704 exposed a latent MSVC limitation (aka bug).
Both ilist and and iplist contains the same function:
template<class InIt> void insert(iterator where, InIt first, InIt last) {
for (; first != last; ++first) insert(where, *first);
}

Also ilist inherits from iplist and ilist contains a "using iplist<NodeTy>::insert".
MSVC doesn't know which one to pick and complain with an error.

I think it is safe to delete ilist::insert since it is redundant anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152746 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
69ccf9fc0b131f2c71c3d60791425cbf52392ee4 14-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Move APInt::operator[] inline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152692 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
a18988518869a84cb4d6510e265b1fb1a52268d1 14-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Move APInt::operator! inline, it's small and fuses well with surrounding code when inlined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152688 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e4c972d8643a340e822c419eea2461c1357fb015 13-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove an old hack for pre-2005 MSVC. We don't support ancient microsoft compilers anymore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152659 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
87d8e60505b26960956996550c8b805c81e5b02b 11-Mar-2012 Douglas Gregor <dgregor@apple.com> Add a few missing 'template' keywords

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152525 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
ointerUnion.h
9130b42a85998238b7bbe25ed2989e0605f636f0 11-Mar-2012 Michael J. Spencer <bigcheesegs@gmail.com> Make StringRef::getAsInteger work with all integer types. Before this change
it would fail with {,u}int64_t on x86-64 Linux.

This also removes code duplication.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152517 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
7415659bf8b8523ab8b706caa461984a199dc3c8 09-Mar-2012 Anton Korobeynikov <asl@math.spbu.ru> Add support for r600 (AMD GPUs HD2XXX - HD6XXX) target triplet.

Patch by Tom Stellard!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152400 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
005874056e536324cba9fa253d7e14a6f9dcf4fa 09-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Fix a silly restriction on the fast-path for hash_combine_range. This
caused several clients to select the slow variation. =[ This is extra
annoying because we don't have any realistic way of testing this -- by
design, these two functions *must* compute the same value.

Found while inspecting the output of some benchmarks I'm working on.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152369 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
ed5edea96d72440679311d7d31d39804967f3220 08-Mar-2012 Duncan Sands <baldrick@free.fr> Revert commit 152300 (ddunbar) since it still seems to be breaking
buildbots. Original commit message:

[ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline, reapplied
with a fix for the longstanding over-read of 32-bit pointer values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152304 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
9eddc1cf310c49c0f1f90cbde3687b2610a46689 08-Mar-2012 Daniel Dunbar <daniel@zuster.org> [ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline, reapplied
with a fix for the longstanding over-read of 32-bit pointer values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152300 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
8c0152f8a557742efddc57c3993c2c0a3a79ca4d 08-Mar-2012 Daniel Dunbar <daniel@zuster.org> Revert r152288, "[ADT] Change the trivial FoldingSetNodeID::Add* methods to be
inline.", which is breaking the bots in a way I don't understand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152295 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
3f778c2241dcf44d66245bf4a7d13d1228b5b96e 08-Mar-2012 Daniel Dunbar <daniel@zuster.org> [ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152288 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
4e5b0f994305643638eb206a9d95f182abf99772 07-Mar-2012 Chandler Carruth <chandlerc@gmail.com> What's better than fixing and simplifying broken hash functions?
Deleting them because they aren't used. =D

Yell if you need these, I'm happy to instead replace them with nice uses
of the new infrastructure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152219 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
d4d8b2a7f6d29b44cbc084b49042f44ef109da0c 07-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Add support to the hashing infrastructure for automatically hashing both
integral and enumeration types. This is accomplished with a bit of
template type trait magic. Thanks to Richard Smith for the core idea
here to detect viable types by detecting the set of types which can be
default constructed in a template parameter.

This is used (in conjunction with a system for detecting nullptr_t
should it exist) to provide an is_integral_or_enum type trait that
doesn't need a whitelist or direct compiler support.

With this, the hashing is extended to the more general facility. This
will be used in a subsequent commit to hashing more things, but I wanted
to make sure the type trait magic went through the build bots separately
in case other compilers don't like this formulation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152217 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
bb9dbb7d6b4f39b74b755795e31b219a5518dd77 07-Mar-2012 Eli Friedman <eli.friedman@gmail.com> Missing change in r152106 for TinyPtrVector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152201 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
344224b3a34bda62bea86c06807584ec7558e157 07-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Remove an accidental cut/paste of a comment into the middle of
a function. Dunno how I missed this when going through code...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152196 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
2945a32ffd0bf079de1b23db12bc8a0de596a167 06-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallPtrSet: Provide a more efficient implementation of swap than the default triple-copy std::swap.

This currently assumes that both sets have the same SmallSize to keep the implementation simple,
a limitation that can be lifted if someone cares.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152143 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
e6f1355c38fb66b0bee35cb4d6ec93f07196d961 06-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove excess const, a const_iterator shouldn't be const itself.

Fixes 1242 warnings from gcc during clang build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152120 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
bb07f21c76f011d8dde491104ff242af30bfb4ab 06-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [TinyPtrVector] Add erase method and const-goodness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152107 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
0db235a2b0ed6ae5c3c870012061906054b6dbc4 06-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> PointerUnion::getAddrOf() does not need to be template since we can only
use the first pointer type for it. Rename it to getAddrOfPtr1().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152106 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
ointerUnion.h
inyPtrVector.h
e196633cfd2e314cee6766c039d862fdc705a010 06-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove UsuallyTinyPtrVector.

It is just a worse version of TinyPtrVector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152097 91177308-0d34-0410-b5e6-96231b3b80d8
suallyTinyPtrVector.h
bae75596aec8f9a296d92f1998a187fb9f1ae6b3 06-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add include/llvm/ADT/UsuallyTinyPtrVector.h which is a vector that
optimizes the case where there is only one element.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152090 91177308-0d34-0410-b5e6-96231b3b80d8
suallyTinyPtrVector.h
179bc7cb597c98045fae055fae754da5690ba187 05-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Switch to a C-style cast here to silence a brain-dead MSVC warning. It
complains about the truncation of a 64-bit constant to a 32-bit value
when size_t is 32-bits wide, but *only with static_cast*!!! The exact
signal that should *silence* such a warning, and in fact does silence it
with both GCC and Clang.

Anyways, this was causing grief for all the MSVC builds, so pointless
change made. Thanks to Nikola on IRC for confirming that this works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152021 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
ed7692a136a9bcf513b91b7b5eb33a1e2d83e7ee 04-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Replace the hashing functions on APInt and APFloat with overloads of the
new hash_value infrastructure, and replace their implementations using
hash_combine. This removes a complete copy of Jenkin's lookup3 hash
function (which is both significantly slower and lower quality than the
one implemented in hash_combine) along with a somewhat scary xor-only
hash function.

Now that APInt and APFloat can be passed directly to hash_combine,
simplify the rest of the LLVMContextImpl hashing to use the new
infrastructure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152004 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
528f0bbe19553dfadedca040df13a389daa7593d 04-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Add generic support for hashing StringRef objects using the new hashing library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152003 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
9406da6e664a24c8e408cbba63daf162ca166ed9 04-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Teach the hashing facilities how to hash std::string objects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152000 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
a2a9b9e7752f1eeb8c158112fc940ff67b04d7a1 03-Mar-2012 Daniel Dunbar <daniel@zuster.org> hash_state: Don't use initialization target during initialization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151959 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
171cda96c8fa7ea48f792b700847e750a2036f2f 02-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151932 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
0c7374d87e6bf002028cd19f8ae9547927c9c645 02-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Hashing: microoptimize a truncate on 64 bit away. This currently blocks dead code eliminating the conditional.

The optimizer should handle this eventually, but currently LVI isn't really designed for this kind of stuff.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151918 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
dc62a9069648e86846f9f5a8eed7ad29de6f4163 02-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Make the hashing algorithm Endian neutral. This is a bit annoying, but
folks who know something about PPC tell me that the byte swap is crazy
fast and without this the bit mixture would actually be different. It
might not be worse, but I've not measured it and so I'd rather not trust
it. This way, the algorithm is identical on both endianness hosts. I'll
look into any performance issues etc stemming from this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151892 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
1c1448984d43f1f02c0235d35ebe8460c9b57afd 02-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Simplify the pair optimization. Rather than using complex type traits,
just ensure that the number of bytes in the pair is the sum of the bytes
in each side of the pair. As long as thats true, there are no extra
bytes that might be padding.

Also add a few tests that previously would have slipped through the
checking. The more accurate checking mechanism catches these and ensures
they are handled conservatively correctly.

Thanks to Duncan for prodding me to do this right and more simply.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151891 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
4d628e200f7133e353c38806b57a229ef6ad2ab4 02-Mar-2012 Chandler Carruth <chandlerc@gmail.com> We really want to hash pairs of directly-hashable data as directly
hashable data. This matters when we have pair<T*, U*> as a key, which is
quite common in DenseMap, etc. To that end, we need to detect when this
is safe. The requirements on a generic std::pair<T, U> are:

1) Both T and U must satisfy the existing is_hashable_data trait. Note
that this includes the requirement that T and U have no internal
padding bits or other bits not contributing directly to equality.
2) The alignment constraints of std::pair<T, U> do not require padding
between consecutive objects.
3) The alignment constraints of U and the size of T do not conspire to
require padding between the first and second elements.

Grow two somewhat magical traits to detect this by forming a pod
structure and inspecting offset artifacts on it. Hopefully this won't
cause any compilers to panic.

Added and adjusted tests now that pairs, even nested pairs, are treated
as just sequences of data.

Thanks to Jeffrey Yasskin for helping me sort through this and reviewing
the somewhat subtle traits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151883 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
c7384cfc7addb5d2818ac0bb4492778f28183c49 02-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Add support for hashing pairs by delegating to each sub-object. There is
an open question of whether we can do better than this by treating pairs
as boring data containers and directly hashing the two subobjects. This
at least makes the API reasonable.

In order to make this change, I reorganized the header a bit. I lifted
the declarations of the hash_value functions up to the top of the header
with their doxygen comments as these are intended for users to interact
with. They shouldn't have to wade through implementation details. I then
defined them at the very end so that they could be defined in terms of
hash_combine or any other hashing infrastructure.

Added various pair-hashing unittests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151882 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
4166989f10eaecfb357551788a3d91275e75f119 02-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Remove the misguided extension here that reserved two special values in
the hash_code. I'm not sure what I was thinking here, the use cases for
special values are in the *keys*, not in the hashes of those keys.

We can always resurrect this if needed, or clients can accomplish the
same goal themselves. This makes the general case somewhat faster (~5
cycles faster on my machine) and smaller with less branching.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151865 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
b4d023503b40b45fd11835f1697a17e23f958af3 01-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Fix two warnings in this code that I missed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151839 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
925c3f08713c15114c782123789bf7d8604d4460 01-Mar-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move include/llvm/ADT/SaveAndRestore.h -> include/llvm/Support/SaveAndRestore.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151828 91177308-0d34-0410-b5e6-96231b3b80d8
aveAndRestore.h
0b66c6fca22e85f732cf58f459a06c06833d1882 01-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Rewrite LLVM's generalized support library for hashing to follow the API
of the proposed standard hashing interfaces (N3333), and to use
a modified and tuned version of the CityHash algorithm.

Some of the highlights of this change:
-- Significantly higher quality hashing algorithm with very well
distributed results, and extremely few collisions. Should be close to
a checksum for up to 64-bit keys. Very little clustering or clumping of
hash codes, to better distribute load on probed hash tables.
-- Built-in support for reserved values.
-- Simplified API that composes cleanly with other C++ idioms and APIs.
-- Better scaling performance as keys grow. This is the fastest
algorithm I've found and measured for moderately sized keys (such as
show up in some of the uniquing and folding use cases)
-- Support for enabling per-execution seeds to prevent table ordering
or other artifacts of hashing algorithms to impact the output of
LLVM. The seeding would make each run different and highlight these
problems during bootstrap.

This implementation was tested extensively using the SMHasher test
suite, and pased with flying colors, doing better than the original
CityHash algorithm even.

I've included a unittest, although it is somewhat minimal at the moment.
I've also added (or refactored into the proper location) type traits
necessary to implement this, and converted users of GeneralHash over.

My only immediate concerns with this implementation is the performance
of hashing small keys. I've already started working to improve this, and
will continue to do so. Currently, the only algorithms faster produce
lower quality results, but it is likely there is a better compromise
than the current one.

Many thanks to Jeffrey Yasskin who did most of the work on the N3333
paper, pair-programmed some of this code, and reviewed much of it. Many
thanks also go to Geoff Pike Pike and Jyrki Alakuijala, the original
authors of CityHash on which this is heavily based, and Austin Appleby
who created MurmurHash and the SMHasher test suite.

Also thanks to Nadav, Tobias, Howard, Jay, Nick, Ahmed, and Duncan for
all of the review comments! If there are further comments or concerns,
please let me know and I'll jump on 'em.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151822 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
945c2b3965a5d327055f624dd5dab659551da108 27-Feb-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move "clang/Analysis/Support/SaveAndRestore.h" to "llvm/ADT/SaveAndRestore.h"
to make it more widely available.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151564 91177308-0d34-0410-b5e6-96231b3b80d8
aveAndRestore.h
b4b2688db0f377605b236d81a61560657660548c 27-Feb-2012 Jay Foad <jay.foad@gmail.com> Help the compiler to eliminate some dead code when hashing an array of T
where sizeof (T) is a multiple of 4.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151523 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
6592eacf9006d046e8bc4999600e2973a3b56eac 23-Feb-2012 Jay Foad <jay.foad@gmail.com> The implementation of GeneralHash::addBits broke C++ aliasing rules; fix
it with memcpy. This also fixes a problem on big-endian hosts, where
addUnaligned would return different results depending on the alignment
of the data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151247 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
6212d312e7c6b978b767f648fd2d301131554242 23-Feb-2012 Duncan Sands <baldrick@free.fr> GCC warns about a comparison between signed and unsigned values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151243 91177308-0d34-0410-b5e6-96231b3b80d8
parseSet.h
81a682a4c004b0f44452ef824637a1b6face178f 23-Feb-2012 Andrew Trick <atrick@apple.com> PostRASched: Convert physreg def/use tracking to Jakob's SparseSet.

Added array subscript to SparseSet for convenience.
Slight reorg to make it easier to manage the def/use sets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151228 91177308-0d34-0410-b5e6-96231b3b80d8
parseSet.h
a3bf915888ba81c4f695ebc38e5d6ce0881ef354 22-Feb-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix typos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151163 91177308-0d34-0410-b5e6-96231b3b80d8
parseSet.h
fdf0dc9e0bb5c0b848286e6c96bfc9a390d26775 22-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Support was removed from LLVM's MIPS backend for the PSP variant of that
chip in r139383, and the PSP components of the triple are really
annoying to parse. Let's leave this chapter behind. There is no reason
to expect LLVM to see a PSP-related triple these days, and so no
reasonable motivation to support them.

It might be reasonable to prune a few of the older MIPS triple forms in
general, but as those at least cause no burden on parsing (they aren't
both a chip and an OS!), I'm happy to leave them in for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151156 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f3b06a93825402b2121ec8231f56cd75539fe3aa 22-Feb-2012 NAKAMURA Takumi <geek4civic@gmail.com> ADT/SparseSet.h: Fix up header dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151114 91177308-0d34-0410-b5e6-96231b3b80d8
parseSet.h
62588622d40f6c6f5508496db69e06593b615049 22-Feb-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add a Briggs and Torczon sparse set implementation.

For objects that can be identified by small unsigned keys, SparseSet
provides constant time clear() and fast deterministic iteration. Insert,
erase, and find operations are typically faster than hash tables.

SparseSet is useful for keeping information about physical registers,
virtual registers, or numbered basic blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151110 91177308-0d34-0410-b5e6-96231b3b80d8
parseSet.h
4fbf6581514a494c15b82ce2f9b6f79b24216c6f 21-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Pull the parsing helper functions out of the Triple interface entirely.
They're private static methods but we can just make them static
functions in the implementation. It makes the implementations a touch
more wordy, but takes another chunk out of the header file.

Also, take the opportunity to switch the names to the new coding
conventions.

No functionality changed here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151047 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
0523f41841d0860b2e175a4b20d1ecefd7295c4a 21-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Clean up comments that I missed when changing the triple representation.
Somehow, I even missed the ones I wrote just the other day...

Thanks to Matt for the code review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151045 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
124e51c0d2b521b0fb3aaaf2443403cd451b7857 21-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Switch the llvm::Triple class to immediately parse the triple string on
construction. Simplify its interface, implementation, and users
accordingly as there is no longer an 'uninitialized' state to check for.
Also, fixes a bug lurking in the interface as there was one method that
didn't correctly check for initialization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151024 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
cceb8f44a0ca3a9c57ab3a7f4947b2abda531cef 20-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Move constructors out-of-line and flesh out their documentation. No
functionality changed. This is in preparation for some refactoring of
how this class behaves.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150941 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
1a4b19ef9b870d8c914bcd5ceb520a64a9a2cc52 18-Feb-2012 Talin <viridia@gmail.com> Hashing.h - utilities for hashing various data types.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150890 91177308-0d34-0410-b5e6-96231b3b80d8
ashing.h
d8d110e08ab3fee8d0a2b758c893b7966fd2d3d8 16-Feb-2012 Pete Cooper <peter_cooper@apple.com> Template specialize SmallVector::push_back based on POD-ness of the type. Reduces clang binary by 188KB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150662 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
01d53ec176a6be4585df1f43af11151988ca4b35 15-Feb-2012 Kaelyn Uhrain <rikka@google.com> Add function for computing the edit distance of two arrays.

Accomplished by moving the body of StringRef::edit_distance into
a separate function that accepts two ArrayRefs, and making
StringRef::edit_distance a wrapper around the new function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150621 91177308-0d34-0410-b5e6-96231b3b80d8
dit_distance.h
b83a67e1e3fe210bd99a82eccd3dc5b1b44f1503 13-Feb-2012 Ahmed Charles <ace2001ac@gmail.com> Fix various issues (or do cleanups) found by enabling certain MSVC warnings.

- Use unsigned literals when the desired result is unsigned. This mostly allows unsigned/signed mismatch warnings to be less noisy even if they aren't on by default.
- Remove misplaced llvm_unreachable.
- Add static to a declaration of a function on MSVC x86 only.
- Change some instances of calling a static function through a variable to simply calling that function while removing the unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150364 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
7d5a289f2d7d75c29df4c17856ab54dd28dec508 06-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Introduce helpers to compute the 32-bit varaints and 64-bit variants of
some architectures. These are useful for interacting with multiarch or
bi-arch GCC (or GCC-based) toolchains.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149895 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
c05277ea8744adc1ac75541a078d8ebbb04233a6 05-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> SmallVector's construct_range is the same thing as std::uninitialized_fill, no need to reinvent it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149851 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
b25e44ec1506cd42ab676ac7ddf8dc8f228bcada 05-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Simplify code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149850 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
50bee42b54cd9aec5f49566307df2b0cf23afcf6 05-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert assert(0) to llvm_unreachable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149849 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mmutableSet.h
mallBitVector.h
parseBitVector.h
rie.h
wine.h
69f44692bf5fea1d908fc06487e173837d06ea58 05-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Begin fleshing out more convenience predicates in llvm::Triple and
convert at least one client over to use them. Subsequent patches both to
LLVM and Clang will try to convert more people over to a common set of
predicates.

This round of predicates is focused on OS-categorization predicates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149815 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
bda59fdd71033a8ddfa30ec4b514753017f3da5c 31-Jan-2012 Bob Wilson <bob.wilson@apple.com> Add Triple::getMacOSXVersion to replace crufty code in the clang driver.

This new function provides a way to get the Mac OS X version number from
either generic "darwin" triples of macosx triples.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149438 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
41aa108f743ed3b97cdf060ae25cfef38af5bc9e 31-Jan-2012 Manuel Klimek <klimek@google.com> RefCountedBaseVPTR needs the IntrusiveRefCntPtrInfo as friend,
now that this handles the release / retain calls.

Adds a regression test for that bug (which is a compile-time
regression) and for the last two changes to the IntrusiveRefCntPtr,
especially tests for the memory leak due to copy construction of the
ref-counted object and ensuring that the traits are used for release /
retain calls.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149411 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
6f72ac4799a1a20c07cd96cc994dd6394ebff9a2 31-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Add various coarse bit-width architecture predicates to llvm::Triple.
These are very useful for frontends and other utilities reasoning about
or selecting between triples.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149353 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
97cf71a5179bc4167a750deb09836ae4a75389cb 31-Jan-2012 Ted Kremenek <kremenek@apple.com> Relax constructor for IntrusiveRefCntPtr to not be explicit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149309 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
0004d86704f5c116e43bb6f867d3eba7423640e5 31-Jan-2012 Ted Kremenek <kremenek@apple.com> Use traits for IntrusiveRefCntPtr to determine how to increment/decrement a reference count.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149308 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
babd5980d8a8b4aad9814212a269f6197ebf1f2e 30-Jan-2012 Talin <viridia@gmail.com> DenseMap::find_as() and unit tests.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149229 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
f95b2dafc9a6ae88c6085aceeaf7a34af09df93b 30-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Cleanup the organization of some methods in llvm::Triple and provide
a better doxyment group for convenience predicates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149211 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
19de016955f744cf2466fadcd28e9bf8847dd260 29-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add a BitVector::reset(BitVector&) method.

The alternative LHS &= ~RHS is way too slow because it creates a
temporary that calls malloc/free.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149187 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
04594aeffa3360882eb09a888a0970321b987b16 28-Jan-2012 Rafael Espindola <rafael.espindola@gmail.com> Add r149110 back with a fix for when the vector and the int have the same
width.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149151 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
2527188a42b3250671b69dc979102565be1f910f 25-Jan-2012 Talin <viridia@gmail.com> Additional methods for SmallString.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148881 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
a97a5eabe2a412d7cc078f94b7df7ee8ac840853 24-Jan-2012 Chris Lattner <sabre@nondot.org> add ::drop_back() and ::drop_front() methods, which are like pop_front/pop_back on a vector, but a) aren't destructive to "this", and b) can take a # elements to drop.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148791 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
e55bbfe145cf8dcb9594865f0242321d2be681d6 23-Jan-2012 Chris Lattner <sabre@nondot.org> Various public StringMap methods take or return "MapEntryTy", make it public.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148732 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
0adabe5a08d510d9d208198a4fd9c5fc752af457 23-Jan-2012 Chris Lattner <sabre@nondot.org> revert r148688 too, this isn't safe for DenseMap use. When DenseMap resizes, it will need to copy around arbitrary pointers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148699 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
cef39256986150d6e7d6d87ea36077452f045c50 23-Jan-2012 Chris Lattner <sabre@nondot.org> allow OwningPtr to be copy constructed if null, which is required to
make them be a valuetype in a DenseMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148688 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
3feccbaaee2fe639fd089cdb78ad623f662a5796 20-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Protect SmallVectorImpl's constructor and a few other methods that aren't meant to be public.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148550 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
46ada15d425c0f075853adff14927bbfc7fc39dc 19-Jan-2012 Chris Lattner <sabre@nondot.org> Introduce a new MutableArrayRef class, which refers to a series of mutable
T's that are consequtively in memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148463 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
8887a0f34152b63a84e759b76694d6928d01b4ee 19-Jan-2012 Rafael Espindola <rafael.espindola@gmail.com> Add support for the gnueabihf environment. Patch by Sylvestre Ledru.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148434 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
fced2945995b4fd8f28f7dec9fcb5a6ab2e2798d 17-Jan-2012 Jakub Staszak <kubastaszak@gmail.com> Trailing spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148332 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
1752e45de9914cb52d748c1052ecd2f1414bced4 17-Jan-2012 Chris Lattner <sabre@nondot.org> add some missing const qualifiers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148274 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
ff5bad078782b6472d6cd0974bf08fe3473050e6 17-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add portable bit mask operations to BitVector.

BitVector uses the native word size for its internal representation.
That doesn't work well for literal bit masks in source code.

This patch adds BitVector operations to efficiently apply literal bit
masks specified as arrays of uint32_t. Since each array entry always
holds exactly 32 bits, these portable bit masks can be source code
literals, probably produced by TableGen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148272 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
fd553c2cb54ee01d56f5d80d70a5d52220286fcc 10-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Teach the triple library about the androideabi environment.

Patch by Evgeniy Stepanov.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147871 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f321e1075eabae96f62b1f2570d9dee5d10b8200 07-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove VectorExtras. This unused helper was written for a type of API that is discouraged now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147738 91177308-0d34-0410-b5e6-96231b3b80d8
ectorExtras.h
f0be7ca7e42915779175a9332c6baba18a2a840c 07-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Port the trick to skip the check for empty buckets from StringMap to DenseMap.

This should fix the odd behavior that find() is slower than lookup().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147731 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
0fcccd4d45b593bc11e56ff5be36a04836749376 05-Jan-2012 Chris Lattner <sabre@nondot.org> allow clients of SmallSet to specify their own comparison function for the set.
Patch by Stepan Dyatkovskiy!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147607 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
85c07ce0481daa8f462943f621efdb7f21f6d3ef 04-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> StringMap.find never points to an empty bucket or tombstone, skip the check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147546 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
c894b02ae037b5fdb38e42535539d5a0e49d6c41 27-Dec-2011 Benjamin Kramer <benny.kra@googlemail.com> Switch StringMap from an array of structures to a structure of arrays.

- -25% memory usage of the main table on x86_64 (was wasted in struct padding).
- no significant performance change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147294 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
ab26da9e679afb26b6af589c2d414d50bf4a6441 22-Dec-2011 Lang Hames <lhames@gmail.com> Fixed typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147113 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
2d24e2a396a1d211baaeedf32148a3b657240170 20-Dec-2011 David Blaikie <dblaikie@gmail.com> Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
f5c9bd07bca0a14afc37b7c28409736e001de96d 20-Dec-2011 Chris Lattner <sabre@nondot.org> add a method to improve compatibility with SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146928 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
1243cdda6330139c55e8ecc033fcb559581e6870 17-Dec-2011 Chandler Carruth <chandlerc@gmail.com> As Doug pointed out (and I really should know), it is perfectly easy to
make VariadicFunction actually be trivial. Do so, and also make it look
more like your standard trivial functor by making it a struct with no
access specifiers. The unit test is updated to initialize its functors
properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146827 91177308-0d34-0410-b5e6-96231b3b80d8
ariadicFunction.h
a602aec8696708d46d57a74546fa5996c51abd5b 16-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Make GCC happy by using makeAraryRef instead of the implicit conversion.
I have no idea why GCC can't cope with the implicit conversion and Clang
can, or whose bug it is. Grr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146732 91177308-0d34-0410-b5e6-96231b3b80d8
ariadicFunction.h
d916ce3c8e1c88352703db12b47862b1794c7dad 16-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Add a generic collection of class templates to ADT for building
variadic-like functions in C++98. See the comments in the header file
for a more detailed description of how these work. We plan to use these
extensively in the AST matching library. This code and idea were
originally authored by Zhanyong Wan. I've condensed it using macros
to reduce repeatition and adjusted it to fit better with LLVM's ADT.

Thanks to both David Blaikie and Doug Gregor for the review!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146729 91177308-0d34-0410-b5e6-96231b3b80d8
ariadicFunction.h
b4b54153ad760c69a00a08531abef4ed434a5092 12-Dec-2011 Tony Linthicum <tlinth@codeaurora.org> Hexagon backend support

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146412 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
a81ac8f2b5d4f61f7bc353f95cc1d0a05266f51c 08-Dec-2011 Michael J. Spencer <bigcheesegs@gmail.com> Support/FileSystem: Implement recursive_directory_iterator and make
directory_iterator preserve InputIterator semantics on copy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146200 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
5729c5848c74a2413cc1d32a5f3c746aff5d9ccc 07-Dec-2011 David Blaikie <dblaikie@gmail.com> Adding missing anchor to DATDeltaAlgorithm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146025 91177308-0d34-0410-b5e6-96231b3b80d8
AGDeltaAlgorithm.h
266451dd95b12323fad9418df9b217918ec7e9e0 06-Dec-2011 Chris Lattner <sabre@nondot.org> allow TinyPtrVector to implicitly convert to ArrayRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145898 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
aa21e417f24fe9be4fd8db366766fb262c96703e 06-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Silence tsan false-positives (tsan can't track things which are only safe due to
memory fences) in statistics registration, which works the same way that
ManagedStatic registration does.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145869 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
e15402f92b6949d2474cc82648239fe22e5a2209 05-Dec-2011 Anna Zaks <ganna@apple.com> Change the Dominators recalculate() function to only rely on GraphTraits

This is a patch by Guoping Long!

As part of utilizing LLVM Dominator computation in Clang, made two changes to LLVM dominators tree implementation:

- (1) Change the recalculate() template function to only rely on GraphTraits.
- (2) Add a size() method to GraphTraits template class to query the number of nodes in the graph.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145837 91177308-0d34-0410-b5e6-96231b3b80d8
raphTraits.h
39a2eb7dea034820eb4b93b2361ae307b0cee5f2 28-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Handle more cases in APInt::getLowBitsSet's fast path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145249 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f24944953986ad1e0a78279e6c3288e15a7e2619 18-Nov-2011 Ted Kremenek <kremenek@apple.com> Fix bug in RefCountedBase/RefCountedBaseVPTR where the reference count was accidentally copied as part of the copy constructor. This could result in objects getting leaked because there reference count was too high.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144931 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
590853667345d6fb191764b9d0bd2ff13589e3a3 06-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Replace (Lower|Upper)caseString in favor of StringRef's newest methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143891 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
589fbb1770df5f7bee1c5e24e9e8f4ca5091d528 06-Nov-2011 Daniel Dunbar <daniel@zuster.org> ADT/StringRef: Add ::lower() and ::upper() methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143880 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
33ba8b0e96acde0d8ab1ffc565a5ef4c8b6b6ac2 28-Oct-2011 Dan Gohman <gohman@apple.com> Remove the Alpha backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143164 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
3e6157de576e349d33a9b08d103405b3a8fb9159 25-Oct-2011 Dan Gohman <gohman@apple.com> Remove the Blackfin backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142880 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
29074ccf6cb00a3cbe32a3b7809d970ecaf8c9bf 25-Oct-2011 Dan Gohman <gohman@apple.com> Remove the SystemZ backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142878 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f6eede5258af1b144e0777c25d89c57514a71371 20-Oct-2011 Duncan Sands <baldrick@free.fr> Avoid warnings about the parameter G being unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142573 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
a046d2ff9a6ef1a5ecf1068d9fce714db7557c2a 13-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Use unsigned multiply to hash integers, so we don't end up with undefined behavior for large signed integers. Based on patch by Ahmed Charles.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141827 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
8cc4769108272d309038a657e42b7fcbc5bd94f3 10-Oct-2011 Andrew Trick <atrick@apple.com> Allow stat += 0 without activating the stat.

For me, this is a nice convenience. We generally want grep to match
stats output only when the event has occurred.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141574 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
b35e4e84727ff5ba3621b39caa622baef431ca45 10-Oct-2011 Andrew Trick <atrick@apple.com> whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141572 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
4f101db8852ba60d8d9545f7e0b5ad8a7b18c8b1 02-Oct-2011 Ted Kremenek <kremenek@apple.com> Make canonicalization of ImmutableSetRef::asImmutableSet() semi-explicit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140959 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
b3e3b006bd5c82516d6fdb487d5c1263a5249474 23-Sep-2011 Anna Zaks <ganna@apple.com> Add getTreeFactory() to ImmutableSet to allow construction of ImmutableSetRef from an ImmutableSet object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140402 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
70303688bc489a316cb0892499ac4024088fa58a 20-Sep-2011 Akira Hatanaka <ahatanak@gmail.com> Add mips64 & mips64el to Triple. Patch by Liu with modifications.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140157 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
166e0539c987a5bea2432354b2437eba29bb1ce0 17-Sep-2011 Ted Kremenek <kremenek@apple.com> Add ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and its Factory. This may eventually replace Immtuable[Map,Set].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139967 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
dcd999624159842886d4be21efcc3ba0e61bab99 14-Sep-2011 Douglas Gregor <dgregor@apple.com> Add APInt support for converting to/from hexatridecimal strings

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139695 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
05d71380181a874cbe70bd2c30fa5eb71eb0d661 29-Aug-2011 Tobias Grosser <grosser@fim.uni-passau.de> Add AMDIL as valid target triple to LLVM.

Submitted by: Villmow, Micah <Micah.Villmow@amd.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138734 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
38fb2db6c9f64a59875d034e2a2cab27603c1884 23-Aug-2011 Ivan Krasin <krasin@chromium.org> This patch adds support of le32 pseudo-cpu that stands for generic
32-bit little-endian CPU. Used by PNaCl and Emscripten.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138335 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
cafe614035c8db70eb5da96dba00696db381674f 20-Aug-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Add IntervalMap::const_iterator::atBegin().

It returns true when operator--() can be called.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138107 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
fb23462889ff2dcd016a4b4169ebce94a878218e 19-Aug-2011 Ivan Krasin <krasin@chromium.org> Add NativeClient operating system support.

This patch adds support of NativeClient (*-*-nacl) OS support to LLVM.
It's already supported in autoconf/config.sub.

The motivation for this change is to start upstreaming PNaCl work. The
whole set of patches include llvm backends (i686, x86_64, ARM),
llvm-gcc (probably, would not be upstreamed because it's deprecated)
and clang (the work has been just started, the amount of changes is
going to be low and the most of the work is expected to be done close
to the mainline).




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138005 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
823eb1ca11d684530048f1fe85a727aa1ef622d1 12-Aug-2011 Chris Lattner <sabre@nondot.org> Fix an obscure bug in PointerUnion that would bite PointerUnion3/4. Basically,
when checking isNull(), we'd pick off the sentinel bit for the outer
PointerUnion, but would not recursively convert the inner pointerunion to bool,
so if *its* sentinel bit is set, isNull() would incorrectly return false.

No testcase, because someone hit this when they were trying to refactor code
to use PointerUnion3, but they since found a better solution.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137428 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
5207936a24ab9e0bfaa10e798625df65143e3716 04-Aug-2011 Andrew Trick <atrick@apple.com> An interface for iterating over a loop's blocks in DFS order.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136838 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
cd0bc905d2c100edbf2f65ac7f1d58353fb1728c 29-Jul-2011 David Greene <greened@obbligato.org> Add a std::string Wrapper for TableGen

Create a std::string wrapper for use as a DenseMap key. DenseMap is
not safe in generate with strings, so this wrapper indicates that only
strings guaranteed not to have certain values should be used in the
DenseMap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136481 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
4ed960061a1aa85bef288f06cb33c5c5b8706860 28-Jul-2011 Duncan Sands <baldrick@free.fr> This file was moved from Support to ADT. Correct a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136344 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
297738fa95d4bb7849c197926f4d4abdcd812e40 28-Jul-2011 Nick Lewycky <nicholas@mxc.ca> In DenseMapInfo<pair<T, U>> tombstone key, use the tombstone for T and U instead
of the empty key for U. This shouldn't really matter because the tombstone key
for the pair was still distinct from every other key, but it is odd. Patch by
Michael Ilseman!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136336 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
18dceba0bb5e38250535401ecc9d9737943d0657 27-Jul-2011 Ted Kremenek <kremenek@apple.com> Add a generic 'capacity_in_bytes' function to allow inspection of memory usage of various data structures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136233 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
mallVector.h
b08904093ab97b0c0ef84f5834b4834c188cb44d 26-Jul-2011 Duncan Sands <baldrick@free.fr> Strip trailing whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136099 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
652b48bf231521642c53221a7d10a0acf2030f48 26-Jul-2011 Duncan Sands <baldrick@free.fr> Teach the Triple class about kfreebsd (FreeBSD kernel with
a GNU userspace).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136085 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
b7fbcc9696e38ca26c7eb67077c04b51c846c9cb 24-Jul-2011 Chris Lattner <sabre@nondot.org> 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
riple.h
3f25ee080ca7c92ff735df29c78e7cfbd62c8cb6 24-Jul-2011 Chris Lattner <sabre@nondot.org> 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
wine.h
f6275309994dea2ec852c1f539875ae643646ec5 24-Jul-2011 Frits van Bommel <fvbommel@gmail.com> 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
rrayRef.h
5333658df7acba70664417c3916c003d0c5fa59f 22-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> Initialize DenseSets lazily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135717 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
c30a38f34bdfecb99ce49e3ffa479039c9bf0209 21-Jul-2011 Chris Lattner <sabre@nondot.org> 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
TLExtras.h
3ba292dbc2acee2d1052fb7ffe332e2164147b47 18-Jul-2011 Jeffrey Yasskin <jyasskin@google.com> 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
PInt.h
22e522e08640be459f237796009cf7666d6d75e7 18-Jul-2011 Chris Lattner <sabre@nondot.org> various cleanups noticed by Frits


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135396 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
1419f9206e6d321e5ccd8ae99a63d5cb98493bb5 18-Jul-2011 Chris Lattner <sabre@nondot.org> remove pasto


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135394 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
b80e3477d144a42b764e32f61ede4f842ca47151 18-Jul-2011 Frits van Bommel <fvbommel@gmail.com> 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
rrayRef.h
c48e1ef0e22b4113dd4dd48c5b170a19fe4d0188 18-Jul-2011 Frits van Bommel <fvbommel@gmail.com> 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
rrayRef.h
79976a40728c8baa8cd16de90173fe2c48937e22 18-Jul-2011 Chris Lattner <sabre@nondot.org> 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
inyPtrVector.h
840635741f132a9a10f052cbf3b21e14bc74835a 18-Jul-2011 Chris Lattner <sabre@nondot.org> 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
inyPtrVector.h
9d69d4aadd4a58aba5634d5c3d2c2a6d8d284134 18-Jul-2011 Chris Lattner <sabre@nondot.org> introduce a new TinyPtrVector class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135365 91177308-0d34-0410-b5e6-96231b3b80d8
inyPtrVector.h
3d42bfbbdd26ac56ccd706d4ebee984490c72ecc 15-Jul-2011 Jeffrey Yasskin <jyasskin@google.com> 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
PFloat.h
d7c027322ebccd9666c3f46d9a5236ba76fda434 14-Jul-2011 Chris Lattner <sabre@nondot.org> 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
tringMap.h
5d4f9909c49d28db9572acc4513c1a695b0c53da 13-Jul-2011 Jay Foad <jay.foad@gmail.com> 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
rrayRef.h
9cbd7afb76f20ce874464c238764c54f86b3ce3b 07-Jul-2011 Owen Anderson <resistor@mac.com> 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
mallVector.h
298bc9a1a5161a5f6e5a0f35e8372d008ef6e812 06-Jul-2011 Nick Lewycky <nicholas@mxc.ca> Add ImmutableList::contains(). Patch by Rui Paulo!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134545 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
4d59ff95d8f28089dce9997a38a334c18f50a641 02-Jul-2011 Eric Christopher <echristo@apple.com> 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
riple.h
6ced1d12dd7ee18d65a6df6e66c9662753a5876d 02-Jul-2011 Douglas Gregor <dgregor@apple.com> Add initial *-*-rtems* target, from Joel Sherrill

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134282 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
2a4a6fecf0b8c92223f8fdf19545b564b7d3fcde 22-Jun-2011 Jay Foad <jay.foad@gmail.com> 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
rrayRef.h
e275c1c9b5a4c930360f0bdb8cb41a8c66febb2b 21-Jun-2011 Jay Foad <jay.foad@gmail.com> Remove deprecated forms of StringMap::GetOrCreateValue().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133517 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
39ff10a293012fe6f2db682c5518e1be2c50ca67 21-Jun-2011 Chris Lattner <sabre@nondot.org> 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
tringMap.h
9fa7cb1ba65f70f6126b01ce67021962fd0e0721 15-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Constify PackedVector::reference::operator T().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133074 91177308-0d34-0410-b5e6-96231b3b80d8
ackedVector.h
cf886188fb04d9521db39fe5213df1295673f51e 15-Jun-2011 Ted Kremenek <kremenek@apple.com> 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
PInt.h
74ee8ace0c6fd6715d16fd4f1a0e36a8a158868e 31-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> 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
ackedVector.h
fe754ab90adf114430f77f402dc6b8b5245c00f2 29-May-2011 John McCall <rjmccall@apple.com> ...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
riple.h
832a9d1a76d30ffd295453e93e8eb52948e5813e 29-May-2011 John McCall <rjmccall@apple.com> 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
riple.h
6d5502eb4966fb2f81fe951d0acf11cfa5cd4acf 20-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> 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
tringRef.h
aea7689e622ae46e854d01d61bf8db80890e6074 16-May-2011 Zhongxing Xu <xuzhongxing@gmail.com> Remove redundant template partial specilization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131402 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
6765f78efbd9d43f429344af7d997ec2df495b02 14-May-2011 John McCall <rjmccall@apple.com> 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
tringRef.h
6e97eced2f036ef0016c124d45e2fb4c3b95dd8d 03-May-2011 Bob Wilson <bob.wilson@apple.com> Fix a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130761 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
6cf081cbe5963d6e1b12b0ac1268538a38acd0f1 28-Apr-2011 Lenny Maiorani <lenny@colorado.edu> 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
tringRef.h
776157ac926102de7a8e40e936dd9efcd7f9dd1b 28-Apr-2011 Chandler Carruth <chandlerc@gmail.com> Fix more -Wnon-pod-memset warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130392 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
e6b693db8cc07be91229bef0d8577ce8b5caf34b 28-Apr-2011 Ted Kremenek <kremenek@apple.com> 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
enseMap.h
450ed1a05bd5e12c141629b0d0ba275958634980 28-Apr-2011 Chris Lattner <sabre@nondot.org> 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
enseMap.h
6311a55b9dae82977c892ef9bda7c39f781ea564 25-Apr-2011 Chris Lattner <sabre@nondot.org> 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
oldingSet.h
e27c3ea2bcdabf1b8be87675c66a38c3ad0ac1f9 25-Apr-2011 Chris Lattner <sabre@nondot.org> 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
oldingSet.h
f462ab431f76292d939aa3adac2101a18407077d 24-Apr-2011 Sebastian Redl <sebastian.redl@getdesigned.at> Give ImmutableIntervalMap.h an include guard.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130094 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
ddcdcc88631c6bd4ad43d9198b98bc9a829be036 23-Apr-2011 Jay Foad <jay.foad@gmail.com> Remove unused STL header includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
tringMap.h
e1fee48cd0d1e515f247fe3bceceb0f854623f73 20-Apr-2011 Justin Holewinski <justin.holewinski@gmail.com> 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
riple.h
558692fd0a31d4d3ae4fd09a3a02f80da2e44e5c 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
398a5ca9cdf6256775904d957d6c40b63d45636c 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
1af394766fe4e725d5af2fe82c2ad9cfcbc7dd34 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
e1fe09f6826f158def69cff89f3ce4e67e199bb5 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
4860fe0ad0447f8545bdbc1b327e82cb1ba41a51 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
8974153870928527826ea5bad3359377b66666cc 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> ADT/Triple: Add isOSVersionLT helper function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129800 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
087d6a59adef985e307ae4dcce670aa87d7b52be 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
0dde4c00ee3b3514fcbabb7bca6b1f1189c4c5b9 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> 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
riple.h
437ef0cfb74102208d6e96ff7e7f1204835e66f3 15-Apr-2011 Lenny Maiorani <lenny@colorado.edu> 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
tringRef.h
7a2bdde0a0eebcd2125055e0eacaca040f0b766c 15-Apr-2011 Chris Lattner <sabre@nondot.org> Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
list.h
715c80a00b965f19ca2c7dacbc2f809221cc2730 13-Apr-2011 Jay Foad <jay.foad@gmail.com> Fix typo in comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129436 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
b1145c8cee6ab749f00d07d3d7dab0d1d1fd0c06 09-Apr-2011 Chris Lattner <sabre@nondot.org> drive by bug fix: DenseMapInfo::isEqual should be determined according to
isEqual of its members, not operator==.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129233 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
10fdd5a0f622bdea4003ffa818eeb9486bfb0730 04-Apr-2011 Peter Collingbourne <peter@pcc.me.uk> IntrusiveRefCntPtr: in RefCountedBase and RefCountedBaseVPTR, make
ref_cnt mutable and Retain/Release const to enable reference counted
pointers to const objects

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128804 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
5907d863659eb972ebb2afe07bc863a4c616f0ef 02-Apr-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Add an InterferenceCache class for caching per-block interference ranges.

When the greedy register allocator is splitting multiple global live ranges, it
tends to look at the same interference data many times. The InterferenceCache
class caches queries for unaltered LiveIntervalUnions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128764 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
03ef44991768b803ed5b210877ce0d83bf16fd93 30-Mar-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Reset StringMap's NumTombstones on clears and rehashes.

StringMap was not properly updating NumTombstones after a clear or rehash.

This was not fatal until now because the table was growing faster than
NumTombstones could, but with the previous change of preventing infinite
growth of the table the invariant (NumItems + NumTombstones <= NumBuckets)
stopped being observed, causing infinite loops in certain situations.

Patch by José Fonseca!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128567 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
e10fff6f8802d6ab4045d9d0bb22e6f37e6d3d0b 30-Mar-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Prevent infinite growth of SmallPtrSet instances.

Rehash but don't grow when full of tombstones.

Patch by José Fonseca!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128566 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
aea4fe2862ce17acc6ce943df589ee8d5eb05adf 30-Mar-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Prevent infinite growth of SmallMap instances.

Rehash but don't grow when full of tombstones.

Patch by José Fonseca!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128565 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
414fdbdb0104fdc8c570287f94df8bb697e7b7c1 30-Mar-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Prevent infinite growth of the DenseMap.

When the hash function uses object pointers all free entries eventually
become tombstones as they are used at least once, regardless of the size.

DenseMap cannot function with zero empty keys, so it double size to get
get ridof the tombstones.

However DenseMap never shrinks automatically unless it is cleared, so
the net result is that certain tables grow infinitely.

The solution is to make a fresh copy of the table without tombstones
instead of doubling size, by simply calling grow with the current size.

Patch by José Fonseca!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128564 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
2746000f4fa54e6ad00cf96910ea5772803624ed 30-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Add APFloat::getExactInverse.

The idea is, that if an ieee 754 float is divided by a power of two, we can
turn the division into a cheaper multiplication. This function sees if we can
get an exact multiplicative inverse for a divisor and returns it if possible.

This is the hard part of PR9587.

I tested many inputs against llvm-gcc's frotend implementation of this
optimization and didn't find any difference. However, floating point is the
land of weird edge cases, so any review would be appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128545 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
d01f2633b9aab6281c936da04226b46a0dde7ba9 30-Mar-2011 Jay Foad <jay.foad@gmail.com> Fix more zero length memset warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128543 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
6208610fd602ebdb18bb793152899573d0b2b7ab 27-Mar-2011 Frits van Bommel <fvbommel@gmail.com> Constant folding support for calls to umul.with.overflow(), basically identical to the smul.with.overflow() code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128379 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
116e2348edee6c216a9e37484b62fc2fda595208 22-Mar-2011 Ted Kremenek <kremenek@apple.com> Relax access control on 'Release' method of RefCountedBase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128054 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
47f0f1856f189e9e0d9540bd3f82b26f77088a7d 21-Mar-2011 Ted Kremenek <kremenek@apple.com> Allow a client to clear an IntrustiveRefCntPtr (deliberately leaking the referenced object).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128007 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
b518c25b3e3ec03da389ca48910ded42ca1305e3 20-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> If a class inherits from RefCountedBaseVPTR allow all its subclasses to be used with IntrusiveRefCntPtr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127966 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
d9103df51b858cf051a1650ac7eb33d416e9ac41 17-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number.

This will come in handy soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127828 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
6046cffbaf584b5d6bd7baf827794a5f91a07a9b 15-Mar-2011 John Thompson <John.Thompson.JTSoftware@gmail.com> Add scei vendor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127705 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
e54f64899fbaaa95fc3241236aabfaa37003a658 07-Mar-2011 Duncan Sands <baldrick@free.fr> Often GCC can see that NumBuckets is zero here, resulting in a warning
about possibly swapped memset parameters. Avoid the warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127170 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
a36be826643ed1f6a4639f79270276df621853ba 07-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Try fixing mingw build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127153 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
128ccbb8e5e142d4ec6c9afb4160b74f76cb3064 07-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Do a compiler check that we use one of the types from PointerUnion[N], instead of a runtime check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127145 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
88b0c6a59a54a2d7b3763dfabb595ce0e09e658a 05-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Avoid zero-sized allocations when copying a fresh DenseMap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127110 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
49d443053bf6565f2420692b54f96abffa76f236 05-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Lazily allocate DenseMaps.

This makes lookup slightly more expensive but it's worth it, unused
DenseMaps are common in LLVM code apparently.

1% speedup on clang -O3 bzip2.c
4% speedup on clang -O3 oggenc.c (Release build of clang on i386/linux)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127088 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
fa09685a9aa17dbdd4c72ad032684debb25feb0b 02-Mar-2011 Chris Lattner <sabre@nondot.org> add some slice helper methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126878 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
181436f11b740300b7032a7ac1ad848498a1a13e 01-Mar-2011 Dan Gohman <gohman@apple.com> Simplify this code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126785 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
cdac46d18e8bf1850b435960ccc29fb8743d9b05 27-Feb-2011 Chris Lattner <sabre@nondot.org> add the ability to walk the scope tree and insert at not-the-current
scope.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126591 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
878ad7afa512ef300d5df4e7ca0189775342dfc2 27-Feb-2011 Chris Lattner <sabre@nondot.org> add a data() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126590 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
0aa00f91100fb031cd9cde2562cdc029f4fb26d5 27-Feb-2011 Daniel Dunbar <daniel@zuster.org> Support: Add llvm::AreStatisticsEnabled().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126558 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
9b6af8de58140566a0e6567508bf906027422e7c 24-Feb-2011 Cameron Zwarich <zwarich@apple.com> Add a getNumSignBits() method to APInt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126379 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
438208e8cb29c67b2177619a339b84291729b6b7 23-Feb-2011 Frits van Bommel <fvbommel@gmail.com> Implement TODO for implicit C-array-to-ArrayRef conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126311 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
2d76ad6df91d3192f986efd19d70a6d892a05b6c 22-Feb-2011 Nick Lewycky <nicholas@mxc.ca> Fix C++0x incompatibility. The signature of std::make_pair<> changes from:
template <class T1, class T2> pair<T1,T2> make_pair(const T1&, const T2&);
to
template <class T1, class T2> pair<V1, V2> make_pair(T1&&, T2&&);
so explicitly specifying the template arguments to make_pair<> is going to break
when C++0x rolls through. Replace them with equivalent std::pair<>. Patch by
James Dennett!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126256 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
mmutableMap.h
38297f5f760de604258aaa9000e5aadb43c78921 19-Feb-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Allow getting the address of the value in a PointerUnion or PointerIntPair if one is
confident enough that he knows what he is doing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126019 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
ointerUnion.h
3f912adeae348cf230795c2c9d83165e7d854d43 19-Feb-2011 Ted Kremenek <kremenek@apple.com> Add ImmutableMap methods 'manualRetain()', 'manualRelease()', and 'getRootWithoutRetain()' to help more aggressively reclaim memory in the static analyzer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126011 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
093399cbf3bcdb31d04b3bf5c5691fc88c25da48 17-Feb-2011 Nadav Rotem <nadav.rotem@intel.com> Enhance constant folding of bitcast operations on vectors of floats.
Add getAllOnesValue of FP numbers to Constants and APFloat.
Add more tests.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125776 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
6904f05e607b6bbdfa96a2ebb628ebf3a1f21455 17-Feb-2011 NAKAMURA Takumi <geek4civic@gmail.com> Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.

No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125747 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
ab4c366274a582dd8146b2820c6b999cad5fce36 15-Feb-2011 Duncan Sands <baldrick@free.fr> Spelling fix: consequtive -> consecutive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125563 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
04b2f0d99feb9cdf87eb8f35483816d757d170dd 15-Feb-2011 Chris Lattner <sabre@nondot.org> fix comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125543 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
04df049014396fe97a31bf3fa8951201b2ed8ffe 15-Feb-2011 Chris Lattner <sabre@nondot.org> fix some typos.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125536 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
75831904220042260c4faece8507a2807acba47f 14-Feb-2011 Chris Lattner <sabre@nondot.org> revert my ConstantVector patch, it seems to have made the llvm-gcc
builders unhappy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125504 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
283c8caccd093f8e1d4f0bdd01ac240b4edbd20a 14-Feb-2011 Chris Lattner <sabre@nondot.org> Switch ConstantVector::get to use ArrayRef instead of a pointer+size
idiom. Change various clients to simplify their code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125487 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
2b9bc422a5e6840f5b925316bc06d5943deb610a 14-Feb-2011 Chris Lattner <sabre@nondot.org> add a new ArrayRef class. This is intended to replace the idiom we
use in many places where we pass a pointer and size to abstract APIs
that can take C arrays, std::vector, SmallVector, etc. It is to arrays
what StringRef is to strings.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125486 91177308-0d34-0410-b5e6-96231b3b80d8
rrayRef.h
551b6751a0a1bace73d4490b02b720e5e5edf787 14-Feb-2011 Nick Lewycky <nicholas@mxc.ca> Fix typo in comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125480 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
16e036fa8f1d1da02deeaf9a77951f4dc711faa1 13-Feb-2011 Chris Lattner <sabre@nondot.org> add a helper method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125453 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
78b9649d46c91f377cfc799aecb74cb017f72c36 11-Feb-2011 Douglas Gregor <dgregor@apple.com> Poison the relational operators ==, !=, <, <=, >=, > on llvm::Optional
objects, since they'll end up using the implicit conversion to "bool"
and causing some very "fun" surprises.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125380 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
697ffd61a47af38ac932628e942d75952f901fcd 09-Feb-2011 Dan Gohman <gohman@apple.com> Optimize po_iterator: don't do redundant lookups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125211 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
ae200c60c31666da81a8550172de03a9f417ba1b 02-Feb-2011 Duncan Sands <baldrick@free.fr> Remove NoVendor and NoOS, added in commit 123990, from Triple. While it
may be useful to understand "none", this is not the place for it. Tweak
the fix to Normalize while there: the fix added in 123990 works correctly,
but I like this way better. Finally, now that Triple understands some
non-trivial environment values, teach the unittests about them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124720 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
2bffee2ee725047137d2523e31db9ecc7b246cbb 01-Feb-2011 Evan Cheng <evan.cheng@apple.com> Patches to build EFI with Clang/LLVM. By Carl Norum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124639 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
989e7c4d0f042e8ed4f1cc4b0c1fa59b8a1e7d59 27-Jan-2011 Nick Lewycky <nicholas@mxc.ca> Add DenseSet::resize for API parity with DenseMap::resize.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124370 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
859f8183639346378ed29d1e04a4b070ebc7e97f 21-Jan-2011 Renato Golin <renato.golin@arm.com> Clang was not parsing target triples involving EABI and was generating wrong IR (wrong PCS) and passing the wrong information down llc via the target-triple printed in IR. I've fixed this by adding the parsing of EABI into LLVM's Triple class and using it to choose the correct PCS in Clang's Tools. A Clang patch is on its way to use this infrastructure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123990 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
42e9c963921776cb498c33b6c6c03f29971316f3 09-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong results
when no virtual registers have been allocated.

It was only used to resize IndexedMaps, so provide an IndexedMap::resize()
method such that

Map.grow(MRI.getLastVirtReg());

can be replaced with the simpler

Map.resize(MRI.getNumVirtRegs());

This works correctly when no virtuals are allocated, and it bypasses the to/from
index conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123130 91177308-0d34-0410-b5e6-96231b3b80d8
ndexedMap.h
994c727b5790e5c976e32c75364d78eb9b22a568 09-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Use IndexedMap for MachineRegisterInfo as well. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123106 91177308-0d34-0410-b5e6-96231b3b80d8
ndexedMap.h
358de24dc121cd21911f3248b599178c86e9b467 09-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Use an IndexedMap for LiveOutRegInfo to hide its dependence on TargetRegisterInfo::FirstVirtualRegister.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123096 91177308-0d34-0410-b5e6-96231b3b80d8
ndexedMap.h
152096275ad45bb13d5652f7019f48be5ccd67f8 03-Jan-2011 Chris Lattner <sabre@nondot.org> add a handy typedef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122726 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
4f20c6d354d4c6eba00148c2dfc9ad2dae8fd140 03-Jan-2011 Chris Lattner <sabre@nondot.org> really get this working with a custom allocator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122722 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
61a10a0dc91863b70002cc412a1277357d6a4b45 03-Jan-2011 Chris Lattner <sabre@nondot.org> Enhance ScopedHashTable to allow it to take an allocator argument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122721 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
tringMap.h
b907e8a2d40dc546f21ff7e122a80b121653851a 21-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Use IntEqClasses to compute connected components of live intervals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122296 91177308-0d34-0410-b5e6-96231b3b80d8
ntEqClasses.h
2a6899c5391a9aada02686dee29f9b56218ed1d3 21-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add ADT/IntEqClasses.h as a light-weight implementation of EquivalenceClasses.h.

This implementation already exists as ConnectedVNInfoEqClasses in
LiveInterval.cpp, and it seems to be generally useful to have a light-weight way
of forming equivalence classes of small integers.

IntEqClasses doesn't allow enumeration of the elements in a class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122293 91177308-0d34-0410-b5e6-96231b3b80d8
ntEqClasses.h
9d38acb254108db0ee9e746bb3f7aa64168f7e36 19-Dec-2010 Nick Lewycky <nicholas@mxc.ca> Use the new way of silencing this warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122195 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
476b242fe7a61e5f9ac6214b0bc5c680d24f152e 19-Dec-2010 Nick Lewycky <nicholas@mxc.ca> Add missing standard headers. Patch by Joerg Sonnenberger!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122193 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
mallPtrSet.h
mallVector.h
list.h
d715e07efe29451afe2849abd4bd362d0f75a004 17-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add more checks to IntervalMapOverlaps::advance() to ensure that advanceTo sees
monotonic keys.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122093 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
5049ee5b11fe55e5a553b5388406aab874717672 17-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> It is allowed to call IntervalMap::const_iterator::advanceTo() with a key that
moves the iterator to end(), and it is valid to call it on end().

That means it is valid to call advanceTo() with any monotonic key sequence.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122092 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
965841cfe4de695fc56cab4821fd7e032ff85b83 17-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support/Path: Deprecate PathV1::isAbsolute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122086 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
4aec85ae01188f87e45e5e91baab4f303cbcd336 17-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix crash when IntervalMapOverlaps::advanceTo moves past the last overlap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122081 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
ff2e9b4225ab55ee049b33158a9cce1ef138c2f7 17-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Provide LiveIntervalUnion::Query::checkLoopInterference.

This is a three-way interval list intersection between a virtual register, a
live interval union, and a loop. It will be used to identify interference-free
loops for live range splitting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122034 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
460ee0fd19b13ba4c1410e43d8d253bf34673817 16-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add basic test exposing many bugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121995 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
cb9e08f328892eaf46825d7426216995ca673a67 16-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add IntervalMapOverlaps - An iterator for overlapping intervals in two
IntervalMaps.

The IntervalMaps can have different template parameters, but the KeyT and Traits
types must be the same.

Tests are forthcoming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121935 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
2ece4dead7087ebf8d5fa8df77fcd76593c6a6a5 14-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove debugging code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121738 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
58fe86dc0ecb7efff01abe2b0024a6a53ebb2c81 09-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support: Move c_str from SmallVector back to SmallString and add a free standing
templated c_str in Windows.h to replace it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121381 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
mallVector.h
da2fdcbb639de168738c27089bafa9ca10b731bd 08-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix begin() and end() on const IntervalMap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121200 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
40f8f6264d5af2c38e797e0dc59827cd231e8ff7 07-Dec-2010 Jay Foad <jay.foad@gmail.com> PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
e99bbd9ac3cc7ba2615c9b800a002e47c8e13991 06-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support/ADT: Move c_str() from SmallString to SmallVectorImpl. The Windows PathV2
implementation needs it for wchar_t and SmallVectorImpl in general.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120984 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
mallVector.h
fd6d53fbad9d3f48da4910ebba12d9d2a3c24bd8 04-Dec-2010 Benjamin Kramer <benny.kra@googlemail.com> APInt: microoptimize a few methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120912 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
bd7d2622a2ee828a02017dca19170b6f79ff6684 04-Dec-2010 Benjamin Kramer <benny.kra@googlemail.com> Simplify APInt::getAllOnesValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120911 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
7a26aca73ff2c8c4cb3205a776cc6743949b1fb7 03-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add IntervalMap::iterator::set{Start,Stop,Value} methods that allow limited
editing of the current interval.

These methods may cause coalescing, there are corresponding set*Unchecked
methods for editing without coalescing. The non-coalescing methods are useful
for applying monotonic transforms to all keys or values in a map without
accidentally coalescing transformed and untransformed intervals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120829 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
7dc7ac3cb20b7ef8e6febe0ac3bc430230f29893 01-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support/ADT/Twine: Add toNullTerminatedStringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120600 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
7a874ddda037349184fbeb22838cc11a1a9bb78f 01-Dec-2010 Jay Foad <jay.foad@gmail.com> PR5207: Rename overloaded APInt methods set(), clear(), flip() to
setAllBits(), setBit(unsigned), etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120564 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
63c133b67d61b0c457ff46c957aed2b8d90b599c 01-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Support/ADT/StringRef: Add find_last_of.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120495 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
75627d3d2e700b8fa0e040a5ec4ef1a0e299b9b5 30-Nov-2010 Ted Kremenek <kremenek@apple.com> Performance optimization on ImmutableMap/ImmutableSet:

- Use a DenseSet instead of a FoldingSet to cache
canonicalized nodes. This reduces the overhead
of double-hashing.

- Use reference counts in ImutAVLTree to much
more aggressively recover tree nodes that are
no longer usable. We can generate many
transient nodes while using add() and remove()
on ImmutableSet/ImmutableMaps to generate a final
set/map.

For the clang static analyzer (the main client
of these data structures), this results in
a slight speedup (0.5%) when analyzing sqlite3,
but much more importantly results in a 30-60%
reduction in peak memory usage when the analyzer
is analyzing a given function in a file. On
average that's about a ** 44% reduction ** in the
memory footprint of the static analyzer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120459 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
a99793c5ea24dd3839f4925b89b1f6acfcb24604 30-Nov-2010 Jay Foad <jay.foad@gmail.com> PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120413 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
1f6efa3996dd1929fbc129203ce5009b620e6969 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
oldingSet.h
mmutableList.h
mmutableSet.h
mallPtrSet.h
parseBitVector.h
tatistic.h
tringExtras.h
wine.h
alueMap.h
08d55342e337fd4e80a68b81b8b0cbb100ea0a23 28-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Don't use std::copy and std::copy_backward, run 10% faster.

Sometimes std::copy can become a memmove call, and that is not a good idea when
copying relatively few bytes as we are doing. We also get a small win by
changing two loops into one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120265 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
5f456cda98c57b6dea8bc716978b69776d0d0e8f 28-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Disallow overlapping inserts, even when inserting the same value.

We always disallowed overlapping inserts with different values, and this makes
the insertion code smaller and faster.

If an overwriting insert is needed, it can be added as a separate method that
trims any existing intervals before inserting. The immediate use cases for
IntervalMap don't need this - they only use disjoint insertions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120264 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
695ab519e4129ba1053383364a9241ec4c68904b 28-Nov-2010 Jay Foad <jay.foad@gmail.com> PR5207: remove unused methods APInt::Emit() and APInt::Read().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120262 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e4d19c9eb22899c9a555395d446a9ceef3bea7eb 28-Nov-2010 Jay Foad <jay.foad@gmail.com> PR5207: change APInt::doubleToBits() and APInt::floatToBits() to be
static methods that return a new APInt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120261 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
bf953eaba3442f8e25926b8f41423d4d126960f6 28-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Tweak comments to make it clear that we are working in a namespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120256 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
9a08ca318e63912e4c19977abc1173f30866b704 28-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add default constructors for iterators.

These iterators don't point anywhere, and they can't be compared to anything.
They are only good for assigning to.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120239 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
180e1247ca330b047eabafbc72926ce9bfd8bf8e 28-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement const_iterator::advanceTo().

This is a version of find() that always searches forwards and is faster for
local searches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120237 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
79283768a36746bcb5885746637752312af9e4ac 28-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Speed up simple insertions into an unbranched tree by not creating an iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120232 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
055942529bbc8487f86b47940dbd6a790516573e 27-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add more tests for erase(). Fix a few exposed bugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120227 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
b0b7214fc90febbbe71e1e989130194ce2b70a36 27-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add test case with randomly ordered insertions, massive coalescing.

Implement iterator::erase() in a simple version that erases nodes when they
become empty, but doesn't try to redistribute elements among siblings for better
packing.

Handle coalescing across leaf nodes which may require erasing entries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120226 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
b837f587ed0b97ab57df13d28952b417622036f8 27-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> Remove PIC16 remnants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120223 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
4aeb48904344d2dd8e3b8f39a4752567828ad96f 27-Nov-2010 Daniel Dunbar <daniel@zuster.org> Add an optional LowerCase argument to hexdigit().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120213 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
4581dae9ea6d21da0a584aad9f1143343bb7c32e 27-Nov-2010 Daniel Dunbar <daniel@zuster.org> ADT/InMemoryStruct: Add an experimental helper class intended for use in
situations where on the common path an API can return a pointer to some direct
memory, but which on an exceptional path may need to return a pointer to a
temporary struct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120201 91177308-0d34-0410-b5e6-96231b3b80d8
nMemoryStruct.h
28116c9f498ec3b40dae90b3a94ba4ceb1a2081c 26-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> BitVector tweaks.

- Double the vector's capacity when growing to avoid unneeccesary reallocation.
- Do the reallocation with realloc(3) which can expand the memory in place.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120183 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
847d2f93ca692fa627a97ba9743bc1e9b8c5cbae 26-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> StringRefs are POD-like.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120181 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
53bb5c009b04f4a5dd2388b25efe88b5579b282c 26-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add B+-tree test case that creates a height 3 tree with a smaller root node.

Change temporary debugging code to write a dot file directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120171 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
bf77baf19cfbc7a8795d9683e9b9ec894b9ff8c9 26-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Extract template function adjustSiblingSizes(), allowing instances to be shared
between B+-trees using the same KeyT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120170 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
052f1eebdb6dbfb3f1197cc91f28ebc688ffb02d 26-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix spelling!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120167 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
326990f1eb7ff005adabe46a1f982eff8835813e 26-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120166 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
tringRef.h
wine.h
706da9d8ca207c93d38855ffd96cf9722996d706 26-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Move tree navigation to a new Path class that doesn't have to be a template.

The path also holds a reference to the root node, and that allows important
iterator accessors like start() and stop() to have no conditional code. (When
the compiler is clever enough to remove it.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120165 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
9c336fabd59fbdbe9129d76fbbee32261ac7c8f0 24-Nov-2010 Ted Kremenek <kremenek@apple.com> Tweak ImmutableMap/ImmutableSet/ImmutableList APIs
to use lowercase letters for the start of most
method names and to replace some method names
with more descriptive names (e.g., "getLeft()"
instead of "Left()"). No real functionality
change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120070 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
mmutableList.h
mmutableMap.h
mmutableSet.h
6c76f5fa2fb839c736c572f45c138e5b3f549530 24-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Generalize overflowLeaf to also handle overflows in branch nodes.

This doesn't quite work yet because the calls to treeDecrement and treeIncrement
operate at the leaf level, not on pathNode(Level) as required.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120068 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
1c3f050309592e034972dc77a2eb4025680ff293 20-Nov-2010 Frits van Bommel <fvbommel@gmail.com> Test commit: Fix two -Asserts mode warnings in StringMap.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119907 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
487a5b786f7f70c9ed71dadbfcd03a918e5b0ea1 20-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix old GCC build error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119884 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
ddd0e65dba1de71eaa8901cd6f787754e34c3fe0 20-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Detemplatize NodeRef.

It is now possible to navigate the B+-tree using NodeRef::subtree() and
NodeRef::size() without knowing the key and value template types used in the
tree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119880 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
a3b1082bb1ec2340d61b91dd91dbdd3ce5fa0867 20-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Rename NodeBase::{key,val} as {first,second} and swap the BranchNode arrays such
that the noderefs are the first member in the object.

This is in preparation of detemplatization of tree navigation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119879 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
785ab18a054373f1a2f8d0f6f04db2d458878bd9 20-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement IntervalMap destructor.

Key and value objects may not be destructed instantly when they are erased from
the container, but they will be destructed eventually by the IntervalMap
destructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119873 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
655fbb4f9b46ea93eddf0815eaed0020e9347416 20-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement IntervalMap::clear().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119872 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
db52566d684a36cf1f320f91ca5c15d5cd075b95 20-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Support backwards iteration starting from end().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119871 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
33fa490c5011b610ccf7b1206bbabb85d9a8cbaa 19-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Rename methods for clarity instead of brevity. No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119820 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
805f105da0e15c3c63c5d5e9df0140d3421b4a55 19-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Include raw_ostream.h unconditionally even if it is only used for debug code.

We don't want any clients acidentally depending on this and then failing in a
-Asserts build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119818 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
528900d9a46cf4acde3a90494f286116159d5e59 19-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Work around GCC 4.0 build error:

llvm/include/llvm/ADT/IntervalMap.h:334: error: '((llvm::IntervalMapImpl::DesiredNodeBytes / static_cast<unsigned int>(((2 * sizeof (KeyT)) + sizeof (ValT)))) >? 3u)' is not a valid template argument for type 'unsigned int' because it is a non-constant expression

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119790 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
8dc926755f287e33765a8da0c4b3922a289a9d2d 19-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add ADT/IntervalMap.

This is a sorted interval map data structure for small keys and values with
automatic coalescing and bidirectional iteration over coalesced intervals.

Except for coalescing intervals, it provides similar functionality to std::map.
It is however much more compact for small keys and values, and hopefully faster
too.

The container object itself can hold the first few intervals without any
allocations, then it switches to a cache conscious B+-tree representation. A
recycling allocator can be shared between many containers, even between
containers holding different types.

The IntervalMap is initially intended to be used with SlotIndex intervals for:

- Backing store for LiveIntervalUnion that is smaller and faster than std::set.

- Backing store for LiveInterval with less overhead than std::vector for typical
intervals and O(N log N) merging of large intervals. 99% of virtual registers
need 4 entries or less and would benefit from the small object optimization.

- Backing store for LiveDebugVariable which doesn't exist yet, but will track
debug variables during register allocation.

This is a work in progress. Missing items are:

- Performance metrics.
- erase().
- insert() shrinkage.
- clear().
- More performance metrics.
- Simplification and detemplatization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119787 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
737d2816c42c1f9a63524e39ccfa7560777b6b42 19-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Revert "Add ADT/IntervalMap.", GCC doesn't like it.

This reverts r119772.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119773 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
8408edffcbd7f436c05018fafbfb9911146b208a 19-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add ADT/IntervalMap.

This is a sorted interval map data structure for small keys and values with
automatic coalescing and bidirectional iteration over coalesced intervals.

Except for coalescing intervals, it provides similar functionality to std::map.
It is however much more compact for small keys and values, and hopefully faster
too.

The container object itself can hold the first few intervals without any
allocations, then it switches to a cache conscious B+-tree representation. A
recycling allocator can be shared between many containers, even between
containers holding different types.

The IntervalMap is initially intended to be used with SlotIndex intervals for:

- Backing store for LiveIntervalUnion that is smaller and faster than std::set.

- Backing store for LiveInterval with less overhead than std::vector for typical
intervals and O(N log N) merging of large intervals. 99% of virtual registers
need 4 entries or less and would benefit from the small object optimization.

- Backing store for LiveDebugVariable which doesn't exist yet, but will track
debug variables during register allocation.

This is a work in progress. Missing items are:

- Performance metrics.
- erase().
- insert() shrinkage.
- clear().
- More performance metrics.
- Simplification and detemplatization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119772 91177308-0d34-0410-b5e6-96231b3b80d8
ntervalMap.h
32df92dde60a027612880e4701ce1b0246d65eae 17-Nov-2010 Dan Gohman <gohman@apple.com> Fix warnings about missing parents between || and &&.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119454 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
ce8ca9ab0cc42be4f2ff5ed5d349eac5c90f9b04 13-Nov-2010 Jim Grosbach <grosbach@apple.com> Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118978 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
5005e27f9714f0eaa5b8b7a5a1f6751afa163f07 03-Nov-2010 Dan Gohman <gohman@apple.com> Factor code out of APInt to form a isUIntN helper function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118133 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
25592eb52c39097bc610785f648aca4a09989201 31-Oct-2010 Chandler Carruth <chandlerc@gmail.com> Add a specialization for 'long', a hole in the set of fundamental
specializations provided here. This is a little annoying because its size
changes from platform to platform. If possible, I may follow up with a patch
that uses standard constants to simplify much of this, but assuming for now
that was avoided for a reason.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117880 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
16c3b647eb100fe404ee65f106d563ddef6c74b7 30-Oct-2010 Chris Lattner <sabre@nondot.org> Rename alignof -> alignOf to avoid irritating C++'0x compilers,
PR8423, patch by nobled.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117774 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
5ee568ac2704d7302017d42ad162d4b53d076cbc 20-Oct-2010 Douglas Gregor <dgregor@apple.com> Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116867 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
eafc5cb80d58cb9447623a557be4d4f55f42fbc3 14-Oct-2010 Chris Lattner <sabre@nondot.org> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116457 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
08e90f5646e61c3be0eebfa172ec73a8b56abee8 14-Oct-2010 Chris Lattner <sabre@nondot.org> missed a line :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116456 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
0a0a585e6bfc112cb8346b17edecb76969fb5532 14-Oct-2010 Chris Lattner <sabre@nondot.org> constify these methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116455 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f2ddc64c8701e432cc220f26c48d596cc0f30a97 14-Oct-2010 Chris Lattner <sabre@nondot.org> add a few operations for signed operations that also
return an overflow flag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116452 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
5dd76fa50a63c6460957d11d2542469f0a7d65d7 03-Oct-2010 Duncan Sands <baldrick@free.fr> GCC extensions are no longer used here - update the comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115463 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
75e2016f02428289e9cfd693a27bcd9a2a5cc00f 03-Oct-2010 Duncan Sands <baldrick@free.fr> Remove two uses of the gcc specific 'aligned' attribute. This
is partly because this attribute caused trouble in the past (the
SmallVector one had to be changed from aligned to aligned(8) due
to causing crashes on i386 for example; in theory the same might
be needed in the Allocator case...). But it's mostly because
there seems to be no point in special casing gcc here. Using the
same implementation for all compilers results in better testing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115462 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
fab4c9e9df1aeb33b55cfcfa174fac8d61df96fd 27-Sep-2010 Dan Gohman <gohman@apple.com> Add an all() method to BitVector, for testing whether all bits are set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114830 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mallBitVector.h
df046f078e95417f0ece761c92b8cc549f7ab105 23-Sep-2010 Dan Gohman <gohman@apple.com> Make SetVector's remove indicate whether it actually removed something.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114612 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
6d31c0b79a06483d7a80209bba34226ccf9088bb 21-Sep-2010 Mikhail Glushenkov <foldr@codedgers.com> Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114432 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
5754a4525625a67a6c9b4f63512ea9db6997bf05 16-Sep-2010 Duncan Sands <baldrick@free.fr> Add better support for environment portion of triple. Original patch by
Cameron Esfahani, tweaked to use array_lengthof.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114073 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f7a3c50183726c5bbb02bb08d97e65f1066a249f 07-Sep-2010 Nick Lewycky <nicholas@mxc.ca> Create PTX backend. Patch by Che-Liang Chiou!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113235 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
061d21eaf8fcdb19b85db0755c208acbba7c8ef4 04-Sep-2010 Chris Lattner <sabre@nondot.org> fix this to work with allocators that have reference type with compilers
that diagnose invalid references to references.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113078 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
2a9a2dba4c02e7eea3aeba2be5dc1fc377d5aa5c 02-Sep-2010 John McCall <rjmccall@apple.com> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112870 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
e3955df639ff9aff990f628ef6a219ff5efdbc81 01-Sep-2010 Dan Gohman <gohman@apple.com> Make the iterator form of erase return void, since it always succeeds,
and since this is what std::map and std::set do.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112701 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
enseSet.h
alueMap.h
2027362e8d99df1780ba604cff624b116a4e6ecf 30-Aug-2010 Eric Christopher <echristo@apple.com> Kill a couple of unused variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112498 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
c9fa2cd596b3c20c5f78aa8e1d227b81d52991fb 29-Aug-2010 Dan Gohman <gohman@apple.com> Delete an unused declaration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112424 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
4672f0f61c0cc1a90d575fcbfd7d905396f81cc6 26-Aug-2010 John McCall <rjmccall@apple.com> SmallVector's growth policies don't like starting from zero capacity.
I think there are good reasons to change this, but in the interests
of short-term stability, make SmallVector<...,0> reserve non-zero
capacity in its constructors. This means that SmallVector<...,0>
uses more memory than SmallVector<...,1> and should really only be
used (unless/until this workaround is removed) by clients that
care about using SmallVector with an incomplete type.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112147 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
5b5f7260a0f0da9a2057245fd42a6b196ccec33d 26-Aug-2010 John McCall <rjmccall@apple.com> Provide an explicit specialization of SmallVector at N=0 which does
not require its type argument to be complete if no members are
actually used.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112106 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
250eb005d91e80b05a61345394bae9e9528151ac 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111817 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
79ed2c597a134cb4dd5da90199053f322b7d8a2d 23-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> StringRef tweaks:

- Respect find_first_of(char's From parameter instead of silently dropping it.
- Prefer std::string() to std::string("")


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111814 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
726a3d284ec1949c4ccf77e79ca0506e8a38b05c 19-Aug-2010 Sean Hunt <rideau3@gmail.com> Finish full attribute class emission for clang.

For more information, see the accompanying clang patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111454 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
cf16bea74e3a6f84af914520562e9f9c5dfa0fad 18-Aug-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Revert r111394. It was too aggressive.

We must complete the DFS, otherwise we might miss needed phi-defs, and
prematurely color live ranges with a non-dominating value.

This is not a big deal since we get to color more of the CFG and the next
mapValue call will be faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111397 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
4d440bd786ae4dad7035c30fd09044a9efc8dccd 18-Aug-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Aggressively prune the DFS when inserting phi-defs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111394 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
6709c7bcdacfc3cc07bc0c47d3a3f9b47c699d3a 18-Aug-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add df_iterator::getPathLength and getPath as a way of getting a path from the
entry node to the current node.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111392 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
7f7274ce7f3243bd71588c7a75a142c39e5c7e34 18-Aug-2010 Chris Lattner <sabre@nondot.org> Don't pass in a null pointer to std::string's ctor, an empty string
ref should produce an empty std::string. This fixes PR7879.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111332 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
3063410e52a760584501b825dc6ffb4c52f4d93b 16-Aug-2010 Dan Gohman <gohman@apple.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111130 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
0ba422ba6ebfb3fbcbac4f786ebc44136d5df3b2 16-Aug-2010 Dan Gohman <gohman@apple.com> Tidy up whitespace in comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111129 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1878aba8e4753f82a8e7c7390e0adbeb0a393bb5 16-Aug-2010 Dan Gohman <gohman@apple.com> Constify FoldingSetNodeIDRef's Data.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111128 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
6616f7e2f147c2320973993cbfb241a82262b764 16-Aug-2010 Dan Gohman <gohman@apple.com> Reverse the order of GetNodeProfile's arguments, for consistency
with FoldingSetTrait::Profile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111127 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
83fb63d5b3669aec8925af23907ca2b404a51f74 16-Aug-2010 Dan Gohman <gohman@apple.com> Fix indentation in example code in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111125 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
452b93e7dc2802dea3a31ea12c397d11c3c5e23b 13-Aug-2010 Benjamin Kramer <benny.kra@googlemail.com> Use getAllOnesValue, saves a copy and looks better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110991 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
335db223926931db204bf54d4accac6677b8e6b1 12-Aug-2010 Duncan Sands <baldrick@free.fr> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110909 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
fffe6cf084d91a8c99b710e30f2b9fb23d62b58d 09-Aug-2010 Duncan Sands <baldrick@free.fr> Remove the ValueMap operator=, which was wrong (it did't correct the
Map pointers of any contained ValueMapCallbackVH's) and unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110577 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
ba575092218a93f38273c8c72560cef3300177af 09-Aug-2010 Zhongxing Xu <xuzhongxing@gmail.com> Change the Interval type to signed in ImmutableIntervalMap.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110562 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
3850f5cedad95e6062671d66b08e1a29e7d5e20f 08-Aug-2010 Duncan Sands <baldrick@free.fr> Remove the ValueMap copy constructor. It's not used anywhere,
and removing it catches the mistake of passing a ValueMap by
copy rather than by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110549 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
dbac071050010effb95febae0ddf72102551323d 07-Aug-2010 Nick Lewycky <nicholas@mxc.ca> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110502 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
bcc23933695e1cec4e7dcd2e2b8bde0ef3c298c9 30-Jul-2010 Duncan Sands <baldrick@free.fr> Fix the ValueMap copy constructor. The issue is that the map keys are value
handles with a pointer to the containing map. When a map is copied, these
pointers need to be corrected to point to the new map. If not, then consider
the case of a map M1 which maps a value V to something. Create a copy M2 of
M1. At this point there are two value handles on V, one representing V as a
key in M1, the other representing V as a key in M2. But both value handles
point to M1 as the containing map. Now delete V. The value handles remove
themselves from their containing map (which destroys them), but only the first
value handle is successful: the second one cannot remove itself from M1 as
(once the first one has removed itself) there is nothing there to remove; it
is therefore not destroyed. This causes an assertion failure "All references
to V were not removed?".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109851 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
cf85c9612959e7326ddba9d4fb0a997c155b74c1 28-Jul-2010 Owen Anderson <resistor@mac.com> Fill out the interface of DenseSet a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109562 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
90f8795e1c0d43e5b3d6254ff2a3cad533069218 27-Jul-2010 Chris Lattner <sabre@nondot.org> make lookup failures not fatal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109530 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
978bb87f8871b953d159c2846b379bc93be27972 27-Jul-2010 Duncan Sands <baldrick@free.fr> In commit 91421, isPod was changed from false to true for these value handles.
Change it back again: destructors and constructors need to be run.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109498 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
1ec9e6a5dccbc6042d25f03f224d351f15812aec 24-Jul-2010 Chris Lattner <sabre@nondot.org> add a new NullablePtr class which makes it more obvious in API
that a pointer can be null, forcing clients to think about it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109348 91177308-0d34-0410-b5e6-96231b3b80d8
ullablePtr.h
a23650bc0161716aadba97e2e5f92eac7c11d80b 23-Jul-2010 Chris Lattner <sabre@nondot.org> give StringMap a new ctor which allows you to initialize it
with an existing allocator. The interesting use case of this
is that it allows "StringMap<whatever, BumpPtrAllocator&>" for
when you want to allocate out of a preexisting bump pointer
allocator owned by someone else.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109213 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
d69121b3c5c9c89ab9ad7c9c71b13b3a1fcde40d 23-Jul-2010 Chris Lattner <sabre@nondot.org> modernize stringset interface


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109212 91177308-0d34-0410-b5e6-96231b3b80d8
tringSet.h
38e59891ee4417a9be2f8146ce0ba3269e38ac21 15-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Don't pass StringRef by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
0764e39a921ae424e2ac8c7ba114b67040eba8f6 13-Jul-2010 Eric Christopher <echristo@apple.com> 80-columns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108228 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
riple.h
d6afb09a0021aea5789053cbe59fe7550915f6ac 12-Jul-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add convenience method FoldingSetImpl::InsertNode(Node *N) that asserts if the node is already inserted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108192 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
18f82a9a5d81c1214714be1b25f3e548030b7e1c 12-Jul-2010 Bill Wendling <isanbard@gmail.com> getOrInsertLeaderValue cannot be const because it calls insert.
Patch by Xi Wang!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108188 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
2dac4c1b519feaf1ef63514f07fa16aa5dc7d89a 08-Jul-2010 Duncan Sands <baldrick@free.fr> Use std::vector rather than SmallVector here because SmallVector
causes some versions of gcc to crash when building LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107869 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
a0994b1a13ef3437f5442b9fec1750b150da175a 08-Jul-2010 Duncan Sands <baldrick@free.fr> Do not use std::stack because it causes obscure failures when
compiled with MSVC 2010 (PR7367). Instead use a SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107867 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
29269d03af6dc3feb69d0230831a059f39c03700 07-Jul-2010 Chris Lattner <sabre@nondot.org> add some triple for minix, patch by Kees van Reeuwijk from PR7582


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107785 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
a71f0e1f2a7d6d2f030f147d6d426e5bb3b56328 30-Jun-2010 Duncan Sands <baldrick@free.fr> Rename NextPowerOfTwo to RoundUpToPowerOfTwo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107297 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
2e502577ab3645ab5c54434671d299e35c2245cc 30-Jun-2010 Duncan Sands <baldrick@free.fr> Clarify that the NextPowerOfTwo template is idempotent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107286 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
2a8bf425bd0aff1a6406805c095d99089a1dfaae 30-Jun-2010 Duncan Sands <baldrick@free.fr> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107285 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
871dc240d06b40ea2194677d5a85957cbdbbbe60 29-Jun-2010 Duncan Sands <baldrick@free.fr> Fix a buffer overflow noticed by gcc-4.6: zero is written into
SmallArray[SmallSize] in the SmallPtrSetIteratorImpl, and this is
one off the end of the array. For those who care, right now gcc
warns about writing off the end because it is confused about the
declaration of SmallArray as having length 1 in the parent class
SmallPtrSetIteratorImpl. However if you tweak code to unconfuse
it, then it still warns about writing off the end of the array,
because of this buffer overflow. In short, even with this fix
gcc-4.6 will warn about writing off the end of the array, but now
that is only because it is confused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107200 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
05b0b44f8a7953687e73c9758d3e7851ef339be1 29-Jun-2010 Duncan Sands <baldrick@free.fr> NextPowerOfTwo was already used to ensure that SmallSizePowTwo is a power
of two, no need to do it a second time (NextPowerOfTwo is idempotent).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107199 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
dd6f86a28f1ae77ec2a35598f6a7a934dd5d802f 24-Jun-2010 Eric Christopher <echristo@apple.com> Silence some unused variable warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106778 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
27da66db3e3d61e9320c8562d9504f939d884598 24-Jun-2010 Dan Gohman <gohman@apple.com> Add a comment about a thread safety issue in Statistic.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106756 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
59d52a3dfe90fa119645ee5a4f4c8301ba331f91 15-Jun-2010 Chris Lattner <sabre@nondot.org> disable SmallVectorImpl's copy constructor. This prevents a class
of base class slicing bugs reported on irc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106028 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
edce58fbd94fd8f274b34729c182fc156a2bda37 11-Jun-2010 John McCall <rjmccall@apple.com> Define ContextualFoldingSet, which stores a context parameter to pass down to
the Profile method. Currently this only works with the default FoldingSetTraits
implementation.

The point of this is to allow nodes to not store context values which are only
used during profiling. A better solution would thread this value through the
folding algorithms, but then those would need to be (1) templated and
(2) non-opaque.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105819 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
345b378309eabd74a7a43f095dca9a4894bc371e 10-Jun-2010 Duncan Sands <baldrick@free.fr> Add includes to get ptrdiff_t. This is needed by gcc-4.6 which has
done some more header trimming, resulting in cstdef being included
by less header files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105786 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
mallVector.h
list.h
98dc202be01fb34f26d03d4069793974677a4a66 09-Jun-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix a gcc warning:

'class llvm::DAGDeltaAlgorithm' has virtual functions and accessible non-virtual destructor

Not sure if this is the best solution, but this class has state and some of the
classes that inherit from it also do, so it looks appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105675 91177308-0d34-0410-b5e6-96231b3b80d8
AGDeltaAlgorithm.h
73c6031a2546ad18ab0b454fe5d711715620d140 08-Jun-2010 Daniel Dunbar <daniel@zuster.org> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105612 91177308-0d34-0410-b5e6-96231b3b80d8
AGDeltaAlgorithm.h
d164d3d9e74aa099ce7ef86ac0724fe504f7c3f9 08-Jun-2010 Benjamin Kramer <benny.kra@googlemail.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105605 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
f2aac4db4ec4eb0f8b070a4f525801798157dfcf 05-Jun-2010 Dan Gohman <gohman@apple.com> Implement operator== and operator!= for SetVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105508 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
63ef367954c0981ec221f183fc0808ba21cb678d 02-Jun-2010 Jim Grosbach <grosbach@apple.com> remove trailing whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105333 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
160a3bf74d1a2b048f65e2162d038ed96eddde01 26-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> 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, ...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104745 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
3422cf05a8a4817c6c525ef4d66026761ec590c1 22-May-2010 John Mosby <ojomojo@gmail.com> Trivial change to dump() function for SparseBitVector

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104433 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
b843d9f833aa474ae700363a445b7409665c4a6e 17-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Optimize empty DenseMap iteration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103962 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
f1fd2288f36b58b8979761ba09e2a398c6afd110 13-May-2010 Daniel Dunbar <daniel@zuster.org> Fix const ilist_node::get{Prev,Next}Node() to actually compile. Picky, picky.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103723 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
aa81380353a27d9d216cafdd88df08a5eef43b74 12-May-2010 Daniel Dunbar <daniel@zuster.org> ADT: Add ilist_node::get{Prev,Next}Node, which return the adjacent node or null.
- This provides a convenient alternative to using something llvm::prior or
manual iterator access, for example::

if (T *Prev = foo->getPrevNode())
...

instead of::

iterator it(foo);
if (it != begin()) {
--it;
...
}

- Chris, please review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103647 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
7d9663c70b3300070298d716dba6e6f6ce2d1e3e 11-May-2010 Douglas Gregor <dgregor@apple.com> Fixes for Microsoft Visual Studio 2010, from Steven Watanabe!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103457 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
ea03e10facd07f0b239dcc3a5e31346686acae3c 05-May-2010 Chris Lattner <sabre@nondot.org> 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.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103107 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
3f5e91565273e3f4639d37ee5a5b856699e8c9e5 30-Apr-2010 Dan Gohman <gohman@apple.com> Update BitVectorTest.cpp to stay in sync with SmallBitVectorTest.cpp,
and fix a bug in BitVector's reference proxy class which this exposed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102768 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
6340722d1751841a00e791a44d8f2f5e481b8c61 30-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> SmallBitVector: Rework find_first/find_next and tweak test to test them (at least on 64 bit platforms).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102712 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
b252fbd179c494b3c6220f6f7e42f3ff5d15bda6 30-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> Implement a read/write operator[] for SmallBitVector with a proxy class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102709 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
1e44aa0412473297994afb8b707d0326472fd2a4 30-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> Make sure SmallBitVector actually uses the small case and fix latent bugs.

- We can't use PointerIntPair here since we require the discrimination bit to be in the LSB.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102707 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
3e6fe5ec17217169cd95ee86515955f7726db008 29-Apr-2010 Evan Cheng <evan.cheng@apple.com> Add DenseMapInfo for int.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102652 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
e8ab3bd3a5c53827dff622723f0834a8f641b1e9 29-Apr-2010 Torok Edwin <edwintorok@gmail.com> Fix PR6910.

Limit alignment in SmallVector 8, otherwise GCC assumes 16 byte alignment.
opetaror new, and malloc only return 8-byte aligned memory on 32-bit Linux,
which cause a crash if code is compiled with -O3 (or -ftree-vectorize) and some
SmallVector code is vectorized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102604 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
fd813bc85027b8e4f8dc42b485b254cff210012d 19-Apr-2010 Dan Gohman <gohman@apple.com> These functions don't need to access this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101776 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
ca5e4f8e19f32c9ee6e93bc05c37095fb4cedb26 17-Apr-2010 Chris Lattner <sabre@nondot.org> reenable r101565, removing a problematic assertion.
CGSCC can delete nodes in regions of the callgraph that
have already been visited. If new CG nodes are allocated
to the same pointer, we shouldn't abort, just handle it
correctly by assigning a new number. This should restore
stability by removing invalidated pointers that *will* be
reused from the densemap in the iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101628 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
bde0bb5f882ae708ca70a42bdd3a9805e63f6fb7 17-Apr-2010 Chris Lattner <sabre@nondot.org> building on the new CallGraphSCC abstraction, teach CallGraphSCCPassManager
to keep the node entries in scc_iterator up to date instead of dangling as
the SCC mutates.

This is a really terrible problem which was causing -g to affect codegen
because it would permute the memory image of the compiler process.

Thanks to Dale for expertly hunting it down.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101565 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
a3dfc646b4d772979f8994c07eeee6af57480d34 17-Apr-2010 Chris Lattner <sabre@nondot.org> move ReplaceNode out of line, rename scc_iterator::fini -> isAtEnd().

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101562 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
8b146240a2883fdbf0a7ad856df84a56c6f0d3d1 16-Apr-2010 Chris Lattner <sabre@nondot.org> tidy up


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101548 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
07b3a041b45f376ea182d8b4ade7b01bfaa9ab2c 14-Apr-2010 Daniel Dunbar <daniel@zuster.org> Fix -Asserts warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101191 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
b61e94fcf898a8b3b6bf7a8a18b390b82ff037f5 11-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> utostr isn't going away too soon, try to make it slightly smaller.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100977 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
76e94e541c867a1d61d9be6555d3c17cd09b3914 09-Apr-2010 Ted Kremenek <kremenek@apple.com> Move 'Optional' class from Clang to LLVM/ADT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100889 91177308-0d34-0410-b5e6-96231b3b80d8
ptional.h
e05678132345eb8a632362dbd320ee7d36226e67 09-Apr-2010 Dan Gohman <gohman@apple.com> Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100824 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
a03948633ae848af9cecce0a8042c7db4dac44d9 06-Apr-2010 Douglas Gregor <dgregor@apple.com> Remove MaybeOwningPtr. We're going to use reference-counting instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100499 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
2ee35226e5940eed3d360fcfb37be7f3a4866f27 05-Apr-2010 Douglas Gregor <dgregor@apple.com> Introduce MaybeOwningPtr, a smart pointer that may (or may not) have
ownership over the pointer it contains. Useful when we want to
communicate ownership while still having several clients holding on to
the same pointer *without* introducing reference counting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100463 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
6ce57922bb8d550d91c8133d1fd27dd3eaf24c22 30-Mar-2010 Douglas Gregor <dgregor@apple.com> 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().



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99893 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
8260ea5c6c15345e00ced1398b03e6886145e45c 30-Mar-2010 Ted Kremenek <kremenek@apple.com> Change PointerUnionX::getFromOpaqueValue() to be declared 'static inline' instead of 'static'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99892 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
a7a33fd95f15428b7030ef1b764fcf924d5199c8 26-Mar-2010 Dan Gohman <gohman@apple.com> Fix SmallVector's insert to handle non-random-access iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99633 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
8ee076961219c9066b651ff686c450d92e81c27a 24-Mar-2010 Chris Lattner <sabre@nondot.org> Add a method to get a StringMapEntry from a pointer to the string
data it contains (similar to GetStringMapEntryFromValue).
Patch by Greg Clayton!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99371 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
d720712f670d98a9128991f2261e58808ec96c12 18-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Fix a name clash that was breaking MSVC builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98852 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
74cdc75313974456d1f040ca2dca33f16a18f9b3 18-Mar-2010 Dan Gohman <gohman@apple.com> Fix a bug found by inspection; in the __GNUC__ code, the alignment
doesn't apply to the type, only to the variable, so subsequent uses
of U which expect it to be aligned weren't actually aligned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98843 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
8bba4dd9bcaf8ba63be24dbcbbed6ff35504e9e5 18-Mar-2010 Andrew Lenharth <andrewl@lenharth.org> Nick wants these alphabetized

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98840 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
c93b4cff89d85a13d4eaf1551af9fab276b88450 18-Mar-2010 Dan Gohman <gohman@apple.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98829 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
7e1b037edd0d5ad2b54f530f1ba0d2f64c9ca686 17-Mar-2010 Andrew Lenharth <andrewl@lenharth.org> missing include

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98752 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
730f743c013c85d15d902a137aef8f38916af616 16-Mar-2010 Chris Lattner <sabre@nondot.org> work around an MSVC2010 bug, PR6504


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98653 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
5c213dc78cc717c30908212049e35cfdb950fa24 12-Mar-2010 Jeffrey Yasskin <jyasskin@google.com> Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of
several fields to make it easier to figure out where bugs might be creeping in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98358 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
ccb4f2d813380d8cf139062b8c829e4b8b322c0d 08-Mar-2010 Andrew Lenharth <andrewl@lenharth.org> Iterator traits and swap. closes PR6548 and PR6549

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97974 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
enseSet.h
1ddcf35b68a4c326c548272134611ce54b1afd25 08-Mar-2010 Douglas Gregor <dgregor@apple.com> Revert r97917, which was causing Clang Debug self-host failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97932 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
9467f0e3bd2b0fece0d50a6d92f996b4f3952096 07-Mar-2010 Jeffrey Yasskin <jyasskin@google.com> Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97917 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
8c42ca937453bd216b68baff1f32b47430d5b374 07-Mar-2010 Jeffrey Yasskin <jyasskin@google.com> _2_ gcc crashes, ah, ah, ah...

(Rolling back r97906.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97909 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
f7399bf929f401d4e1aa40f4f7a2265e2cdedc39 07-Mar-2010 Jeffrey Yasskin <jyasskin@google.com> Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by Valgrind!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97906 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
0ddda3b8c6acc85761636ad46981395fdbe8daba 06-Mar-2010 Chris Lattner <sabre@nondot.org> make APFloat::toString be const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97883 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
a84f3d9a978d0cfdf0e4b5fbd1095a965a30110b 03-Mar-2010 Evan Cheng <evan.cheng@apple.com> TopLevelMap[] reference is a pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97661 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
d5e9e5f22176fbd0d18a558901e2786106fd03f5 02-Mar-2010 Evan Cheng <evan.cheng@apple.com> Allow specialization of ScopedHashTable of non-default DenseMapInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97594 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
7f05aa72f970bdb92c831a83b02197b8699f7635 02-Mar-2010 Evan Cheng <evan.cheng@apple.com> Add count() and lookup() to ScopedHashTable. It might be useful to get information out of the hash table.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97542 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
1e7ad3993d8700488895fa372ecad55443f53485 28-Feb-2010 John McCall <rjmccall@apple.com> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97381 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
tringRef.h
e12b73816b50bbe2cc54b8005d86c95413b4f465 28-Feb-2010 John McCall <rjmccall@apple.com> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97364 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
a70f28ce7dc85d0075a7d86da5d7987b6e306bc6 23-Feb-2010 Wesley Peck <peckw@wesleypeck.com> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96969 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
fb76fe09297ee292129e44d723127f2408602a3d 22-Feb-2010 Dan Gohman <gohman@apple.com> Fix various doxygen warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
ebc14f7783fc6908a0e445a3d45de3be830f79b3 17-Feb-2010 Daniel Dunbar <daniel@zuster.org> Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96498 91177308-0d34-0410-b5e6-96231b3b80d8
eltaAlgorithm.h
252968a76f4b34aa26aa33d447d0256a148ad554 12-Feb-2010 Bob Wilson <bob.wilson@apple.com> Fix a comment typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96027 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
e7962c9897cf3ac5fc731702d5e5d8963fc5c723 10-Feb-2010 Dan Gohman <gohman@apple.com> Implement operators |=, &=, and ^= for SmallBitVector, and remove the
restriction in BitVector for |= and ^= that the operand must be the
same length.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95768 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mallBitVector.h
56a04c0c3438904d7b428be11063de6340d0d1f8 08-Feb-2010 Daniel Dunbar <daniel@zuster.org> ImmutableIntervalMap: Fix for unqualified lookup into dependent base class, done
by clang's -fixit! :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95551 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
87c06d617917f4a388fbe9db81198e13cde3e431 04-Feb-2010 Chris Lattner <sabre@nondot.org> add support for the sparcv9-*-* target triple to turn on
64-bit sparc codegen. Patch by Nathan Keynes!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95293 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
1d037b0272233aad4fba386eaba2d827e3984401 03-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Remove redundant declaration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95213 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
1c8bd7dc0a9d6de3a4ff850fc5ba15265f2a6d33 03-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Add constructors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95212 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
00f488012c6c44bc6ee35a3078a0063e10f152e3 02-Feb-2010 Dan Gohman <gohman@apple.com> Make DenseSet's erase pass on the return value rather than swallowing it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95127 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
769e2ad872538a203072ecdbb1ad9249a711a0d4 02-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Return value on every path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95075 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
fcad6bdc17124ae1e4b93bd405a95c79c365f55d 02-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> simplify code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95074 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
bd4672547687d21c948f6f0d84d0a5012b4cc864 02-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> More logic correction: RemoveOverlap should always create new tree. Add a
parameter to record whether changes actually happened.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95073 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
b413bc1403cc755ae199e1df890301bb70a86d19 02-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Add a lookup method to the IntervalMap. The difference from the original
lookup is that if the lookup key is contained in the key, we return the data.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95070 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
3a819568ca4ce1fdf04764ff466678e687479921 02-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Fix a bunch of errors in the old logic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95056 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
44eedb980536b91adb6c2add0ba4a02d16041d20 02-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> 11.8p1: A nested class is a member and as such has the same access rights as
any other member.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95047 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
746f5b6eb1518986bdac750074cbf1899e459983 01-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Add an immutable interval map, prepared to be used by flat memory model
in the analyzer. WIP.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94976 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableIntervalMap.h
mmutableMap.h
mmutableSet.h
ddba25ab702063e61430bf9d294ba70fb5fdb046 01-Feb-2010 Zhongxing Xu <xuzhongxing@gmail.com> Simplify code. We can compare TNew with T in one batch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94973 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
fcb0ee8ffeae12aa866f4e7da12a4dd2a1d0dc35 29-Jan-2010 Junjie Gu <jgu222@gmail.com> Make sure the size is doubled (not 4x).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94845 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
cf220d5b8955a71d364a0a054e8518197bf6df32 22-Jan-2010 Evan Cheng <evan.cheng@apple.com> Add DenseMapInfo for signed long long.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94146 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
3ec68f97ead4a2bc339b1b9012ca4cb2c4dd706a 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Store flags in bitfields instead of masking them into the pointer for the left child. This leads to some nice conceptually cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94121 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
8767d32e758db3ffef796342a2650f337cf3404a 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Tidy up assertion syntax. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94117 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
b357e06f672996400343d38b08014a5b6a7d5b2d 13-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93317 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
bf86e5df180139310bf2f0d71bef58e208dce31d 13-Jan-2010 Chris Lattner <sabre@nondot.org> add new isSingleStringRef()/getSingleStringRef() methods to twine,
and use them to avoid a copy of a string in getNameWithPrefix in
the common case. It seems like Value::setName and other places
should use this as well?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93301 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
af2a8361e4e5b45441b6e73c332fb60c36892468 13-Jan-2010 Chris Lattner <sabre@nondot.org> give StringRef a const_iterator member.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93294 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
7dd6107fcc952758ee63d5784a9e7afa9b6dea93 11-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Remove unused string functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93183 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
7462b5dd99163785480a11a7c999569b349a137c 11-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Add StrInStrNoCase, a StringRef version of CStrInCStrNoCase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93174 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
c30837d6c1ee814ba62e32848e1d2cbfb7385953 11-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Turns out llvm-gcc still uses SplitString with a vector. Add it back until I
have a fix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93163 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
d4f195999a7774611e5f9e457a86f14d5e257324 11-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93161 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
3c37bb8dbe886993dcd8f37dec0d94762393f3d4 07-Jan-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Fix occurrence typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92926 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
ad2cee44e02b4fa8d5888a80e39c01a9604b409e 05-Jan-2010 Dan Gohman <gohman@apple.com> Some versions of GCC don't like non-static data members in sizeof
in this context.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92731 91177308-0d34-0410-b5e6-96231b3b80d8
mallBitVector.h
cb89afc965c66029ae38712d1c52f5bbe4dee942 05-Jan-2010 Dan Gohman <gohman@apple.com> Add a SmallBitVector class, which mimics BitVector but uses only
a single pointer (PointerIntPair) member. In "small" mode, the
pointer field is reinterpreted as a set of bits. In "large" mode,
the pointer points to a heap-allocated object.

Also, give BitVector empty and swap functions.

And, add some simple unittests for BitVector and SmallBitVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92730 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mallBitVector.h
441c8b4ad17c0d029b2247c367111395e7ad068c 30-Dec-2009 Douglas Gregor <dgregor@apple.com> Implement edit distance for StringRef

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92309 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
6a09affdf62fccbd190ca6e9cac0cb065b5f2677 25-Dec-2009 John McCall <rjmccall@apple.com> Implement support for converting to string at "natural precision", and fix some
major bugs in long-precision conversion.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92150 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
00e65de9d83f846af732e3ace3f48d43d67b13d1 24-Dec-2009 John McCall <rjmccall@apple.com> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92126 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
64d3973169781e7dff6bfc073908d5cb9fb21343 23-Dec-2009 David Greene <greened@obbligato.org> Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92005 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
6a363782fe4ecba4f0a72c2edf03596004470c4a 21-Dec-2009 Chris Lattner <sabre@nondot.org> add a helper ctor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91819 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
d5b1f8a8426e82990dafc6e3336fefc6635c8fa4 21-Dec-2009 Eli Friedman <eli.friedman@gmail.com> Change StringRef::startswith and StringRef::endswith to versions which are a
bit more verbose, but optimize to much shorter code.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91817 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
b63bb1615b44bc9e18dec68660d33c04401987b6 17-Dec-2009 Chris Lattner <sabre@nondot.org> tabs -> spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91622 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
b2273d50bc37caabf5aa6703d10c3fe34b6f06cb 17-Dec-2009 Steve Naroff <snaroff@apple.com> Fix Windows build breakage...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91617 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
af15ffb9127dff185b74ff8b37a9d570ca547c61 17-Dec-2009 Eric Christopher <echristo@apple.com> Fix unused variable warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91609 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
4eeeb4767ca4e020e7d9aff1be671d2fc6f74b81 16-Dec-2009 Daniel Dunbar <daniel@zuster.org> Fix one more missing this-> to placate that picky clang++.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91536 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
acf8723b8e531e64abd3be61b4f34e7700c6028d 16-Dec-2009 Chris Lattner <sabre@nondot.org> fix more missing this->'s to placate clang++


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91531 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
2e376a87dee2d10c48908c43037f61b965cec496 16-Dec-2009 Chris Lattner <sabre@nondot.org> Fix a missing this-> that clang++ notices.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91530 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
b3649db1022ef464687df135934c6e743e5c5cb8 16-Dec-2009 Chris Lattner <sabre@nondot.org> now that libsystem no longer uses SmallVector, we can move
SmallVectorBase::grow_pod out of line, finally satisfying PR3758.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91529 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
99ea87a48a3a891dbf5f4cb89179610a5f3f84cf 16-Dec-2009 Chris Lattner <sabre@nondot.org> factor out the grow() method for all pod implementations into one
common function. It is still an inline method, which will be fixed next.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91526 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
2676f183123e1472c8d9d7f6a64f1d50a74e484a 16-Dec-2009 Chris Lattner <sabre@nondot.org> pull destroy_range and uninitialized_copy up to the
SmallVectorTemplateBase class, which allows us to statically
dispatch on isPodLike instead of dynamically.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91523 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
e6e55d79592fa0926175d6b17e3db89b298ada4e 16-Dec-2009 Chris Lattner <sabre@nondot.org> sink most of the meat in smallvector back from SmallVectorTemplateCommon
down into SmallVectorImpl. This requires sprinking a ton of this->'s in,
but gives us a place to factor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91522 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
de576fa579b4b3077a3c315d6507f13ab71d61ab 16-Dec-2009 Chris Lattner <sabre@nondot.org> substantial refactoring of SmallVector, now most code is in SmallVectorTemplateCommon,
and there is a new SmallVectorTemplateBase class in between it and SmallVectorImpl.
SmallVectorTemplateBase can be specialized based on isPodLike.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91518 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
4a5129c700a76bf5c4b7f2aa9c362496fb6d8bd6 15-Dec-2009 Chris Lattner <sabre@nondot.org> a few improvements:
1. Use std::equal instead of reinventing it.
2. don't run dtors in destroy_range if element is pod-like.
3. Use isPodLike to decide between memcpy/uninitialized_copy
instead of is_class. isPodLike is more generous in some cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91427 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
10aaf05c304e259dbb853a37d491fdc4ea54c9b1 15-Dec-2009 Chris Lattner <sabre@nondot.org> hoist the begin/end/capacity members and a few trivial methods
up into the non-templated SmallVectorBase class.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91426 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
dc2e570411bb1b1345a6b9840050aca823835a81 15-Dec-2009 Chris Lattner <sabre@nondot.org> improve isPodLike to know that all non-class types are pod.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91425 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
4bbf4ee1491637c247e195e19e3e4a8ee5ad72fa 15-Dec-2009 Chris Lattner <sabre@nondot.org> Remove isPod() from DenseMapInfo, splitting it out to its own
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91421 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
enseMapInfo.h
mmutableList.h
ointerIntPair.h
alueMap.h
eb751d8c2da1a9b0d84139e19e20288d9b978451 15-Dec-2009 John McCall <rjmccall@apple.com> Names from dependent base classes are not found by unqualified lookup.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91407 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
d01518630ad165e0bc7d7194abb183abfa93e0d5 11-Dec-2009 Gabor Greif <ggreif@gmail.com> Simplify this class by removing the result cache.

This change removes the DefaultConstructible
and CopyAssignable constraints on the template
parameter T (the first one).

The second template parameter (R) is defaulted to be
identical to the first and controls the result type.
By specifying it to be (const T&) additionally the
CopyConstructible constraint on T can be removed.

This allows to use StringSwitch e.g. for llvm::Constant
instances.

Regarding the other review feedback regarding performance
because of taking pointers, this class should be completely
optimizable like before, since all methods are inline and
the pointer dereferencing and result value caching should be
possible behind the scenes by the "as-if" rule.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91123 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
022840e9608207305a2e0488763f06fb1b5ad5e5 09-Dec-2009 Daniel Dunbar <daniel@zuster.org> DeltaAlgorithm: Add a virtual destructor and home.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90957 91177308-0d34-0410-b5e6-96231b3b80d8
eltaAlgorithm.h
e854273892a5fed9a797ed58e472cca2e95fcc33 09-Dec-2009 Daniel Dunbar <daniel@zuster.org> Remove unneeded ';' and a class/struct mismatch (noticed by clang).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90934 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
9000242cca4431a8dd09c83459d56f164294582c 06-Dec-2009 Chris Lattner <sabre@nondot.org> remove extraneous comma clang warns about


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90707 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
a6d5e40e25e6b4fc856fa5cd10a59b8fdf51d9a7 03-Dec-2009 Daniel Dunbar <daniel@zuster.org> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90447 91177308-0d34-0410-b5e6-96231b3b80d8
eltaAlgorithm.h
074fe8324dd9533f1cd210091b15719ff67f49c2 01-Dec-2009 Gabor Greif <ggreif@gmail.com> typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90236 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
6c2a7a04da2a6c8829b82cecb355b718f350c4f1 01-Dec-2009 Gabor Greif <ggreif@gmail.com> demonstrate usage of Cases() mapping several strings to the same value; remove trailing spaces

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90230 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
b5eedf2c1c4d3b7ccd6e0db6c0d1cafb502d5adc 30-Nov-2009 Tobias Grosser <grosser@fim.uni-passau.de> Remove forgotten ShortNames in Trie and CompilationGraph

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90135 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
983c7fe847dd3f46945f0117ab19345b9c68e88f 21-Nov-2009 Daniel Dunbar <daniel@zuster.org> Allow SmallString to implicitly convert to StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89529 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
90c583fff0535d441717425ad4428d85eb2a00a9 19-Nov-2009 Benjamin Kramer <benny.kra@googlemail.com> cstdlib is not automatically included with StringRef anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89359 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
1acdcd5b0d0893e6c9a3b7618a7facf9e2d5dec6 19-Nov-2009 Benjamin Kramer <benny.kra@googlemail.com> Remove the now obsolete algorithm include from StringRef.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89354 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
2fe05d80d396b6ca0bdc66ec17732b8c514d575e 19-Nov-2009 Torok Edwin <edwintorok@gmail.com> Workaround PR5482, because all the gcc versions that I had were miscompiling StringRef:
4.2.4, 4.3.4, 4.4.2.
The workaround is to use a local min/max implementation that takes an integer
param, and not a reference to integer param (like std::min does).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89352 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
cc9fa81fe1675b29fa813945c52abee692229143 19-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add PS3 Triple class, Credit to John Thompson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89339 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
b80077aae9fe51af78e6e25e26d09bf8efcd8244 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Twine: Stores kinds as uchar instead of bitfield to be friendlier to the
optimizer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89278 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
51cdac02c4125b8545728eb30ab5f54e437d6377 17-Nov-2009 Viktor Kutuzov <vkutuzov@accesssoftek.com> Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89122 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
2cd8abbf8631921c744d021214dd21998a25a946 17-Nov-2009 Nuno Lopes <nunoplopes@sapo.pt> add Case() with 5 args

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89099 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
4a20c7a0a9ffa2b60668b1b8c39e550531dbcbb1 17-Nov-2009 Duncan Sands <baldrick@free.fr> 1. Allow SCCIterator to work with GraphT types that are constant.
2. Allow SCCIterator to work with inverse graphs.
3. Fix an incorrect comment in GraphTraits.h (the type in the comment
was given as GraphType* when it is actually const GraphType &).
Patch by Patrick Alexander Simmons.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89091 91177308-0d34-0410-b5e6-96231b3b80d8
raphTraits.h
CCIterator.h
4c269e2feb230d4380c0b3cd72da517bd2222023 16-Nov-2009 Eric Christopher <echristo@apple.com> Fix unused variables warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88977 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
9806f833a6697b835f1c795a1bd2f26a84d49d3c 15-Nov-2009 Chris Lattner <sabre@nondot.org> add a version of array_pod_sort that takes a custom comparator function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88861 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
e0fb75d5864c0eef0464b216ac46bc1642469508 15-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add PSP OS Target to Triple, Credit to Bruno Cardoso Lopes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88849 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
24f8e29b4efe70496474c6d43aa6abfa27c21511 13-Nov-2009 Dan Gohman <gohman@apple.com> Use .data() instead of .c_str() when nul-termination is not needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88703 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
c78c0c99a0fe1703ae72fc51e440aaa8e4e19e91 13-Nov-2009 Rafael Espindola <rafael.espindola@gmail.com> Switch to smallvector. Also fix issue with using unsigend for MaxSplit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87068 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
5ccac247263ab62975f3b72421fc783f10ccf5f6 13-Nov-2009 Rafael Espindola <rafael.espindola@gmail.com> Add a new split method to StringRef that puts the substrings in a vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87058 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
89fccca4b01f148a7244f47e5a484cd793a1c30b 12-Nov-2009 Daniel Dunbar <daniel@zuster.org> StringRef(const char*) should not be used to turn null pointers into empty
strings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87031 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
05872ea804cdc9534960b30d28a391928c61481a 12-Nov-2009 Benjamin Kramer <benny.kra@googlemail.com> Add compare_lower and equals_lower methods to StringRef. Switch all users of
StringsEqualNoCase (from StringExtras.h) to it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87020 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
a8333d3d107df1e0b6bde986ed0532915e154b65 11-Nov-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::split(StringRef), to complement StringRef::split(char).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86803 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
3691393b86c6849525dcdfb096d9da816ac1545e 11-Nov-2009 Daniel Dunbar <daniel@zuster.org> Add Triple::str() which returns the contents of the Triple as a string, as a more readable alternative to getTriple().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86773 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
64066bd8b593082f622bbc25716938a453363d2f 11-Nov-2009 Daniel Dunbar <daniel@zuster.org> Add From arguments to StringRef search functions, and tweak doxyments.

Also, add unittests for find_first_of and find_first_not_of.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86770 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
81cf4325698b48b02eddab921ac333c7f25005c3 10-Nov-2009 Jeffrey Yasskin <jyasskin@google.com> Fix DenseMap iterator constness.

This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.

The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.

Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.

Patch by Victor Zverovich!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
38424c9b5d464d262aa05adfc899285f86b43275 10-Nov-2009 Daniel Dunbar <daniel@zuster.org> Add StringSwitch::Cases overloads, for matching multiple strings to a single
value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86618 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
2928c83b010f7cfdb0f819199d806f6942a7d995 06-Nov-2009 Daniel Dunbar <daniel@zuster.org> Pass StringRef by value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86251 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
tringRef.h
riple.h
6a66b388469f045c9fcff839595900c9f1512177 06-Nov-2009 Douglas Gregor <dgregor@apple.com> Add a bunch of missing "template" keywords to disambiguate dependent template names. GCC eats this ill-formed code, Clang does not. I already filed PR5404 to improve recovery in this case

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86204 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
0c8ae782cb966068f8317f8225633e2f4720ccb7 06-Nov-2009 Douglas Gregor <dgregor@apple.com> Make a few more LLVM headers parsable as standalone headers.

Fix some problems with the hidden copy constructors for
ImmutableMap/ImmutableSet found by Clang++.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86186 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
riorityQueue.h
rie.h
7a8b33a9a4da1724a652585ad805ea84a59b90e7 29-Oct-2009 Zhongxing Xu <xuzhongxing@gmail.com> add newline to make cl.exe happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85483 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
f25cf3d56f54a1f736db066924e6db886b3f5f3d 29-Oct-2009 Douglas Gregor <dgregor@apple.com> A switch-on-string-literal construct that is a nice alternative to
cascading "ifs" of strcmps/memcmps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85459 91177308-0d34-0410-b5e6-96231b3b80d8
tringSwitch.h
c5a75523eff46fe3880b94ae0fd22a1e01c27f28 28-Oct-2009 Evan Cheng <evan.cheng@apple.com> Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85358 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
99ebfa5f6c6f24fdce4cdd3de1adbc4a282db337 27-Oct-2009 Evan Cheng <evan.cheng@apple.com> Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85318 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
fe134fe9e5673d63b4b80392adcc5a3df928475f 27-Oct-2009 Mike Stump <mrs@apple.com> Fix VS build, patch by Marius Wachtler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85198 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
8b67f774e9c38b7718b2b300b628388f966df4e0 26-Oct-2009 Chandler Carruth <chandlerc@gmail.com> Move DataTypes.h to include/llvm/System, update all users. This breaks the last
direct inclusion edge from System to Support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
oldingSet.h
mmutableList.h
mmutableSet.h
mallPtrSet.h
parseBitVector.h
tringExtras.h
wine.h
4ab74cdc124af6b4f57c2d2d09548e01d64a1f34 23-Oct-2009 Jeffrey Yasskin <jyasskin@google.com> Fix stylistic and documentation problems in ValueMap found by Nick Lewycky and
Evan Cheng.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84967 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
alueMap.h
71a5c22c2b635ea903c3ae7d2695ca649b38726f 23-Oct-2009 Jeffrey Yasskin <jyasskin@google.com> Try r84890 again (adding ValueMap<>), now that I've tested the compile on
gcc-4.4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84902 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
abc5ac728961cb23b1041a3466fe2eb4521603c3 23-Oct-2009 Eric Christopher <echristo@apple.com> size_t, not unsigned here to silence a warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84900 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
a0b0562a35fe46786eb3974fc67da8cd4f3a272a 22-Oct-2009 Benjamin Kramer <benny.kra@googlemail.com> Random include cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84898 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
a84c9db467ce55e68464e6a099dcfe934b513a2a 22-Oct-2009 Jeffrey Yasskin <jyasskin@google.com> Revert r84890, which broke the linux build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84892 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
e0a234029b1b65f21169536f4c45e83743ed3cfa 22-Oct-2009 Jeffrey Yasskin <jyasskin@google.com> Add a ValueMap<ValueOrSubclass*, T> type. ValueMap<Value*, T> is safe to use
even when keys get RAUWed and deleted during its lifetime. By default the keys
act like WeakVHs, but users can pass a third template parameter to configure
how updates work and whether to do anything beyond updating the map on each
action.

It's also possible to automatically acquire a lock around ValueMap updates
triggered by RAUWs and deletes, to support the ExecutionEngine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84890 91177308-0d34-0410-b5e6-96231b3b80d8
alueMap.h
3a8ff4c8b67d12689cb5fc9c0e9606f4530e6f41 18-Oct-2009 Eric Christopher <echristo@apple.com> More warnings patrol: Another unused argument and more implicit
conversions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84382 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
9bd34602fbe945cc2ed81f8f8ac7de59f4679038 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Move UnescapeString to a static function for its sole client; its inefficient and broken.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84358 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
ca107c5c1871e38f475224db03da5b90f9fccef2 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Remove llvm::EscapeString, raw_ostream::write_escaped is much faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84357 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
4dee7fd2c2cb3fabddf99a184abe41dbc0bd4085 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Move StringMap's string has function into StringExtras.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84344 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
cc4287a374a33fb03ef41b92f74783e31ef47650 16-Oct-2009 Chris Lattner <sabre@nondot.org> Add half precision floating point support (float16) to APFloat,
patch by Peter Johnson! (PR5195)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84239 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
a43fc3452b4c5a853054b6b671eacbdd05039130 16-Oct-2009 Chris Lattner <sabre@nondot.org> add haiku support, patch by Paul Davey!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84238 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
d10e68c2cb61f2c9569ca80e1c54b2e40ee066d2 14-Oct-2009 Dan Gohman <gohman@apple.com> Delete bogus semicolons.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84132 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
41b5adf20208f46e4b1104d6d473710fbfa61eb9 14-Oct-2009 Eric Christopher <echristo@apple.com> Remove a bunch of unused arguments from functions, silencing a
warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84130 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
9688079e07dce7748d14a761d52732add634ba4c 13-Oct-2009 Ted Kremenek <kremenek@apple.com> Provide a mode for ImmutableMap/ImmutableSet to not automatically canonicalize the internal functional AVL trees. This should speedup clients that use ImmutableMap/ImmutableSet but don't require fast comparisons of maps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84010 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
c411c4be1e64f9d6bcec230222bb19f8e037c491 13-Oct-2009 Chris Lattner <sabre@nondot.org> remove dead header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83943 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
cbc7cc63b6c7ee1008f92064388c37327c183328 13-Oct-2009 Dan Gohman <gohman@apple.com> Add a ceilLogBase2 function to APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83932 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
127445818efd810b138dd5362129ab3c7f8b9963 07-Oct-2009 Torok Edwin <edwintorok@gmail.com> Add a comment explaining how DenseMap::insert works, because it is not
intuitive.
It does NOT update the value if the key is already in the map,
it also returns false if the key is already in the map, regardless
if the value matched.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83458 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
835b142edd2a3da6d0b7a4e47d50408953a49db4 01-Oct-2009 Dan Gohman <gohman@apple.com> Don't use identifiers that start with an underscore followed
by a capital letter, which invokes undefined behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83206 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
1e9a727f1058c9e8f90eae9ac656214265244f7f 29-Sep-2009 Devang Patel <dpatel@apple.com> Create empty StringRef is incoming cstring is NULL.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83082 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
27dba671c3f158a33c8cbdf5196a6fd16489be03 22-Sep-2009 Daniel Dunbar <daniel@zuster.org> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82517 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
c936fe8cb356931f23e6f17ce1bd5789eeae1ecb 21-Sep-2009 Chris Lattner <sabre@nondot.org> write rfind in terms of npos as daniel requested


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82414 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
05a32c8ab118d9c92dc9b4ecaa7a6fed67241215 20-Sep-2009 Chris Lattner <sabre@nondot.org> move a couple non-trivial methods out of line, add new
find_first_of/find_first_of methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82347 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
db513bc0963fbf372f898f8b94fc13994663c0c6 20-Sep-2009 Chris Lattner <sabre@nondot.org> add size_t and a version of rfind that allows specification of where
to scan from.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82343 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
63c6b7dc67f0061340c0701f3d5b1de142f58cec 20-Sep-2009 Chris Lattner <sabre@nondot.org> add some more overloads of StringRef::getAsInteger for
common and useful integer types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82338 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
3670a01d0be3bab1aa5856fea02a854aee2b65d6 20-Sep-2009 Chris Lattner <sabre@nondot.org> add a simple c_str() method to SmallString.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82337 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
cea1438cf59c7cd3a632d61d78e68589315510d3 19-Sep-2009 Chris Lattner <sabre@nondot.org> provide a "strtoull" operation that works on StringRef's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82322 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
2fed70daaf6cf77ec62166041fef11ba7cf68173 17-Sep-2009 John McCall <rjmccall@apple.com> Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy>
instead of the PtrTraits provided. Allows PointerIntPair to contain a
PointerUnion safely, as long as the bits add up.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82163 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
d7bd78e36e1d3adfc90a4f95b2cc849d38af1b24 17-Sep-2009 Chris Lattner <sabre@nondot.org> add a version of the APFloat constructor that initializes to 0.0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82110 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
e65512809a4144c17538aac4cc59fac6d325a7e4 17-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::{rfind, rsplit}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82087 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
75144f93eb7e4dbf22d308d21581ae255dd520c6 15-Sep-2009 Dan Gohman <gohman@apple.com> Fix apostrophos.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81856 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
270fc1077b07d7de1adbc3016d566d1757273b63 15-Sep-2009 Chris Lattner <sabre@nondot.org> switch scciterator to use DenseMap instead of std::map


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81834 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
724f6751442e2006856a9365ef3d3bc6f1b31c98 11-Sep-2009 Chris Lattner <sabre@nondot.org> give densemap iterators real iterator traits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81538 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
baf9b562309ae0f82774a6a3b4ffb9417a43a032 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add Triple::getArchTypeForDarwinArchName, which converts a "Darwin" architecture
name (e.g. "ppc") to the appropriate constant.

Also, StringRefize additional Triple constructor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81274 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
8ecbe8d974e1c1f778207b87dcdf887060f5c699 06-Sep-2009 Duncan Sands <baldrick@free.fr> Mark constants as unsigned, as pointed out by icc
warnings (#174). Patch by Erick Tryzelaar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81111 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
59bf4fcc0680e75b408579064d1205a132361196 06-Sep-2009 Duncan Sands <baldrick@free.fr> Public and private corrections, warned about by icc (#304).
Patch by Erick Tryzelaar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81107 91177308-0d34-0410-b5e6-96231b3b80d8
ndexedMap.h
parseBitVector.h
list.h
list_node.h
ee3d6fd219da0e528ddfc170c6058bd78473eccc 05-Sep-2009 Benjamin Kramer <benny.kra@googlemail.com> Delete unused #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81076 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
be5cded586e3a76f3175111019c51c99e38cf8e8 05-Sep-2009 Benjamin Kramer <benny.kra@googlemail.com> Prune #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81052 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
8b8a7fcf68c3bb6f8b90f5f1813ebb391b56e550 04-Sep-2009 Ted Kremenek <kremenek@apple.com> Make ImmutableMap/ImmutableSet quicker by only canonicalizing the tree after an
Add or Remove operation complete, and not while building the intermediate tree.
This trades a little bit more memory usage for less accesses to the FoldingSet. On a benchmark for the clang static analyzer, this shaves off another 13% of execution time when using field/array sensitivity.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80955 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
9bd2acb3b253c77dd1f7680a2e6505039e9c49a5 03-Sep-2009 Ted Kremenek <kremenek@apple.com> Set the 'cached digest' flag after computing the digest for an
ImutAVLTree. This was accidentally left out, and essentially caused
digest caching to be ignored in ImmutableMap and ImmutableSet (this
bug was detected from shark traces that showed ComputeDigest was in
the hot path in the clang static analyzer).

This reduces the running time of the clang static analyzer on an
example benchmark by ~32% for both RegionStore (field-sensitivty) and
BasicStore (without field-sensitivity).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80877 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
b97cb9cbe120c50cd78c4d2c0b86d4dd8047b055 31-Aug-2009 Gabor Greif <ggreif@gmail.com> restore semantics of operator* (removing a FIXME I had to introduce in r80224)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80622 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
32859c71d6ba9cd5e38662611a73d82335f4ba41 30-Aug-2009 Chris Lattner <sabre@nondot.org> make DenseMap::clear() early exit if there is nothing to do.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80480 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
7362ce08cb2c1f0b544b18dbc21630fb4baebcfc 28-Aug-2009 Gabor Greif <ggreif@gmail.com> eliminate all 80-col violations that I have introduced in my recent checkins (and some others more)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80304 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
ostOrderIterator.h
CCIterator.h
list.h
4c75054b0149750219fe6edb8e25ddd8f7af6920 27-Aug-2009 Gabor Greif <ggreif@gmail.com> re-apply r80197, now that iterator.h is not mentioned any more

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80254 91177308-0d34-0410-b5e6-96231b3b80d8
terator.cmake
terator.h.in
f0891be8bdbeeadb39da5575273b6645755fa383 27-Aug-2009 Gabor Greif <ggreif@gmail.com> Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80224 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
quivalenceClasses.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
mallVector.h
list.h
fffb7266fe9c5c95d859ff5b3aeb5386cbd0cd1e 27-Aug-2009 Bill Wendling <isanbard@gmail.com> --- Reverse-merging r80147 into '.':
A include/llvm/ADT/iterator.cmake
U autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U Makefile
--- Reverse-merging r80173 into '.':
U configure
U include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A include/llvm/ADT/iterator.h.in

Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.

Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80197 91177308-0d34-0410-b5e6-96231b3b80d8
terator.cmake
terator.h.in
c42afd7946893f90aa701272316c22ae5143db89 27-Aug-2009 Gabor Greif <ggreif@gmail.com> now that include/llvm/ADT/iterator.h.in is not attempted to be built, its prerequisite can go away too

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80180 91177308-0d34-0410-b5e6-96231b3b80d8
terator.h.in
a626e16b383e559503df32169f76f6ab9e5a7b37 26-Aug-2009 Gabor Greif <ggreif@gmail.com> nobody includes llvm/ADT/iterator.h any more,
so get rid of this monstrosity. iterator.h.in is scheduled for deletion in my working copy,
but I wait till I see that configure gets regenerated, as it depends on it. I'll commit
then.
There are still some AC_* tests in the configure.ac dealing with iterators, those can
be zapped probably too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80147 91177308-0d34-0410-b5e6-96231b3b80d8
terator.cmake
7309be6735666143bd9835b275dc8501617a2591 26-Aug-2009 Gabor Greif <ggreif@gmail.com> Remove all the LLVM_COMPACTIFY_SENTINELS-related macro magic as discussed with Chris on IRC. Anybody wanting to debug sentinel dereferencing problems must revert this patch and perform the indicated modifications.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80128 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
list_node.h
e1182b5599f11778286f027eb536d7ddf7657eda 26-Aug-2009 Mike Stump <mrs@apple.com> Allow unsigned long long DenseMapInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80118 91177308-0d34-0410-b5e6-96231b3b80d8
enseMapInfo.h
be1f788676ff6a71bc0324ac38af7626fdcf92b2 26-Aug-2009 Chris Lattner <sabre@nondot.org> some mips and some sparc compilers apparently
predefine mips and sparc respectively. Just overrule them :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80072 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
2600ca8b3f3602d0904289eeed3d26f3d7aad2ae 25-Aug-2009 Gabor Greif <ggreif@gmail.com> re-committing yesterday's r79938.

This time there is no additional include of llvm/Config/config.h
at all. Instead I use a hard-coded preprecessor symbol:
LLVM_COMPACTIFY_SENTINELS

(should this work on the self-hosting buildbot, then
cleanups come next)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80035 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
list_node.h
f63097f223459a2f1125ab68afd61b364eda9312 25-Aug-2009 Bill Wendling <isanbard@gmail.com> --- Reverse-merging r79938 into '.':
U include/llvm/BasicBlock.h
U include/llvm/ADT/ilist_node.h
U include/llvm/ADT/ilist.h
U include/llvm/CodeGen/SelectionDAG.h
U include/llvm/CodeGen/MachineFunction.h
U include/llvm/CodeGen/MachineBasicBlock.h
U include/llvm/Function.h

Revert r79938. It was causing self-hosting build failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79960 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
list_node.h
fd7a918e5890a6c0611ab6b3fca7001d16593844 24-Aug-2009 Gabor Greif <ggreif@gmail.com> Resubmit an earlier patch of mine:
reduce the size of relevant "ghostly" sentinels
by a pointer.

This attempt now makes the compactification dependent
on the configure variable LLVM_COMPACT_SENTINELS
and should not cause any bootstrap failures for
llvm-gcc any more.

Please note that this is not yet the final version,
and (as settled with Chris) I shall take out the
autofoo/cmake portions in the next days.

This will also lose the assertability on sentinel
dereferencing and operator++, but that seems
an acceptable price to pay for the simplified
build logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79938 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
list_node.h
688b55b436b4a3a036f0827dc484b5f219ace1a3 24-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add llvm::Triple::getArchTypePrefix for getting the intrinsic prefix for an
identifier architecture.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79906 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
91021d339004ff5a64c3c9614cff8966899c0c99 24-Aug-2009 Chris Lattner <sabre@nondot.org> remove the dead std::ostream APInt inserter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79875 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
bbbfa99d3d18fe9f20265305e833666645ada528 23-Aug-2009 Chris Lattner <sabre@nondot.org> remove a few DOUTs here and there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
39db3439bfcdca4073dd513879f8ce12ee8c593b 22-Aug-2009 Daniel Dunbar <daniel@zuster.org> Change SmallString::operator{=,+=} to take a StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79729 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
7e844f128e0be77154aa08dbf2e828fcd4051604 22-Aug-2009 Anton Korobeynikov <asl@math.spbu.ru> Implement APInt <-> APFloat conversion for IEEE 128-bit floats.
This fixes PR2555

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79677 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
5149932068f535e1ff13b91c9669f55718c60a07 20-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add a fast path for setName("") on an unnamed value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79492 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
74db89e30fbd97808786026e56bcf1edb37469c7 19-Aug-2009 Eli Friedman <eli.friedman@gmail.com> Add triple parsing support for TCE.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79461 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
dddfd34e32ff081409e5a1c95b991a898d63dff2 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch to SmallString::str from SmallString::c_str, and remove
SmallString::c_str.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79456 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
04087d069a17265b964b30e8210262bbdbc4fbec 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add SmallString::str (which returns a StringRef); this is more efficient than
c_str().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79453 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
921be7a6f245f42accaa4f001271cb3f0c513d76 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove SmallString::append_*int* methods; how many copies of int -> str
conversion code do we really need?
- S.append_uint(N) can be replaced with 'raw_svector_ostream(S) << N' which is
somewhat slower due to the extra set up cost, but still plenty fast
(especially if the svector set up cost can be amortized).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79450 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
c2da6fb3e50902daf670fe83b8b017a2bcba05df 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add SmallVector::{capacity,set_size}.
- These allow clients to make use of the extra elements in the vector which
have already been allocated, without requiring them to be value initialized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79433 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
651aa689cc37d5932fac0e096aa8b536f282aa21 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Improve Triple to recognize the OS in i386-mingw32.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79359 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
323a3e653340781bad4c4c3245d9b25d5ab02685 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Fix pasto in StringRef::count(char)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79356 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
5caba3bcb14fae4b36924463ed2bcf3846f029a9 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::count({char,StringRef})


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79354 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
b2bacd926309a6cd89507b182f5c4ace010884fc 18-Aug-2009 Misha Brukman <brukman+llvm@gmail.com> Fixed spelling of MSP430.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79333 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
2447389bac8b4fc1b1edb3240a408a92616f2ca2 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Recognize xscale as an ARM arch.
- Patch by Yonggang Luo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79315 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
fdb0b7b555aaea054f85f654275fce56e5d7d1d3 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add Triple matching for pic16 arch and solaris OS.
- Patch by Yonggang Luo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79314 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
f70bc559a12c410aefab470f1349922ae7b19307 17-Aug-2009 Oscar Fuentes <ofv@wanadoo.es> Make a declaration consistent with its definition.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79220 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
a15d890c34b5e3a6373c410ebc58453f2d52f43b 17-Aug-2009 Erick Tryzelaar <idadesub@users.sourceforge.net> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79210 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
689ad6ef3fd2e89394f1e8860dfebfe56b73c3da 13-Aug-2009 Daniel Dunbar <daniel@zuster.org> Convert APint::{fromString,APInt,getBitsNeeded} to use StringRef.
- Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78885 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ac55b85438da378bab227fd34167bb0c4a9249aa 13-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::front (with some small tweaks while I was in the area).
- Patch by Erick Tryzelaar


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78883 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
a9ad04191cb56c42944b17980b8b2bb2afe11ab2 13-Aug-2009 Dan Gohman <gohman@apple.com> This void is implicit in C++.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78848 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
e2b16504be5b55e6a42819eaf93e0698b529165b 12-Aug-2009 Gabor Greif <ggreif@gmail.com> catch a typo and simplify call syntax

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78804 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
8e6208304bb1a885bc5970c090c97eaebf8a15f8 12-Aug-2009 Chris Lattner <sabre@nondot.org> add support for mingw64 target triples.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78797 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
dfc17f75e81250f3dcf06938f164481a77a50d60 12-Aug-2009 Chris Lattner <sabre@nondot.org> add a couple of helpers to the Triple class for decoding
the darwin version string. This should help consolidate
the variety of weird functions we have scattered around the
codebase that do stuff like this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78792 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
0ad7f9bb2f806387e53ffeaf6a564b9a80b962af 11-Aug-2009 Daniel Dunbar <daniel@zuster.org> StringRef: Add find(char) and find(StringRef).

Also, regroup functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78712 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
e36df3fd31a08a41d9ad04fcba182b616b030c9c 10-Aug-2009 Chris Lattner <sabre@nondot.org> add a simple back() method to StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78544 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
094da67bd781708e76ab37c76e7a87d86404be05 09-Aug-2009 Daniel Dunbar <daniel@zuster.org> STLExtras: Add less_ptr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78521 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
1eaf39145848ab4b6e3464c32e18f44816d83d1a 07-Aug-2009 Dan Gohman <gohman@apple.com> Use std::string() instead of std::string("").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78364 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
c9af366fc39d657b7d416d16988265d86a641184 05-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::endswith


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78197 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
3c2d4bf97fa96fe171883cd80e4ea93fc43563e6 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Pass target triple string in to TargetMachine constructor.

This is not just a matter of passing in the target triple from the module;
currently backends are making decisions based on the build and host
architecture. The goal is to migrate to making these decisions based off of the
triple (in conjunction with the feature string). Thus most clients pass in the
target triple, or the host triple if that is empty.

This has one important change in the way behavior of the JIT and llc.

For the JIT, it was previously selecting the Target based on the host
(naturally), but it was setting the target machine features based on the triple
from the module. Now it is setting the target machine features based on the
triple of the host.

For LLC, -march was previously only used to select the target, the target
machine features were initialized from the module's triple (which may have been
empty). Now the target triple is taken from the module, or the host's triple is
used if that is empty. Then the triple is adjusted to match -march.

The take away is that -march for llc is now used in conjunction with the host
triple to initialize the subtarget. If users want more deterministic behavior
from llc, they should use -mtriple, or set the triple in the input module.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77946 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
275872e79950dafc6699f6502cee52f74b84a22a 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Fix some comments referring to std::cerr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77931 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
bf4fc28303e00064fb24db1394010782299f5220 02-Aug-2009 Daniel Dunbar <daniel@zuster.org> Adjust comment to distinguish between target name and triple target name they
match.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77908 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
d950941e138455ebcd7a5f55805dcb977892e3e3 02-Aug-2009 Jakob Stoklund Olesen <stoklund@2pi.dk> Analog Devices Blackfin back-end.

Generate code for the Blackfin family of DSPs from Analog Devices:

http://www.analog.com/en/embedded-processing-dsp/blackfin/processors/index.html

We aim to be compatible with the exsisting GNU toolchain found at:

http://blackfin.uclinux.org/gf/project/toolchain

The back-end is experimental.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77897 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
458ba32680488486b7166e40fd3e25b4dccf73fd 01-Aug-2009 Ted Kremenek <kremenek@apple.com> Make default ctor for ImmutableSet::iterator public.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77762 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
fb3af88ba75898896714d49c608b8daa4f106636 31-Jul-2009 Dan Gohman <gohman@apple.com> Split DenseMapInfo into a separate header file, so that it can be
included separately.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77693 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
enseMapInfo.h
2d8bc0fe70c55664b89605dbfa5c2f591446469c 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twine: Directly support int, long, and long long types.
- This should resolve Cygwin gcc ambiguities.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77624 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
0fffbafa9609e0e289ff3120ab9e23d244c1dbc0 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twine: Use raw_ostream::write_hex, remove unused itohexstr method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77617 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
bd17a295c1fe7ac5669af033086209254a0887a3 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove itohexstr, which only had one user.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77613 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
fe09b2098ac483f6d6ce6ea4ab237a9539bdb6b9 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twines: Don't allow implicit conversion from integers, this is too tricky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77605 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
0165a2ca897598bb95baec031362921565e24f2b 30-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twine: Provide [u]int{32,64} conversions via implicit constructors instead of
explicitly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77576 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
26ef510d5d20b89c637d13e2d9169c0458de775c 29-Jul-2009 Douglas Gregor <dgregor@apple.com> Fix a typo, and all of its copies

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77489 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
e657ec6701ee78e70ed7de43a9d98dbd00f330e5 29-Jul-2009 Douglas Gregor <dgregor@apple.com> Implement PointerUnion4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77487 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
37e3fe9ad7d7cb350cbbce0695c68d652d624bb4 29-Jul-2009 Benjamin Kramer <benny.kra@googlemail.com> MSVC build fix. Patch by Olaf Krzikalla!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77450 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
763457e70bc9c5c2def89d24a133808b8a971f9f 29-Jul-2009 Daniel Dunbar <daniel@zuster.org> Twines: Support numeric conversion directly (uitostr, etc).
- Provides static constructors for doing number to string conversions without
using temporaries.

- There are several ways to do this, I think given the Twine constraints this
is the simplest one.

- One FIXME for fast number -> hex conversion.

- Added another comment on one last major bit of perf work Twines need, which
is to make raw_svector_ostream more efficient.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77445 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
7e763ebd982e199224a2d2e0cc802d09d2822b34 26-Jul-2009 Chris Lattner <sabre@nondot.org> Use the RHS length instead of the LHS length. They are both the same,
but this ends up compiling code like this:

int foo(const StringRef &R) {
return R == "food";
}

to use a constant sized memcmp instead of a variable memcmp.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77160 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
8c2f1d7e44d214bc2242a8c6faa4b624b3876540 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Oops, forgot XCore. Sorry XCore!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77125 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
6337f15b5a73c3eeb644d59cf34d37d4a278f5f7 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Update for API change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77124 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
a14d225ef4d3d8bd8ec9ec913246d1fb47d2edc1 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Update Triple to use StringRef/Twine based APIs.
- This is now shorter, simpler, safer, and more efficient, what a deal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77119 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
d61918fc6898a89df8b0a03e068f234ded010cdf 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::{slice, split}, two convenient string operations which are simple
and efficient on a StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77117 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
f595d6dd9a61c7387768d4e041539fcc6525a99b 25-Jul-2009 Jeffrey Yasskin <jyasskin@google.com> Add a missing ilist_node.h #include to SparseBitVector, and add a very short
test for it. The test is by no means complete, but it tests the problem I was
fixing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77025 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
3f0e83067d7938f742d21e14fc87c006d2fc3161 24-Jul-2009 Daniel Dunbar <daniel@zuster.org> Move to raw_ostream.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76963 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
050578fb4a006d7a183662f83fc22f7c78475605 24-Jul-2009 Daniel Dunbar <daniel@zuster.org> Fix constructor types


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76958 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
2538f7ab2ef39ab1a5e48744548d66b560d1fee6 24-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add Twine ADT.
- Not currently used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76956 91177308-0d34-0410-b5e6-96231b3b80d8
wine.h
6316fbcb04af00fe76b6526fab09f51484014b3e 23-Jul-2009 Daniel Dunbar <daniel@zuster.org> Convert StringMap to using StringRef for its APIs.
- Yay for '-'s and simplifications!

- I kept StringMap::GetOrCreateValue for compatibility purposes, this can
eventually go away. Likewise the StringMapEntry Create functions still follow
the old style.

- NIFC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
f0395160f934eb278aa960de22dada5b297ddd8a 23-Jul-2009 Chris Lattner <sabre@nondot.org> enhance DepthFirstIterator to support more robust operations in the face
of code mutating the graph while it is being traversed. Patch by
Olaf Krzikalla!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76869 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
903cb3908e1e6547b98d9199f38f3821dc4e4c9a 23-Jul-2009 Chris Lattner <sabre@nondot.org> remove a really old and dead header


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76855 91177308-0d34-0410-b5e6-96231b3b80d8
ree.h
b834a7b73ce0dcf8fbf8d8b0d62f69e4b78059ad 22-Jul-2009 Daniel Dunbar <daniel@zuster.org> Define npos in a way that should make MSVC happier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76785 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
85f49835c288b0107cb4020d4e59e491c146973d 21-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add missing include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76655 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
d06c59821a1ca0191ea8a326a18509808a02ed03 21-Jul-2009 Torok Edwin <edwintorok@gmail.com> Add freed memory poisoning in !NDEBUG mode for DenseMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76597 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
7cb6860185187c74a1205deebff9e0f09a0ddae4 21-Jul-2009 Daniel Dunbar <daniel@zuster.org> Move StringRef comparison operators out of class.

Also, tweak the return type of size().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76588 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
f5fdf73238dfd923f33bcbbd397cff6752d9c41e 21-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef::{substr, startswith}.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76559 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
4cf95d75c65f37677d306952b0d2306bc6d20b1f 21-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add StringRef class, with fixes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76543 91177308-0d34-0410-b5e6-96231b3b80d8
tringRef.h
aafa94260d5b1b6422258ed3db7244fe4449f217 19-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove redundant qualifiers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76357 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
cd2b4c1846413c7e4f46e8a08b1aa94212089053 15-Jul-2009 Chris Lattner <sabre@nondot.org> Fix a fixme, patch by Ryan Flynn!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75716 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
b8ac841c9a275cc8d4e1a92dd06cc99323e35fa2 13-Jul-2009 Chris Lattner <sabre@nondot.org> Add NetBSD to the Triple class, patch by Krister Walfridsson!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75489 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
d6a2aab53e3c4fcd53399cfa6f66d62913e53663 13-Jul-2009 Dan Gohman <gohman@apple.com> Add an optional optimization to FoldingSet to allow ID values to be
stored rather than recomputed on each bucket traversal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75480 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
8f3cfb4c657f0094e8bf1e67de4ee776d57a751e 10-Jul-2009 Ted Kremenek <kremenek@apple.com> ImmutableMap/ImmutableSet: Allow caching of ImutAVLTree digests while the tree
is still mutable. My experiments show this reduces the amount of times we
compute a full tree digest by over 50% on very small cases, and potentially much
larger on others.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75207 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
633eb95f3ee4f6a831ce6fef47b5f2e5b52f297b 09-Jul-2009 Ted Kremenek <kremenek@apple.com> ImmutableSet/ImmutableMap: Allow caching of null digests by properly using a flag to record if the digest of an ImutAVLTree has been cached.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75157 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
7c718222cdb624f4c420b3d7b6eeb12fffc05603 09-Jul-2009 Douglas Gregor <dgregor@apple.com> Make SmallPtrSet iterators real iterators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75073 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
151f369c539d77c50f1c4eeb79659666a620d679 07-Jul-2009 Chris Lattner <sabre@nondot.org> fix a bug in post-order iterators with external storage, patch by
Olaf Krzikalla!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74933 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
38a253ddf786b83dba14d980d269f7bb5c2252ea 30-Jun-2009 Dan Gohman <gohman@apple.com> Reapply 74494, this time removing the conflicting definition of operator<<
in APIntTest.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74550 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
527b6e62926673eb66e03f1250904a74a77667ae 30-Jun-2009 Bill Wendling <isanbard@gmail.com> Temporarily revert r74494. It was causing failures in the unit tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74515 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
5ec56cc43895b8b78ef2480d54982e3866d9d07a 30-Jun-2009 Owen Anderson <resistor@mac.com> Fix the build on Cygwin. Patch by Aaron Gray.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74510 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
670031666cf4dea0d122a0df2ec1d18822c225e4 30-Jun-2009 Dan Gohman <gohman@apple.com> Define an operator<< for APInt to be used with std::ostream.
This will allow it to be used in unittests that use gtest's
EXPECT_EQ.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74494 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
37c286c18128cce7f52654876a5a104150be4b79 29-Jun-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Fix three MSVC 2008 warnings that completely clutter the build output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74430 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
cd1267d2d68f03026aed21e22f7e28efd510ec5f 29-Jun-2009 Duncan Sands <baldrick@free.fr> Add triple for OpenBSD.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74422 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
1d3b26ac023b519077811e55f3f9e56de9c2e6f7 27-Jun-2009 Dan Gohman <gohman@apple.com> Add a 'const' in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74389 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1c47c7db1e0ef69f2c12385c254ec83f6fec6b1b 24-Jun-2009 Owen Anderson <resistor@mac.com> Update for DOTGraphTraits changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74113 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
92915e31e988c1b89a07c035029dc2f289afb789 23-Jun-2009 Owen Anderson <resistor@mac.com> Use atomic operations when accessing statistics, and make the lazy initialization of statistics actually threadsafe.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74005 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
852cd112edef55ff6fe334eeaeff153209f85666 19-Jun-2009 Duncan Sands <baldrick@free.fr> Add support for AuroraUX. Patch by evocallaghan.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73766 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
be24f1b7fb093380f9bac489f4b70a7e133be7b5 16-Jun-2009 Owen Anderson <resistor@mac.com> Owen Anderson 2009-06-15: Use a SmallPtrSet here, for speed and to match df_iterator.
Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73438 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
23e1e727bd8c890ebe060e8f756085efb42697dc 02-Jun-2009 Torok Edwin <edwintorok@gmail.com> fix build on VC++2k8.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72736 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
6330084a6623afcacd86156ef505aa11d482e307 01-Jun-2009 Mike Stump <mrs@apple.com> Dcoument that the opauque value used to construct QNaNs is truncated
as necessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72702 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
7d36d39e63451a09283225e6507dea730c1efa14 30-May-2009 Mike Stump <mrs@apple.com> Add some documentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72622 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
c5ca713b8073d9fe95b258d0c01328d020df3357 30-May-2009 Mike Stump <mrs@apple.com> Add support for letting the client choose different flavors of NaNs. Testcase to be
added in clang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72606 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
7eaf057e54e9b5f0469057c71d81dcfee90d9e12 22-May-2009 Daniel Dunbar <daniel@zuster.org> Add llvm::triple constructor from arch, vendor, os strings, and recognize
DragonFly OS type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72242 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
c5d73afa4801d3cb7abea0244c2e9e687564fd6c 21-May-2009 Jay Foad <jay.foad@gmail.com> Tighten up the asserts in SmallVector::operator[]().
If this causes any new assertion failures that I didn't catch in
testing, the fix is usually to change "&v[0]" to "v.data()" for some
SmallVector v.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72221 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
e3e51c0038bd6ba2add82e2246e97edec0ab2204 21-May-2009 Jay Foad <jay.foad@gmail.com> Use v.data() instead of &v[0] when SmallVector v might be empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
82fe2935bf623f09533412126ad31e62dc3167ab 21-May-2009 Jay Foad <jay.foad@gmail.com> Implement new SmallVector::data() methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72209 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
13bb81addfc15d9852711191696f5bd6e52f9552 12-May-2009 Bill Wendling <isanbard@gmail.com> Use struct instead of class to make MCVS compile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71600 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
01746745f1287effa1772ef51b973988afcea699 11-May-2009 Douglas Gregor <dgregor@apple.com> Add terminal width detection to llvm::sys::Process. This is needed to
fix Clang PRs 4148 and 4183.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71448 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
b9cfbd94abb23ec8646b9b10aa4ac3d1cbf4461e 11-May-2009 John Mosby <ojomojo@gmail.com> Shrink wrapping in PEI:
- reduces _static_ callee saved register spills
and restores similar to Chow's original algorithm.
- iterative implementation with simple heuristic
limits to mitigate compile time impact.
- handles placing spills/restores for multi-entry,
multi-exit regions in the Machine CFG without
splitting edges.
- passes test-suite in LLCBETA mode.

Added contains() method to ADT/SparseBitVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71438 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
fe095f39e7009c51d1c86769792ccbcad8cdd2ec 04-May-2009 Mike Stump <mrs@apple.com> Restore minor deletion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
f0e4cac7ebdee07639bd1fc3eadf204f45868556 01-May-2009 Stuart Hastings <stuart@apple.com> Prevent looping when DenseSet is abused.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70572 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
4e5ea553d055512b0b8aa098e363ae17bafda957 30-Apr-2009 Jay Foad <jay.foad@gmail.com> Move helper functions for optimizing division by constant into the APInt
class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70488 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
3485d25a0e3355a13a9fe073fa5cd98838431ef0 26-Apr-2009 Bill Wendling <isanbard@gmail.com> I cast, therefore I think I know what I'm doing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70151 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
b14a495c3682a9804e81326691f039ab2e15738f 26-Apr-2009 Bill Wendling <isanbard@gmail.com> Use uint64_t instead of unsigned.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70148 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
1e8db00e3b244a9a6b4b4a22adaa5618fafc37df 26-Apr-2009 Chris Lattner <sabre@nondot.org> revert an incorrect patch. This causes crashes all over the place on a
64-bit build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70147 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
610cb31ac9853540416a87125ff94783de4a4231 26-Apr-2009 Bill Wendling <isanbard@gmail.com> Suppress warnings about conversion shortening 64-bit to 32-bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70138 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
11d8fb960963a1f8a7e2b2972bc560a5b24cf216 25-Apr-2009 Chris Lattner <sabre@nondot.org> DenseMap.h needs <new> because it explicitly calls operator new/delete.
Patch by John McCall!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70068 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
747972914ae73379fd837e5a30cea229be792e34 22-Apr-2009 Owen Anderson <resistor@mac.com> Fix for PR3946, in which SmallVector could behave strangely in corner cases.

Patch by Peter Johnson.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69785 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
17893a5fb6b3b4b9e84674dfb7692abb57410dd1 13-Apr-2009 Douglas Gregor <dgregor@apple.com> Add a static APInt::getNumWords

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68977 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
5c5f5a2ec2dd49bd3049fa0a55aca4956fc56ff2 10-Apr-2009 Chris Lattner <sabre@nondot.org> fix a broken assertion in ilist_iterator, which caused it to crash in the
bad case instead of actually assert. Bug pointed out by Jakob Stoklund
Olesen!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68785 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
d0dfbe096dd71ca4d652784705584876f8b18250 02-Apr-2009 Chris Lattner <sabre@nondot.org> fix overflow checks in SmallVector:

"The code was doing "if (End+NumInputs > Capacity) ...". If End is
close to 0xFFFFFFFF and NumInputs is large, it'll overflow, the
condition will come out false, and the vector won't grow to
accommodate the new elements, and the program will crash in memmove."

Patch by Jeffrey Yasskin!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68277 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
23e97b05da7b31ed97e5ccc6330670da0173ca2e 01-Apr-2009 Daniel Dunbar <daniel@zuster.org> Add llvm::Triple class for abstracting access to target triples.
- The code is silly, I'm just amusing myself. Rewrite to be efficient
if you like. :)

Also, if you wish to debate the proper names of the triple components
I'm all ears.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68252 91177308-0d34-0410-b5e6-96231b3b80d8
riple.h
b035842c34668e76a0637f018a5b0157c44ccc61 01-Apr-2009 Misha Brukman <brukman+llvm@gmail.com> Fixed spelling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68248 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
dd255a62474a2016702e2985710e6e8910b3c974 01-Apr-2009 Chris Lattner <sabre@nondot.org> Add range insert method for DenseSet and define DenseMapInfo for chars.
Patch by Kevin Fan!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68239 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
enseSet.h
de551f91d8816632a76a065084caab9fab6aacff 01-Apr-2009 Dan Gohman <gohman@apple.com> Use CHAR_BIT instead of hard-coding 8 in several places where it
is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68227 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
itVector.h
parseBitVector.h
41222823db11107834414a378525bb21493d3a1f 01-Apr-2009 Douglas Gregor <dgregor@apple.com> Allow the use of pointers to const within PointerUnion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68159 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
bdd376ccb25f251e115fff24b526b4e65e03a1d3 31-Mar-2009 Chris Lattner <sabre@nondot.org> add some accessors so I can play games with DenseMaps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68145 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
da84b25b13f05b94c6c9478b1bc552054756759e 31-Mar-2009 Douglas Gregor <dgregor@apple.com> Stop guessing, start thinking, and make PointerUnion3::is actually be correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68126 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
a7425d7fde61c2207a4467464df90b5e3e58a769 31-Mar-2009 Douglas Gregor <dgregor@apple.com> Really, really fix PointerUnion3::is

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68079 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
2048cdb08ef6ad04bd1baf52886605d455236eb7 30-Mar-2009 Douglas Gregor <dgregor@apple.com> Make PointerUnion3::get work properly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68067 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
f54229192c22559389b0ef47e731fd628db963c5 30-Mar-2009 Chris Lattner <sabre@nondot.org> update comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68060 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
e8bc475668ddd2f31f44dd00b042d15b255e1b9e 30-Mar-2009 Chris Lattner <sabre@nondot.org> add a PointerUnion3 class and generalize PointerUnion to work with
anything pointer-like, which may or may not actually be a pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68056 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
c6a4b6b78b9262ad6a343a4edae88611ef970669 30-Mar-2009 Chris Lattner <sabre@nondot.org> fix the PointerLikeTypeTraits specialization for PointerIntPair to
allow the traits to be specified as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68055 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
54e01d06db7c04208a684e34cb82b0847a077261 29-Mar-2009 Chris Lattner <sabre@nondot.org> add missing space.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67995 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
3a9fe06bfe30da6fb1e0a540f05877c3640c7335 29-Mar-2009 Chris Lattner <sabre@nondot.org> add some comments, add a dyn_cast method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67992 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
f341a47d10501bc69b5d4d2217992bb6e08668d8 29-Mar-2009 Chris Lattner <sabre@nondot.org> When forming sentinels for empty/tombstone, make sure to respect the
pointer's expected number of zero low-bits.

This should fix the breakage I introduced recently.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67990 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ointerIntPair.h
ba315c1ee7bef78c6824441fe6c1761596ec9880 29-Mar-2009 Chris Lattner <sabre@nondot.org> add helper method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67989 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
2491e4657d95f7ff61fb2a741ba9996e492df515 29-Mar-2009 Chris Lattner <sabre@nondot.org> Add a simple type-safe bit-mangling pointer union class. This allows
you to do things like:

/// PointerUnion<int*, float*> P;
/// P = (int*)0;
/// printf("%d %d", P.is<int*>(), P.is<float*>()); // prints "1 0"
/// X = P.get<int*>(); // ok.
/// Y = P.get<float*>(); // runtime assertion failure.
/// Z = P.get<double*>(); // does not compile.
/// P = (float*)0;
/// Y = P.get<float*>(); // ok.
/// X = P.get<int*>(); // runtime assertion failure.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67987 91177308-0d34-0410-b5e6-96231b3b80d8
ointerUnion.h
540db8bcb8d7dae55456d8564c1d54071ec6ed50 29-Mar-2009 Chris Lattner <sabre@nondot.org> Allow a specific PointerIntPair instance to use a specific Pointer trait:
some pointer instances have properties that not all of a type have.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67986 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
e30173ac3396510bd0bb26a66fd615ff9083436d 29-Mar-2009 Chris Lattner <sabre@nondot.org> Replace the PointerLikeTypeTraits::getNumLowBitsAvailable
function with a new NumLowBitsAvailable enum, which makes the
value available as an integer constant expression.

Add PointerLikeTypeTraits specializations for Instruction* and
Use** since they are only guaranteed 4-byte aligned.

Enhance PointerIntPair to know about (and enforce) the alignment
specified by PointerLikeTypeTraits. This should allow things
like PointerIntPair<PointerIntPair<void*, 1,bool>, 1, bool>
because the inner one knows that 2 low bits are free.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67979 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
8ee1b5e916249d1a64ad8cf99b08a0e160f9d052 29-Mar-2009 Chris Lattner <sabre@nondot.org> rename PointerLikeTypeInto to PointerLikeTypeTraits, add trait for
# low bits free, and move to its own header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67973 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
mallPtrSet.h
4d4177b9b3ab634e852be1c0a7565a4ec1c7df93 29-Mar-2009 Chris Lattner <sabre@nondot.org> teach SmallPtrSet that PointerIntPair is "basically a pointer".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67970 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
1717f3af087e44d2c4b7fe2b35abc29a33d6d315 28-Mar-2009 Chris Lattner <sabre@nondot.org> declare everything as class to avoid angering the VC++ gods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67931 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
6de603071879bdc5d7d663826354c24a9d176469 28-Mar-2009 Chris Lattner <sabre@nondot.org> add a traits class for SmallPtrSet that allows us to stick things that are
"basically pointers" into it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67930 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
9c01f2dd0b20e09f4edef832620a188eda62ff5a 27-Mar-2009 Dan Gohman <gohman@apple.com> Revert r67844. This fixes the llvm-gcc-4.2 build on Darwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67856 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
76d38384542e2f596e14eb8e80b8e1c6a2652fd1 27-Mar-2009 Duncan Sands <baldrick@free.fr> Reapply r66415, which was reverted in r66426 for
causing a bootstrap failure. Bootstraps here on
x86-32-linux and x86-64-linux. Requested by the
author Gabor Greif who says that a bug that might
have been causing the failure has since been fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67844 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
dae2206390be0b1886cf0c1dba3edf079d28274f 22-Mar-2009 Chris Lattner <sabre@nondot.org> Fix PR3860 by correcting a predicate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67473 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
3ee87b6f9da0f63762ffaf0c4fcbc39514a059fb 21-Mar-2009 Chris Lattner <sabre@nondot.org> add some inline methods for infix operators on sparse vectors,
tidy some df iteration stuff, patch by John Mosby!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67428 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
parseBitVector.h
e889d837a4d226280525b1eafe5a6317c594ebf3 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Add StringMap::lookup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66750 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
9aaa0796adff54dd6282e8ead6d3d9f2ab7eea22 09-Mar-2009 Bill Wendling <isanbard@gmail.com> Revert r66415. It's causing failures during bootstrap builds:

Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c: In function '__muldi3':
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:567: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c: In function '__lshrdi3':
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:421: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
make[5]: *** [libgcc/./_lshrdi3.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: *** [libgcc/./_muldi3.o] Error 1
make[5]: *** [libgcc/./_negdi2.o] Error 1


--- Reverse-merging (from foreign repository) r66415 into '.':
U include/llvm/BasicBlock.h
U include/llvm/ADT/ilist_node.h
U include/llvm/CodeGen/SelectionDAG.h
U include/llvm/CodeGen/MachineFunction.h
U include/llvm/CodeGen/MachineBasicBlock.h
U include/llvm/Function.h



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66426 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
5c3e7b171898612066afc86b8fa850cc32a0cd40 09-Mar-2009 Gabor Greif <ggreif@gmail.com> in builds without asserts we do not need to allocate the Next pointer in "ghostly" sentinels

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66415 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
59fad7d9339901f8146f2d77cd7818625f0935b8 09-Mar-2009 Nick Lewycky <nicholas@mxc.ca> Remove configurey-fu to autodetect hash_map and hash_set now that they are
no longer used in LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66406 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
ash_map.cmake
ash_map.h.in
ash_set.cmake
ash_set.h.in
c23b8719ef9d6b1220e854b37d40e9e1c48a82bc 04-Mar-2009 Gabor Greif <ggreif@gmail.com> Give sentinel traits the right to determine the policy where the sentinel is kept.
This should result in less indirect memory accesses, less dead writes and tighter code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66061 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
83b5752747ea14696b0e51904722c38771f22eb7 02-Mar-2009 Gabor Greif <ggreif@gmail.com> drop support for GCC 2.x as it is hopelessly broken anyway

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65864 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
b141e397d52d9946e93f84c65c6b2e653b026041 28-Feb-2009 Gabor Greif <ggreif@gmail.com> make traits more flexible by splitting out node-related fragment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65690 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
a05764c4fb1ff4fc6013dcfd71fc83fb25cdcd27 27-Feb-2009 Gabor Greif <ggreif@gmail.com> group friendship

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65633 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
0a0e68a7eac0513505aff3079e2d5d6864e51895 27-Feb-2009 Gabor Greif <ggreif@gmail.com> Introduce a new technique for merging BasicBlock with Instruction sentinel by superposition.
This looks dangerous, but isn't because the sentinel is accessed in special way only,
namely the Next and Prev fields of it, and these are guaranteed to exist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65626 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
638b8b446e7f08d348fe4f3b290c08f6854fc8ba 23-Feb-2009 Ted Kremenek <kremenek@apple.com> Correctly implement ImmutableMap::getMaxElement() by getting the actual <key, value> pair.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65327 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
1c7a666fcef22e75dc675b06444f5a894f54d7be 23-Feb-2009 Ted Kremenek <kremenek@apple.com> Add ImmutableMap::getMaxElement(), a method that returns the <key,value> pair in a ImmutableMap that has the highest ranked key.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65326 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
07bf7efa0ac1f7ca8ca57a675dd8c6e2c52df73a 21-Feb-2009 Ted Kremenek <kremenek@apple.com> Add version of StringsEqualNoCase that takes two null-terminated C-strings and compares up to 'len' characters. I tend to screw up string comparison functions, so anyone who is interested please review this\!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65236 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
085a9ebbc705c6e7d3fd8c692ef1c46fdfb885ce 20-Feb-2009 Misha Brukman <brukman+llvm@gmail.com> Removed trailing whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65197 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
list.h
a2769a33c94f021a609a462b28ebea069eba6f74 20-Feb-2009 Misha Brukman <brukman+llvm@gmail.com> Fixed lint errors:
* Alphabetized #includes
* Removed trailing whitespace
* Wrapped or shortened lines over 80 chars


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65181 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
epthFirstIterator.h
raphTraits.h
mmutableMap.h
ndexedMap.h
ntrusiveRefCntPtr.h
wningPtr.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etVector.h
mallVector.h
ree.h
rie.h
list.h
38deef9ce58b33dba34515f23fb7dbde02164c77 18-Feb-2009 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64915 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
3c172a29598aabf76ddaf02f4fd7ab85df74ecd0 16-Feb-2009 Ted Kremenek <kremenek@apple.com> Fix bug where APSInt::operator-- incremented instead of decremented.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64687 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
5b22efa61446797039dd19fc1e9be83676463f99 12-Feb-2009 Chris Lattner <sabre@nondot.org> Add operator->, patch by Ben Laurie!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64378 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
da5eb715509685f4a5cfdf6cd781827e72199af6 12-Feb-2009 Ted Kremenek <kremenek@apple.com> Add method 'isSingleton()' to ImmutableSet. This returns true if the set contains exactly one element.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64359 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
8bb332d45dd266b9678446cea5812371d8d3e8af 11-Feb-2009 Ted Kremenek <kremenek@apple.com> Add FoldingSet profile method for bools. Patch by Ben Laurie!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64324 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
af9b6b264f2bf4315c25b286a1c24331038545e0 09-Feb-2009 Bill Wendling <isanbard@gmail.com> These function return 'void'. Don't have 'return' return anything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64136 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
5471a00977ab8ce3c88414dfbad99c0296d58508 07-Feb-2009 Dan Gohman <gohman@apple.com> Change several SmallPtrSetImpl members from public to protected,
to make the encapsulation more clear.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64017 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
f996831427009c5abe37f0af9d9632ef60f181e2 07-Feb-2009 Nick Lewycky <nicholas@mxc.ca> Add an API for strings with possible NULLs in the middle. Refactor the other
two AddString methods to use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64005 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
4715f6395ef152fd92c9b74d5f3e62e2cff29d27 04-Feb-2009 Chris Lattner <sabre@nondot.org> fix a pretty serious bug in StringMap where GetOrCreate(strstart,strend, z)
would not set new values to Z.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63707 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
072e99ef9bd7e731c06716d8a21f630e429ddd82 30-Jan-2009 Chris Lattner <sabre@nondot.org> Fix a bug in getMaxValue/getMinValue to pass the right signedness the
the constructed APSInt, patch suggested by Ben Laurie!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63362 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
8d8a0c36b70dacc73baa47ff6e92e5e774338117 26-Jan-2009 Roman Levenstein <romix.llvm@googlemail.com> Fix a bug in BitVector.h. All assignment operations (except the usual
assignment operator) were returning a copy of the bit vector, instead of a
reference! This old semantics probably did not meet the expectations.
With this patch, chained assignments happen to the right object.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63012 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
d10aacea5e2c8ea62e08956aa0a94fa2da60e148 22-Jan-2009 Bill Wendling <isanbard@gmail.com> Get rid of warning about implicit 64-to-32 bit conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62741 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
2b5326e7240ac524812016bc3700e12045bf0eb1 22-Jan-2009 Steve Naroff <snaroff@apple.com> Add explicit this-> (to make the VS compiler happy).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62731 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
c03c46a6af3d53172d48d9e4d36748a40c878cff 21-Jan-2009 Douglas Gregor <dgregor@apple.com> Fix ilist two-phase name lookup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62724 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
541ed9fd02ea48d2739f4a9dd681ba2d5da26886 21-Jan-2009 Dale Johannesen <dalej@apple.com> Do not use host floating point types when emitting
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts. Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62712 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
ed6af24e146a5d358115123f0d2be694c1fa3a84 21-Jan-2009 Dale Johannesen <dalej@apple.com> Make special cases (0 inf nan) work for frem.
Besides APFloat, this involved removing code
from two places that thought they knew the
result of frem(0., x) but were wrong.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62645 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
24b66a83ca8c80417ad7523c35ece709a7e6599c 20-Jan-2009 Dale Johannesen <dalej@apple.com> Add an IEEE remainder function, which is not
fully implemented yet and not used. This is
mainly to clarify that APFloat::mod implements
C fmod, not remainder.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62593 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
9981b1f15681a2a09c9953cf6773a3b839ead4e7 20-Jan-2009 Chris Lattner <sabre@nondot.org> eliminate use of uint32_t to improve compatibility with cygwin


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62591 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
2f39b29170e0f69491fc5b73952725266ac32fb8 19-Jan-2009 Chris Lattner <sabre@nondot.org> improve compatibility with cygwin, patch by Jay Foad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62535 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
6ea5776f51358da9c3b59c268479344379bb8448 16-Jan-2009 Duncan Sands <baldrick@free.fr> Get this building with gcc-4.4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62322 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
3ff704fa2b67d6c857142218c5aca3058b6239fc 13-Jan-2009 Chris Lattner <sabre@nondot.org> add a new insertAfter method, patch by Tom Jablin!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62158 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
3a54b3dc87a581c203b18050b4f787b4ca28a12c 09-Jan-2009 Misha Brukman <brukman+llvm@gmail.com> Removed trailing whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62000 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
PSInt.h
itVector.h
enseMap.h
enseSet.h
oldingSet.h
raphTraits.h
mmutableList.h
mmutableMap.h
mmutableSet.h
wningPtr.h
ointerIntPair.h
ostOrderIterator.h
riorityQueue.h
TLExtras.h
copedHashTable.h
etVector.h
mallPtrSet.h
mallSet.h
mallString.h
mallVector.h
parseBitVector.h
tatistic.h
tringExtras.h
niqueVector.h
ash_map.h.in
ash_set.h.in
list_node.h
terator.h.in
38593664b02bca98904c4b1883b0a489b5aaacbe 08-Jan-2009 Bill Wendling <isanbard@gmail.com> * Don't explicitly cast "0" to "void*". This doesn't work well with specialized
StringMapEntryInitializer classes. Leave it for the compiler to figure out what
the type is and what "0" should be transformed into.

* Un-disable the unit tests which test the StringMapEntryInitializer class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61922 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
538fbb508663e8c091f7e129ec36a6c7e6a4f1b1 08-Jan-2009 Misha Brukman <brukman+llvm@gmail.com> Remove extra blank line and space.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61916 91177308-0d34-0410-b5e6-96231b3b80d8
tringSet.h
8bb5e9901346f448461289f2d0079ed6d534b571 08-Jan-2009 Misha Brukman <brukman+llvm@gmail.com> * Added unittests for StringMap
* Fixed but in StringMap::clear()
* Removed trailing whitespace

Original patch by Talin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61914 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
e21a6bae806d13e644a92b3df23e4d5b78bdb75c 08-Jan-2009 Misha Brukman <brukman+llvm@gmail.com> * Fixed spelling of "sentinel"
* Removed trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61907 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
d68a07650cdb2e18f18f362ba533459aa10e01b6 05-Jan-2009 Dan Gohman <gohman@apple.com> Tidy up #includes, deleting a bunch of unnecessary #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
TLExtras.h
parseBitVector.h
list.h
2c8a1522dbe6f14b728e83b9c555bef27233cc91 04-Jan-2009 Dan Gohman <gohman@apple.com> Add several more unimplemented operator overloads to ilist_iterator
to help catch errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61622 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
ccc776fd83b4d200f54cd84af71888e9a740f8fd 02-Jan-2009 Nick Lewycky <nicholas@mxc.ca> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61554 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
c1edbfc2bac278ef050615f403c1bc74ef44cf14 13-Dec-2008 Cedric Venet <cedric.venet@laposte.net> Add explicit this-> for some member function in templated base class.
These call are probably dependent but VS with /Za don't seems to think so. We need to help him.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60978 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
list.h
b79a01111d1ed14ec92b969fb995906268733c12 08-Dec-2008 Dan Gohman <gohman@apple.com> Move the conversion to intptr_t to a separate statement. This
avoids GCC's warning even on 64-bit hosts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60706 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
4cd314522350f3e6975d939efa088ed209c8f77c 08-Dec-2008 Ted Kremenek <kremenek@apple.com> Use 'delete []' instead of 'delete' in OwningArray::reset().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60703 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
994fd5354b13c9b934f7ff82ac6e5742f982af33 07-Dec-2008 Dan Gohman <gohman@apple.com> Use intptr_t instead of unsigned here, which is more appropriate
in a really obscure way, but more importantly has the side effect
of avoiding a GCC warning in the case that IntType is bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60677 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
7f50863e527f5464bd6fcbcd7719f8344f54cb7e 05-Dec-2008 Chris Lattner <sabre@nondot.org> add a new pop_back_val method which returns the value popped. This is
heretical from a STL standpoint, but is oh-so-useful for things that
can't throw exceptions when copied, like, well, everything in LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60587 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
1d93b2e1b638cee7f012e8f636eb2cc137d855ff 03-Dec-2008 Chris Lattner <sabre@nondot.org> Fix isIntN to work with APInts > 64 bits. This method is only
used by clang apparently.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60446 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
b6bbe6320b4a60b7399eea08426aec834701d514 02-Dec-2008 Chris Lattner <sabre@nondot.org> add densemap range insertion method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60400 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
c65fc3bd27a84281da9819b5fe89a01535a14ecf 01-Dec-2008 Chris Lattner <sabre@nondot.org> reenable array_pod_sort, this time hopefully happy on 64-bit
and big endian systems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60371 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
7b6113c6e2f23f3bf8b2505bf13bc15b4995c82a 01-Dec-2008 Chris Lattner <sabre@nondot.org> don't #include <algorithm> into the llvm namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60365 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
de5debfb580bb750af8cda1f87cdd4f70fec7a2b 01-Dec-2008 Chris Lattner <sabre@nondot.org> switch to std::sort until I have time to sort this out.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60354 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
545fc87454aabbc8ef8720811ab5dbd5588b537b 01-Dec-2008 Chris Lattner <sabre@nondot.org> define array_pod_sort in terms of operator< instead of my brain
damaged approximation. This should fix it on big endian platforms
and on 64-bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60352 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
4329c428404981fb752b51eaec54b451de83a5b0 01-Dec-2008 Chris Lattner <sabre@nondot.org> don't assume iterators implicitly convert to pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60336 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
99d0015735f8e2aee1a4b99e39ffdaadc8a1dba8 01-Dec-2008 Chris Lattner <sabre@nondot.org> Introduce a new array_pod_sort function and switch LSR to use it
instead of std::sort. This shrinks the release-asserts LSR.o file
by 1100 bytes of code on my system.

We should start using array_pod_sort where possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60335 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
3864cd4cab956526b99b634e15e7fd5d5441e3a7 01-Dec-2008 Eli Friedman <eli.friedman@gmail.com> Fix bogus assertion using getSExtValue for legitimate values, like -1 in
an 128-bit-wide integer. No testcase; the issue I ran into depends on
local changes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60311 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
012618f0fc4df0664e6d7ad6b443173d89820213 30-Nov-2008 Chris Lattner <sabre@nondot.org> add the rest of the comparison routines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60303 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
b9118246201592e7e6c1353a09f69e8a4d469d9d 30-Nov-2008 Chris Lattner <sabre@nondot.org> fix indentation. std::pair is "isPod" if the first/second are both isPod.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60262 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
10ca770020e12cf86d43f7b15cb6959e380e935d 29-Nov-2008 Torok Edwin <edwintorok@gmail.com> protect against negative values that would exceed allowed bit width


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60239 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
b9cf75a15f6738be99a98f15cb6c2669f06d0ddf 29-Nov-2008 Chris Lattner <sabre@nondot.org> apparently GCC doesn't believe that I understand C
precedence rules. Pacify it.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60237 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
3f7dba7b1738bd433a1dea0142e0844a106b782a 29-Nov-2008 Duncan Sands <baldrick@free.fr> Typo fix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60236 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
d63e618212ae716f775c4a03658377d4d8eba5ff 29-Nov-2008 Chris Lattner <sabre@nondot.org> Fix sentinels to use correctly 'aligned' pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60229 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
9ac30537aa3c201b6950bc708e02b1885c288c8d 29-Nov-2008 Chris Lattner <sabre@nondot.org> Fix spello, add DenseMapInfo specialization for PointerIntPair.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60228 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
d55da4de048684e3791dbae8018666e5b7549506 29-Nov-2008 Chris Lattner <sabre@nondot.org> fix comment typo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60227 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
762ac83271ec442d2aea76d1ea9983bfefb22bba 29-Nov-2008 Chris Lattner <sabre@nondot.org> fix a bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60225 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
34b763694e74ee16e68fd85488bfe0443c51170d 29-Nov-2008 Chris Lattner <sabre@nondot.org> add a generic "bitmangled pointer" class, which allows a parameterized
pointer and integer type to be used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60224 91177308-0d34-0410-b5e6-96231b3b80d8
ointerIntPair.h
9f1f00ab1b347953da0efb0e20352be5e0709276 27-Nov-2008 Ted Kremenek <kremenek@apple.com> Add typedef to StringMapEntry.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60134 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
0fbdfc3664830e8387c13bf817c44e8b71085142 20-Nov-2008 Chris Lattner <sabre@nondot.org> add an operator= to assign to smallstring.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59715 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
69e3bd10ecc36f7551b822a09d311fec08254cc0 17-Nov-2008 Zhongxing Xu <xuzhongxing@gmail.com> move partial template specialization to FoldingSet.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59434 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
mmutableList.h
0cf717d6b84a0b5fbc68b5e35cb19aa9300dac34 16-Nov-2008 Zhongxing Xu <xuzhongxing@gmail.com> Fix 80-col violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59394 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
f5b55475b3697f49113c9de331fbf9ad40bda1e6 16-Nov-2008 Zhongxing Xu <xuzhongxing@gmail.com> Add partial specialization of FoldingSetTrait for ImmutableList.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59387 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
2c228834fc226619c25a678394bab73dd1b1f85d 16-Nov-2008 Zhongxing Xu <xuzhongxing@gmail.com> Fix 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59385 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
2ef5d4cd6ab2e8f57bba88cc6ef0e3132e784e63 15-Nov-2008 Zhongxing Xu <xuzhongxing@gmail.com> Add Profile method to ImmutableList.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59362 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
c04b6917c184ca9d6c7bc0c749a734f89cebcd35 10-Nov-2008 Duncan Sands <baldrick@free.fr> Work around PR1000.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58984 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
886645a3c3a5628b2c062cd486e24b86d82d84d9 10-Nov-2008 Chris Lattner <sabre@nondot.org> split out the functionality of utohexstr into a new utohex_buffer
helper. This allows us to convert numbers to hex without necessarily
needing to make a std::string to hold the result.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58961 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
20cd13f54f2b1a6307016c47330045de13b140e2 03-Nov-2008 Dan Gohman <gohman@apple.com> Overload AddInteger on int/long/long long instead of on int/int64_t,
to avoid overload ambiguities. This fixes build errors introduced
by r58623.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58632 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
b90c37f64c5b856a4492f0c1f16c065ae9e31232 03-Nov-2008 Nick Lewycky <nicholas@mxc.ca> Typo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58594 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
9a40d3361ac29fd3c9e0b4a0aa5c7845cc46ec25 27-Oct-2008 Daniel Dunbar <daniel@zuster.org> Return bool (inserted) from StringSet::insert as for StringMap::insert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58268 91177308-0d34-0410-b5e6-96231b3b80d8
tringSet.h
13e781ebe7a39e008dd5e5de78983e095e8a1d02 27-Oct-2008 David Greene <greened@obbligato.org> Add STL-style typedefs and default constructors to make it possible to
use DenseMap in more contexts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58256 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
30f100e14056c2fd88a3448c8bf89b656e7d8584 23-Oct-2008 Ted Kremenek <kremenek@apple.com> Fix incorrect testing for the end of the both strings in CStrInCStrNoCase. This could cause a read-out-of-bounds error if s2 is smaller than s1.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58009 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
e06e91122fefcadd252ddd2f2591e181683fc2f1 21-Oct-2008 Ted Kremenek <kremenek@apple.com> constify some methods and variables in ImmutableList.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57894 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
254a8860570b2624752b079b4a3e37b0942a888a 16-Oct-2008 Dan Gohman <gohman@apple.com> Implement a SmallVector insert method that can insert multiple
copies of a value, and add several additional utilities to make
SmallVector better conform to the Container concept.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57616 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
3d4227bec59358199c7d53fad8f03fd075723fcf 16-Oct-2008 Dan Gohman <gohman@apple.com> Fix several places that called mapped_iterator's constructor without
passing in a function object.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57615 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
c9debfbf06c3fa717b16548a99b9a3f381d4eae7 15-Oct-2008 Daniel Dunbar <daniel@zuster.org> Add llvm::hexdigit to StringExtras (number -> hexadecimal char)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57536 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
75d53d6bd06dbd0add54d5b0185ce6536d23c19f 12-Oct-2008 Chris Lattner <sabre@nondot.org> this was to be removed after 2.4 branched.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57422 91177308-0d34-0410-b5e6-96231b3b80d8
terator
71f95b8531183d4a2f7c84d66d5aec17bc41b316 12-Oct-2008 Chris Lattner <sabre@nondot.org> random cleanup


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57383 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
23a98551ab65eeb8fe5019df8b7db4891582a4bd 10-Oct-2008 Dale Johannesen <dalej@apple.com> Add a "loses information" return value to APFloat::convert
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
7111b02c734c992b8c97d9918118768026dad79e 09-Oct-2008 Dale Johannesen <dalej@apple.com> Rename APFloat::convertToAPInt to bitcastToAPInt to
make it clearer what the function does. No functional
change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57325 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
73c3a94df976593fe6759446a4e30f95b493a76e 22-Sep-2008 Rafael Espindola <rafael.espindola@gmail.com> Add bound checks in SmallVector



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56432 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
3d01fc7de86c75926e4e5ac7cc49f0116018893d 22-Sep-2008 Oscar Fuentes <ofv@wanadoo.es> Initial support for the CMake build system.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.cmake
ash_set.cmake
terator.cmake
ed871805f718f6bd0f9f32888b82c66545fc1157 19-Sep-2008 Ted Kremenek <kremenek@apple.com> Added static methods to APSInt: getMinValue and getMaxValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56355 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
7b75fbf224c0a2d181c35708a27c514ae798c904 29-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add DenseMap::lookup:
/// lookup - Return the entry for the specified key, or a default
/// constructed value if no such entry exists.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55523 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
944fac71e082cc2664cc71b4d3f6c72bab7143fb 24-Aug-2008 Chris Lattner <sabre@nondot.org> Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
535de1a8c14fdfeb3912d3192accb58d9aa1e9e7 23-Aug-2008 Dan Gohman <gohman@apple.com> Add a clear() method to FoldingSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55210 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
55beb6ded8804a82e9e59017e596ae141ba381fe 22-Aug-2008 Dan Gohman <gohman@apple.com> Add an empty() member to FoldingSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55182 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1501cdbf63cff3afd92df6cd249096770334b268 22-Aug-2008 Dan Gohman <gohman@apple.com> Fix SmallVector's size calculation so that a size of 0 is
handled correctly, and change a few SmallVector uses to use
size 0 to more clearly reflect their intent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55181 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
2dba6a1bdb7d78b4d1e5e69b81989816193e6b70 22-Aug-2008 Chris Lattner <sabre@nondot.org> consolidate DenseMapInfo implementations, and add one for std::pair.
Patch contributed by m-s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55167 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
55767f69c5f925373b7901b180202a3d816a0eef 21-Aug-2008 Chris Lattner <sabre@nondot.org> remove redundant include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55116 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
aac0513ed08f7fd5279912b76d5a1e7cd3e96119 21-Aug-2008 Chris Lattner <sabre@nondot.org> Fix the build with gcc 4.3 as the host, patch by Zhongxing Xu!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55115 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
cbd56db62b7fa5a685bdca2eddefe9d04a1295f8 21-Aug-2008 Nick Lewycky <nicholas@mxc.ca> Fix build on GCC 4.3.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55110 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
98f8ccfad06c8928d899f506731987f951b2ebe4 20-Aug-2008 Chris Lattner <sabre@nondot.org> Move the fast-path (<=i64) cases of various APInt methods inline
and the slow-path cases out of line. This speeds up instcombine
a bit in real world cases. Patch contributed by m-s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55063 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
fad86b003a839cef40ec8ce8408322f4913368ca 17-Aug-2008 Chris Lattner <sabre@nondot.org> Rework the routines that convert AP[S]Int into a string. Now, instead of
returning an std::string by value, it fills in a SmallString/SmallVector
passed in. This significantly reduces string thrashing in some cases.

More specifically, this:
- Adds an operator<< and a print method for APInt that allows you to
directly send them to an ostream.
- Reimplements APInt::toString to be much simpler and more efficient
algorithmically in addition to not thrashing strings quite as much.

This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter. This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
9f17eb0b79717d479e462f0284442adbeae903ef 17-Aug-2008 Chris Lattner <sabre@nondot.org> remove a dead APInt ctor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54869 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
0c5a560b034b377e3966833de30167e9030b5cc8 15-Aug-2008 Owen Anderson <resistor@mac.com> Add a value_type typedef to SmallVector, to make it more compatible with STL adapters.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54819 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
183cc32e49aa6641a39347075c8240cea92a6c63 14-Aug-2008 Ted Kremenek <kremenek@apple.com> Removed redundant ctor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54789 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
7fb842420a87d984196454b3e43fc54267f79edc 13-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add default constructor to APSInt
- Creates uninitialized APInt.
- Prevents need for embedding arbitrary constants when used as an out
parameter, for example.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54757 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
eb4ab60bed82d15651bf77ae68ad266ec0eeae9d 01-Aug-2008 Bill Wendling <isanbard@gmail.com> Removed unused parameters.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54262 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
fed90b6d097d50881afb45e4d79f430db66dd741 28-Jul-2008 Dan Gohman <gohman@apple.com> Fold the useful features of alist and alist_node into ilist, and
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.

Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.

Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
list.h
list_node.h
list.h
list_node.h
4aad12c9cdc4ad3183f70797b3dce420e830f901 19-Jul-2008 Anton Korobeynikov <asl@math.spbu.ru> Remove bogus assertion. This unbreaks mingw, where ConstantSDNode
has alignment 8 and LoadSDNode (used as LargestT template) - 4.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53782 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
a0522465900eac1830b7dc3729d66f21ea16cc0c 12-Jul-2008 Ted Kremenek <kremenek@apple.com> Inline typedef for alist_iterator::pointer to work with MSVC++.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53517 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
066075030ad46b3494480a5f79f05443f947aca7 12-Jul-2008 Nick Lewycky <nicholas@mxc.ca> operator[] is not defined for list::iterator. Overload it in ilist::iterator
to prevent silly things from happening accidentally. PR2171


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53507 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
eca64f0980e3f686a36007c53272780119635337 12-Jul-2008 Ted Kremenek <kremenek@apple.com> Minor tweaks to the ImmutableList iterator interface.
Added partial specialization of DenseMapInfo<T> for ImmutableList.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53485 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
0ebf14c4bb96397b7dd9ba61c38371f868e7b264 11-Jul-2008 Ted Kremenek <kremenek@apple.com> Make typedef public to make MSVC++ happy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53433 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
3000357ab58707faaa8ecb885c1ae09eb211e7c1 11-Jul-2008 Ted Kremenek <kremenek@apple.com> Make some typedefs public to make MSVC++ happy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53432 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
ccaa6540fc2866ab36f6ebecf6df101f613f8aa7 11-Jul-2008 Ted Kremenek <kremenek@apple.com> Make typedefs in ilist public (Visual C++ errors out when they are private).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53431 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
98fd7f6b2f109e16abf3e4279c971f8d3703b8a6 11-Jul-2008 Bill Wendling <isanbard@gmail.com> Pull r53428 from Gaz into mainline:

Remove warnings about unused/shadowed variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53430 91177308-0d34-0410-b5e6-96231b3b80d8
list_node.h
07f3cf76c671d0fa2a543f0df34e6be19001fd1d 11-Jul-2008 Ted Kremenek <kremenek@apple.com> Added ImmutableMap constructor that accepts a const TreeTy*.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53429 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
4f4b348437ff607b53c66ec7da8a011b637ebc99 11-Jul-2008 Dan Gohman <gohman@apple.com> Tidy up #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53426 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
list_node.h
df99c29e7b25771d202b969ca5dec359a62897b1 10-Jul-2008 Duncan Sands <baldrick@free.fr> Correct a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53401 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e14d81deeb6bb3404ffee5e59ecb88304f112f4a 08-Jul-2008 Dan Gohman <gohman@apple.com> Add some basic Pool-allocation infrastructure. This adds a Recycler class,
for handling bookkeeping for deleted objects, as well as the alist class
template, for keeping lists of objects allocated from Recyclers, and some
related utilities.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53210 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
list_node.h
list.h
9ff0f0ea39ea71d33887584d10c88dda2038285b 07-Jul-2008 Dan Gohman <gohman@apple.com> Make ilist noncopyable too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53190 91177308-0d34-0410-b5e6-96231b3b80d8
list.h
f1787008295aa274490a5723d5556b3c92045604 07-Jul-2008 Dan Gohman <gohman@apple.com> Don't use std::advance just to increment or decrement by one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53189 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
d24c62c67e674a856af25a93846619b4f0d3e234 07-Jul-2008 Dan Gohman <gohman@apple.com> Remove unnecessary static_casts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53181 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
ccd95b5f9ceb4f022d29cd14173ccdf0333ff77b 07-Jul-2008 Dan Gohman <gohman@apple.com> Remove an unnecessary reinterpret_cast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53180 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1002c0203450620594a85454c6a095ca94b87cb2 07-Jul-2008 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53179 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
6b345ee9b2833cf1b2f79dc16d06d4060bec36ef 07-Jul-2008 Dan Gohman <gohman@apple.com> Make DenseMap's insert return a pair, to more closely resemble std::map.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53177 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
enseSet.h
aa5044d3ce80a2759a6084911db77dec385a47fc 07-Jul-2008 Ted Kremenek <kremenek@apple.com> Removed ImmutableMap::SlimFind and replaced it with ImmutableMap::lookup. The new method does the same thing, except that it returns a pointer to the mapped data type, and not to an internal tree node.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53171 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
08c09496c2fa7c1da027a52d8c410c2ae98481e1 03-Jul-2008 Dan Gohman <gohman@apple.com> Use operator new instead of new char[].


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53067 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
93ee2fd7da6100eafcc510cfdeb71f2bfdd15429 02-Jul-2008 Owen Anderson <resistor@mac.com> Have DenseSet::insert return a bool indicating whether the insertion succeeded or not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53033 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
509e4f30e85355540dc3bf52629d2356cfd4c1bf 02-Jul-2008 Chris Lattner <sabre@nondot.org> optimize StringMap::clear


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53009 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
fce6e546aab64602c41eeb83381b7617f97d0069 02-Jul-2008 Chris Lattner <sabre@nondot.org> Add a new (simple) StringMap::clear method, patch by Pratik
Solanki!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53008 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
445723bfb0d3c4cb7ecebb60710c669cf3dd2c8d 02-Jul-2008 Ted Kremenek <kremenek@apple.com> Implemented operator!= for the ImmutableList iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52998 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
72e61b85017286418ca5266c2ff7b88782e2fe00 02-Jul-2008 Owen Anderson <resistor@mac.com> Add a version of AddString that takes a const char* so we can avoid extraneous
conversions to std::string.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52995 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
e1bf7fdcb4be19c556f4c789dd43864f5d13c5e4 02-Jul-2008 Ted Kremenek <kremenek@apple.com> Added partial specialization of FoldingSetTrait for pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52989 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
ff4d609ec5eca4fc30a931a505d0c18f7569f8c4 01-Jul-2008 Seo Sanghyeon <sanxiyn@gmail.com> Compilation fix

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52950 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
f4d7708972370bdd438830e50594b90a36bb6f76 30-Jun-2008 Dan Gohman <gohman@apple.com> Make SmallVector's grow use memcpy in common cases
instead of std::uninitialized_copy, which uses memmove.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52928 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
7c6618926a9036fccc44fc58e0e0f47042904e7c 30-Jun-2008 Dan Gohman <gohman@apple.com> Use plain operator new instead of new char[].


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52927 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
30389141c9c7270b4733ec0b9bc5ad58541f39da 30-Jun-2008 Ted Kremenek <kremenek@apple.com> Added some comments and some cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52922 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
3771902e922796f506dfda5955d7d80b61104696 30-Jun-2008 Ted Kremenek <kremenek@apple.com> Added ImmutableList, a companion ADT to ImmutableSet and ImmutableMap that is used to represent a purely functional list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52911 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableList.h
f25381ed35c345c252da8b8a8ae9af41eef6b35c 30-Jun-2008 Chris Lattner <sabre@nondot.org> add convenience 'constructors'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52908 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
8032020cf209721bc104648f28b1c4b45fb88691 26-Jun-2008 Bill Wendling <isanbard@gmail.com> Remove warnings about shadowed and unused variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52791 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
2b08676ca8b6a19ba02df7a2237b8d43531a586b 24-Jun-2008 Dan Gohman <gohman@apple.com> Pass std::string by reference. Thanks Chris!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52678 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
caf746aa5a836bc3401049235c6d7d41c5921502 24-Jun-2008 Dan Gohman <gohman@apple.com> Add a clear() method to PriorityQueue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52656 91177308-0d34-0410-b5e6-96231b3b80d8
riorityQueue.h
2904538fc30fbdc2788802ca7389482d5e20a717 23-Jun-2008 Dan Gohman <gohman@apple.com> Simplify erase_one slightly. It's not necessary to preserve
the value of the element to be erased while the heap is
being updated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52646 91177308-0d34-0410-b5e6-96231b3b80d8
riorityQueue.h
84701836bfb1889e2e26e361ebd5d29d972ab396 23-Jun-2008 Dan Gohman <gohman@apple.com> Add methods to StringMap to erase entries by key.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52640 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
300c6c5167d2869d1568d783d0e3e48bf4b03a6c 23-Jun-2008 Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> First step to fix PR2088. Implement routine to compute the
multiplicative inverse of a given number. Modify udivrem to allow input and
output pairs of arguments to overlap. Patch is based on the work by Chandler
Carruth.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52638 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
3627e34486db088661bc7fb6c0dde6a18a543217 21-Jun-2008 Dan Gohman <gohman@apple.com> Add a priority queue class, which is a wrapper around std::priority_queue
and provides fairly efficient removal of arbitrary elements. Switch
ScheduleDAGRRList from std::set to this new priority queue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52582 91177308-0d34-0410-b5e6-96231b3b80d8
riorityQueue.h
2b7470eb54880ce7f74469d6e09eaf7f0864f8ab 17-Jun-2008 Owen Anderson <resistor@mac.com> Fix use of placement new to actually use an address.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52423 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
8eab8a2798fe74c98703bdeac64661beea0b4dbc 09-Jun-2008 Duncan Sands <baldrick@free.fr> Remove some DAG combiner assumptions about sizes
of integer types. Fix the isMask APInt method to
actually work (hopefully) rather than crashing
because it adds apints of different bitwidths.
It looks like isShiftedMask is also broken, but
I'm leaving that one to the APInt people (it is
not used anywhere).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52142 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
d10e467ad961f7c3b548ee2f2de8a576a245e25a 09-Jun-2008 Chris Lattner <sabre@nondot.org> Add a simple, but efficient, generic scoped hash table


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52112 91177308-0d34-0410-b5e6-96231b3b80d8
copedHashTable.h
b8d0b807fc85e5ea5fb3a156fea5f8c2214e1f31 01-Jun-2008 Chris Lattner <sabre@nondot.org> add a predicate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51842 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
11bf2ace556da018c65163557fb97704b1cf88e4 31-May-2008 Dan Gohman <gohman@apple.com> Add an operator< for SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51791 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
cdff51cabcebcd0eeb227ecf92eabbf8b1aeb77c 30-May-2008 Dan Gohman <gohman@apple.com> Fix an error in the comment for APInt::getMinSignedBits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51720 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
81fb27cc3a2b0c8f30fd9f47180ba8476ad6dae5 29-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Remove guard, so *each* inclusion will result in a warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51708 91177308-0d34-0410-b5e6-96231b3b80d8
terator
1baa88e3de8947b02d9ef4caa73e5860f048ec6e 29-May-2008 Dan Gohman <gohman@apple.com> Prune and tidy #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51697 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
b372d59a113c2dae24483c03884e4e8705028021 29-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Add file with warning for backward comptibility. Should be removed after 2.4


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51693 91177308-0d34-0410-b5e6-96231b3b80d8
terator
1ff4ed726bb8526d1e49030245365f8c86a8bb49 29-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Update guards


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51692 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.h.in
ash_set.h.in
list.h
terator.h.in
43d1fd449f1a0ac9d9dafa0b9569bb6b2e976198 29-May-2008 Anton Korobeynikov <asl@math.spbu.ru> For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51687 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
quivalenceClasses.h
ashExtras.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
mallVector.h
parseBitVector.h
ash_map.h.in
ash_map.in
ash_set.h.in
ash_set.in
list
list.h
terator.h.in
terator.in
8e1cddc11dd8be5855a43e31d8db20b00c54ee03 27-May-2008 Matthijs Kooijman <matthijs@stdin.nl> Use an explicit llvm:: prefix in the STATISTIC macro, so STATISTIC can still be
used when "using namespace llvm" is not in effect.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51592 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
13d57320bd212483463d4f8992d5787b29eda5df 19-May-2008 Bill Wendling <isanbard@gmail.com> Remove warnings about unused parameters and shadowed variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51266 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
e269f434b1f4e81974b2c68abf84d4b64419edd4 13-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Add thin layer over StringMap to form StringSet. By Mikhail Glushenkov.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51048 91177308-0d34-0410-b5e6-96231b3b80d8
tringSet.h
1fd2e6d84e271c17d7ae8778058c13de517dbc17 07-May-2008 Ted Kremenek <kremenek@apple.com> Make the interface of CStrInCStrNoCase be the same as strcasestr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50828 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
fdedd5397dcbec32a4591feca9a3f6a0eba60492 07-May-2008 Ted Kremenek <kremenek@apple.com> Fix some serious logical errors in CStrInCStrNoCase pointed out by Bill.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50826 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
fbd15899b3bcc459bea20f5bb2866244eea56d6a 07-May-2008 Ted Kremenek <kremenek@apple.com> Guard for empty strings in CStrInCStrNoCase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50823 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
6925f5074f6c456dc37f052b67229d07f667b2e5 07-May-2008 Ted Kremenek <kremenek@apple.com> Added CStrInCStrNoCase, a portable implementation of strcasestr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50821 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
094aa6ce47f0f0604469e0a24bde131ce6326938 07-May-2008 Nick Lewycky <nicholas@mxc.ca> Typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50805 91177308-0d34-0410-b5e6-96231b3b80d8
list
34cd4a484e532cc463fd5a4bf59b88d13c5467c1 05-May-2008 Evan Cheng <evan.cheng@apple.com> Fix more -Wshorten-64-to-32 warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
mallPtrSet.h
mallVector.h
tringExtras.h
tringMap.h
niqueVector.h
7a07428ad1015306d7235cabebd5f4f78e62d33c 03-May-2008 Ted Kremenek <kremenek@apple.com> Implement operator-> for ImmutableMap iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50603 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
48e8c80e1791adb7a07b8fd6e27edcdfbb756950 02-May-2008 Evan Cheng <evan.cheng@apple.com> Suppress -Wshorten-64-to-32 warnings for 64-bit hosts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50590 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
b606dba13ba84721cc297174c2eb1275bc642604 28-Apr-2008 Chris Lattner <sabre@nondot.org> Remove the SmallVector ctor that converts from a SmallVectorImpl. This
conversion open the door for many nasty implicit conversion issues, and
can be easily solved by initializing with (V.begin(), V.end()) when
needed.

This patch includes many small cleanups for sdisel also.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50340 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
e49e52d85601e8f732da16ca21e3de6cefd20158 28-Apr-2008 Chris Lattner <sabre@nondot.org> restore the copy ctor in SmallVector. This fixes serious
errors I introduced in my last patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50338 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
5da0b73aa11eca430ed9e03e157f8432870fa50b 28-Apr-2008 Chris Lattner <sabre@nondot.org> generalize SmallVector copy ctor, there is no requirement for
the initialization vector to have the same fixed size, just the
same element type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50334 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
13f7a405082ad154394b2f85e297668cf4ec8292 25-Apr-2008 Ted Kremenek <kremenek@apple.com> Implement != for DenseSet iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50236 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
ea33c8fed681d103f159e7e80591437c726576ec 25-Apr-2008 Ted Kremenek <kremenek@apple.com> Added iterator support for DenseSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50235 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
0861d1fa5c1c8ca2adb8af1df0b3fce8f6d3ba5b 17-Apr-2008 Argyrios Kyrtzidis <akyrtzi@gmail.com> Bring in uint32_t, uint64_t, and int64_t types for MSVC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49854 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
036a94ed61da276c23b59362fc586248d1d4289d 16-Apr-2008 Chris Lattner <sabre@nondot.org> fix off by one error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49766 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
c0814dc606c8397207534bcd4adbc5525a01e83a 16-Apr-2008 Chris Lattner <sabre@nondot.org> give smallstring some methods to do 'itoa'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49765 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
30ac7df857cf2144dadde270075fefa7293365ee 11-Apr-2008 Chris Lattner <sabre@nondot.org> improvements for IntrusiveRefCntPtr, patch by Mikhail Glushenkov


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49538 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
412821284f16a683e9b734baf2b6c9b4635857f2 07-Apr-2008 Owen Anderson <resistor@mac.com> Add operator= implementations to SparseBitVector, allowing it to be used in GVN. This results
in both time and memory savings for GVN. For example, one testcase went from 10.5s to 6s with
this patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49345 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
a022e3fc2f2faec2982ac184c98fee28d85a448a 02-Apr-2008 David Greene <greened@obbligato.org> Iterators folloring a SmallVector erased element are invalidated so
don't access cached iterators from after the erased element.

Re-apply 49056 with SmallVector support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49106 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
d27c991cebe48fdf82b5d9eec6c2a1a244f82622 30-Mar-2008 Chris Lattner <sabre@nondot.org> Fix "Control reaches the end of non-void function" warnings,
patch by David Chisnall.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48963 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
2896652be29de97a6e08b5cccc015096f4ed17b5 27-Mar-2008 Chris Lattner <sabre@nondot.org> when a node is removed from an ilist, set its next/prev pointers to
null. This means that uses of invalidated iterators will explode violently
with:
ilist:143: failed assertion `NodePtr && "++'d off the end of an ilist!"'

instead of happening to work "most of the time".



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48859 91177308-0d34-0410-b5e6-96231b3b80d8
list
950a4c40b823cd4f09dc71be635229246dfd6cac 25-Mar-2008 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48801 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
ac67b7ea8fcd530995d7aefd2ad0f04543789855 23-Mar-2008 Anton Korobeynikov <asl@math.spbu.ru> Add first proof-of-concept universal compiler driver framework based
on ideas mentioned in PR686.
Written by Mikhail Glushenkov and contributed by Codedgers, Inc.

Old llvmc will be removed soon after new one will have all its properties.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48699 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
c35595fd2ac733ff0c35a1e43992f59f35816411 19-Mar-2008 Duncan Sands <baldrick@free.fr> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48543 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
acddf9d019316ac1735667dc92d96092e9f5bf2e 18-Mar-2008 Scott Michel <scottm@aero.org> Dial down gcc's warnings: don't use 0UL when 0U suffices (and when the
variables and methods themselves only use unsigned.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48492 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
59746c251654bd3f500ba329fa7fa9425e03ddee 13-Mar-2008 Dan Gohman <gohman@apple.com> No need for typedefs with enums in C++.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48312 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
cf609575ef6e47cd5ce775af175c67a3b621120e 29-Feb-2008 Dan Gohman <gohman@apple.com> Add support to APInt for shift and rotate operations with APInt
instead of uint32_t for the shift/rotate count operand type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47741 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
93c276e1c92da03ce9805fd3f3814b5e9b8cd57c 29-Feb-2008 Dan Gohman <gohman@apple.com> Add a method to APFloat to convert directly from APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47738 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
95e78348f08fab152b2b03c516cc9f22ed60b8de 26-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Update per review. Patch by Mikhail Glushenkov!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47628 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
e85fe660e4e99d30ca9292b706b8ffe6d0367dca 26-Feb-2008 Bill Wendling <isanbard@gmail.com> Detabify


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47597 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
faa999565f15e70630c09bd75002408d3cc7ff66 26-Feb-2008 Eli Friedman <eli.friedman@gmail.com> Add missing include (for ptrdiff_t).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47576 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
567a273370fd7f1f1e8dd4a372d7b81f26df7a47 22-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Add smart refcounting pointer class to ADT back (known before as IntrusiveSPtr.h).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47482 91177308-0d34-0410-b5e6-96231b3b80d8
ntrusiveRefCntPtr.h
602d1c51e055efd56b284a2ba41083ff38c337bc 22-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Unbreak build for VC2008. Patch by Argiris Kirtzidis!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47480 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
c9525263f6c519d987209eb39e33a73165c526d6 20-Feb-2008 Dan Gohman <gohman@apple.com> Remove inline keywords from in-class function definitions, for
consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47393 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
bd999178929c10bdeb0a2577fa02981778edaee7 20-Feb-2008 Dan Gohman <gohman@apple.com> Add an intersects method to APInt, to capture a common idiom.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47379 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ae9f3a3b7c915f725aef5a7250e88eaeddda03c6 20-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
enseMap.h
list
0123b7dcfa9be97588926407163deb8d603487ce 16-Feb-2008 Scott Michel <scottm@aero.org> Make tblgen a little smarter about constants smaller than i32. Currently,
tblgen will complain if a sign-extended constant does not fit into a
data type smaller than i32, e.g., i16. This causes a problem when certain
hex constants are used, such as 0xff for byte masks or immediate xor
values.

tblgen will try the sign-extended value first and, if the sign extended
value would overflow, it tries to see if the unsigned value will fit.
Consequently, a software developer can now safely incant:

(XORHIr16 R16C:$rA, 0xffff)

which is somewhat clearer and more informative than incanting:

(XORHIr16 R16C:$rA, (i16 -1))

even if the two are bitwise equivalent.

Tblgen also outputs the 64-bit unsigned constant in the generated ISel code
when getTargetConstant() is invoked.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47188 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
cd2ad1df5d2e0600200c81bc214e0b65ff699c5f 13-Feb-2008 Dan Gohman <gohman@apple.com> Fix a typo in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47097 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
7649127ec152e226d761845983ba91e69712d7da 13-Feb-2008 Dan Gohman <gohman@apple.com> Rename APInt's isPositive to isNonNegative, to reflect what it
actually does.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47090 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
42dd77f20702d5ca1e0f3882ad74e7a02fc9589c 13-Feb-2008 Dan Gohman <gohman@apple.com> Add countTrailingOnes member functions to APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47086 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
b5cfaaedbea10d8fcf5ca23be7955ca0f4fd5c9c 13-Feb-2008 Dan Gohman <gohman@apple.com> Fix a typo in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47085 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ffe3e2514a2550152267072ed7afeebb3dd3016c 12-Feb-2008 Dan Gohman <gohman@apple.com> Change APInt::getBitsSet to accept a "half-open" range, where the
hiBit parameter marks the index one past the last desired set bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47032 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
d3993d13be7b34fe8753eab9eb3d6499b7c4cd9f 12-Feb-2008 Dan Gohman <gohman@apple.com> Correct the order of the arguments in the examples in the comments
for APInt::getBitsSet. And fix an off-by-one bug in "wrapping" mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46978 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
a618f82c9fdbe869b41581f00ae357e1b22302d1 12-Feb-2008 Ted Kremenek <kremenek@apple.com> The factories for ImutAVLTree/ImmutableSet/ImmutableMap now take an (optional)
BumpPtrAllocator argument to their constructors. This BumpPtrAllocator
will be used to allocate trees. If no BumpPtrAllocator is provided, one
is created (as before).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46975 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
1f801fa5ada9cb40fb97ae755c282e91af54a1bc 11-Feb-2008 Ted Kremenek <kremenek@apple.com> Added "Profile" method to APFloat for use with FoldingSet.

Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary
objects to a profile via dispatch to FoldingSetTrait<T>::Profile().

Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their
functionality is now replaced using the above mentioned member template.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
oldingSet.h
ec646cfd07f1354364e0899561aabffef5b702fd 08-Feb-2008 Dan Gohman <gohman@apple.com> Add an isSignedIntN, like isIntN but for signed integer values instead of
unsigned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46894 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
86383e1f7cc8c31eafc6e3d8a67ce6f23d1bce63 08-Feb-2008 Ted Kremenek <kremenek@apple.com> Constified operator<< in APSInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46882 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
167b8bc24d4cc2789c682962b123877a73ad0568 07-Feb-2008 Dan Gohman <gohman@apple.com> Add support to FoldingSet for hashing APInt objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46833 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
5c4fb22809f2da261e3957dc7fc42e19193f70b7 06-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Don't dereference an invalid pointer if string is empty.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46781 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
9dc7ab538ee845e2477519c740a2c736a19bc30d 05-Feb-2008 Ted Kremenek <kremenek@apple.com> Added FoldingSet profiling support to ImmutableSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46757 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
95da16e2881a662401220cd52a4267b7cd7f5860 05-Feb-2008 Ted Kremenek <kremenek@apple.com> Changed profiling method for ImmutableMap to once again just use its
unique ImutAVLTree* for profiling.

Modified ImutAVLTree:
(1) changed ComputeHash() to ComputeDigest() and
(2) changed Profile() to use the computed digest and
(3) modified insertion of IMutAVLTree into the FoldingSet owned by
the ImutAVLTreeFactory object to use profiling instead of computing
a direct hash. This fixes a bug where our abuse of the FoldingSet would
not work when the FoldingSet was resized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46753 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
c695ea9e8dca7a4f955b6bc17da49be5553c9f37 04-Feb-2008 Ted Kremenek <kremenek@apple.com> Modified 'Profile' method of ImmutableMap to use the 'Profile' method
of the contained ImutAVLTree root.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46719 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
f357afb4045307a24c52606e267385148367a7a3 04-Feb-2008 Ted Kremenek <kremenek@apple.com> Modified node creation of ImutAVLTree to do a hash lookup for an existing
node in the FoldingSet of nodes held by the Factory object. If we
we find a node with a matching hash, we do a full structural comparison.
Nodes are also now inserted into the FoldingSet only when we mark them
Immutable, as their children can change during intermediate-rebalancing.

The 'Profile' method for ImutAVLTree is no longer used when looking up
existing ImutAVLTrees with a given set of contents; instead the Profile method
is used by other clients that wish to insert such a tree into a folding set.
This means that we are not using FoldingSet in ImutAVLTreeFactory in the way
it was intended, but instead are using it as an opaque hashtable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46717 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
26e3c445fc844b2f241dfdde9ce7e0602ba13cc4 04-Feb-2008 Ted Kremenek <kremenek@apple.com> Added "bucket_iterators" to FoldingSet. Bucket iterators allow iteration
over all the nodes in a particular bucket.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46716 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
d9719495c376873abddbe13a9675bb3e7103dba7 04-Feb-2008 Ted Kremenek <kremenek@apple.com> constified operator~().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46707 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
ec3e5c8a39c3dae7457d0eb18f98685decb23fcd 01-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Add convenient std::string helpers to StringMap. Patch by Mikhail Glushenkov!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46625 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
713a13906aedef33669f5bc961140bd41e6241d2 31-Jan-2008 Anton Korobeynikov <asl@math.spbu.ru> Reapply the patch with fix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46615 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
a91cfa9cd09635a6d046e144d07e68d924ac0fbb 31-Jan-2008 Chris Lattner <sabre@nondot.org> revert anton's recent stringmap patch, which breaks clang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46614 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
f429a519c82af1e70c7b9990e8b2049eb75e63ac 31-Jan-2008 Anton Korobeynikov <asl@math.spbu.ru> Make StringMap to be more STL'ish. Patch by Mikhail Glushenkov!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46612 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
75fb496fc6b1ef5301d7262f40a842a2385f3930 31-Jan-2008 Anton Korobeynikov <asl@math.spbu.ru> Whitespace cleanup


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46611 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
d25c9cd3ff5786655201c550ae76f1b89815e1c7 29-Jan-2008 Ted Kremenek <kremenek@apple.com> Altered ctor for APSInt to accept an optional "isUnsigned" flag. Default
behavior is unchanged.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46521 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
7afe973add96f7b189b018239b5b9e43fe4a8dcf 28-Jan-2008 Ted Kremenek <kremenek@apple.com> Added destructor for template class FoldingSetNodeWrapper.
Added getValue() to FoldingSetNodeWrapper.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46465 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
cadf873c83ad7ea7c638e6d98fc5f20752702b03 24-Jan-2008 Ted Kremenek <kremenek@apple.com> Added additional overloaded operators for APSInt to match the operators of
APInt.

While some operators were already specifically overloaded for APSInt, others
resulted in using the overloaded operator methods in APInt, which would result
in the signedness bit being lost.

Modified the APSInt(APInt&) constructor to be "explicit" and to take an
extra (optional) flag to indicate the signedness. Making the ctor explicit
will catch any implicit conversations between APSInt -> APInt -> APSInt that
results in the signedness flag being lost.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46316 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
1eed950d7cb69906264cfb49895165e3b51524be 23-Jan-2008 Ted Kremenek <kremenek@apple.com> Added "getRoot()" to ImmutableSet.

Made ImmutableSet::ImmutableSet(ImutAVLTree* Root) public. (this allows handy
casting between trees and sets).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46277 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
3387060470e25e6917adcdde3baa41e959172e90 21-Jan-2008 Ted Kremenek <kremenek@apple.com> Fixed buggy caching of the hash value of an ImutAVLTree node.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46229 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
8893b0d3ac7b6eb6957e645c59f63651891cef97 21-Jan-2008 Ted Kremenek <kremenek@apple.com> Moved method call within a conditional branch because its effects will
be ignored on the false branch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46228 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
c4125a3c44171f90639621c3c93182a7fe45b24e 21-Jan-2008 Ted Kremenek <kremenek@apple.com> Adjusted ImutAVLTree::ComputeHash to compute a hash value that is based on a
clearer sequence of hashing compositions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46227 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
c899b33b830c360e53eb35440a1371542925414f 21-Jan-2008 Ted Kremenek <kremenek@apple.com> Added "clear" method to FoldingSetNodeID to allow a FoldingSetNodeID object
to be reused to compute multiple object profiles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46226 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
6518f5fcbfc24e53ae453da0b080adf5448327be 21-Jan-2008 Ted Kremenek <kremenek@apple.com> Replaced (FoldingSet) profiling of ImutAVLTree with a hashing based scheme. The
problem was that we previously hashed based on the pointers of the left and
right children, but this is bogus: we can easily have different trees that
represent the same set. Now we use a hashing based scheme that compares the
*contents* of the trees, but not without having to do a full scan of a tree. The
only caveat is that with hashing is that we may have collisions, which result in
two different trees being falsely labeled as equivalent. If this becomes a
problem, we can add extra data to the profile to hopefully resolve most
collisions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46224 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
187784996c1bdf8aafb5f8719bcbde9260465865 19-Jan-2008 Ted Kremenek <kremenek@apple.com> Changed argument name for 'Profile' method to potentially fix a name conflict
reported in pr1929 (http://llvm.org/PR1929).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46193 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
3cf8bec783809269a5dbb81d6d1693ee18fcb37c 19-Jan-2008 Ted Kremenek <kremenek@apple.com> Modified ImmutableSet/ImmutableMap to use FoldingSet profiling using
FoldingSetTrait instead of directly calling a 'Profile' method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46190 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
4048a082847cea72431aa8235f54941ed064913b 19-Jan-2008 Ted Kremenek <kremenek@apple.com> Added FoldingSet style 'profiling' support for APSInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46189 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
e420debd26300cbeb6af2722e3342132b2be1b3c 19-Jan-2008 Ted Kremenek <kremenek@apple.com> Added FoldingSet style 'profiling' support for APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46188 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
0a3fecad0a4bf48a83eb7370a4d46880efdc6971 19-Jan-2008 Ted Kremenek <kremenek@apple.com> Made 'FoldingSetNodeID' a proper class instead of a nested class in
'FoldingSetNodeImpl' (previously 'FoldingSetNodeID' was a typedef of
'FoldingSetNodeImpl::NodeID').

Why? Clients can now easily forward declare 'FoldingSetNodeID' without having
to include FoldingSet.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46187 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
a753f703d1e532dbec5f89c6af834ccd72581ca9 19-Jan-2008 Ted Kremenek <kremenek@apple.com> Made 'profiling' of objects in a FoldingSet trait-based using FoldingSetTrait
instead of always assuming that the stored objects had a method called
'Profile'. The default behavior is to dispatch to a 'Profile' method (as
before), but via template specialization this behavior can now be overridden by
clients.

Added templated class 'FoldingSetNodeWrapper', a generic wrapper class that
allows one to insert objects into a FoldingSet that do not directly inherit from
FoldingSetNode. This is useful for inserting objects that do not always need to
pay the overhead of inheriting from FoldingSetNode, or were designed with that
behavior in mind.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46186 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
45695534323a1e79a49eca5f8cc7423ec798244b 18-Jan-2008 Chris Lattner <sabre@nondot.org> don't form an std::string with a null pointer, it aborts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46166 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
e8277538e74bb70bcf8367267b527e8501eb1238 18-Jan-2008 Ted Kremenek <kremenek@apple.com> Reverted implementation of ImmutableMap::find() to return a TreeTy* instead of
an iterator, since the implementation returned an iterator that pointed to a
different node! Renamed this implementation to SlimFind() so that users do not
expect it to return an iterator (it is a more efficient implementation than
returning an iterator if the user just wants to find the value of a key).

Added a FIXME to implement ImmutableMap::find() that returns an iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46150 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
e509e7a17819f808dabb815474eb8c04540de7b3 17-Jan-2008 Ted Kremenek <kremenek@apple.com> Implemented "FIXME" in ImutAVLTree: isEqual() now also compares the *data* value
and not just the key value when comparing trees. To do this we added data_type
and data_type_ref to the ImutContainerInfo trait classes. For values stored in
the tree that do not have separate key and data components, data_type is simply
a typedef of bool, and isDataEqual() always evaluates to true. This allows us to
support both ImmutableSet and ImmutableMap using the same underlying logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46130 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
316e98447122fc3f1e99930583a305ba481e848c 16-Jan-2008 Ted Kremenek <kremenek@apple.com> Changed ImmutableMap::find to return an iterator instead of a pointer
to the tree node.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46034 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
8874628e30a327afe91648c84bfa1e2dd13f0dba 11-Jan-2008 Chris Lattner <sabre@nondot.org> add operator==/!= to smallvector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45872 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
6632f952393834fde26d53ea724ce2a53781d210 08-Jan-2008 Ted Kremenek <kremenek@apple.com> Added "getRoot()" to ImmutableMap.
Made the ctor for ImmutableMap to construct a map from an AVL tree public.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45756 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
0a8cabb17892746ba71a94f494a5d293a716edfd 08-Jan-2008 Ted Kremenek <kremenek@apple.com> Fixed 80 col. violation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45752 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
6f2197699a53c5711ab7b0f8cc1b57f5e449e40a 02-Jan-2008 Ted Kremenek <kremenek@apple.com> Inverted argument order for ImmutableMap::Profile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45507 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
3c6255c376127f9e79b8bab47a2fd585131e8fcd 02-Jan-2008 Ted Kremenek <kremenek@apple.com> Added iterator and profiling (i.e. FoldingSetNodeID) support to ImmutableMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45503 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
234d529e582963ad4b5d83b911cd057fe99d1435 29-Dec-2007 Chris Lattner <sabre@nondot.org> remove attribution from a variety of miscellaneous files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45425 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
ash_set.in
list
terator.in
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
PSInt.h
itVector.h
enseMap.h
enseSet.h
epthFirstIterator.h
quivalenceClasses.h
oldingSet.h
raphTraits.h
ashExtras.h
mmutableMap.h
mmutableSet.h
ndexedMap.h
wningPtr.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etOperations.h
etVector.h
mallPtrSet.h
mallSet.h
mallString.h
mallVector.h
parseBitVector.h
tatistic.h
tringExtras.h
tringMap.h
ree.h
rie.h
niqueVector.h
ectorExtras.h
48da1edde037ae5e78b2059c4f28f93196ea1cec 21-Dec-2007 Ted Kremenek <kremenek@apple.com> Removed scoped_ptr, as its functionality is subsumed by OwningPtr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45274 91177308-0d34-0410-b5e6-96231b3b80d8
coped_ptr.h
3a818a39530ee5d59aac5dc4000e3bbac2e9400f 20-Dec-2007 Ted Kremenek <kremenek@apple.com> Added OwningArrayPtr smart pointer class to provide an analogous class to
OwningPtr except that it works for pointers to arrays.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45266 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
714307207ffb8b435e090e94d0efa4c0e991df36 20-Dec-2007 Chris Lattner <sabre@nondot.org> add new smart pointer for clang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45261 91177308-0d34-0410-b5e6-96231b3b80d8
wningPtr.h
54c005f465105459d60aafe04d0335d1a9d38ef6 20-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> More eye-candy stuff :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45247 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
08b934edc6b07e8947349b995fe298b664c812ef 20-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Add iterators for child traversal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45246 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
d2128a7ca5544b95e5406a5fe8960217bcd4932f 17-Dec-2007 Chris Lattner <sabre@nondot.org> cleanup this code, making it more "llvm-like".
Add comments to reset indicating that it deletes its pointer.
Add a new take() method, which can be used to get the pointer
without it being deleted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45112 91177308-0d34-0410-b5e6-96231b3b80d8
coped_ptr.h
cdd0417ba3ec6c4138e87b2d5472f951bb7902c8 16-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Define addString() and lookup() out-of-line to dissuade the C++ compiler from inlining it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45068 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
11ffccf2a5aa5fb652945ffc8dda9b8dfdf58ae8 16-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Provide GraphTraits and DOTGraphTraits interface for Trie.
Retoss private/public stuff.
Make copy ctor and operator= private.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45067 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
ffe9e63c4a11352fd6437588fad516efdb46aa40 15-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Use references in DF iterators. This eliminates copy-ctor calls on huge objects (graphs)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45063 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
raphTraits.h
ded2b0d0fb0d4fa09198e3d05da529d2c97214c3 14-Dec-2007 Dan Gohman <gohman@apple.com> Add explicit keywords, and fix a minor typo that they uncovered.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45034 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
41ff20bff472c942d07cf5d85b3d7cd41a140a67 12-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Use vector for child storage instead of map. This will also make
our life during future GraphTraits'ing slightly easier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44952 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
765d8e5cbde3def7732a8c9610d1ab3828453c0c 11-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Remove Trie::Edge class. Now edge labels are stored into nodes itself.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44880 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
ac9d6cc3a19a40fdca90b6fbae5d7c2b0bae55ed 11-Dec-2007 Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> Use correct member access operator.
(my test commit as well)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44868 91177308-0d34-0410-b5e6-96231b3b80d8
raphTraits.h
64735ccb2b8dd773c1311725cb39951d6088c165 11-Dec-2007 Anton Korobeynikov <asl@math.spbu.ru> Add first and really dirty version of generic Trie structure


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44851 91177308-0d34-0410-b5e6-96231b3b80d8
rie.h
9324665a7845d6ffd23e3bd53443d28cbf2e75fa 10-Dec-2007 Ted Kremenek <kremenek@apple.com> Added two bounds checks to the BitVector class to detect
out-of-bounds bit accesses. The checks are only performed
in a Debug build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44815 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
921f0d40ececc91649bff9feeef37a3c89250608 08-Dec-2007 Chris Lattner <sabre@nondot.org> remove dead #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44711 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
73481e04da1573d10c72982cfba0716c39902502 08-Dec-2007 Chris Lattner <sabre@nondot.org> eliminate dependency on Bitcode headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44709 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
065d97e7fc0b39264586e4f812955078194c595a 08-Dec-2007 Chris Lattner <sabre@nondot.org> remove dead #include, APInt.h already has the needed forward decls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44708 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
d7205e6ba16480ef0a7ee2b6097d0a13097e8a0f 29-Nov-2007 Chris Lattner <sabre@nondot.org> Pass the whole StringMapEntry into StringMapEntryInitializer::Initialize.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44432 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
aec78708c24a85a99b757ada086e5c05a4c123ed 29-Nov-2007 Chris Lattner <sabre@nondot.org> provide an optional API to allow datatypes in a stringmap to be *gasp*
initialized with a value if they want, by specializing the
StringMapEntryInitializer class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44430 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
9e513acd3145036bd06b5e0f5bcc83a3e5c08854 23-Nov-2007 Chris Lattner <sabre@nondot.org> Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44296 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
adf3eab7735741926c67e6fc12b952500c45a9ba 19-Nov-2007 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44234 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
07268172ff6ef736cccb1b6c92cc9825f9f8cae4 15-Nov-2007 Daniel Berlin <dberlin@dberlin.org> Fix bugs in iterator invalidation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44174 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
ab64806af2a10657dd15a5e8670ba6e900a3c29d 15-Nov-2007 Chris Lattner <sabre@nondot.org> Import the boost scoped_ptr class to LLVM. This patch was prepared by
Cédric Venet.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44161 91177308-0d34-0410-b5e6-96231b3b80d8
coped_ptr.h
729bd28f62d83c9681702264a79c4ab03c7c11ec 14-Nov-2007 Hartmut Kaiser <hartmut.kaiser@gmail.com> Fixed a strange construct. Please review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44082 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
c47dfdde2458f97d2ef8342b73b526579424c381 07-Nov-2007 Ted Kremenek <kremenek@apple.com> Implemented generic serialization of APFloat.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43829 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
586504d5ed35d5765652370c4b4e68eb21b2b34a 07-Nov-2007 Ted Kremenek <kremenek@apple.com> Fixed default ctor for APInt to properly initialize BitWidth to a
non-random value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43795 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
373a733be031f52cebbbcdb15ab5997d9b5f9f17 06-Nov-2007 Chris Lattner <sabre@nondot.org> make smallptrset more const and type correct, which caught a few
minor bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43782 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
ee7ae384f5d6067f1ca6d475b8630fe91ff2f6b6 01-Nov-2007 Neil Booth <neil@daikokuya.co.uk> When converting to integer, do bit manipulations in the destination
memory rather than in a copy of the APFloat. This avoids problems
when the destination is wider than our significand and is cleaner.

Also provide deterministic values in all cases where conversion
fails, namely zero for NaNs and the minimal or maximal value
respectively for underflow or overflow.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43626 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
aef806e9cb021919be8f3a988af0478f3da75758 01-Nov-2007 Ted Kremenek <kremenek@apple.com> Added typedef "value_type" to DenseMap (similar typedef appears in std::map).

Added method FindAndConstruct() to DenseMap, which does the same thing as
operator[], except that it refers value_type& (a reference to both the
key and mapped data pair). This method is useful for clients that wish
to access the stored key value, as opposed to the key used to do the
actual lookup (these need not always be the same).

Redefined operator[] to use FindAndConstruct() (same logic).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43594 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
8092406e59e44633e45c3ec71a1a1d12ef0b926b 31-Oct-2007 Ted Kremenek <kremenek@apple.com> Changed access control within FoldingSet for some ivars from "private"
to "protected". This allows iterators to work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43559 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
20b7907c1cb7074a2e6be5f534bb742752dd25d4 31-Oct-2007 Ted Kremenek <kremenek@apple.com> Added member function "size()" to FoldingSet to return the number of
nodes in the FoldingSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43531 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1a43e5ffe1ba9bfcb531f7c6a68ac8c49bd28dc1 26-Oct-2007 Ted Kremenek <kremenek@apple.com> Added serialization support for APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43405 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
7f46734b66306bb81720fbe617c15b1184b13807 26-Oct-2007 Ted Kremenek <kremenek@apple.com> Fixed incorrect "path name" in preamble (comment) of header file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43402 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
02760ed19ae02feca0cc536c035cdf08d222a8f3 26-Oct-2007 Ted Kremenek <kremenek@apple.com> Fixed incorrect "path name" in preamble (comment) of header file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43401 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
10c42185d82c121e8f7d261decde798c05567c59 24-Oct-2007 Chris Lattner <sabre@nondot.org> add a nice predicate to check to see if nan


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43304 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
c5ccbdbe329af09fd34aeb097c62ce2c33296f36 18-Oct-2007 Christopher Lamb <christopher.lamb@gmail.com> Add an uppercase conversion utility function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43146 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
52e2d83e653abd745d93bc05acba59c32a64eabf 18-Oct-2007 Ted Kremenek <kremenek@apple.com> Changed the return type of type-specific Allocate() methods to return
void*. This is hint that we are returning uninitialized memory rather
than a constructed object.

Patched ImutAVLTree to conform to this new interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43106 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
fa4710427fc5db4e8e27e3eeaa3dd03a65f70101 18-Oct-2007 Ted Kremenek <kremenek@apple.com> ImutAVLTree now allocates tree nodes from the BumpPtrAllocator using
the new type-aligned Allocate() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43100 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
6740463c74a7b98ec3136211c871ddd29df39887 18-Oct-2007 Ted Kremenek <kremenek@apple.com> Minor cosmetic cleanups in the calculation of alignments for
StringMapEntry objects. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43097 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
9080aaba0b8d4f313c70913c5a93ddd2bda22170 17-Oct-2007 Ted Kremenek <kremenek@apple.com> Updated StringMap to use llvm::AlignOf to compute the alignment of map
entries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43089 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
efd4a5144b03f61ebfd53d0245176f95e1170fb8 17-Oct-2007 Hartmut Kaiser <hartmut.kaiser@gmail.com> Updated VC++ build system.
Silenced some VC warnings.

I'm getting linker errors, though: unresolved externals:

llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)

and

llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)

Where are these defined?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43073 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
itVector.h
fd9c58adde8d62c0e1bd852e2c8c1d58088f8f03 15-Oct-2007 Ted Kremenek <kremenek@apple.com> Fixed incorrect renaming of method name (forgot two characters).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42999 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
85d03ae1ae767038d9781da44a7a7e3f5191053e 15-Oct-2007 Ted Kremenek <kremenek@apple.com> Added more doxygen comments.
Renamed internal method of ImutAVLTree::RemoveMutableFlag to MarkImmutable.
Added enum for bit manipulation (more self-documentating).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42998 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
e5e0194583c9d95cae685da139531624e050d39e 14-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Consolidate logic for creating NaNs. Silence compiler warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42966 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
1ff2ddda083a3c71a04789fe9845d41f7aaaa0ec 12-Oct-2007 Chris Lattner <sabre@nondot.org> don't use intptr_t without including it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42921 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
b89f67e3e659da1f11c01f2aac1be3463dc60f07 12-Oct-2007 Chris Lattner <sabre@nondot.org> Make this compute the correct offset, handling alignment of the element
pointer correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42918 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
96c7471b39dc77d4f29658212e5a72e575b23c39 12-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Implement correctly-rounded decimal->binary conversion, i.e. conversion
from user input strings.

Such conversions are more intricate and subtle than they may appear;
it is unlikely I have got it completely right first time. I would
appreciate being informed of any bugs and incorrect roundings you
might discover.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42912 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
886636445deeeb9283d262411a6fbe83b65056ab 12-Oct-2007 Chris Lattner <sabre@nondot.org> make operator== work with non-equal sized bitvectors, as long as
the extra bits are all zeros. This allows "010" and "010000" to be
treated as equal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42889 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
0b22da3d7361f94c3811f2e7d603bb3513dc3d1c 11-Oct-2007 Ted Kremenek <kremenek@apple.com> Provided accessors to internal allocator for ImutAVLTree and ImmutableSet.
Added postfix ++,-- support for ImmutableSet::iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42877 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
a471c2ecda37cd1bae0d94e832f002caa7b63216 11-Oct-2007 Dale Johannesen <dalej@apple.com> Next PPC long double bits. First cut at constants.
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
343960af3177b056266fc719489e6ec7a5d869de 11-Oct-2007 Chris Lattner <sabre@nondot.org> make bitvector &= do the right thing if vectors have mismatched length.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42860 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
bdc2154986f6f302ef59b506013b73f82a7a5ee5 11-Oct-2007 Ted Kremenek <kremenek@apple.com> Added iterators to ImmutableSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42851 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
37474bce024c4a1e85dd777a8b489af60eb4c699 11-Oct-2007 Ted Kremenek <kremenek@apple.com> Added some doxygen comments to ImmutableSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42850 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
ac6084dfc22042da72b5170f52e3ceaad978fcff 11-Oct-2007 Ted Kremenek <kremenek@apple.com> Removed uninformative assertions that catch problems that will
fire anyway at runtime due to a NULL dereference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42848 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
13a21b02374a5a5fe541dbfbd1491b25a00369f4 11-Oct-2007 Ted Kremenek <kremenek@apple.com> Removed "height" of an AVL tree node from its Profile. This is
implicitly captured by using the addresses of its children in the
profile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42847 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
b308cdbc5f49274519a31288909597af449f6683 10-Oct-2007 Ted Kremenek <kremenek@apple.com> Removed spurious forward declaration to a structure that will no longer be used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42839 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
ea34bc892c5341d1bbe49101ecab1d878ab8b621 10-Oct-2007 Ted Kremenek <kremenek@apple.com> Added some doxygen comments to a few methods of ImutAVLTree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42837 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
ebdbed384411da83f0cdca014e52f65165919bda 10-Oct-2007 Ted Kremenek <kremenek@apple.com> Added preliminary support for iterators in ImutAVLTree.
Implemented ImutAVLTree::isEqual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42833 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
be24d91d824387cea4454bd16f63d5b2409c56e1 10-Oct-2007 Ted Kremenek <kremenek@apple.com> Renamed internal method "Create" of ImutAVLTree to "CreateNode".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42825 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableSet.h
33bbed8f2a48ccf9ee349458db7ec4bd24dddb11 09-Oct-2007 Ted Kremenek <kremenek@apple.com> Added implementation of immutable (functional) maps and sets, as
implemented on top of a functional AVL tree. The AVL balancing code
is inspired by the OCaml implementation of Map, which also uses a functional
AVL tree.

Documentation is currently limited and cleanups are planned, but this code
compiles and has been tested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42813 91177308-0d34-0410-b5e6-96231b3b80d8
mmutableMap.h
mmutableSet.h
05831c073abbaacbf2fc21ef5ef160872056e075 09-Oct-2007 Chris Lattner <sabre@nondot.org> Fix problems where DenseMap used operator!= instead of correctly
calling the traits implementation of isEqual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42782 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
be2c4596cb562bbb216af2a0dd5c3b5c489e722c 09-Oct-2007 Chris Lattner <sabre@nondot.org> Change a #include into a forward declaration


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42781 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
68e53ad6cb0a9d64d256f9dcef70331cd72d795e 08-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Add a new function tcExtract for extracting a bignum from an
arbitrary range of bits embedded in the middle of another bignum.
This kind of operation is desirable in many cases of software
floating point, e.g. converting bignum integers to floating point
numbers of fixed precision (you want to extract the precision most
significant bits).

Elsewhere, add an assertion, and exit the shift functions early if
the shift count is zero.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42745 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f8a3ee1d637a747c87f72bc880445e6a82280ff0 07-Oct-2007 Chris Lattner <sabre@nondot.org> Finish off PR1723, by working around some strange compiler bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42737 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
f16c595252de363e0e1f6895a5a626bc30017053 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Add back convertFromSignExtendedInteger.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42735 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
643ce59495702ef29573b725d7431638be1c136a 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Reimplement convertFromUnsignedInteger so it is passed a const bignum.
It used to modify its argument in-place.

This interface is saner and the implementation more efficient. It will
be needed for decimal->binary conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42733 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
ccf596a53e16ea221a9bf8b3874a7d6afa71f1f4 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> convertFromInteger, as originally written, expected sign-extended
input. APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input. Make this
assumption explicit in the function name.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
33d4c92e78a32a8e07ab3ebc1487b07304875ddd 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> combineLostFractions does not need to be a member function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42729 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
c27d61d3ae820c6b265900380487cb74fb53510c 07-Oct-2007 Daniel Berlin <dberlin@dberlin.org> Some more problems noticed by Curtis


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42717 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
978661d05301a9bcd1222c048affef679da5ac43 06-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Generalize tcFullMultiply so that the operands can be of differing
part widths. Also, return the number of parts actually required to
hold the result's value.
Remove an over-cautious condition from rounding of float->hex conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42669 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
bca98326b6fd311c917fc2407b4b05d7c90f31b2 05-Oct-2007 Chris Lattner <sabre@nondot.org> Mark count method const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42639 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
ad92c633c7845e3a8103db5a9ae9231c03b9fb58 05-Oct-2007 Daniel Berlin <dberlin@dberlin.org> Fix intersectWithComplement bug noticed by Curtis Dunham
Optimize |= case for empty RHS


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42629 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
08bb6998437528143934de9c76fa312e48e58896 04-Oct-2007 Daniel Berlin <dberlin@dberlin.org> Fix the previous bug a slightly different way (by modifying how find_next works)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42613 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
9d03724c8c348dd31cc5b692b08b23c67fd4b0a0 04-Oct-2007 Daniel Berlin <dberlin@dberlin.org> Fix off by one error in iterator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42612 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
8d69b5a1137debfe11e9073c4edb99d477387072 04-Oct-2007 Daniel Berlin <dberlin@dberlin.org> It helps a lot when you check for the end of your list before randomly
dereferencing things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42605 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
c3a32d190c458fa14c4a6333c942e0aefd56da7e 04-Oct-2007 Daniel Berlin <dberlin@dberlin.org> Make SparseBitVector::set actually work properly when sets are not in ascending or descending order.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42604 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
a30b0ee959b53e83ed3697ee0b704a493829dc04 04-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Add APFloat -> hexadecimal string conversion, as per %a and %A in C99.
Useful for diagnostics and debugging.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42598 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
9c8a9af5afb5459fb7949d4468c5a2abe02baf2c 03-Oct-2007 Owen Anderson <resistor@mac.com> Add a GraphTraits partial specialization to make the inverse of an inverse be the same as the underlying graph.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42592 91177308-0d34-0410-b5e6-96231b3b80d8
raphTraits.h
116c3219df347f169b1bd24acca2d53ab0ae26ec 03-Oct-2007 Chris Lattner <sabre@nondot.org> Add initial iterator support for folding set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42589 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
b7dea4cb368c7b2e825e6d58b249693736a32e21 03-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Tweak RoundAwayFromZero the bit number below which is truncated, and make
it const.

Preparation for APFloat -> hexadecimal string conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42576 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
1bcc79666dcdcc948b7b998f7f661c77c268a893 30-Sep-2007 Chris Lattner <sabre@nondot.org> Add a helper useful when mapping from a map element to its hash node.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42480 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
be207738d3b4bbfc9da11025ebbf10f4f12216b9 30-Sep-2007 Chris Lattner <sabre@nondot.org> Add a new DenseSet abstraction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42474 91177308-0d34-0410-b5e6-96231b3b80d8
enseSet.h
117acf9e36a0789d56b52525e031f575f80fe169 26-Sep-2007 Neil Booth <neil@daikokuya.co.uk> Whitespace cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42374 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
9f711252f5d5ef4e05f5277ab462bf7668b53cfd 26-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Fix small bug in operator== for iterators


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42331 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
e6f0479aee718e976fc077507ff6442a58325824 25-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Comment fixups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42279 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
d81ccc2806b2c8a498d16f1a547d0cc9c00d602d 24-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Implement offline variable substitution in order to reduce memory
and time usage.
Fixup operator == to make this work, and add a resize method to DenseMap
so we can resize our hashtable once we know how big it should be.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42269 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
parseBitVector.h
1dcca6b2d0bb8fb374134c9db58ed15b2164fc1d 24-Sep-2007 Owen Anderson <resistor@mac.com> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42256 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
910993e8dc49a25d9da3b53de4a82568c14e91cc 22-Sep-2007 Dale Johannesen <dalej@apple.com> Change APFloat::convertFromInteger to take the incoming
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers. Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
4938d347723d452786c1a7c1d1b9ec79121b0040 21-Sep-2007 Owen Anderson <resistor@mac.com> Fix CopyFrom for non-POD data types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42208 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
8feb1f4467425d23ed74cce61e49f18a51a63421 18-Sep-2007 Devang Patel <dpatel@apple.com> Do not hide APInt::dump() inside #ifndef NDEBUG.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
76c1b97e4020faace8c95a127f1eab66c278fb58 17-Sep-2007 Chris Lattner <sabre@nondot.org> Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo

Add a new DenseMapInfo::isEqual method to allow clients to redefine
the equality predicate used when probing the hash table.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
430817ba181071d20f5c7c3ec4dcd5d8b8e318f4 17-Sep-2007 Daniel Berlin <dberlin@dberlin.org> That's what i get for using carbon emacs in a terminal


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42040 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
8180cf65a5b9fc41ba402a2d08cf62f70af65aeb 17-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Fix iterator so it doesn't sometimes report bits that aren't in the bitmap


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42039 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
c6d939818b7c50f6e14d04447657e670aedc3f6f 17-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Fix bug in andersen's related to test_and_set.
Add operator == and != to SparseBitVector.
Simplify code for test_and_set


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42018 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
7f44657c2f4409416a083a9e63d2b4ea7cdca43e 17-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Fix a few bugs related to zero'ing of elements


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42017 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
9e3d3abd937c9bb79d56d25ec0e0724c7cbba67c 15-Sep-2007 Dale Johannesen <dalej@apple.com> Remove the assumption that FP's are either float or
double from some of the many places in the optimizers
it appears, and do something reasonable with x86
long double.
Make APInt::dump() public, remove newline, use it to
dump ConstantSDNode's.
Allow APFloats in FoldingSet.
Expand X86 backend handling of long doubles (conversions
to/from int, mostly).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
oldingSet.h
f82e1e66cec02ecfa3c83c165bce6a2780c77914 14-Sep-2007 Dan Gohman <gohman@apple.com> And an FoldingSetImpl::NodeID::AddInteger overload for int64_t, to avoid
ambiguity.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41960 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
8a901985bc599df9dfd2fca0b8dd0da4585df8a7 13-Sep-2007 Chris Lattner <sabre@nondot.org> Make single-argument ctors explicit to avoid tricky bugs :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41924 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
ec39cb98d38bc0474a9ba207bcee31718db0e178 12-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Move dump out of class, use "\n" instead of endl


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41872 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
3f6eb7419de437436265831fce92f62498556e08 11-Sep-2007 Dale Johannesen <dalej@apple.com> Add APInt interfaces to APFloat (allows directly
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
6320260e060ce4fc5d199d757b15a0f43be66029 11-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Convert to use ilist and non-pointer lists for extra goodness


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41855 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
29ce95511f905df3a63e3b953a4a0179ead46865 11-Sep-2007 Owen Anderson <resistor@mac.com> Add a ValueInfoT template parameter to DenseMap so that it can properly make decisions
based on whether the key AND the value require ctors/dtors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41837 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
98153ecbc1b29c576ff43a7718c3f657f81b8aac 11-Sep-2007 Owen Anderson <resistor@mac.com> Don't bother to initialize values corresponding to empty or tombstone
keys.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41834 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
16ebc260bd374daa4323c78ffefc87aec485f29d 11-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Fix bugs with &=, intersect with complement. Add three argument version of intersect with complement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41832 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
9544dc294f63ce116fbab398a8874ebf834cf41e 11-Sep-2007 Owen Anderson <resistor@mac.com> Fix non-deterministic behavior in the DenseMap copy constructor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41831 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
1b6998e8d6807d3e0b6d4904111f43738ceae5e6 11-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Add remaining functions necessary for andersen's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41830 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
2f5d5937eccfaa17c01ab5136bfde20f2f6d767c 09-Sep-2007 Daniel Berlin <dberlin@dberlin.org> Add SparseBitVector implementation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41790 91177308-0d34-0410-b5e6-96231b3b80d8
parseBitVector.h
418d360518811121ad9352af57fdd7ba58a4f917 08-Sep-2007 Chuck Rose III <cfr@adobe.com> Fix for VisualStudio. It is treating a 2 bit enum as a signed int for comparison purposes, causing failures. Using an extra bit fixes it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41784 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
718cb665ca6ce2bc4d8e8479f46a45db91b49f86 07-Sep-2007 Owen Anderson <resistor@mac.com> Add lengthof and endof templates that hide a lot of sizeof computations.
Patch by Sterling Stein!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
6d5e7d917ba1a9e45e0e4f4294a0235fc224d822 04-Sep-2007 Dale Johannesen <dalej@apple.com> fix reversal bug in preceding checkin


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41705 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
c4dd3c3b519aa2c2ed26ce03a4b1fbb992efeaca 01-Sep-2007 Dale Johannesen <dalej@apple.com> Add mod, copysign, abs operations to APFloat.
Implement some constant folding in SelectionDAG and
DAGCombiner using APFloat. Remove double versions
of constructor and getValue from ConstantFPSDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41664 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
ee8476847da85e1ac44744f7f64de0675b89dc15 31-Aug-2007 Dale Johannesen <dalej@apple.com> Revise per review of previous patch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41645 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
eaf089430e7681fcddc3465c3b33b9645273ab02 31-Aug-2007 Dale Johannesen <dalej@apple.com> Enhance APFloat to retain bits of NaNs (fixes oggenc).
Use APFloat interfaces for more references, mostly
of ConstantFPSDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41632 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
tringExtras.h
cd3c4cac6ea3ce3bff0ce763d45c3f7a2d673178 29-Aug-2007 Chris Lattner <sabre@nondot.org> getMinSignedBits needs to take into consider the sign bit when the value is positive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41566 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
81975f6dfd9d306d0ea7ce3ef22561c949de9af9 27-Aug-2007 Dan Gohman <gohman@apple.com> Add explicit keywords and remove spurious trailing semicolons.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41482 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
21dcae17f580678c452eac73e01424c924d2f994 25-Aug-2007 Dale Johannesen <dalej@apple.com> Comment out declaration of operator== (undefined).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41383 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
12595d7b165bf460b18f4ddd395dd29e6e6e68bc 25-Aug-2007 Dale Johannesen <dalej@apple.com> Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual.
This means backing out the preceding change to Constants.cpp, alas.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41378 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
d3b51fd17024569cc53ae02b9a4f80857930e08b 24-Aug-2007 Dale Johannesen <dalej@apple.com> Revised per review feedback from previous patch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41353 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
343e770983dcf53a1ea2dfca4e04d28ebc41138a 24-Aug-2007 Dale Johannesen <dalej@apple.com> Change internal representation of ConstantFP to use APFloat.
Interface to rest of the compiler unchanged, as yet.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41348 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
006f5a3c66cfd4bb648a4fe5f4c9bb0b86ccf940 23-Aug-2007 Chris Lattner <sabre@nondot.org> default this to radix 10 like the toString(Un)Signed methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41311 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
028760fd88081964ace51e4205e28ff52fc1f47a 23-Aug-2007 Chris Lattner <sabre@nondot.org> Avoid hiding issues.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41310 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
9132a2b81842b0e2b77703fab3e6fe7467f859bb 23-Aug-2007 Chris Lattner <sabre@nondot.org> rename APInt::toString -> toStringUnsigned for symmetry with toStringSigned()

Add an APSInt::toString() method.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41309 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
PSInt.h
b39cdde41d3c91d1fd48a038e63b78122607bb10 21-Aug-2007 Chris Lattner <sabre@nondot.org> initial checkin of Neil's APFloat work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41203 91177308-0d34-0410-b5e6-96231b3b80d8
PFloat.h
PInt.h
8568122b41340e9c3bfac47f3714db4241196fbd 20-Aug-2007 Chris Lattner <sabre@nondot.org> add reverse iterators to smallvector



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41198 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
6de84985a434bfd6e55323ad5cd9959d15aa554a 17-Aug-2007 Chris Lattner <sabre@nondot.org> improve iplist comments. Switch iplist from allocating its sentinal object (for
end()) eagerly to allocating it lazily. This saves a lot of memory for JIT applications
that read a module but don't materialize most of the functions (e.g. 62K for 252.eon).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41142 91177308-0d34-0410-b5e6-96231b3b80d8
list
fe8e14a6c99261cfe9238c35761083cb4c99cc6a 16-Aug-2007 Chris Lattner <sabre@nondot.org> This adds a bunch of static functions that implement unsigned
two's complement bignum arithmetic. They could be used to
implement much of APInt, but the idea is they are enough to
implement APFloat as well, which the current APInt interface
is not suited for.

Patch by Neil Booth!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41124 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
3d345631db71174ffc4997a88c09f21eb9ed052b 16-Aug-2007 Owen Anderson <resistor@mac.com> Forgot a line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41115 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
67280e1dd22cf9fa452c335d1e2328d13f158da1 16-Aug-2007 Owen Anderson <resistor@mac.com> Add a copy constructor and an assignment operator to DenseMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41114 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ebf03038109c2af39d0db14ea9058c10e02e9eae 15-Aug-2007 Anton Korobeynikov <asl@math.spbu.ru> Properly use const qualifiers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41111 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
276222a5ae189ed5c6a2afb248d4c8f0335585b4 12-Aug-2007 Reid Spencer <rspencer@reidspencer.com> Change casts from old style to new style. This helps document the details
better, gives the compiler a chance to validate the cast and reduces warnings
if the user turns on -Wold-style-cast option.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41033 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
mallVector.h
4f155b4c8597f40a79add430dfedb2c08ba28375 10-Aug-2007 Chris Lattner <sabre@nondot.org> memcpy with zero length is hugely expensive, so avoid it. This speeds up coallescing from 1.17s to 0.88s on siod.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40984 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
02cee38647ea413e5d05f29f67a7f003db9f0081 10-Aug-2007 Chris Lattner <sabre@nondot.org> small speedup in the case where a smallvector is default ctor'd from
an empty vector. This speeds up llc slightly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40983 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
b1183c1ff3b17689c036d5e7443b7343074d2f6f 06-Aug-2007 Chandler Carruth <chandlerc@gmail.com> This fixes resizing issues with BitVectors. It ensures that the BitWord type and type size is always used, and ensures completely correct clearing of unused high bits, and setting of bits when resizing. It should resolve PR1563.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40871 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
f094f81d36f0941f0e8ed9e4086b21db93186ff4 05-Aug-2007 Reid Spencer <rspencer@reidspencer.com> Document a missing parameter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40852 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
7b54452c84e478ab4d49ac08759ca4ec1badf2b2 05-Aug-2007 Chris Lattner <sabre@nondot.org> Fix a bug in DenseMap::clear, where we never reset a tombstone
to EmptyKey.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40839 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
42e4bdf2577946380ce1529d5716e48b33d4186d 05-Aug-2007 Chris Lattner <sabre@nondot.org> When clearing a SmallPtrSet, if the set had a huge capacity, but the
contents of the set were small, deallocate and shrink the set. This
avoids having us to memset as much data, significantly speeding up
some pathological cases. For example, this speeds up the verifier
from 0.3899s to 0.0763 (5.1x) on the testcase from PR1432 in a
release build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40837 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
mallPtrSet.h
bfbfcdafbeb70d45a7fb9c983dbd724775c1281a 02-Aug-2007 Anders Carlsson <andersca@mac.com> Fix bug spotted by Chris.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40725 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
7ccd9ec4f40d1cdf740c98dab8e212943a4b4863 02-Aug-2007 Anders Carlsson <andersca@mac.com> Add extend and extOrTrunc methods that do sign or zero extension depending on whether the integer is signed or not

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40724 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
e992a56ae93140171f5044079e8d317f784c8cc1 27-Jul-2007 Owen Anderson <resistor@mac.com> Allow SmallPtrSet to hold pointers to const data.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40556 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
c6402013c8767d5718d4c7ae5625969361182771 22-Jul-2007 Chris Lattner <sabre@nondot.org> Disable the string map copy ctor and assignment operators,
they don't do the right thing.

Implement StringMap::erase.

Fix a nasty bug in the default ctor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40395 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
398b40671b13018f88371b74822fa8ee2638577e 20-Jul-2007 Owen Anderson <resistor@mac.com> Make the heuristic for shrinking DenseMap smarter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40114 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
6ad5fde5d01e0c8c23b928583d2fb9489b1b5a36 20-Jul-2007 Owen Anderson <resistor@mac.com> Have DenseMap auto-shrink itself on clear(). This improves the time to optimize
403.gcc from 15.2s to 14.3s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40100 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
845b31de0c58e1f667063170191262079d311052 17-Jul-2007 Reid Spencer <rspencer@reidspencer.com> Unbreak the build by putting calls to free into the implementation file and
having that implementation file #include <cstdlib>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39952 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
1629a1fa87f8c32d6d33173d6d6e77dc4ed1ca4f 16-Jul-2007 Owen Anderson <resistor@mac.com> Use realloc() to (potentially) resize the contents of SmallPtrSet in place.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39926 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
f7b71c64cfe805d0a48d18d55a739ce8a7e6851a 16-Jul-2007 Chris Lattner <sabre@nondot.org> add a helper method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39885 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
c5c7f755c8c7f12e1d9190aa3a784fb15cb76241 10-Jul-2007 Owen Anderson <resistor@mac.com> Evidently my earlier fix did not go far enough. When resizing a zero-sized
BitVector, make sure to set or clear ALL of the bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38481 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
0c81450a0c1f859738a2f209a89de10f889fcd84 10-Jul-2007 Owen Anderson <resistor@mac.com> When resizing a BitVector with size 0, be sure to clear the low word before using it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38476 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
4d6f96d6997738419627ebe13dd6cb9c88a98fd7 09-Jul-2007 Owen Anderson <resistor@mac.com> Make the assignment operator for SmallPtrSet return a reference, and fix a long-standing bug in the copy
ctor while I'm at it.

Thanks to Chris Lattner for help with this patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38470 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
95fd3189f84de5953c75d67403e7db9acdd5005d 09-Jul-2007 Chris Lattner <sabre@nondot.org> work around an aparent gcc name resolution bug by
detemplatizing this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38461 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
91f0158d4d1b16b8615126b05582d421cfb14089 09-Jul-2007 Chris Lattner <sabre@nondot.org> implement operator= for smallptrset



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38460 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
59310c3dc0061a0fd6842c66ac3215fbbdfe4ae4 30-Jun-2007 Dan Gohman <gohman@apple.com> Add an explicit keyword. Thanks Chris!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37819 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
e644ef7b098460ce831220c780cbe25eaef3fb28 29-Jun-2007 John Criswell <criswell@uiuc.edu> Convert .cvsignore files

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
cvsignore
8b42bcdd1ad6f3f908d062b189fbc2a6449fae83 28-Jun-2007 Dan Gohman <gohman@apple.com> Add a default parameter to a SmallVector constructor to allow it to
be called with just an initial length value, just like in std::vector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37779 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
d3fb6714802d8e44b34980af8772cc3ed398e71a 21-Jun-2007 Owen Anderson <resistor@mac.com> Have internal df_iterator's use SmallPtrSet instead of std::set. This provides compile time speedups to any pass using df_iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37694 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
26b146ccf10979809a8bfe9c2d798f4b6fbf39de 17-May-2007 Chris Lattner <sabre@nondot.org> silence some "comparison between signed and unsigned integer expressions"
warnings


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37177 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
df799afbecee669fb8b86c9590ad2d32d9e3216f 17-May-2007 Dan Gohman <gohman@apple.com> Fix some sporadic segfaults that are triggered when SmallVector's heap
storage lands near the end of the available address space. In the expression
Begin+N > Capacity, the Begin+N was overflowing. Fix this by replacing it
by with an expression that doesn't involve computation of an address
beyond the end of allocated memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37171 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
19dc32a2d422ac0aafd047514e3e5e727796696e 14-May-2007 Reid Spencer <rspencer@reidspencer.com> Add some things needed by the llvm-gcc version supporting bit accurate integer
types:
1. Functions to compute div/rem at the same time.
2. Further assurance that an APInt with 0 bitwidth cannot be constructed.
3. Left and right rotate operations.
4. An exactLogBase2 function which requires an exact power of two or it
returns -1.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37025 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
82493289e0234e0172313e845fb87306cf3687ac 03-May-2007 Chris Lattner <sabre@nondot.org> This is a patch to fix a compile error in STLExtras.h, and
a bug in GraphWriter.cpp.

Patch by Florian Brandner


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36684 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
49e1580214cd0b9e8d00b29f11f62fe9070a2a9c 03-May-2007 Chris Lattner <sabre@nondot.org> remove useless type qualifiers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36676 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
2864b77efc986a5c80c262c753a8f9df0cf789ed 26-Apr-2007 Jeff Cohen <jeffc@jolt-lang.org> Rename identifier that GCC uses as a macro, breaking llvm-gcc build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36474 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
703f5291c4f7199a95274df5e3381b36f8faf38c 23-Apr-2007 Chris Lattner <sabre@nondot.org> add a missing operator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36375 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
3f520a71117535a3c995933186cc5bc373ffc61f 19-Apr-2007 Jeff Cohen <jeffc@jolt-lang.org> Fix some VC++ warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36259 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
47e756c11edbaa9a4916687eceaa4ec94c0aae3b 17-Apr-2007 Chris Lattner <sabre@nondot.org> Commit an patch from Gabor Greif in Mar 2005. This eliminates the tail
pointer from ilist, storing it in the prev pointer of the first node in the
list instead.

This shrinks ilist from 8 to 4 bytes, BasicBlock from 40->36 bytes, Function
from 76->68 bytes, Module from 52->44 bytes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36210 91177308-0d34-0410-b5e6-96231b3b80d8
list
bed2946a96ecb15b0b636fa74cb26ce61b1c648e 16-Apr-2007 Anton Korobeynikov <asl@math.spbu.ru> Removed tabs everywhere except autogenerated & external files. Add make
target for tabs checking.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
ash_set.in
ac58a16f8584f38198cc7800bd37a896125268b7 14-Apr-2007 Jeff Cohen <jeffc@jolt-lang.org> Fix PR1329.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36016 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
57ae4f5f01b6f8edf678d77ab935f3662993065d 13-Apr-2007 Reid Spencer <rspencer@reidspencer.com> Implement a getBitsNeeded method to determine how many bits are needed to
represent a string in binary form by an APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35968 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
2b4c23438838034ee2a812f3cb094a9742b272f6 10-Apr-2007 Chris Lattner <sabre@nondot.org> fix a comment bug Reid noticed


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35864 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
403949ea93d78796fcd803e75c97b68e53e331a9 10-Apr-2007 Chris Lattner <sabre@nondot.org> add missing methods, mark stuff const


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35862 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
4bda52d6b5ffa13314fe32baa1784566f70483f9 10-Apr-2007 Chris Lattner <sabre@nondot.org> add a method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35860 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
db8918a98ff001d0c37abf41bc62364595340035 05-Apr-2007 Chris Lattner <sabre@nondot.org> Add a helper class (APSInt) which can represent an APInt along with sign
information. This is useful when a value does have a sign associated with
it. This shouldn't be used generally in LLVM for mid-level optimizer stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35681 91177308-0d34-0410-b5e6-96231b3b80d8
PSInt.h
ecd276a49898a79404728ab476fc3c74e8ab8581 05-Apr-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com> Fix release build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35676 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
5502bf67cd49221583c15472150905ce13184d36 04-Apr-2007 Anton Korobeynikov <asl@math.spbu.ru> Properly emit range comparisons for switch cases, where neighbour cases
go to the same destination. Now we're producing really good code for
switch-lower-feature.ll testcase


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35672 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
6401260af24812454817891ca60b2126a14d5b6f 04-Apr-2007 Chris Lattner <sabre@nondot.org> trivial optimization


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35648 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
d2f197da59a3c937c1809997907918c029f9f884 04-Apr-2007 Chris Lattner <sabre@nondot.org> use calloc instead of new/memset, it is more efficient


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35644 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
794a014809d810b7ee9a96be76774185561f0dcc 04-Apr-2007 Chris Lattner <sabre@nondot.org> Extend StringMap to support being initialized as completely empty. When
initialized this way, they do not do a malloc to allocate their buckets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35642 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
ef65293dc27c2d7b1ba1fc7c7ffd802e86b780ec 03-Apr-2007 Chris Lattner <sabre@nondot.org> add missing operator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35613 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
febabcc02a1303a8e4d9bed76718a32f0273607a 02-Apr-2007 Chris Lattner <sabre@nondot.org> add a helper function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35585 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
086f18626750482318612a10c3027b946b4e36e4 02-Apr-2007 Chris Lattner <sabre@nondot.org> add range version of insert()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35572 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
770e1798e110732e09540d53ffd2be261790f2c1 01-Apr-2007 Zhou Sheng <zhousheng00@gmail.com> Remove unused methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35553 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
48a3e98c272d673f075c51d078140765fc267eb8 30-Mar-2007 Duncan Sands <baldrick@free.fr> Correct typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35504 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f6bef488eeab75b6c7746f9faa9731d45bb84aef 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Compute getLowBitsSet correctly. Using the complement of a 64-bit value
and shifting down without regard for the bitwidth of the APInt can lead
to incorrect initialization values. Instead, check for the word size case
(to avoid undef results from shift) and then do (1 << loBitsSet) - 1


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35344 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
5b9f2d6186317df88dbaf603bf8d0eafd6e83897 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Fix a typo in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35316 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
a1689ea60eafb10a617ba588fe29e09683299368 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Actually, for getHighBitsSet and getLowBitsSet, don't make a 0 bit size
illegal. Instead do the 0 valued construction for the user. This is because
the caller may not know (or care to check) that the number of bits set is
zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35315 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
758d1bc919f3f0856df102f6db64ef9b894d4c23 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Make it illegal to set 0 bits in getHighBitsSet and getLowBitsSet. For that
they should have used the uint64_t constructor. This avoids causing
undefined results via shifts by the word size when the bit width is an
exact multiple of the word size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35313 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
5b7e659e220ed01c8d3a7335e2b52ff2f0fb2ef3 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> In the getBitsSet function, don't optimize for a common case that is
already covered by getLowBitsSet (i.e. when loBits==0). Consequently, remove
the default value for loBits and reorder the arguments to the more natural
loBits, hiBits order. This makes it more clear that this function is for bit
groups in the middle of the bit width and not towards one end or the other.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35312 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ca76fc2cd3b97e4821e7d8247bc03bbbd2789ad9 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Don't invoke undefined behavior in shifts in the functions getHighBitsSet
and getLowBitsSet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35311 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
8f969ee62c3fed26f835a37c41f7c009f99ea3bf 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Implement the getBitsSet function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35310 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
8da7d65b8350d0f47f47ab496328d9068ac6764d 25-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Implement the getHighBitsSet and getLowBitsSet functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35308 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
013263f7b008e2fca293cf2720205f3f6db37dc2 24-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Get the signs in the right place!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35307 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
d3af825d29ab02f78665d5010c8439d34d65db65 24-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Undo the last change and make this really implement remainder and not
modulus. The previous change was a result of incorrect documentation in
the LangRef.html.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35305 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
53c9520b238514a9c1b63ff02221f7467aad1337 24-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Correct the implementation of srem to be remainder, not modulus. The sign of
the result must follow the sign of the divisor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35302 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
7ac2f81e49442f76e3427227fb1e300ce60fceb4 24-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Clean up this interface:
1. Group similar methods into doxygen groups
2. Reorganize the groups into a consist flow.
3. Significantly improve the quality of the documentation on several methods
4. Rewrite srem and sdiv to eliminate a copy and improve readability.
5. Eliminate unneeded forward references.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35300 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
3a3aacfe10cc6a96de7357e07dcf8b3f0e5f63bb 21-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Fix a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35246 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e51ffcf27fbbb8dd209e68fc8a74b108822cd162 20-Mar-2007 Zhou Sheng <zhousheng00@gmail.com> Correct the name: isStrictPositive --> isStrictlyPositive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35201 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
b9174dd5dc2a782e617fe45200ec462bcef26cee 20-Mar-2007 Chris Lattner <sabre@nondot.org> Add a dtor to fix leaks from all clients of BitVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35200 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
95da1213958b63c6a5ef65107bf8c3b6a07d3ffb 19-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add an indication of signedness to the uint64_t constructor so sign bits
can be extended. This helps fix test/Assembler/2007-03-19-NegValue.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35179 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
fdcd5a7740f5947a8679524f71852d36e79766a0 19-Mar-2007 Zhou Sheng <zhousheng00@gmail.com> Add isStrictPositive() to APInt to determine if this APInt Value > 0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35156 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
b991dfeae75fba839150a21272a2aa875ec3945f 13-Mar-2007 Zhou Sheng <zhousheng00@gmail.com> Add zextOrCopy() into APInt for convenience.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35079 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
8db6a445e679817d9972c44d2bc366732388c7b0 11-Mar-2007 Zhou Sheng <zhousheng00@gmail.com> Add getSignBit() and operator<<= into APInt for convenience.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35059 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
72adee00f6e0cd3239a2b4e1e1c8512e26ec6537 05-Mar-2007 Jeff Cohen <jeffc@jolt-lang.org> The hack won't work on VS 2005, and it might not be needed anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34930 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
3130835bdf4e965309fa3cbed1bfc976a04324f8 05-Mar-2007 Zhou Sheng <zhousheng00@gmail.com> Correct the calculation in APInt::logBase2().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34929 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f15bd1b9c66ca11776060ae0db2024d741d9de2d 05-Mar-2007 Jeff Cohen <jeffc@jolt-lang.org> Elminate tabs and improve comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34921 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
ca5183d445954a9b2a570d6bbba1bc2b00ad6442 05-Mar-2007 Jeff Cohen <jeffc@jolt-lang.org> Unbreak VC++ build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
ab8fea5283de0931e1da5dc91b4df2f734ba0206 04-Mar-2007 Chris Lattner <sabre@nondot.org> add iterator range version of ctor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34899 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
52f32d55665ef02e6ebe4518b0a1e2e2a4df0bea 03-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Regularize the interface for conversion functions to/from float/double.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34881 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
28bb83625accaa7b44d60c71794d35e3e8d61039 03-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Make getNumWords public so that those using getRawData stand a chance of
not reading beyond the end of the buffer returned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34873 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
da347141ecb7ce44c532cdc51b000d5ab65db79f 03-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add names for some of the operators. This is needed for the macros in
the Interpreter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34872 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
239e4021ce2dc1e57f31190b9e9737d0f2c507c1 03-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add isPositive for symmetry with isNegative.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34862 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
155b6220f79ca2dbd47193c1c061e6e129b977ab 02-Mar-2007 Chris Lattner <sabre@nondot.org> Fix PR1234 by working around a compiler bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34845 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
0eca22af62c1e1500b1a937ccdec6d5ffe6ecd8a 02-Mar-2007 Evan Cheng <evan.cheng@apple.com> Make it 64-bit safe.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34829 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
b45a221348ee8693f1bff2df7b42689497083d41 02-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add an abs() function to get the absolute value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34819 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
53ee4f9d4083ce5106d95ab23985570a1f7413e5 01-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add doubleToBits and floatToBits methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34807 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ab2ed8ec850b6dd9b152ab936d70b7376903168a 01-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add bitsToDouble and bitsToFloat methods for re-interpretation of bits as FP.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34800 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
68e2300ad965bf08af11ae363bb85e3badf964dc 01-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add methods for bit width modification: sextOrTrunc, zextOrTrunc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34789 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
af8fb1984674db462bc6923ed54db0275c78b711 01-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Add a square root function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34775 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f2253449e24712e96f7bdb7b54c20ddca8d6bb51 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Make APInt a little more friendly to its users:
* Add support for + and - of a uint64_t.
* Make trunc/sext/zext return *this so it can be chained with other ops
* Add smin, smax, umin, umax functions for getting min/max values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34742 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
84b4eeccc70b39f975a82ad098413d129d38a7d3 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> getActiveWords should return the number of words, not the index of the
highest active words. Increment its result by one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34713 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
9d3c51923392f69b63512e59e44f72affbe6136e 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add some syntactic sugar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34704 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
681dcd14e9d59c2070e3a298328db9aea6069480 27-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Implement countLeadingOnes() and getMinSignedBits(). This helps to minimize
the bit width of negative numbers by computing the minimum bit width for a
negative value. E.g. 0x1800000000000000 could be just 0x8000000000000000


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34695 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
66ed1099ff3591c61e008198bb5a30862e778fc0 27-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Improve APInt interface:
1. Add unsigned and signed versions of methods so a "bool" argument doesn't
need to be passed in.
2. Make the various getMin/getMax functions all be inline since they are
so simple.
3. Simplify sdiv and srem code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34680 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
409f092766e61ab317e46aec37b4a9234ead9b5a 27-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Allow the RoundDoubleToAPInt function to specify a width to use.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34672 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
946bca5bae2539ca55f8fb4700bff8b5e3f5a7eb 26-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Fix indentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34643 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
31a81f0190179b19dc72302dfea05cd1c2f0d22e 26-Feb-2007 Reid Spencer <rspencer@reidspencer.com> 1. Split getValue() into getSExtValue() and getZExtValue() to match
ConstantInt better.
2. Add a getHashValue() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34641 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f99705e8985bbd4ff5786f5fc9d843d5de38a3d4 26-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Implement inline methods that make transition of ConstantInt to use APInt
easier to comprehend and might be useful elsewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34635 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ebf4ebd69155ea46c7937aec25df1f50dd61c136 26-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Make isNegative() a const function since it doesn't modify the APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34630 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
dcffd5c3d90f295c90bc211a9c402e1fc18f8b12 26-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add an isNegative method to determine if the APInt's value is negative.
This is much less expensive than a test against zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34619 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
c68c2243dcb716bc117f41aa543ca8a41046df41 25-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Fix clearUnusedBits to not depend on "undefined behavior" of >> operator
when the bit size is equal to the word size. This happens to work out okay
on x86, but might not on other platforms. The change just detects when
there are no bits to clear (because BitWidth is a multiple of the word size)
and returns early.

Also, move some comments from .cpp file into header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34602 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
20b1f5db1e93d28debc6449dcd56da6ca7aa6b67 25-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add a private constructor for efficiency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34580 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
d03d012ad97fad9f91b107d206dadad4c34bebef 24-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Improve documentation.
Make divide function internal (it was briefly external for testing).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34557 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f31c784f2774311d1f7194ac4ca86262197a8099 21-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add a dump() method for debugging.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34464 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e91f7847e6126b266fb01de1f05da5655c359da8 20-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add an internal convenience method for division that urem and udiv use.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34448 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
d81b0659501c66b2fec2009e8a999c3db6a1f95c 19-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add some new constants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34398 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
a932e3f799cbf2f689e4987fea543d3f8661e7a8 18-Feb-2007 Reid Spencer <rspencer@reidspencer.com> 1. "unsigned" -> "uint32_t" to gaurantee its bit width on all platforms.
Size matters in this case.
2. Remove the unused whichByte private function, which was also broken.
3. Remove the non-const overload of the getWord function, getWord() is
never used as an lvalue.
4. Rename some local variables for clarity (e.g. API -> Result).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34390 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
443b570149f5756b298de6b63d13bbbf66b4f6fc 18-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Implement signed output for toString.
Fix bugs in countLeadingZeros and countTrailingZeros.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34386 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
cd6f2bfc268add3dd54cbdf98b2a2c4862fe4ba5 17-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Fix bugs introduced by constructor parameter order change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34357 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e81d2dad2c54014d36c73573307db5852c5caf8e 16-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Review changes:
1. Function style changes.
2. 80-col violations.
3. Better names for things.
4. Arrange constructors so they all take bit width first.
5. Add named signed and unsigned comparison functions and remove the
corresponding operators.
6. Remove operator&& and operator|| but provide a getBoolValue function which
converts to bool as comparison against 0. This allows the normal && and
|| operators to be used as if (X.getBoolValue() && Y.getBoolValue())

Note: this still doesn't function 100% yet. I'm working on the bugs now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34353 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
b5aabee33073068f1f6bb71c1da9000b03b16181 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Proper fix for the off-by-one bug in clear_unused_bits().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34328 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
f1f007d2ffeb5534070208938aaa7f3065d70f61 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Fix an off-by-one bug in computing the index of the word to clear.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34326 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
9d1597b086114d643a8c5db71fffa72ae8bb06f3 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Make sure Capacity gets initialized too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34325 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
852b4baf47e987ff2f2cf547aba23ac89d091ede 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Missing a ;


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34322 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
e01ad2d129640a404844b3e55c7be4405ac21a24 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> BitVector::reference operator=(const reference& rhs) is unnecessary thanks to autoconvert to bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34320 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
1f46998b3f05bea569db27b3de78a091aa943ca3 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Remove unnecessary checks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34319 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
638417f7887303b8dcf75043b39182de4c96db55 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> operator== returns false when two bitvectors have different sizes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34317 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
c761df18ae4979a8f2a0d3c5c35cda41db2a3f0b 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Merges two resize() variants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34316 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
ccae61c5da270b0684c4c7d2450d9bf3ff35aac7 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Clear no longer deleting the bits to avoid mallocs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34315 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
7bf26c1d68f75de9c1c8520620228b016bf9a0eb 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> BitVector::count() bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34314 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
334df9d83f7a9f189d21c25a2d32afcd50bd0a9a 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Eliminate a redundent ctor; eliminate one more potential new [0].


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34313 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
057f8e084515ca8e10eac5c37c8a9485b844343c 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> 1 -> 1L since BitWord has type unsigned long.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34312 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
5f92ce4696eaeca9d8b99b1a1fa784e78479d516 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Eliminate new[0], just set Bits to NULL.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34311 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
c48aafe6c6d6f63197b1e21f6f5e7fb963fd313f 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Inverted the condition by accident.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34309 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
506e89949024a055fb9fc7258e96bf4b581135e4 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Bug fixes: assignment operator forgot to copy over size; copy ctor forgot to clear unused top bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34305 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
b04973edfaffb12905f58379d632f0d7e4bb5d9b 15-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> Fix some buges:
1. Make getMinValue() returns the right value.
2. Fix the ByteSwap() crash problem.
3. Make Postfix increment work correctly.
4. Fix some bugs in LogBase2, Hi/LoBits and UDiv.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34304 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
ad1d5c3bc55249b3291338288c90773ce80df11a 15-Feb-2007 Evan Cheng <evan.cheng@apple.com> Add a BitVector class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34301 91177308-0d34-0410-b5e6-96231b3b80d8
itVector.h
db3faa64ee89d537ca1b1410dd841ef51e957540 13-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Make some minor improvements to APInt:
1. Make all the operators use uppercase
2. Rename APIntRoundToDouble method just RoundToDouble, the APInt is
redundant.
3. Turn the class on for compilation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34253 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
8c06509f9590a63ab2d4361945aac18c02b71f0c 13-Feb-2007 Chris Lattner <sabre@nondot.org> fix a critical bug in smallvector, where it would destroy elements that are
not in its range (!).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34230 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
d93f00c35dbd1ea415bb2b39435253aef9428d71 12-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> 1. Make APInt::shl work correctly and more efficiently.
2. Add functions to support the numberical conversion between APInt and
double/float.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34201 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
a96b4ee7ff408f2fe23fa9b2788c1ed9cf87caf4 11-Feb-2007 Chris Lattner <sabre@nondot.org> add new ShouldRehash method to factor out common code. Fix the dtor to not
delete tombstones.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34189 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
65033ffc297ce5610af9eedd38dc074e02dbff9b 11-Feb-2007 Chris Lattner <sabre@nondot.org> do not allow hash table to be filled with tombstones.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34186 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
44dcd01cb3424420d79d5811fa8c1c052411f975 11-Feb-2007 Chris Lattner <sabre@nondot.org> Add support for removing elements out of StringMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34185 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
b5bb9f5b5cfe89f4b7626671f4923d50f8d4cd6a 11-Feb-2007 Chris Lattner <sabre@nondot.org> Replace the ugly FindValue method with STL-like find methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34183 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
360cac8fef34b4671f27ef52674a41e29154ddc7 11-Feb-2007 Chris Lattner <sabre@nondot.org> remove support for stringmap visitors now that iterators exist.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34180 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
6ccadf6f7f196b6c27a0eb966a90b8c39812b780 11-Feb-2007 Chris Lattner <sabre@nondot.org> add iterator support, plus support for size() and empty().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34178 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
9cc2d3dce87c2f4666a5d6a97321d865ade930da 11-Feb-2007 Chris Lattner <sabre@nondot.org> Split StringMapEntry construction out of StringMap, into StringMapEntry.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34170 91177308-0d34-0410-b5e6-96231b3b80d8
tringMap.h
569b935e6b23c4a0e4ebb2c96603974310ef0587 10-Feb-2007 Chris Lattner <sabre@nondot.org> Make find return the appropriate iterator/const_iterator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34137 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
a76b1febd4fd258e8054395adedcbd477668d956 10-Feb-2007 Chris Lattner <sabre@nondot.org> Allow DenseMAp to take an explicit DenseMapKeyInfo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34134 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ff4304f8243f55e2e5c63bc95517cd38ff9295e1 09-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> Eliminates friend function declaration inside APInt, instead, adds public
methods as those global function's internal implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34083 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
bb28a81ba3c112853f0eb3d8df0190accc0379c9 08-Feb-2007 Chris Lattner <sabre@nondot.org> Rename CStringMap -> StringMap, since it now supports nul characters in the
strings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34064 91177308-0d34-0410-b5e6-96231b3b80d8
StringMap.h
tringMap.h
ee182422ff0b638b17c5ee802c19b8680107c2bb 08-Feb-2007 Chris Lattner <sabre@nondot.org> Allow cstringmap to contain strings with nul characters in them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34062 91177308-0d34-0410-b5e6-96231b3b80d8
StringMap.h
tringMap.h
0b706b18bd0a7760d971727460a1f26bff8289b0 08-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> As Chris and Reid suggested, remove "isSigned" field from APInt, instead,
add some signed/unsigned arithmetic operation functions into APInt.h to
handle the signed/unsigned issue. These functions will be defined inside a
namespace "APIntOps" which is inside llvm namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34053 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
58a0d64fae7ace05b27dad94fd427991d853619b 07-Feb-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com> Fix build error.
include/llvm/ADT/APInt.h:326: error: ‘assert’ was not declared in this scope


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34002 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
f29a09d6272265e90362d5dfba201c4ed6dcf6d5 07-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> As Chris suggested, fixed some problems. (This is the first part.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33986 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
e237cf934fcb8a25746e068f543fbd6db44eaa70 07-Feb-2007 Chris Lattner <sabre@nondot.org> do not let the table fill up with tombstones.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33973 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
04a3115e619740245cbe34c8c7428b4bde7868f7 07-Feb-2007 Chris Lattner <sabre@nondot.org> Fix a really subtle bug where the entire hash table could fill with
tombstones, causing subsequent insertions to infinitely loop.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33972 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
53a58106d418db0acfe6a0c0821164158ed1ef2b 06-Feb-2007 Lauro Ramos Venancio <lauro.venancio@gmail.com> Fix build error.
UniqueVector.h:66: error: ‘assert’ was not declared in this scope


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33961 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
7406dcdc2981ae864a22ba34f96d1db5e3a4cf87 06-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> As Reid suggested, fixed some problems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33954 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
c04a1ce623c3229aa492281d00f445724868b861 06-Feb-2007 Chris Lattner <sabre@nondot.org> Simplify this a bit, add an assertion


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33936 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
7b13624b3220ff2a1556668a602939d4f8c9e68a 06-Feb-2007 Chris Lattner <sabre@nondot.org> Const method must use const_iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33933 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
d0f285e212c47ac71af842bb39ea5364f1e556b4 05-Feb-2007 Zhou Sheng <zhousheng00@gmail.com> Add a class APInt to represent arbitrary precision constant integral values.
It is a functional replacement for common case integer type like "unsigned",
"uint64_t", but also allows non-byte-width integer type and large integer
value types such as 3-bits, 15-bits, or more than 64-bits of precision. For
more details, see pr1043.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33913 91177308-0d34-0410-b5e6-96231b3b80d8
PInt.h
28f72279f5aaf34ba62ae00ca3b8bb94d8b91f70 04-Feb-2007 Chris Lattner <sabre@nondot.org> add a version of insert that takes the key and value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33856 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
5fcaf3ed141a3f0246e41f45077dbb7d7d0b11d3 04-Feb-2007 Chris Lattner <sabre@nondot.org> Make SmallSetVector useful


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33854 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
7235928b45e6a353f6fcca8b9a40e83ab3420fb0 04-Feb-2007 Chris Lattner <sabre@nondot.org> Various bugfixes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33848 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
337cde0d5ac8c28793b305d17c1ccfb5228eab11 04-Feb-2007 Chris Lattner <sabre@nondot.org> Convert SetVector to be a true adapter class and add SmallSetVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33846 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
5a5f6b6e38b7155200903816f22501cce4ca36a7 03-Feb-2007 Chris Lattner <sabre@nondot.org> 8 buckets is way too small to start out with. This was only for testing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33835 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
32dc7fd0aa4d87266eea5a32a25c16a99326c8d2 03-Feb-2007 Chris Lattner <sabre@nondot.org> remove a dead header


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33820 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
137d4b253384adce88bfa2a1c37695d90f0a9d6c 02-Feb-2007 Chris Lattner <sabre@nondot.org> silence annoying warning in release-asserts build


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33797 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
70a76a633ed5101dbe472404efd989f4f1b3669c 02-Feb-2007 Chris Lattner <sabre@nondot.org> add find/erase, add const iterators, fix bugs in iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33791 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
f6390f48e6324b0221d10a9c75ab625357d8a43a 02-Feb-2007 Chris Lattner <sabre@nondot.org> add iterators


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33790 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
6e94c00ab29e654125e845f3bce692a3764c1c11 01-Feb-2007 Chris Lattner <sabre@nondot.org> Add a new dense hash table implementation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33751 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
94c002a190cd2e3a52b1510bc997e53d63af0b3b 01-Feb-2007 Chris Lattner <sabre@nondot.org> rename DenseMap to IndexedMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33749 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
e3f71b4198cebee9c9f2534c39bd3e19740eee6a 01-Feb-2007 Chris Lattner <sabre@nondot.org> rename DenseMap -> IndexedMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33748 91177308-0d34-0410-b5e6-96231b3b80d8
ndexedMap.h
af3e4d4bee2519962fb1f5dabece364df522f508 31-Jan-2007 Chris Lattner <sabre@nondot.org> add missing ctor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33714 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
ea830ef21f1f863886455fabfc64ea00b172aeeb 28-Jan-2007 Chris Lattner <sabre@nondot.org> provide a definition for uintptr_t


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33592 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
b358f0254d7b6470b1ed84a97b601ef102b4e88e 27-Jan-2007 Chris Lattner <sabre@nondot.org> Make SmallSet<whatever*, N> faster by transparently implementing it with
SmallPtrSet. Some clients will need to use SmallPtrSet directly though if
they need to iterate over the set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33584 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
894d264f3ee965645656ddd6566acbe4d3a3ed55 27-Jan-2007 Chris Lattner <sabre@nondot.org> add some missing API


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33583 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
a5b4760cbd23d49b6d94bc56d85b5a499fa54802 27-Jan-2007 Chris Lattner <sabre@nondot.org> Give SmallSet a reasonable fallback if it gets large: use an std::set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33582 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
0b930852cf1a9899ae82dd6c31b43e754a77dcb0 27-Jan-2007 Chris Lattner <sabre@nondot.org> implement SmallPtrSet::erase


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33581 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
af3056c97e56106af7c3b9a5c856d1dc1d21e358 27-Jan-2007 Chris Lattner <sabre@nondot.org> Fix a limitation of SmallPtrSet. Before it would assert if the smallsize
was not a power of two. Now it rounds up to the next power of two internally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33580 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
18b69106b7a66ac6abde37d1be6d0d952796ed04 27-Jan-2007 Chris Lattner <sabre@nondot.org> add some comments on the algorithm


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33579 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
c95dc987e9e369c1c63819dbc4f76ab9b913772c 27-Jan-2007 Chris Lattner <sabre@nondot.org> Add a new SmallSet ADT specialized for pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33577 91177308-0d34-0410-b5e6-96231b3b80d8
mallPtrSet.h
bcabbfc310bfd3cd87836f7967d1d71713d91a1d 27-Jan-2007 Chris Lattner <sabre@nondot.org> simplify insert interface


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33567 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
32f3bd43dbf4082ed05478c6ef69727925ab1646 27-Jan-2007 Chris Lattner <sabre@nondot.org> clean up comment


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33566 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
ea516cce65e7c9f1c49dd2e0634d73f89bb954a4 26-Jan-2007 Chris Lattner <sabre@nondot.org> fit in 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33553 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
c9708122836670953b7f7b3a86cc263b63fe3e3e 23-Jan-2007 Chris Lattner <sabre@nondot.org> fix typo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33459 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
182907645c9c2da22dba78255f0c8541f5d9f50d 23-Jan-2007 Chris Lattner <sabre@nondot.org> make the SmallSet interface more std::set-like


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33458 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
89502f086901acf6210b711f01726863f8445469 23-Jan-2007 Chris Lattner <sabre@nondot.org> add a trivial SmallSet class, which operates on a similar principle to
SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33456 91177308-0d34-0410-b5e6-96231b3b80d8
mallSet.h
cf48cab945f1cbdf637d7d970398cbe6d89135ee 17-Jan-2007 Reid Spencer <rspencer@reidspencer.com> For PR1094:
Make the SetVector::iterator be the vector's const_iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33279 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
0a3615246fe194f64e5d4afea5943542545819fc 20-Dec-2006 Chris Lattner <sabre@nondot.org> eliminate constructor from Statistic class. It is now impossible to get a
static constructor for them :). Transition complete.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32710 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
3d3a429acb1de79eb15575ed4d90a0a951fda576 19-Dec-2006 John Criswell <criswell@uiuc.edu> Added operator methods to the Statistic class; some LLVM projects depend
on these.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32701 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
ecb27687587d04475097596c53349b631f7ef42d 19-Dec-2006 Chris Lattner <sabre@nondot.org> Refactor statistic a big and introduce a horrible-but-necessary macro
(STATISTIC), which allows us to define statistics that don't introduce
static ctors into the .o files. I'm migrating code over to use this
incrementally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32687 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
fc04e5ead38ee6dbce6996efbec9298a01416a38 18-Dec-2006 Bill Wendling <isanbard@gmail.com> Removed llvm_ostream and used std::ostream instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32658 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
5c7e326585f3a543388ba871c3425f7664cd9143 17-Dec-2006 Bill Wendling <isanbard@gmail.com> Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
975f05852d15c98540b50de7df704d67e5a794cd 08-Dec-2006 Chris Lattner <sabre@nondot.org> Change the implementation of statistic to not need destructors at all.
Instead, the stat info is printed when llvm_shutdown() is called.
These also don't need static ctors, but getting rid of them is uglier:
still investigating. This reduces the number of static dtors in llvm from
~1400 to ~750.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32372 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
e81561909d128c6e2d8033cb5465a49b2596b26a 07-Dec-2006 Bill Wendling <isanbard@gmail.com> Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
quivalenceClasses.h
cf84504d7a86808117f67264ad5cfab8f5a139bc 06-Dec-2006 Chris Lattner <sabre@nondot.org> merge the Statistic and StatisticBase classes, eliminating virtual methods
and eliminating #includes from the Statistic.h file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32282 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da 06-Dec-2006 Chris Lattner <sabre@nondot.org> Detemplatize the Statistic class. The only type it is instantiated with
is 'unsigned'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
d96662360f49f9b94d0faa7ea8dba8582bc1b364 29-Nov-2006 Bill Wendling <isanbard@gmail.com> Support for llvm_ostreams.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31988 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
quivalenceClasses.h
CCIterator.h
d5b58c239e44fe4fa2322900b26c691f5a44bd87 28-Nov-2006 Chris Lattner <sabre@nondot.org> Add a helper function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31981 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
b5ebf15b2b2ce8989caf1a1114b05d80b0f9bd48 28-Nov-2006 Bill Wendling <isanbard@gmail.com> Added a temporary hack to get the llvm-streams to work for future checkins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
d41b30def3181bce4bf87e8bde664d15663165d0 05-Nov-2006 Jeff Cohen <jeffc@jolt-lang.org> Unbreak VC++ build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
1f67a99260917d33fefc6a7d863b0cd850a34431 02-Nov-2006 Jim Laskey <jlaskey@mac.com> Allow FoldingSet clients to pump up the initial hash size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31377 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
09b6ac92d855fc0224562bdc06349f986a31926b 30-Oct-2006 Chris Lattner <sabre@nondot.org> add a new form of insert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31290 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
dd94c8d6b2afb9c33c364ac8f0c8f8ed5d4c04a0 30-Oct-2006 Chris Lattner <sabre@nondot.org> Add SmallString a (currently) minimal class that adapts SmallVector to be
more string-like.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31289 91177308-0d34-0410-b5e6-96231b3b80d8
mallString.h
mallVector.h
6c1645ce7da8495c79e3d38bbf91ce77bf489c10 30-Oct-2006 Chris Lattner <sabre@nondot.org> add a method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31288 91177308-0d34-0410-b5e6-96231b3b80d8
StringMap.h
tringMap.h
463c4a1ae9af56b6a944b74f0898e17d9a3b52eb 30-Oct-2006 Chris Lattner <sabre@nondot.org> add newline at end of file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31287 91177308-0d34-0410-b5e6-96231b3b80d8
StringMap.h
tringMap.h
23d7b3611759c7fb3a853dfce3ee3d43ef5ca67d 30-Oct-2006 Chris Lattner <sabre@nondot.org> add a highly efficient hash table that is specialized for mapping C strings
to some other type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31286 91177308-0d34-0410-b5e6-96231b3b80d8
StringMap.h
tringMap.h
2f6d4c9766e920602326cfe26f5985077156d890 28-Oct-2006 Jim Laskey <jlaskey@mac.com> Clean up


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31238 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
18529f35151f18345519e38496ac72350ee15f38 27-Oct-2006 Jim Laskey <jlaskey@mac.com> Apply editorials.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31218 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
0e5af195f6c54dbf5a24a1ec12ed2d0bd02f5b7f 27-Oct-2006 Jim Laskey <jlaskey@mac.com> Breakout folding hash set from SelectionDAGCSEMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31215 91177308-0d34-0410-b5e6-96231b3b80d8
oldingSet.h
f2bdcb31877bf5e79903316c49b6a29376f03919 09-Oct-2006 Andrew Lenharth <andrewl@lenharth.org> Fix build error in gcc 3.4 and make more this general


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30839 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
53b06db6c7d45963be4a0e847a77447c93c1e045 09-Oct-2006 Chris Lattner <sabre@nondot.org> Fix PR897


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30820 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
0750bec272350cbbf23aa4d43a46785324ee212e 01-Sep-2006 Chris Lattner <sabre@nondot.org> add a simple reserve method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30011 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
52c917190a8094b4e5f6cc0b30e373638268f3a4 30-Aug-2006 Chris Lattner <sabre@nondot.org> Instantiate Statistic<> in one place, not in every .o file that uses it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29971 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
181c359c9d29be884ca1fd33c0469b1b567bd33c 28-Aug-2006 Chris Lattner <sabre@nondot.org> Add 2nd form of resize


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29945 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
57b79795b37b367d69d58ad10f25e997b4f55ce9 22-Aug-2006 Chris Lattner <sabre@nondot.org> add resize, move swap out of line


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29823 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
d6007d607641b6dae3511b8ebc1d752ff327aed0 22-Aug-2006 Chris Lattner <sabre@nondot.org> add a bunch more operations, including swap, insert, erase, front(), and
bugfixes for operator=.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29811 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
67b7ff9ede110999f3a37f22c24bdf00a405a78a 17-Aug-2006 Chris Lattner <sabre@nondot.org> silence a warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29734 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
2e6baf626d2096eade89e5305bc09e369a761516 16-Aug-2006 Chris Lattner <sabre@nondot.org> Bugfixes for smallvector when the element size is small and N is small.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29720 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
b5677f933f918acd8b8525635510d22dfb26285e 14-Aug-2006 Chris Lattner <sabre@nondot.org> avoid a warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29674 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
1653366010ce0c69fdb0fac7c08cc7ca5668bd84 12-Aug-2006 Chris Lattner <sabre@nondot.org> move code out of line so that GCC doesn't inline it at -O3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29636 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
80b65823147ba498efd9a5df72afc7ff7d9dc0d9 12-Aug-2006 Chris Lattner <sabre@nondot.org> Split SmallVector into SmallVector and SmallVectorImpl, which allows us to
eliminate code duplication due to the 'N' parameter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29634 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
8e10f5b8113a5080fc916d1123377292ef2f6012 08-Aug-2006 Chris Lattner <sabre@nondot.org> capacity is a pointer, not a value


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29564 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
1c567b5d92c4babe33d606aa2c2643655fd3a136 08-Aug-2006 Chris Lattner <sabre@nondot.org> add a new assign method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29562 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
8de353df9da7e5931688075c85d01e3153c73185 08-Aug-2006 Chris Lattner <sabre@nondot.org> Add ctor that initializes from a range.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29560 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
d0337c167852fe313e09e20f5ef0819e3555b04d 08-Aug-2006 Chris Lattner <sabre@nondot.org> Remove assertions from the SmallVector class. They slow down clients of
smallvector too much in a release build. Removing them speeds up isel 4%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29556 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
f5e42bfed1726607506b6502166016cb2e41fe32 07-Aug-2006 Chris Lattner <sabre@nondot.org> Add a clear method to SmallVector


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29542 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
cfb3ba060acb3af49dfa0f59070ff43f16df6e6b 06-Aug-2006 Chris Lattner <sabre@nondot.org> Silence a warning on x86-64, reported by chandlerc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29535 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
e6ffe61c8455e4b343584c5fab88eb5774916356 05-Aug-2006 Evan Cheng <evan.cheng@apple.com> This causes some random crashes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29534 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
d91e5f911f5fc840725771d3b27211b9748659e3 28-Jul-2006 Chris Lattner <sabre@nondot.org> The smallvector dtor should destroy the elements.
Implement pop_back.
Chage some code to use 'iterator' instead of T*. This unbreaks operators=.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29380 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
825405c0c1b92c69cea283f97ee829ea3f23e3a4 27-Jul-2006 Chris Lattner <sabre@nondot.org> Use std::copy instead of custom loops to take advantage of STL optimizations.
Add a new append method for appending a range.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29323 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
f28265402130eb03762d9a6333fd8f87765a8875 26-Jul-2006 Chris Lattner <sabre@nondot.org> Add a new llvm::SmallVector template, which is similar to the vector class, but
contains optimizations to avoid heap allocation if the vector size is smaller
than some threshold. This can significantly improve the performance of code
that allocates many small vectors by eliminating tons of small malloc/free's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29281 91177308-0d34-0410-b5e6-96231b3b80d8
mallVector.h
1e36126f5e8344d0df2fcf8640919cc85ff88693 15-Jul-2006 Chris Lattner <sabre@nondot.org> Add two helper functions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29150 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
70aa33ee37fede7fb84de02daa38557ffd366458 21-Jun-2006 Chris Lattner <sabre@nondot.org> Add some out-of-line virtual dtors so that the class has a "home", preventing
vtables for (e.g.) Instruction from being emitted into every .o file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28898 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
79818a40d73a1ca6154f0823d599c3208956d5e7 01-Jun-2006 Reid Spencer <rspencer@reidspencer.com> Favor C++ casts over C casts in C++ code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28622 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
6fb568f77e6766871ad07b3b206571e96b56dfb5 31-May-2006 Chris Lattner <sabre@nondot.org> Fix utostr once and for all, by making there only be one function named
utostr. To keep the efficiency in the 32-bit case, make it check to see if
the value is 32-bits and if so switch over to the faster 32-bit case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28601 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
37e8bde1415e16cf0950feb82460b5d7728e4676 31-May-2006 Andrew Lenharth <andrewl@lenharth.org> Fix build breakage on alpha, without causing it on x86. as a bonus, all platforms can invent the same number of unique names now


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28596 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
f48ec61fbd9c823c103ff8a5d035dd89c7cecb8a 31-May-2006 Andrew Lenharth <andrewl@lenharth.org> revert for now


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28595 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
cffba3a6e934fb80008e1a18d8abef29ef137437 31-May-2006 Andrew Lenharth <andrewl@lenharth.org> make 64-bit safe and fix the build on alpha


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28593 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
19b7e0e0cabfa6dfc559c64e3d6ed053832c4047 24-May-2006 Reid Spencer <rspencer@reidspencer.com> For PR786:
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28453 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
410354fe0c052141dadeca939395743f8dd58e38 22-Feb-2006 Chris Lattner <sabre@nondot.org> Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.

Patch by Martin Partel!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26313 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
ostOrderIterator.h
ectorExtras.h
8211e82e40b8f6c0e200933f25aa4d9fe2cf4edc 26-Jan-2006 Chris Lattner <sabre@nondot.org> add some methods for case-insensitive string compares


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25659 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
3e0be526bfaafeb68b8ce38aa50b1b0f1598fc03 26-Jan-2006 Jim Laskey <jlaskey@mac.com> Use find instead of lower_bounds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25657 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
e4a359e43b7af7db24482f1da3303c0bb7c9f425 26-Jan-2006 Jim Laskey <jlaskey@mac.com> Add support to find existing entries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25654 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
1dc3fd11101903fbcbdc3d69cf92d5db59389ff1 23-Jan-2006 Chris Lattner <sabre@nondot.org> This only needs <iosfwd> not <iostream>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25517 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
7715fba9b14ff1b22459e33b19a4db734e72d5f2 17-Jan-2006 Evan Cheng <evan.cheng@apple.com> Suppress "no newline at end of file" warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25400 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
e3150024b46c528f1dd11d12a667d207d2da54ab 17-Jan-2006 Jim Laskey <jlaskey@mac.com> Reduce memory consumption and force (somewhat) access to entries via ID.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25393 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
67218e9f276a22ee284c9206af85f2f1ae9e9094 17-Jan-2006 Jim Laskey <jlaskey@mac.com> Redundant inline keyword.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25377 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
54c33190224bc0746aa9d625ec27ebb205fffcfd 17-Jan-2006 Jim Laskey <jlaskey@mac.com> UniqueVector template provides a means of enumerating objects uniquely.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25376 91177308-0d34-0410-b5e6-96231b3b80d8
niqueVector.h
8b6cea1b9595c1ddbb07dbbe8a8af781d78cd51d 07-Dec-2005 Chris Lattner <sabre@nondot.org> Remove a now-dead map, patch by Saem Ghani, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24629 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
767a033a5cc6a8003d72a7a243cb60d9bae674d3 06-Dec-2005 Chris Lattner <sabre@nondot.org> Implement external storage for post-order iteration, implementing PR267
Patch by Saem Ghani, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24617 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
61b42eb928dd4f042ed4444c0a5497d6ef7d527d 26-Oct-2005 Jeff Cohen <jeffc@jolt-lang.org> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24004 91177308-0d34-0410-b5e6-96231b3b80d8
ash_set.in
8030c258827a44c676cef7d31f53a8cd3b285063 26-Oct-2005 Jeff Cohen <jeffc@jolt-lang.org> Eliminate use of sed in Visual Studio builds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24003 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
ash_set.in
terator.in
9e7a601eaf8de846cee7ada9218346acf6bb864d 24-Aug-2005 Misha Brukman <brukman+llvm@gmail.com> Wrap long lines


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23009 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
ca09bd0732e64461acd2d92c356a3237ab9de7d1 24-Aug-2005 Reid Spencer <rspencer@reidspencer.com> Remove some tabs.
Wrap a line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23008 91177308-0d34-0410-b5e6-96231b3b80d8
ash_set.in
ef35ba4f646457728a57f73f93e816b77bd9c8a7 23-Aug-2005 Chris Lattner <sabre@nondot.org> add a method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22985 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
cb647519d34184fe41aa7e072076ae70634bc3d7 15-Jun-2005 Nate Begeman <natebegeman@mac.com> Add some operators the PowerPC backend needs to efficiently and correctly
generate conditional branches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22214 91177308-0d34-0410-b5e6-96231b3b80d8
list
e25bc8c9571ed49c0a2d6b647a56679623f325a5 06-May-2005 Misha Brukman <brukman+llvm@gmail.com> Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21703 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
3b1b6e626e42eb22869a28b02a463de5597f9822 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21436 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
9769ab22265b313171d201b5928688524a01bd87 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
epthFirstIterator.h
quivalenceClasses.h
raphTraits.h
ashExtras.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etOperations.h
etVector.h
tatistic.h
tringExtras.h
ree.h
ectorExtras.h
24a751eccda668e15cca2a84772d504b47c40378 21-Mar-2005 Chris Lattner <sabre@nondot.org> Provide a guaranteed definition of intptr_t. Thansk to Evan Jones for
pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20721 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
37884fc79e9a55e92ec26574c710c8d3609aa839 20-Mar-2005 Misha Brukman <brukman+llvm@gmail.com> Constant-propagate the value of `isL' variable and eliminate it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20698 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
2413a68d2db9f4abc813775ff5c43e25b73dd8cc 19-Mar-2005 Jeff Cohen <jeffc@jolt-lang.org> Silence VC++ warning about mixing intptr_t and bool, and about unused variable isL.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20697 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
1f377fefb745002a7aacb1ec87a4beb7bd87856e 19-Mar-2005 Chris Lattner <sabre@nondot.org> Two fixes for the copy ctor/operator=:
1. Make sure to clear() 'this' before adding elements to it
2. Make sure that the leaders of the RHS EC are the leaders of the LHS EC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20692 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
67823970461ba101fbb3704b016182e19bc5e2df 19-Mar-2005 Chris Lattner <sabre@nondot.org> add some methods, fix a major bug in getLeader() that was causing things to
not be unified correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20691 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
4a6d9cf122fa2cd83669f1a284c86949852f0ac3 19-Mar-2005 Chris Lattner <sabre@nondot.org> implement a proper copy ctor, operator= and add a helper method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20690 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
72af57f26c27176f3ed4858e59eb4017f819afe1 19-Mar-2005 Chris Lattner <sabre@nondot.org> Rewrite this class, making the following improvements:

1. It now actually uses tarjan's algorithm, so it is a efficient inverse
ackerman's function for union operations, not linear time.
2. It now stores one copy of the data in the set instead of two.
3. It now works for elements other than pointers.
4. It now has a more STL-like interface that exposes iterators instead
of internal implementation details.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20677 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
986d99a6f832f9e4dd3ef67766c23aaaab1da2ba 16-Mar-2005 Chris Lattner <sabre@nondot.org> remove compat_iterator, which is dead in the tree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20644 91177308-0d34-0410-b5e6-96231b3b80d8
list
4d1b4458fe58298a397631f37532d2fd4f451bd4 16-Mar-2005 Jeff Cohen <jeffc@jolt-lang.org> Don't provide default hash struct instantiation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20639 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
1467e7ae92ebb0c2430d593138967715258dc351 16-Mar-2005 Jeff Cohen <jeffc@jolt-lang.org> Add adapter class to let VC++ hash_map use GCC's hash struct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20637 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
6c2997f5b90449b00387d0635ce9acf0874b8383 23-Feb-2005 Chris Lattner <sabre@nondot.org> remove some more dead templates and a dead macro.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20279 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
127a8a7764d417405aa0d16c244c48a517eb70ae 23-Feb-2005 Chris Lattner <sabre@nondot.org> Remove a bunch of dead templates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20275 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
bca81448ac8e19c588c9a4ad16fc70732b76327c 30-Jan-2005 Chris Lattner <sabre@nondot.org> Improve conformance with the Misha spelling benchmark suite


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19930 91177308-0d34-0410-b5e6-96231b3b80d8
list
ed4d467c690b549f2cc9721abcc0dbb07291678f 29-Jan-2005 Chris Lattner <sabre@nondot.org> Rename createNode -> createSentinal.

Add a new method, destroySentinal, that is used to delete it (instead of
requiring use of delete.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19921 91177308-0d34-0410-b5e6-96231b3b80d8
list
be4922a28a270237d684112b3ab1a16705eb90f2 28-Jan-2005 Reid Spencer <rspencer@reidspencer.com> Convert some old C-style casts to C++ style.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19868 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
8085cff7ebbee3efd932b8f27f67187a4ba707e1 16-Jan-2005 Reid Spencer <rspencer@reidspencer.com> Provide support for HP/UX aCC compiler's variant of hash_map and hash_set
(RogueWave). These are implemented in rw/stdex/hash_map.h and
rw/stdex/hash_set.h on HP/UX.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19600 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
ash_set.in
67cb2f6eb5e515c25bf559bb3d5ef6fea05fd8b6 04-Jan-2005 Chris Lattner <sabre@nondot.org> Do not let 'ftostr' return a string that starts with spaces. This allows
the AsmWriter to emit FP constants like 1.0 in normal exponential notation
instead of hex notation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19279 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
d828e340a80f268a6e51d451a75fb6c2282e17b1 08-Dec-2004 Chris Lattner <sabre@nondot.org> Define the pointer hash struct before the string one, to improve compatibility
with ICC. Patch contributed by Bjørn Wennberg.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18663 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
7fc3824835da71426dbba32c315f32bac97ec1dc 21-Nov-2004 Chris Lattner <sabre@nondot.org> ignore generated files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18073 91177308-0d34-0410-b5e6-96231b3b80d8
cvsignore
fbb719c7f026525d54a8332ef66c7514a0cf2383 13-Oct-2004 Chris Lattner <sabre@nondot.org> Use explicit std:: qualification to avoid relying on Koenig lookup, which
VC++ does not do properly. Thanks to Morten Ofstad for the patch!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16955 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
c87b1db927226400e6ee4e1eeb050a6b24c34a96 13-Oct-2004 Chris Lattner <sabre@nondot.org> Get rid of template templates that were preventing VC from compiling the
set_intersect template. Thanks to Morten Ofstad and Jeff Cohen for the
patch!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16954 91177308-0d34-0410-b5e6-96231b3b80d8
etOperations.h
c441f1e1c74853721b2f513c3597c391bd11ccc2 04-Oct-2004 Chris Lattner <sabre@nondot.org> Fix #include flavor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16658 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
ash_set.in
list
30eed211c99246392edf49c1bc6e9fb2a8f7a0f6 30-Sep-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Remove whitespace from the end of the line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16624 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
c72c617a4ea3784c9a9f634478dc405ef6b2866b 28-Sep-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add includes and use std:: for standard library calls to make code
compile on windows. This patch was contributed by Paolo Invernizzi.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16539 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
4046846d2cb36a6281b853c73776584063cca19d 24-Sep-2004 John Criswell <criswell@uiuc.edu> Updated the last two header files so that they are configured with
AC_CONFIG_HEADERS. This should prevent LLVM from needlessly re-compiling
on a re-configure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16510 91177308-0d34-0410-b5e6-96231b3b80d8
terator.in
9f011866e90928b9b798692a9cf0180e8f327540 24-Sep-2004 John Criswell <criswell@uiuc.edu> Modified hash_map and hash_set configuration so that they are not
regenerated on every run of configure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16509 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
ash_set.in
70e2d38361b675ed8c3d874d091636c470795550 11-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Fix the replace method to assert if an item was erased from the set but not
found in the vector. Previously, it just ignored this condition.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16296 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
0bdc620c16963908d74db498f79676e558f09e82 11-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Implement the remove method for deleting entries from the SetVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16283 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
8018a665b2fa8250f12e079b19459c662cdd27f0 09-Sep-2004 Chris Lattner <sabre@nondot.org> Add missing #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16256 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
df8d5e908fe83dafe98a05086956e7b0943af1e0 02-Sep-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Pull in definition of std::unary_function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16140 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
551ccae044b0ff658fe629dd67edd5ffe75d10e8 02-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
enseMap.h
epthFirstIterator.h
quivalenceClasses.h
raphTraits.h
ashExtras.h
ndexedMap.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etOperations.h
etVector.h
tatistic.h
tringExtras.h
ree.h
ectorExtras.h
ash_map.in
ash_set.in
list
terator.in
fc093bd0810b6e726c02c2430f77618fd7255541 27-Aug-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add size member function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16067 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
5501e568b396f3e58f3d642e77139c790eda9df9 26-Aug-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add default index functor (an identity functor). You could use a
vector directly to get the same functionality but using a DenseMap
makes the code more readable IMO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16052 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
8831db745bb0c3ed7939df475f924f53f43254a2 19-Aug-2004 Misha Brukman <brukman+llvm@gmail.com> Instead of int64_t, overload itostr with `long long' parameter.
This appeases both SparcV9 and 64-bit PowerPC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15910 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
b5e1decefbc294008449f3b414290ab63e713ed5 17-Aug-2004 Misha Brukman <brukman+llvm@gmail.com> Add itostr(long) for our furry 64-bit friends.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15885 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
3638e9918c632ab517066d79790601d25de568c9 29-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Fix typo in comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15318 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
f90fcaf5729f2987c9f4e91ca4e6ee4397ba0a8d 25-Jul-2004 Chris Lattner <sabre@nondot.org> Add back() and pop_back() methods to SetVector
Move clear to the end of the class
Add assertions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15203 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
7b32639362c4cbb438d71492897d9f84c89d9e57 21-Jul-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add greater_ptr functor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15070 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
c5f9d8c63097d21147ff13b1395a0590b6b38e25 20-Jul-2004 Misha Brukman <brukman+llvm@gmail.com> Use C++-style <cstdio> instead of C-style <stdio.h>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15042 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
913e1b4bddb9674a3c03e6726579217ede134775 20-Jul-2004 Misha Brukman <brukman+llvm@gmail.com> Dump the old-fashioned C-style <ctype.h> in favor of new `C++'-style <cctype>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15025 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
497b52f38125adb82de547abfc4c89c2b1e1f628 20-Jul-2004 Misha Brukman <brukman+llvm@gmail.com> isupper() and tolower() are declared in <ctype.h>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15016 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
5e8775425063e7067dde18e893977bb9cef0558e 15-Jul-2004 Chris Lattner <sabre@nondot.org> Give SetVector range support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14855 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
85e4eb6dc039928630c89627ee728764282a129d 12-Jul-2004 Chris Lattner <sabre@nondot.org> Fix warning compiling with VC++


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14772 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
800473c8df8f0c9b566c9216bf124495451cb573 08-Jul-2004 Reid Spencer <rspencer@reidspencer.com> Get rid of some cruft in the insert method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14704 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
4bb2867bc1faa2eedafc39b37bbf481ff4dcb725 08-Jul-2004 Reid Spencer <rspencer@reidspencer.com> First version of a vector with uniqueness constraints (or a set with
deterministic, insertion-order iteration).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14702 91177308-0d34-0410-b5e6-96231b3b80d8
etVector.h
3b94a5142c1029a1a50e659c45fdb0627ede7a82 04-Jul-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add more operators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14589 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
990a6a39c0f2899ace6e913d536db5abc030c5cc 25-Jun-2004 Chris Lattner <sabre@nondot.org> Unbreak the build. tsk tsk


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14390 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
64aed54684b205c47fda075918150d14ba4193bc 25-Jun-2004 Misha Brukman <brukman+llvm@gmail.com> Add a LowercaseString() utility function, courtesy of brg.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14383 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
63d64a80bcdab8481f5ea8127a637cb7fd1f1b0d 04-Jun-2004 Chris Lattner <sabre@nondot.org> GCC doesn't like prefix form of cast with two identifiers I guess.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14021 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
c285da73a4df1ad74dfc842ab871f7e14398d5ac 04-Jun-2004 Chris Lattner <sabre@nondot.org> Silence a warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14019 91177308-0d34-0410-b5e6-96231b3b80d8
list
2908ca78b0ec8f38cde679a7af12068a32fd84d1 04-Jun-2004 Chris Lattner <sabre@nondot.org> Add explicit casts to silence warnings. There is no need to use snprintf here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14013 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
6bf7ca5f6f1c26bf8fb579ba456dae7c6e6f7e3a 03-Jun-2004 Chris Lattner <sabre@nondot.org> Only use the non-standards-compliant std::distance on the compiler that is
buggy, not for all compilers that are not GCC 3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13990 91177308-0d34-0410-b5e6-96231b3b80d8
list
1da7e8e0b3cfc1d3c399da4cdd7dc5c087c9f0d3 30-May-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add comparator useful for natural comparisons on collections with
pointers to objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13909 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
6ffd14dd54b0b1a63f7cc9726a18bdaa6d8008d0 23-May-2004 Vikram S. Adve <vadve@cs.uiuc.edu> Remember the set of leaders. Also compute on demand and cache the equiv
class for each leader. Finally, rename Elem2ECLeaderMap to Elem2LeaderMap
(most of the changed lines are only due to the latter).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13651 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
afa9235f07ea5e6067e47f63c6a64fdfbb9e5823 21-Apr-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Declare iterator as public since it is defined as such (gcc-3.4 fix)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13090 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
f9a5f780bf2ee162468749329c21e51685db649e 16-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Switch to including <iostream> for compatibility with gcc-3.0.x (Debian).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12990 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
7c78afefe96669cc3eb886308291213415d9d7b0 26-Feb-2004 Chris Lattner <sabre@nondot.org> Fix a bug in the densemap that was killing the local allocator, and probably
other clients. The problem is that the nullVal member was left to the default
constructor to initialize, which for int's does nothing (ie, leaves it unspecified).

To get a zero value, we must use T(). It's C++ wonderful? :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11867 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
00fa65be8344944b080cd790678e027e10942ffd 26-Feb-2004 Chris Lattner <sabre@nondot.org> Fix typeo. grow() cannot shrink storage. clear() should really nuke storage


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11865 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
4d0d864be3d9a698c4edfe36961a22126f041298 25-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add DenseMap template and actually use it for for mapping virtual regs
to objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
enseMap.h
ndexedMap.h
c50879dfe600c199fef2038cd13fef86db73a771 24-Feb-2004 Chris Lattner <sabre@nondot.org> Noone cares about similarity to boost


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11783 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
cbc20b451d3a3980351c388652ea39314dd09a23 23-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Renamed to hash_set.in; move to using autoconf substitution tags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11765 91177308-0d34-0410-b5e6-96231b3b80d8
ash_set.in
6cd52446fae6cde1bac52c9753011e00fd2d5292 23-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Renamed to hash_map.in; move to using autoconf substitution tags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11764 91177308-0d34-0410-b5e6-96231b3b80d8
ash_map.in
c134395628c82d176d249958a6660c06143558f7 23-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Renamed from include/Support/iterator. Doxygenify comments; add autoconf substitution tags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11754 91177308-0d34-0410-b5e6-96231b3b80d8
terator.in
bc79471be19e412eed4d270908db7ac945be10ca 14-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add next() and prior() iterator utility functions. Unlike std::advance
they do not modify the passed iterator but return a copy.

next(myIt) returns copy of myIt incremented once
next(myIt, n) returns copy of myIt incremented n times
prior(myIt) returns copy of myIt decremented once
prior(myIt, n) returns copy of myIt decremented n times

While at it remove obsolete implementation of mapped_iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11429 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
a0031cc08c73717341e53c9d5c6c9daa4fcdf5f7 13-Feb-2004 Brian Gaeke <gaeke@uiuc.edu> Update the example here in the header file.

I don't know about you guys, but I rarely read the .html manuals :-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11366 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
71be6db3efd233ae7eafe3e23ad9d9ac70bf0706 09-Feb-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Add global methods that prevent us from using ilist::iterators as
random access iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11248 91177308-0d34-0410-b5e6-96231b3b80d8
list
2cca3008e86aa5448a629c744064daecb531bf94 08-Feb-2004 Chris Lattner <sabre@nondot.org> One of the 'annoying' things about ilists is that the iterators don't behave
quite the same as for non-intrusive lists of pointers to nodes. To support
transitioning code bases, add a new 'compatibility' iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11172 91177308-0d34-0410-b5e6-96231b3b80d8
list
d924edb845101f89744344aee66bbf9f2e89c3c6 15-Jan-2004 Chris Lattner <sabre@nondot.org> add support for -- for symmetry


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10865 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
9fc8a3ec2e7dfe0cdbeca72b8b2742f1e4ac1b42 29-Dec-2003 Chris Lattner <sabre@nondot.org> add new function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10638 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
d2aa7b8ee7fb751c42a6f89096043e1ac24c49f2 29-Nov-2003 Chris Lattner <sabre@nondot.org> Hrm, how could this compile?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10263 91177308-0d34-0410-b5e6-96231b3b80d8
ree.h
9bb2188b0e196d2724e128152ef4d4b581adf3bc 23-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> A better way to get std::pair into the compiler's little, walnut-sized brain.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10174 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
6de98f242a6e7103de3f880c31f7e6b4e3650da8 23-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> This is a hack to make this file compile under g++-3.0.x;
otherwise it can't decide what std::pair is. It seemed relatively
harmless.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10173 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
825b02d5ee74031ca8f872a761a79b137225f818 17-Nov-2003 Chris Lattner <sabre@nondot.org> Fix copy-and-pasteo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10049 91177308-0d34-0410-b5e6-96231b3b80d8
list
8b70b78ba489b090d9866e6a4084ab1e8613b527 16-Nov-2003 Chris Lattner <sabre@nondot.org> Fixes for PR114: Thanks to Reid Spencer!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10029 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
tringExtras.h
a3f5f80f2bfdd966bbacf0d036f2350bf9051b12 13-Nov-2003 Chris Lattner <sabre@nondot.org> Remove needless dependence on boost


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9961 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
de0579d94640fa4f32aaa618e954f9504db6da4d 13-Nov-2003 Chris Lattner <sabre@nondot.org> Add namespace qualifier


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9959 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
2d3e1ee93cd1d3423897ef9cd4faf26864730d0b 13-Nov-2003 Chris Lattner <sabre@nondot.org> Minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9958 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
epthFirstIterator.h
quivalenceClasses.h
raphTraits.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etOperations.h
tatistic.h
tringExtras.h
ree.h
ectorExtras.h
list
e292da29bfeb2faad71a568e9cbb706affd5f330 05-Nov-2003 Alkis Evlogimenos <alkis@evlogimenos.com> Add std::pair tier. This is a much simplified version of boost::tie
that works only for std::pair.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9723 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
0b64ca3cbde361729f357dfc230a1d9dce1717dc 30-Oct-2003 Brian Gaeke <gaeke@uiuc.edu> Apparently my Mac OS X fixes were not entirely compatible with SPARC...hmm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9612 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
78e1dcc32124e123f41ca60c88d796244cf2c174 29-Oct-2003 Brian Gaeke <gaeke@uiuc.edu> Add support for utostr(unsigned long)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9588 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
60f1445cf26f769ff88383e3bfd771e4ac3cb5c0 20-Oct-2003 Chris Lattner <sabre@nondot.org> This #include is no longer necessary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9306 91177308-0d34-0410-b5e6-96231b3b80d8
list
b2109ce97881269a610fa4afbcbca350e975174d 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM notice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9300 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
epthFirstIterator.h
quivalenceClasses.h
raphTraits.h
ashExtras.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etOperations.h
tatistic.h
tringExtras.h
ree.h
ectorExtras.h
list
803f03e217ec25cf71b2b6dea65da2e377527b6b 15-Oct-2003 Chris Lattner <sabre@nondot.org> This file uses assert and doesn't include anything which already #includes <cassert>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9142 91177308-0d34-0410-b5e6-96231b3b80d8
list
1e79609e304a24e0cad68534ddf3371479d33b86 13-Oct-2003 Chris Lattner <sabre@nondot.org> Add missing default argument


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9092 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
9061e992d5ee0c59c89ae7812c551bafd680a59c 13-Oct-2003 Chris Lattner <sabre@nondot.org> add support for "external" depth first iterators, which store the 'visited' set
outside of the iterator itself.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9090 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
4846f4b87a31797ba0bc6c96862a1128acf16149 13-Oct-2003 Chris Lattner <sabre@nondot.org> Extricate the "reverse" support from the depth-first iterator. This is really
a crappy form of post-order traversal which really does not belong here. While
we are at it, improve documentation and use a vector instead of a stack.

This improves the post dominator analysis pass by ~5%, and probably also helps
other passes as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9084 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
27db7e0472f22c9605deac34f919d284041e93a4 05-Oct-2003 Chris Lattner <sabre@nondot.org> Output a very high-precision number


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8856 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
48486893f46d2e12e926682a3ecb908716bc66c4 30-Sep-2003 Chris Lattner <sabre@nondot.org> Standardize header file comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
epthFirstIterator.h
quivalenceClasses.h
raphTraits.h
ashExtras.h
ostOrderIterator.h
TLExtras.h
etOperations.h
tringExtras.h
ree.h
list
55b2eb3ef828819a623444ce966e70ad86ad6da4 31-Aug-2003 Chris Lattner <sabre@nondot.org> Rename TarjanSCCIterator -> scc_iterator
* Increases consistency with other iterators (e.g. df_iterator, po_iterator...)
* It's shorter
* We don't name classes by the implementation, we name it for the interface!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8273 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
ff8fc078906da46b00aa102d724590b1b96e5526 31-Aug-2003 Chris Lattner <sabre@nondot.org> ELIMINATE the SCC class completely. One less thing deriving from std::vector


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8272 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
94d1092c6a385ff077fb28773d9ba3ad15cb9a8d 31-Aug-2003 Chris Lattner <sabre@nondot.org> Move the HasLoop method from the SCC class to the iterator class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8268 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
b55cae23cb9bd6661093e8c2822be4fd721587e1 31-Aug-2003 Chris Lattner <sabre@nondot.org> * Cleanups
* operator* now returns a reference to the current SCC, instead of a possibly
null pointer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8261 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
22ab2a16e5477d96d579c04a9798a6cddd277434 31-Aug-2003 Chris Lattner <sabre@nondot.org> Remove usage of unsigned long: unsigned should be enough!
Remove explicit use of a stack<>, use a vector instead


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8246 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
ca82e6c3d17461e45b90ae5a7ceee852edd140c8 31-Aug-2003 Chris Lattner <sabre@nondot.org> This file uses cerr without including <iostream>. Since it's just for debugging, comment it out


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8245 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
40c6fb6cac80367c2bec32295d4448e540f2d253 29-Aug-2003 Chris Lattner <sabre@nondot.org> Fix compilation problems with G++ 3.4


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8212 91177308-0d34-0410-b5e6-96231b3b80d8
list
5560c9d49ccae132cabf1155f18aa0480dce3eda 18-Aug-2003 Misha Brukman <brukman+llvm@gmail.com> Spell `necessary' correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
53523e57bf363792e4b1d3b5002a7fe349061364 15-Aug-2003 Misha Brukman <brukman+llvm@gmail.com> Reordered includes to be consistent with the LLVM style.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7887 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
2dd93edfc221fe6d1e102cca694da01ca36b5d11 02-Aug-2003 Chris Lattner <sabre@nondot.org> Move debugging support out of Statistic.h into Debug.h, implement the new DEBUG_TYPE facilities


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7490 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
aeac00ed535feacf863f31184b47a9d95820c5fc 02-Aug-2003 Chris Lattner <sabre@nondot.org> Including statistics into an anonymous namespace that gets #included into
every file is a bad idea.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7489 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
02a31a5af68aaca1b54c7121f04cb56828ccefc2 25-Jul-2003 Chris Lattner <sabre@nondot.org> Fix another accessibility problem illuminated by GCC 3.3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7314 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
d091d85c15d56adca38f3522ff4ac0997141e326 25-Jul-2003 Chris Lattner <sabre@nondot.org> Fix visibility problem exposed by GCC 3.3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7313 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
32862da7c7107d792d25a885f9bd2d0402ae7126 25-Jul-2003 Chris Lattner <sabre@nondot.org> Fix accessibility problems GCC 3.3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7306 91177308-0d34-0410-b5e6-96231b3b80d8
list
7a73b80b9052136c8cd2234eb3433a07df7cf38e 30-Jun-2003 John Criswell <criswell@uiuc.edu> Merged in autoconf branch. This provides configuration via the autoconf
system.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
CCIterator.h
ree.h
list
680a7c2d1a60880c9ba4b123fb721a6c6fe8b016 22-Jun-2003 Chris Lattner <sabre@nondot.org> Get rid of WORDSIZE macro which can pollute untold numbers of translation units


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6843 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
3889a2cb05c36f30050941679d5fd55d45e6a3ed 22-Jun-2003 Chris Lattner <sabre@nondot.org> Remove a ton of extraneous #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
ree.h
a9f6e4ae0eaea69949755807b7207177f256eace 17-Jun-2003 Brian Gaeke <gaeke@uiuc.edu> Regularize the names of #include-guards.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6732 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
epthFirstIterator.h
quivalenceClasses.h
raphTraits.h
ashExtras.h
ostOrderIterator.h
CCIterator.h
TLExtras.h
etOperations.h
tringExtras.h
ree.h
list
be583b914d8156b99d3da264d5adca37fee8dbc9 11-Jun-2003 John Criswell <criswell@uiuc.edu> Included assert.h so that the code compiles under newer versions of GCC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
CCIterator.h
ree.h
a3e5764984731543b207a2eb898c5136e103b118 04-Jun-2003 Sumant Kowshik <kowshik@uiuc.edu> Made changes suggested by Chris; Renamed 'union' function to unionSetsWith


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6605 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
87a991eea38197c9e5abc763d83321799649b25b 30-May-2003 Sumant Kowshik <kowshik@uiuc.edu> Implementation of Equivalence Classes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6422 91177308-0d34-0410-b5e6-96231b3b80d8
quivalenceClasses.h
011ce8d2e401855877803fb6d972a6f6c22242a5 23-Apr-2003 Chris Lattner <sabre@nondot.org> Allow autoconversion from ilist_iterator<T> to T* in a dyn_cast and friends


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5862 91177308-0d34-0410-b5e6-96231b3b80d8
list
6f2ec7f59daa76df2bd98c4dda3d46cd20c66d37 21-Mar-2003 Chris Lattner <sabre@nondot.org> Update comment


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5752 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
8fb1fe16b7b8bf367d8dc76dc3fd7c3373d31329 17-Mar-2003 Chris Lattner <sabre@nondot.org> Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5745 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
fd373cb944edef806f850cc0a4f91d55ae7c8dba 28-Jan-2003 Chris Lattner <sabre@nondot.org> Initial checking: defult the make_vector function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5424 91177308-0d34-0410-b5e6-96231b3b80d8
ectorExtras.h
1818275956b339de89ac57d90d37a88c3566048e 06-Dec-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Bug fix in operator==() and in method fini().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4945 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
0e2cf7606d3276c07b26ff2329c18bc739fddbde 27-Nov-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Several fixes:
(1) Applied patch from Casey to implement iterator::operator= correctly:
it should use a pointer, not a reference.
(2) Added operators == and !=, and method all().
(3) Important bug fix: excess bits need to be ignored in operations
like ==, count(), and all(). We do this by ensuring excess bits
in the last bitset are always 0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4837 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
d8a947e233a616b2f7d053e912bdb3f20e2c09a6 15-Nov-2002 Chris Lattner <sabre@nondot.org> Fix warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4708 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
169f8b838b3f3be75d605251ba3bdcc0ad09d795 11-Nov-2002 Chris Lattner <sabre@nondot.org> Add tarj_end() method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4684 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
45a9116e0a91f8a137bf548fad431d56ac99713d 06-Nov-2002 Chris Lattner <sabre@nondot.org> Make maxSize a private variable, add a size() accessor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4573 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
5f76054a79c5386fcdb6695fa49e9eaa4dfabc19 06-Nov-2002 Vikram S. Adve <vadve@cs.uiuc.edu> An implementation of the bit-vector representation of sets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4568 91177308-0d34-0410-b5e6-96231b3b80d8
itSetVector.h
5fe9171b38404bdb2296b849182769083c9d07b3 04-Nov-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Generic graph iterator to enumerate the SCCs of a graph
in linear time using Tarjan's DFS algorithm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4531 91177308-0d34-0410-b5e6-96231b3b80d8
CCIterator.h
4932b31dce8fc065a91af2852314ee8c4403ee23 31-Oct-2002 Chris Lattner <sabre@nondot.org> Statistic class should return const reference to *this, not a reference to
the data type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4458 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
4a63b72df95b5c0d4af064cef19377f811ba6060 28-Oct-2002 Chris Lattner <sabre@nondot.org> Don't #include <Support/*>, #include "Support/*"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4325 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
ashExtras.h
ostOrderIterator.h
df6f5835e9390cace8df16796b583f5ce581212e 27-Oct-2002 Chris Lattner <sabre@nondot.org> Add neccesary #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4294 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
d063725c3c6e36b711106f06e0cab11a1283f349 13-Oct-2002 Chris Lattner <sabre@nondot.org> disable the unused "pointer" member


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4144 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
b38e4fd8b0228feb1fb8376d2266b7f99a9b0913 13-Oct-2002 Chris Lattner <sabre@nondot.org> Add dummy entries to document what members can be added


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4141 91177308-0d34-0410-b5e6-96231b3b80d8
raphTraits.h
96ef1b90c8f3a6649993bb7ab10db3510f12e80a 02-Oct-2002 Chris Lattner <sabre@nondot.org> - Rework Statistics:
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3999 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
33adbcc87d92c6c3e620870c804f4a2533ecc850 16-Sep-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Add ilist_iterator constructor from a node reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3756 91177308-0d34-0410-b5e6-96231b3b80d8
list
de32fedb8c6ec95258dd9e3c104f0e7e49f283cd 25-Jul-2002 Chris Lattner <sabre@nondot.org> GCC 3.1 changes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3076 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
8dc67168ccbd09821ff6d963b26461e9b47028e7 25-Jul-2002 Chris Lattner <sabre@nondot.org> GCC 3.1 fixes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3066 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
ostOrderIterator.h
7f4dd472e35569efefbeffef096c490075e3e824 25-Jul-2002 Chris Lattner <sabre@nondot.org> Changes to build with GCC 3.1


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3064 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
0d219edad2fd5e7b400ecd49ac833a7a3199af60 25-Jul-2002 Chris Lattner <sabre@nondot.org> Use the new include/Support/iterator file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3062 91177308-0d34-0410-b5e6-96231b3b80d8
list
417d31c202bf42c1f9db1afa1d2e6730c6fbd566 24-Jul-2002 Chris Lattner <sabre@nondot.org> Move hash_* extension headers from ext/ to Support/ so that we can support
GCC 2.95, GCC 3.0.4 and GCC 3.1 all concurrently, without having to delete
headers after a chackou.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3055 91177308-0d34-0410-b5e6-96231b3b80d8
ashExtras.h
a1cb4737b04a92f57b1b9dcd8a24c68db5035401 24-Jul-2002 Chris Lattner <sabre@nondot.org> Changes to make it GCC 3.1 compatible


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3052 91177308-0d34-0410-b5e6-96231b3b80d8
list
4a9f9337511441af0624e754ad9b2b1262ee584d 25-Jun-2002 Anand Shukla <ashukla@cs.uiuc.edu> changes to make it compatible with 64bit gcc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2786 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
list
7e70829632f82de15db187845666aaca6e04b792 25-Jun-2002 Chris Lattner <sabre@nondot.org> MEGAPATCH checkin.

For details, See: docs/2002-06-25-MegaPatchInfo.txt


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
list
4435ac009708d78c8894cc9b30185aa6511cd8a6 22-May-2002 Chris Lattner <sabre@nondot.org> Implement a new command line option, -debug, which is meant to unify all of
the random debugging macros scattered throughout llvm.

The new DEBUG(x) macro should be used instead of special purpose debug macros.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2709 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
fa10fdf5eb9305d8af2f4c63264400bb17e6aa3f 10-May-2002 Chris Lattner <sabre@nondot.org> Initial checkin of Statistic class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2599 91177308-0d34-0410-b5e6-96231b3b80d8
tatistic.h
876509614b608f1af885d978c7d2a1e34f807e33 28-Apr-2002 Chris Lattner <sabre@nondot.org> Remove obsolete namespace from example


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2368 91177308-0d34-0410-b5e6-96231b3b80d8
TLExtras.h
35c15b4bfe2de7205bbb35790a3418d7d3288156 07-Apr-2002 Chris Lattner <sabre@nondot.org> Add new function utohexstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2140 91177308-0d34-0410-b5e6-96231b3b80d8
tringExtras.h
04bb837cc0edf2f1908a0ec9b04989598a13cc6a 24-Feb-2002 Chris Lattner <sabre@nondot.org> Genericize the ReversePostOrderIterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1785 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
edcea4ba4ae049d5bb5cdb2931a04200ac1f0e38 05-Feb-2002 Chris Lattner <sabre@nondot.org> New Support file for operations on set like objects


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1714 91177308-0d34-0410-b5e6-96231b3b80d8
etOperations.h
7612c90351f49fa8cc7f23eb2bd2d6206229feac 04-Feb-2002 Chris Lattner <sabre@nondot.org> PostOrderIterator really does depend on Method and BasicBlock. Obviously this
is a huge fixme.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1682 91177308-0d34-0410-b5e6-96231b3b80d8
ostOrderIterator.h
697954c15da58bd8b186dbafdedd8b06db770201 20-Jan-2002 Chris Lattner <sabre@nondot.org> Changes to build successfully with GCC 3.02


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
ashExtras.h
ostOrderIterator.h
TLExtras.h
tringExtras.h
ree.h
cee8f9ae67104576b2028125b56e9ba4856a1d66 27-Nov-2001 Chris Lattner <sabre@nondot.org> Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
epthFirstIterator.h
raphTraits.h
ashExtras.h
ostOrderIterator.h
TLExtras.h
tringExtras.h
ree.h