[Mesa-dev] [PATCH 00/21] Reduce ir_variable memory usage

Eric Anholt eric at anholt.net
Fri May 30 11:07:03 PDT 2014


Ian Romanick <idr at freedesktop.org> writes:

> This series reduces the memory usage of ir_variable quite significantly.
>
> The first couple patches add a mechanism to determine the amount of
> memory used by any kind of IR object.  This is used to collect the data
> that is shown in the commit messages through the series.
>
> Most of the rest of the patches rearrange data or store things in
> smaller fields.  The two interesting "subseries" are:
>
> Patches 9 through 15 and 20 through 21: Store short variable names in
> otherwise "dead" space in the base class.  I didn't rebase these patches
> to all be together because I didn't want to re-collect all the data. :)
> A small amount more savings could be had here, but in the test case at
> hand, it didn't appear worth the effort.  Adding

I'd rather this series didn't land.

Our bad memory waste for variables is mostly due to the fact that we
hang our builtin variables off of the symbol table, so they never get
freed even after dead code elimination.  These hacks (and there are some
*nasty* hacks in here) are just slight improvements on that bad
situation.

Instead, let's fix things to not keep the symbol table past AST time (we
can global walk variables quickly by looking at the top level IR nodes
when linking), and hang our variables off of the parser state like all
the other IR at compile time.

> Here's the punchline.  In a trimmed trace from dota2 on 32-bit,
> ir_variable accounts for ~5.5MB before this series.  After this series,
> it accounts for only ~4.5MB.
>
> Before: IR MEM: variable usage / name / total: 4955496 915817 5871313
> After:  IR MEM: variable usage / name / total: 4118280 644100 4762380

I *highly* recommend using valgrind's massif tool if you're looking at
memory allocation.  Here's the peak allocation of my dota2 trace:

 48 221,424,661,978    1,699,958,592    1,516,137,138   183,821,454            0
