mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
1c646a78c0
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 |
||
---|---|---|
.. | ||
AllocatorList.h | ||
Any.h | ||
APFloat.h | ||
APInt.h | ||
APSInt.h | ||
ArrayRef.h | ||
bit.h | ||
BitmaskEnum.h | ||
BitVector.h | ||
BreadthFirstIterator.h | ||
CachedHashString.h | ||
DAGDeltaAlgorithm.h | ||
DeltaAlgorithm.h | ||
DenseMap.h | ||
DenseMapInfo.h | ||
DenseSet.h | ||
DepthFirstIterator.h | ||
DirectedGraph.h | ||
edit_distance.h | ||
EpochTracker.h | ||
EquivalenceClasses.h | ||
fallible_iterator.h | ||
FoldingSet.h | ||
FunctionExtras.h | ||
GraphTraits.h | ||
Hashing.h | ||
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 | ||
IntrusiveRefCntPtr.h | ||
iterator_range.h | ||
iterator.h | ||
MapVector.h | ||
None.h | ||
Optional.h | ||
PackedVector.h | ||
PointerEmbeddedInt.h | ||
PointerIntPair.h | ||
PointerSumType.h | ||
PointerUnion.h | ||
PostOrderIterator.h | ||
PriorityQueue.h | ||
PriorityWorklist.h | ||
SCCIterator.h | ||
ScopedHashTable.h | ||
ScopeExit.h | ||
Sequence.h | ||
SetOperations.h | ||
SetVector.h | ||
simple_ilist.h | ||
SmallBitVector.h | ||
SmallPtrSet.h | ||
SmallSet.h | ||
SmallString.h | ||
SmallVector.h | ||
SparseBitVector.h | ||
SparseMultiSet.h | ||
SparseSet.h | ||
Statistic.h | ||
STLExtras.h | ||
StringExtras.h | ||
StringMap.h | ||
StringRef.h | ||
StringSet.h | ||
StringSwitch.h | ||
TinyPtrVector.h | ||
Triple.h | ||
Twine.h | ||
UniqueVector.h |