Skip to content
  1. Dec 03, 2012
    • Chandler Carruth's avatar
      Remove some buggy and apparantly unnecessary code from SROA. · f02b8bf1
      Chandler Carruth authored
      The partitioning logic attempted to handle uses of an alloca with an
      offset starting before the alloca so long as the use had some overlap
      with the alloca itself. However, there was a bug where we tested
      '(uint64_t)Offset >= AllocSize' without first checking whether 'Offset'
      was positive. As a consequence, essentially every negative offset (that
      is, starting *before* the alloca does) would be thrown out, even if it
      was overlapping. The subsequent code to throw out negative offsets which
      were actually non-overlapping was essentially dead. The code to *handle*
      overlapping negative offsets was actually dead!
      
      I've just removed all of this, and taught SROA to discard any uses which
      start prior to the alloca from the beginning. It has the lovely property
      of simplifying the code. =] All the tests still pass, and in fact no new
      tests are needed as this is already covered by our testsuite. Fixing the
      code so that negative offsets work the way the comments indicate they
      were supposed to work causes regressions. That's how I found this.
      
      Anyways, this is all progress in the correct direction -- tightening up
      SROA to be maximally aggressive. Some day, I really hope to turn
      out-of-bounds accesses to an alloca into 'unreachable'.
      
      llvm-svn: 169120
      f02b8bf1
    • Nuno Lopes's avatar
      fix stats for added checks · 5eec2679
      Nuno Lopes authored
      llvm-svn: 169119
      5eec2679
  2. Dec 01, 2012
  3. Nov 30, 2012
  4. Nov 29, 2012
Loading