• 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...
build Loading commit data...
docs Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...