• zhengxing.li's avatar
    X87: Disable the test-run-profiler/Inlining test case for X87. · e906c9ca
    zhengxing.li authored
      The CL #34376 (https://codereview.chromium.org/1740073002 ) added the Inlining test case and X87 failed at it.
    
      The reason is:
      For TEST(Inlining) test case, when level3 function is inlined, the key optimized crankshaft code will like below code normally:
      ............
      0x21d53b7f    63  ff571b         call [edi+0x1b]           <-----------  should call action() here
                        ;;; <@32,#27> lazy-bailout
                        ;;; <@36,#31> ---- B3 ----
                        ;;; <@37,#31> gap
      0x21d53b82    66  89c1           mov ecx,eax               <-----------  Both the inlined function’s pc_offset from DeoptimizationInputData and the pc_offset from sample stack points to here, the same pc address
      ............
    
      So the TEST(Inlining) test case can get the expected inlined code entry and pass..
    
      In fact, the exact code sequence should like the following in crankshaft:
      ............
      0x21d53b7f    63  ff571b         call [edi+0x1b]                 <-----------  should call action()
      0xxxxxxxxx    xxxx               GenerateBodyInstructionPost()   <-----------  the pc_offset from sample stack points to here
                        ;;; <@32,#27> lazy-bailout
                        ;;; <@36,#31> ---- B3 ----
                        ;;; <@37,#31> gap
      0x21d53b82    66  89c1           mov ecx,eax                     <-----------  the inlined function’s pc_offset from DeoptimizationInputData points to here.
      ............
    
      For most of architectures in V8, the GenerateBodyInstructionPost()  is empty, so both the inlined function’s pc_offset from DeoptimizationInputData and the pc_offset from sample stack points to  the same pc address .
    
      But if some architecture has special requirement and need to put some instruction after call instruction, the GenerateBodyInstructionPost() will do that work and generate instructions,  the inlined function’s pc_offset from DeoptimizationInputData and The pc_offset  from sample stack will points to  the different  pc address, the TEST(Inlining) test case can’t get the expected inlined code entry and failed.
    
      For all current architectures in v8, only x87 have this requirement.
    
      After communicated with Alexei Filippov <alph@chromium.org> in E-mail, we decided to disable the Inlining test case for x87 now and try to find a solution.
    
    BUG=
    
    Review URL: https://codereview.chromium.org/1766263002
    
    Cr-Commit-Position: refs/heads/master@{#34544}
    e906c9ca
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
fuzzer Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
simdjs Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
ignition.gyp Loading commit data...
ignition.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...