https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66890
--- Comment #6 from Andrew Pinski ---
Really for this loop, I would have assume to be split into 3 different loops
like:
volatile int count;
int main()
{
int i;
for (i = 0; i < 999; i++) {
if (i == 999)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66890
Andrew Pinski changed:
What|Removed |Added
Keywords||missed-optimization
Status|U
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66890
--- Comment #4 from Andi Kleen ---
Created attachment 36008
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36008&action=edit
Updated patch with documentation and param
I updated the patch with proper documentation and a param for the cut o
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66890
--- Comment #3 from Andi Kleen ---
I suspect the patch may be too simple because it could get stuck in unlikely,
but high frequency edges in the cold area. Perhaps need to adapt more of the
code of the non partitioning reordering
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66890
--- Comment #2 from Andi Kleen ---
Created attachment 35993
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35993&action=edit
Potential patch
This patch fixes the problem for my simple test case. It adds a fall back path
to the partition c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66890
--- Comment #1 from Andi Kleen ---
The problem seems to be that
bb-reorder.c:find_rarely_executed_basic_blocks_and_crossing_edges
returns no edges without profile feedback, which prevents generation of a
section split note.