uint64_t IntValue =
26? 0xFFFFFFFFFFFFFFFFull
27: 0xAAAAAAAAAAAAAAAAull;
34 constexpr boolNegativeNaN =
true;
35 constexpruint64_t NaNPayload = 0xFFFFFFFFFFFFFFFFull;
36 if(Ty->isIntOrIntVectorTy()) {
38cast<llvm::IntegerType>(Ty->getScalarType())->getBitWidth();
40 returnllvm::ConstantInt::get(Ty, IntValue);
41 returnllvm::ConstantInt::get(
42Ty, llvm::APInt::getSplat(BitWidth, llvm::APInt(64, IntValue)));
44 if(Ty->isPtrOrPtrVectorTy()) {
45 auto*PtrTy = cast<llvm::PointerType>(Ty->getScalarType());
47CGM.
getDataLayout().getPointerSizeInBits(PtrTy->getAddressSpace());
49llvm_unreachable(
"pattern initialization of unsupported pointer width");
50llvm::Type *IntTy = llvm::IntegerType::get(CGM.
getLLVMContext(), PtrWidth);
51 auto*Int = llvm::ConstantInt::get(IntTy, IntValue);
52 returnllvm::ConstantExpr::getIntToPtr(Int, PtrTy);
54 if(Ty->isFPOrFPVectorTy()) {
55 unsignedBitWidth = llvm::APFloat::semanticsSizeInBits(
56Ty->getScalarType()->getFltSemantics());
57llvm::APInt Payload(64, NaNPayload);
59Payload = llvm::APInt::getSplat(BitWidth, Payload);
60 returnllvm::ConstantFP::getQNaN(Ty, NegativeNaN, &Payload);
62 if(Ty->isArrayTy()) {
65 auto*ArrTy = cast<llvm::ArrayType>(Ty);
67ArrTy->getNumElements(),
69 returnllvm::ConstantArray::get(ArrTy, Element);
78 auto*StructTy = cast<llvm::StructType>(Ty);
80 for(
unsignedEl = 0; El != Struct.size(); ++El)
82 returnllvm::ConstantStruct::get(StructTy, Struct);
const TargetInfo & getTargetInfo() const
This class organizes the cross-function state that is used while generating LLVM code.
const llvm::DataLayout & getDataLayout() const
ASTContext & getContext() const
llvm::LLVMContext & getLLVMContext()
virtual uint64_t getMaxPointerWidth() const
Return the maximum width of pointers on this target.
Defines the clang::TargetInfo interface.
llvm::Constant * initializationPatternFor(CodeGenModule &, llvm::Type *)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4