Skip to content
  1. Sep 19, 2013
  2. Sep 17, 2013
  3. Sep 16, 2013
  4. Sep 11, 2013
  5. Sep 10, 2013
    • Manman Ren's avatar
      Debug Info: define a DIRef template. · 34b3dcc3
      Manman Ren authored
      Specialize the constructors for DIRef<DIScope> and DIRef<DIType> to make sure
      the Value is indeed a scope ref and a type ref.
      
      Use DIScopeRef for DIScope::getContext and DIType::getContext and use DITypeRef
      for getContainingType and getClassType.
      
      DIScope::generateRef now returns a DIScopeRef instead of a "Value *" for
      readability and type safety.
      
      llvm-svn: 190418
      34b3dcc3
    • Manman Ren's avatar
      Debug Info: In DIBuilder, the context fields of a TAG_inheritance and a · 15b2abf2
      Manman Ren authored
      TAG_friend are updated to use scope reference.
      
      Added testing cases to verify that class with inheritance can be uniqued.
      
      llvm-svn: 190364
      15b2abf2
    • Manman Ren's avatar
      Debug Info: move DIScope::getContext back from DwarfDebug. · de897a36
      Manman Ren authored
      This partially reverts r190330. DIScope::getContext now returns DIScopeRef
      instead of DIScope. We construct a DIScopeRef from DIScope when we are
      dealing with subprogram, lexical block or name space.
      
      llvm-svn: 190362
      de897a36
  6. Sep 09, 2013
    • Manman Ren's avatar
      Debug Info: Use DIScopeRef for DIType::getContext. · 116868ea
      Manman Ren authored
          
      In DIBuilder, the context field of a TAG_member is updated to use the
      scope reference. Verifier is updated accordingly.
          
      DebugInfoFinder now needs to generate a type identifier map to have
      access to the actual scope. Same applies for BreakpointPrinter.
          
      processModule of DebugInfoFinder is called during initialization phase
      of the verifier to make sure the type identifier map is constructed early
      enough.
          
      We are now able to unique a simple class as demonstrated by the added
      testing case.
      
      llvm-svn: 190334
      116868ea
    • Manman Ren's avatar
      Debug Info: move DIScope::getContext to DwarfDebug. · 33796c5e
      Manman Ren authored
          
      DIScope::getContext is a wrapper function that calls the specific getContext
      method on each subclass. When we switch DIType::getContext to return DIScopeRef
      instead of DIScope, DIScope::getContext can no longer return a DIScope without
      a type identifier map.
          
      DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug
      to have easy access to the type identifier map.
      
      llvm-svn: 190330
      33796c5e
    • Bob Wilson's avatar
      Revert patches to add case-range support for PR1255. · e407736a
      Bob Wilson authored
      The work on this project was left in an unfinished and inconsistent state.
      Hopefully someone will eventually get a chance to implement this feature, but
      in the meantime, it is better to put things back the way the were.  I have
      left support in the bitcode reader to handle the case-range bitcode format,
      so that we do not lose bitcode compatibility with the llvm 3.3 release.
      
      This reverts the following commits: 155464, 156374, 156377, 156613, 156704,
      156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575,
      157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884,
      157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100,
      159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659,
      159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736
      
      llvm-svn: 190328
      e407736a
    • Manman Ren's avatar
      Debug Info: Move isSubprogramContext from DebugInfo to DwarfDebug. · 3eb9dffc
      Manman Ren authored
      This helper function needs the type identifier map when we switch
      DIType::getContext to return DIScopeRef instead of DIScope.
      
      Since isSubprogramContext is used by DwarfDebug only, We move it to DwarfDebug
      to have easy access to the map.
      
      llvm-svn: 190325
      3eb9dffc
    • Manman Ren's avatar
      Debug Info: Rename DITypeRef to DIScopeRef. · 856191b0
      Manman Ren authored
      A reference to a scope is more general than a reference to a type since
      DIType is a subclass of DIScope.
      
      A reference to a type can be either an identifier for the type or
      the DIType itself, while a reference to a scope can be either an
      identifier for the type (when the scope is indeed a type) or the
      DIScope itself. A reference to a type and a reference to a scope
      will be resolved in the same way. The only difference is in the
      verifier when a field is a reference to a type (i.e. the containing
      type field of a DICompositeType) or a field is a reference to a scope
      (i.e. the context field of a DIType).
      
      This is to get ready for switching DIType::getContext to return
      DIScopeRef instead of DIScope.
      
      Tighten up isTypeRef and isScopeRef to make sure the identifier is not
      empty and the MDNode is DIType for TypeRef and DIScope for ScopeRef.
      
      llvm-svn: 190322
      856191b0
    • Manman Ren's avatar
      Debug Info: Update isScope to make sure DIType is a scope and · 473c1988
      Manman Ren authored
      TAG_file_type is also a scope.
      
      llvm-svn: 190321
      473c1988
  7. Sep 08, 2013
  8. Sep 07, 2013
  9. Sep 06, 2013
  10. Sep 05, 2013
    • Manman Ren's avatar
      Debug Info: Use identifier to reference DIType in base type field of · 60352032
      Manman Ren authored
      ptr_to_member.
      
      We introduce a new class DITypeRef that represents a reference to a DIType.
      It wraps around a Value*, which can be either an identifier in MDString
      or an actual MDNode. The class has a helper function "resolve" that
      finds the actual MDNode for a given DITypeRef.
      
      We specialize getFieldAs to return a field that is a reference to a
      DIType. To correctly access the base type field of ptr_to_member,
      getClassType now calls getFieldAs<DITypeRef> to return a DITypeRef.
      
      Also add a typedef for DITypeIdentifierMap and a helper
      generateDITypeIdentifierMap in DebugInfo.h. In DwarfDebug.cpp, we keep
      a DITypeIdentifierMap and call generateDITypeIdentifierMap to actually
      populate the map.
      
      Verifier is updated accordingly.
      
      llvm-svn: 190081
      60352032
  11. Aug 30, 2013
    • Manman Ren's avatar
      DIBuilder: retain a type when created with a unique identifier. · 0b410407
      Manman Ren authored
      createClassType, createStructType, createUnionType, createEnumerationType,
      and createForwardDecl will retain a type when created with a unique identifier,
      to make sure they are treated as used even when all uses are replaced with
      the identifiers.
      
      Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created
      node can later be updated.
      
      The change will be tested when clients of DIBuilder start to pass in non-empty
      unique identifier.
      
      llvm-svn: 189621
      0b410407
  12. Aug 28, 2013
  13. Aug 27, 2013
    • Manman Ren's avatar
      Debug Info: add an identifier field to DICompositeType. · 0ed70aeb
      Manman Ren authored
      DICompositeType will have an identifier field at position 14. For now, the
      field is set to null in DIBuilder.
      For DICompositeTypes where the template argument field (the 13th field)
      was optional, modify DIBuilder to make sure the template argument field is set.
      Now DICompositeType has 15 fields.
      
      Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode.
      Update verifier to check that DICompositeType has 15 fields and the last
      field is null or a MDString.
      
      Update testing cases to include an extra field for DICompositeType.
      The identifier field will be used by type uniquing so a front end can
      genearte a DICompositeType with a unique identifer.
      
      llvm-svn: 189282
      0ed70aeb
  14. Aug 25, 2013
    • Chandler Carruth's avatar
      Fix a bug where we would corrupt the offset when evaluating · ba689b33
      Chandler Carruth authored
      a non-constant GEP.
      
      I don't have any test case that demonstrates this, Nadav (indirectly)
      pointed this out in code review. I'm not sure how possible it is to
      contrive a test case for the current users of this code that triggers
      the bad issue sadly.
      
      llvm-svn: 189188
      ba689b33
  15. Aug 24, 2013
  16. Aug 23, 2013
  17. Aug 22, 2013
  18. Aug 20, 2013
  19. Aug 16, 2013
  20. Aug 14, 2013
  21. Aug 09, 2013
  22. Aug 08, 2013
Loading