Use the dumping validator in IR to Program.

When converting back to a program, make sure the dumping version of
validation is used so we can see the IR as it flows through the
conversion.

Change-Id: If44135dfadb40bbd970652dc33e483b1718232ae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/241095
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc
index 0c57cb8..844d77d 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc
+++ b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc
@@ -116,7 +116,8 @@
         core::ir::Capabilities caps{core::ir::Capability::kAllowRefTypes,
                                     core::ir::Capability::kAllowOverrides,
                                     core::ir::Capability::kAllowPhonyInstructions};
-        if (auto res = core::ir::Validate(mod, caps); res != Success) {
+        if (auto res = core::ir::ValidateAndDumpIfNeeded(mod, "wgsl.to_program", caps);
+            res != Success) {
             // IR module failed validation.
             b.Diagnostics().AddError(Source{}) << res.Failure();
             return Program{resolver::Resolve(b)};