Bug 49946 - Thread jumps confuse loop unrolling
Summary: Thread jumps confuse loop unrolling
Status: UNCONFIRMED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-02 14:40 UTC by Igor Zamyatin
Modified: 2011-08-08 11:35 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
test for loop unrolling (144 bytes, application/octet-stream)
2011-08-02 14:40 UTC, Igor Zamyatin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Igor Zamyatin 2011-08-02 14:40:57 UTC
Created attachment 24892 [details]
test for loop unrolling

I see exactly the case that was mentioned here - http://gcc.gnu.org/ml/gcc/2010-01/msg00057.html:

exp_gcc/gcc -c -O3 test_unroll.c -fno-tree-dominator-opts performs complete unroll and

exp_gcc/gcc -c -O3 test_unroll.c does not do the unroll
Comment 1 Igor Zamyatin 2011-08-03 15:26:57 UTC
Used compiler:

Target: x86_64-unknown-linux-gnu
Thread model: posix
gcc version 4.7.0 20110802 (experimental) (GCC)
Comment 2 Igor Zamyatin 2011-08-08 11:35:32 UTC
cunrolli does not handle the loop in the testcase because of the condition "ul == UL_NO_GROWTH && unr_insns > ninsns" in try_unroll_loop_completely. Meanwhile may_increase_size is true in tree_unroll_loops_completely.