This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi, This patch fixes invalid profile count information in vectorization peeling. Current implementation is a bit confusing for me since it tries to compute an overall probability based on scaling probability and change of estimated niters. This patch does it in two steps. Firstly it does the scaling, then it adjusts to new estimated niters by simply adjusting loop's latch count information; scaling the loop's count information by the proportion new_estimated_niters/old_estimate_niters. Of course we have to adjust loop latch's count information back after scaling. Bootstrap and test on x86_64 and AArch64. gcc.dg/vect/pr79347.c is fixed for both PR82965 and PR83991. Is this OK? Thanks, bin 2018-01-30 Bin Cheng <bin.cheng@arm.com> PR tree-optimization/82965 PR tree-optimization/83991 * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile information if the loop was predicted to iterate too many times.
Attachment:
pr82965-20180130.txt
Description: pr82965-20180130.txt
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |