**** Time summary:
Compilation (4 times):
  Parsing (frontend):            3.4 s
  Codegen & opts (backend):      2.4 s

**** Files that took longest to parse (compiler frontend):
  1500 ms: tests/hlsl2glsl-mac-clang-10.0-dev/hlslLinker.json
   693 ms: tests/hlsl2glsl-mac-clang-10.0-dev/glslOutput.json
   647 ms: tests/hlsl2glsl-mac-clang-10.0-dev/glslFunction.json
   545 ms: tests/hlsl2glsl-mac-clang-10.0-dev/glslCommon.json

**** Files that took longest to codegen (compiler backend):
  1066 ms: tests/hlsl2glsl-mac-clang-10.0-dev/glslOutput.json
   941 ms: tests/hlsl2glsl-mac-clang-10.0-dev/hlslLinker.json
   338 ms: tests/hlsl2glsl-mac-clang-10.0-dev/glslFunction.json
    47 ms: tests/hlsl2glsl-mac-clang-10.0-dev/glslCommon.json

**** Templates that took longest to instantiate:
    37 ms: std::__1::set<std::__1::basic_string<char>, std::__1::less<std::__1:... (5 times, avg 7 ms)
    31 ms: std::__1::set<TOperator, std::__1::less<TOperator>, std::__1::alloca... (3 times, avg 10 ms)
    27 ms: std::__1::__tree<std::__1::basic_string<char>, std::__1::less<std::_... (6 times, avg 4 ms)
    22 ms: std::__1::__tree<TOperator, std::__1::less<TOperator>, std::__1::all... (4 times, avg 5 ms)
    21 ms: std::__1::__tree<std::__1::basic_string<char>, std::__1::less<std::_... (3 times, avg 7 ms)
    20 ms: std::__1::map<std::__1::basic_string<char, std::__1::char_traits<cha... (4 times, avg 5 ms)
    20 ms: std::__1::map<TVector<TTypeLine> *, TVector<TTypeLine> *, std::__1::... (4 times, avg 5 ms)
    20 ms: std::__1::vector<TSymbolTableLevel *, std::__1::allocator<TSymbolTab... (8 times, avg 2 ms)
    19 ms: std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<... (4 times, avg 4 ms)
    19 ms: std::__1::vector<StructMember, std::__1::allocator<StructMember> >::... (4 times, avg 4 ms)
    19 ms: std::__1::map<int, GlslSymbol *, std::__1::less<int>, std::__1::allo... (2 times, avg 9 ms)
    19 ms: std::__1::__tree<TOperator, std::__1::less<TOperator>, std::__1::all... (3 times, avg 6 ms)
    18 ms: std::__1::vector<TTypeLine, pool_allocator<TTypeLine> >::push_back (4 times, avg 4 ms)
    18 ms: std::__1::map<std::__1::basic_string<char>, GlslSymbol *, std::__1::... (3 times, avg 6 ms)
    17 ms: std::__1::vector<TParameter, pool_allocator<TParameter> >::push_back (4 times, avg 4 ms)
    17 ms: std::__1::map<std::__1::basic_string<char, std::__1::char_traits<cha... (4 times, avg 4 ms)
    17 ms: std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<... (4 times, avg 4 ms)
    16 ms: std::__1::__scalar_hash<std::__1::_PairT, 2>::operator() (4 times, avg 4 ms)
    16 ms: std::__1::__murmur2_or_cityhash<unsigned long, 64>::operator() (4 times, avg 4 ms)
    16 ms: std::__1::vector<TTypeLine, pool_allocator<TTypeLine> >::__push_back... (4 times, avg 4 ms)
    15 ms: std::__1::vector<StructMember, std::__1::allocator<StructMember> >::... (4 times, avg 3 ms)
    15 ms: std::__1::map<int, GlslSymbol *, std::__1::less<int>, std::__1::allo... (3 times, avg 5 ms)
    15 ms: std::__1::__tree<std::__1::__value_type<TVector<TTypeLine> *, TVecto... (4 times, avg 3 ms)
    15 ms: std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char,... (4 times, avg 3 ms)
    15 ms: std::__1::vector<TParameter, pool_allocator<TParameter> >::__push_ba... (4 times, avg 3 ms)
    14 ms: std::__1::vector<TSymbolTableLevel *, std::__1::allocator<TSymbolTab... (4 times, avg 3 ms)
    14 ms: std::__1::vector<TIntermConstant::Value, pool_allocator<TIntermConst... (4 times, avg 3 ms)
    14 ms: std::__1::vector<TIntermConstant::Value, pool_allocator<TIntermConst... (4 times, avg 3 ms)
    13 ms: std::__1::vector<GlslFunction *, std::__1::allocator<GlslFunction *>... (2 times, avg 6 ms)
    13 ms: std::__1::map<std::__1::basic_string<char>, int, std::__1::less<std:... (1 times, avg 13 ms)

