Lines Matching refs:DIE
30 CompileUnit::CompileUnit(unsigned I, DIE *D, AsmPrinter *A, DwarfDebug *DW)
43 DIEEntry *CompileUnit::createDIEEntry(DIE *Entry) {
50 void CompileUnit::addUInt(DIE *Die, unsigned Attribute,
55 Die->addValue(Attribute, Form, Value);
60 void CompileUnit::addSInt(DIE *Die, unsigned Attribute,
64 Die->addValue(Attribute, Form, Value);
69 void CompileUnit::addString(DIE *Die, unsigned Attribute, unsigned Form,
72 Die->addValue(Attribute, Form, Value);
77 void CompileUnit::addLabel(DIE *Die, unsigned Attribute, unsigned Form,
80 Die->addValue(Attribute, Form, Value);
85 void CompileUnit::addDelta(DIE *Die, unsigned Attribute, unsigned Form,
88 Die->addValue(Attribute, Form, Value);
91 /// addDIEEntry - Add a DIE attribute data and value.
93 void CompileUnit::addDIEEntry(DIE *Die, unsigned Attribute, unsigned Form,
94 DIE *Entry) {
95 Die->addValue(Attribute, Form, createDIEEntry(Entry));
101 void CompileUnit::addBlock(DIE *Die, unsigned Attribute, unsigned Form,
105 Die->addValue(Attribute, Block->BestForm(), Block);
110 void CompileUnit::addSourceLine(DIE *Die, DIVariable V) {
121 addUInt(Die, dwarf::DW_AT_decl_file, 0, FileID);
122 addUInt(Die, dwarf::DW_AT_decl_line, 0, Line);
127 void CompileUnit::addSourceLine(DIE *Die, DIGlobalVariable G) {
138 addUInt(Die, dwarf::DW_AT_decl_file, 0, FileID);
139 addUInt(Die, dwarf::DW_AT_decl_line, 0, Line);
144 void CompileUnit::addSourceLine(DIE *Die, DISubprogram SP) {
157 addUInt(Die, dwarf::DW_AT_decl_file, 0, FileID);
158 addUInt(Die, dwarf::DW_AT_decl_line, 0, Line);
163 void CompileUnit::addSourceLine(DIE *Die, DIType Ty) {
173 addUInt(Die, dwarf::DW_AT_decl_file, 0, FileID);
174 addUInt(Die, dwarf::DW_AT_decl_line, 0, Line);
179 void CompileUnit::addSourceLine(DIE *Die, DINameSpace NS) {
191 addUInt(Die, dwarf::DW_AT_decl_file, 0, FileID);
192 addUInt(Die, dwarf::DW_AT_decl_line, 0, Line);
197 void CompileUnit::addVariableAddress(DbgVariable *&DV, DIE *Die,
200 addComplexAddress(DV, Die, dwarf::DW_AT_location, Location);
202 addBlockByrefAddress(DV, Die, dwarf::DW_AT_location, Location);
204 addAddress(Die, dwarf::DW_AT_location, Location);
208 void CompileUnit::addRegisterOp(DIE *TheDie, unsigned Reg) {
220 void CompileUnit::addRegisterOffset(DIE *TheDie, unsigned Reg,
237 /// addAddress - Add an address attribute to a die based on the location
239 void CompileUnit::addAddress(DIE *Die, unsigned Attribute,
248 // Now attach the location information to the DIE.
249 addBlock(Die, Attribute, 0, Block);
255 /// the starting location. Add the DWARF information to the die.
257 void CompileUnit::addComplexAddress(DbgVariable *&DV, DIE *Die,
285 // Now attach the location information to the DIE.
286 addBlock(Die, Attribute, 0, Block);
346 /// starting location. Add the DWARF information to the die. For
349 void CompileUnit::addBlockByrefAddress(DbgVariable *&DV, DIE *Die,
438 DIE.
439 addBlock(Die, Attribute, 0, Block);
442 /// addConstantValue - Add constant value entry in variable DIE.
443 bool CompileUnit::addConstantValue(DIE *Die, const MachineOperand &MO,
464 addBlock(Die, dwarf::DW_AT_const_value, 0, Block);
468 /// addConstantFPValue - Add constant value entry in variable DIE.
469 bool CompileUnit::addConstantFPValue(DIE *Die, const MachineOperand &MO) {
489 addBlock(Die, dwarf::DW_AT_const_value, 0, Block);
493 /// addConstantValue - Add constant value entry in variable DIE.
494 bool CompileUnit::addConstantValue(DIE *Die, const ConstantInt *CI,
508 addUInt(Die, dwarf::DW_AT_const_value, form, CI->getZExtValue());
510 addSInt(Die, dwarf::DW_AT_const_value, form, CI->getSExtValue());
531 addBlock(Die, dwarf::DW_AT_const_value, 0, Block);
536 void CompileUnit::addTemplateParams(DIE &Buffer, DIArray TParams) {
549 /// addToContextOwner - Add Die into the list of its context owner's children.
550 void CompileUnit::addToContextOwner(DIE *Die, DIDescriptor Context) {
552 DIE *ContextDIE = getOrCreateTypeDIE(DIType(Context));
553 ContextDIE->addChild(Die);
555 DIE *ContextDIE = getOrCreateNameSpace(DINameSpace(Context));
556 ContextDIE->addChild(Die);
558 DIE *ContextDIE = DD->createSubprogramDIE(DISubprogram(Context));
559 ContextDIE->addChild(Die);
560 } else if (DIE *ContextDIE = getDIE(Context))
561 ContextDIE->addChild(Die);
563 addDie(Die);
566 /// getOrCreateTypeDIE - Find existing DIE or create new DIE for the
568 DIE *CompileUnit::getOrCreateTypeDIE(DIType Ty) {
569 DIE *TyDIE = getDIE(Ty);
574 TyDIE = new DIE(dwarf::DW_TAG_base_type);
590 void CompileUnit::addType(DIE *Entity, DIType Ty) {
603 DIE *Buffer = getOrCreateTypeDIE(Ty);
641 /// constructTypeDIE - Construct basic type die from DIBasicType.
642 void CompileUnit::constructTypeDIE(DIE &Buffer, DIBasicType BTy) {
656 /// constructTypeDIE - Construct derived type die from DIDerivedType.
657 void CompileUnit::constructTypeDIE(DIE &Buffer, DIDerivedType DTy) {
685 /// constructTypeDIE - Construct type DIE from DICompositeType.
686 void CompileUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) {
704 DIE *ElemDie = NULL;
724 DIE *Arg = new DIE(dwarf::DW_TAG_unspecified_parameters);
728 DIE *Arg = new DIE(dwarf::DW_TAG_formal_parameter);
752 DIE *ElemDie = NULL;
770 ElemDie = new DIE(dwarf::DW_TAG_variable);
838 /// getOrCreateTemplateTypeParameterDIE - Find existing DIE or create new DIE
840 DIE *
842 DIE *ParamDIE = getDIE(TP);
846 ParamDIE = new DIE(dwarf::DW_TAG_template_type_parameter);
852 /// getOrCreateTemplateValueParameterDIE - Find existing DIE or create new DIE
854 DIE *
856 DIE *ParamDIE = getDIE(TPV);
860 ParamDIE = new DIE(dwarf::DW_TAG_template_value_parameter);
869 /// getOrCreateNameSpace - Create a DIE for DINameSpace.
870 DIE *CompileUnit::getOrCreateNameSpace(DINameSpace NS) {
871 DIE *NDie = getDIE(NS);
874 NDie = new DIE(dwarf::DW_TAG_namespace);
883 /// constructSubrangeDIE - Construct subrange DIE from DISubrange.
884 void CompileUnit::constructSubrangeDIE(DIE &Buffer, DISubrange SR, DIE *IndexTy){
885 DIE *DW_Subrange = new DIE(dwarf::DW_TAG_subrange_type);
906 /// constructArrayTypeDIE - Construct array type DIE from DICompositeType.
907 void CompileUnit::constructArrayTypeDIE(DIE &Buffer,
918 DIE *IdxTy = getIndexTyDie();
921 IdxTy = new DIE(dwarf::DW_TAG_base_type);
937 /// constructEnumTypeDIE - Construct enum type DIE from DIEnumerator.
938 DIE *CompileUnit::constructEnumTypeDIE(DIEnumerator ETy) {
939 DIE *Enumerator = new DIE(dwarf::DW_TAG_enumerator);
947 /// createMemberDIE - Create new member DIE.
948 DIE *CompileUnit::createMemberDIE(DIDerivedType DT) {
949 DIE *MemberDie = new DIE(DT.getTag());