[PATCH] D32239: [SCEV] Make SCEV or modeling more aggressive.

Jan Vesely via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 20 16:58:32 PDT 2017


jvesely added a comment.

this patch introduces infinite loop when compiling pyrite kernel[0] for r600 (turks) target:

  Thread 1 "cl-program-test" received signal SIGSEGV, Segmentation fault.
  0x00007fffdba03e36 in llvm::DenseMapBase<llvm::DenseMap<llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u>, llvm::DenseMapInfo<llvm::Value*>, llvm::detail::DenseMapPair<llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u> > >, llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u>, llvm::DenseMapInfo<llvm::Value*>, llvm::detail::DenseMapPair<llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u> > >::find_as<llvm::Value*> (
      this=0x8b09b0, Val=@0x7fffff7ff068: 0xe83e50)
      at /home/vesely/llvm/include/llvm/ADT/DenseMap.h:151
  151	    if (LookupBucketFor(Val, TheBucket))
  (gdb) bt
  #0  0x00007fffdba03e36 in llvm::DenseMapBase<llvm::DenseMap<llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u>, llvm::DenseMapInfo<llvm::Value*>, llvm::detail::DenseMapPair<llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u> > >, llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u>, llvm::DenseMapInfo<llvm::Value*>, llvm::detail::DenseMapPair<llvm::AssumptionCache::AffectedValueCallbackVH, llvm::SmallVector<llvm::WeakVH, 1u> > >::find_as<llvm::Value*> (
      this=0x8b09b0, Val=@0x7fffff7ff068: 0xe83e50)
      at /home/vesely/llvm/include/llvm/ADT/DenseMap.h:151
  #1  0x00007fffdbb8195c in llvm::AssumptionCache::assumptionsFor (
      this=0x8b0930, V=0xe83e50)
      at /home/vesely/llvm/include/llvm/Analysis/AssumptionCache.h:134
  #2  0x00007fffdbd3274c in computeKnownBitsFromAssume (V=0xe83e50, 
      KnownZero=..., KnownOne=..., Depth=5, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:515
  #3  0x00007fffdbd3944f in computeKnownBits (V=0xe83e50, KnownZero=..., 
      KnownOne=..., Depth=5, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1601
  #4  0x00007fffdbd314c1 in computeKnownBitsAddSub (Add=true, Op0=0xe83e50, 
      Op1=0x8f5540, NSW=false, KnownZero=..., KnownOne=..., KnownZero2=..., 
      KnownOne2=..., Depth=4, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:263
  #5  0x00007fffdbd372ff in computeKnownBitsFromOperator (I=0xe83f00, 
  ---Type <return> to continue, or q <return> to quit---
      KnownZero=..., KnownOne=..., Depth=4, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1160
  #6  0x00007fffdbd393c0 in computeKnownBits (V=0xe83f00, KnownZero=..., 
      KnownOne=..., Depth=4, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1588
  #7  0x00007fffdbd314c1 in computeKnownBitsAddSub (Add=true, Op0=0xe83f00, 
      Op1=0xe81b00, NSW=false, KnownZero=..., KnownOne=..., KnownZero2=..., 
      KnownOne2=..., Depth=3, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:263
  #8  0x00007fffdbd372ff in computeKnownBitsFromOperator (I=0xe83fb0, 
      KnownZero=..., KnownOne=..., Depth=3, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1160
  #9  0x00007fffdbd393c0 in computeKnownBits (V=0xe83fb0, KnownZero=..., 
      KnownOne=..., Depth=3, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1588
  #10 0x00007fffdbd314c1 in computeKnownBitsAddSub (Add=true, Op0=0xe83fb0, 
      Op1=0xe83a60, NSW=false, KnownZero=..., KnownOne=..., KnownZero2=..., 
      KnownOne2=..., Depth=2, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:263
  #11 0x00007fffdbd372ff in computeKnownBitsFromOperator (I=0xe84060, 
      KnownZero=..., KnownOne=..., Depth=2, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1160
  #12 0x00007fffdbd393c0 in computeKnownBits (V=0xe84060, KnownZero=..., 
  ---Type <return> to continue, or q <return> to quit---
      KnownOne=..., Depth=2, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1588
  #13 0x00007fffdbd314c1 in computeKnownBitsAddSub (Add=true, Op0=0xe84060, 
      Op1=0xe837d0, NSW=false, KnownZero=..., KnownOne=..., KnownZero2=..., 
      KnownOne2=..., Depth=1, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:263
  #14 0x00007fffdbd372ff in computeKnownBitsFromOperator (I=0xe84110, 
      KnownZero=..., KnownOne=..., Depth=1, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1160
  #15 0x00007fffdbd393c0 in computeKnownBits (V=0xe84110, KnownZero=..., 
      KnownOne=..., Depth=1, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1588
  #16 0x00007fffdbd356ea in computeKnownBitsFromShiftOperator(const llvm::Operator *, llvm::APInt &, llvm::APInt &, llvm::APInt &, llvm::APInt &, unsigned int, const (anonymous namespace)::Query &, llvm::function_ref<llvm::APInt(const llvm::APInt&, unsigned int)>, llvm::function_ref<llvm::APInt(const llvm::APInt&, unsigned int)>) (I=0xe843d0, KnownZero=..., KnownOne=..., KnownZero2=..., 
      KnownOne2=..., Depth=0, Q=..., KZF=..., KOF=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:813
  #17 0x00007fffdbd37088 in computeKnownBitsFromOperator (I=0xe843d0, 
      KnownZero=..., KnownOne=..., Depth=0, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1113
  #18 0x00007fffdbd393c0 in computeKnownBits (V=0xe843d0, KnownZero=..., 
  ---Type <return> to continue, or q <return> to quit---
      KnownOne=..., Depth=0, Q=...)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:1588
  #19 0x00007fffdbd30d34 in llvm::computeKnownBits (V=0xe843d0, KnownZero=..., 
      KnownOne=..., DL=..., Depth=0, AC=0x8b0930, CxtI=0x0, DT=0x89fb80, ORE=0x0)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:142
  
  
  #20 0x00007fffdbd30ee1 in llvm::haveNoCommonBitsSet (LHS=0xe843d0, 
      RHS=0xe84480, DL=..., AC=0x8b0930, CxtI=0x0, DT=0x89fb80)
      at /home/vesely/llvm/lib/Analysis/ValueTracking.cpp:156
  #21 0x00007fffdbc9a13e in llvm::ScalarEvolution::createSCEV (this=0x88c980, 
      V=0xe84530) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:5332
  #22 0x00007fffdbc913f8 in llvm::ScalarEvolution::getSCEV (this=0x88c980, 
      V=0xe84530) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:3574
  ...
  #9170 0x00007fffdbc913f8 in llvm::ScalarEvolution::getSCEV (this=0x88c980, 
      V=0xb45b70) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:3574
  #9171 0x00007fffdbc9a175 in llvm::ScalarEvolution::createSCEV (this=0x88c980, 
      V=0xb45c20) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:5336
  #9172 0x00007fffdbc913f8 in llvm::ScalarEvolution::getSCEV (this=0x88c980, 
      V=0xb45c20) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:3574
  #9173 0x00007fffdbc9925f in llvm::ScalarEvolution::createSCEV (this=0x88c980, 
      V=0xb45f50) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:5213
  #9174 0x00007fffdbc913f8 in llvm::ScalarEvolution::getSCEV (this=0x88c980, 
      V=0xb45f50) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:3574
  #9175 0x00007fffdbc99862 in llvm::ScalarEvolution::createSCEV (this=0x88c980, 
      V=0xb46290) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:5271
  #9176 0x00007fffdbc913f8 in llvm::ScalarEvolution::getSCEV (this=0x88c980, 
      V=0xb46290) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:3574
  #9177 0x00007fffdbc9a175 in llvm::ScalarEvolution::createSCEV (this=0x88c980, 
      V=0xb46340) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:5336
  #9178 0x00007fffdbc913f8 in llvm::ScalarEvolution::getSCEV (this=0x88c980, 
      V=0xb46340) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:3574
  #9179 0x00007fffdbc9925f in llvm::ScalarEvolution::createSCEV (this=0x88c980, 
      V=0xb46670) at /home/vesely/llvm/lib/Analysis/ScalarEvolution.cpp:5213

[0] https://cgit.freedesktop.org/piglit/tree/tests/cl/program/execute/pyrit-wpa-psk.cl

revision r300742 works OK. so does reverting this change on top of r300918


Repository:
  rL LLVM

https://reviews.llvm.org/D32239





More information about the llvm-commits mailing list