**** Template sets that took longest to instantiate:
   142 ms: std::__1::vector<$>::push_back (33 times, avg 4 ms)
   118 ms: std::__1::vector<$>::__push_back_slow_path<$> (29 times, avg 4 ms)
    86 ms: std::__1::allocator_traits<$> (132 times, avg 0 ms)
    85 ms: std::__1::map<$> (16 times, avg 5 ms)
    76 ms: std::__1::__tree<$> (22 times, avg 3 ms)
    75 ms: std::__1::__tree<$>::__emplace_unique_key_args<$> (13 times, avg 5 ms)
    71 ms: std::__1::vector<$>::vector (36 times, avg 1 ms)
    71 ms: std::__1::vector<$> (44 times, avg 1 ms)
    68 ms: std::__1::set<$>::insert (8 times, avg 8 ms)
    56 ms: std::__1::basic_string<$>::basic_string (40 times, avg 1 ms)
    52 ms: std::__1::unique_ptr<$> (26 times, avg 2 ms)
    50 ms: std::__1::__tree<$>::__insert_unique (10 times, avg 5 ms)
    49 ms: std::__1::__vector_base<$> (44 times, avg 1 ms)
    44 ms: std::__1::basic_string<$> (20 times, avg 2 ms)
    43 ms: TVector<$>::TVector (20 times, avg 2 ms)
    42 ms: std::__1::vector<$>::__swap_out_circular_buffer (33 times, avg 1 ms)
    39 ms: std::__1::pair<$> (32 times, avg 1 ms)
    38 ms: std::__1::__split_buffer<$>::__split_buffer (33 times, avg 1 ms)
    32 ms: TVector<$> (20 times, avg 1 ms)
    30 ms: std::__1::map<$>::map (8 times, avg 3 ms)
    30 ms: std::__1::__value_type<$> (12 times, avg 2 ms)
    26 ms: std::__1::__tree<$>::__tree (13 times, avg 2 ms)
    25 ms: std::__1::basic_string<$>::__init (20 times, avg 1 ms)
    25 ms: std::__1::__tree<$>::__construct_node<$> (13 times, avg 1 ms)
    22 ms: std::__1::forward_as_tuple<$> (5 times, avg 4 ms)
    21 ms: std::__1::set<$> (6 times, avg 3 ms)
    20 ms: std::__1::__split_buffer<$> (32 times, avg 0 ms)
    19 ms: std::__1::map<int, GlslSymbol *, std::__1::less<int>, std::__1::allo... (2 times, avg 9 ms)
    18 ms: std::__1::__vector_base<$>::~__vector_base (32 times, avg 0 ms)
    17 ms: std::__1::vector<$>::__construct_one_at_end<$> (28 times, avg 0 ms)

