Bug 117047 - fourthTier: get rid of op_call_put_result
Summary: fourthTier: get rid of op_call_put_result
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on: 117048
Blocks: 117046
  Show dependency treegraph
 
Reported: 2013-05-30 14:52 PDT by Filip Pizlo
Modified: 2013-05-31 14:38 PDT (History)
7 users (show)

See Also:


Attachments
work in progress (59.67 KB, patch)
2013-05-30 18:45 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (77.06 KB, patch)
2013-05-30 20:53 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
still broken but getting there (77.51 KB, patch)
2013-05-31 00:49 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (85.37 KB, patch)
2013-05-31 14:17 PDT, Filip Pizlo
barraclough: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2013-05-30 14:52:27 PDT
This opcode is super annoying and already introduces a lot of cruft, and would introduce even more cruft if we wanted to have calls forward exit on the return result.
Comment 1 Filip Pizlo 2013-05-30 18:45:38 PDT
Created attachment 203404 [details]
work in progress
Comment 2 Filip Pizlo 2013-05-30 20:53:00 PDT
Created attachment 203407 [details]
the patch

Ummm, I think it actually works.

Will mark r? once I run more tests.
Comment 3 Filip Pizlo 2013-05-30 23:34:57 PDT
Perf results.  Note the ERROR's are due to the fact that I'm running benchmarks that include imul tests and we don't yet have imul on the branch.


Benchmark report for SunSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1).

