combine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 24 Nov 2015 06:43:20 +0000 (07:43 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 24 Nov 2015 06:43:20 +0000 (07:43 +0100)
commit7d906d07ed736abc854db2e770d5e5e07730581c
treee8e7486d62311cdca103bda26c258d6570103af2
parentd2c9e8ed7ae8cde8e64405eb130c9d7d99c68856
combine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)

Some users of is_parallel_of_n_reg_sets disregard the clobbers in a
parallel after it has returned "yes, this is a parallel of N sets and
maybe some clobbers".  But combine uses a clobber of const0_rtx to
indicate substitution failure, so this leads to disaster.

Fix this by checking for such special clobbers in is_parallel_of_n_reg_sets.

PR rtl-optimization/68381
* combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
is poisoned.

From-SVN: r230786
gcc/ChangeLog
gcc/combine.c