Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=39701
This patch is to convert certain characters to their XML escape sequences when generating labels for a DOT graph.
I had trouble reproducing the exact issue described on the tracker. I ran llvm-xray graph on a log from a test program that included function templates but wasn't able to get the dot tool to complain about the < and > characters. The documentation also suggests that the escape sequences should only be necessary when using HTML string labels which XRay doesn't use (label=<...> as opposed to label="..."). Perhaps newer versions of Graphviz silently handle this in the case of quoted-string labels.
In any case, the generated labels still look correct after this patch and should also fix the reporter's issue.
I was a bit unsure how to add a test for this since the existing tests seem to only care about func-id rather than giving an actual name. If you could give me a hint on the best way to go about this, that'd be much appreciated!
nit: Consider using StringRef instead?