Add support for multiple results to the printer/parser, add support
for forward references to the parser, add initial support for SSA
use-list iteration and RAUW.

PiperOrigin-RevId: 205484031
diff --git a/test/IR/parser-errors.mlir b/test/IR/parser-errors.mlir
index b2c7432..1d29c1b 100644
--- a/test/IR/parser-errors.mlir
+++ b/test/IR/parser-errors.mlir
@@ -176,11 +176,21 @@
 
 cfgfunc @redef() {
 bb42:
-  %x = "dim"(){index: 0} : ()->i32
-  %x = "dim"(){index: 0} : ()->i32 // expected-error {{redefinition of SSA value %x}}
+  %x = "dim"(){index: 0} : ()->i32 // expected-error {{previously defined here}}
+  %x = "dim"(){index: 0} : ()->i32 // expected-error {{redefinition of SSA value '%x'}}
   return
 }
 
+// -----
+
+cfgfunc @undef() {
+bb42:
+  %x = "xxx"(%y) : (i32)->i32   // expected-error {{use of undeclared SSA value}}
+  return
+}
+
+// -----
+
 mlfunc @missing_rbrace() {
   return %a
 mlfunc @d {return} // expected-error {{expected ',' or '}'}}