Hi, this patch fixes register allocation issue in spec2006 lbm benchmark improving it by about 13%.
Bootstrapped/regtested x86_64-linux, will commit it soon. Honza * x86-tune-costs.h (generic_cost): Increase cost of integer load to match other memory operations. diff --git a/gcc/config/i386/x86-tune-costs.h b/gcc/config/i386/x86-tune-costs.h index eff7f7f6bbf..4f1795ad8d3 100644 --- a/gcc/config/i386/x86-tune-costs.h +++ b/gcc/config/i386/x86-tune-costs.h @@ -2259,8 +2260,8 @@ struct processor_costs generic_cost = { /* All move costs are relative to integer->integer move times 2 and thus they are latency*2. */ - 4, /* cost for loading QImode using movzbl */ - {4, 4, 4}, /* cost of loading integer registers + 6, /* cost for loading QImode using movzbl */ + {6, 6, 6}, /* cost of loading integer registers in QImode, HImode and SImode. Relative to reg-reg move (2). */ {6, 6, 6}, /* cost of storing integer registers */