[tint][fuzz] Remove tint::wgsl::IRRoundtrip fuzzing pass

The code that this exclusively covers is not security sensitive, but
incurs a significant maintenance burden, so has been decided to be
removed.

Fixes: 403308738
Change-Id: I11abd7faab9f1e68bcccd99ef8bde54c5f484d5c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/232194
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cmake b/src/tint/cmd/fuzz/ir/BUILD.cmake
index 884e3ef..b65af42 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.cmake
+++ b/src/tint/cmd/fuzz/ir/BUILD.cmake
@@ -58,7 +58,6 @@
   tint_lang_hlsl_writer_raise_fuzz
   tint_lang_wgsl_program_fuzz
   tint_lang_wgsl_writer_raise_fuzz
-  tint_lang_wgsl_fuzz
   tint_utils
   tint_utils_bytes
   tint_utils_command
diff --git a/src/tint/cmd/fuzz/ir/BUILD.gn b/src/tint/cmd/fuzz/ir/BUILD.gn
index 6b3bf00..d146d64 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.gn
+++ b/src/tint/cmd/fuzz/ir/BUILD.gn
@@ -94,7 +94,6 @@
       "${tint_src_dir}/lang/core/ir/transform:fuzz",
       "${tint_src_dir}/lang/core/type",
       "${tint_src_dir}/lang/hlsl/writer/raise:fuzz",
-      "${tint_src_dir}/lang/wgsl:fuzz",
       "${tint_src_dir}/lang/wgsl/program:fuzz",
       "${tint_src_dir}/lang/wgsl/writer/raise:fuzz",
       "${tint_src_dir}/utils",
diff --git a/src/tint/cmd/fuzz/wgsl/BUILD.cmake b/src/tint/cmd/fuzz/wgsl/BUILD.cmake
index a0610818..ce67d7c 100644
--- a/src/tint/cmd/fuzz/wgsl/BUILD.cmake
+++ b/src/tint/cmd/fuzz/wgsl/BUILD.cmake
@@ -57,7 +57,6 @@
   tint_lang_wgsl_program_fuzz
   tint_lang_wgsl_sem
   tint_lang_wgsl_writer_raise_fuzz
-  tint_lang_wgsl_fuzz
   tint_utils
   tint_utils_bytes
   tint_utils_command
diff --git a/src/tint/cmd/fuzz/wgsl/BUILD.gn b/src/tint/cmd/fuzz/wgsl/BUILD.gn
index 47659c5..0ded214 100644
--- a/src/tint/cmd/fuzz/wgsl/BUILD.gn
+++ b/src/tint/cmd/fuzz/wgsl/BUILD.gn
@@ -94,7 +94,6 @@
       "${tint_src_dir}/lang/core/type",
       "${tint_src_dir}/lang/hlsl/writer/raise:fuzz",
       "${tint_src_dir}/lang/wgsl",
-      "${tint_src_dir}/lang/wgsl:fuzz",
       "${tint_src_dir}/lang/wgsl/ast",
       "${tint_src_dir}/lang/wgsl/program",
       "${tint_src_dir}/lang/wgsl/program:fuzz",
diff --git a/src/tint/lang/wgsl/BUILD.cmake b/src/tint/lang/wgsl/BUILD.cmake
index 74282ad..547bf0d 100644
--- a/src/tint/lang/wgsl/BUILD.cmake
+++ b/src/tint/lang/wgsl/BUILD.cmake
@@ -169,64 +169,3 @@
   "google-benchmark"
   "src_utils"
 )