VMs tested:
"Old" at /Volumes/Data/pizlo/fourthTier/secondary/OpenSource/WebKitBuild/Release/jsc (r150814)
"TipOfTree" at /Volumes/Data/pizlo/fourthTier/OpenSource/WebKitBuild/Release/jsc (r151005)
"NoPutResult" at /Volumes/Data/fromMiniMe/fourthTier/secondary/OpenSource/WebKitBuild/Release/jsc (r151005)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark
iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution
times with 95% confidence intervals in milliseconds.

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
SunSpider:
   3d-cube                                         6.6535+-0.1080     ?      6.6956+-0.1006     ?      6.7724+-0.0967        ? might be 1.0179x slower
   3d-morph                                        8.6314+-0.1150            8.5481+-0.1144     ?      8.5554+-0.0970        
   3d-raytrace                                     8.3986+-0.1182            8.3730+-0.1248     ?      8.4754+-0.1052        ?
   access-binary-trees                             1.8148+-0.0091     ?      1.8230+-0.0098     ?      1.8395+-0.0302        ? might be 1.0136x slower
   access-fannkuch                                 7.5747+-0.0767            7.5201+-0.0754     ?      7.5504+-0.0767        
   access-nbody                                    3.9975+-0.0143            3.9974+-0.0159            3.9945+-0.0173        
   access-nsieve                                   4.7958+-0.0668     ?      4.8517+-0.0385            4.8301+-0.0815        ?
   bitops-3bit-bits-in-byte                        1.7782+-0.0185     ?      1.7808+-0.0183     ?      1.7838+-0.0193        ?
   bitops-bits-in-byte                             6.6733+-0.0652            6.6390+-0.1184     ?      6.6586+-0.0688        
   bitops-bitwise-and                              2.7999+-0.0100            2.7882+-0.0394     ?      2.7974+-0.0530        
   bitops-nsieve-bits                              4.5089+-0.0179            4.4886+-0.0249     ?      4.5027+-0.0209        
   controlflow-recursive                           2.9735+-0.0240     ?      2.9777+-0.0278     ?      2.9785+-0.0190        ?
   crypto-aes                                      5.1963+-0.0545     ?      5.3462+-0.1701            5.2084+-0.0574        ?
   crypto-md5                                      3.0288+-0.0216     ?      3.0455+-0.0278     !      3.1139+-0.0209        ! definitely 1.0281x slower
   crypto-sha1                                     2.8191+-0.0205     ?      2.8445+-0.0245            2.8319+-0.0167        ?
   date-format-tofte                              15.1209+-0.3383     ^     14.5888+-0.1936     ?     14.6945+-0.2206          might be 1.0290x faster
   date-format-xparb                               8.4504+-0.1433            8.3948+-0.1525     ?      8.5188+-0.2789        ?
   math-cordic                                     3.9364+-0.0350            3.9317+-0.0149     ?      3.9414+-0.0103        ?
   math-partial-sums                              12.5103+-0.5892           12.2258+-0.1096     ?     12.2782+-0.1317          might be 1.0189x faster
   math-spectral-norm                              2.7130+-0.0113            2.7115+-0.0142     ?      2.7152+-0.0117        ?
   regexp-dna                                     12.6400+-0.1980     ?     12.6776+-0.2321     ?     12.6894+-0.2061        ?
   string-base64                                   5.1097+-0.0523            5.0605+-0.0463            5.0448+-0.0535          might be 1.0129x faster
   string-fasta                                   10.7894+-0.1804     ?     10.8082+-0.1854     ?     10.8321+-0.0750        ?
   string-tagcloud                                14.1859+-0.1894     ?     14.4240+-0.1877           14.1942+-0.2279        ?
   string-unpack-code                             28.0377+-0.1223     ?     28.5989+-0.7402           27.8756+-0.0768        
   string-validate-input                           6.4255+-0.1258     ?      6.4572+-0.1224     ?      6.5315+-0.1174        ? might be 1.0165x slower

   <arithmetic> *                                  7.3678+-0.0456     ?      7.3692+-0.0581            7.3542+-0.0434          might be 1.0019x faster
   <geometric>                                     5.8162+-0.0281     ?      5.8171+-0.0328     ?      5.8251+-0.0273        ? might be 1.0015x slower
   <harmonic>                                      4.6851+-0.0172     ?      4.6911+-0.0187     ?      4.7036+-0.0180        ? might be 1.0039x slower

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
V8Spider:
   crypto                                         79.5999+-0.1131     ?     80.1268+-0.6305           79.6533+-0.2467        ?
   deltablue                                     104.4109+-0.4449     ?    104.4992+-0.3730          104.2262+-0.6542        
   earley-boyer                                   68.7674+-0.2412     ?     69.1753+-0.1873     ?     69.5945+-0.3177        ! definitely 1.0120x slower
   raytrace                                       38.0493+-0.5400           38.0490+-0.2001     ?     38.3333+-0.3513        ?
   regexp                                        100.2842+-0.7579          100.1899+-0.7430     ?    100.3337+-0.3103        ?
   richards                                      113.4608+-2.3814          112.0722+-1.0841          111.6164+-0.6316          might be 1.0165x faster
   splay                                          46.9532+-0.3133     ?     47.0801+-0.2987           46.9297+-0.2747        

   <arithmetic>                                   78.7894+-0.5301           78.7418+-0.2662           78.6696+-0.1686          might be 1.0015x faster
   <geometric> *                                  73.5214+-0.4755     ?     73.5537+-0.2354           73.5447+-0.1648        ? might be 1.0003x slower
   <harmonic>                                     67.9210+-0.4657     ?     68.0019+-0.2268     ?     68.0626+-0.1977        ? might be 1.0021x slower

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
Octane and V8v7:
   encrypt                                        0.46622+-0.00044          0.46614+-0.00052    ?     0.46628+-0.00026       ?
   decrypt                                        8.62112+-0.00980          8.61611+-0.00909    ?     8.63680+-0.01811       ?
   deltablue                             x2       0.56435+-0.00276    !     0.57258+-0.00265          0.56820+-0.00253       ?
   earley                                         0.88733+-0.00351    ?     0.89108+-0.00355    ^     0.87417+-0.00575       ^ definitely 1.0151x faster
   boyer                                         12.67169+-0.02730    !    12.76018+-0.04080    !    12.90848+-0.03943       ! definitely 1.0187x slower
   raytrace                              x2       4.57569+-0.05269          4.51537+-0.03864          4.49072+-0.03367         might be 1.0189x faster
   regexp                                x2      32.40796+-0.14123    ?    32.78847+-0.26496         32.31919+-0.50411       
   richards                              x2       0.30530+-0.00054    ?     0.30761+-0.00219    ?     0.30962+-0.00386       ? might be 1.0142x slower
   splay                                 x2       0.65602+-0.03425          0.64842+-0.02002          0.63645+-0.02031         might be 1.0308x faster
   navier-stokes                         x2      10.77567+-0.00561    ?    10.77803+-0.00884         10.77514+-0.00548       
   closure                                        0.31782+-0.03429          0.31726+-0.03412    ?     0.31864+-0.03455       ?
   jquery                                         4.51685+-0.55684    ?     4.57163+-0.56993          4.52117+-0.55117       ?
   gbemu                                 x2     254.33748+-16.67935   ?   258.51785+-15.65073       251.77810+-15.04515        might be 1.0102x faster
   box2d                                 x2      32.26507+-0.17146         32.16145+-0.47057    ?    32.43132+-0.29840       ?

