Go to the source code of this file.
|
| static IntegerType * | getLegalIntegerType (Type *Ty) |
| static bool | legalizeInteger (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &ReplacedValues) |
| static bool | legalizeFreeze (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * >) |
| static bool | legalizeI8Memory (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &ReplacedValues) |
| static bool | upcastI8AllocasAndUses (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &ReplacedValues) |
| static bool | downcastI64toI32InsertExtractElements (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &) |
| static bool | updateFnegToFsub (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &) |
| static bool | legalizeFloatAtomicExchange (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &) |
| static bool | resolveUnreachableSwitchDefault (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &) |
| static bool | legalizeScalarLoadStoreOnArrays (Instruction &I, SmallVectorImpl< Instruction * > &ToRemove, DenseMap< Value *, Value * > &) |
| | INITIALIZE_PASS_BEGIN (DXILLegalizeLegacy, DEBUG_TYPE, "DXIL Legalizer", false, false) INITIALIZE_PASS_END(DXILLegalizeLegacy |
◆ DEBUG_TYPE
| #define DEBUG_TYPE "dxil-legalize" |
◆ IntegerExtension
◆ downcastI64toI32InsertExtractElements()
◆ getLegalIntegerType()
◆ INITIALIZE_PASS_BEGIN()
| INITIALIZE_PASS_BEGIN |
( |
DXILLegalizeLegacy | , |
|
|
DEBUG_TYPE | , |
|
|
"DXIL Legalizer" | , |
|
|
false | , |
|
|
false | ) |
◆ legalizeFloatAtomicExchange()
◆ legalizeFreeze()
◆ legalizeI8Memory()
Definition at line 211 of file DXILLegalizePass.cpp.
References assert(), llvm::DenseMapBase< StorageT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::GetElementPtrInst::Create(), llvm::dyn_cast(), llvm::dyn_cast_or_null(), GEP, llvm::ArrayType::get(), llvm::Type::getArrayElementType(), getLegalIntegerType(), I, llvm::isa(), llvm::Load, llvm::DenseMapBase< StorageT, KeyT, ValueT, KeyInfoT, BucketT >::lookup_or(), llvm::Offset, llvm::reportFatalUsageError(), llvm::Store, ToRemove, and V.
◆ legalizeInteger()
Definition at line 45 of file DXILLegalizePass.cpp.
References B(), llvm::ComputeNumSignBits(), llvm::DenseMapBase< StorageT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), DEBUG_TYPE, llvm::dyn_cast(), llvm::False, llvm::PoisonValue::get(), llvm::APInt::getBitsSetFrom(), getLegalIntegerType(), llvm::APInt::getLowBitsSet(), I, LHS, llvm::DenseMapBase< StorageT, KeyT, ValueT, KeyInfoT, BucketT >::lookup_or(), llvm::MaskedValueIsZero(), None, llvm::Replace, llvm::reportFatalUsageError(), RHS, llvm::setExplicitlyUnknownBranchWeightsIfProfiled(), Sign, ToRemove, llvm::True, V, and Zero.
◆ legalizeScalarLoadStoreOnArrays()
Definition at line 535 of file DXILLegalizePass.cpp.
References llvm::GEPNoWrapFlags::all(), assert(), llvm::GetElementPtrInst::Create(), llvm::dyn_cast(), GEP, llvm::Type::getArrayElementType(), llvm::Type::getInt32Ty(), I, llvm::isa(), llvm::Type::isSingleValueType(), ToRemove, and Zero.
◆ resolveUnreachableSwitchDefault()
◆ upcastI8AllocasAndUses()
◆ updateFnegToFsub()
◆ DEBUG_TYPE
◆ false
◆ Legalizer