History log of /external/llvm/include/llvm/ADT/PointerIntPair.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
de2d8694e25a814696358e95141f4b1aa4d8847e 20-Sep-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r275480

Bug: http://b/31320715

This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from
aosp/dev.

Test: Build AOSP and run RenderScript tests (host tests for slang and
libbcc, RsTest, CTS)

Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/include/llvm/ADT/PointerIntPair.h
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r256229

http://b/26987366

Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/include/llvm/ADT/PointerIntPair.h
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

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