tree-optimization/92819 restrict new vector CTOR canonicalization
authorRichard Biener <rguenther@suse.de>
Tue, 4 Feb 2020 09:03:03 +0000 (10:03 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 4 Feb 2020 09:07:47 +0000 (10:07 +0100)
commitfc98d038618b792c413212759057b2125507d3ef
tree5a058136f04c3653b1fa670f6650cd815995aa8d
parent9a4d502421c7469369d863226f03d197bfa2cb13
tree-optimization/92819 restrict new vector CTOR canonicalization

The PR shows that code generation ends up pessimized by the new
canonicalization rules that end up nailing do-not-care elements
to specific values making it hard to generate good code later.

The temporary solution is to avoid this for the cases we also
obviously know the canonicalization will create more GIMPLE stmts than
before.

2020-02-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/92819
* tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
generating more stmts than before.

* gcc.target/i386/pr92819.c: New testcase.
* gcc.target/i386/pr92803.c: Adjust.
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr92803.c
gcc/testsuite/gcc.target/i386/pr92819.c [new file with mode: 0644]
gcc/tree-ssa-forwprop.c