a55fdb1e7c
Reason for revert: Octane/Mandreel aborts with an exception now: TypeError: __FUNCTION_TABLE__[(r2 >> 2)] is not a function Original issue's description: > [turbofan] Insert dummy values when changing from None type. > > Currently we choose the MachineRepresentation::kNone representation for > values of Type::None, and when converting values from the kNone representation > we use "impossible" conversions that will crash at runtime. This > assumes that the impossible conversions should never be hit (the only > way to produce the impossible values is to perform an always-failing > runtime check on a value, such as Smi-checking a string). Note that > this assumes that the runtime check is executed before the impossible > convesrion. > > Introducing BitwiseOr type feedback broke this in two ways: > > - we always pick Word32 representation for bitwise-or, so the > impossible conversion does not trigger (it only triggers with > None representation), and we could end up with unsupported > conversions from Word32. > > - even if we inserted impossible conversions, they are pure conversions. > Since untagging, bitwise-or operations are also pure, we could hoist > all these before the smi check of the inputs and we could hit the > impossible conversions before we get to the smi check. > > This CL addresses this by just providing dummy values for conversions > from the Type::None type. It also removes the impossible-to-* conversions. > > BUG=chromium:638132 > > Committed: https://crrev.com/c83b21ab755f1420b6da85b3ff43d7e96ead9bbe > Cr-Commit-Position: refs/heads/master@{#38883} TBR=mstarzinger@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:638132 Review-Url: https://codereview.chromium.org/2280613002 Cr-Commit-Position: refs/heads/master@{#38893} |
||
---|---|---|
.. | ||
c-signature.h | ||
call-tester.h | ||
code-assembler-tester.h | ||
codegen-tester.cc | ||
codegen-tester.h | ||
function-tester.h | ||
graph-builder-tester.h | ||
test-basic-block-profiler.cc | ||
test-branch-combine.cc | ||
test-code-assembler.cc | ||
test-gap-resolver.cc | ||
test-graph-visualizer.cc | ||
test-instruction.cc | ||
test-js-constant-cache.cc | ||
test-js-context-specialization.cc | ||
test-js-typed-lowering.cc | ||
test-jump-threading.cc | ||
test-linkage.cc | ||
test-loop-analysis.cc | ||
test-loop-assignment-analysis.cc | ||
test-machine-operator-reducer.cc | ||
test-multiple-return.cc | ||
test-node.cc | ||
test-operator.cc | ||
test-osr.cc | ||
test-representation-change.cc | ||
test-run-bytecode-graph-builder.cc | ||
test-run-calls-to-external-references.cc | ||
test-run-deopt.cc | ||
test-run-inlining.cc | ||
test-run-intrinsics.cc | ||
test-run-jsbranches.cc | ||
test-run-jscalls.cc | ||
test-run-jsexceptions.cc | ||
test-run-jsobjects.cc | ||
test-run-jsops.cc | ||
test-run-load-store.cc | ||
test-run-machops.cc | ||
test-run-native-calls.cc | ||
test-run-stackcheck.cc | ||
test-run-stubs.cc | ||
test-run-unwinding-info.cc | ||
test-run-variables.cc | ||
test-run-wasm-machops.cc | ||
test-simplified-lowering.cc | ||
value-helper.h |