Skip to content
  1. Oct 29, 2013
    • Manman Ren's avatar
      Debug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug. · 4a841a86
      Manman Ren authored
      This commit ensures DIEs are constructed within a compile unit and
      immediately added to their parents.
      
      Reviewed off-list by Eric.
      
      llvm-svn: 193568
      4a841a86
    • Manman Ren's avatar
      Debug Info: use createAndAddDIE for newly-created Subprogram DIEs. · 73d697c6
      Manman Ren authored
      More patches will be submitted to convert "new DIE(" to use createAddAndDIE in
      DwarfCompileUnit.cpp. This will simplify implementation of addDIEEntry where
      we have to decide between ref4 and ref_addr, because DIEs that can be shared
      across CU will be added to a CU already.
      
      Reviewed off-list by Eric.
      
      llvm-svn: 193567
      73d697c6
    • Manman Ren's avatar
      Debug Info: add a helper function createAndAddDIE. · b987e517
      Manman Ren authored
      It wraps around "new DIE(" and handles the bookkeeping part of the newly-created
      DIE. It adds the DIE to its parent, and calls insertDIE if necessary. It makes
      sure that bookkeeping is done at the earliest time and we should not see
      parentless DIEs if all constructions of DIEs go through this helper function.
      
      Later on, we can use an allocator for DIE allocation, and will only need to
      change createAndAddDIE instead of modifying all the "new DIE(".
      
      Reviewed off-list by Eric.
      
      llvm-svn: 193566
      b987e517
  2. Oct 28, 2013
    • Richard Sandiford's avatar
      [DAGCombiner] Respect volatility when checking for aliases · 981fdeb4
      Richard Sandiford authored
      Making useAA() default to true for SystemZ showed that the combiner alias
      analysis wasn't handling volatile accesses.  This hit many of the SystemZ
      tests, but I arbitrarily picked one for the purpose of this patch.
      
      llvm-svn: 193518
      981fdeb4
    • Richard Sandiford's avatar
      Keep TBAA info when rewriting SelectionDAG loads and stores · 39c1ce4d
      Richard Sandiford authored
      Most SelectionDAG code drops the TBAA info when creating a new form of a
      load and store (e.g. during legalization, or when converting a plain
      load to an extending one).  This patch tries to catch all cases where
      the TBAA information can legitimately be carried over.
      
      The patch adds alternative forms of getLoad() and getExtLoad() that take
      a MachineMemOperand instead of individual fields.  (The corresponding
      getTruncStore() already exists.)  The idea is to use the MachineMemOperand
      forms when all fields are carried over (size, pointer info, isVolatile,
      isNonTemporal, alignment and TBAA info).  If some adjustment is being
      made, e.g. to narrow the load, then we still pass the individual fields
      but also pass the TBAA info.
      
      llvm-svn: 193517
      39c1ce4d
  3. Oct 25, 2013
  4. Oct 24, 2013
  5. Oct 23, 2013
  6. Oct 22, 2013
    • Manman Ren's avatar
      Debug Info: code clean up. · 642a0acc
      Manman Ren authored
      Remove unnecessary creation of LexicalScope in collectDeadVariables.
      The created LexicialScope was only used to get isAbstractScope, which
      should be false from the creation:
      "new LexicalScope(NULL, DIDescriptor(SP), NULL, false);".
      
      We can also remove a DenseMap that holds the created LexicalScopes.
      
      llvm-svn: 193196
      642a0acc
    • David Blaikie's avatar
      DIEHashing: Provide an assert for unreachable functionality regarding friends. · 5ebc54d9
      David Blaikie authored
      Since (as of r190716) Clang no longer emits debug info for C++ friend
      declarations (and it seems GCC never has/does, which was the motivation
      for the Clang change), there's no actual reachable case for implementing
      the part of DWARF 4, Section 7.27 part 5 that pertains to friends.
      
      Leave an assert here so that if/when we do have a client producing
      friends and using type units, we can fill in the gap and add appropriate
      (unit and feature) tests.
      
      llvm-svn: 193193
      5ebc54d9
    • David Blaikie's avatar
      DWARF type hashing: pointers to members · d70a0553
      David Blaikie authored
      Includes a test case/FIXME demonstrating a bug/limitation in pointer to
      member hashing. To be honest I'm not sure why we don't just always use
      summary hashing for referenced types... but perhaps I'm missing
      something.
      
      llvm-svn: 193175
      d70a0553
    • Wan Xiaofei's avatar
      Using FoldingSet in SelectionDAG::getVTList. · 2f8dc08b
      Wan Xiaofei authored
      VTList has a long life cycle through the module and getVTList is frequently called. In current getVTList, sequential search over a std::vector is used, this is inefficient in big module.
      This patch use FoldingSet to implement hashing mechanism when searching.
      
      Reviewer: Nadav Rotem
      Test    : Pass unit tests & LNT test suite
      
      llvm-svn: 193150
      2f8dc08b
    • Eric Christopher's avatar
      Formatting/whitespace. · c798d8ad
      Eric Christopher authored
      llvm-svn: 193135
      c798d8ad
    • David Blaikie's avatar
      DWARF Type Hashing: Include reference and rvalue reference type in the... · fe3233a5
      David Blaikie authored
      DWARF Type Hashing: Include reference and rvalue reference type in the declarable summary hashing path
      
      More support for 7.25 Part 5.
      
      llvm-svn: 193129
      fe3233a5
    • David Blaikie's avatar
      DWARF type hashing: begin implementing Step 5, summary hashing in declarable contexts · 6cf58c89
      David Blaikie authored
      There are several other tag types that need similar handling but to
      ensure test coverage they'll be coming incrementally.
      
      llvm-svn: 193126
      6cf58c89
  7. Oct 21, 2013
Loading