• Junliang Yan's avatar
    PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, arm) · 11805b13
    Junliang Yan authored
    Port 25799516
    
    Original Commit Message:
    
        This introduces masking of loads with speculation bit during code generation.
        At the moment, this is done only under the
        --branch-load-poisoning flag, and this CL enlarges the set of supported
        platforms from {x64} to {x64, arm}.
    
        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=tebbi@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=
    LOG=N
    
    Change-Id: Idda9bf06133d8999290cda5bcf6333c064b3e6dc
    Reviewed-on: https://chromium-review.googlesource.com/927163
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#51528}
    11805b13
macro-assembler-s390.cc 124 KB