1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/include/llvm/ADT
Daniel Sanders 1c646a78c0 Fix compile-time regression caused by rL371928
Summary:
Also fixup rL371928 for cases that occur on our out-of-tree backend

There were still quite a few intermediate APInts and this caused the
compile time of MCCodeEmitter for our target to jump from 16s up to
~5m40s. This patch, brings it back down to ~17s by eliminating pretty
much all of them using two new APInt functions (extractBitsAsZExtValue(),
insertBits() but with a uint64_t). The exact conditions for eliminating
them is that the field extracted/inserted must be <=64-bit which is
almost always true.

Note: The two new APInt API's assume that APInt::WordSize is at least
64-bit because that means they touch at most 2 APInt words. They
statically assert that's true. It seems very unlikely that someone
is patching it to be smaller so this should be fine.

Reviewers: jmolloy

Reviewed By: jmolloy

Subscribers: hiraditya, dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67686

llvm-svn: 372243
2019-09-18 18:14:42 +00:00
..
AllocatorList.h
Any.h [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
APFloat.h [ConstProp] allow folding for fma that produces NaN 2019-09-12 14:10:50 +00:00
APInt.h Fix compile-time regression caused by rL371928 2019-09-18 18:14:42 +00:00
APSInt.h [APSInt][OpenMP] Fix isNegative, etc. for unsigned types 2019-04-23 17:04:15 +00:00
ArrayRef.h [ADT] Add makeArrayRef(std::array<>) template specialization 2019-09-05 21:27:25 +00:00
bit.h
BitmaskEnum.h
BitVector.h
BreadthFirstIterator.h [NFC] Fix typo in comment. 2019-04-06 22:05:24 +00:00
CachedHashString.h
DAGDeltaAlgorithm.h
DeltaAlgorithm.h
DenseMap.h [ADT] Remove a workaround for old versions of clang 2019-09-13 13:47:49 +00:00
DenseMapInfo.h Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
DenseSet.h NFC: Change usage of 'DenseSet' to 'DenseSetImpl' in DenseSetImpl::ConstIterator. 2019-05-27 17:38:41 +00:00
DepthFirstIterator.h
DirectedGraph.h [DDG] DirectedGraph as a base class for various dependence graphs such 2019-07-25 18:23:22 +00:00
edit_distance.h
EpochTracker.h
EquivalenceClasses.h
fallible_iterator.h
FoldingSet.h
FunctionExtras.h
GraphTraits.h
Hashing.h [Hashing] hash_1to3_bytes - avoid trunc(v + zext(x)) NFCI. 2019-07-14 15:05:05 +00:00
ilist_base.h
ilist_iterator.h
ilist_node_base.h
ilist_node_options.h
ilist_node.h
ilist.h
ImmutableList.h
ImmutableMap.h
ImmutableSet.h
IndexedMap.h
IntEqClasses.h
IntervalMap.h [NFC] Remove uses of LLVM_ALIGNAS 2019-07-30 16:31:06 +00:00
IntrusiveRefCntPtr.h
iterator_range.h Revert rL361944 from llvm/trunk : 2019-05-29 14:39:37 +00:00
iterator.h
MapVector.h
None.h
Optional.h Revert rL368939 "Remove LVALUE / RVALUE workarounds" 2019-08-15 10:12:11 +00:00
PackedVector.h
PointerEmbeddedInt.h
PointerIntPair.h
PointerSumType.h
PointerUnion.h Add TinyPtrVector support for general pointer-like things. 2019-08-20 23:29:28 +00:00
PostOrderIterator.h
PriorityQueue.h
PriorityWorklist.h
SCCIterator.h
ScopedHashTable.h
ScopeExit.h
Sequence.h
SetOperations.h
SetVector.h
simple_ilist.h
SmallBitVector.h [SmallBitVector] Fix bug in find_next_unset for small types with indices >=32 2019-07-21 16:06:26 +00:00
SmallPtrSet.h
SmallSet.h
SmallString.h
SmallVector.h [NFC] Fix SmallVector::append comments 2019-05-30 17:54:26 +00:00
SparseBitVector.h
SparseMultiSet.h
SparseSet.h
Statistic.h
STLExtras.h Retire llvm::less_ptr. llvm::deref is much more flexible. 2019-08-22 17:32:16 +00:00
StringExtras.h Fix MSVC unreferenced formal parameter warning. NFCI. 2019-09-01 16:04:38 +00:00
StringMap.h [ADT] Enable set_difference() to be used on StringSet 2019-06-07 20:23:03 +00:00
StringRef.h [ADT] Make StringRef(const char*) constexpr 2019-08-26 20:47:56 +00:00
StringSet.h [ADT] Enable set_difference() to be used on StringSet 2019-06-07 20:23:03 +00:00
StringSwitch.h
TinyPtrVector.h Add TinyPtrVector support for general pointer-like things. 2019-08-20 23:29:28 +00:00
Triple.h [Triple] Add isRISCV function 2019-07-08 14:52:36 +00:00
Twine.h
UniqueVector.h