Skip to content
  1. Jul 25, 2011
  2. Jul 24, 2011
  3. Jul 23, 2011
    • Jakob Stoklund Olesen's avatar
      Add RAGreedy::calcCompactRegion. · ecad62f9
      Jakob Stoklund Olesen authored
      This method computes the edge bundles that should be live when splitting
      around a compact region. This is independent of interference.
      
      The function returns false if the live range was already a compact
      region, or the compact region doesn't have any live bundles - it would
      be the same as splitting around basic blocks.
      
      Compact regions are computed using the normal spill placement code. We
      pretend there is interference in all live-through blocks that don't use
      the live range. This removes all edges from the Hopfield network used
      for spill placement, so it converges instantly.
      
      llvm-svn: 135847
      ecad62f9
    • Jakob Stoklund Olesen's avatar
      Fix bug in SplitEditor::splitLiveThroughBlock when switching registers. · f500ccec
      Jakob Stoklund Olesen authored
      If there is no interference and no last split point, we cannot
      enterIntvBefore(Stop) - that function needs a real instruction.
      
      Use enterIntvAtEnd instead for that very easy case.
      
      This code doesn't currently run, it is needed by multi-way splitting.
      
      llvm-svn: 135846
      f500ccec
    • Jakob Stoklund Olesen's avatar
      Prepare RAGreedy::growRegion for compact regions. · a953bf13
      Jakob Stoklund Olesen authored
      A split candidate can have a null PhysReg which means that it doesn't
      map to a real interference pattern. Instead, pretend that all through
      blocks have interference.
      
      This makes it possible to generate compact regions where the live range
      doesn't go through blocks that don't use it. The live range will still
      be live between directly connected blocks with uses.
      
      Splitting around a compact region tends to produce a live range with a
      high spill weight, so it may evict a less dense live range.
      
      llvm-svn: 135845
      a953bf13
    • Jakob Stoklund Olesen's avatar
      Add a simple method for marking blocks with interference in and out. · 0ab5d0ee
      Jakob Stoklund Olesen authored
      This method matches addLinks - All the listed blocks are considered to
      have interference, so they add a negative bias to their bundles.
      
      This could also be done by addConstraints, but that requires building a
      separate BlockConstraint array.
      
      llvm-svn: 135844
      0ab5d0ee
    • Jakob Stoklund Olesen's avatar
      Allow null interference cursors to be queried. · cacefc7d
      Jakob Stoklund Olesen authored
      They always report 'no interference'.
      
      llvm-svn: 135843
      cacefc7d
    • Evan Cheng's avatar
  4. Jul 22, 2011
  5. Jul 21, 2011
    • Devang Patel's avatar
      Refactor. · ddfe66e9
      Devang Patel authored
      llvm-svn: 135633
      ddfe66e9
    • Devang Patel's avatar
      There are two ways to map a variable to its lexical scope. Lexical scope... · 8fb9fd67
      Devang Patel authored
      There are two ways to map a variable to its lexical scope. Lexical scope information is embedded in MDNode describing the variable. It is also available as a part of DebugLoc attached with DBG_VALUE instruction. DebugLoc attached with an instruction is less reliable in optimized code so use information embedded in the MDNode.
      
      llvm-svn: 135629
      8fb9fd67
  6. Jul 20, 2011
  7. Jul 19, 2011
  8. Jul 18, 2011
    • Jeffrey Yasskin's avatar
      Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity · 7a162881
      Jeffrey Yasskin authored
      errors like the one corrected by r135261.  Migrate all LLVM callers of the old
      constructor to the new one.
      
      llvm-svn: 135431
      7a162881
    • Evan Cheng's avatar
      Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down · d60fa58b
      Evan Cheng authored
      to MCRegisterInfo. Also initialize the mapping at construction time.
      
      This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
      towards fixing the layering violation.
      
      llvm-svn: 135424
      d60fa58b
    • Devang Patel's avatar
      · 4dc76f24
      Devang Patel authored
      During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases.
      [take 2]
      
      llvm-svn: 135423
      4dc76f24
    • Jakob Stoklund Olesen's avatar
      Fix a crash when building 177.mesa for armv6. · c45d38e1
      Jakob Stoklund Olesen authored
      When splitting a live range immediately before an LDR_POST instruction
      that redefines the address register, make sure to use the correct value
      number in leaveIntvBefore.
      
      We need the value number entering the instruction.
      
      <rdar://problem/9793765>
      
      llvm-svn: 135413
      c45d38e1
    • Frits van Bommel's avatar
      Migrate LLVM and Clang to use the new makeArrayRef(...) functions where... · 717d7edd
      Frits van Bommel authored
      Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used.
      Mostly mechanical with some manual reformatting.
      
      llvm-svn: 135390
      717d7edd
    • Jakob Stoklund Olesen's avatar
      Fix PR10387. · c0dd3da9
      Jakob Stoklund Olesen authored
      When trying to rematerialize a value before an instruction that has an
      early-clobber redefine of the virtual register, make sure to look up the
      correct value number.
      
      Early-clobber defs are moved one slot back, so getBaseIndex is needed to
      find the used value number.
      
      Bugpoint was unable to reduce the test case for this, see PR10388.
      
      llvm-svn: 135378
      c0dd3da9
    • Chris Lattner's avatar
      land David Blaikie's patch to de-constify Type, with a few tweaks. · 229907cd
      Chris Lattner authored
      llvm-svn: 135375
      229907cd
Loading