-
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: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#51278}
66ff72a7