static void mapping(llvm::yaml::IO &io, Remark<KindT> &R) { assert(io.outputting() && "input not implemented"); if (io.mapTag("!Passed", std::is_same<KindT, RemarkPassed>::value)) ; else if (io.mapTag("!Missed", std::is_same<KindT, RemarkMissed>::value)) ; else llvm_unreachable("Unknown remark type"); // The attributes are read-only for now since we're only support outputting // them. StringRef PassName = R.getPassName(); io.mapRequired("Pass", PassName); std::string Id = (Twine("sil.") + R.getIdentifier()).str(); io.mapRequired("Name", Id); SourceLoc Loc = R.getLocation(); if (!io.outputting() || Loc.isValid()) io.mapOptional("DebugLoc", Loc); std::string FN = Demangle::demangleSymbolAsString( R.getFunction()->getName(), Demangle::DemangleOptions::SimplifiedUIDemangleOptions()); io.mapRequired("Function", FN); io.mapOptional("Args", R.getArgs()); }