• fedor's avatar
    binary-operator-reducer: reduce mul+div(shift) · 461e5b49
    fedor authored
    Reduction Input:
    
        ChangeInt32ToFloat64=>          TruncateFloat64ToInt32
                             Float64Mul=>
        ChangeInt32ToFloat64=>          Float64Div=>TruncateFloat64ToInt32
    
    Output:
    
             =>  TruncateInt64ToInt32
    Int64Mul
             =>  Int64Shr => TruncateInt64ToInt32
    
    Test code:
    
        function mul(a, b) {
          var l = a & 0x3ffffff;
          var h = b & 0x3ffffff;
          var m = l * h;
    
          var rl = m & 0x3ffffff;
          var rh = (m / 0x4000000) | 0;
    
          return rl | rh;
        }
    
        mul(1, 2);
        var a0 = mul(0x3ffffff, 0x3ffffff);
        mul(0x0, 0x0);
        %OptimizeFunctionOnNextCall(mul);
        var a1 = mul(0x3ffffff, 0x3ffffff);
    
        print(a0 + ' == ' + a1);
    
    BUG=
    R=mstarzinger@chromium.org
    
    Review URL: https://codereview.chromium.org/1350223006
    
    Cr-Commit-Position: refs/heads/master@{#31899}
    461e5b49
Name
Last commit
Last update
..
blink_tests Loading commit data...
cfi Loading commit data...
gcmole Loading commit data...
generate_shim_headers Loading commit data...
gyp Loading commit data...
luci-go Loading commit data...
ninja Loading commit data...
oom_dump Loading commit data...
perf_tests Loading commit data...
profviz Loading commit data...
release Loading commit data...
sanitizers Loading commit data...
sodium Loading commit data...
testrunner Loading commit data...
unittests Loading commit data...
v8.xcodeproj Loading commit data...
vim Loading commit data...
visual_studio Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
SourceMap.js Loading commit data...
android-build.sh Loading commit data...
android-ll-prof.sh Loading commit data...
android-run.py Loading commit data...
android-sync.sh Loading commit data...
bash-completion.sh Loading commit data...
check-inline-includes.sh Loading commit data...
check-static-initializers.sh Loading commit data...
check-unused-bailouts.sh Loading commit data...
codemap.js Loading commit data...
compare-table-gen.js Loading commit data...
concatenate-files.py Loading commit data...
consarray.js Loading commit data...
cpu.sh Loading commit data...
cross_build_gcc.sh Loading commit data...
csvparser.js Loading commit data...
detect-builtins.js Loading commit data...
disasm.py Loading commit data...
draw_instruction_graph.sh Loading commit data...
eval_gc_nvp.py Loading commit data...
external-reference-check.py Loading commit data...
find-commit-for-patch.py Loading commit data...
find_depot_tools.py Loading commit data...
freebsd-tick-processor Loading commit data...
fuzz-harness.sh Loading commit data...
gc-nvp-to-csv.py Loading commit data...
gc-nvp-trace-processor.py Loading commit data...
gc_nvp_common.py Loading commit data...
gdb-v8-support.py Loading commit data...
gdbinit Loading commit data...
gen-postmortem-metadata.py Loading commit data...
generate-builtins-tests.py Loading commit data...
generate-ten-powers.scm Loading commit data...
grokdump.py Loading commit data...
isolate_driver.py Loading commit data...
js2c.py Loading commit data...
jsmin.py Loading commit data...
linux-tick-processor Loading commit data...
ll_prof.py Loading commit data...
logreader.js Loading commit data...
mac-nm Loading commit data...
mac-tick-processor Loading commit data...
mingw-generate-makefiles.sh Loading commit data...
nacl-run.py Loading commit data...
parser-shell.cc Loading commit data...
parser-shell.gyp Loading commit data...
perf-to-html.py Loading commit data...
plot-timer-events Loading commit data...
presubmit.py Loading commit data...
process-heap-prof.py Loading commit data...
profile.js Loading commit data...
profile_view.js Loading commit data...
run-deopt-fuzzer.py Loading commit data...
run-llprof.sh Loading commit data...
run-tests.py Loading commit data...
run-valgrind.py Loading commit data...
run.py Loading commit data...
run_perf.py Loading commit data...
shell-utils.h Loading commit data...
splaytree.js Loading commit data...
stats-viewer.py Loading commit data...
test-server.py Loading commit data...
tick-processor.html Loading commit data...
tickprocessor-driver.js Loading commit data...
tickprocessor.js Loading commit data...
trace-maps-processor.py Loading commit data...
try_perf.py Loading commit data...
v8-info.sh Loading commit data...
v8-rolls.sh Loading commit data...
v8heapconst.py Loading commit data...
v8heapconst.py.tmpl Loading commit data...
verify_source_deps.py Loading commit data...
whitespace.txt Loading commit data...
windows-tick-processor.bat Loading commit data...