-
-################################################################################
-# Target:    tint_lang_wgsl_fuzz
-# Kind:      fuzz
-################################################################################
-tint_add_target(tint_lang_wgsl_fuzz fuzz
-)
-
-tint_target_add_dependencies(tint_lang_wgsl_fuzz fuzz
-  tint_api_common
-  tint_lang_core
-  tint_lang_core_constant
-  tint_lang_core_ir
-  tint_lang_core_type
-  tint_lang_wgsl
-  tint_lang_wgsl_ast
-  tint_lang_wgsl_ast_transform
-  tint_lang_wgsl_common
-  tint_lang_wgsl_features
-  tint_lang_wgsl_helpers
-  tint_lang_wgsl_program
-  tint_lang_wgsl_sem
-  tint_lang_wgsl_writer_ir_to_program
-  tint_lang_wgsl_writer_raise
-  tint_utils
-  tint_utils_bytes
-  tint_utils_command
-  tint_utils_containers
-  tint_utils_diagnostic
-  tint_utils_ice
-  tint_utils_macros
-  tint_utils_math
-  tint_utils_memory
-  tint_utils_rtti
-  tint_utils_symbol
-  tint_utils_text
-)
-
-tint_target_add_external_dependencies(tint_lang_wgsl_fuzz fuzz
-  "src_utils"
-)
-
-if(TINT_BUILD_WGSL_READER)
-  tint_target_add_dependencies(tint_lang_wgsl_fuzz fuzz
-    tint_cmd_fuzz_wgsl_fuzz
-    tint_lang_wgsl_reader
-    tint_lang_wgsl_reader_program_to_ir
-  )
-endif(TINT_BUILD_WGSL_READER)
-
-if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
-  tint_target_add_sources(tint_lang_wgsl_fuzz fuzz
-    "lang/wgsl/ir_roundtrip_fuzz.cc"
-  )
-endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
-
-if(TINT_BUILD_WGSL_WRITER)
-  tint_target_add_dependencies(tint_lang_wgsl_fuzz fuzz
-    tint_lang_wgsl_writer
-  )
-endif(TINT_BUILD_WGSL_WRITER)
diff --git a/src/tint/lang/wgsl/BUILD.gn b/src/tint/lang/wgsl/BUILD.gn
index 61352b3..6952aa7 100644
--- a/src/tint/lang/wgsl/BUILD.gn
+++ b/src/tint/lang/wgsl/BUILD.gn
@@ -144,53 +144,3 @@
     ]
   }
 }
