History log of /external/llvm/include/llvm/ADT/ImmutableMap.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.h
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
/external/llvm/include/llvm/ADT/ImmutableMap.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
/external/llvm/include/llvm/ADT/ImmutableMap.h