Move individual group name strings from the OptionTable into one big char array. Then only store offsets into it in the OptionTable. Saves about 4K from the clang binary and removes 400 relocation entries from DiagnosticIDs.o.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189568 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/diagtool/TreeView.cpp b/tools/diagtool/TreeView.cpp
index 10809c1..fd548ef 100644
--- a/tools/diagtool/TreeView.cpp
+++ b/tools/diagtool/TreeView.cpp
@@ -99,9 +99,8 @@
     return 1;
   }
 
-  GroupRecord Key = { RootGroup.data(), (uint16_t)RootGroup.size(), 0, 0 };
   const GroupRecord *Found =
-    std::lower_bound(AllGroups.begin(), AllGroups.end(), Key);
+    std::lower_bound(AllGroups.begin(), AllGroups.end(), RootGroup);
   
   if (Found == AllGroups.end() || Found->getName() != RootGroup) {
     llvm::errs() << "No such diagnostic group exists\n";