Skip to content
  • Adrian Prantl's avatar
    This reapplies r207235 with an additional bugfixes caught by the msan · 32da8892
    Adrian Prantl authored
    buildbot - do not insert debug intrinsics before phi nodes.
    
    Debug info for optimized code: Support variables that are on the stack and
    described by DBG_VALUEs during their lifetime.
    
    Previously, when a variable was at a FrameIndex for any part of its
    lifetime, this would shadow all other DBG_VALUEs and only a single
    fbreg location would be emitted, which in fact is only valid for a small
    range and not the entire lexical scope of the variable. The included
    dbg-value-const-byref testcase demonstrates this.
    
    This patch fixes this by
    Local
    - emitting dbg.value intrinsics for allocas that are passed by reference
    - dropping all dbg.declares (they are now fully lowered to dbg.values)
    SelectionDAG
    - renamed constructors for SDDbgValue for better readability.
    - fix UserValue::match() to handle indirect values correctly
    - not inserting an MMI table entries for dbg.values that describe allocas.
    - lowering dbg.values that describe allocas into *indirect* DBG_VALUEs.
    CodeGenPrepare
    - leaving dbg.values for an alloca were they are (see comment)
    Other
    - regenerated/updated instcombine.ll testcase and included source
    
    rdar://problem/16679879
    http://reviews.llvm.org/D3374
    
    llvm-svn: 207269
    32da8892
Loading