Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Constant

51   llvm::Constant *Function;
79 /// LLVM constant.
80 operator llvm::Constant *() {
85 cast<llvm::Constant>(CGM->CreateRuntimeFunction(FTy, FunctionName));
90 return cast<llvm::Function>((llvm::Constant *)*this);
164 /// Helper function that generates a constant string and returns a pointer to
167 llvm::Constant *MakeConstantString(const std::string &Str,
177 llvm::Constant *ExportUniqueString(const std::string &Str,
182 llvm::Constant *value = llvm::ConstantDataArray::getString(VMContext,Str);
193 ArrayRef<llvm::Constant *> V,
198 llvm::Constant *C = llvm::ConstantStruct::get(Ty, V);
208 ArrayRef<llvm::Constant *> V,
213 llvm::Constant *C = llvm::ConstantArray::get(Ty, V);
222 ArrayRef<llvm::Constant *> V,
231 llvm::Constant *MakePropertyEncodingString(const ObjCPropertyDecl *PD,
249 void PushPropertyAttributes(std::vector<llvm::Constant*> &Fields,
288 llvm::Constant *Zeros[2];
290 llvm::Constant *NULLPtr;
305 std::vector<llvm::Constant*> Classes;
307 std::vector<llvm::Constant*> Categories;
308 /// All of the Objective-C constant strings that have been generated for this
310 std::vector<llvm::Constant*> ConstantStrings;
311 /// Map from string values to Objective-C constant strings in the output.
314 llvm::StringMap<llvm::Constant*> ObjCStrings;
316 llvm::StringMap<llvm::Constant*> ExistingProtocols;
393 llvm::Constant *GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
394 ArrayRef<llvm::Constant *> IvarTypes,
395 ArrayRef<llvm::Constant *> IvarOffsets);
401 llvm::Constant *GenerateMethodList(StringRef ClassName,
404 ArrayRef<llvm::Constant *> MethodTypes,
409 llvm::Constant *GenerateEmptyProtocol(const std::string &ProtocolName);
412 llvm::Constant *GeneratePropertyList(const ObjCImplementationDecl *OID,
414 SmallVectorImpl<llvm::Constant*> &InstanceMethodTypes);
417 llvm::Constant *GenerateProtocolList(ArrayRef<std::string> Protocols);
424 llvm::Constant *GenerateClassStructure(
425 llvm::Constant *MetaClass,
426 llvm::Constant *SuperClass,
429 llvm::Constant *Version,
430 llvm::Constant *InstanceSize,
431 llvm::Constant *IVars,
432 llvm::Constant *Methods,
433 llvm::Constant *Protocols,
434 llvm::Constant *IvarOffsets,
435 llvm::Constant *Properties,
436 llvm::Constant *StrongIvarBitmap,
437 llvm::Constant *WeakIvarBitmap,
441 llvm::Constant *GenerateProtocolMethodList(
442 ArrayRef<llvm::Constant *> MethodNames,
443 ArrayRef<llvm::Constant *> MethodTypes);
484 llvm::Constant *MakeBitField(ArrayRef<bool> bits);
510 llvm::Constant *GetEHType(QualType T) override;
521 llvm::Constant *GetPropertyGetFunction() override;
522 llvm::Constant *GetPropertySetFunction() override;
523 llvm::Constant *GetOptimizedPropertySetFunction(bool atomic,
525 llvm::Constant *GetSetStructFunction() override;
526 llvm::Constant *GetGetStructFunction() override;
527 llvm::Constant *GetCppAtomicObjectGetFunction() override;
528 llvm::Constant *GetCppAtomicObjectSetFunction() override;
529 llvm::Constant *EnumerationMutationFunction() override;
559 llvm::Constant *BuildGCBlockLayout(CodeGenModule &CGM,
563 llvm::Constant *BuildRCBlockLayout(CodeGenModule &CGM,
568 llvm::Constant *BuildByrefLayout(CodeGenModule &CGM, QualType T) override {
650 llvm::Constant *GetEHType(QualType T) override;
756 llvm::Constant *GetCppAtomicObjectGetFunction() override {
763 llvm::Constant *GetCppAtomicObjectSetFunction() override {
770 llvm::Constant *GetOptimizedPropertySetFunction(bool atomic,
1026 llvm::Constant *ClassName = MakeConstantString(Name);
1037 llvm::Constant *ClassLookupFn =
1098 llvm::Constant *CGObjCGNU::GetEHType(QualType T) {
1119 llvm::Constant *CGObjCGNUstep::GetEHType(QualType T) {
1129 llvm::Constant *IDEHType =
1150 llvm::Constant *typeinfo = TheModule.getGlobalVariable(typeinfoName);
1166 llvm::Constant *Two = llvm::ConstantInt::get(IntTy, 2);
1171 llvm::Constant *typeName =
1174 std::vector<llvm::Constant*> fields;
1177 llvm::Constant *TI =
1192 llvm::StringMap<llvm::Constant*>::iterator old = ObjCStrings.find(Str);
1203 llvm::Constant *isa = TheModule.getNamedGlobal(Sym);
1211 std::vector<llvm::Constant*> Ivars;
1215 llvm::Constant *ObjCStr = MakeGlobal(
1262 llvm::Constant *classLookupFunction = nullptr;
1383 llvm::Constant::getNullValue(Receiver->getType()));
1456 Constant::getNullValue(v->getType()), startBB);
1463 CGF.InitTempAlloca(NullVal, llvm::Constant::getNullValue(RetTy));
1471 phi->addIncoming(llvm::Constant::getNullValue(v.first->getType()),
1475 phi2->addIncoming(llvm::Constant::getNullValue(v.second->getType()),
1485 llvm::Constant *CGObjCGNU::
1489 ArrayRef<llvm::Constant *> MethodTypes,
1499 std::vector<llvm::Constant*> Methods;
1500 std::vector<llvm::Constant*> Elements;
1503 llvm::Constant *Method =
1508 llvm::Constant *C = MakeConstantString(MethodSels[i].getAsString());
1520 llvm::Constant *MethodArray = llvm::ConstantArray::get(ObjCMethodArrayTy,
1544 llvm::Constant *CGObjCGNU::
1545 GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
1546 ArrayRef<llvm::Constant *> IvarTypes,
1547 ArrayRef<llvm::Constant *> IvarOffsets) {
1556 std::vector<llvm::Constant*> Ivars;
1557 std::vector<llvm::Constant*> Elements;
1585 llvm::Constant *CGObjCGNU::GenerateClassStructure(
1586 llvm::Constant *MetaClass,
1587 llvm::Constant *SuperClass,
1590 llvm::Constant *Version,
1591 llvm::Constant *InstanceSize,
1592 llvm::Constant *IVars,
1593 llvm::Constant *Methods,
1594 llvm::Constant *Protocols,
1595 llvm::Constant *IvarOffsets,
1596 llvm::Constant *Properties,
1597 llvm::Constant *StrongIvarBitmap,
1598 llvm::Constant *WeakIvarBitmap,
1629 llvm::Constant *Zero = llvm::ConstantInt::get(LongTy, 0);
1631 std::vector<llvm::Constant*> Elements;
1664 llvm::Constant *Class =
1676 llvm::Constant *CGObjCGNU::
1677 GenerateProtocolMethodList(ArrayRef<llvm::Constant *> MethodNames,
1678 ArrayRef<llvm::Constant *> MethodTypes) {
1684 std::vector<llvm::Constant*> Methods;
1685 std::vector<llvm::Constant*> Elements;
1694 llvm::Constant *Array = llvm::ConstantArray::get(ObjCMethodArrayTy,
1706 llvm::Constant *CGObjCGNU::GenerateProtocolList(ArrayRef<std::string>Protocols){
1714 std::vector<llvm::Constant*> Elements;
1717 llvm::Constant *protocol = nullptr;
1718 llvm::StringMap<llvm::Constant*>::iterator value =
1725 llvm::Constant *Ptr = llvm::ConstantExpr::getBitCast(protocol,
1729 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1747 llvm::Constant *CGObjCGNU::GenerateEmptyProtocol(
1750 SmallVector<llvm::Constant*, 0> EmptyConstantVector;
1752 llvm::Constant *ProtocolList = GenerateProtocolList(EmptyStringVector);
1753 llvm::Constant *MethodList =
1765 std::vector<llvm::Constant*> Elements;
1791 SmallVector<llvm::Constant*, 16> InstanceMethodNames;
1792 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
1793 SmallVector<llvm::Constant*, 16> OptionalInstanceMethodNames;
1794 SmallVector<llvm::Constant*, 16> OptionalInstanceMethodTypes;
1809 SmallVector<llvm::Constant*, 16> ClassMethodNames;
1810 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
1811 SmallVector<llvm::Constant*, 16> OptionalClassMethodNames;
1812 SmallVector<llvm::Constant*, 16> OptionalClassMethodTypes;
1827 llvm::Constant *ProtocolList = GenerateProtocolList(Protocols);
1828 llvm::Constant *InstanceMethodList =
1830 llvm::Constant *ClassMethodList =
1832 llvm::Constant *OptionalInstanceMethodList =
1835 llvm::Constant *OptionalClassMethodList =
1847 std::vector<llvm::Constant*> Properties;
1848 std::vector<llvm::Constant
1853 std::vector<llvm::Constant*> Fields;
1861 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
1872 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
1886 llvm::Constant *PropertyArray = llvm::ConstantArray::get(
1888 llvm::Constant* PropertyListInitFields[] =
1891 llvm::Constant *PropertyListInit =
1893 llvm::Constant *PropertyList = new llvm::GlobalVariable(TheModule,
1897 llvm::Constant *OptionalPropertyArray =
1900 llvm::Constant* OptionalPropertyListInitFields[] = {
1904 llvm::Constant *OptionalPropertyListInit =
1906 llvm::Constant *OptionalPropertyList = new llvm::GlobalVariable(TheModule,
1923 std::vector<llvm::Constant*> Elements;
1943 SmallVector<llvm::Constant*, 1> MethodTypes;
1945 std::vector<llvm::Constant*> Elements;
1964 std::vector<llvm::Constant*> ProtocolElements;
1965 for (llvm::StringMapIterator<llvm::Constant*> iter =
1968 llvm::Constant *Ptr = llvm::ConstantExpr::getBitCast(iter->getValue(),
1972 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1999 llvm::Constant *CGObjCGNU::MakeBitField(ArrayRef<bool> bits) {
2009 SmallVector<llvm::Constant *, 8> values;
2020 llvm::Constant *array = llvm::ConstantArray::get(arrayTy, values);
2021 llvm::Constant *fields[2] = {
2024 llvm::Constant *GS = MakeGlobal(llvm::StructType::get(Int32Ty, arrayTy,
2026 llvm::Constant *ptr = llvm::ConstantExpr::getPtrToInt(GS, IntPtrTy);
2035 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
2045 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
2061 std::vector<llvm::Constant*> Elements;
2081 llvm::Constant *CGObjCGNU::GeneratePropertyList(const ObjCImplementationDecl *OID,
2083 SmallVectorImpl<llvm::Constant*> &InstanceMethodTypes) {
2090 std::vector<llvm::Constant*> Properties;
2095 std::vector<llvm::Constant*> Fields;
2107 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
2121 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
2136 llvm::Constant *PropertyArray = llvm::ConstantArray::get(PropertyArrayTy,
2138 llvm::Constant* PropertyListInitFields[] =
2141 llvm::Constant *PropertyListInit =
2189 SmallVector<llvm::Constant*, 16> IvarNames;
2190 SmallVector<llvm::Constant*, 16> IvarTypes;
2191 SmallVector<llvm::Constant*, 16> IvarOffsets;
2193 std::vector<llvm::Constant*> IvarOffsetValues;
2219 llvm::Constant *OffsetValue = llvm::ConstantInt::get(IntTy, Offset);
2253 llvm::Constant *StrongIvarBitmap = MakeBitField(StrongIvars);
2254 llvm::Constant *WeakIvarBitmap = MakeBitField(WeakIvars);
2262 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
2270 llvm::Constant *Properties = GeneratePropertyList(OID, InstanceMethodSels,
2276 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
2289 llvm::Constant *SuperClass;
2296 SmallVector<llvm::Constant*, 1> empty;
2298 llvm::Constant *MethodList = GenerateMethodList(ClassName, "",
2300 llvm::Constant *ClassMethodList = GenerateMethodList(ClassName, "",
2302 llvm::Constant *IvarList = GenerateIvarList(IvarNames, IvarTypes,
2315 llvm::Constant *offsetPointerIndexes[] = {Zeros[0],
2326 llvm::Constant *offsetValue = llvm::ConstantExpr::getGetElementPtr(
2345 llvm::Constant *ZeroPtr = llvm::ConstantInt::get(IntPtrTy, 0);
2347 llvm::Constant *MetaClassStruct = GenerateClassStructure(NULLPtr,
2353 llvm::Constant *ClassStruct =
2397 std::vector<llvm::Constant*> Elements;
2398 llvm::Constant *Statics = NULLPtr;
2423 Elements.push_back(llvm::Constant::getNullValue(StaticsListPtrTy));
2428 // Array of classes, categories, and constant objects
2438 std::vector<llvm::Constant*> Selectors;
2444 llvm::Constant *SelName = ExportUniqueString(SelNameStr, ".objc_sel_name");
2450 llvm::Constant *SelectorTypeEncoding = NULLPtr;
2484 llvm::Constant *Idxs[] = {Zeros[0],
2487 llvm::Constant *SelPtr = llvm::ConstantExpr::getGetElementPtr(
2504 // NULL-terminated list of static object instances (mainly constant strings)
2507 llvm::Constant *ClassList = llvm::ConstantArray::get(ClassListTy, Classes);
2510 llvm::Constant *SymTab =
2587 llvm::Constant::getNullValue(RegisterAlias->getType()));
2595 llvm::Constant *TheClass =
2638 llvm::Constant *CGObjCGNU::GetPropertyGetFunction() {
2642 llvm::Constant *CGObjCGNU::GetPropertySetFunction() {
2646 llvm::Constant *CGObjCGNU::GetOptimizedPropertySetFunction(bool atomic,
2651 llvm::Constant *CGObjCGNU::GetGetStructFunction() {
2654 llvm::Constant *CGObjCGNU::GetSetStructFunction() {
2657 llvm::Constant *CGObjCGNU::GetCppAtomicObjectGetFunction() {
2660 llvm::Constant *CGObjCGNU::GetCppAtomicObjectSetFunction() {
2664 llvm::Constant *CGObjCGNU::EnumerationMutationFunction() {
2864 llvm::Constant::getNullValue(IntTy), name);