mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
2a197a86b4
Essentially, fold OrderedBasicBlock into BasicBlock, and make it auto-invalidate the instruction ordering when new instructions are added. Notably, we don't need to invalidate it when removing instructions, which is helpful when a pass mostly delete dead instructions rather than transforming them. The downside is that Instruction grows from 56 bytes to 64 bytes. The resulting LLVM code is substantially simpler and automatically handles invalidation, which makes me think that this is the right speed and size tradeoff. The important change is in SymbolTableTraitsImpl.h, where the numbering is invalidated. Everything else should be straightforward. We probably want to implement a fancier re-numbering scheme so that local updates don't invalidate the ordering, but I plan for that to be future work, maybe for someone else. Reviewed By: lattner, vsk, fhahn, dexonsmith Differential Revision: https://reviews.llvm.org/D51664
41 lines
850 B
CMake
41 lines
850 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
Analysis
|
|
AsmParser
|
|
Core
|
|
Support
|
|
TransformUtils
|
|
)
|
|
|
|
add_llvm_unittest(AnalysisTests
|
|
AliasAnalysisTest.cpp
|
|
AliasSetTrackerTest.cpp
|
|
BasicAliasAnalysisTest.cpp
|
|
BlockFrequencyInfoTest.cpp
|
|
BranchProbabilityInfoTest.cpp
|
|
CallGraphTest.cpp
|
|
CaptureTrackingTest.cpp
|
|
CFGTest.cpp
|
|
CGSCCPassManagerTest.cpp
|
|
DivergenceAnalysisTest.cpp
|
|
DomTreeUpdaterTest.cpp
|
|
GlobalsModRefTest.cpp
|
|
IVDescriptorsTest.cpp
|
|
LazyCallGraphTest.cpp
|
|
LoadsTest.cpp
|
|
LoopInfoTest.cpp
|
|
MemoryBuiltinsTest.cpp
|
|
MemorySSATest.cpp
|
|
OrderedInstructionsTest.cpp
|
|
PhiValuesTest.cpp
|
|
ProfileSummaryInfoTest.cpp
|
|
ScalarEvolutionTest.cpp
|
|
VectorFunctionABITest.cpp
|
|
SparsePropagation.cpp
|
|
TargetLibraryInfoTest.cpp
|
|
TBAATest.cpp
|
|
UnrollAnalyzerTest.cpp
|
|
ValueLatticeTest.cpp
|
|
ValueTrackingTest.cpp
|
|
VectorUtilsTest.cpp
|
|
)
|