intel/fs/ra: Add a helper for discarding the interference graph
authorJason Ekstrand <jason@jlekstrand.net>
Wed, 15 May 2019 04:02:42 +0000 (23:02 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Thu, 16 May 2019 02:13:09 +0000 (02:13 +0000)
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/compiler/brw_fs_reg_allocate.cpp

index b2bd514dc3be46291d96e35155b9d51b8f087a7d..aeb7214ba38e2a9df6623158d78668908766404d 100644 (file)
@@ -431,6 +431,7 @@ private:
    void setup_inst_interference(fs_inst *inst);
 
    void build_interference_graph(bool allow_spilling);
+   void discard_interference_graph();
 
    void set_spill_costs();
    int choose_spill_reg();
@@ -800,6 +801,13 @@ fs_reg_alloc::build_interference_graph(bool allow_spilling)
       set_spill_costs();
 }
 
+void
+fs_reg_alloc::discard_interference_graph()
+{
+   ralloc_free(g);
+   g = NULL;
+}
+
 static void
 emit_unspill(const fs_builder &bld, fs_reg dst,
              uint32_t spill_offset, unsigned count)
@@ -1148,8 +1156,7 @@ fs_reg_alloc::assign_regs(bool allow_spilling, bool spill_all)
        * re-build the interference graph with MRFs enabled to allow spilling.
        */
       if (!fs->spilled_any_registers) {
-         ralloc_free(g);
-         g = NULL;
+         discard_interference_graph();
          build_interference_graph(true);
       }