V8v7:
   <arithmetic>                                   7.57602+-0.01653    ?     7.62216+-0.03561          7.56777+-0.06304         might be 1.0011x faster
   <geometric> *                                  2.42874+-0.01570    ?     2.43357+-0.01052          2.42061+-0.01216         might be 1.0034x faster
   <harmonic>                                     0.92432+-0.00831    ?     0.92825+-0.00541          0.92461+-0.00547       ? might be 1.0003x slower

Octane including V8v7:
   <arithmetic>                                  31.78437+-1.53555    ?    32.19100+-1.45140         31.56105+-1.36434         might be 1.0071x faster
   <geometric> *                                  4.39056+-0.05316    ?     4.40468+-0.06139          4.37920+-0.05896         might be 1.0026x faster
   <harmonic>                                     1.05632+-0.01400    ?     1.06015+-0.01643          1.05729+-0.01697       ? might be 1.0009x slower

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
Kraken:
   ai-astar                                       492.433+-0.691            491.737+-0.386      !     493.012+-0.191         ?
   audio-beat-detection                           242.574+-0.631            242.082+-0.551      ?     242.831+-1.251         ?
   audio-dft                                      313.189+-5.606            309.304+-0.573      ^     307.554+-0.557           might be 1.0183x faster
   audio-fft                                      143.351+-0.116            143.186+-0.166            143.159+-0.113         
   audio-oscillator                               231.699+-0.615      ?     232.551+-0.635            232.209+-0.546         ?
   imaging-darkroom                               290.363+-0.721      ?     290.799+-0.772            290.334+-1.034         
   imaging-desaturate                             159.977+-0.140            159.957+-0.112      ?     159.969+-0.127         
   imaging-gaussian-blur                          403.014+-0.129      ^     401.810+-0.636            401.808+-0.275         ^ definitely 1.0030x faster
   json-parse-financial                            82.098+-1.231      ^      80.220+-0.366             80.090+-0.269         ^ definitely 1.0251x faster
   json-stringify-tinderbox                       101.032+-0.178            100.618+-0.360            100.455+-0.235         ^ definitely 1.0058x faster
   stanford-crypto-aes                             93.736+-0.546      ?      94.227+-0.889      ^      93.003+-0.311         
   stanford-crypto-ccm                            100.708+-2.583      ?     101.063+-2.574             99.964+-2.500         
   stanford-crypto-pbkdf2                         270.784+-1.579      ?     271.848+-5.235            267.766+-0.801         ^ definitely 1.0113x faster
   stanford-crypto-sha256-iterative               116.401+-0.653            115.583+-0.575      ?     115.728+-0.514         

   <arithmetic> *                                 217.240+-0.545            216.785+-0.409            216.277+-0.349         ^ definitely 1.0045x faster
   <geometric>                                    185.549+-0.594            185.065+-0.499            184.486+-0.476           might be 1.0058x faster
   <harmonic>                                     159.461+-0.700            158.872+-0.625            158.265+-0.586           might be 1.0076x faster

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
JSRegress:
   adapt-to-double-divide                         22.5762+-0.0774     ?     22.6472+-0.1011           22.6213+-0.1338        ?
   aliased-arguments-getbyval                      0.8336+-0.0074     ?      0.8360+-0.0075     ?      0.8383+-0.0084        ?
   allocate-big-object                             2.4713+-0.0230     ?      2.4815+-0.0237            2.4644+-0.0249        
   arity-mismatch-inlining                         0.7853+-0.0213            0.7835+-0.0202            0.7782+-0.0238        
   array-access-polymorphic-structure              6.7576+-0.0836     ?      6.7612+-0.0903     ?      6.8380+-0.0975        ? might be 1.0119x slower
   array-nonarray-polymorhpic-access             207.8595+-6.5279          202.3718+-2.3091     ?    204.0461+-2.9246          might be 1.0187x faster
   array-with-double-add                           5.8959+-0.0738            5.8250+-0.0669     ?      5.8837+-0.0723        
   array-with-double-increment                     4.1215+-0.0544     ?      4.1567+-0.0540     ?      4.1584+-0.0673        ?
   array-with-double-mul-add                       7.1401+-0.0700            7.1257+-0.0779     ^      6.6711+-0.0761        ^ definitely 1.0703x faster
   array-with-double-sum                           7.9967+-0.0830            7.8883+-0.0835     ?      7.9378+-0.0895        
   array-with-int32-add-sub                       10.5138+-0.0746           10.4969+-0.0690     ?     10.5676+-0.0996        ?
   array-with-int32-or-double-sum                  7.9902+-0.0906     ?      8.0118+-0.0967     ?      8.1422+-0.1262        ? might be 1.0190x slower
   big-int-mul                                     4.8199+-0.0368     ?      4.8457+-0.0206            4.8333+-0.0642        ?
   boolean-test                                    4.3804+-0.0785     ?      4.4156+-0.0613            4.4090+-0.0646        ?
   branch-fold                                    17.0757+-0.3718     ^     16.1490+-0.0804     ?     16.3992+-0.4156          might be 1.0413x faster
   cast-int-to-double                             13.9414+-0.1029           13.9163+-0.1190     ?     14.1077+-0.2389        ? might be 1.0119x slower
   cell-argument                                  14.4546+-0.1141     ?     14.4594+-0.1388           14.3951+-0.0702        
   cfg-simplify                                    4.0211+-0.0368            3.9941+-0.0492            3.9787+-0.0570          might be 1.0106x faster
   cmpeq-obj-to-obj-other                         10.8782+-0.1801     !     11.8703+-0.5147           11.2366+-0.3491        ? might be 1.0329x slower
   constant-test                                   8.5379+-0.1472     ?      8.6023+-0.0727            8.5584+-0.0711        ?
   direct-arguments-getbyval                       0.7318+-0.0088            0.7303+-0.0125     ?      0.7447+-0.0213        ? might be 1.0176x slower
   double-pollution-getbyval                      10.8326+-0.0895     ?     10.9629+-0.1685           10.8042+-0.0661        
   double-pollution-putbyoffset                    5.0109+-0.0943     ?      5.1184+-0.0614     ^      4.9870+-0.0689        
   empty-string-plus-int                          10.7581+-0.1706     ?     10.9524+-0.1720           10.9178+-0.1782        ? might be 1.0148x slower
   external-arguments-getbyval                     1.9948+-0.0162     ^      1.9356+-0.0153            1.9216+-0.0101        ^ definitely 1.0381x faster
   external-arguments-putbyval                     3.1478+-0.0185     ?      3.1742+-0.0445            3.1564+-0.0251        ?
   Float32Array-matrix-mult                       13.7436+-0.1504     ?     13.8056+-0.1448     ^     13.5224+-0.0878          might be 1.0164x faster
   fold-double-to-int                             22.1622+-0.2652           21.8627+-0.2053     !     22.5390+-0.4039        ? might be 1.0170x slower
   function-dot-apply                              3.1126+-0.0102            3.1097+-0.0130     ?      3.1292+-0.0382        ?
   function-test                                   5.1201+-0.0649     ?      5.1589+-0.0485     ^      4.9417+-0.1420          might be 1.0361x faster
   get-by-id-chain-from-try-block                  6.7039+-0.1597     ?      6.8023+-0.1716            6.7830+-0.2125        ? might be 1.0118x slower
   HashMap-put-get-iterate-keys                   90.5277+-0.9546           89.4717+-0.5557     ?     90.2414+-0.6297        
   HashMap-put-get-iterate                        93.5986+-0.7505     ^     91.8632+-0.2226     !     93.0493+-0.6508        
   HashMap-string-put-get-iterate                 71.6259+-1.4979     ?     72.1890+-0.3875     ?     73.2416+-0.7631        ? might be 1.0226x slower
   imul-double-only                                    ERROR                     ERROR                     ERROR             
   imul-int-only                                       ERROR                     ERROR                     ERROR             
   imul-mixed                                          ERROR                     ERROR                     ERROR             
   indexed-properties-in-objects                   4.3950+-0.0464     ?      4.4272+-0.0239            4.3589+-0.0651        
   inline-arguments-access                         1.2525+-0.0135            1.2506+-0.0136     ?      1.2511+-0.0123        
   inline-arguments-local-escape                  24.9936+-0.5217     ^     23.5702+-0.2825           23.4357+-0.2754        ^ definitely 1.0665x faster
   inline-get-scoped-var                           6.5059+-0.0683     ?      6.6443+-0.1054     ?      6.6559+-0.2375        ? might be 1.0230x slower
   inlined-put-by-id-transition                   16.3898+-0.1814           16.2233+-0.2554           16.1655+-0.2775          might be 1.0139x faster
   int-or-other-abs-then-get-by-val                8.9088+-0.1471     ?      8.9847+-0.1066     ?      9.0108+-0.1208        ? might be 1.0115x slower
   int-or-other-abs-zero-then-get-by-val          37.8294+-0.6763           37.4967+-0.4252           37.0609+-0.1049          might be 1.0207x faster
   int-or-other-add-then-get-by-val               10.2244+-0.0997           10.2060+-0.1083           10.1682+-0.0797        
   int-or-other-add                               10.5201+-0.1252     ?     10.5730+-0.1053           10.5035+-0.0597        
   int-or-other-div-then-get-by-val                6.3850+-0.0931     ?      6.3931+-0.0932     ?      6.6487+-0.4866        ? might be 1.0413x slower
   int-or-other-max-then-get-by-val                7.2618+-0.0956     ?      7.3325+-0.0859            7.2591+-0.0857        
   int-or-other-min-then-get-by-val                7.3012+-0.0941     ?      7.4177+-0.1100            7.3627+-0.0845        ?
   int-or-other-mod-then-get-by-val                6.0422+-0.0752     !      6.1944+-0.0544            6.1767+-0.0790        ? might be 1.0223x slower
   int-or-other-mul-then-get-by-val                6.5143+-0.0855            6.5069+-0.0866            6.4413+-0.0783          might be 1.0113x faster
   int-or-other-neg-then-get-by-val                8.0419+-0.0889     ?      8.1013+-0.0876            8.0565+-0.1097        ?
   int-or-other-neg-zero-then-get-by-val          36.6347+-0.2937     ?     37.0283+-0.3624           36.6935+-0.3524        ?
   int-or-other-sub-then-get-by-val               10.2278+-0.0931           10.1618+-0.0805     ?     10.2376+-0.1089        ?
   int-or-other-sub                                8.2662+-0.0903            8.1862+-0.0892     ?      8.2597+-0.0886        
   int-overflow-local                             11.7784+-0.1114           11.7768+-0.1269     ?     11.8154+-0.1779        ?
   Int16Array-bubble-sort                         49.1390+-0.1670     ?     49.7268+-0.7294           49.1705+-0.1316        ?
   Int16Array-load-int-mul                         1.9204+-0.0115     ?      1.9229+-0.0105            1.9208+-0.0112        ?
   Int8Array-load                                  4.8205+-0.0545     ?      4.8376+-0.0406            4.7812+-0.0618        
   integer-divide                                 15.4147+-0.1841           15.3208+-0.1190     ?     15.3542+-0.2200        
   integer-modulo                                  1.9946+-0.0155            1.9896+-0.0193            1.9503+-0.0205        ^ definitely 1.0227x faster
   make-indexed-storage                            3.7472+-0.0527            3.7421+-0.0538     ?      3.7687+-0.0243        ?
   method-on-number                               25.6686+-0.4388           25.5012+-0.4515     ?     25.5279+-0.3596        
   negative-zero-divide                            0.3310+-0.0169            0.3310+-0.0174            0.3308+-0.0170        
   negative-zero-modulo                            0.3232+-0.0216     ?      0.3242+-0.0223     ?      0.3257+-0.0235        ?
   negative-zero-negate                            0.3115+-0.0215            0.3095+-0.0224     ?      0.3106+-0.0217        
   nested-function-parsing-random                383.2892+-12.9495    ?    388.7289+-13.4648         381.0032+-13.2147       
   nested-function-parsing                        47.8588+-0.9464           47.5097+-1.0296     ?     47.8813+-1.0327        ?
   new-array-buffer-dead                           3.6445+-0.0118     ?      3.6551+-0.0184     ?      3.6572+-0.0191        ?
   new-array-buffer-push                          10.1421+-0.1879           10.1272+-0.1281     ?     10.2785+-0.1782        ? might be 1.0134x slower
   new-array-dead                                 28.3738+-0.1000     ?     28.4151+-0.1079           28.2972+-0.0763        
   new-array-push                                  6.7753+-0.0950     ?      6.8627+-0.0783            6.8513+-0.0593        ? might be 1.0112x slower
   number-test                                     4.3587+-0.0647            4.3509+-0.0691            4.3288+-0.0561        
   object-closure-call                            11.2263+-2.0129     ?     11.2572+-2.0156     ?     12.2579+-1.9022        ? might be 1.0919x slower
   object-test                                     4.8034+-0.0557            4.7623+-0.0596     !      4.9700+-0.0680        ! definitely 1.0347x slower
   poly-stricteq                                  92.3890+-0.7109           91.9303+-0.1186     ?     92.1627+-0.2971        
   polymorphic-structure                          20.9760+-0.2089           20.7694+-0.0732     ?     20.8229+-0.0292        
   polyvariant-monomorphic-get-by-id              12.5252+-0.0787     ?     12.5837+-0.1104           12.4897+-0.0691        
   rare-osr-exit-on-local                         20.0501+-0.1181           20.0330+-0.1170     ?     20.0477+-0.0897        
   register-pressure-from-osr                     31.2491+-0.0690     ?     31.3009+-0.0977           31.2648+-0.0794        ?
   simple-activation-demo                         34.3182+-0.1302           34.3074+-0.1367     ?     34.8127+-0.6267        ? might be 1.0144x slower
   slow-array-profile-convergence                  3.8953+-0.0220            3.8472+-0.0379     ?      3.8734+-0.0254        
   slow-convergence                                3.4199+-0.0146            3.4190+-0.0112     ?      3.4282+-0.0180        ?
   sparse-conditional                              1.3145+-0.0198     ?      1.3203+-0.0199            1.3168+-0.0198        ?
   splice-to-remove                               49.3856+-0.2152     ?     49.7578+-0.2192     ?     50.2562+-0.4271        ! definitely 1.0176x slower
   string-concat-object                            2.7073+-0.0474     ?      2.7408+-0.0640            2.7345+-0.0692        ? might be 1.0101x slower
   string-concat-pair-object                       2.6253+-0.0304            2.6224+-0.0178     ?      2.6408+-0.0181        ?
   string-concat-pair-simple                      16.9193+-0.2776     ?     16.9423+-0.3100     ?     16.9739+-0.2893        ?
   string-concat-simple                           17.0804+-0.2209     ?     17.1559+-0.2648           17.0165+-0.3188        
   string-cons-repeat                             10.1501+-0.0380     ?     10.1518+-0.0378           10.1279+-0.0233        
   string-cons-tower                              11.1030+-0.3098           10.8226+-0.0358           10.8215+-0.0255          might be 1.0260x faster
   string-equality                               108.1959+-0.7545     ?    110.1222+-1.7021     ^    106.1553+-1.7732          might be 1.0192x faster
   string-hash                                     2.5515+-0.0086            2.5511+-0.0107            2.5492+-0.0096        
   string-repeat-arith                            44.2915+-0.1649     !     46.0081+-0.2585     ^     44.3517+-0.1951        ?
   string-sub                                     89.5064+-1.6261           89.3004+-0.7361     ?     89.4571+-1.7414        
   string-test                                     4.1879+-0.0463     ?      4.2558+-0.0497            4.2224+-0.0266        ?
   structure-hoist-over-transitions                3.1683+-0.0266     ?      3.1691+-0.0259     ?      3.1735+-0.0279        ?
   tear-off-arguments-simple                       1.7553+-0.0097            1.7539+-0.0088            1.7458+-0.0076        
   tear-off-arguments                              3.1986+-0.0204            3.1951+-0.0144            3.1882+-0.0065        
   temporal-structure                             20.9758+-0.0965     ?     21.0721+-0.1892           20.9621+-0.0826        
   to-int32-boolean                               23.1208+-0.0707     ?     23.1911+-0.1242     ?     23.2363+-0.0835        ?
   undefined-test                                  4.4558+-0.0706     ?      4.4805+-0.0656            4.4748+-0.0618        ?

   <arithmetic>                                        ERROR                     ERROR                     ERROR             
   <geometric> *                                       ERROR                     ERROR                     ERROR             
   <harmonic>                                          ERROR                     ERROR                     ERROR             

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
All benchmarks:
   <arithmetic>                                        ERROR                     ERROR                     ERROR             
   <geometric>                                         ERROR                     ERROR                     ERROR             
   <harmonic>                                          ERROR                     ERROR                     ERROR             

                                                        Old                    TipOfTree                NoPutResult              NoPutResult v. Old    
