gollvm: fix build failures of YAMLSerializer and intrinsic verifying

1.
building gollvm/driver failed as a few llvm changes made recently moved
YAMLSerializer to a new header, renamed it YAMLRemarkSerializer, and
introduced a new argument of 'serialization mode' to its constructor.
Fix the issue by adding proper included header and passing its ctor
the 'Separate' serialization mode to remain its behavior unchanged.

llvm changes:

b06f1544068110f21accd88f7efc163417c4cb1e
[Remarks][NFC] Move the YAML serializer to its own header
https://reviews.llvm.org/rL366842

5093e0a4be370b21f4a74540e8d8af73768e369f
[Remarks] Add two serialization modes for remarks: separate and standalone
https://reviews.llvm.org/rL367328

2.
llvm-goc failed to verify intrinsic calls when building the runtime
package because the intrinsic 'prefetch' was made overloaded recently,
it exposed an issue in registering gollvm built-in where only overloaded
parameter types are expected to form a mangled name for llvm intrinsic.
Fix the issue by removing the two 'int32Type' parameter types from
gollvm registration.

build error:
Intrinsic name not mangled correctly for type arguments!
Should be: llvm.prefetch.p0i8
void (i8*, i32, i32, i32)* @llvm.prefetch.p0i8.i32.i32

llvm change:
c0702618c0e0a5c742aa20b831041bde366417f1
Allow prefetching from non-zero address spaces
https://reviews.llvm.org/D65254

Fixes golang/go#33439.

Change-Id: I5b42d7bfd79dddc6a4fab426d5390dfdc359fc7c
Reviewed-on: https://go-review.googlesource.com/c/gollvm/+/189097
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
diff --git a/bridge/go-llvm-builtins.cpp b/bridge/go-llvm-builtins.cpp
index 76b4d1f..f860161 100644
--- a/bridge/go-llvm-builtins.cpp
+++ b/bridge/go-llvm-builtins.cpp
@@ -131,7 +131,7 @@
                          uint32Type, nullptr);
 
   defineIntrinsicBuiltin("__builtin_prefetch", nullptr, llvm::Intrinsic::prefetch,
-                         ptrType, int32Type, int32Type, nullptr);
+                         ptrType, nullptr);
 
   defineIntrinsicBuiltin("__builtin_expect", nullptr, llvm::Intrinsic::expect,
                          int64Type, int64Type, nullptr);
diff --git a/driver/CompileGo.cpp b/driver/CompileGo.cpp
index 94b4916..e3fa441 100644
--- a/driver/CompileGo.cpp
+++ b/driver/CompileGo.cpp
@@ -43,6 +43,7 @@
 #include "llvm/IR/LLVMContext.h"
 #include "llvm/IR/LegacyPassManager.h"
 #include "llvm/IR/RemarkStreamer.h"
+#include "llvm/Remarks/YAMLRemarkSerializer.h"
 #include "llvm/IR/Verifier.h"
 #include "llvm/MC/SubtargetFeature.h"
 #include "llvm/Option/Arg.h"
@@ -440,7 +441,8 @@
       }
       context_.setRemarkStreamer(llvm::make_unique<llvm::RemarkStreamer>(
           fname,
-          llvm::make_unique<llvm::remarks::YAMLSerializer>(optRecordFile_->os())));
+          llvm::make_unique<llvm::remarks::YAMLRemarkSerializer>(optRecordFile_->os(),
+                                    llvm::remarks::SerializerMode::Separate)));
       if (! sampleProfileFile_.empty())
         context_.setDiagnosticsHotnessRequested(true);
       optRecordFile_->keep();