1. 04 Aug, 2015 1 commit
    • Keith Randall's avatar
      [dev.ssa] cmd/compile/internal/ssa: Fix scheduler · a678a5c7
      Keith Randall authored
      The DFS scheduler doesn't do the right thing.  If a Value x is used by
      more than one other Value, then x is put into the DFS queue when
      its first user (call it y) is visited.  It is not removed and reinserted
      when the second user of x (call it z) is visited, so the dependency
      between x and z is not respected.  There is no easy way to fix this with
      the DFS queue because we'd have to rip values out of the middle of the
      DFS queue.
      
      The new scheduler works from the end of the block backwards, scheduling
      instructions which have had all of their uses already scheduled.
      A simple priority scheme breaks ties between multiple instructions that
      are ready to schedule simultaneously.
      
      Keep track of whether we've scheduled or not, and make print() use
      the scheduled order if we have.
      
      Fix some shift tests that this change tickles.  Add unsigned right shift tests.
      
      Change-Id: I44164c10bb92ae8ab8f76d7a5180cbafab826ea1
      Reviewed-on: https://go-review.googlesource.com/13069Reviewed-by: default avatarTodd Neal <todd@tneal.org>
      a678a5c7
  2. 03 Aug, 2015 3 commits
  3. 31 Jul, 2015 1 commit
  4. 30 Jul, 2015 21 commits
  5. 29 Jul, 2015 14 commits