Profiling results ----------------- Total cpu time observed: 88802ms (out of 89320ms) Number of samples taken: 275 (once every 323ms) (Hiding functions with self<1.0% and local<2.0%: 2 of 207 hidden) ========================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================= ??? [19] 100.0% [1] 88802(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [10] 100.0% ----------------------------------------------------------------------------------------- matcher [89] 100.0% [2] 3820(4.3%) 300(0.3%) ??? ...-interface-bugs/src/core/matcher.rkt:128:11 for-loop [11] 93.2% for-loop [16] 2.9% ----------------------------------------------------------------------------------------- ??? [78] 100.0% [3] 2950(3.3%) 0(0.0%) approximate9 ...face-bugs/src/core/taylor.rkt:12:0 loop [12] 100.0% ----------------------------------------------------------------------------------------- for-loop [79] 100.0% [4] 1016(1.1%) 0(0.0%) for-loop ...terface-bugs/src/core/matcher.rkt:97:8 fix-up-variables [13] 100.0% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [5] 656(0.7%) 0(0.0%) get-final-combination ...gs/src/mainloop.rkt:370:0 infer-splitpoints [17] 50.9% f66 [92] 49.1% ----------------------------------------------------------------------------------------- taylor [6] 50.0% hash-ref! [60] 50.0% [6] 336(0.4%) 0(0.0%) taylor ...interface-bugs/src/core/taylor.rkt:170:0 taylor [6] 50.0% taylor-invert [15] 50.0% ----------------------------------------------------------------------------------------- loop [200] 100.0% [7] 326(0.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [20] 100.0% ----------------------------------------------------------------------------------------- loop [198] 100.0% [8] 322(0.4%) 0(0.0%) stx-pair? .../collects/racket/private/stx.rkt:40:4 syntax-e [14] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [60] 100.0% [9] 300(0.3%) 0(0.0%) ??? ...x-interface-bugs/src/core/taylor.rkt:291:26 for-loop [18] 100.0% ----------------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [10] 88802(100.0%) 0(0.0%) run ...et-7.2/share/pkgs/profile-lib/main.rkt:39:2 ??? [19] 100.0% ----------------------------------------------------------------------------------------- ??? [2] 100.0% [11] 3820(4.3%) 0(0.0%) for-loop ...rface-bugs/src/core/matcher.rkt:130:15 matcher [89] 100.0% ----------------------------------------------------------------------------------------- approximate9 [3] 100.0% [12] 2950(3.3%) 0(0.0%) loop ...ix-interface-bugs/src/core/taylor.rkt:87:4 hash-ref! [60] 67.1% ??? [78] 32.9% ----------------------------------------------------------------------------------------- for-loop [4] 100.0% [13] 1016(1.1%) 0(0.0%) fix-up-variables ...ugs/src/core/matcher.rkt:109:2 pattern-substitute [102] 64.6% pattern-match [21] 35.4% ----------------------------------------------------------------------------------------- stx-pair? [8] 32.5% loop [200] 67.5% [14] 990(1.1%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [20] 100.0% ----------------------------------------------------------------------------------------- taylor [6] 100.0% [15] 336(0.4%) 0(0.0%) taylor-invert ...ce-bugs/src/core/taylor.rkt:318:0 simplify [80] 100.0% ----------------------------------------------------------------------------------------- ??? [2] 100.0% [16] 334(0.4%) 0(0.0%) for-loop ...erface-bugs/src/core/matcher.rkt:104:4 foldl [134] 100.0% ----------------------------------------------------------------------------------------- get-final-combination [5] 100.0% [17] 334(0.4%) 0(0.0%) infer-splitpoints ...ugs/src/core/regimes.rkt:34:0 for-loop [22] 100.0% ----------------------------------------------------------------------------------------- ??? [9] 100.0% [18] 300(0.3%) 0(0.0%) for-loop ...erface-bugs/src/core/taylor.rkt:291:52 hash-ref! [60] 100.0% ----------------------------------------------------------------------------------------- for-loop [180] 1.1% run [10] 49.5% [19] 88802(100.0%) 298(0.3%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.5% run-improve47 [23] 43.1% prepare-points-intervals [24] 5.0% ??? [45] 0.8% oracle-error [25] 0.5% get-final-combination [5] 0.3% errors [176] 0.2% eval-errors [29] 0.2% errors-score [30] 0.2% *bit-width* [27] 0.1% ----------------------------------------------------------------------------------------- expand-id-application-form17 [7] 24.8% syntax-e [14] 75.2% [20] 1316(1.5%) 0(0.0%) syntax-e/no-taint (unknown source) loop [200] 100.0% ----------------------------------------------------------------------------------------- fix-up-variables [13] 100.0% [21] 360(0.4%) 0(0.0%) pattern-match ...ce-bugs/src/core/matcher.rkt:30:0 for-loop [26] 100.0% ----------------------------------------------------------------------------------------- infer-splitpoints [17] 100.0% [22] 334(0.4%) 0(0.0%) for-loop ...terface-bugs/src/core/regimes.rkt:47:6 option-on-expr [28] 100.0% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [23] 77092(86.8%) 0(0.0%) run-improve47 ...rface-bugs/src/mainloop.rkt:345:0 for-loop [31] 99.6% simplify! [44] 0.4% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [24] 8944(10.1%) 0(0.0%) prepare-points-intervals ...s/src/points.rkt:121:0 loop [32] 100.0% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [25] 908(1.0%) 0(0.0%) oracle-error ...nterface-bugs/src/points.rkt:199:0 for-loop [33] 100.0% ----------------------------------------------------------------------------------------- pattern-match [21] 100.0% [26] 360(0.4%) 0(0.0%) for-loop ...terface-bugs/src/core/matcher.rkt:27:9 core651 [34] 100.0% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [27] 334(0.4%) 0(0.0%) *bit-width* ...x-interface-bugs/src/float.rkt:35:0 return/no-unsupplied [131] 100.0% ----------------------------------------------------------------------------------------- for-loop [22] 100.0% [28] 334(0.4%) 0(0.0%) option-on-expr ...-bugs/src/core/regimes.rkt:126:0 for-loop [35] 100.0% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [29] 298(0.3%) 0(0.0%) eval-errors ...interface-bugs/src/points.rkt:190:0 for-loop [36] 100.0% ----------------------------------------------------------------------------------------- ??? [19] 100.0% [30] 292(0.3%) 0(0.0%) errors-score ...nterface-bugs/src/points.rkt:207:0 loop [37] 100.0% ----------------------------------------------------------------------------------------- run-improve47 [23] 100.0% [31] 76788(86.5%) 0(0.0%) for-loop ...-interface-bugs/src/mainloop.rkt:364:4 run-iter! [38] 100.0% ----------------------------------------------------------------------------------------- prepare-points-intervals [24] 100.0% [32] 8944(10.1%) 0(0.0%) loop ...ie/fix-interface-bugs/src/points.rkt:134:4 loop [39] 72.8% ??? [40] 27.2% ----------------------------------------------------------------------------------------- oracle-error [25] 100.0% [33] 908(1.0%) 0(0.0%) for-loop ...ix-interface-bugs/src/points.rkt:200:2 map [101] 66.1% loop [126] 33.9% ----------------------------------------------------------------------------------------- for-loop [26] 100.0% [34] 360(0.4%) 0(0.0%) core651 ...acket/contract/private/arr-i.rkt:929:19 successfully-got-the-right-kind-of-function [41]100.0% ----------------------------------------------------------------------------------------- option-on-expr [28] 100.0% [35] 334(0.4%) 0(0.0%) for-loop ...erface-bugs/src/core/regimes.rkt:136:4 errors [176] 100.0% ----------------------------------------------------------------------------------------- eval-errors [29] 100.0% [36] 298(0.3%) 0(0.0%) for-loop ...ix-interface-bugs/src/points.rkt:192:2 ??? [42] 100.0% ----------------------------------------------------------------------------------------- errors-score [30] 100.0% [37] 292(0.3%) 0(0.0%) loop .../racket-7.2/collects/racket/list.rkt:559:2 ??? [43] 100.0% ----------------------------------------------------------------------------------------- for-loop [31] 100.0% [38] 76788(86.5%) 0(0.0%) run-iter! ...interface-bugs/src/mainloop.rkt:326:0 simplify! [44] 84.2% finalize-iter! [46] 6.2% gen-rewrites! [47] 5.0% gen-series! [48] 3.8% choose-best-alt! [50] 0.4% localize! [51] 0.4% ----------------------------------------------------------------------------------------- loop [32] 100.0% [39] 6512(7.3%) 620(0.7%) loop ...bie/fix-interface-bugs/src/points.rkt:80:2 ??? [45] 90.5% ----------------------------------------------------------------------------------------- loop [32] 100.0% [40] 2432(2.7%) 1412(1.6%) ??? ...bie/fix-interface-bugs/src/points.rkt:114:6 sample-multi-bounded [56] 27.9% loop [49] 14.1% ----------------------------------------------------------------------------------------- core651 [34] 100.0% [41] 360(0.4%) 360(0.4%) successfully-got-the-right-kind-of-function ...1:4 ----------------------------------------------------------------------------------------- for-loop [36] 100.0% [42] 298(0.3%) 298(0.3%) ??? ...7.2/collects/racket/private/for.rkt:1233:14 ----------------------------------------------------------------------------------------- loop [37] 100.0% [43] 292(0.3%) 292(0.3%) ??? ...cket-7.2/collects/racket/function.rkt:93:12 ----------------------------------------------------------------------------------------- run-improve47 [23] 0.5% run-iter! [38] 99.5% [44] 64948(73.1%) 0(0.0%) simplify! ...interface-bugs/src/mainloop.rkt:223:0 ??? [52] 100.0% ----------------------------------------------------------------------------------------- ??? [146] 3.6% ??? [19] 26.0% loop [39] 70.4% [45] 8368(9.4%) 288(0.3%) ??? ...e/fix-interface-bugs/src/programs.rkt:115:2 ??? [53] 53.8% ??? [78] 42.8% ----------------------------------------------------------------------------------------- run-iter! [38] 100.0% [46] 4748(5.3%) 0(0.0%) finalize-iter! ...face-bugs/src/mainloop.rkt:277:0 ??? [125] 100.0% ----------------------------------------------------------------------------------------- run-iter! [38] 100.0% [47] 3820(4.3%) 0(0.0%) gen-rewrites! ...rface-bugs/src/mainloop.rkt:182:0 for-loop [54] 100.0% ----------------------------------------------------------------------------------------- run-iter! [38] 100.0% [48] 2950(3.3%) 0(0.0%) gen-series! ...terface-bugs/src/mainloop.rkt:159:0 for-loop [55] 100.0% ----------------------------------------------------------------------------------------- ??? [40] 100.0% [49] 342(0.4%) 0(0.0%) loop ...-7.2/collects/racket/private/map.rkt:54:19 sample-multi-bounded [56] 100.0% ----------------------------------------------------------------------------------------- run-iter! [38] 100.0% [50] 336(0.4%) 0(0.0%) choose-best-alt! ...ce-bugs/src/mainloop.rkt:116:0 ??? [125] 100.0% ----------------------------------------------------------------------------------------- run-iter! [38] 100.0% [51] 290(0.3%) 0(0.0%) localize! ...interface-bugs/src/mainloop.rkt:126:0 localize-error [57] 100.0% ----------------------------------------------------------------------------------------- simplify! [44] 100.0% [52] 64948(73.1%) 0(0.0%) ??? ...x-interface-bugs/src/core/simplify.rkt:26:0 for-loop [58] 90.7% one-iter [65] 7.3% loop [69] 2.0% ----------------------------------------------------------------------------------------- ??? [45] 100.0% [53] 4500(5.1%) 948(1.1%) ??? ...t-7.2/collects/racket/private/kw.rkt:594:14 ??? [62] 43.4% ??? [64] 20.7% ??? [78] 14.8% ----------------------------------------------------------------------------------------- gen-rewrites! [47] 100.0% [54] 3820(4.3%) 0(0.0%) for-loop ...interface-bugs/src/mainloop.rkt:190:11 rewrite-expression-head20 [59] 100.0% ----------------------------------------------------------------------------------------- gen-series! [48] 100.0% [55] 2950(3.3%) 0(0.0%) for-loop ...-interface-bugs/src/mainloop.rkt:166:7 taylor-alt [61] 100.0% ----------------------------------------------------------------------------------------- loop [49] 33.5% ??? [40] 66.5% [56] 1020(1.1%) 0(0.0%) sample-multi-bounded ...e-bugs/src/points.rkt:15:0 random-ranges [63] 100.0% ----------------------------------------------------------------------------------------- localize! [51] 100.0% [57] 290(0.3%) 0(0.0%) localize-error ...-bugs/src/core/localize.rkt:64:0 hash-ref! [60] 100.0% ----------------------------------------------------------------------------------------- ??? [52] 100.0% [58] 58940(66.4%) 0(0.0%) for-loop ...erface-bugs/src/core/simplify.rkt:35:2 one-iter [65] 98.4% loop [69] 1.6% ----------------------------------------------------------------------------------------- for-loop [54] 100.0% [59] 3820(4.3%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:86:0 rewriter [66] 100.0% ----------------------------------------------------------------------------------------- simplify* [119] 2.0% localize-error [57] 3.0% for-loop [18] 3.1% ??? [86] 5.6% map [101] 6.0% ??? [70] 7.0% ??? [68] 14.0% loop [12] 17.5% ??? [78] 41.8% [60] 3240(3.6%) 326(0.4%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [68] 38.4% ??? [70] 24.5% simplify [80] 19.6% parse-loop79 [115] 9.0% taylor [6] 3.5% ??? [9] 3.1% ----------------------------------------------------------------------------------------- for-loop [55] 100.0% [61] 2950(3.3%) 0(0.0%) taylor-alt ...nterface-bugs/src/mainloop.rkt:145:0 for-loop [67] 100.0% ----------------------------------------------------------------------------------------- ??? [53] 100.0% [62] 1954(2.2%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:364:33 ival-sub [71] 44.9% ival-div [73] 34.3% ival-add [74] 20.8% ----------------------------------------------------------------------------------------- sample-multi-bounded [56] 100.0% [63] 1020(1.1%) 0(0.0%) random-ranges ...terface-bugs/src/common.rkt:183:0 build--> [72] 66.5% cons/c [75] 33.5% ----------------------------------------------------------------------------------------- ??? [53] 100.0% [64] 930(1.0%) 596(0.7%) ??? ...interface-bugs/src/syntax/syntax.rkt:214:17 return/no-unsupplied [131] 35.9% ----------------------------------------------------------------------------------------- ??? [52] 7.6% for-loop [58] 92.4% [65] 62722(70.6%) 0(0.0%) one-iter ...erface-bugs/src/core/simplify.rkt:72:0 find-matches [76] 53.9% for-loop [77] 39.8% for-loop [81] 4.4% for-loop [84] 1.9% ----------------------------------------------------------------------------------------- rewrite-expression-head20 [59] 40.2% matcher [89] 59.8% [66] 3820(4.3%) 0(0.0%) rewriter ...terface-bugs/src/core/matcher.rkt:88:2 for-loop [79] 86.2% *rules* [83] 13.8% ----------------------------------------------------------------------------------------- taylor-alt [61] 100.0% [67] 2950(3.3%) 0(0.0%) for-loop ...-interface-bugs/src/mainloop.rkt:151:6 ??? [78] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [60] 100.0% [68] 2614(2.9%) 0(0.0%) ??? ...ix-interface-bugs/src/core/taylor.rkt:45:15 hash-ref! [60] 62.9% simplify [80] 23.3% ??? [86] 13.8% ----------------------------------------------------------------------------------------- for-loop [58] 42.9% ??? [52] 57.1% [69] 2226(2.5%) 0(0.0%) loop ...nterface-bugs/src/core/extraction.rkt:25:2 for-loop [82] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [60] 100.0% [70] 1980(2.2%) 0(0.0%) ??? ...ix-interface-bugs/src/core/taylor.rkt:68:15 ??? [78] 75.7% hash-ref! [60] 24.3% ----------------------------------------------------------------------------------------- ??? [62] 100.0% [71] 878(1.0%) 0(0.0%) ival-sub ...terface-bugs/src/biginterval.rkt:100:0 bfsub [103] 100.0% ----------------------------------------------------------------------------------------- random-ranges [63] 100.0% [72] 678(0.8%) 0(0.0%) build--> ...act/private/arrow-val-first.rkt:1088:0 coerce-contract [85] 100.0% ----------------------------------------------------------------------------------------- ??? [62] 100.0% [73] 670(0.8%) 296(0.3%) ival-div ...terface-bugs/src/biginterval.rkt:148:0 bfsub [103] 55.8% ----------------------------------------------------------------------------------------- ??? [62] 100.0% [74] 406(0.5%) 406(0.5%) ival-add ...nterface-bugs/src/biginterval.rkt:94:0 ----------------------------------------------------------------------------------------- random-ranges [63] 100.0% [75] 342(0.4%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:504:15 coerce-contract [85] 100.0% ----------------------------------------------------------------------------------------- one-iter [65] 100.0% [76] 33818(38.1%) 0(0.0%) find-matches ...ce-bugs/src/core/simplify.rkt:62:0 for-loop [87] 100.0% ----------------------------------------------------------------------------------------- one-iter [65] 100.0% [77] 24964(28.1%) 298(0.3%) for-loop ...erface-bugs/src/core/simplify.rkt:74:2 for-loop [88] 98.8% ----------------------------------------------------------------------------------------- loop [12] 4.5% ??? [70] 9.2% ??? [53] 9.3% location-do [91] 13.7% for-loop [67] 13.7% ??? [45] 49.7% [78] 7198(8.1%) 610(0.7%) ??? ...tract/private/arrow-higher-order.rkt:360:33 bf [90] 41.3% location-do [91] 13.7% approximate9 [3] 13.7% hash-ref! [60] 13.7% ival-mult [97] 9.3% ----------------------------------------------------------------------------------------- rewriter [66] 100.0% [79] 3820(4.3%) 0(0.0%) for-loop ...terface-bugs/src/core/matcher.rkt:90:4 matcher [89] 91.2% for-loop [4] 8.8% ----------------------------------------------------------------------------------------- taylor-invert [15] 11.4% ??? [68] 20.6% hash-ref! [60] 68.0% [80] 2950(3.3%) 0(0.0%) simplify ...nterface-bugs/src/core/reduce.rkt:16:0 f66 [92] 76.3% parse-loop79 [115] 12.3% debug-print [98] 11.4% ----------------------------------------------------------------------------------------- one-iter [65] 100.0% [81] 2750(3.1%) 0(0.0%) for-loop ...erface-bugs/src/core/simplify.rkt:84:2 update-leader! [112] 100.0% ----------------------------------------------------------------------------------------- loop [69] 100.0% [82] 2226(2.5%) 310(0.3%) for-loop ...face-bugs/src/core/extraction.rkt:29:4 for-loop [93] 86.1% ----------------------------------------------------------------------------------------- rewriter [66] 100.0% [83] 1514(1.7%) 334(0.4%) *rules* ...terface-bugs/src/syntax/rules.rkt:666:0 for-loop [95] 77.9% ----------------------------------------------------------------------------------------- one-iter [65] 100.0% [84] 1190(1.3%) 0(0.0%) for-loop ...erface-bugs/src/core/simplify.rkt:81:2 set-precompute! [94] 100.0% ----------------------------------------------------------------------------------------- cons/c [75] 33.5% build--> [72] 66.5% [85] 1020(1.1%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:308:0 coerce-contract/f [96] 100.0% ----------------------------------------------------------------------------------------- ??? [68] 100.0% [86] 362(0.4%) 0(0.0%) ??? ...x-interface-bugs/src/core/taylor.rkt:294:19 hash-ref! [60] 100.0% ----------------------------------------------------------------------------------------- for-loop [87] 49.1% find-matches [76] 50.9% [87] 33818(38.1%) 1570(1.8%) for-loop ...erface-bugs/src/core/simplify.rkt:64:8 for-loop [87] 49.1% match-e [99] 47.7% ----------------------------------------------------------------------------------------- for-loop [77] 100.0% [88] 24666(27.8%) 602(0.7%) for-loop ...erface-bugs/src/core/simplify.rkt:77:4 merge-egraph-nodes! [100] 63.6% dedup-children! [127] 17.8% mk-enode-rec! [143] 11.3% pattern-substitute [102] 4.8% ----------------------------------------------------------------------------------------- for-loop [11] 47.2% for-loop [79] 52.8% [89] 3820(4.3%) 330(0.4%) matcher ...terface-bugs/src/core/matcher.rkt:116:2 ??? [2] 51.6% rewriter [66] 42.9% constant? [167] 1.2% ----------------------------------------------------------------------------------------- ??? [78] 100.0% [90] 2970(3.3%) 384(0.4%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [113] 87.1% ----------------------------------------------------------------------------------------- ??? [78] 44.2% location-do [91] 55.8% [91] 2950(3.3%) 0(0.0%) location-do ...nterface-bugs/src/programs.rkt:64:0 location-do [91] 55.8% ??? [78] 44.2% ----------------------------------------------------------------------------------------- get-final-combination [5] 12.5% map [101] 25.6% simplify [80] 61.9% [92] 2574(2.9%) 322(0.4%) f66 ...2/collects/racket/match/compiler.rkt:507:40 map [101] 58.0% eval-const-expr [130] 23.6% composed [109] 5.8% ----------------------------------------------------------------------------------------- for-loop [82] 100.0% [93] 1916(2.2%) 610(0.7%) for-loop ...ace-bugs/src/core/extraction.rkt:37:16 for-loop [105] 50.5% andmap [107] 17.6% ----------------------------------------------------------------------------------------- for-loop [84] 100.0% [94] 1190(1.3%) 0(0.0%) set-precompute! ...bugs/src/core/simplify.rkt:88:0 for-loop [104] 100.0% ----------------------------------------------------------------------------------------- *rules* [83] 100.0% [95] 1180(1.3%) 882(1.0%) for-loop ...fix-interface-bugs/src/common.rkt:74:9 ormap [110] 25.3% ----------------------------------------------------------------------------------------- coerce-contract [85] 100.0% [96] 1020(1.1%) 380(0.4%) coerce-contract/f ...ntract/private/guts.rkt:373:0 coerce-simple-value [106] 62.7% ----------------------------------------------------------------------------------------- ??? [78] 100.0% [97] 668(0.8%) 378(0.4%) ival-mult ...erface-bugs/src/biginterval.rkt:112:0 bfsub [103] 43.4% ----------------------------------------------------------------------------------------- simplify [80] 100.0% [98] 336(0.4%) 0(0.0%) debug-print ...-interface-bugs/src/debug.rkt:110:0 for-loop [108] 100.0% ----------------------------------------------------------------------------------------- for-loop [123] 26.4% for-loop [87] 73.6% [99] 32248(36.3%) 5672(6.4%) match-e ...interface-bugs/src/core/ematch.rkt:39:0 for-loop [111] 76.3% constant? [167] 8.4% ??? [125] 1.3% make-sequence [182] 1.0% variable? [114] 1.0% ----------------------------------------------------------------------------------------- for-loop [117] 0.7% merge-egraph-nodes! [100] 3.6% for-loop [88] 95.7% [100] 15690(17.7%) 0(0.0%) merge-egraph-nodes! ...s/src/core/egraph.rkt:145:0 update-leader! [112] 44.8% loop! [140] 44.7% enode-merge! [118] 4.1% merge-egraph-nodes! [100] 3.6% for-loop [117] 2.8% ----------------------------------------------------------------------------------------- parse-loop79 [115] 11.4% for-loop [33] 23.7% f66 [92] 64.9% [101] 2534(2.9%) 0(0.0%) map ...t-7.2/collects/racket/private/map.rkt:35:13 f66 [92] 31.9% parse-loop79 [115] 26.5% ??? [146] 23.7% hash-ref! [60] 11.4% simplify* [119] 6.4% ----------------------------------------------------------------------------------------- fix-up-variables [13] 14.8% pattern-substitute [102] 39.5% for-loop [88] 45.7% [102] 1850(2.1%) 0(0.0%) pattern-substitute ...gs/src/core/matcher.rkt:46:0 pattern-substitute [102] 39.5% variable? [114] 19.2% do-curry [128] 16.2% return/no-unsupplied [131] 16.1% constant? [167] 9.0% ----------------------------------------------------------------------------------------- ival-mult [97] 18.8% ival-div [73] 24.3% ival-sub [71] 56.9% [103] 1542(1.7%) 290(0.3%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [113] 81.2% ----------------------------------------------------------------------------------------- set-precompute! [94] 100.0% [104] 1190(1.3%) 0(0.0%) for-loop ...erface-bugs/src/core/simplify.rkt:90:2 setfindf [116] 74.8% compose [120] 25.2% ----------------------------------------------------------------------------------------- for-loop [93] 100.0% [105] 968(1.1%) 968(1.1%) for-loop ...ace-bugs/src/core/extraction.rkt:41:23 ----------------------------------------------------------------------------------------- coerce-contract/f [96] 100.0% [106] 640(0.7%) 640(0.7%) coerce-simple-value ...ract/private/guts.rkt:386:0 ----------------------------------------------------------------------------------------- for-loop [93] 100.0% [107] 338(0.4%) 338(0.4%) andmap ...2/collects/racket/private/map.rkt:102:13 ----------------------------------------------------------------------------------------- debug-print [98] 100.0% [108] 336(0.4%) 336(0.4%) for-loop ...fix-interface-bugs/src/debug.rkt:116:2 ----------------------------------------------------------------------------------------- f66 [92] 100.0% [109] 300(0.3%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [121] 100.0% ----------------------------------------------------------------------------------------- for-loop [95] 100.0% [110] 298(0.3%) 0(0.0%) ormap ....2/collects/racket/private/map.rkt:141:13 flag-set? [122] 100.0% ----------------------------------------------------------------------------------------- match-e [99] 100.0% [111] 27862(31.4%) 11900(13.4%) for-loop ...terface-bugs/src/core/ematch.rkt:52:11 for-loop [123] 46.8% procedure-reduce-keyword-arity-mask [129] 6.1% do-curry [128] 5.1% cartesian-product [133] 2.6% loop [126] 2.2% foldl [134] 1.3% foldr [135] 1.2% ----------------------------------------------------------------------------------------- for-loop [81] 26.8% merge-egraph-nodes! [100] 73.2% [112] 10244(11.5%) 300(0.3%) update-leader! ...e-bugs/src/core/egraph.rkt:213:0 for-loop [124] 93.8% for-loop [137] 3.3% ----------------------------------------------------------------------------------------- bfsub [103] 32.6% bf [90] 67.4% [113] 3838(4.3%) 3838(4.3%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ----------------------------------------------------------------------------------------- pattern-substitute [102] 49.8% match-e [99] 50.2% [114] 1846(2.1%) 626(0.7%) variable? ...face-bugs/src/syntax/syntax.rkt:729:0 ??? [125] 66.1% ----------------------------------------------------------------------------------------- hash-ref! [60] 17.4% simplify [80] 21.7% map [101] 61.0% [115] 1670(1.9%) 0(0.0%) parse-loop79 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [130] 82.6% map [101] 11.6% for-loop [139] 5.8% ----------------------------------------------------------------------------------------- for-loop [104] 100.0% [116] 890(1.0%) 0(0.0%) setfindf ...ix-interface-bugs/src/common.rkt:142:0 for-loop [132] 100.0% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [100] 100.0% [117] 650(0.7%) 0(0.0%) for-loop ...terface-bugs/src/core/egraph.rkt:199:4 dedup-children! [127] 50.8% merge-egraph-nodes! [100] 49.2% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [100] 100.0% [118] 642(0.7%) 0(0.0%) enode-merge! ...face-bugs/src/core/enode.rkt:131:0 adopt-enode! [136] 100.0% ----------------------------------------------------------------------------------------- map [101] 100.0% [119] 326(0.4%) 0(0.0%) simplify* ...terface-bugs/src/core/reduce.rkt:31:0 hash-ref! [60] 100.0% ----------------------------------------------------------------------------------------- for-loop [104] 100.0% [120] 300(0.3%) 300(0.3%) compose ...collects/racket/private/list.rkt:385:12 ----------------------------------------------------------------------------------------- composed [109] 100.0% [121] 300(0.3%) 0(0.0%) free-variables ...rface-bugs/src/programs.rkt:57:0 append-map [138] 100.0% ----------------------------------------------------------------------------------------- ormap [110] 100.0% [122] 298(0.3%) 0(0.0%) flag-set? ...ix-interface-bugs/src/config.rkt:28:0 return/no-unsupplied [131] 100.0% ----------------------------------------------------------------------------------------- for-loop [111] 100.0% [123] 16636(18.7%) 894(1.0%) for-loop ...terface-bugs/src/core/ematch.rkt:58:37 match-e [99] 92.5% ??? [147] 3.9% ----------------------------------------------------------------------------------------- update-leader! [112] 100.0% [124] 9606(10.8%) 324(0.4%) for-loop ...terface-bugs/src/core/egraph.rkt:218:6 for-loop [141] 51.4% hash-update! [154] 45.2% ----------------------------------------------------------------------------------------- choose-best-alt! [50] 4.4% variable? [114] 16.1% match-e [99] 16.8% finalize-iter! [46] 62.7% [125] 7578(8.5%) 2494(2.8%) ??? ...contract/private/arrow-val-first.rkt:390:18 for-loop [142] 62.7% ??? [150] 4.4% ----------------------------------------------------------------------------------------- for-loop [111] 2.1% for-loop [33] 5.4% loop! [140] 9.7% mk-enode-rec! [143] 16.5% loop [126] 66.3% [126] 5662(6.4%) 300(0.3%) loop ...-7.2/collects/racket/private/map.rkt:40:19 loop [126] 66.3% mk-enode-rec! [143] 16.5% loop! [140] 9.7% ??? [146] 5.4% ----------------------------------------------------------------------------------------- for-loop [117] 7.0% for-loop [88] 93.0% [127] 4718(5.3%) 0(0.0%) dedup-children! ...e-bugs/src/core/enode.rkt:202:0 loop [144] 54.0% loop [145] 46.0% ----------------------------------------------------------------------------------------- pattern-substitute [102] 13.8% for-loop [111] 86.2% [128] 2172(2.4%) 2172(2.4%) do-curry ...-7.2/collects/racket/function.rkt:71:2 ----------------------------------------------------------------------------------------- for-loop [111] 100.0% [129] 2156(2.4%) 2156(2.4%) procedure-reduce-keyword-arity-mask ....rkt:1562:4 ----------------------------------------------------------------------------------------- f66 [92] 30.6% parse-loop79 [115] 69.4% [130] 1988(2.2%) 0(0.0%) eval-const-expr ...ace-bugs/src/programs.rkt:118:0 eval-prog [179] 100.0% ----------------------------------------------------------------------------------------- flag-set? [122] 23.6% pattern-substitute [102] 23.6% *bit-width* [27] 26.4% ??? [64] 26.4% [131] 1264(1.4%) 632(0.7%) return/no-unsupplied ...ct/private/arr-i.rkt:542:0 filter [148] 50.0% ----------------------------------------------------------------------------------------- setfindf [116] 100.0% [132] 890(1.0%) 582(0.7%) for-loop ...ix-interface-bugs/src/common.rkt:143:2 constant? [167] 34.6% ----------------------------------------------------------------------------------------- for-loop [111] 100.0% [133] 880(1.0%) 880(1.0%) cartesian-product ...ollects/racket/list.rkt:822:0 ----------------------------------------------------------------------------------------- for-loop [16] 48.1% for-loop [111] 51.9% [134] 694(0.8%) 0(0.0%) foldl ....2/collects/racket/private/list.rkt:229:4 merge2 [149] 51.9% ??? [151] 48.1% ----------------------------------------------------------------------------------------- for-loop [111] 100.0% [135] 648(0.7%) 314(0.4%) foldr ....2/collects/racket/private/list.rkt:242:4 cp-2 [152] 51.5% ----------------------------------------------------------------------------------------- enode-merge! [118] 100.0% [136] 642(0.7%) 0(0.0%) adopt-enode! ...face-bugs/src/core/enode.rkt:109:0 custom-set-union [155] 100.0% ----------------------------------------------------------------------------------------- update-leader! [112] 100.0% [137] 338(0.4%) 338(0.4%) for-loop ...terface-bugs/src/core/egraph.rkt:228:6 ----------------------------------------------------------------------------------------- free-variables [121] 100.0% [138] 300(0.3%) 300(0.3%) append-map ...t-7.2/collects/racket/list.rkt:586:2 ----------------------------------------------------------------------------------------- parse-loop79 [115] 100.0% [139] 290(0.3%) 0(0.0%) for-loop ...rface-bugs/src/core/localize.rkt:51:21 for-loop [153] 100.0% ----------------------------------------------------------------------------------------- loop [126] 26.3% merge-egraph-nodes! [100] 73.7% [140] 7224(8.1%) 960(1.1%) loop! ...x-interface-bugs/src/core/enode.rkt:194:2 custom-set-union [155] 53.8% loop [126] 26.3% set [157] 13.3% ----------------------------------------------------------------------------------------- for-loop [124] 100.0% [141] 4940(5.6%) 0(0.0%) for-loop ...terface-bugs/src/core/egraph.rkt:219:8 hash-update! [154] 100.0% ----------------------------------------------------------------------------------------- ??? [125] 100.0% [142] 4748(5.3%) 0(0.0%) for-loop ...rface-bugs/src/core/alt-table.rkt:55:2 atab-add-altn [156] 52.6% errors [176] 33.6% override-at-pnts [162] 7.3% loop [165] 6.5% ----------------------------------------------------------------------------------------- loop [126] 16.7% for-loop [88] 83.3% [143] 2792(3.1%) 1224(1.4%) mk-enode-rec! ...ce-bugs/src/core/egraph.rkt:117:0 for-loop [159] 28.4% loop [126] 16.7% hash-has-key? [161] 16.5% ----------------------------------------------------------------------------------------- dedup-children! [127] 12.0% loop [144] 88.0% [144] 2550(2.9%) 2550(2.9%) loop ...racket-7.2/collects/racket/list.rkt:434:17 loop [144] 88.0% ----------------------------------------------------------------------------------------- dedup-children! [127] 12.9% loop [145] 87.1% [145] 2168(2.4%) 0(0.0%) loop ...racket-7.2/collects/racket/list.rkt:417:34 loop [145] 87.1% loop [200] 7.2% member [158] 5.7% ----------------------------------------------------------------------------------------- loop [126] 33.9% map [101] 66.1% [146] 908(1.0%) 608(0.7%) ??? ...ie/fix-interface-bugs/src/points.rkt:201:26 ??? [45] 33.0% ----------------------------------------------------------------------------------------- for-loop [123] 100.0% [147] 656(0.7%) 0(0.0%) ??? ...fix-interface-bugs/src/core/ematch.rkt:43:5 for-loop [160] 100.0% ----------------------------------------------------------------------------------------- return/no-unsupplied [131] 100.0% [148] 632(0.7%) 632(0.7%) filter ...2/collects/racket/private/list.rkt:256:2 ----------------------------------------------------------------------------------------- foldl [134] 100.0% [149] 360(0.4%) 360(0.4%) merge2 ...-interface-bugs/src/core/ematch.rkt:24:0 ----------------------------------------------------------------------------------------- ??? [125] 100.0% [150] 336(0.4%) 0(0.0%) ??? ...-interface-bugs/src/core/alt-table.rkt:58:0 argmin [163] 100.0% ----------------------------------------------------------------------------------------- foldl [134] 100.0% [151] 334(0.4%) 334(0.4%) ??? ...ix-interface-bugs/src/core/matcher.rkt:26:7 ----------------------------------------------------------------------------------------- foldr [135] 100.0% [152] 334(0.4%) 0(0.0%) cp-2 .../racket-7.2/collects/racket/list.rkt:826:2 for-loop [164] 100.0% ----------------------------------------------------------------------------------------- for-loop [139] 100.0% [153] 290(0.3%) 290(0.3%) for-loop ...rface-bugs/src/core/localize.rkt:52:23 ----------------------------------------------------------------------------------------- for-loop [124] 46.8% for-loop [141] 53.2% [154] 9282(10.5%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [166] 100.0% ----------------------------------------------------------------------------------------- adopt-enode! [136] 12.9% loop! [140] 87.1% [155] 4990(5.6%) 1846(2.1%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [168] 50.3% for-loop [169] 12.7% ----------------------------------------------------------------------------------------- for-loop [142] 100.0% [156] 2496(2.8%) 0(0.0%) atab-add-altn ...bugs/src/core/alt-table.rkt:203:0 errors [176] 74.7% append-at-pnts [172] 13.4% for-loop [173] 11.9% ----------------------------------------------------------------------------------------- loop! [140] 100.0% [157] 1916(2.2%) 1916(2.2%) set ...collects/racket/private/set-types.rkt:981:0 ----------------------------------------------------------------------------------------- loop [145] 100.0% [158] 956(1.1%) 956(1.1%) member (unknown source) ----------------------------------------------------------------------------------------- mk-enode-rec! [143] 100.0% [159] 944(1.1%) 944(1.1%) for-loop ...erface-bugs/src/core/egraph.rkt:109:10 ----------------------------------------------------------------------------------------- ??? [147] 100.0% [160] 656(0.7%) 300(0.3%) for-loop ...nterface-bugs/src/core/ematch.rkt:44:7 constant? [167] 54.3% ----------------------------------------------------------------------------------------- mk-enode-rec! [143] 100.0% [161] 624(0.7%) 624(0.7%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ----------------------------------------------------------------------------------------- for-loop [142] 100.0% [162] 348(0.4%) 0(0.0%) override-at-pnts ...s/src/core/alt-table.rkt:138:0 for-loop [170] 100.0% ----------------------------------------------------------------------------------------- ??? [150] 100.0% [163] 336(0.4%) 0(0.0%) argmin ...acket-7.2/collects/racket/list.rkt:765:0 ??? [171] 100.0% ----------------------------------------------------------------------------------------- cp-2 [152] 100.0% [164] 334(0.4%) 334(0.4%) for-loop ...ket-7.2/collects/racket/list.rkt:827:4 ----------------------------------------------------------------------------------------- for-loop [142] 100.0% [165] 308(0.3%) 308(0.3%) loop ...nterface-bugs/src/core/alt-table.rkt:177:2 ----------------------------------------------------------------------------------------- hash-update! [154] 100.0% [166] 9282(10.5%) 0(0.0%) ??? ...x-interface-bugs/src/core/egraph.rkt:221:24 for-loop [174] 100.0% ----------------------------------------------------------------------------------------- for-loop [132] 6.1% matcher [89] 6.4% pattern-substitute [102] 6.5% for-loop [160] 7.0% match-e [99] 73.9% [167] 5074(5.7%) 302(0.3%) constant? ...face-bugs/src/syntax/syntax.rkt:726:0 value? [175] 94.0% ----------------------------------------------------------------------------------------- custom-set-union [155] 100.0% [168] 2510(2.8%) 596(0.7%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [177] 76.3% ----------------------------------------------------------------------------------------- custom-set-union [155] 100.0% [169] 634(0.7%) 634(0.7%) for-loop ...cts/racket/private/set-types.rkt:152:2 ----------------------------------------------------------------------------------------- override-at-pnts [162] 100.0% [170] 348(0.4%) 348(0.4%) for-loop ...ace-bugs/src/core/alt-table.rkt:139:22 ----------------------------------------------------------------------------------------- argmin [163] 100.0% [171] 336(0.4%) 0(0.0%) ??? .../fix-interface-bugs/src/mainloop.rkt:113:10 errors [176] 100.0% ----------------------------------------------------------------------------------------- atab-add-altn [156] 100.0% [172] 334(0.4%) 0(0.0%) append-at-pnts ...ugs/src/core/alt-table.rkt:146:0 loop [178] 100.0% ----------------------------------------------------------------------------------------- atab-add-altn [156] 100.0% [173] 298(0.3%) 298(0.3%) for-loop ...face-bugs/src/core/alt-table.rkt:119:2 ----------------------------------------------------------------------------------------- ??? [166] 100.0% [174] 9282(10.5%) 8338(9.4%) for-loop ...erface-bugs/src/core/egraph.rkt:222:26 update-en-expr [181] 10.2% ----------------------------------------------------------------------------------------- constant? [167] 100.0% [175] 4772(5.4%) 4772(5.4%) value? ...interface-bugs/src/syntax/types.rkt:18:0 ----------------------------------------------------------------------------------------- for-loop [35] 7.0% ??? [171] 7.1% ??? [19] 12.9% for-loop [142] 33.7% atab-add-altn [156] 39.3% [176] 4742(5.3%) 0(0.0%) errors .../fix-interface-bugs/src/points.rkt:216:0 for-loop [180] 65.8% eval-prog [179] 27.3% make-sequence [182] 6.9% ----------------------------------------------------------------------------------------- for-loop [168] 100.0% [177] 1914(2.2%) 1914(2.2%) for-loop ...cts/racket/private/set-types.rkt:178:5 ----------------------------------------------------------------------------------------- append-at-pnts [172] 100.0% [178] 334(0.4%) 334(0.4%) loop ...nterface-bugs/src/core/alt-table.rkt:101:2 ----------------------------------------------------------------------------------------- errors [176] 39.4% eval-const-expr [130] 60.6% [179] 3282(3.7%) 0(0.0%) eval-prog ...-interface-bugs/src/programs.rkt:83:0 temp85_0 [183] 90.6% loop [200] 9.4% ----------------------------------------------------------------------------------------- errors [176] 100.0% [180] 3120(3.5%) 312(0.4%) for-loop ...ix-interface-bugs/src/points.rkt:218:2 ??? [19] 90.0% ----------------------------------------------------------------------------------------- for-loop [174] 100.0% [181] 944(1.1%) 944(1.1%) update-en-expr ...e-bugs/src/core/egraph.rkt:207:0 ----------------------------------------------------------------------------------------- errors [176] 49.7% match-e [99] 50.3% [182] 660(0.7%) 332(0.4%) make-sequence ...ects/racket/private/for.rkt:530:2 ??? [184] 49.7% ----------------------------------------------------------------------------------------- eval-prog [179] 100.0% [183] 2974(3.3%) 0(0.0%) temp85_0 (unknown source) compile15 [185] 100.0% ----------------------------------------------------------------------------------------- make-sequence [182] 100.0% [184] 328(0.4%) 328(0.4%) ??? ...-7.2/collects/racket/private/for.rkt:1228:9 ----------------------------------------------------------------------------------------- temp85_0 [183] 100.0% [185] 2974(3.3%) 0(0.0%) compile15 (unknown source) temp91_0 [186] 100.0% ----------------------------------------------------------------------------------------- compile15 [185] 100.0% [186] 2974(3.3%) 0(0.0%) temp91_0 (unknown source) temp118_0 [187] 100.0% ----------------------------------------------------------------------------------------- temp91_0 [186] 100.0% [187] 2974(3.3%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [188] 100.0% ----------------------------------------------------------------------------------------- loop [200] 9.4% temp118_0 [187] 90.6% [188] 3282(3.7%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [189] 72.3% dispatch-transformer41 [190] 18.3% loop [200] 9.4% ----------------------------------------------------------------------------------------- expand-capturing-lifts [188] 100.0% [189] 2374(2.7%) 0(0.0%) lambda-clause-expander (unknown source) loop [200] 58.5% finish-bodys [192] 41.5% ----------------------------------------------------------------------------------------- expand-capturing-lifts [188] 30.2% loop [200] 69.8% [190] 1988(2.2%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [191] 100.0% ----------------------------------------------------------------------------------------- dispatch-transformer41 [190] 100.0% [191] 1988(2.2%) 0(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [193] 69.8% loop [200] 30.2% ----------------------------------------------------------------------------------------- lambda-clause-expander [189] 36.1% for-loop [194] 63.9% [192] 986(1.1%) 0(0.0%) finish-bodys (unknown source) for-loop [194] 100.0% ----------------------------------------------------------------------------------------- apply-transformer52 [191] 100.0% [193] 1388(1.6%) 362(0.4%) apply-transformer-in-context (unknown source) ??? [195] 50.7% go [196] 23.2% ----------------------------------------------------------------------------------------- for-loop [194] 2.2% fallback-loop [205] 23.3% finish-bodys [192] 74.5% [194] 1286(1.4%) 636(0.7%) for-loop (unknown source) finish-bodys [192] 47.0% loop [200] 25.3% for-loop [194] 2.2% ----------------------------------------------------------------------------------------- apply-transformer-in-context [193] 100.0% [195] 704(0.8%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [197] 100.0% ----------------------------------------------------------------------------------------- apply-transformer-in-context [193] 100.0% [196] 322(0.4%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [198] 100.0% ----------------------------------------------------------------------------------------- ??? [195] 100.0% [197] 704(0.8%) 336(0.4%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [199] 52.3% ----------------------------------------------------------------------------------------- go [196] 12.5% loop [198] 87.5% [198] 322(0.4%) 0(0.0%) loop ...llects/racket/private/qq-and-or.rkt:101:61 loop [198] 87.5% stx-pair? [8] 12.5% ----------------------------------------------------------------------------------------- ??? [197] 100.0% [199] 368(0.4%) 0(0.0%) syntax->list (unknown source) loop [200] 100.0% ----------------------------------------------------------------------------------------- loop [200] 2.4% syntax->list [199] 3.0% expand-capturing-lifts [188] 3.7% eval-prog [179] 3.7% apply-transformer52 [191] 9.6% for-loop [194] 11.7% syntax-e/no-taint [20] 13.1% lambda-clause-expander [189] 23.6% loop [145] 29.1% [200] 4158(4.7%) 2166(2.4%) loop (unknown source) dispatch-transformer41 [190] 23.6% gf [201] 9.3% core-form-sym [202] 7.2% syntax-e [14] 5.4% expand-id-application-form17 [7] 3.9% expand-capturing-lifts [188] 3.7% loop [200] 2.4% ----------------------------------------------------------------------------------------- loop [200] 100.0% [201] 994(1.1%) 300(0.3%) gf (unknown source) propagation-apply [203] 69.8% ----------------------------------------------------------------------------------------- loop [200] 100.0% [202] 300(0.3%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [204] 100.0% ----------------------------------------------------------------------------------------- gf [201] 100.0% [203] 694(0.8%) 694(0.8%) propagation-apply (unknown source) ----------------------------------------------------------------------------------------- core-form-sym [202] 100.0% [204] 300(0.3%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [205] 100.0% ----------------------------------------------------------------------------------------- resolve+shift28 [204] 100.0% [205] 300(0.3%) 0(0.0%) fallback-loop (unknown source) for-loop [194] 100.0% -----------------------------------------------------------------------------------------