Store unmangled function names in the AST

This makes the code simpler across the board. There are a few cases
where mangled names still need to be generated in AST traversers, but
they are outweighed by much leaner output code for all function nodes.

BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests

Change-Id: Id3638e0fca6019bbbe6fc5e1b7763870591da2d8
Reviewed-on: https://chromium-review.googlesource.com/461077
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/compiler/translator/ASTMetadataHLSL.cpp b/src/compiler/translator/ASTMetadataHLSL.cpp
index e0de596..80a8ab6 100644
--- a/src/compiler/translator/ASTMetadataHLSL.cpp
+++ b/src/compiler/translator/ASTMetadataHLSL.cpp
@@ -128,9 +128,8 @@
             }
             else if (node->getOp() == EOpCallBuiltInFunction)
             {
-                TString name = TFunction::unmangleName(node->getFunctionSymbolInfo()->getName());
-
-                if (mGradientBuiltinFunctions.find(name) != mGradientBuiltinFunctions.end())
+                if (mGradientBuiltinFunctions.find(node->getFunctionSymbolInfo()->getName()) !=
+                    mGradientBuiltinFunctions.end())
                 {
                     onGradient();
                 }