1. Sep 14, 2020
  2. Sep 13, 2020
    • David Green's avatar
      [CGP] Prevent optimizePhiType from iterating forever · 9237fde4
      David Green authored
      The recently added optimizePhiType algorithm had no checks to make sure
      it didn't continually iterate backward and forth between float and int
      types. This means that given an input like store(phi(bitcast(load))), we
      could convert that back and forth to store(bitcast(phi(load))). This
      particular case would usually have been simplified to a different load
      type (folding the bitcast into the load) before CGP, but other cases can
      occur. The one that came up was phi(bitcast(phi)), where the two phi's
      of different types were bitcast between. That was not helped by a dead
      bitcast being kept around which could make conversion look profitable.
      
      This adds an extra check of the bitcast Uses or Defs, to make sure that
      at least one is grounded and will not end up being converted back. It
      also makes sure that dead bitcasts are removed, and there is a minor
      change to include newly created Phi nodes in the Visited set so that
      they do not need to be revisited.
      
      Differential Revision: https://reviews.llvm.org/D82676
      9237fde4
    • Nikita Popov's avatar
    • Simon Pilgrim's avatar
      [X86] Add test cases for PR11210 · e2dee9af
      Simon Pilgrim authored
      Demonstrates that redundant masked stores may be removed, as long as we're able to replace the AVX/AVX2 masked store with a generic masked store (constant mask or sign-extended bool vector mask).
      e2dee9af
    • Qiu Chaofan's avatar
      Reland "[PowerPC] Implement instruction clustering for stores" · bec81dc6
      Qiu Chaofan authored
      Commit 3c0b3250 introduced store fusion for PowerPC target, but it
      brought failure under UB sanitizer and was reverted. This patch fixes
      them.
      bec81dc6