1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/unittests/IR
Nikita Popov 4e890ca658 [IR] Support efficient AssertingVH/PoisoningVH lookup
Currently, there doesn't seem to be any way to look up a Value*
in a map/set indexed by AssertingVH/PoisoningVH, without creating
a value handle -- which is fairly expensive, because it involves
adding the value handle to the use list and immediately removing
it again. Using find_as(Value *) does not work (and is in fact
worse than just using find(Value *)), because it will end up
creating multiple value handles during the lookup itself.

For AssertingVH, address this by simply using DenseMapInfo<T *>
instead of manually implementing something. The AssertingVH<T>
will now get coerced to T*, rather than the other way around.

For PoisoningVH, add extra overloads of getHashValue() and
isEqual() that accept a T* argument.

This allows using find_as(Value *) to perform efficient lookups
in assertion-enabled builds.

Differential Revision: https://reviews.llvm.org/D81793
2020-06-14 22:03:03 +02:00
..
AbstractCallSiteTest.cpp [AbstractCallSite] Look though constant cast expression when checking for callee use 2020-04-30 15:09:57 -07:00
AsmWriterTest.cpp
AttributesTest.cpp
BasicBlockTest.cpp
CFGBuilder.cpp
CFGBuilder.h
CMakeLists.txt [AbstractCallSite] Look though constant cast expression when checking for callee use 2020-04-30 15:09:57 -07:00
ConstantRangeTest.cpp
ConstantsTest.cpp
DataLayoutTest.cpp
DebugInfoTest.cpp [Instruction] Set metadata uses to undef on deletion 2020-05-21 15:58:12 -07:00
DebugTypeODRUniquingTest.cpp [DebugInfo] support for DW_AT_data_location in llvm 2020-05-15 11:33:17 +05:30
DominatorTreeBatchUpdatesTest.cpp
DominatorTreeTest.cpp
FunctionTest.cpp Make Value::getPointerAlignment() return an Align, not a MaybeAlign. 2020-05-20 16:37:20 -07:00
InstructionsTest.cpp
IntrinsicsTest.cpp
IRBuilderTest.cpp [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
LegacyPassManagerTest.cpp [CallGraphUpdater] Removed references to calles when deleting function 2020-05-04 18:59:47 -07:00
ManglerTest.cpp
MDBuilderTest.cpp
MetadataTest.cpp [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
ModuleTest.cpp [PGO] Improve the working set size heuristics under the partial sample PGO. 2020-06-01 10:29:23 -07:00
PassBuilderCallbacksTest.cpp
PassManagerTest.cpp [NewPassManager] Add assertions when getting statefull cached analysis. 2020-05-13 12:38:38 -07:00
PatternMatch.cpp [PatternMatch] abbreviate vector inst matchers; NFC 2020-05-24 09:19:47 -04:00
TimePassesTest.cpp
TypesTest.cpp
UserTest.cpp
UseTest.cpp
ValueHandleTest.cpp [IR] Support efficient AssertingVH/PoisoningVH lookup 2020-06-14 22:03:03 +02:00
ValueMapTest.cpp
ValueTest.cpp
VectorTypesTest.cpp [SVE][NFC] Remove unused variable 2020-04-29 14:30:32 -07:00
VerifierTest.cpp
VPIntrinsicTest.cpp [VP][Fix] canIgnoreVectorLength for scalable types 2020-06-04 14:17:42 +02:00