-
-tint_fuzz_source_set("fuzz") {
-  sources = []
-  deps = [
-    "${dawn_root}/src/utils:utils",
-    "${tint_src_dir}/api/common",
-    "${tint_src_dir}/lang/core",
-    "${tint_src_dir}/lang/core/constant",
-    "${tint_src_dir}/lang/core/ir",
-    "${tint_src_dir}/lang/core/type",
-    "${tint_src_dir}/lang/wgsl",
-    "${tint_src_dir}/lang/wgsl/ast",
-    "${tint_src_dir}/lang/wgsl/ast/transform",
-    "${tint_src_dir}/lang/wgsl/common",
-    "${tint_src_dir}/lang/wgsl/features",
-    "${tint_src_dir}/lang/wgsl/helpers",
-    "${tint_src_dir}/lang/wgsl/program",
-    "${tint_src_dir}/lang/wgsl/sem",
-    "${tint_src_dir}/lang/wgsl/writer/ir_to_program",
-    "${tint_src_dir}/lang/wgsl/writer/raise",
-    "${tint_src_dir}/utils",
-    "${tint_src_dir}/utils/bytes",
-    "${tint_src_dir}/utils/command",
-    "${tint_src_dir}/utils/containers",
-    "${tint_src_dir}/utils/diagnostic",
-    "${tint_src_dir}/utils/ice",
-    "${tint_src_dir}/utils/macros",
-    "${tint_src_dir}/utils/math",
-    "${tint_src_dir}/utils/memory",
-    "${tint_src_dir}/utils/rtti",
-    "${tint_src_dir}/utils/symbol",
-    "${tint_src_dir}/utils/text",
-  ]
-
-  if (tint_build_wgsl_reader) {
-    deps += [
-      "${tint_src_dir}/cmd/fuzz/wgsl:fuzz",
-      "${tint_src_dir}/lang/wgsl/reader",
-      "${tint_src_dir}/lang/wgsl/reader/program_to_ir",
-    ]
-  }
-
-  if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
-    sources += [ "ir_roundtrip_fuzz.cc" ]
-  }
-
-  if (tint_build_wgsl_writer) {
-    deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
-  }
-}
diff --git a/src/tint/lang/wgsl/ir_roundtrip_fuzz.cc b/src/tint/lang/wgsl/ir_roundtrip_fuzz.cc
deleted file mode 100644
index cd4ac4e..0000000
--- a/src/tint/lang/wgsl/ir_roundtrip_fuzz.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright 2023 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// GEN_BUILD:CONDITION(tint_build_wgsl_reader && tint_build_wgsl_writer)
-
-#include <iostream>
-
-#include "src/tint/cmd/fuzz/wgsl/fuzz.h"
-#include "src/tint/lang/core/ir/disassembler.h"
-#include "src/tint/lang/core/ir/validator.h"
-#include "src/tint/lang/wgsl/ast/module.h"
-#include "src/tint/lang/wgsl/ast/transform/renamer.h"
-#include "src/tint/lang/wgsl/helpers/apply_substitute_overrides.h"
-#include "src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.h"
-#include "src/tint/lang/wgsl/reader/reader.h"
-#include "src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.h"
-#include "src/tint/lang/wgsl/writer/raise/raise.h"
-#include "src/tint/lang/wgsl/writer/writer.h"
-#include "src/tint/utils/command/command.h"
-#include "src/tint/utils/text/string.h"
-
-namespace tint::wgsl {
-
-bool CanRun(core::ir::Module& ir) {
-    // IRToProgram cannot handle constants whose types are builtin structures, since it would have
-    // to reverse-engineer the builtin function call that would produce the right output.
-    for (auto* c : ir.constant_values) {
-        if (auto* str = c->Type()->As<core::type::Struct>()) {
-            if (str->IsWgslInternal()) {
-                return false;
-            }
-        }
-    }
-    return true;
-}
-
-void IRRoundtripFuzzer(const tint::Program& program, const fuzz::wgsl::Context& context) {
-    if (program.AST().Enables().Any(tint::wgsl::reader::IsUnsupportedByIR)) {
-        return;
-    }
-    auto transformed = tint::wgsl::ApplySubstituteOverrides(program);
-    auto& src = transformed ? transformed.value() : program;
-    if (!src.IsValid()) {
-        return;
-    }
-    auto ir = tint::wgsl::reader::ProgramToLoweredIR(src);
-    if (ir != Success) {
-        return;
-    }
-    if (auto val = core::ir::Validate(ir.Get()); val != Success) {
-        TINT_ICE() << val.Failure();
-    }
-
-    if (!CanRun(ir.Get())) {
-        return;
-    }
-
-    if (auto res = tint::wgsl::writer::Raise(ir.Get()); res != Success) {
-        TINT_ICE() << res.Failure();
-    }
-
-    writer::ProgramOptions program_options;
-    program_options.allowed_features = AllowedFeatures::Everything();
-    auto dst = tint::wgsl::writer::IRToProgram(ir.Get(), program_options);
-    if (!dst.IsValid()) {
-        std::cerr << "IR:\n" << core::ir::Disassembler(ir.Get()).Plain() << "\n";
-        if (auto result = tint::wgsl::writer::Generate(dst, {}); result == Success) {
-            std::cerr << "WGSL:\n" << result->wgsl << "\n\n";
-        }
-        TINT_ICE() << dst.Diagnostics();
-    }
-
-    return;
-}
-
-}  // namespace tint::wgsl
-
-TINT_WGSL_PROGRAM_FUZZER(tint::wgsl::IRRoundtripFuzzer);