nir: Drop nir_lower_legacy_atomics
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 15 May 2023 14:19:20 +0000 (10:19 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 16 May 2023 22:36:21 +0000 (22:36 +0000)
No more users.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23036>

src/compiler/nir/meson.build
src/compiler/nir/nir.h
src/compiler/nir/nir_lower_legacy_atomics.c [deleted file]

index 9c688e9..ce903da 100644 (file)
@@ -163,7 +163,6 @@ files_libnir = files(
   'nir_lower_goto_ifs.c',
   'nir_lower_gs_intrinsics.c',
   'nir_lower_helper_writes.c',
-  'nir_lower_legacy_atomics.c',
   'nir_lower_load_const_to_scalar.c',
   'nir_lower_locals_to_regs.c',
   'nir_lower_idiv.c',
index 1e35b6a..8ac06bd 100644 (file)
@@ -5639,7 +5639,6 @@ typedef struct nir_lower_bitmap_options {
 void nir_lower_bitmap(nir_shader *shader, const nir_lower_bitmap_options *options);
 
 bool nir_lower_atomics_to_ssbo(nir_shader *shader, unsigned offset_align_state);
-bool nir_lower_legacy_atomics(nir_shader *shader);
 
 typedef enum  {
    nir_lower_int_source_mods = 1 << 0,
diff --git a/src/compiler/nir/nir_lower_legacy_atomics.c b/src/compiler/nir/nir_lower_legacy_atomics.c
deleted file mode 100644 (file)
index 32bf7f1..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2023 Valve Corporation
- * Copyright 2023 Collabora, Ltd.
- * SPDX-License-Identifier: MIT
- */
-
-#include "compiler/nir/nir_builder.h"
-
-static bool
-get_atomic_op(const nir_intrinsic_instr *atomic, nir_intrinsic_op *out_intr,
-              nir_atomic_op *out_op)
-{
-#define CASE(prefix, suffix, atom, op, swap)                                   \
-   case nir_intrinsic_##prefix##_atomic_##atom##suffix:                        \
-      *out_op = nir_atomic_op_##op;                                            \
-      *out_intr = swap ? nir_intrinsic_##prefix##_atomic_swap##suffix :        \
-                         nir_intrinsic_##prefix##_atomic##suffix;              \
-      return true;
-
-#define CASES_NO_IMAGE(atom, op, swap)                                         \
-   CASE(deref,, atom, op, swap)                                                \
-   CASE(ssbo,, atom, op, swap)                                                 \
-   CASE(shared,, atom, op, swap)                                               \
-   CASE(task_payload,, atom, op, swap)                                         \
-   CASE(global,, atom, op, swap)                                               \
-   CASE(global, _2x32, atom, op, swap)                                         \
-   CASE(global, _amd, atom, op, swap)
-
-#define CASES_IMAGE(atom, op, swap)                                            \
-   CASE(image,, atom, op, swap)                                                \
-   CASE(image_deref,, atom, op, swap)                                          \
-   CASE(bindless_image,, atom, op, swap)
-
-#define CASES(atom, op, swap)                                                  \
-   CASES_NO_IMAGE(atom, op, swap)                                              \
-   CASES_IMAGE(atom, op, swap)                                                 \
-
-   switch (atomic->intrinsic) {
-      CASES(add, iadd, false);
-      CASES(imin, imin, false);
-      CASES(umin, umin, false);
-      CASES(imax, imax, false);
-      CASES(umax, umax, false);
-      CASES(and, iand, false);
-      CASES(or, ior, false);
-      CASES(xor, ixor, false);
-      CASES(exchange, xchg, false);
-      CASES(fadd, fadd, false);
-      CASES(fmin, fmin, false);
-      CASES(fmax, fmax, false);
-      CASES(comp_swap, cmpxchg, true);
-      CASES_NO_IMAGE(fcomp_swap, fcmpxchg, true);
-      CASES_IMAGE(inc_wrap, inc_wrap, false);
-      CASES_IMAGE(dec_wrap, dec_wrap, false);
-   default:
-      return false;
-   }
-
-#undef CASE
-#undef CASES_NO_IMAGE
-#undef CASES
-}
-
-static bool
-pass(nir_builder *b, nir_instr *instr, UNUSED void *data)
-{
-   if (instr->type != nir_instr_type_intrinsic)
-      return false;
-
-   nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
-   nir_intrinsic_op intr_op;
-   nir_atomic_op op;
-   if (!get_atomic_op(intr, &intr_op, &op))
-      return false;
-
-   intr->intrinsic = intr_op;
-   nir_intrinsic_set_atomic_op(intr, op);
-   return false;
-}
-
-bool
-nir_lower_legacy_atomics(nir_shader *shader)
-{
-   return nir_shader_instructions_pass(
-      shader, pass, nir_metadata_block_index | nir_metadata_dominance, NULL);
-}