Geomean of preferred means:
   <scaled-result>                                     ERROR                     ERROR                     ERROR
Comment 4 Filip Pizlo 2013-05-31 00:48:05 PDT
Looks like I made all of the things crash.
Comment 5 Filip Pizlo 2013-05-31 00:49:18 PDT
Created attachment 203418 [details]
still broken but getting there

Still causing test crashes.
Comment 6 Filip Pizlo 2013-05-31 14:17:56 PDT
Created attachment 203467 [details]
the patch

Fixed the crashes.
Comment 7 Gavin Barraclough 2013-05-31 14:35:41 PDT
Comment on attachment 203467 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=203467&action=review

> Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:89
> +        void* jumpTarget = callLinkInfo.callReturnLocation.executableAddress();

Do call varargs have a call link info?
Comment 8 Filip Pizlo 2013-05-31 14:36:50 PDT
(In reply to comment #7)
> (From update of attachment 203467 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=203467&action=review
> 
> > Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:89
> > +        void* jumpTarget = callLinkInfo.callReturnLocation.executableAddress();
> 
> Do call varargs have a call link info?

I just checked, and it totally does.  So we're fine here.
Comment 9 Filip Pizlo 2013-05-31 14:38:12 PDT
Landed in http://trac.webkit.org/changeset/151038