v8/test/cctest/compiler
Mike Stanton 8f489e73b2 [turbofan] Masking/poisoning in codegen (optimized code, x64)
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.

Bug: chromium:798964
Change-Id: Ie51fdbde578fc289dff029794f3cfe8eaf33e1ef
Reviewed-on: https://chromium-review.googlesource.com/901625
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51272}
2018-02-13 15:19:17 +00:00
..
c-signature.h [test] Fix usages of std::array initializer lists. 2018-01-16 17:14:29 +00:00
call-tester.h Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
code-assembler-tester.h Reland "[arm64] Preparation for padding of arguments" 2017-12-20 13:50:36 +00:00
codegen-tester.cc Enable clang's -Wunreachable-code warning. 2017-12-04 13:09:25 +00:00
codegen-tester.h Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
function-tester.cc [compile] Remove AST numbering 2018-01-24 17:15:55 +00:00
function-tester.h [cleanup] Add templatized FunctionTester::CallChecked(...) helpers 2017-07-18 14:25:21 +00:00
graph-builder-tester.h Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-basic-block-profiler.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-branch-combine.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-code-assembler.cc [csa] fix variable merge for switch default label 2017-09-26 12:31:29 +00:00
test-code-generator.cc [turbofan] Masking/poisoning in codegen (optimized code, x64) 2018-02-13 15:19:17 +00:00
test-gap-resolver.cc Add bound checking to RegisterConfiguration accessors function. 2017-08-18 09:24:31 +00:00
test-graph-visualizer.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-instruction.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-js-constant-cache.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-js-context-specialization.cc [compiler][modules] Constant-fold loads of module cells. 2017-05-04 11:09:19 +00:00
test-js-typed-lowering.cc [turbofan] Introduce NumberToString operator. 2018-01-17 06:30:08 +00:00
test-jump-threading.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-linkage.cc Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-loop-analysis.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-machine-operator-reducer.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-multiple-return.cc [x64][turbofan] Pass the slot index for the peek instruction by operand 2018-01-15 15:22:27 +00:00
test-node.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-operator.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-representation-change.cc [turbofan] Add feedback to SpeculativeToNumber 2018-02-08 18:02:04 +00:00
test-run-bytecode-graph-builder.cc [Compiler] Remove isolate from CompilationInfo. 2017-11-15 15:40:55 +00:00
test-run-calls-to-external-references.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-run-deopt.cc [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
test-run-intrinsics.cc [cleanup] Limit Token usage to Parser, AST, BytecodeGenerator 2017-10-25 18:15:26 +00:00
test-run-jsbranches.cc [turbofan] Remove for-in support from the AstGraphBuilder. 2017-02-08 06:41:42 +00:00
test-run-jscalls.cc
test-run-jsexceptions.cc [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
test-run-jsobjects.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-run-jsops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-run-load-store.cc [turbofan] Remove CheckedLoad operation 2018-01-02 08:47:01 +00:00
test-run-machops.cc [assembler] Make {RelocInfo} independent of the Isolate. 2018-02-13 14:13:43 +00:00
test-run-native-calls.cc Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-run-retpoline.cc Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-run-stackcheck.cc [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
test-run-stubs.cc [Compiler] Remove isolate from CompilationInfo. 2017-11-15 15:40:55 +00:00
test-run-tail-calls.cc Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-run-unwinding-info.cc [turbofan] Replace uninitialized JSCall nodes with SOFT deopt. 2017-06-27 03:57:13 +00:00
test-run-variables.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-run-wasm-machops.cc [assembler] Make {RelocInfo} independent of the Isolate. 2018-02-13 14:13:43 +00:00
value-helper.cc Reland "[test] Avoid unnecessary std::vector allocations" 2017-10-19 08:47:31 +00:00
value-helper.h Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00