[Bug tree-optimization/79830] GCC generates counterproductive code surrounding very simple loops (improvement request)

2017-05-10 Thread amker at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79830 --- Comment #6 from amker at gcc dot gnu.org --- BTW, I don't see problem in iv_elimination for the second loop, the .L7 one. It eliminates three IVs into one IV. Well, the bloated loop header could be further simplified, but it's another issue

[Bug tree-optimization/79830] GCC generates counterproductive code surrounding very simple loops (improvement request)

2017-05-10 Thread amker at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79830 --- Comment #5 from amker at gcc dot gnu.org --- (In reply to Richard Biener from comment #1) > It is induction variable optimization (-fivopts) that re-writes the main > induction variable. We have > > Original cost 17 (complexity 2) > > Final

[Bug tree-optimization/79830] GCC generates counterproductive code surrounding very simple loops (improvement request)

2017-03-04 Thread kobalicek.petr at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79830 --- Comment #4 from Petr --- I think the test-case can be simplified to the following code. It still suffers from the same issues as mentioned above. #include #if defined(_MSC_VER) # include #else # include #endif void transform(double* dst

[Bug tree-optimization/79830] GCC generates counterproductive code surrounding very simple loops (improvement request)

2017-03-03 Thread kobalicek.petr at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79830 --- Comment #3 from Petr --- Sorry for misunderstanding, I really read initially that you replaced the exit condition in the sample code :)

[Bug tree-optimization/79830] GCC generates counterproductive code surrounding very simple loops (improvement request)

2017-03-03 Thread kobalicek.petr at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79830 --- Comment #2 from Petr --- I'm not sure I follow with the exit test. I mean the code should be correct as each point has x|y coord, which is two doubles, so length 8 means 16 doubles (I converted from my production code into a simpler form that

[Bug tree-optimization/79830] GCC generates counterproductive code surrounding very simple loops (improvement request)

2017-03-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79830 Richard Biener changed: What|Removed |Added Keywords||missed-optimization Status|