89.19% (1,516,137,138B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
->71.77% (1,220,068,837B) 0x8F4FE28: ralloc_size (ralloc.c:113)
| ->10.05% (170,893,476B) in 838 places, all below massif's threshold (01.00%)
| | 
| ->07.44% (126,559,200B) 0x8ECB9D8: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (list.h:79)
| | ->05.75% (97,725,408B) 0x8F16C9D: _mesa_ast_field_selection_to_hir(ast_expression const*, exec_list*, _mesa_glsl_parse_state*) (hir_field_selection.cpp:39)
| | | ->05.75% (97,725,408B) 0x8ECC8D4: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1679)
| | |   ->02.37% (40,360,320B) in 14 places, all below massif's threshold (01.00%)
| | |   | 
| | |   ->02.27% (38,604,960B) 0x8ECC6D6: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1190)
| | |   | ->02.27% (38,604,960B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | |   |   ->02.27% (38,600,352B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | |   |   | ->02.24% (38,039,040B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |   |   | | ->02.24% (38,039,040B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |   |   | |   ->02.24% (38,039,040B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |   |   | |     ->02.24% (38,039,040B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |   |   | |       ->02.24% (37,996,512B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       | ->02.24% (37,996,512B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |   ->02.24% (37,996,512B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |     ->02.24% (37,996,512B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |       ->02.24% (37,996,512B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |         ->02.24% (37,996,512B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |           ->02.24% (37,996,512B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |             ->02.24% (37,996,512B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |               ->02.24% (37,996,512B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |   |   | |       |                 
| | |   |   | |       ->00.00% (42,528B) in 1+ places, all below ms_print's threshold (01.00%)
| | |   |   | |       
| | |   |   | ->00.03% (561,312B) in 1+ places, all below ms_print's threshold (01.00%)
| | |   |   | 
| | |   |   ->00.00% (4,608B) in 1+ places, all below ms_print's threshold (01.00%)
| | |   |   
| | |   ->01.10% (18,760,128B) 0x8EC4001: process_parameters(exec_list*, exec_list*, exec_list*, _mesa_glsl_parse_state*) [clone .isra.12] [clone .constprop.19] (ast_function.cpp:46)
| | |     ->01.10% (18,760,128B) 0x8EC633E: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (ast_function.cpp:1720)
| | |       ->01.09% (18,613,824B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | |       | ->01.09% (18,613,824B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | |       |   ->01.09% (18,613,824B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | |       |     ->01.09% (18,457,728B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |       |     | ->01.09% (18,457,728B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |       |     |   ->01.09% (18,457,728B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |       |     |     ->01.09% (18,457,728B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |       |     |       ->01.09% (18,449,376B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       | ->01.09% (18,449,376B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |   ->01.09% (18,449,376B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |     ->01.09% (18,449,376B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |       ->01.09% (18,449,376B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |         ->01.09% (18,449,376B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |           ->01.09% (18,449,376B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |             ->01.09% (18,449,376B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |               ->01.09% (18,449,376B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |       |     |       |                 
| | |       |     |       ->00.00% (8,352B) in 1+ places, all below ms_print's threshold (01.00%)
| | |       |     |       
| | |       |     ->00.01% (156,096B) in 1+ places, all below ms_print's threshold (01.00%)
| | |       |     
| | |       ->00.01% (146,304B) in 1+ places, all below ms_print's threshold (01.00%)
| | |       
| | ->01.70% (28,833,792B) in 15 places, all below massif's threshold (01.00%)
| |   
| ->05.91% (100,411,392B) 0x8EEF671: (anonymous namespace)::builtin_variable_generator::add_variable(char const*, glsl_type const*, ir_variable_mode, int) [clone .isra.6] (list.h:79)
| | ->03.92% (66,571,200B) 0x8EEF8F7: (anonymous namespace)::builtin_variable_generator::add_uniform(glsl_type const*, char const*) (builtin_variables.cpp:478)
| | | ->03.92% (66,571,200B) in 45 places, all below massif's threshold (01.00%)
| | |   
| | ->01.04% (17,755,008B) 0x8EEF840: (anonymous namespace)::builtin_variable_generator::add_const(char const*, int) (builtin_variables.cpp:527)
| | | ->01.04% (17,755,008B) in 14 places, all below massif's threshold (01.00%)
| | |   
| | ->00.95% (16,085,184B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->05.21% (88,576,680B) 0x8EEFA2E: (anonymous namespace)::builtin_variable_generator::add_uniform(glsl_type const*, char const*) (builtin_variables.cpp:495)
| | ->04.14% (70,454,520B) in 18 places, all below massif's threshold (01.00%)
| | | 
| | ->01.07% (18,122,160B) 0x8EF03AD: _mesa_glsl_initialize_variables(exec_list*, _mesa_glsl_parse_state*) (builtin_variables.cpp:786)
| |   ->01.07% (18,115,104B) 0x8ECA02A: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:74)
| |   | ->01.07% (18,115,104B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| |   |   ->01.07% (18,115,104B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| |   |     ->01.02% (17,306,016B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| |   |     | ->01.02% (17,306,016B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   |     |   ->01.02% (17,306,016B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   |     |     ->01.02% (17,306,016B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   |     |       ->01.02% (17,306,016B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   |     |         ->01.02% (17,306,016B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| |   |     |           ->01.02% (17,306,016B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| |   |     |             ->01.02% (17,306,016B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| |   |     |               ->01.02% (17,306,016B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| |   |     |                 
| |   |     ->00.05% (809,088B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |     
| |   ->00.00% (7,056B) in 1+ places, all below ms_print's threshold (01.00%)
| |   
| ->04.44% (75,544,872B) 0x8F14884: glsl_symbol_table::add_variable(ir_variable*) (glsl_symbol_table.cpp:29)
| | ->03.20% (54,389,504B) 0x8EEF6F5: (anonymous namespace)::builtin_variable_generator::add_variable(char const*, glsl_type const*, ir_variable_mode, int) [clone .isra.6] (builtin_variables.cpp:469)
| | | ->02.12% (36,059,400B) 0x8EEF8F7: (anonymous namespace)::builtin_variable_generator::add_uniform(glsl_type const*, char const*) (builtin_variables.cpp:478)
| | | | ->02.12% (36,059,400B) in 45 places, all below massif's threshold (01.00%)
| | | |   
| | | ->01.08% (18,330,104B) in 27 places, all below massif's threshold (01.00%)
| | |   
| | ->01.24% (21,155,160B) 0x8ECEA78: ast_declarator_list::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:3731)
| | | ->01.24% (21,155,160B) in 3 places, all below massif's threshold (01.00%)
| | |   
| | ->00.00% (208B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->04.41% (74,921,189B) 0x8F5016C: ralloc_strdup (ralloc.c:187)
| | ->04.17% (70,859,234B) 0x8F1A72D: ir_variable::ir_variable(glsl_type const*, char const*, ir_variable_mode) (ir.cpp:1544)
| | | ->02.11% (35,813,559B) 0x8EEF693: (anonymous namespace)::builtin_variable_generator::add_variable(char const*, glsl_type const*, ir_variable_mode, int) [clone .isra.6] (builtin_variables.cpp:439)
| | | | ->01.42% (24,078,125B) 0x8EEF8F7: (anonymous namespace)::builtin_variable_generator::add_uniform(glsl_type const*, char const*) (builtin_variables.cpp:478)
| | | | | ->01.42% (24,078,125B) in 45 places, all below massif's threshold (01.00%)
| | | | |   
| | | | ->00.69% (11,735,434B) in 1+ places, all below ms_print's threshold (01.00%)
| | | | 
| | | ->02.06% (35,045,675B) in 25 places, all below massif's threshold (01.00%)
| | |   
| | ->00.24% (4,061,955B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->04.34% (73,836,672B) 0x8F1A688: ir_swizzle::create(ir_rvalue*, char const*, unsigned int) (list.h:79)
| | ->04.34% (73,836,672B) 0x8F16F33: _mesa_ast_field_selection_to_hir(ast_expression const*, exec_list*, _mesa_glsl_parse_state*) (hir_field_selection.cpp:104)
| |   ->04.34% (73,836,672B) 0x8ECC8D4: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1679)
| |     ->01.35% (22,951,240B) 0x8ECC795: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1227)
| |     | ->01.35% (22,951,240B) in 6 places, all below massif's threshold (01.00%)
| |     |   
| |     ->01.31% (22,329,632B) 0x8EC4001: process_parameters(exec_list*, exec_list*, exec_list*, _mesa_glsl_parse_state*) [clone .isra.12] [clone .constprop.19] (ast_function.cpp:46)
| |     | ->01.31% (22,329,632B) 0x8EC633E: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (ast_function.cpp:1720)
| |     |   ->01.30% (22,132,032B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| |     |   | ->01.30% (22,132,032B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| |     |   |   ->01.30% (22,132,032B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| |     |   |     ->01.29% (21,908,016B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| |     |   |     | ->01.29% (21,908,016B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| |     |   |     |   ->01.29% (21,908,016B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| |     |   |     |     ->01.29% (21,908,016B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| |     |   |     |       ->01.29% (21,898,968B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       | ->01.29% (21,898,968B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |   ->01.29% (21,898,968B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |     ->01.29% (21,898,968B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |       ->01.29% (21,898,968B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |         ->01.29% (21,898,968B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |           ->01.29% (21,898,968B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |             ->01.29% (21,898,968B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |               ->01.29% (21,898,968B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| |     |   |     |       |                 
| |     |   |     |       ->00.00% (9,048B) in 1+ places, all below ms_print's threshold (01.00%)
| |     |   |     |       
| |     |   |     ->00.01% (224,016B) in 1+ places, all below ms_print's threshold (01.00%)
| |     |   |     
| |     |   ->00.01% (197,600B) in 1+ places, all below ms_print's threshold (01.00%)
| |     |   
| |     ->01.12% (19,095,960B) 0x8ECC77E: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1226)
| |     | ->01.12% (19,095,960B) in 7 places, all below massif's threshold (01.00%)
| |     |   
| |     ->00.56% (9,459,840B) in 1+ places, all below ms_print's threshold (01.00%)
| |     
| ->03.30% (56,117,488B) 0x8ECAE5C: do_assignment(exec_list*, _mesa_glsl_parse_state*, char const*, ir_rvalue*, ir_rvalue*, ir_rvalue**, bool, bool, YYLTYPE) (list.h:79)
| | ->03.30% (56,117,488B) 0x8ECB79A: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1643)
| |   ->03.30% (56,109,984B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| |   | ->03.30% (56,104,384B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| |   | | ->03.25% (55,268,304B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| |   | | | ->03.25% (55,268,304B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| |   | | |   ->03.25% (55,268,304B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| |   | | |     ->03.25% (55,268,304B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| |   | | |       ->03.24% (55,118,448B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| |   | | |       | ->03.24% (55,118,448B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |   ->03.24% (55,118,448B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |     ->03.24% (55,118,448B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |       ->03.24% (55,118,448B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |         ->03.24% (55,118,448B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |           ->03.24% (55,118,448B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |             ->03.24% (55,118,448B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |               ->03.24% (55,118,448B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| |   | | |       |                 
| |   | | |       ->00.01% (149,856B) in 1+ places, all below ms_print's threshold (01.00%)
| |   | | |       
| |   | | ->00.05% (836,080B) in 1+ places, all below ms_print's threshold (01.00%)
| |   | | 
| |   | ->00.00% (5,600B) in 1+ places, all below ms_print's threshold (01.00%)
| |   | 
| |   ->00.00% (7,504B) in 1+ places, all below ms_print's threshold (01.00%)
| |   
| ->02.53% (43,077,008B) 0x8F1A48D: ir_assignment::set_lhs(ir_rvalue*) (list.h:79)
| | ->02.53% (43,077,008B) 0x8F1A56C: ir_assignment::ir_assignment(ir_rvalue*, ir_rvalue*, ir_rvalue*) (ir.cpp:195)
| |   ->02.53% (42,928,288B) 0x8ECAE78: do_assignment(exec_list*, _mesa_glsl_parse_state*, char const*, ir_rvalue*, ir_rvalue*, ir_rvalue**, bool, bool, YYLTYPE) (ast_to_hir.cpp:888)
| |   | ->02.53% (42,928,288B) 0x8ECB79A: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1643)
| |   |   ->02.52% (42,923,296B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| |   |   | ->02.52% (42,918,304B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| |   |   | | ->02.49% (42,307,720B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| |   |   | | | ->02.49% (42,307,720B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| |   |   | | |   ->02.49% (42,307,720B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| |   |   | | |     ->02.49% (42,307,720B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| |   |   | | |       ->02.49% (42,250,832B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       | ->02.49% (42,250,832B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |   ->02.49% (42,250,832B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |     ->02.49% (42,250,832B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |       ->02.49% (42,250,832B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |         ->02.49% (42,250,832B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |           ->02.49% (42,250,832B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |             ->02.49% (42,250,832B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |               ->02.49% (42,250,832B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |                 
| |   |   | | |       ->00.00% (56,888B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   | | |       
| |   |   | | ->00.04% (610,584B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   | | 
| |   |   | ->00.00% (4,992B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   | 
| |   |   ->00.00% (4,992B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   
| |   ->00.01% (148,720B) in 1+ places, all below ms_print's threshold (01.00%)
| |   
| ->02.53% (43,077,008B) 0x8F1A3AB: ir_assignment::set_lhs(ir_rvalue*) (list.h:79)
| | ->02.53% (43,077,008B) 0x8F1A56C: ir_assignment::ir_assignment(ir_rvalue*, ir_rvalue*, ir_rvalue*) (ir.cpp:195)
| |   ->02.53% (42,928,288B) 0x8ECAE78: do_assignment(exec_list*, _mesa_glsl_parse_state*, char const*, ir_rvalue*, ir_rvalue*, ir_rvalue**, bool, bool, YYLTYPE) (ast_to_hir.cpp:888)
| |   | ->02.53% (42,928,288B) 0x8ECB79A: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1643)
| |   |   ->02.52% (42,923,296B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| |   |   | ->02.52% (42,918,304B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| |   |   | | ->02.49% (42,307,720B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| |   |   | | | ->02.49% (42,307,720B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| |   |   | | |   ->02.49% (42,307,720B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| |   |   | | |     ->02.49% (42,307,720B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| |   |   | | |       ->02.49% (42,250,832B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       | ->02.49% (42,250,832B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |   ->02.49% (42,250,832B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |     ->02.49% (42,250,832B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |       ->02.49% (42,250,832B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |         ->02.49% (42,250,832B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |           ->02.49% (42,250,832B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |             ->02.49% (42,250,832B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |               ->02.49% (42,250,832B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| |   |   | | |       |                 
| |   |   | | |       ->00.00% (56,888B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   | | |       
| |   |   | | ->00.04% (610,584B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   | | 
| |   |   | ->00.00% (4,992B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   | 
| |   |   ->00.00% (4,992B) in 1+ places, all below ms_print's threshold (01.00%)
| |   |   
| |   ->00.01% (148,720B) in 1+ places, all below ms_print's threshold (01.00%)
| |   
| ->02.43% (41,376,000B) 0x8ECC7DB: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (list.h:79)
| | ->01.70% (28,906,624B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | | ->01.70% (28,906,624B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | |   ->01.70% (28,906,624B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | |     ->01.68% (28,484,608B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |     | ->01.68% (28,484,608B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |     |   ->01.68% (28,484,608B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |     |     ->01.68% (28,484,608B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |     |       ->01.67% (28,439,296B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |     |       | ->01.67% (28,439,296B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |   ->01.67% (28,439,296B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |     ->01.67% (28,439,296B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |       ->01.67% (28,439,296B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |         ->01.67% (28,439,296B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |           ->01.67% (28,439,296B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |             ->01.67% (28,439,296B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |               ->01.67% (28,439,296B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |     |       |                 
| | |     |       ->00.00% (45,312B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     |       
| | |     ->00.02% (422,016B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     
| | ->00.73% (12,469,376B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->02.23% (37,828,416B) 0x8EC71AA: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (list.h:79)
| | ->02.20% (37,454,976B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | | ->02.20% (37,454,976B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | |   ->02.20% (37,454,976B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | |     ->02.19% (37,150,464B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |     | ->02.19% (37,150,464B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |     |   ->02.19% (37,150,464B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |     |     ->02.19% (37,150,464B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |     |       ->02.18% (37,084,224B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |     |       | ->02.18% (37,084,224B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |   ->02.18% (37,084,224B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |     ->02.18% (37,084,224B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |       ->02.18% (37,084,224B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |         ->02.18% (37,084,224B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |           ->02.18% (37,084,224B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |             ->02.18% (37,084,224B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |               ->02.18% (37,084,224B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |     |       |                 
| | |     |       ->00.00% (66,240B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     |       
| | |     ->00.02% (304,512B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     
| | ->00.02% (373,440B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->02.10% (35,651,136B) 0x8ECE24D: ast_declarator_list::hir(exec_list*, _mesa_glsl_parse_state*) (list.h:79)
| | ->01.09% (18,454,080B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | | ->01.09% (18,454,080B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |   ->01.09% (18,454,080B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |     ->01.07% (18,117,504B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |     | ->01.07% (18,117,504B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |   ->01.07% (18,117,504B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |     ->01.07% (18,117,504B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       ->01.07% (18,117,504B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |         ->01.07% (18,117,504B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |     |           ->01.07% (18,117,504B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |     |             ->01.07% (18,117,504B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |     |               ->01.07% (18,117,504B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |     |                 
| | |     ->00.02% (336,576B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     
| | ->01.01% (17,193,792B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | | ->01.01% (17,193,792B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |   ->01.01% (17,193,792B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |     ->01.01% (17,193,792B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |       ->01.01% (17,193,792B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |         ->01.01% (17,133,888B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |         | ->01.01% (17,133,888B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |         |   ->01.01% (17,133,888B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |         |     ->01.01% (17,133,888B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |         |       ->01.01% (17,133,888B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |         |         ->01.01% (17,133,888B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |         |           ->01.01% (17,133,888B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |         |             ->01.01% (17,133,888B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |         |               ->01.01% (17,133,888B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |         |                 
| | |         ->00.00% (59,904B) in 1+ places, all below ms_print's threshold (01.00%)
| | |         
| | ->00.00% (3,264B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.79% (30,463,992B) 0x8F149C2: glsl_symbol_table::add_type(char const*, glsl_type const*) (glsl_symbol_table.cpp:29)
| | ->01.37% (23,251,696B) 0x8EEF083: _mesa_glsl_initialize_types (builtin_types.cpp:257)
| | | ->01.37% (23,236,096B) 0x8F0E596: _mesa_glsl_parse(_mesa_glsl_parse_state*) (glsl_parser.yy:302)
| | | | ->01.37% (23,236,096B) 0x8F144F2: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1449)
| | | |   ->01.37% (23,236,096B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | | |     ->01.31% (22,191,104B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | | |     | ->01.31% (22,191,104B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | | |     |   ->01.31% (22,191,104B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | | |     |     ->01.31% (22,191,104B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | | |     |       ->01.31% (22,191,104B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | | |     |         ->01.31% (22,191,104B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | | |     |           ->01.31% (22,191,104B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | | |     |             ->01.31% (22,191,104B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | | |     |               ->01.31% (22,191,104B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | | |     |                 
| | | |     ->00.06% (1,044,992B) in 1+ places, all below ms_print's threshold (01.00%)
| | | |     
| | | ->00.00% (15,600B) in 1+ places, all below ms_print's threshold (01.00%)
| | | 
| | ->00.42% (7,212,296B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.73% (29,380,704B) 0x8F1C0F7: ir_dereference_variable::clone(void*, hash_table*) const (list.h:79)
| | ->01.04% (17,716,032B) 0x8EC7352: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (ast_function.cpp:413)
| | | ->01.03% (17,544,960B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | | | ->01.03% (17,544,960B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | | |   ->01.03% (17,544,960B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | | |     ->01.02% (17,405,856B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | | |     | ->01.02% (17,405,856B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | | |     |   ->01.02% (17,405,856B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | | |     |     ->01.02% (17,405,856B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | | |     |       ->01.02% (17,381,760B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | | |     |       | ->01.02% (17,381,760B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |   ->01.02% (17,381,760B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |     ->01.02% (17,381,760B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |       ->01.02% (17,381,760B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |         ->01.02% (17,381,760B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |           ->01.02% (17,381,760B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |             ->01.02% (17,381,760B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |               ->01.02% (17,381,760B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | | |     |       |                 
| | | |     |       ->00.00% (24,096B) in 1+ places, all below ms_print's threshold (01.00%)
| | | |     |       
| | | |     ->00.01% (139,104B) in 1+ places, all below ms_print's threshold (01.00%)
| | | |     
| | | ->00.01% (171,072B) in 1+ places, all below ms_print's threshold (01.00%)
| | | 
| | ->00.69% (11,664,672B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.48% (25,218,944B) 0x8EC721D: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (list.h:79)
| | ->01.47% (24,969,984B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | | ->01.47% (24,969,984B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | |   ->01.47% (24,969,984B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | |     ->01.46% (24,766,976B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |     | ->01.46% (24,766,976B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |     |   ->01.46% (24,766,976B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |     |     ->01.46% (24,766,976B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |     |       ->01.45% (24,722,816B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |     |       | ->01.45% (24,722,816B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |   ->01.45% (24,722,816B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |     ->01.45% (24,722,816B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |       ->01.45% (24,722,816B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |         ->01.45% (24,722,816B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |           ->01.45% (24,722,816B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |             ->01.45% (24,722,816B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |               ->01.45% (24,722,816B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |     |       |                 
| | |     |       ->00.00% (44,160B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     |       
| | |     ->00.01% (203,008B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     
| | ->00.01% (248,960B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.48% (25,149,120B) 0x8EEF95C: (anonymous namespace)::builtin_variable_generator::add_uniform(glsl_type const*, char const*) (builtin_variables.cpp:495)
| | ->01.48% (25,149,120B) in 26 places, all below massif's threshold (01.00%)
| |   
| ->01.41% (23,996,728B) 0x8ECB97B: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (list.h:79)
| | ->01.40% (23,735,816B) 0x8ECC877: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1686)
| | | ->01.25% (21,222,560B) 0x8F16C9D: _mesa_ast_field_selection_to_hir(ast_expression const*, exec_list*, _mesa_glsl_parse_state*) (hir_field_selection.cpp:39)
| | | | ->01.25% (21,222,560B) 0x8ECC8D4: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1679)
| | | |   ->01.25% (21,222,560B) in 8 places, all below massif's threshold (01.00%)
| | | |     
| | | ->00.15% (2,513,256B) in 1+ places, all below ms_print's threshold (01.00%)
| | | 
| | ->00.02% (260,912B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.41% (23,967,360B) 0x8F1C55F: ir_variable::clone(void*, hash_table*) const (list.h:79)
| | ->01.16% (19,790,592B) 0x8F1CEB2: ir_function_signature::clone_prototype(void*, hash_table*) const (ir_clone.cpp:332)
| | | ->01.16% (19,790,592B) 0x8EC6665: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (ast_function.cpp:468)
| | | | ->01.14% (19,399,296B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | | | | ->01.14% (19,399,296B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | | | |   ->01.14% (19,399,296B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | | | |     ->01.14% (19,330,560B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | | | |     | ->01.14% (19,330,560B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | | | |     |   ->01.14% (19,330,560B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | | | |     |     ->01.14% (19,330,560B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | | | |     |       ->01.13% (19,235,520B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       | ->01.13% (19,235,520B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |   ->01.13% (19,235,520B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |     ->01.13% (19,235,520B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |       ->01.13% (19,235,520B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |         ->01.13% (19,235,520B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |           ->01.13% (19,235,520B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |             ->01.13% (19,235,520B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |               ->01.13% (19,235,520B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | | | |     |       |                 
| | | | |     |       ->00.01% (95,040B) in 1+ places, all below ms_print's threshold (01.00%)
| | | | |     |       
| | | | |     ->00.00% (68,736B) in 1+ places, all below ms_print's threshold (01.00%)
| | | | |     
| | | | ->00.02% (391,296B) in 1+ places, all below ms_print's threshold (01.00%)
| | | | 
| | | ->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
| | | 
| | ->00.25% (4,176,768B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.30% (22,160,324B) 0x8F4FE9D: rzalloc_size (ralloc.c:134)
| | ->01.30% (22,160,324B) in 65 places, all below massif's threshold (01.00%)
| |   
| ->01.11% (18,916,488B) 0x8F21402: ir_swizzle::constant_expression_value(hash_table*) (list.h:79)
| | ->01.11% (18,916,120B) 0x8F46F72: (anonymous namespace)::ir_constant_folding_visitor::handle_rvalue(ir_rvalue**) (opt_constant_folding.cpp:82)
| | | ->01.11% (18,916,120B) in 4 places, all below massif's threshold (01.00%)
| | |   
| | ->00.00% (368B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.11% (18,914,208B) 0x8EC71F9: ast_function_expression::hir(exec_list*, _mesa_glsl_parse_state*) (list.h:79)
| | ->01.10% (18,727,488B) 0x8ECC6ED: ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool) (ast_to_hir.cpp:1191)
| | | ->01.10% (18,727,488B) 0x8ECD981: ast_expression_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1819)
| | |   ->01.10% (18,727,488B) 0x8ECD9DD: ast_compound_statement::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:1835)
| | |     ->01.09% (18,575,232B) 0x8ECFB17: ast_function_definition::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:4130)
| | |     | ->01.09% (18,575,232B) 0x8ECA08E: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:101)
| | |     |   ->01.09% (18,575,232B) 0x8F14292: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1464)
| | |     |     ->01.09% (18,575,232B) 0x8D9FCDF: compile_shader (shaderapi.c:850)
| | |     |       ->01.09% (18,542,112B) 0x4851D5: _glCompileShaderARB(unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |     |       | ->01.09% (18,542,112B) 0x50C289: retrace_glCompileShaderARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |   ->01.09% (18,542,112B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |     ->01.09% (18,542,112B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |       ->01.09% (18,542,112B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |     |       |         ->01.09% (18,542,112B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |           ->01.09% (18,542,112B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |             ->01.09% (18,542,112B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |     |       |               ->01.09% (18,542,112B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |     |       |                 
| | |     |       ->00.00% (33,120B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     |       
| | |     ->00.01% (152,256B) in 1+ places, all below ms_print's threshold (01.00%)
| | |     
| | ->00.01% (186,720B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->01.00% (17,015,216B) 0x8EEF850: (anonymous namespace)::builtin_variable_generator::add_const(char const*, int) (list.h:79)
| | ->01.00% (17,015,216B) in 14 places, all below massif's threshold (01.00%)
| |   
| ->01.00% (17,015,216B) 0x8EEF879: (anonymous namespace)::builtin_variable_generator::add_const(char const*, int) (list.h:79)
|   ->01.00% (17,015,216B) in 14 places, all below massif's threshold (01.00%)
|     
->06.48% (110,153,728B) 0x943C297: drm_intel_gem_bo_map (intel_bufmgr_gem.c:1204)
| ->04.16% (70,778,880B) 0x8F8E7EB: intel_bufferobj_map_range (intel_buffer_objects.c:441)
| | ->03.96% (67,371,008B) 0x8D10A96: _mesa_MapBufferRange (bufferobj.c:2148)
| | | ->03.96% (67,371,008B) 0x486B63: _glMapBufferRange(unsigned int, long, long, unsigned int) (in /home/anholt/src/apitrace/glretrace)
| | |   ->03.96% (67,371,008B) 0x5145DC: retrace_glMapBufferRange(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |     ->03.96% (67,371,008B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| | |       ->03.96% (67,371,008B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |         ->03.96% (67,371,008B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| | |           ->03.96% (67,371,008B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| | |             ->03.94% (67,014,656B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| | |             | ->03.94% (67,014,656B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| | |             |   ->03.94% (67,014,656B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| | |             |     
| | |             ->00.02% (356,352B) in 1+ places, all below ms_print's threshold (01.00%)
| | |             
| | ->00.20% (3,407,872B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->02.06% (34,979,840B) 0x8F9C7EC: intel_texsubimage_tiled_memcpy (intel_tex_subimage.c:617)
| | ->02.06% (34,979,840B) 0x8F9B152: intelTexImage (intel_tex_image.c:178)
| |   ->02.06% (34,979,840B) 0x8DBB5D0: teximage (teximage.c:3263)
| |     ->02.06% (34,979,840B) 0x8DBCA6F: _mesa_TexImage2D (teximage.c:3302)
| |       ->02.06% (34,979,840B) 0x470121: _glTexImage2D(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) (in /home/anholt/src/apitrace/glretrace)
| |         ->02.06% (34,979,840B) 0x4B16B8: retrace_glTexImage2D(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |           ->02.06% (34,979,840B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
| |             ->02.06% (34,979,840B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |               ->02.06% (34,979,840B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
| |                 ->02.06% (34,979,840B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
| |                   ->02.06% (34,979,840B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
| |                     ->02.06% (34,979,840B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
| |                       ->02.06% (34,979,840B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
| |                         
| ->00.26% (4,395,008B) in 1+ places, all below ms_print's threshold (01.00%)
| 
->03.98% (67,608,002B) in 336 places, all below massif's threshold (01.00%)
| 
->02.16% (36,796,720B) 0x8EB718A: _mesa_symbol_table_add_symbol (symbol_table.c:278)
| ->01.46% (24,763,640B) 0x8F148D5: glsl_symbol_table::add_variable(ir_variable*) (glsl_symbol_table.cpp:156)
| | ->01.23% (20,919,040B) 0x8EEF6F5: (anonymous namespace)::builtin_variable_generator::add_variable(char const*, glsl_type const*, ir_variable_mode, int) [clone .isra.6] (builtin_variables.cpp:469)
| | | ->01.23% (20,919,040B) in 28 places, all below massif's threshold (01.00%)
| | |   
| | ->00.23% (3,844,600B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->00.71% (12,033,080B) in 1+ places, all below ms_print's threshold (01.00%)
| 
->02.02% (34,401,664B) 0x8E9BC3E: hash_table_insert (prog_hash_table.c:144)
| ->01.93% (32,871,040B) 0x8EB721C: _mesa_symbol_table_add_symbol (symbol_table.c:259)
| | ->01.37% (23,244,576B) 0x8F148D5: glsl_symbol_table::add_variable(ir_variable*) (glsl_symbol_table.cpp:156)
| | | ->01.37% (23,244,576B) in 8 places, all below massif's threshold (01.00%)
| | |   
| | ->00.57% (9,626,464B) in 1+ places, all below ms_print's threshold (01.00%)
| | 
| ->00.09% (1,530,624B) in 1+ places, all below ms_print's threshold (01.00%)
| 
->01.45% (24,653,280B) 0x8EB71FD: _mesa_symbol_table_add_symbol (symbol_table.c:256)
| ->01.03% (17,433,432B) 0x8F148D5: glsl_symbol_table::add_variable(ir_variable*) (glsl_symbol_table.cpp:156)
| | ->01.03% (17,433,432B) in 8 places, all below massif's threshold (01.00%)
| |   
| ->00.42% (7,219,848B) in 1+ places, all below ms_print's threshold (01.00%)
| 
->01.32% (22,454,907B) 0x8DA19FE: _mesa_ShaderSource (shaderapi.c:1468)
  ->01.31% (22,300,979B) 0x48516F: _glShaderSourceARB(unsigned int, int, char const**, int const*) (in /home/anholt/src/apitrace/glretrace)
  | ->01.31% (22,300,979B) 0x50C0AA: retrace_glShaderSourceARB(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
  |   ->01.31% (22,300,979B) 0x429DF7: retrace::Retracer::retrace(trace::Call&) (in /home/anholt/src/apitrace/glretrace)
  |     ->01.31% (22,300,979B) 0x41F816: retrace::retraceCall(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
  |       ->01.31% (22,300,979B) 0x4216B4: retrace::RelayRunner::runLeg(trace::Call*) (in /home/anholt/src/apitrace/glretrace)
  |         ->01.31% (22,300,979B) 0x4215A6: retrace::RelayRunner::runRace() (in /home/anholt/src/apitrace/glretrace)
  |           ->01.31% (22,300,979B) 0x41FB5C: retrace::RelayRace::run() (in /home/anholt/src/apitrace/glretrace)
  |             ->01.31% (22,300,979B) 0x41FD19: retrace::mainLoop() (in /home/anholt/src/apitrace/glretrace)
  |               ->01.31% (22,300,979B) 0x4204C1: main (in /home/anholt/src/apitrace/glretrace)
  |                 
  ->00.01% (153,928B) in 1+ places, all below ms_print's threshold (01.00%)
  
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140530/5c24c030/attachment-0001.sig>


More information about the mesa-dev mailing list