Home | History | Annotate | Download | only in CodeGen

Lines Matching full:constant

51   llvm::Constant *Function;
76 /// LLVM constant.
77 operator llvm::Constant*() {
85 cast<llvm::Constant>(CGM->CreateRuntimeFunction(FTy, FunctionName));
93 return cast<llvm::Function>((llvm::Constant*)*this);
168 /// Helper function that generates a constant string and returns a pointer to
171 llvm::Constant *MakeConstantString(const std::string &Str,
173 llvm::Constant *ConstStr = CGM.GetAddrOfConstantCString(Str, Name.c_str());
180 llvm::Constant *ExportUniqueString(const std::string &Str,
183 llvm::Constant *ConstStr = TheModule.getGlobalVariable(name);
185 llvm::Constant *value = llvm::ConstantDataArray::getString(VMContext,Str);
195 ArrayRef<llvm::Constant *> V,
199 llvm::Constant *C = llvm::ConstantStruct::get(Ty, V);
207 ArrayRef<llvm::Constant *> V,
211 llvm::Constant *C = llvm::ConstantArray::get(Ty, V);
218 ArrayRef<llvm::Constant *> V,
226 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 virtual llvm::Constant *GenerateConstantString(const StringLiteral *);
510 virtual llvm::Constant *GetEHType(QualType T);
521 virtual llvm::Constant *GetPropertyGetFunction();
522 virtual llvm::Constant *GetPropertySetFunction();
523 virtual llvm::Constant *GetOptimizedPropertySetFunction(bool atomic,
525 virtual llvm::Constant *GetSetStructFunction();
526 virtual llvm::Constant *GetGetStructFunction();
527 virtual llvm::Constant *GetCppAtomicObjectGetFunction();
528 virtual llvm::Constant *GetCppAtomicObjectSetFunction();
529 virtual llvm::Constant *EnumerationMutationFunction();
563 virtual llvm::Constant *BuildGCBlockLayout(CodeGenModule &CGM,
567 virtual llvm::Constant *BuildRCBlockLayout(CodeGenModule &CGM,
572 virtual llvm::Constant *BuildByrefLayout(CodeGenModule &CGM,
657 virtual llvm::Constant *GetEHType(QualType T);
763 virtual llvm::Constant *GetCppAtomicObjectGetFunction() {
770 virtual llvm::Constant *GetCppAtomicObjectSetFunction() {
777 virtual llvm::Constant *GetOptimizedPropertySetFunction(bool atomic,
1050 llvm::Constant *ClassLookupFn =
1108 llvm::Constant *CGObjCGNU::GetEHType(QualType T) {
1129 llvm::Constant *CGObjCGNUstep::GetEHType(QualType T) {
1139 llvm::Constant *IDEHType =
1160 llvm::Constant *typeinfo = TheModule.getGlobalVariable(typeinfoName);
1170 llvm::Constant *Vtable = TheModule.getGlobalVariable(vtableName);
1175 llvm::Constant *Two = llvm::ConstantInt::get(IntTy, 2);
1179 llvm::Constant *typeName =
1182 std::vector<llvm::Constant*> fields;
1185 llvm::Constant *TI =
1193 llvm::Constant *CGObjCGNU::GenerateConstantString(const StringLiteral *SL) {
1198 llvm::StringMap<llvm::Constant*>::iterator old = ObjCStrings.find(Str);
1209 llvm::Constant *isa = TheModule.getNamedGlobal(Sym);
1217 std::vector<llvm::Constant*> Ivars;
1221 llvm::Constant *ObjCStr = MakeGlobal(
1268 llvm::Constant *classLookupFunction = 0;
1382 llvm::Constant::getNullValue(Receiver->getType()));
1455 phi->addIncoming(llvm::Constant::getNullValue(v->getType()), startBB);
1464 llvm::Constant::getNullValue(RetTy->getElementType()));
1472 phi->addIncoming(llvm::Constant::getNullValue(v.first->getType()),
1476 phi2->addIncoming(llvm::Constant::getNullValue(v.second->getType()),
1486 llvm::Constant *CGObjCGNU::
1490 ArrayRef<llvm::Constant *> MethodTypes,
1500 std::vector<llvm::Constant*> Methods;
1501 std::vector<llvm::Constant*> Elements;
1504 llvm::Constant *Method =
1509 llvm::Constant *C = MakeConstantString(MethodSels[i].getAsString());
1521 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;
1584 llvm::Constant *CGObjCGNU::GenerateClassStructure(
1585 llvm::Constant *MetaClass,
1586 llvm::Constant *SuperClass,
1589 llvm::Constant *Version,
1590 llvm::Constant *InstanceSize,
1591 llvm::Constant *IVars,
1592 llvm::Constant *Methods,
1593 llvm::Constant *Protocols,
1594 llvm::Constant *IvarOffsets,
1595 llvm::Constant *Properties,
1596 llvm::Constant *StrongIvarBitmap,
1597 llvm::Constant *WeakIvarBitmap,
1628 llvm::Constant *Zero = llvm::ConstantInt::get(LongTy, 0);
1630 std::vector<llvm::Constant*> Elements;
1663 llvm::Constant *Class = MakeGlobal(ClassTy, Elements, ClassSym,
1674 llvm::Constant *CGObjCGNU::
1675 GenerateProtocolMethodList(ArrayRef<llvm::Constant *> MethodNames,
1676 ArrayRef<llvm::Constant *> MethodTypes) {
1682 std::vector<llvm::Constant*> Methods;
1683 std::vector<llvm::Constant*> Elements;
1692 llvm::Constant *Array = llvm::ConstantArray::get(ObjCMethodArrayTy,
1703 llvm::Constant *CGObjCGNU::GenerateProtocolList(ArrayRef<std::string>Protocols){
1711 std::vector<llvm::Constant*> Elements;
1714 llvm::Constant *protocol = 0;
1715 llvm::StringMap<llvm::Constant*>::iterator value =
1722 llvm::Constant *Ptr = llvm::ConstantExpr::getBitCast(protocol,
1726 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1743 llvm::Constant *CGObjCGNU::GenerateEmptyProtocol(
1746 SmallVector<llvm::Constant*, 0> EmptyConstantVector;
1748 llvm::Constant *ProtocolList = GenerateProtocolList(EmptyStringVector);
1749 llvm::Constant *MethodList =
1761 std::vector<llvm::Constant*> Elements;
1787 SmallVector<llvm::Constant*, 16> InstanceMethodNames;
1788 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
1789 SmallVector<llvm::Constant*, 16> OptionalInstanceMethodNames;
1790 SmallVector<llvm::Constant*, 16> OptionalInstanceMethodTypes;
1806 SmallVector<llvm::Constant*, 16> ClassMethodNames;
1807 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
1808 SmallVector<llvm::Constant*, 16> OptionalClassMethodNames;
1809 SmallVector<llvm::Constant*, 16> OptionalClassMethodTypes;
1826 llvm::Constant *ProtocolList = GenerateProtocolList(Protocols);
1827 llvm::Constant *InstanceMethodList =
1829 llvm::Constant *ClassMethodList =
1831 llvm::Constant *OptionalInstanceMethodList =
1834 llvm::Constant *OptionalClassMethodList =
1846 std::vector<llvm::Constant*> Properties;
1847 std::vector<llvm::Constant*> OptionalProperties;
1854 std::vector<llvm::Constant*> Fields;
1863 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
1874 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
1888 llvm::Constant *PropertyArray = llvm::ConstantArray::get(
1890 llvm::Constant* PropertyListInitFields[] =
1893 llvm::Constant *PropertyListInit =
1895 llvm::Constant *PropertyList = new llvm::GlobalVariable(TheModule,
1899 llvm::Constant *OptionalPropertyArray =
1902 llvm::Constant* OptionalPropertyListInitFields[] = {
1906 llvm::Constant *OptionalPropertyListInit =
1908 llvm::Constant *OptionalPropertyList = new llvm::GlobalVariable(TheModule,
1925 std::vector<llvm::Constant*> Elements;
1945 SmallVector<llvm::Constant*, 1> MethodTypes;
1947 std::vector<llvm::Constant*> Elements;
1966 std::vector<llvm::Constant*> ProtocolElements;
1967 for (llvm::StringMapIterator<llvm::Constant*> iter =
1970 llvm::Constant *Ptr = llvm::ConstantExpr::getBitCast(iter->getValue(),
1974 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1999 llvm::Constant *CGObjCGNU::MakeBitField(ArrayRef<bool> bits) {
2010 SmallVector<llvm::Constant *, 8> values;
2021 llvm::Constant *array = llvm::ConstantArray::get(arrayTy, values);
2022 llvm::Constant *fields[2] = {
2025 llvm::Constant *GS = MakeGlobal(llvm::StructType::get(Int32Ty, arrayTy,
2027 llvm::Constant *ptr = llvm::ConstantExpr::getPtrToInt(GS, IntPtrTy);
2036 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
2048 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
2066 std::vector<llvm::Constant*> Elements;
2085 llvm::Constant *CGObjCGNU::GeneratePropertyList(const ObjCImplementationDecl *OID,
2087 SmallVectorImpl<llvm::Constant*> &InstanceMethodTypes) {
2094 std::vector<llvm::Constant*> Properties;
2101 std::vector<llvm::Constant*> Fields;
2114 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
2128 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
2143 llvm::Constant *PropertyArray = llvm::ConstantArray::get(PropertyArrayTy,
2145 llvm::Constant* PropertyListInitFields[] =
2148 llvm::Constant *PropertyListInit =
2197 SmallVector<llvm::Constant*, 16> IvarNames;
2198 SmallVector<llvm::Constant*, 16> IvarTypes;
2199 SmallVector<llvm::Constant*, 16> IvarOffsets;
2201 std::vector<llvm::Constant*> IvarOffsetValues;
2227 llvm::Constant *OffsetValue = llvm::ConstantInt::get(IntTy, Offset);
2261 llvm::Constant *StrongIvarBitmap = MakeBitField(StrongIvars);
2262 llvm::Constant *WeakIvarBitmap = MakeBitField(WeakIvars);
2269 SmallVector<llvm::Constant*, 16> InstanceMethodTypes;
2279 llvm::Constant *Properties = GeneratePropertyList(OID, InstanceMethodSels,
2285 SmallVector<llvm::Constant*, 16> ClassMethodTypes;
2304 llvm::Constant *SuperClass;
2311 SmallVector<llvm::Constant*, 1> empty;
2313 llvm::Constant *MethodList = GenerateMethodList(ClassName, "",
2315 llvm::Constant *ClassMethodList = GenerateMethodList(ClassName, "",
2317 llvm::Constant *IvarList = GenerateIvarList(IvarNames, IvarTypes,
2330 llvm::Constant *offsetPointerIndexes[] = {Zeros[0],
2341 llvm::Constant *offsetValue = llvm::ConstantExpr::getGetElementPtr(
2359 llvm::Constant *ZeroPtr = llvm::ConstantInt::get(IntPtrTy, 0);
2361 llvm::Constant *MetaClassStruct = GenerateClassStructure(NULLPtr,
2367 llvm::Constant *ClassStruct =
2411 std::vector<llvm::Constant*> Elements;
2412 llvm::Constant *Statics = NULLPtr;
2436 Elements.push_back(llvm::Constant::getNullValue(StaticsListPtrTy));
2440 // Array of classes, categories, and constant objects
2450 std::vector<llvm::Constant*> Selectors;
2456 llvm::Constant *SelName = ExportUniqueString(SelNameStr, ".objc_sel_name");
2462 llvm::Constant *SelectorTypeEncoding = NULLPtr;
2487 llvm::Constant *SelectorList = MakeGlobalArray(SelStructTy, Selectors,
2495 llvm::Constant *Idxs[] = {Zeros[0],
2498 llvm::Constant *SelPtr = llvm::ConstantExpr::getGetElementPtr(SelectorList,
2515 // NULL-terminated list of static object instances (mainly constant strings)
2518 llvm::Constant *ClassList = llvm::ConstantArray::get(ClassListTy, Classes);
2521 llvm::Constant *SymTab= MakeGlobal(SymTabTy, Elements);
2597 llvm::Constant::getNullValue(RegisterAlias->getType()));
2605 llvm::Constant *TheClass =
2648 llvm::Constant *CGObjCGNU::GetPropertyGetFunction() {
2652 llvm::Constant *CGObjCGNU::GetPropertySetFunction() {
2656 llvm::Constant *CGObjCGNU::GetOptimizedPropertySetFunction(bool atomic,
2661 llvm::Constant *CGObjCGNU::GetGetStructFunction() {
2664 llvm::Constant *CGObjCGNU::GetSetStructFunction() {
2667 llvm::Constant *CGObjCGNU::GetCppAtomicObjectGetFunction() {
2670 llvm::Constant *CGObjCGNU::GetCppAtomicObjectSetFunction() {
2674 llvm::Constant *CGObjCGNU::EnumerationMutationFunction() {
2868 llvm::Constant::getNullValue(IntTy), name);