https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69564

--- Comment #27 from Richard Biener <rguenth at gcc dot gnu.org> ---
So, dealII slowdown is confirmed.

447.dealII      11440        252       45.4 S   11440        255       44.8 S
447.dealII      11440        254       45.1 S   11440        256       44.6 S
447.dealII      11440        253       45.2 *   11440        256       44.7 *

it's probably similarly artificial than the slowdown in this PR and thus it
might be acceptable given artificially swapping all exit comparisons isn't
something that should be done.

When profiling the difference it looks like the culprit is (are)

  6.55%  dealII_base.amd  libstdc++.so.6.0.22             [.]
std::_Rb_tree_increment(std::_Rb_tree_node_base const*)
  6.53%  dealII_peak.amd  dealII_peak.amd64-m64-gcc42-nn  [.]
MappingQ1<3>::compute_fill(TriaIterator<3, DoFCellAccessor<3> > const&,
unsigned int, QProjector<3>::D
  6.34%  dealII_peak.amd  libstdc++.so.6.0.22             [.]
std::_Rb_tree_increment(std::_Rb_tree_node_base const*)
  5.95%  dealII_base.amd  dealII_base.amd64-m64-gcc42-nn  [.]
MappingQ1<3>::compute_fill(TriaIterator<3, DoFCellAccessor<3> > const&,
unsigned int, QProjector<3>::D
...
  1.61%  dealII_peak.amd  dealII_peak.amd64-m64-gcc42-nn  [.]
SparsityPattern::operator()(unsigned int, unsigned int) const
  1.60%  dealII_peak.amd  dealII_peak.amd64-m64-gcc42-nn  [.]
MappingQ<3>::transform_covariant(Tensor<1, 3>*, Tensor<1, 3>*, Tensor<1, 3>
const*, Mapping<3>::Intern
  1.60%  dealII_base.amd  dealII_base.amd64-m64-gcc42-nn  [.]
SparsityPattern::operator()(unsigned int, unsigned int) const
  1.56%  dealII_base.amd  dealII_base.amd64-m64-gcc42-nn  [.]
MappingQ<3>::transform_covariant(Tensor<1, 3>*, Tensor<1, 3>*, Tensor<1, 3>
const*, Mapping<3>::Intern

but there isn't any assembly difference for MappingQ1<3>::compute_fill ...

Reply via email to