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
|