Profiling results ----------------- Total cpu time observed: 74180ms (out of 74680ms) Number of samples taken: 230 (once every 323ms) (Hiding functions with self<1.0% and local<2.0%: 3 of 205 hidden) ========================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================= ??? [76] 100.0% [1] 74180(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [9] 100.0% ----------------------------------------------------------------------------------------- ??? [76] 100.0% [2] 65722(88.6%) 0(0.0%) run-improve47 .../js-tweaks/src/mainloop.rkt:342:0 for-loop [10] 100.0% ----------------------------------------------------------------------------------------- matcher [62] 100.0% [3] 6780(9.1%) 0(0.0%) ??? ...erbie/js-tweaks/src/core/matcher.rkt:130:11 for-loop [11] 98.9% foldl [131] 1.1% ----------------------------------------------------------------------------------------- ??? [150] 100.0% [4] 5340(7.2%) 298(0.4%) approximate9 ...js-tweaks/src/core/taylor.rkt:12:0 loop [12] 59.3% for-loop [16] 17.5% simplify [32] 11.9% taylor-quotient [25] 5.8% ----------------------------------------------------------------------------------------- hash-ref! [162] 100.0% [5] 2560(3.5%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/taylor.rkt:301:23 for-loop [13] 100.0% ----------------------------------------------------------------------------------------- for-loop [139] 100.0% [6] 892(1.2%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [14] 100.0% ----------------------------------------------------------------------------------------- for-loop [139] 100.0% [7] 670(0.9%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [14] 100.0% ----------------------------------------------------------------------------------------- loop [173] 100.0% [8] 330(0.4%) 0(0.0%) stx-cdr ....0/collects/racket/private/stx.rkt:74:4 syntax-e [15] 100.0% ----------------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [9] 74180(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [76] 100.0% ----------------------------------------------------------------------------------------- run-improve47 [2] 100.0% [10] 65722(88.6%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:359:4 run-iter! [17] 100.0% ----------------------------------------------------------------------------------------- ??? [3] 100.0% [11] 6780(9.1%) 0(0.0%) for-loop .../js-tweaks/src/core/matcher.rkt:132:15 matcher [62] 100.0% ----------------------------------------------------------------------------------------- approximate9 [4] 100.0% [12] 3166(4.3%) 0(0.0%) loop .../herbie/js-tweaks/src/core/taylor.rkt:87:4 ??? [150] 100.0% ----------------------------------------------------------------------------------------- ??? [5] 100.0% [13] 2560(3.5%) 0(0.0%) for-loop ...e/js-tweaks/src/core/taylor.rkt:304:27 hash-ref! [162] 100.0% ----------------------------------------------------------------------------------------- core-form-sym [159] 16.6% expand-identifier [7] 35.8% expand-implicit [6] 47.6% [14] 1872(2.5%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [18] 100.0% ----------------------------------------------------------------------------------------- stx-cdr [8] 20.9% for-loop [139] 79.1% [15] 1578(2.1%) 330(0.4%) syntax-e (unknown source) syntax-e/no-taint [19] 79.1% ----------------------------------------------------------------------------------------- approximate9 [4] 100.0% [16] 934(1.3%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/taylor.rkt:30:18 taylor [20] 66.8% taylor-quotient [25] 33.2% ----------------------------------------------------------------------------------------- for-loop [10] 100.0% [17] 65722(88.6%) 0(0.0%) run-iter! ...rbie/js-tweaks/src/mainloop.rkt:323:0 simplify! [21] 73.5% gen-rewrites! [22] 10.3% gen-series! [23] 8.1% finalize-iter! [24] 7.1% choose-best-alt! [26] 1.0% ----------------------------------------------------------------------------------------- resolve+shift28 [14] 100.0% [18] 1872(2.5%) 362(0.5%) fallback-loop (unknown source) for-loop [139] 80.7% ----------------------------------------------------------------------------------------- syntax-e [15] 100.0% [19] 1248(1.7%) 0(0.0%) syntax-e/no-taint (unknown source) loop [141] 100.0% ----------------------------------------------------------------------------------------- taylor [20] 31.6% for-loop [16] 68.4% [20] 624(0.8%) 0(0.0%) taylor ...rbie/js-tweaks/src/core/taylor.rkt:170:0 taylor-quotient [25] 52.6% taylor [20] 31.6% debug5 [27] 15.8% ----------------------------------------------------------------------------------------- run-iter! [17] 100.0% [21] 48298(65.1%) 0(0.0%) simplify! ...rbie/js-tweaks/src/mainloop.rkt:220:0 ??? [28] 100.0% ----------------------------------------------------------------------------------------- run-iter! [17] 100.0% [22] 6780(9.1%) 0(0.0%) gen-rewrites! .../js-tweaks/src/mainloop.rkt:179:0 for-loop [30] 100.0% ----------------------------------------------------------------------------------------- run-iter! [17] 100.0% [23] 5340(7.2%) 0(0.0%) gen-series! ...ie/js-tweaks/src/mainloop.rkt:156:0 for-loop [31] 100.0% ----------------------------------------------------------------------------------------- run-iter! [17] 100.0% [24] 4650(6.3%) 0(0.0%) finalize-iter! ...js-tweaks/src/mainloop.rkt:274:0 ??? [29] 100.0% ----------------------------------------------------------------------------------------- approximate9 [4] 32.6% for-loop [16] 32.8% taylor [20] 34.7% [25] 946(1.3%) 0(0.0%) taylor-quotient ...weaks/src/core/taylor.rkt:334:0 first-nonzero-exp [33] 67.2% simplify [32] 32.8% ----------------------------------------------------------------------------------------- run-iter! [17] 100.0% [26] 654(0.9%) 0(0.0%) choose-best-alt! ...-tweaks/src/mainloop.rkt:114:0 ??? [29] 100.0% ----------------------------------------------------------------------------------------- taylor [20] 100.0% [27] 296(0.4%) 0(0.0%) debug5 ...ies/herbie/js-tweaks/src/debug.rkt:102:0 assoc-ref [34] 100.0% ----------------------------------------------------------------------------------------- simplify! [21] 100.0% [28] 48298(65.1%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/simplify.rkt:26:0 one-iter [43] 66.1% for-loop [35] 29.2% loop [40] 4.8% ----------------------------------------------------------------------------------------- choose-best-alt! [26] 7.4% match-e [70] 18.6% variable? [80] 21.4% finalize-iter! [24] 52.6% [29] 8848(11.9%) 3544(4.8%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [38] 52.6% ??? [41] 7.4% ----------------------------------------------------------------------------------------- gen-rewrites! [22] 100.0% [30] 6780(9.1%) 0(0.0%) for-loop ...rbie/js-tweaks/src/mainloop.rkt:187:11 rewrite-expression-head20 [36] 100.0% ----------------------------------------------------------------------------------------- gen-series! [23] 100.0% [31] 5340(7.2%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:163:7 taylor-alt [37] 100.0% ----------------------------------------------------------------------------------------- taylor-quotient [25] 6.5% approximate9 [4] 13.4% hash-ref! [162] 80.1% [32] 4746(6.4%) 336(0.5%) simplify ...bie/js-tweaks/src/core/reduce.rkt:16:0 parse-loop80 [39] 79.6% debug-print [42] 7.0% f67 [135] 6.4% ----------------------------------------------------------------------------------------- taylor-quotient [25] 100.0% [33] 636(0.9%) 0(0.0%) first-nonzero-exp ...aks/src/core/taylor.rkt:266:0 hash-ref! [162] 100.0% ----------------------------------------------------------------------------------------- debug5 [27] 100.0% [34] 296(0.4%) 296(0.4%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ----------------------------------------------------------------------------------------- ??? [28] 100.0% [35] 14088(19.0%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:33:2 one-iter [43] 100.0% ----------------------------------------------------------------------------------------- for-loop [30] 100.0% [36] 6780(9.1%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [44] 100.0% ----------------------------------------------------------------------------------------- for-loop [31] 100.0% [37] 5340(7.2%) 0(0.0%) taylor-alt ...bie/js-tweaks/src/mainloop.rkt:142:0 for-loop [45] 100.0% ----------------------------------------------------------------------------------------- ??? [29] 100.0% [38] 4650(6.3%) 0(0.0%) for-loop .../js-tweaks/src/core/alt-table.rkt:56:2 atab-add-altn [47] 50.6% errors [53] 49.4% ----------------------------------------------------------------------------------------- simplify [32] 100.0% [39] 3776(5.1%) 0(0.0%) parse-loop80 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [46] 83.2% ??? [127] 8.8% f67 [135] 8.0% ----------------------------------------------------------------------------------------- ??? [28] 100.0% [40] 2300(3.1%) 0(0.0%) loop ...rbie/js-tweaks/src/core/simplify.rkt:104:2 for-loop [48] 100.0% ----------------------------------------------------------------------------------------- ??? [29] 100.0% [41] 654(0.9%) 0(0.0%) ??? ...erbie/js-tweaks/src/core/alt-table.rkt:59:0 ??? [150] 100.0% ----------------------------------------------------------------------------------------- simplify [32] 100.0% [42] 332(0.4%) 0(0.0%) debug-print ...erbie/js-tweaks/src/debug.rkt:110:0 for-loop [49] 100.0% ----------------------------------------------------------------------------------------- for-loop [35] 30.6% ??? [28] 69.4% [43] 45998(62.0%) 0(0.0%) one-iter ...e/js-tweaks/src/core/simplify.rkt:65:0 find-matches [50] 56.0% for-loop [51] 27.4% for-loop [55] 8.9% for-loop [57] 7.7% ----------------------------------------------------------------------------------------- rewrite-expression-head20 [36] 22.8% matcher [62] 77.2% [44] 6780(9.1%) 368(0.5%) rewriter ...ie/js-tweaks/src/core/matcher.rkt:90:2 for-loop [52] 88.2% *rules* [56] 10.4% ----------------------------------------------------------------------------------------- taylor-alt [37] 100.0% [45] 5340(7.2%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:148:6 ??? [150] 100.0% ----------------------------------------------------------------------------------------- f67 [135] 13.8% ??? [76] 14.7% parse-loop80 [39] 71.6% [46] 4388(5.9%) 0(0.0%) eval-const-expr ...s-tweaks/src/programs.rkt:111:0 eval-prog [54] 100.0% ----------------------------------------------------------------------------------------- for-loop [38] 100.0% [47] 2354(3.2%) 356(0.5%) atab-add-altn ...eaks/src/core/alt-table.rkt:203:0 errors [53] 84.9% ----------------------------------------------------------------------------------------- loop [40] 100.0% [48] 2300(3.1%) 308(0.4%) for-loop .../js-tweaks/src/core/simplify.rkt:110:4 for-loop [58] 72.1% make-sequence [59] 14.5% ----------------------------------------------------------------------------------------- debug-print [42] 100.0% [49] 332(0.4%) 332(0.4%) for-loop ...s/herbie/js-tweaks/src/debug.rkt:116:2 ----------------------------------------------------------------------------------------- one-iter [43] 100.0% [50] 25736(34.7%) 0(0.0%) find-matches ...-tweaks/src/core/simplify.rkt:55:0 for-loop [60] 100.0% ----------------------------------------------------------------------------------------- one-iter [43] 100.0% [51] 12626(17.0%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:67:2 for-loop [61] 100.0% ----------------------------------------------------------------------------------------- rewriter [44] 100.0% [52] 6780(9.1%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:92:4 matcher [62] 94.0% for-loop [67] 6.0% ----------------------------------------------------------------------------------------- for-loop [148] 5.0% ??? [76] 10.3% ??? [181] 11.2% atab-add-altn [47] 34.2% for-loop [38] 39.3% [53] 5844(7.9%) 0(0.0%) errors ...es/herbie/js-tweaks/src/points.rkt:205:0 for-loop [64] 83.7% eval-prog [54] 16.3% ----------------------------------------------------------------------------------------- loop [115] 5.4% errors [53] 16.8% eval-const-expr [46] 77.8% [54] 5640(7.6%) 0(0.0%) eval-prog ...erbie/js-tweaks/src/programs.rkt:83:0 temp68_2 [63] 94.5% loop [141] 5.5% ----------------------------------------------------------------------------------------- one-iter [43] 100.0% [55] 4094(5.5%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:75:2 update-leader! [87] 100.0% ----------------------------------------------------------------------------------------- rewriter [44] 100.0% [56] 3728(5.0%) 334(0.5%) *rules* ...ie/js-tweaks/src/syntax/rules.rkt:666:0 for-loop [66] 91.0% ----------------------------------------------------------------------------------------- one-iter [43] 100.0% [57] 3542(4.8%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:72:2 set-precompute! [65] 100.0% ----------------------------------------------------------------------------------------- for-loop [48] 100.0% [58] 1658(2.2%) 0(0.0%) for-loop ...js-tweaks/src/core/simplify.rkt:114:16 for-loop [68] 80.2% andmap [69] 19.8% ----------------------------------------------------------------------------------------- for-loop [48] 100.0% [59] 334(0.5%) 334(0.5%) make-sequence ...ects/racket/private/for.rkt:528:2 ----------------------------------------------------------------------------------------- for-loop [60] 49.4% find-matches [50] 50.6% [60] 25736(34.7%) 2248(3.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:57:8 for-loop [60] 49.4% match-e [70] 45.0% ??? [107] 0.6% ----------------------------------------------------------------------------------------- for-loop [51] 100.0% [61] 12626(17.0%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:70:4 merge-egraph-nodes! [78] 66.4% substitute-e [74] 15.0% dedup-children! [92] 10.4% mk-enode! [93] 8.2% ----------------------------------------------------------------------------------------- for-loop [11] 48.5% for-loop [52] 51.5% [62] 6780(9.1%) 620(0.8%) matcher ...ie/js-tweaks/src/core/matcher.rkt:118:2 ??? [3] 49.1% rewriter [44] 48.5% constant? [130] 0.4% ----------------------------------------------------------------------------------------- eval-prog [54] 100.0% [63] 5332(7.2%) 0(0.0%) temp68_2 (unknown source) compile16 [71] 100.0% ----------------------------------------------------------------------------------------- errors [53] 100.0% [64] 4894(6.6%) 306(0.4%) for-loop .../herbie/js-tweaks/src/points.rkt:207:2 ??? [76] 93.7% ----------------------------------------------------------------------------------------- for-loop [57] 100.0% [65] 3542(4.8%) 0(0.0%) set-precompute! ...eaks/src/core/simplify.rkt:79:0 for-loop [72] 100.0% ----------------------------------------------------------------------------------------- *rules* [56] 100.0% [66] 3394(4.6%) 336(0.5%) for-loop ...s/herbie/js-tweaks/src/common.rkt:74:9 ormap [73] 80.2% flag-set? [81] 9.9% ----------------------------------------------------------------------------------------- for-loop [52] 100.0% [67] 1380(1.9%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:99:8 fix-up-variables [75] 100.0% ----------------------------------------------------------------------------------------- for-loop [58] 100.0% [68] 1330(1.8%) 1330(1.8%) for-loop ...js-tweaks/src/core/simplify.rkt:118:23 ----------------------------------------------------------------------------------------- for-loop [58] 100.0% [69] 328(0.4%) 328(0.4%) andmap ...0/collects/racket/private/map.rkt:102:13 ----------------------------------------------------------------------------------------- for-loop [86] 36.9% for-loop [60] 63.1% [70] 23186(31.3%) 1856(2.5%) match-e ...rbie/js-tweaks/src/core/ematch.rkt:39:0 for-loop [77] 84.1% variable? [80] 5.4% constant? [130] 2.4% ??? [29] 2.4% ----------------------------------------------------------------------------------------- temp68_2 [63] 100.0% [71] 5332(7.2%) 0(0.0%) compile16 (unknown source) temp74_0 [79] 100.0% ----------------------------------------------------------------------------------------- set-precompute! [65] 100.0% [72] 3542(4.8%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:81:2 merge-egraph-nodes! [78] 72.3% ??? [76] 18.2% setfindf [85] 9.5% ----------------------------------------------------------------------------------------- for-loop [66] 100.0% [73] 2722(3.7%) 1010(1.4%) ormap ....0/collects/racket/private/map.rkt:141:13 flag-set? [81] 62.9% ----------------------------------------------------------------------------------------- for-loop [82] 27.4% for-loop [61] 72.6% [74] 1896(2.6%) 630(0.8%) substitute-e ...js-tweaks/src/core/ematch.rkt:64:0 for-loop [82] 78.4% constant? [130] 7.9% ----------------------------------------------------------------------------------------- for-loop [67] 100.0% [75] 1380(1.9%) 0(0.0%) fix-up-variables ...aks/src/core/matcher.rkt:111:2 for-loop [83] 73.2% pattern-match [84] 26.8% ----------------------------------------------------------------------------------------- for-loop [72] 0.3% for-loop [64] 2.1% run [9] 48.8% [76] 74180(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 48.8% run-improve47 [2] 43.2% oracle-error [89] 2.3% prepare-points [90] 2.1% ??? [127] 1.2% infer-double-representation [197] 0.6% errors [53] 0.3% precision->real [145] 0.3% eval-const-expr [46] 0.3% loop [115] 0.2% eval-errors [191] 0.2% baseline-error [100] 0.2% get-final-combination [101] 0.2% ----------------------------------------------------------------------------------------- match-e [70] 100.0% [77] 22286(30.0%) 7716(10.4%) for-loop ...ie/js-tweaks/src/core/ematch.rkt:52:11 for-loop [86] 56.6% loop [115] 12.3% cartesian-product [94] 3.8% foldl [131] 1.6% curry* [99] 0.7% ----------------------------------------------------------------------------------------- for-loop [91] 7.7% for-loop [72] 10.2% merge-egraph-nodes! [78] 29.3% for-loop [61] 52.7% [78] 10942(14.8%) 300(0.4%) merge-egraph-nodes! ...s/src/core/egraph.rkt:143:0 update-leader! [87] 34.3% merge-egraph-nodes! [78] 29.3% loop! [129] 19.6% for-loop [91] 7.7% dedup-children! [92] 4.9% enode-merge! [96] 3.3% ----------------------------------------------------------------------------------------- compile16 [71] 100.0% [79] 5332(7.2%) 0(0.0%) temp74_0 (unknown source) expand-single [88] 93.9% compile-top9 [98] 6.1% ----------------------------------------------------------------------------------------- match-e [70] 100.0% [80] 3784(5.1%) 600(0.8%) variable? ...js-tweaks/src/syntax/syntax.rkt:722:0 ??? [29] 50.1% value? [140] 34.1% ----------------------------------------------------------------------------------------- for-loop [66] 16.4% ormap [73] 83.6% [81] 2048(2.8%) 1004(1.4%) flag-set? .../herbie/js-tweaks/src/config.rkt:28:0 return/no-unsupplied [201] 34.0% ??? [167] 17.0% ----------------------------------------------------------------------------------------- substitute-e [74] 100.0% [82] 1896(2.6%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/ematch.rkt:73:24 mk-enode! [93] 50.9% substitute-e [74] 49.1% ----------------------------------------------------------------------------------------- fix-up-variables [75] 100.0% [83] 1010(1.4%) 358(0.5%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:42:9 for-loop [95] 64.6% ----------------------------------------------------------------------------------------- fix-up-variables [75] 100.0% [84] 370(0.5%) 0(0.0%) pattern-match ...-tweaks/src/core/matcher.rkt:30:0 for-loop [95] 100.0% ----------------------------------------------------------------------------------------- for-loop [72] 100.0% [85] 336(0.5%) 0(0.0%) setfindf .../herbie/js-tweaks/src/common.rkt:142:0 for-loop [97] 100.0% ----------------------------------------------------------------------------------------- for-loop [77] 100.0% [86] 16346(22.0%) 360(0.5%) for-loop ...ie/js-tweaks/src/core/ematch.rkt:58:37 match-e [70] 92.3% ??? [107] 5.5% ----------------------------------------------------------------------------------------- for-loop [55] 40.4% merge-egraph-nodes! [78] 59.6% [87] 10132(13.7%) 0(0.0%) update-leader! ...tweaks/src/core/egraph.rkt:211:0 for-loop [102] 96.7% hash-ref! [162] 3.3% ----------------------------------------------------------------------------------------- temp74_0 [79] 100.0% [88] 5008(6.8%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [103] 100.0% ----------------------------------------------------------------------------------------- ??? [76] 100.0% [89] 3478(4.7%) 0(0.0%) oracle-error ...bie/js-tweaks/src/points.rkt:188:0 for-loop [104] 100.0% ----------------------------------------------------------------------------------------- ??? [76] 100.0% [90] 3184(4.3%) 0(0.0%) prepare-points ...e/js-tweaks/src/points.rkt:146:0 loop [105] 100.0% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [78] 100.0% [91] 2518(3.4%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/egraph.rkt:197:4 merge-egraph-nodes! [78] 100.0% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [78] 43.6% for-loop [61] 56.4% [92] 2324(3.1%) 0(0.0%) dedup-children! ...tweaks/src/core/enode.rkt:195:0 loop [106] 100.0% ----------------------------------------------------------------------------------------- for-loop [82] 48.2% for-loop [61] 51.8% [93] 2006(2.7%) 680(0.9%) mk-enode! ...ie/js-tweaks/src/core/egraph.rkt:97:0 new-enode [108] 48.2% hash-has-key? [110] 17.9% ----------------------------------------------------------------------------------------- for-loop [77] 100.0% [94] 1324(1.8%) 1324(1.8%) cartesian-product ...ollects/racket/list.rkt:822:0 ----------------------------------------------------------------------------------------- pattern-match [84] 36.2% for-loop [83] 63.8% [95] 1022(1.4%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:27:9 core651 [153] 63.8% fallback-update [109] 36.2% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [78] 100.0% [96] 358(0.5%) 0(0.0%) enode-merge! ...js-tweaks/src/core/enode.rkt:124:0 adopt-enode! [111] 100.0% ----------------------------------------------------------------------------------------- setfindf [85] 100.0% [97] 336(0.5%) 336(0.5%) for-loop .../herbie/js-tweaks/src/common.rkt:143:2 ----------------------------------------------------------------------------------------- temp74_0 [79] 100.0% [98] 324(0.4%) 0(0.0%) compile-top9 (unknown source) compile-forms31 [112] 100.0% ----------------------------------------------------------------------------------------- for-loop [77] 100.0% [99] 300(0.4%) 0(0.0%) curry* ...et-7.0/collects/racket/function.rkt:44:2 procedure-arity [113] 100.0% ----------------------------------------------------------------------------------------- ??? [76] 100.0% [100] 298(0.4%) 0(0.0%) baseline-error ...e/js-tweaks/src/points.rkt:192:0 argmin [168] 100.0% ----------------------------------------------------------------------------------------- ??? [76] 100.0% [101] 292(0.4%) 0(0.0%) get-final-combination ...ks/src/mainloop.rkt:365:0 infer-splitpoints [114] 100.0% ----------------------------------------------------------------------------------------- update-leader! [87] 100.0% [102] 9800(13.2%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/egraph.rkt:216:6 hash-update! [126] 60.3% for-loop [117] 39.7% ----------------------------------------------------------------------------------------- loop [141] 5.8% expand-single [88] 94.2% [103] 5316(7.2%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [116] 76.5% dispatch-transformer41 [119] 23.5% ----------------------------------------------------------------------------------------- oracle-error [89] 100.0% [104] 3478(4.7%) 300(0.4%) for-loop .../herbie/js-tweaks/src/points.rkt:189:2 loop [115] 46.3% map [120] 35.4% ??? [124] 9.7% ----------------------------------------------------------------------------------------- prepare-points [90] 100.0% [105] 3184(4.3%) 0(0.0%) loop ...lies/herbie/js-tweaks/src/points.rkt:122:4 loop [118] 70.8% ??? [123] 29.2% ----------------------------------------------------------------------------------------- dedup-children! [92] 9.8% loop [106] 90.2% [106] 2324(3.1%) 2324(3.1%) loop ...racket-7.0/collects/racket/list.rkt:434:17 loop [106] 90.2% ----------------------------------------------------------------------------------------- for-loop [60] 25.0% for-loop [86] 75.0% [107] 1208(1.6%) 0(0.0%) ??? ...s/herbie/js-tweaks/src/core/ematch.rkt:43:5 for-loop [121] 100.0% ----------------------------------------------------------------------------------------- mk-enode! [93] 100.0% [108] 966(1.3%) 0(0.0%) new-enode ...bie/js-tweaks/src/core/enode.rkt:94:0 type-of-enode-expr [122] 100.0% ----------------------------------------------------------------------------------------- for-loop [95] 100.0% [109] 370(0.5%) 370(0.5%) fallback-update ...s/racket/private/dict.rkt:115:2 ----------------------------------------------------------------------------------------- mk-enode! [93] 100.0% [110] 360(0.5%) 360(0.5%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ----------------------------------------------------------------------------------------- enode-merge! [96] 100.0% [111] 358(0.5%) 0(0.0%) adopt-enode! ...js-tweaks/src/core/enode.rkt:102:0 custom-set-union [142] 100.0% ----------------------------------------------------------------------------------------- compile-top9 [98] 100.0% [112] 324(0.4%) 0(0.0%) compile-forms31 (unknown source) for-loop [139] 100.0% ----------------------------------------------------------------------------------------- curry* [99] 100.0% [113] 300(0.4%) 300(0.4%) procedure-arity ...ket/private/norm-arity.rkt:7:27 ----------------------------------------------------------------------------------------- get-final-combination [101] 100.0% [114] 292(0.4%) 0(0.0%) infer-splitpoints ...aks/src/core/regimes.rkt:34:0 for-loop [125] 100.0% ----------------------------------------------------------------------------------------- for-loop [77] 2.4% ??? [76] 4.8% loop! [129] 7.0% for-loop [104] 18.1% loop [115] 67.7% [115] 6280(8.5%) 1704(2.3%) loop ...-7.0/collects/racket/private/map.rkt:40:19 loop [115] 67.7% ??? [132] 12.9% loop! [129] 7.0% eval-prog [54] 4.8% infer-double-representation [197] 2.6% foldl [131] 1.2% ----------------------------------------------------------------------------------------- expand-capturing-lifts [103] 100.0% [116] 4068(5.5%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [128] 83.9% loop [141] 16.1% ----------------------------------------------------------------------------------------- for-loop [102] 100.0% [117] 3890(5.2%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/egraph.rkt:217:8 hash-update! [126] 100.0% ----------------------------------------------------------------------------------------- loop [105] 100.0% [118] 2254(3.0%) 356(0.5%) loop ...tlies/herbie/js-tweaks/src/points.rkt:81:2 ??? [127] 70.9% ??? [190] 13.3% ----------------------------------------------------------------------------------------- loop [141] 20.9% expand-capturing-lifts [103] 79.1% [119] 1578(2.1%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [133] 100.0% ----------------------------------------------------------------------------------------- f67 [135] 19.7% for-loop [104] 80.3% [120] 1532(2.1%) 0(0.0%) map ...t-7.0/collects/racket/private/map.rkt:35:13 ??? [132] 80.3% f67 [135] 19.7% ----------------------------------------------------------------------------------------- ??? [107] 100.0% [121] 1208(1.6%) 602(0.8%) for-loop ...bie/js-tweaks/src/core/ematch.rkt:44:7 constant? [130] 50.2% ----------------------------------------------------------------------------------------- new-enode [108] 100.0% [122] 966(1.3%) 298(0.4%) type-of-enode-expr ...eaks/src/core/enode.rkt:66:0 table-ref [134] 69.2% ----------------------------------------------------------------------------------------- loop [105] 100.0% [123] 930(1.3%) 0(0.0%) ??? ...tlies/herbie/js-tweaks/src/points.rkt:106:2 ??? [150] 100.0% ----------------------------------------------------------------------------------------- for-loop [104] 100.0% [124] 336(0.5%) 336(0.5%) ??? ...7.0/collects/racket/private/for.rkt:1208:14 ----------------------------------------------------------------------------------------- infer-splitpoints [114] 100.0% [125] 292(0.4%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/regimes.rkt:46:6 option-on-expr [136] 100.0% ----------------------------------------------------------------------------------------- for-loop [117] 39.7% for-loop [102] 60.3% [126] 9800(13.2%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [137] 100.0% ----------------------------------------------------------------------------------------- parse-loop80 [39] 6.1% ??? [132] 16.8% loop [118] 29.0% ??? [76] 48.2% [127] 5510(7.4%) 636(0.9%) ??? ...ies/herbie/js-tweaks/src/programs.rkt:108:2 ??? [138] 83.0% ??? [150] 5.4% ----------------------------------------------------------------------------------------- lambda-clause-expander [116] 25.6% for-loop [139] 74.4% [128] 3414(4.6%) 0(0.0%) finish-bodys (unknown source) for-loop [139] 100.0% ----------------------------------------------------------------------------------------- loop [115] 25.2% merge-egraph-nodes! [78] 74.8% [129] 3232(4.4%) 308(0.4%) loop! ...herbie/js-tweaks/src/core/enode.rkt:187:2 custom-set-union [142] 44.7% loop [115] 25.2% set [146] 10.3% update-en-expr [163] 10.3% ----------------------------------------------------------------------------------------- substitute-e [74] 12.2% matcher [62] 13.1% for-loop [121] 24.6% match-e [70] 50.1% [130] 2464(3.3%) 0(0.0%) constant? ...js-tweaks/src/syntax/syntax.rkt:719:0 value? [140] 100.0% ----------------------------------------------------------------------------------------- ??? [3] 14.9% for-loop [77] 28.8% loop [115] 56.3% [131] 2412(3.3%) 666(0.9%) foldl ....0/collects/racket/private/list.rkt:229:4 merge2 [143] 57.5% ??? [147] 14.9% ----------------------------------------------------------------------------------------- loop [115] 43.9% map [120] 56.1% [132] 2192(3.0%) 0(0.0%) ??? ...lies/herbie/js-tweaks/src/points.rkt:190:26 infer-double-representation [197] 42.5% ??? [127] 42.2% precision->real [145] 15.3% ----------------------------------------------------------------------------------------- dispatch-transformer41 [119] 100.0% [133] 1578(2.1%) 0(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [144] 80.4% loop [141] 19.6% ----------------------------------------------------------------------------------------- type-of-enode-expr [122] 100.0% [134] 668(0.9%) 668(0.9%) table-ref .../herbie/js-tweaks/src/common.rkt:45:0 ----------------------------------------------------------------------------------------- map [120] 25.0% simplify [32] 25.0% parse-loop80 [39] 50.0% [135] 604(0.8%) 0(0.0%) f67 ...0/collects/racket/match/compiler.rkt:507:40 eval-const-expr [46] 75.0% map [120] 25.0% ----------------------------------------------------------------------------------------- for-loop [125] 100.0% [136] 292(0.4%) 0(0.0%) option-on-expr ...weaks/src/core/regimes.rkt:126:0 for-loop [148] 100.0% ----------------------------------------------------------------------------------------- hash-update! [126] 100.0% [137] 9800(13.2%) 312(0.4%) ??? ...herbie/js-tweaks/src/core/egraph.rkt:219:24 for-loop [149] 96.8% ----------------------------------------------------------------------------------------- ??? [127] 100.0% [138] 4574(6.2%) 934(1.3%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [151] 57.8% ??? [150] 21.8% ----------------------------------------------------------------------------------------- compile-forms31 [112] 8.0% fallback-loop [18] 11.1% for-loop [139] 12.6% finish-bodys [128] 68.3% [139] 4048(5.5%) 2136(2.9%) for-loop (unknown source) finish-bodys [128] 49.9% for-loop [139] 12.6% syntax-e [15] 6.0% expand-implicit [6] 2.7% expand-identifier [7] 1.6% ----------------------------------------------------------------------------------------- variable? [80] 34.4% constant? [130] 65.6% [140] 3754(5.1%) 3754(5.1%) value? ...rbie/js-tweaks/src/syntax/types.rkt:18:0 ----------------------------------------------------------------------------------------- eval-prog [54] 12.2% apply-transformer52 [133] 12.3% lambda-clause-expander [116] 26.0% syntax-e/no-taint [19] 49.5% [141] 2520(3.4%) 324(0.4%) loop (unknown source) gf [152] 49.5% dispatch-transformer41 [119] 13.1% core-form-sym [159] 12.3% expand-capturing-lifts [103] 12.2% ----------------------------------------------------------------------------------------- adopt-enode! [111] 18.3% loop! [129] 81.7% [142] 1952(2.6%) 924(1.2%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [155] 35.0% for-loop [156] 17.6% ----------------------------------------------------------------------------------------- foldl [131] 100.0% [143] 1386(1.9%) 1386(1.9%) merge2 ...erbie/js-tweaks/src/core/ematch.rkt:24:0 ----------------------------------------------------------------------------------------- apply-transformer52 [133] 100.0% [144] 1268(1.7%) 302(0.4%) apply-transformer-in-context (unknown source) go [157] 26.0% parse-lambda [158] 25.9% new-lambda [160] 24.3% ----------------------------------------------------------------------------------------- ??? [132] 33.7% ??? [76] 66.3% [145] 998(1.3%) 0(0.0%) precision->real ...s-tweaks/src/programs.rkt:92:33 infer-representation [154] 100.0% ----------------------------------------------------------------------------------------- loop! [129] 100.0% [146] 666(0.9%) 666(0.9%) set ...collects/racket/private/set-types.rkt:981:0 ----------------------------------------------------------------------------------------- foldl [131] 100.0% [147] 360(0.5%) 0(0.0%) ??? .../herbie/js-tweaks/src/core/matcher.rkt:26:7 core651 [153] 100.0% ----------------------------------------------------------------------------------------- option-on-expr [136] 100.0% [148] 292(0.4%) 0(0.0%) for-loop ...e/js-tweaks/src/core/regimes.rkt:137:4 errors [53] 100.0% ----------------------------------------------------------------------------------------- ??? [137] 100.0% [149] 9488(12.8%) 8496(11.5%) for-loop ...e/js-tweaks/src/core/egraph.rkt:220:26 update-en-expr [163] 10.5% ----------------------------------------------------------------------------------------- ??? [127] 3.6% ??? [41] 8.0% ??? [123] 11.3% ??? [138] 12.1% loop [12] 12.8% location-do [161] 26.1% for-loop [45] 26.1% [150] 8222(11.1%) 310(0.4%) ??? ...tract/private/arrow-higher-order.rkt:357:33 location-do [161] 26.1% approximate9 [4] 26.1% hash-ref! [162] 12.8% sample-multi-bounded [164] 11.3% ival-mult [166] 8.4% loop [175] 4.0% argmin [168] 4.0% mk-ival [178] 3.6% ----------------------------------------------------------------------------------------- ??? [138] 100.0% [151] 2642(3.6%) 1646(2.2%) ??? ...rbie/js-tweaks/src/syntax/syntax.rkt:207:17 return/no-unsupplied [201] 12.7% list-member? [172] 12.6% ??? [167] 12.3% ----------------------------------------------------------------------------------------- loop [141] 100.0% [152] 1248(1.7%) 0(0.0%) gf (unknown source) propagation-apply [165] 73.1% propagation-merge [170] 26.9% ----------------------------------------------------------------------------------------- ??? [147] 35.6% for-loop [95] 64.4% [153] 1012(1.4%) 0(0.0%) core651 ...acket/contract/private/arr-i.rkt:918:19 ??? [169] 35.6% un-dep/maybe-chaperone [171] 33.2% successfully-got-the-right-kind-of-function [177] 31.2% ----------------------------------------------------------------------------------------- precision->real [145] 100.0% [154] 998(1.3%) 670(0.9%) infer-representation ...-tweaks/src/float.rkt:15:0 ??? [174] 32.9% ----------------------------------------------------------------------------------------- custom-set-union [142] 100.0% [155] 684(0.9%) 358(0.5%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [176] 47.7% ----------------------------------------------------------------------------------------- custom-set-union [142] 100.0% [156] 344(0.5%) 344(0.5%) for-loop ...cts/racket/private/set-types.rkt:152:2 ----------------------------------------------------------------------------------------- apply-transformer-in-context [144] 100.0% [157] 330(0.4%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [173] 100.0% ----------------------------------------------------------------------------------------- apply-transformer-in-context [144] 100.0% [158] 328(0.4%) 328(0.4%) parse-lambda ...llects/racket/private/kw.rkt:585:2 ----------------------------------------------------------------------------------------- loop [141] 100.0% [159] 310(0.4%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [14] 100.0% ----------------------------------------------------------------------------------------- apply-transformer-in-context [144] 100.0% [160] 308(0.4%) 308(0.4%) new-lambda ...ollects/racket/private/kw.rkt:822:11 ----------------------------------------------------------------------------------------- ??? [150] 40.0% location-do [161] 60.0% [161] 5340(7.2%) 0(0.0%) location-do ...bie/js-tweaks/src/programs.rkt:64:0 location-do [161] 60.0% ??? [150] 40.0% ----------------------------------------------------------------------------------------- update-leader! [87] 8.0% ??? [180] 8.5% first-nonzero-exp [33] 15.4% for-loop [13] 21.9% ??? [179] 23.1% ??? [150] 23.1% [162] 4134(5.6%) 332(0.4%) hash-ref! .../racket/private/more-scheme.rkt:376:2 simplify [32] 38.4% ??? [179] 23.1% ??? [5] 21.9% ??? [180] 8.5% ----------------------------------------------------------------------------------------- loop! [129] 40.1% for-loop [149] 59.9% [163] 1656(2.2%) 1656(2.2%) update-en-expr ...tweaks/src/core/egraph.rkt:205:0 ----------------------------------------------------------------------------------------- ??? [150] 100.0% [164] 930(1.3%) 0(0.0%) sample-multi-bounded ...tweaks/src/points.rkt:15:0 random-ranges [182] 64.3% for-loop [185] 35.7% ----------------------------------------------------------------------------------------- gf [152] 100.0% [165] 912(1.2%) 912(1.2%) propagation-apply (unknown source) ----------------------------------------------------------------------------------------- ??? [150] 100.0% [166] 688(0.9%) 356(0.5%) ival-mult ...e/js-tweaks/src/biginterval.rkt:112:0 bfmul [186] 48.3% ----------------------------------------------------------------------------------------- ??? [151] 48.4% flag-set? [81] 51.6% [167] 674(0.9%) 674(0.9%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ----------------------------------------------------------------------------------------- baseline-error [100] 47.8% ??? [150] 52.2% [168] 624(0.8%) 0(0.0%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 ??? [181] 52.2% ??? [189] 47.8% ----------------------------------------------------------------------------------------- core651 [153] 100.0% [169] 360(0.5%) 0(0.0%) ??? ...s/racket/contract/private/arr-i.rkt:1249:27 or/c [183] 100.0% ----------------------------------------------------------------------------------------- gf [152] 100.0% [170] 336(0.5%) 336(0.5%) propagation-merge (unknown source) ----------------------------------------------------------------------------------------- core651 [153] 100.0% [171] 336(0.5%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1097:2 ??? [184] 100.0% ----------------------------------------------------------------------------------------- ??? [151] 100.0% [172] 334(0.5%) 334(0.5%) list-member? ...llects/racket/private/set.rkt:24:0 ----------------------------------------------------------------------------------------- go [157] 33.3% loop [173] 66.7% [173] 330(0.4%) 0(0.0%) loop ...llects/racket/private/qq-and-or.rkt:101:61 loop [173] 66.7% stx-cdr [8] 33.3% ----------------------------------------------------------------------------------------- infer-representation [154] 100.0% [174] 328(0.4%) 328(0.4%) ??? ...ects/racket/contract/private/guts.rkt:746:8 ----------------------------------------------------------------------------------------- ??? [150] 100.0% [175] 328(0.4%) 0(0.0%) loop .../racket-7.0/collects/racket/list.rkt:751:4 ??? [181] 100.0% ----------------------------------------------------------------------------------------- for-loop [155] 100.0% [176] 326(0.4%) 326(0.4%) for-loop ...cts/racket/private/set-types.rkt:178:5 ----------------------------------------------------------------------------------------- core651 [153] 100.0% [177] 316(0.4%) 0(0.0%) successfully-got-the-right-kind-of-function ...5:4 arity-checking-wrapper [187] 100.0% ----------------------------------------------------------------------------------------- ??? [150] 100.0% [178] 300(0.4%) 0(0.0%) mk-ival ...rbie/js-tweaks/src/biginterval.rkt:57:0 bf [188] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [162] 100.0% [179] 3166(4.3%) 0(0.0%) ??? .../herbie/js-tweaks/src/core/taylor.rkt:45:15 hash-ref! [162] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [162] 100.0% [180] 1308(1.8%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/taylor.rkt:344:33 hash-ref! [162] 100.0% ----------------------------------------------------------------------------------------- argmin [168] 49.8% loop [175] 50.2% [181] 654(0.9%) 0(0.0%) ??? ...es/herbie/js-tweaks/src/mainloop.rkt:111:10 errors [53] 100.0% ----------------------------------------------------------------------------------------- sample-multi-bounded [164] 100.0% [182] 598(0.8%) 598(0.8%) random-ranges ...ie/js-tweaks/src/common.rkt:183:0 ----------------------------------------------------------------------------------------- ??? [169] 100.0% [183] 360(0.5%) 0(0.0%) or/c ...lects/racket/contract/private/orc.rkt:16:2 build-compound-type-name [192] 100.0% ----------------------------------------------------------------------------------------- un-dep/maybe-chaperone [171] 100.0% [184] 336(0.5%) 0(0.0%) ??? ...llects/racket/contract/private/orc.rkt:88:2 ??? [193] 100.0% ----------------------------------------------------------------------------------------- sample-multi-bounded [164] 100.0% [185] 332(0.4%) 332(0.4%) for-loop ...s/herbie/js-tweaks/src/points.rkt:23:4 ----------------------------------------------------------------------------------------- ival-mult [166] 100.0% [186] 332(0.4%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:821:4 ??? [190] 100.0% ----------------------------------------------------------------------------------------- successfully-got-the-right-kind-of-function [177]100.0% [187] 316(0.4%) 316(0.4%) arity-checking-wrapper ...w-higher-order.rkt:425:0 ----------------------------------------------------------------------------------------- mk-ival [178] 100.0% [188] 300(0.4%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [194] 100.0% ----------------------------------------------------------------------------------------- argmin [168] 100.0% [189] 298(0.4%) 0(0.0%) ??? ...lies/herbie/js-tweaks/src/points.rkt:193:27 eval-errors [191] 100.0% ----------------------------------------------------------------------------------------- loop [118] 47.5% bfmul [186] 52.5% [190] 632(0.9%) 632(0.9%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 ----------------------------------------------------------------------------------------- ??? [189] 49.8% ??? [76] 50.2% [191] 598(0.8%) 0(0.0%) eval-errors ...rbie/js-tweaks/src/points.rkt:179:0 for-loop [195] 100.0% ----------------------------------------------------------------------------------------- or/c [183] 100.0% [192] 360(0.5%) 0(0.0%) build-compound-type-name ...private/guts.rkt:515:0 contract-struct-name [196] 100.0% ----------------------------------------------------------------------------------------- ??? [184] 100.0% [193] 336(0.5%) 336(0.5%) ??? ...ntract/private/arrow-higher-order.rkt:554:2 ----------------------------------------------------------------------------------------- bf [188] 100.0% [194] 300(0.4%) 300(0.4%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ----------------------------------------------------------------------------------------- eval-errors [191] 100.0% [195] 598(0.8%) 0(0.0%) for-loop .../herbie/js-tweaks/src/points.rkt:181:2 infer-double-representation [197] 50.2% ordinary-value? [199] 49.8% ----------------------------------------------------------------------------------------- build-compound-type-name [192] 100.0% [196] 360(0.5%) 0(0.0%) contract-struct-name ...ract/private/prop.rkt:87:0 ??? [198] 100.0% ----------------------------------------------------------------------------------------- for-loop [195] 10.6% loop [115] 11.5% ??? [132] 32.9% ??? [76] 44.9% [197] 2830(3.8%) 622(0.8%) infer-double-representation .../src/float.rkt:22:0 for-loop [200] 78.0% ----------------------------------------------------------------------------------------- contract-struct-name [196] 100.0% [198] 360(0.5%) 360(0.5%) ??? ...contract/private/arrow-val-first.rkt:1423:0 ----------------------------------------------------------------------------------------- for-loop [195] 100.0% [199] 298(0.4%) 298(0.4%) ordinary-value? ...ie/js-tweaks/src/float.rkt:67:0 ----------------------------------------------------------------------------------------- infer-double-representation [197] 100.0% [200] 2208(3.0%) 1910(2.6%) for-loop ...es/herbie/js-tweaks/src/float.rkt:17:3 return/no-unsupplied [201] 13.5% ----------------------------------------------------------------------------------------- for-loop [200] 22.4% ??? [151] 25.3% flag-set? [81] 52.3% [201] 1330(1.8%) 696(0.9%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [202] 47.7% ----------------------------------------------------------------------------------------- return/no-unsupplied [201] 100.0% [202] 634(0.9%) 634(0.9%) filter ...0/collects/racket/private/list.rkt:256:2 -----------------------------------------------------------------------------------------