mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
4b01d392e0
DemandedBits and BDCE currently only support scalar integers. This patch extends them to also handle vector integer operations. In this case bits are not tracked for individual vector elements, instead a bit is demanded if it is demanded for any of the elements. This matches the behavior of computeKnownBits in ValueTracking and SimplifyDemandedBits in InstCombine. The getDemandedBits() method can now only be called on instructions that have integer or vector of integer type. Previously it could be called on any sized instruction (even if it was not particularly useful). The size of the return value is now always the scalar size in bits (while previously it was the type size in bits). Differential Revision: https://reviews.llvm.org/D55297 llvm-svn: 348549 |
||
---|---|---|
.. | ||
ADCE | ||
AddDiscriminators | ||
AggressiveInstCombine | ||
AlignmentFromAssumptions | ||
ArgumentPromotion | ||
AtomicExpand | ||
BDCE | ||
BlockExtractor | ||
BranchFolding | ||
CalledValuePropagation | ||
CallSiteSplitting | ||
CodeExtractor | ||
CodeGenPrepare | ||
ConstantHoisting | ||
ConstantMerge | ||
ConstProp | ||
Coroutines | ||
CorrelatedValuePropagation | ||
CrossDSOCFI | ||
DCE | ||
DeadArgElim | ||
DeadStoreElimination | ||
DivRemPairs | ||
EarlyCSE | ||
EliminateAvailableExternally | ||
EntryExitInstrumenter | ||
ExpandMemCmp/X86 | ||
Float2Int | ||
ForcedFunctionAttrs | ||
FunctionAttrs | ||
FunctionImport | ||
GCOVProfiling | ||
GlobalDCE | ||
GlobalMerge | ||
GlobalOpt | ||
GlobalSplit | ||
GuardWidening | ||
GVN | ||
GVNHoist | ||
GVNSink | ||
HotColdSplit | ||
IndirectBrExpand | ||
IndVarSimplify | ||
InferAddressSpaces | ||
InferFunctionAttrs | ||
Inline | ||
InstCombine | ||
InstMerge | ||
InstNamer | ||
InstSimplify | ||
InterleavedAccess | ||
Internalize | ||
IPConstantProp | ||
IRCE | ||
JumpThreading | ||
LCSSA | ||
LICM | ||
LoadStoreVectorizer | ||
LoopDataPrefetch | ||
LoopDeletion | ||
LoopDistribute | ||
LoopIdiom | ||
LoopInstSimplify | ||
LoopInterchange | ||
LoopLoadElim | ||
LoopPredication | ||
LoopReroll | ||
LoopRotate | ||
LoopSimplify | ||
LoopSimplifyCFG | ||
LoopStrengthReduce | ||
LoopUnroll | ||
LoopUnrollAndJam | ||
LoopUnswitch | ||
LoopVectorize | ||
LoopVersioning | ||
LoopVersioningLICM | ||
LowerAtomic | ||
LowerExpectIntrinsic | ||
LowerGuardIntrinsic | ||
LowerInvoke | ||
LowerSwitch | ||
LowerTypeTests | ||
Mem2Reg | ||
MemCpyOpt | ||
MergeFunc | ||
MergeICmps | ||
MetaRenamer | ||
NameAnonGlobals | ||
NaryReassociate | ||
NewGVN | ||
ObjCARC | ||
PartiallyInlineLibCalls | ||
PGOProfile | ||
PhaseOrdering | ||
PlaceSafepoints | ||
PreISelIntrinsicLowering | ||
PruneEH | ||
Reassociate | ||
Reg2Mem | ||
RewriteStatepointsForGC | ||
SafeStack | ||
SampleProfile | ||
ScalarizeMaskedMemIntrin/X86 | ||
Scalarizer | ||
SCCP | ||
SeparateConstOffsetFromGEP | ||
SimpleLoopUnswitch | ||
SimplifyCFG | ||
Sink | ||
SLPVectorizer | ||
SpeculateAroundPHIs | ||
SpeculativeExecution | ||
SROA | ||
StraightLineStrengthReduce | ||
StripDeadPrototypes | ||
StripSymbols | ||
StructurizeCFG | ||
SyntheticCountsPropagation | ||
TailCallElim | ||
ThinLTOBitcodeWriter | ||
Util | ||
WholeProgramDevirt |