**** Functions that took longest to compile:
   155 ms: TGlslOutputTraverser::traverseAggregate(bool, TIntermAggregate*, TIn... (hlslang/GLSLCodeGen/glslOutput.cpp)
   129 ms: TGlslOutputTraverser::traverseBinary(bool, TIntermBinary*, TIntermTr... (hlslang/GLSLCodeGen/glslOutput.cpp)
    67 ms: TGlslOutputTraverser::traverseUnary(bool, TIntermUnary*, TIntermTrav... (hlslang/GLSLCodeGen/glslOutput.cpp)
    55 ms: HlslLinker::link(HlslCrossCompiler*, char const*, ETargetVersion, un... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    50 ms: HlslLinker::buildFunctionLists(HlslCrossCompiler*, EShLanguage, std:... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    33 ms: void std::__1::__sort<GlslSymbolSorter&, GlslSymbol**>(GlslSymbol**,... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    32 ms: TGlslOutputTraverser::createStructFromType(TType*) (hlslang/GLSLCodeGen/glslOutput.cpp)
    23 ms: TGlslOutputTraverser::traverseArrayDeclarationWithInit(TIntermDeclar... (hlslang/GLSLCodeGen/glslOutput.cpp)
    21 ms: HlslLinker::emitInputStruct(GlslStruct const*, std::__1::basic_strin... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    20 ms: HlslLinker::getArgumentData2(GlslSymbolOrStructMemberBase const*, EC... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    20 ms: HlslLinker::emitReturnValue(EGlslSymbolType, GlslFunction*, EShLangu... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    19 ms: HlslLinker::emitReturnStruct(GlslStruct*, std::__1::basic_string<cha... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    17 ms: buildArrayConstructorString(TType const&) (hlslang/GLSLCodeGen/glslOutput.cpp)
    15 ms: sortFunctionsTopologically(std::__1::vector<GlslFunction*, std::__1:... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    13 ms: TGlslOutputTraverser::traverseSelection(bool, TIntermSelection*, TIn... (hlslang/GLSLCodeGen/glslOutput.cpp)
    13 ms: HlslLinker::buildUniformsAndLibFunctions(std::__1::vector<GlslFuncti... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    13 ms: std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__... (hlslang/GLSLCodeGen/glslOutput.cpp)
    13 ms: std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    13 ms: std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__... (hlslang/GLSLCodeGen/glslFunction.cpp)
    12 ms: HlslLinker::addCalledFunctions(GlslFunction*, std::__1::vector<GlslF... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    12 ms: TGlslOutputTraverser::traverseSymbol(TIntermSymbol*, TIntermTraverse... (hlslang/GLSLCodeGen/glslOutput.cpp)
    12 ms: HlslLinker::emitOutputStructParam(GlslSymbol*, EShLanguage, bool, EA... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    12 ms: GetFixedNestedVaryingSemantic(std::__1::basic_string<char, std::__1:... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    11 ms: writeFuncCall(std::__1::basic_string<char, std::__1::char_traits<cha... (hlslang/GLSLCodeGen/glslOutput.cpp)
    11 ms: HlslLinker::emitMainStart(HlslCrossCompiler const*, EGlslSymbolType,... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    11 ms: HlslLinker::buildUniformReflection(std::__1::vector<GlslSymbol*, std... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    10 ms: void std::__1::vector<StructMember, std::__1::allocator<StructMember... (hlslang/GLSLCodeGen/glslOutput.cpp)
    10 ms: GlslFunction::addNeededExtensions(std::__1::set<std::__1::basic_stri... (hlslang/GLSLCodeGen/glslFunction.cpp)
    10 ms: std::__1::__tree_node_base<void*>*& std::__1::__tree<std::__1::basic... (hlslang/GLSLCodeGen/hlslLinker.cpp)
    10 ms: bool std::__1::__insertion_sort_incomplete<GlslSymbolSorter&, GlslSy... (hlslang/GLSLCodeGen/hlslLinker.cpp)

**** Function sets that took longest to compile / optimize:
    50 ms: HlslLinker::buildFunctionLists(HlslCrossCompiler*, EShLanguage, std:... (1 times, avg 50 ms)
    39 ms: std::__1::basic_stringbuf<$>::str() const (3 times, avg 13 ms)
    33 ms: void std::__1::__sort<$>(GlslSymbol**, GlslSymbol**, GlslSymbolSorte... (1 times, avg 33 ms)
    22 ms: std::__1::__tree_node_base<$>*& std::__1::__tree<$>::__find_equal<$>... (6 times, avg 3 ms)
    21 ms: HlslLinker::emitInputStruct(GlslStruct const*, std::__1::basic_strin... (1 times, avg 21 ms)
    20 ms: HlslLinker::getArgumentData2(GlslSymbolOrStructMemberBase const*, EC... (1 times, avg 20 ms)
    20 ms: HlslLinker::emitReturnValue(EGlslSymbolType, GlslFunction*, EShLangu... (1 times, avg 20 ms)
    19 ms: HlslLinker::emitReturnStruct(GlslStruct*, std::__1::basic_string<$>,... (1 times, avg 19 ms)
    18 ms: void std::__1::__tree_balance_after_insert<$>(std::__1::__tree_node_... (3 times, avg 6 ms)
    15 ms: std::__1::ostreambuf_iterator<$> std::__1::__pad_and_output<$>(std::... (4 times, avg 3 ms)
    15 ms: sortFunctionsTopologically(std::__1::vector<$>&, std::__1::vector<$>... (1 times, avg 15 ms)
    13 ms: HlslLinker::buildUniformsAndLibFunctions(std::__1::vector<$> const&,... (1 times, avg 13 ms)
    12 ms: HlslLinker::addCalledFunctions(GlslFunction*, std::__1::vector<$>&, ... (1 times, avg 12 ms)
    12 ms: writeFuncCall(std::__1::basic_string<$> const&, TIntermAggregate*, T... (2 times, avg 6 ms)
    12 ms: std::__1::basic_ostream<$>& std::__1::__put_character_sequence<$>(st... (4 times, avg 3 ms)
    12 ms: HlslLinker::emitOutputStructParam(GlslSymbol*, EShLanguage, bool, EA... (1 times, avg 12 ms)
    12 ms: GetFixedNestedVaryingSemantic(std::__1::basic_string<$> const&, int) (1 times, avg 12 ms)
    12 ms: std::__1::basic_stringbuf<$>::overflow(int) (3 times, avg 4 ms)
    11 ms: TGlslOutputTraverser::TGlslOutputTraverser(TInfoSink&, std::__1::vec... (2 times, avg 5 ms)
    11 ms: HlslLinker::emitMainStart(HlslCrossCompiler const*, EGlslSymbolType,... (1 times, avg 11 ms)
    11 ms: HlslLinker::buildUniformReflection(std::__1::vector<$> const&) (1 times, avg 11 ms)
    10 ms: void std::__1::vector<$>::__push_back_slow_path<$>(StructMember cons... (1 times, avg 10 ms)
    10 ms: writeComparison(std::__1::basic_string<$> const&, std::__1::basic_st... (2 times, avg 5 ms)
    10 ms: std::__1::basic_stringbuf<$>::seekoff(long long, std::__1::ios_base:... (3 times, avg 3 ms)
    10 ms: GlslFunction::addNeededExtensions(std::__1::set<$>&, ETargetVersion)... (1 times, avg 10 ms)
    10 ms: std::__1::__tree_node_base<$>*& std::__1::__tree<$>::__find_equal<$>... (1 times, avg 10 ms)
    10 ms: bool std::__1::__insertion_sort_incomplete<$>(GlslSymbol**, GlslSymb... (1 times, avg 10 ms)
     8 ms: std::__1::__tree_iterator<$> std::__1::__tree<$>::find<$>(std::__1::... (2 times, avg 4 ms)
     8 ms: print_float(std::__1::basic_stringstream<$>&, float) (2 times, avg 4 ms)
     8 ms: GlslFunction::GlslFunction(std::__1::basic_string<$> const&, std::__... (2 times, avg 4 ms)

**** Expensive headers:
794 ms: hlslang/OSDependent/Mac/osinclude.h (included 1 times, avg 794 ms), included via:
  1x: <direct include>

559 ms: hlslang/GLSLCodeGen/glslFunction.h (included 3 times, avg 186 ms), included via:
  1x: <direct include>
  1x: hlslLinker.h 
  1x: glslOutput.h 

464 ms: hlslang/GLSLCodeGen/glslOutput.h (included 1 times, avg 464 ms), included via:
  1x: <direct include>

459 ms: hlslang/GLSLCodeGen/hlslLinker.h (included 1 times, avg 459 ms), included via:
  1x: <direct include>

453 ms: hlslang/GLSLCodeGen/glslStruct.h (included 4 times, avg 113 ms), included via:
  1x: <direct include>
  1x: glslFunction.h 
  1x: glslOutput.h 
  1x: hlslLinker.h glslFunction.h 

3 ms: hlslang/GLSLCodeGen/hlslCrossCompiler.h (included 1 times, avg 3 ms), included via:
  1x: <direct include>

