Switch conversion: support any ax + b transformation (PR tree-optimization/84436).
commit570c6c2ee57d1250468e5dde121d196f730732e1
authormarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 24 Oct 2018 13:52:21 +0000 (24 13:52 +0000)
committermarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 24 Oct 2018 13:52:21 +0000 (24 13:52 +0000)
tree7fa5d72f6fda68e83fd4cf40a560a0509e1ef498
parent09c171677d8dc5a1d298c3cb87fd4a3ee85594d1
Switch conversion: support any ax + b transformation (PR tree-optimization/84436).

2018-10-24  Martin Liska  <mliska@suse.cz>

PR tree-optimization/84436
* tree-switch-conversion.c (switch_conversion::contains_same_values_p):
Remove.
(switch_conversion::contains_linear_function_p): New.
(switch_conversion::build_one_array): Support linear
transformation on input.
* tree-switch-conversion.h (struct switch_conversion): Add
contains_linear_function_p declaration.
2018-10-24  Martin Liska  <mliska@suse.cz>

PR tree-optimization/84436
* gcc.dg/tree-ssa/pr84436-1.c: New test.
* gcc.dg/tree-ssa/pr84436-2.c: New test.
* gcc.dg/tree-ssa/pr84436-3.c: New test.
* gcc.dg/tree-ssa/pr84436-4.c: New test.
* gcc.dg/tree-ssa/pr84436-5.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265463 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr84436-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr84436-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr84436-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr84436-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr84436-5.c [new file with mode: 0644]
gcc/tree-switch-conversion.c
gcc/tree-switch-conversion.h