phate/jlm

NodePushOut causes 10 failed tests in llvm-test-suite

Opened this issue · 3 comments

The NodePushOut optimization was improved in association with addressing #632 and the optimization in isolation now passes the llvm-test-suite.

However, when including it in the standard 'opt.cmake' that is used by the CI then 10 tests fails:

set(OPTFLAGS "${OPTFLAGS} -JInvariantValueRedirection -JNodeReduction -JDeadNodeElimination -JThetaGammaInversion -JInvariantValueRedirection -JDeadNodeElimination -JNodePushOut -JInvariantValueRedirection -JDeadNodeElimination -JNodeReduction -JCommonNodeElimination -JDeadNodeElimination -JNodePullIn -JInvariantValueRedirection -JDeadNodeElimination -JLoopUnrolling -JInvariantValueRedirection")

Failed Tests (10):
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test
test-suite :: MultiSource/Applications/lua/lua.test
test-suite :: MultiSource/Applications/sqlite3/sqlite3.test
test-suite :: MultiSource/Benchmarks/FreeBench/analyzer/analyzer.test
test-suite :: MultiSource/Benchmarks/MallocBench/espresso/espresso.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-20020619-1.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr37882.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr40747.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr57568.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr84339.test

Enabling fewer optimizations, leads to more failed tests:

set(OPTFLAGS "${OPTFLAGS} -JInvariantValueRedirection -JNodeReduction -JDeadNodeElimination -JThetaGammaInversion -JInvariantValueRedirection -JDeadNodeElimination -JNodePushOut -JInvariantValueRedirection -JDeadNodeElimination -JNodeReduction -JCommonNodeElimination ")

Failed Tests (14):
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test
test-suite :: MultiSource/Applications/lua/lua.test
test-suite :: MultiSource/Applications/sqlite3/sqlite3.test
test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/CoMD/CoMD.test
test-suite :: MultiSource/Benchmarks/FreeBench/analyzer/analyzer.test
test-suite :: MultiSource/Benchmarks/MallocBench/espresso/espresso.test
test-suite :: MultiSource/Benchmarks/MiBench/automotive-bitcount/automotive-bitcount.test
test-suite :: MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-20020619-1.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-941014-1.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr37882.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr40747.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr57568.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr84339.test

set(OPTFLAGS "${OPTFLAGS} -JNodePushOut -JInvariantValueRedirection -JDeadNodeElimination -JNodeReduction -JCommonNodeElimination")

Failed Tests (10):
test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test
test-suite :: MultiSource/Applications/lua/lua.test
test-suite :: MultiSource/Applications/sqlite3/sqlite3.test
test-suite :: MultiSource/Benchmarks/FreeBench/analyzer/analyzer.test
test-suite :: MultiSource/Benchmarks/MallocBench/espresso/espresso.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-20020619-1.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr37882.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr40747.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr57568.test
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr84339.test

-JNodePushOut -JCommonNodeElimination cause extreme compilation time.
All tests passes though.

time jlc -JNodePushOut -JCommonNodeElimination usr/llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/20040705-1.c
real 33m18.484s
user 33m9.394s
sys 0m1.688s

time jlc -JCommonNodeElimination usr/llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/20040705-1.c
real 0m6.207s
user 0m6.057s
sys 0m0.066s

time jlc -JNodePushOut usr/llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/20040705-1.c
real 0m20.217s
user 0m19.898s
sys 0m0.245s