Lines Matching refs:llvm

66 class RSGlobalInfoPass: public llvm::ModulePass {
74 static uint32_t getEncodedProperties(const llvm::GlobalVariable &GV) { in getEncodedProperties()
90 if (GV.getLinkage() == llvm::GlobalValue::InternalLinkage) { in getEncodedProperties()
105 void getAnalysisUsage(llvm::AnalysisUsage &AU) const override { in getAnalysisUsage()
110 bool runOnModule(llvm::Module &M) override { in runOnModule()
111 std::vector<llvm::Constant *> GVAddresses; in runOnModule()
112 std::vector<llvm::Constant *> GVNames; in runOnModule()
118 const llvm::DataLayout &DL = M.getDataLayout(); in runOnModule()
126 llvm::Type *VoidPtrTy = llvm::Type::getInt8PtrTy(M.getContext()); in runOnModule()
129 llvm::Type *Int32Ty = llvm::Type::getInt32Ty(M.getContext()); in runOnModule()
132 llvm::Type *SizeTy = llvm::Type::getIntNTy(M.getContext(), in runOnModule()
148 GVAddresses.push_back(llvm::ConstantExpr::getBitCast(&GV, VoidPtrTy)); in runOnModule()
169 llvm::Constant *C = in runOnModule()
170 llvm::ConstantDataArray::getString(M.getContext(), GVN); in runOnModule()
173 llvm::Value *V = M.getOrInsertGlobal(VarName.str(), C->getType()); in runOnModule()
174 llvm::GlobalVariable *VarAsStr = llvm::dyn_cast<llvm::GlobalVariable>(V); in runOnModule()
177 VarAsStr->setLinkage(llvm::GlobalValue::PrivateLinkage); in runOnModule()
178 VarAsStr->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global); in runOnModule()
181 GVNames.push_back(llvm::ConstantExpr::getBitCast(VarAsStr, VoidPtrTy)); in runOnModule()
197 llvm::ArrayType *VoidPtrArrayTy = llvm::ArrayType::get(VoidPtrTy, in runOnModule()
200 llvm::ArrayType *SizeArrayTy = llvm::ArrayType::get(SizeTy, NumGlobals); in runOnModule()
203 llvm::ArrayType *Int32ArrayTy = llvm::ArrayType::get(Int32Ty, NumGlobals); in runOnModule()
206 llvm::Value *V = M.getOrInsertGlobal(kRsGlobalEntries, Int32Ty); in runOnModule()
207 llvm::GlobalVariable *GlobalEntries = in runOnModule()
208 llvm::dyn_cast<llvm::GlobalVariable>(V); in runOnModule()
209 llvm::Constant *GlobalEntriesInit = in runOnModule()
210 llvm::ConstantInt::get(Int32Ty, NumGlobals); in runOnModule()
216 llvm::GlobalVariable *GlobalNames = in runOnModule()
217 llvm::dyn_cast<llvm::GlobalVariable>(V); in runOnModule()
218 llvm::Constant *GlobalNamesInit = in runOnModule()
219 llvm::ConstantArray::get(VoidPtrArrayTy, GVNames); in runOnModule()
225 llvm::GlobalVariable *GlobalAddresses = in runOnModule()
226 llvm::dyn_cast<llvm::GlobalVariable>(V); in runOnModule()
227 llvm::Constant *GlobalAddressesInit = in runOnModule()
228 llvm::ConstantArray::get(VoidPtrArrayTy, GVAddresses); in runOnModule()
235 llvm::GlobalVariable *GlobalSizes = in runOnModule()
236 llvm::dyn_cast<llvm::GlobalVariable>(V); in runOnModule()
237 llvm::Constant *GlobalSizesInit; in runOnModule()
239 GlobalSizesInit = llvm::ConstantDataArray::get(M.getContext(), GVSizes32); in runOnModule()
241 GlobalSizesInit = llvm::ConstantDataArray::get(M.getContext(), GVSizes64); in runOnModule()
248 llvm::GlobalVariable *GlobalProperties = in runOnModule()
249 llvm::dyn_cast<llvm::GlobalVariable>(V); in runOnModule()
250 llvm::Constant *GlobalPropertiesInit = in runOnModule()
251 llvm::ConstantDataArray::get(M.getContext(), GVProperties); in runOnModule()
272 static llvm::RegisterPass<RSGlobalInfoPass> X("embed-rs-global-info",
277 llvm::ModulePass * createRSGlobalInfoPass(bool pSkipConstants) { in createRSGlobalInfoPass()