• Junliang Yan's avatar
    Reland "PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64)" · 66ff72a7
    Junliang Yan authored
    This is a reland of cee362af.
    
    Original change's description:
    > PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64)
    > 
    > Port 8f489e73
    > 
    > Original Commit Message:
    > 
    >     This introduces masking of loads with speculation bit during code generation.
    >     At the moment, this is done only for x64 optimized code, under the
    >     --branch-load-poisoning flag.
    > 
    >     Overview of changes:
    >     - new register configuration configuration with one register reserved for
    >       the speculation poison/mask (kSpeculationPoisonRegister).
    >     - in codegen, we introduce an update to the poison register at the starts
    >       of all successors of branches (and deopts) that are marked as safety
    >       branches (deopts).
    >     - in memory optimizer, we lower all field and element loads to PoisonedLoads.
    >     - poisoned loads are then masked in codegen with the poison register.
    >       * only integer loads are masked at the moment.
    > 
    > R=mvstanton@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
    > BUG=
    > LOG=N
    > 
    > Change-Id: I7decc16bbadf87a8c8b178278eb79a9b783f79e1
    > Reviewed-on: https://chromium-review.googlesource.com/916744
    > Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
    > Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    > Cr-Commit-Position: refs/heads/master@{#51275}
    
    Change-Id: Id22416487b05bef06c4cfdae35811a22f21cd0a0
    Reviewed-on: https://chromium-review.googlesource.com/916865Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#51278}
    66ff72a7
macro-assembler-ppc.cc 90 KB