Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Constant

51   llvm::Constant *Function;
77 /// LLVM constant.
78 operator llvm::Constant*() {
86 cast<llvm::Constant>(CGM->CreateRuntimeFunction(FTy, FunctionName));
94 return cast<llvm::Function>((llvm::Constant*)*this);
169 /// Helper function that generates a constant string and returns a pointer to
172 llvm::Constant *MakeConstantString(const std::string &Str,
174 llvm::Constant *ConstStr = CGM.GetAddrOfConstantCString(Str, Name.c_str());
181 llvm::Constant *ExportUniqueString(const std::string &Str,
184 llvm::Constant *ConstStr = TheModule.getGlobalVariable(name);
186 llvm::Constant *value = llvm::ConstantDataArray::getString(VMContext,Str);
196 ArrayRef<llvm::Constant *> V,
200 llvm::Constant *C = llvm::ConstantStruct::get(Ty, V);
208 ArrayRef<llvm::Constant *> V,
212 llvm::Constant *C = llvm::ConstantArray::get(Ty, V);
219 ArrayRef<llvm::Constant *> V,
227 llvm::Constant *MakePropertyEncodingString(const ObjCPropertyDecl *PD,
246 void PushPropertyAttributes(std::vector<llvm::Constant*> &Fields,
281 llvm::Constant *Zeros[2];
283 llvm::Constant *NULLPtr;
298 std::vector<llvm::Constant*> Classes;
300 std::vector<llvm::Constant*> Categories;
301 /// All of the Objective-C constant strings that have been generated for this
303 std::vector<llvm::Constant*> ConstantStrings;
304 /// Map from string values to Objective-C constant strings in the output.
307 llvm::StringMap<llvm::Constant*> ObjCStrings;
309 llvm::StringMap<llvm::Constant*> ExistingProtocols;
386 llvm::Constant *GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
387 ArrayRef<llvm::Constant *> IvarTypes,
388 ArrayRef<llvm::Constant *> IvarOffsets);
394 llvm::Constant *GenerateMethodList(const StringRef &ClassName,
397 ArrayRef<llvm::Constant *> MethodTypes,
402 llvm::Constant *GenerateEmptyProtocol(const std::string &ProtocolName);
405 llvm::Constant *GeneratePropertyList(const ObjCImplementationDecl *OID,
407 SmallVectorImpl<llvm::Constant*> &InstanceMethodTypes);
410 llvm::Constant *GenerateProtocolList(ArrayRef<std::string> Protocols);
417 llvm::Constant *GenerateClassStructure(
418 llvm::Constant *MetaClass,
419 llvm::Constant *SuperClass,
422 llvm::Constant *Version,
423 llvm::Constant *InstanceSize,
424 llvm::Constant *IVars,
425 llvm::Constant *Methods,
426 llvm::Constant *Protocols,
427 llvm::Constant *IvarOffsets,
428 llvm::Constant *Properties,
429 llvm::Constant *StrongIvarBitmap,
430 llvm::Constant *WeakIvarBitmap,
434 llvm::Constant *GenerateProtocolMethodList(
435 ArrayRef<llvm::Constant *> MethodNames,
436 ArrayRef<llvm::Constant *> MethodTypes);
477 llvm::Constant *MakeBitField(ArrayRef<bool> bits);
482 llvm::Constant *GenerateConstantString(const StringLiteral *) override;
503 llvm::Constant *GetEHType(QualType T) override;
514 llvm::Constant *GetPropertyGetFunction() override;
515 llvm::Constant *GetPropertySetFunction() override;
516 llvm::Constant *GetOptimizedPropertySetFunction(bool atomic,
518 llvm::Constant *GetSetStructFunction() override;
519 llvm::Constant *GetGetStructFunction() override;
520 llvm::Constant *GetCppAtomicObjectGetFunction() override;
521 llvm::Constant *GetCppAtomicObjectSetFunction() override;
522 llvm::Constant *EnumerationMutationFunction() override;
552 llvm::Constant *BuildGCBlockLayout(CodeGenModule &CGM,
556 llvm::Constant *BuildRCBlockLayout(CodeGenModule &CGM,
561 llvm::Constant *BuildByrefLayout(CodeGenModule &CGM, QualType T) override {
643 llvm::Constant *GetEHType(QualType T) override;
746 llvm::Constant *GetCppAtomicObjectGetFunction() override {
753 llvm::Constant *GetCppAtomicObjectSetFunction() override {
760 llvm::Constant *GetOptimizedPropertySetFunction(bool atomic,
1028 llvm::Constant *ClassLookupFn =
1084 llvm::Constant *CGObjCGNU::GetEHType(QualType T) {
1105 llvm::Constant *CGObjCGNUstep::GetEHType(QualType T) {
1115 llvm::Constant *IDEHType =
1136 llvm::Constant *typeinfo = TheModule.getGlobalVariable(typeinfoName);
1146 llvm::Constant *Vtable = TheModule.getGlobalVariable(vtableName);
1152 llvm::Constant *Two = llvm::ConstantInt::get(IntTy, 2);
1156 llvm::Constant *typeName =
1159 std::vector<llvm::Constant*> fields;
1162 llvm::Constant *TI =
1170 llvm::Constant *CGObjCGNU::GenerateConstantString(const StringLiteral *SL) {
1175 llvm::StringMap<llvm::Constant*>::iterator old = ObjCStrings.find(Str);
1186 llvm::Constant *isa = TheModule.getNamedGlobal(Sym);
1194 std::vector<llvm::Constant*> Ivars;
1198 llvm::Constant *ObjCStr = MakeGlobal(
1245 llvm::Constant *classLookupFunction = nullptr;
1360 llvm::Constant::getNullValue(Receiver->getType()));
1434 phi->addIncoming(llvm::Constant::getNullValue(v->getType()), startBB);
1443 llvm::Constant::getNullValue(RetTy->getElementType()));
1451 phi->addIncoming(llvm::Constant::getNullValue(v.first->getType()),
1455 phi2->addIncoming(llvm::Constant::getNullValue(v.second->getType()),
1465 llvm::Constant *CGObjCGNU::
1469 ArrayRef<llvm::Constant *> MethodTypes,
1479 std::vector<llvm::Constant*> Methods;
1480 std::vector<llvm::Constant*> Elements;
1483 llvm::Constant *Method =
1488 llvm::Constant *C = MakeConstantString(MethodSels[i].getAsString());
1500 llvm::Constant *MethodArray = llvm::ConstantArray::get(ObjCMethodArrayTy,
1523 llvm::Constant *CGObjCGNU::
1524 GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
1525 ArrayRef<llvm::Constant *> IvarTypes,
1526 ArrayRef<llvm::Constant *> IvarOffsets) {
1535 std::vector<llvm::Constant*> Ivars;
1536 std::vector<llvm::Constant*> Elements;
1563 llvm::Constant *CGObjCGNU::GenerateClassStructure(
1564 llvm::Constant *MetaClass,
1565 llvm::Constant *SuperClass,
1568 llvm::Constant *Version,
1569 llvm::Constant *InstanceSize,
1570 llvm::Constant *IVars,
1571 llvm::Constant *Methods,
1572 llvm::Constant *Protocols,
1573 llvm::Constant *IvarOffsets,
1574 llvm::Constant *Properties,
1575 llvm::Constant *StrongIvarBitmap,
1576 llvm::Constant *WeakIvarBitmap,
1607 llvm::Constant *Zero = llvm::ConstantInt::get(LongTy, 0);
1609 std::vector<llvm::Constant*> Elements;
1642 llvm::Constant *Class = MakeGlobal(ClassTy, Elements, ClassSym,
1653 llvm::Constant *CGObjCGNU::
1654 GenerateProtocolMethodList(ArrayRef<llvm::Constant *> MethodNames,
1655 ArrayRef<llvm::Constant *> MethodTypes) {
1661 std::vector<llvm::Constant*> Methods;
1662 std::vector<llvm::Constant*> Elements;
1671 llvm::Constant *Array = llvm::ConstantArray::get(ObjCMethodArrayTy,
1682 llvm::Constant *CGObjCGNU::GenerateProtocolList(ArrayRef<std::string>Protocols){
1690 std::vector<llvm::Constant*> Elements;
1693 llvm::Constant *protocol = nullptr;
1694 llvm::StringMap<llvm::Constant*>::iterator value =
1701 llvm::Constant *Ptr = llvm::ConstantExpr::getBitCast(protocol,
1705 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1722 llvm::Constant *CGObjCGNU::GenerateEmptyProtocol(
1725 SmallVector<llvm::Constant*, 0> EmptyConstantVector;
1727 llvm::Constant *ProtocolList = GenerateProtocolList(EmptyStringVector);
1728 llvm::Constant *MethodList =
1740 std::vector<llvm::Constant*> Elements;
1765 SmallVector<llvm::Constant*, 16> InstanceMethodNames;
1766 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
1767 SmallVector<llvm::Constant*, 16> OptionalInstanceMethodNames;
1768 SmallVector<llvm::Constant*, 16> OptionalInstanceMethodTypes;
1783 SmallVector<llvm::Constant*, 16> ClassMethodNames;
1784 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
1785 SmallVector<llvm::Constant*, 16> OptionalClassMethodNames;
1786 SmallVector<llvm::Constant*, 16> OptionalClassMethodTypes;
1801 llvm::Constant *ProtocolList = GenerateProtocolList(Protocols);
1802 llvm::Constant *InstanceMethodList =
1804 llvm::Constant *ClassMethodList =
1806 llvm::Constant *OptionalInstanceMethodList =
1809 llvm::Constant *OptionalClassMethodList =
1821 std::vector<llvm::Constant*> Properties;
1822 std::vector<llvm::Constant*> OptionalProperties;
1827 std::vector<llvm::Constant*> Fields;
1835 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
1846 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
1860 llvm::Constant *PropertyArray = llvm::ConstantArray::get(
1862 llvm::Constant* PropertyListInitFields[] =
1865 llvm::Constant *PropertyListInit =
1867 llvm::Constant *PropertyList = new llvm::GlobalVariable(TheModule,
1871 llvm::Constant *OptionalPropertyArray =
1874 llvm::Constant* OptionalPropertyListInitFields[] = {
1878 llvm::Constant *OptionalPropertyListInit =
1880 llvm::Constant *OptionalPropertyList = new llvm::GlobalVariable(TheModule,
1897 std::vector<llvm::Constant*> Elements;
1917 SmallVector<llvm::Constant*, 1> MethodTypes;
1919 std::vector<llvm::Constant*> Elements;
1938 std::vector<llvm::Constant*> ProtocolElements;
1939 for (llvm::StringMapIterator<llvm::Constant*> iter =
1942 llvm::Constant *Ptr = llvm::ConstantExpr::getBitCast(iter->getValue(),
1946 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1971 llvm::Constant *CGObjCGNU::MakeBitField(ArrayRef<bool> bits) {
1981 SmallVector<llvm::Constant *, 8> values;
1992 llvm::Constant *array = llvm::ConstantArray::get(arrayTy, values);
1993 llvm::Constant *fields[2] = {
1996 llvm::Constant *GS = MakeGlobal(llvm::StructType::get(Int32Ty, arrayTy,
1998 llvm::Constant *ptr = llvm::ConstantExpr::getPtrToInt(GS, IntPtrTy);
2007 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
2017 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
2033 std::vector<llvm::Constant*> Elements;
2052 llvm::Constant *CGObjCGNU::GeneratePropertyList(const ObjCImplementationDecl *OID,
2054 SmallVectorImpl<llvm::Constant*> &InstanceMethodTypes) {
2061 std::vector<llvm::Constant*> Properties;
2066 std::vector<llvm::Constant*> Fields;
2078 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
2092 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
2107 llvm::Constant *PropertyArray = llvm::ConstantArray::get(PropertyArrayTy,
2109 llvm::Constant* PropertyListInitFields[] =
2112 llvm::Constant *PropertyListInit =
2161 SmallVector<llvm::Constant*, 16> IvarNames;
2162 SmallVector<llvm::Constant*, 16> IvarTypes;
2163 SmallVector<llvm::Constant*, 16> IvarOffsets;
2165 std::vector<llvm::Constant*> IvarOffsetValues;
2191 llvm::Constant *OffsetValue = llvm::ConstantInt::get(IntTy, Offset);
2225 llvm::Constant *StrongIvarBitmap = MakeBitField(StrongIvars);
2226 llvm::Constant
2233 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
2241 llvm::Constant *Properties = GeneratePropertyList(OID, InstanceMethodSels,
2247 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
2260 llvm::Constant *SuperClass;
2267 SmallVector<llvm::Constant*, 1> empty;
2269 llvm::Constant *MethodList = GenerateMethodList(ClassName, "",
2271 llvm::Constant *ClassMethodList = GenerateMethodList(ClassName, "",
2273 llvm::Constant *IvarList = GenerateIvarList(IvarNames, IvarTypes,
2286 llvm::Constant *offsetPointerIndexes[] = {Zeros[0],
2297 llvm::Constant *offsetValue = llvm::ConstantExpr::getGetElementPtr(
2315 llvm::Constant *ZeroPtr = llvm::ConstantInt::get(IntPtrTy, 0);
2317 llvm::Constant *MetaClassStruct = GenerateClassStructure(NULLPtr,
2323 llvm::Constant *ClassStruct =
2367 std::vector<llvm::Constant*> Elements;
2368 llvm::Constant *Statics = NULLPtr;
2392 Elements.push_back(llvm::Constant::getNullValue(StaticsListPtrTy));
2396 // Array of classes, categories, and constant objects
2406 std::vector<llvm::Constant*> Selectors;
2412 llvm::Constant *SelName = ExportUniqueString(SelNameStr, ".objc_sel_name");
2418 llvm::Constant *SelectorTypeEncoding = NULLPtr;
2443 llvm::Constant *SelectorList = MakeGlobalArray(SelStructTy, Selectors,
2451 llvm::Constant *Idxs[] = {Zeros[0],
2454 llvm::Constant *SelPtr = llvm::ConstantExpr::getGetElementPtr(SelectorList,
2471 // NULL-terminated list of static object instances (mainly constant strings)
2474 llvm::Constant *ClassList = llvm::ConstantArray::get(ClassListTy, Classes);
2477 llvm::Constant *SymTab= MakeGlobal(SymTabTy, Elements);
2553 llvm::Constant::getNullValue(RegisterAlias->getType()));
2561 llvm::Constant *TheClass =
2604 llvm::Constant *CGObjCGNU::GetPropertyGetFunction() {
2608 llvm::Constant *CGObjCGNU::GetPropertySetFunction() {
2612 llvm::Constant *CGObjCGNU::GetOptimizedPropertySetFunction(bool atomic,
2617 llvm::Constant
2620 llvm::Constant *CGObjCGNU::GetSetStructFunction() {
2623 llvm::Constant *CGObjCGNU::GetCppAtomicObjectGetFunction() {
2626 llvm::Constant *CGObjCGNU::GetCppAtomicObjectSetFunction() {
2630 llvm::Constant *CGObjCGNU::EnumerationMutationFunction() {
2824 llvm::Constant::getNullValue(IntTy), name);