MC: Allow targets to stop symbol name quoting

Currently symbol names are printed in quotes if it contains something
outside of the arbitrary set of characters that isAcceptableChar tests
for. On somem targets, it is never OK to print a symbol name in quotes
so allow targets to opt out of this behavior.

llvm-svn: 235670
diff --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp
index 5f8e3c1..a43bdc7 100644
--- a/llvm/lib/MC/MCContext.cpp
+++ b/llvm/lib/MC/MCContext.cpp
@@ -125,7 +125,8 @@
   }
 
   auto NameIter = UsedNames.insert(std::make_pair(Name, true)).first;
-  Sym = new (*this) MCSymbol(NameIter->getKey(), /*isTemporary*/ false);
+  Sym = new (*this) MCSymbol(NameIter->getKey(), /*isTemporary*/ false,
+                             MAI->noSymbolNameQuoting());
 
   if (!OldSym)
     OldSym = Sym;
@@ -163,7 +164,8 @@
       // Ok, we found a name. Have the MCSymbol object itself refer to the copy
       // of the string that is embedded in the UsedNames entry.
       MCSymbol *Result =
-          new (*this) MCSymbol(NameEntry.first->getKey(), IsTemporary);
+        new (*this) MCSymbol(NameEntry.first->getKey(), IsTemporary,
+                             MAI->noSymbolNameQuoting());
       return Result;
     }
     assert(IsTemporary && "Cannot rename non-temporary symbols");