OSDN Git Service

* ChangeLog: Add missing change.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
2             Kirill Yukhin  <kirill.yukhin@intel.com>
3
4         PR target/50155
5         * config/i386/sse.md (VI_AVX2): New.
6         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
7         (*<plusminus_insn><mode>3): Ditto.
8         (<sse2_avx2>_andnot<mode>3): Ditto.
9         (*andnot<mode>3): Fix order of cond operands.
10         Add asserts for correct TARGET_xxx.
11         (*<any_logic:code><mode>3): Ditto.
12
13 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
14
15         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
16         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
17         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
18         regclass argument type to reg_class_t. Change 'max' and 'v' vars
19         and return types to unsigned char. Use reg_class_contents instead
20         of class_contents.
21         (TARGET_CLASS_MAX_NREGS): Define.
22
23 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
24
25         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
26         to make computed_jump_p return true.
27
28 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29
30         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
31         (PICFLAG_FOR_TARGET): Substitute.
32         * aclocal.m4: Regenerate.
33         * configure: Regenerate.
34
35 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
36
37         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
38         after reading in the pch.
39
40 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
41
42         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
43         defined.
44         * configure: Regenerated.
45
46 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
47
48         PR tree-optimization/50133
49         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
50         from stmt instead of some statement around gsi.
51
52         PR middle-end/50141
53         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
54         innerdecl is a VAR_DECL.
55
56 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
57
58         * config/i386/avx2intrin.h: New file.
59         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
60         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
61         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
62         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
63         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
64         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
65         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
66         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
67         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
68         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
69         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
70         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
71         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
72         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
73         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
74         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
75         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
76         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
77         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
78         VOID_FTYPE_PV8SI_V8SI_V8SI,
79         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
80         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
81         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
82         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
83         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
84         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
85         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
86         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
87         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
88         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
89         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
90         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
91         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
92         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
93         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
94         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
95         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
96         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
97         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
98         V4DI_FTYPE_V4DI_INT_CONVERT,
99         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
100         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
101         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
102         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
103         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
104         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
105         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
106         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
107         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
108         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
109         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
110         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
111         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
112         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
113         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
114         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
115         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
116         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
117         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
118         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
119         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
120         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
121         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
122         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
123         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
124         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
125         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
126         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
127         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
128         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
129         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
130         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
131         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
132         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
133         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
134         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
135         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
136         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
137         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
138         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
139         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
140         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
141         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
142         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
143         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
144         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
145         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
146         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
147         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
148         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
149         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
150         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
151         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
152         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
153         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
154         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
155         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
156         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
157         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
158         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
159         IX86_BUILTIN_VBROADCASTSS_PS256,
160         IX86_BUILTIN_VBROADCASTSD_PD256,
161         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
162         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
163         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
164         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
165         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
166         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
167         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
168         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
169         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
170         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
171         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
172         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
173         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
174         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
175         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
176         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
177         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
178         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
179         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
180         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
181         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
182         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
183         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
184         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
185         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
186         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
187         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
188         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
189         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
190         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
191         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
192         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
193         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
194         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
195         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
196         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
197         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
198         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
199         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
200         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
201         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
202         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
203         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
204         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
205         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
206         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
207         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
208         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
209         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
210         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
211         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
212         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
213         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
214         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
215         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
216         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
217         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
218         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
219         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
220         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
221         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
222         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
223         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
224         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
225         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
226         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
227         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
228         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
229         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
230         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
231         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
232         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
233         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
234         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
235         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
236         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
237         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
238         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
239         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
240         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
241         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
242         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
243         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
244         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
245         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
246         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
247         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
248         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
249         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
250         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
251         IX86_BUILTIN_VBROADCASTSD_PD256,
252         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
253         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
254         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
255         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
256         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
257         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
258         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
259         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
260         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
261         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
262         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
263         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
264         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
265         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
266         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
267         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
268         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
269         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
270         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
271         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
272         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
273         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
274         IX86_BUILTIN_GATHERDIV8SI.
275         (ix86_preferred_simd_mode): Support AVX2 modes.
276         (ix86_expand_args_builtin): Support AVX2 builtins.
277         (ix86_expand_special_args_builtin): Likewise.
278         (ix86_expand_builtin): Likewise.
279         * config/i386/i386.md (UNSPEC_VPERMSI): New.
280         (UNSPEC_VPERMDF): Likewise.
281         (UNSPEC_VPERMSF): Likewise.
282         (UNSPEC_VPERMDI): Likewise.
283         (UNSPEC_VPERMTI): Likewise.
284         (UNSPEC_GATHER): Likewise.
285         (ssemodesuffix): Extend.
286         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
287         is defined.
288         * config/i386/predicates.md (const1248_operand): New.
289         * config/i386/sse.md (VI1_AVX2): New mode iterator.
290         (VI2_AVX2): Likewise.
291         (VI4_AVX2): Likewise.
292         (VI8_AVX2): Likewise.
293         (VIMAX_AVX2): Likewise.
294         (SSESCALARMODE): Likewise.
295         (VI12_AVX2): Likewise.
296         (VI24_AVX2): Likewise.
297         (VI124_AVX2): Likewise.
298         (VI248_AVX2): Likewise.
299         (VI48_AVX2): Likewise.
300         (VI4SD_AVX2): Likewise.
301         (V48_AVX2): Likewise.
302         (AVX256MODE2P): Likewise.
303         (AVXMODE48P_DI): Likewise.
304         (sse2_avx2): New mode attribute.
305         (ssse3_avx2): Likewise.
306         (sse4_1_avx2): Likewise.
307         (avx_avx2): Likewise.
308         (ssebytemode): Likewise.
309         (AVXTOSSEMODE): Likewise.
310         (AVXMODE48P_DI): Likewise.
311         (gthrfirstp): Likewise.
312         (gthrlastp): Likewise.
313         (lshift): New code_iterator
314         (lshift): New code attribute.
315         (lshift): Likewise.
316         (ssescalarmodesuffix): Update.
317         (sseunpackmode): Likewise.
318         (ssepackmode): Likewise.
319         (avx2_vec_dupv4sf): New insn pattern.
320         (avx2_vec_dupv8sf): Likewise.
321         (avx2_interleave_highv4di): Likewise.
322         (avx2_interleave_lowv4di): Likewise.
323         (avx2_umulv4siv4di3): Likewise
324         (*avx2_umulv4siv4di3): Likewise
325         (avx2_pmaddwd): Likewise.
326         (*avx2_pmaddwd): Likewise.
327         (avx2_lshrqv4di3): Likewise.
328         (avx2_lshlqv4di3): Likewise.
329         (avx2_lshl<mode>3): Likewise.
330         (avx2_<umaxmin:code><mode>3): Likewise.
331         (*avx2_<umaxmin:code><mode>3): Likewise.
332         (avx2_<smaxmin:code><mode>3): Likewise.
333         (*avx2_<smaxmin:code><mode>3): Likewise.
334         (avx2_eq<mode>3): Likewise.
335         (*avx2_eq<mode>3): Likewise.
336         (avx2_gt<mode>3): Likewise.
337         (avx2_interleave_highv32qi): New.
338         (avx2_interleave_lowv32qi): Likewise.
339         (avx2_interleave_highv16hi): Likewise.
340         (avx2_interleave_lowv16hi): Likewise.
341         (avx2_interleave_highv8si): Likewise.
342         (avx2_interleave_lowv8si): Likewise.
343         (avx2_pshufd): Likewise.
344         (avx2_pshufd_1): Likewise.
345         (avx2_pshuflwv3): Likewise.
346         (avx2_pshuflw_1): Likewise.
347         (avx2_pshufhwv3): Likewise.
348         (avx2_pshufhw_1): Likewise.
349         (avx2_uavgv32qi3): Likewise.
350         (*avx2_uavgv32qi3): Likewise.
351         (avx2_uavgv16hi3): Likewise.
352         (*avx2_uavgv16hi3): Likewise.
353         (avx2_pmovmskb): Likewise.
354         (avx2_phaddwv16hi3): Likewise.
355         (avx2_phadddv8si3): Likewise.
356         (avx2_phaddswv16hi3): Likewise.
357         (avx2_phsubwv16hi3): Likewise.
358         (avx2_phsubdv8si3): Likewise.
359         (avx2_phsubswv16hi3): Likewise.
360         (avx2_pmaddubsw256): Likewise.
361         (avx2_umulhrswv16hi3): Likewise.
362         (*avx2_umulhrswv16hi3): Likewise.
363         (avx2_packusdw): Likewise.
364         (avx2_pblendd<mode>): Likewise.
365         (avx2_<code>v16qiv16hi2): Likewise.
366         (avx2_<code>v8qiv8si2): Likewise.
367         (avx2_<code>v8hiv8si2): Likewise.
368         (avx2_<code>v4qiv4di2): Likewise.
369         (avx2_<code>v4hiv4di2): Likewise.
370         (avx2_<code>v4siv4di2): Likewise.
371         (avx2_pbroadcast<mode>): Likewise.
372         (avx2_permvarv8si): Likewise.
373         (avx2_permv4df): Likewise.
374         (avx2_permvarv8sf): Likewise.
375         (avx2_permv4di): Likewise.
376         (avx2_permv2ti): Likewise.
377         (avx2_vec_dupv4df): Likewise.
378         (avx2_vbroadcasti128_<mode>): Likewise.
379         (avx2_vec_set_lo_v4di): Likewise.
380         (avx2_vec_set_hi_v4di): Likewise.
381         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
382         (avx2_extracti128): Likewise.
383         (avx2_inserti128): Likewise.
384         (avx2_ashrvv8si): Likewise.
385         (avx2_ashrvv4si): Likewise.
386         (avx2_<lshift>vv8si): Likewise.
387         (avx2_<lshift>v<mode>): Likewise.
388         (avx2_<lshift>vv2di): Likewise.
389         (avx2_gathersi<mode>): Likewise.
390         (*avx2_gathersi<mode>): Likewise.
391         (avx2_gatherdi<mode>): Likewise.
392         (*avx2_gatherdi<mode>): Likewise.
393         (avx2_gatherdi<mode>256): Likewise.
394         (*avx2_gatherdi<mode>256): Likewise.
395         (<plusminus_insn><mode>3): Use VI mode iterator.
396         (*<plusminus_insn><mode>3): Use VI mode iterator.
397         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
398         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
399         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
400         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
401         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
402         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
403         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
404         Use VI2_AVX2 mode iterator.
405         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
406         Use VI2_AVX2 mode iterator.
407         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
408         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
409         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
410         Use VI4_AVX2 mode iterator.
411         (ashr<mode>3): Use VI24_AVX2 mode iterator.
412         (lshr<mode>3): Use VI248_AVX2 mode iterator.
413         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
414         Use VIMAX_AVX2 mode iterator.
415         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
416         Use VI mode iterator.
417         (*andnot<mode>3): Update for AVX2.
418         (*<any_logic:code><mode>3): Likewise.
419         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
420         Use VI1_AVX mode iterator.
421         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
422         Use VI2_AVX mode iterator.
423         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
424         Use VI1_AVX mode iterator.
425         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
426         Use VI8_AVX2 mode iterator.
427         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
428         Use VI1_AVX2 mode iterator.
429         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
430         Use VI124_AVX2 mode iterator.
431         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
432         Use SSESCALARMODE mode iterator.
433         (abs<mode>2): Use VI124_AVX2 mode iterator.
434         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
435         Use VI8_AVX2 mode iterator.
436         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
437         Use VI1_AVX2 mode iterator.
438         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
439         Use VI1_AVX2 mode iterator.
440         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
441         Use VI2_AVX2 mode iterator.
442         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
443         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
444         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
445         avx_maskstore<ssemodesuffix><avxsizesuffix>.
446         Use V48_AVX2 mode iterator.
447         * doc/extend.texi: Document AVX2 built-in functions.
448         * doc/invoke.texi: Document -mavx2.
449
450 2011-08-22  Matthias Klose <doko@debian.org>
451
452         Revert:
453         2011-07-11  Arthur Loiret  <aloiret@debian.org>
454                     Matthias Klose <doko@debian.org>
455         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
456         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
457         convention.
458         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
459
460 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
461
462         PR bootstrap/50146
463         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
464         to #ifndef HONOR_REG_ALLOC_ORDER block.
465
466 2011-08-21  Richard Henderson  <rth@redhat.com>
467
468         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
469         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
470         * resource.c (next_insn_no_annul): Likewise.
471         (mark_set_resources): Likewise.
472         * reorg.c (delete_from_delay_slot): Likewise.
473         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
474         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
475
476 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
477
478         * config/i386/i386.md (any_div): Remove.
479         (sgnprefix): Update for removal.
480         (u): Ditto.
481
482 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
483
484         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
485         for ira_reg_class_max_nregs.  Increase pressure by 1.
486         (mark_pseudo_regno_subword_dead): Use allocno class
487         for ira_reg_class_max_nregs.
488
489 2011-08-20  Richard Henderson  <rth@redhat.com>
490
491         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
492         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
493         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
494         config/c6x/ltf.c: Adjust include path for soft-fp.
495
496 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
497
498         PR other/46770
499         * config.gcc (tm_file): Add initfini-array.h if
500         .init_arrary/.fini_array are supported.
501
502         * crtstuff.c: Don't generate .ctors nor .dtors sections if
503         USE_INITFINI_ARRAY is defined.
504
505         * output.h (default_elf_init_array_asm_out_constructor): New.
506         (default_elf_fini_array_asm_out_destructor): Likewise.
507         * varasm.c (elf_init_array_section): Likewise.
508         (elf_fini_array_section): Likewise.
509         (get_elf_initfini_array_priority_section): Likewise.
510         (default_elf_init_array_asm_out_constructor): Likewise.
511         (default_elf_fini_array_asm_out_destructor): Likewise.
512
513         * config/initfini-array.h: New.
514
515 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
516
517         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
518         OK for ST_REGS and FP_REGS before taking those classes into account.
519
520 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
521
522         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
523         before checking for annulled branches.
524
525 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
526
527         * config/i386/i386.c (ix86_binary_operator_ok): Use
528         satisfies_constraint_L.
529
530 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
531             Michael Matz  <matz@suse.de>
532
533         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
534         trunc (a + copysign (nextafter (0.5, 0.0), a)).
535
536 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
537
538         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
539         * doc/tm.texi: Regenerate.
540         * targhooks.c (default_preferred_output_reload_class): Don't use
541         PREFERRED_OUTPUT_RELOAD_CLASS macro.
542         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
543
544 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
545
546         PR tree-optimization/48739
547         * tree-ssa.c: Include cfgloop.h.
548         (execute_update_addresses_taken): When updating ssa, if in loop closed
549         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
550         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
551
552 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
553
554         PR rtl-optimization/49936
555         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
556         for calculation of max register move costs.
557
558 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
559
560         * c-parser.c (c_parser_postfix_expression): Convert operands of
561         __builtin_complex to their semantic types.
562
563 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
564
565         PR middle-end/49721
566         * explow.c (convert_memory_address_addr_space): Also permute the
567         conversion and addition of constant for zero-extend.
568
569 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
570
571         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
572         * doc/extend.texi (__builtin_complex): Document.
573
574 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
575
576         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
577         beyond conversions.
578         (convert_mult_to_widen): Convert constant inputs to the right type.
579         (convert_plusminus_to_widen): Don't automatically reject inputs that
580         are not an SSA_NAME.
581         Convert constant inputs to the right type.
582
583 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
584
585         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
586         to the correct type.
587
588 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
589
590         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
591         unsigned inputs of different modes.
592         (convert_plusminus_to_widen): Likewise.
593
594 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
595
596         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
597         'type'.
598         Use 'type' from caller, not inferred from 'rhs'.
599         Don't reject non-conversion statements. Do return lhs in this case.
600         (is_widening_mult_p): Add new argument 'type'.
601         Use 'type' from caller, not inferred from 'stmt'.
602         Pass type to is_widening_mult_rhs_p.
603         (convert_mult_to_widen): Pass type to is_widening_mult_p.
604         (convert_plusminus_to_widen): Likewise.
605
606 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
607
608         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
609         Ensure the the larger type is the first operand.
610
611 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
612
613         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
614         unsupported unsigned multiplies to signed.
615         (convert_plusminus_to_widen): Likewise.
616
617 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
618
619         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
620         conversion statement separating multiply-and-accumulate.
621
622 2011-08-19  Richard Guenther  <rguenther@suse.de>
623
624         PR tree-optimization/50067
625         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
626         offset only if we accounted for it.
627
628 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
629
630         * config/arm/arm.md (maddhidi4): Remove '*' from name.
631         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
632         * optabs.c (find_widening_optab_handler_and_mode): New function.
633         (expand_widen_pattern_expr): Use find_widening_optab_handler.
634         (expand_binop_directly): Likewise.
635         (expand_binop): Likewise.
636         * optabs.h (find_widening_optab_handler): New macro define.
637         (find_widening_optab_handler_and_mode): New prototype.
638         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
639         type precision rules.
640         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
641         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
642         (is_widening_mult_rhs_p): Allow widening by more than one mode.
643         Explicitly disallow mis-matched input types.
644         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
645         input types to fit the new handler.
646         (convert_plusminus_to_widen): Likewise.
647
648 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
649
650         * expr.c (expand_expr_real_2): Use widening_optab_handler.
651         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
652         (gen_insn): $N now means $a must be wider than $b, not consecutive.
653         * optabs.c (widened_mode): New function.
654         (expand_widen_pattern_expr): Use widening_optab_handler.
655         (expand_binop_directly): Likewise.
656         (expand_binop): Likewise.
657         * optabs.h (widening_optab_handlers): New struct.
658         (optab_d): New member, 'widening'.
659         (widening_optab_handler): New function.
660         (set_widening_optab_handler): New function.
661         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
662         widening_optab_handler.
663         (convert_plusminus_to_widen): Likewise.
664
665 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
666
667         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
668         pedantic.
669         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
670         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
671
672 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
673
674         * opth-gen.awk: Do not declare target save/restore structures and
675         functions if IN_RTS defined.
676
677 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
678
679         PR target/49437
680         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
681         when stack was realigned in interrupt handler prologue.
682
683 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
684
685         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
686         (quals_from_declspecs): Assert _Noreturn not present.
687         (grokdeclarator): Handle _Noreturn.
688         (build_null_declspecs): Initialize noreturn_p.
689         (declspecs_add_scspec): Handle RID_NORETURN.
690         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
691         (c_parser_attributes): Handle RID_NORETURN.
692         * c-tree.h (struct c_declspecs): Add noreturn_p.
693         * ginclude/stdnoreturn.h: New.
694         * Makefile.in (USER_H): Add stdnoreturn.h.
695
696 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
697
698         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
699         (OPTION_MASK_ISA_AVX_UNSET): Update.
700         (OPTION_MASK_ISA_AVX2_UNSET): New.
701         (ix86_handle_option): Handle OPT_mavx2 case.
702         * config/i386/cpuid.h (bit_AVX2): New.
703         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
704         AVX2 feature.
705         * config/i386/i386-c.c (ix86_target_macros_internal):
706         Conditionally define __AVX2__.
707         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
708         Define "core-avx2" processor alias.  Handle avx2 option.
709         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
710         * config/i386/i386.h (TARGET_AVX2): New.
711         * config/i386/i386.opt (mavx2): New.
712         * doc/invoke.texi: Document -mavx2.
713
714 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
715
716         PR rtl-optimization/49890
717         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
718         subclasses of class which is superset of a pressure class.
719
720 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
721             Igor Zamyatin <igor.zamyatin@intel.com>
722
723         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
724         with HOST_WIDE_INT for isa_flag.
725         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
726         isa variables.
727
728         * config/i386/i386.c (ix86_target_string): Replace int with
729         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
730         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
731         (pta_flags): Removed.
732         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
733         (pta): Use HOST_WIDE_INT on flags.
734         (builtin_isa): Use HOST_WIDE_INT on isa.
735         (ix86_add_new_builtins): Likewise.
736         (def_builtin): Use HOST_WIDE_INT on mask.
737         (def_builtin_const): Likewise.
738         (builtin_description): Likewise.
739
740         * config/i386/i386.opt (ix86_isa_flags): Replace int with
741         HOST_WIDE_INT.
742         (ix86_isa_flags_explicit): Likewise.
743         (x_ix86_isa_flags_explicit): Likewise.
744
745 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
746
747         PR rtl-optimization/50107
748         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
749         (ira_hard_reg_in_set_p): New.
750
751         * ira-color.c (calculate_saved_nregs): New.
752         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
753         hard regs.
754         (allocno_reload_assign, fast_allocation): Use
755         ira_hard_reg_set_intersection_p instead of
756         ira_hard_reg_not_in_set_p.
757
758         * ira.c (setup_reg_renumber): Use
759         ira_hard_reg_set_intersection_p instead of
760         ira_hard_reg_not_in_set_p.
761         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
762         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
763
764         * ira-costs.c (ira_tune_allocno_costs): Use
765         ira_hard_reg_set_intersection_p instead of
766         ira_hard_reg_not_in_set_p.
767
768 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
769             Igor Zamyatin <igor.zamyatin@intel.com>
770
771         * hwint.h (HOST_WIDE_INT_1): New.
772
773         * opt-functions.awk (switch_bit_fields): Initialize the
774         host_wide_int field.
775         (host_wide_int_var_name): New.
776         (var_type_struct): Check and return HOST_WIDE_INT.
777
778         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
779
780         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
781
782         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
783         check masks for HOST_WIDE_INT.
784
785         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
786         (option_enabled): Likewise.
787         (get_option_state): Likewise.
788
789         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
790         to HOST_WIDE_INT.
791
792 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
793             Marc Glisse  <marc.glisse@normalesup.org>
794
795         PR libstdc++-v3/1773
796         * target.def (decl_mangling_context): New C++ hook.
797         * doc/tm.texi: Regenerate.
798         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
799         * config/sol2-protos.h: Group by source file.
800         (solaris_cxx_decl_mangling_context): Declare.
801         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
802         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
803         Use $<.
804         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
805         Add sol2-stubs.o to extra_objs.
806
807 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
808
809         PR target/50009
810         * stor-layout.c (update_alignment_for_field): Don't ICE on
811         packed flexible array members if ms_bitfield_layout_p.
812
813         PR target/50092
814         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
815         on the result before returning it.
816
817         PR debug/50017
818         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
819         is a debug stmt, use location of the first non-debug stmt after it.
820
821 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
822
823         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
824         (arm_size_rtx_costs): Likewise.
825
826 2011-08-18  Richard Guenther  <rguenther@suse.de>
827
828         * tree.h (tree_int_cst_msb): Remove.
829         * tree.c (tree_int_cst_msb): Likewise.
830         (tree_int_cst_sign_bit): Move from ...
831         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
832
833 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
834
835         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
836         * doc/tm.texi: Regenerate.
837         * target.def (rtx_costs): Add an opno parameter.
838         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
839         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
840         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
841         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
842         * cse.c (COST_IN): Add an opno parameter.
843         (notreg_cost): Likewise.  Update call to rtx_cost.
844         (COST, fold_rtx): Update accordingly.
845         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
846         * expmed.c (emit_store_flag): Likewise.
847         * optabs.c (avoid_expensive_constant): Add an opno parameter.
848         Update call to rtx_cost.
849         (expand_binop_directly, expand_binop): Likewise.
850         (expand_twoval_binop, prepare_cmp_insn): Likewise.
851         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
852         (set_src_cost, get_full_set_src_cost): Update accordingly.
853         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
854         to target hook.
855         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
856         (default_adress_cost): Update calls to rtx_cost.
857
858         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
859         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
860         (arm_rtx_costs): Add an opno parameter.
861         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
862         adjust any recursive rtx-cost calls.
863         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
864         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
865         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
866         * config/cris/cris.c (cris_rtx_costs): Likewise.
867         * config/frv/frv.c (frv_rtx_costs): Likewise.
868         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
869         * config/i386/i386.c (ix86_rtx_costs): Likewise.
870         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
871         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
872         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
873         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
874         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
875         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
876         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
877         * config/mep/mep.c (mep_rtx_cost): Likewise.
878         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
879         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
880         (mips_zero_extend_cost): Add an opno parameter.
881         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
882         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
883         to rtx_cost.
884         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
885         rtx-cost calls.
886         * config/pa/pa.c (hppa_rtx_costs): Likewise.
887         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
888         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
889         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
890         (rs6000_debug_rtx_costs): Likewise.
891         * config/s390/s390.c (s390_rtx_costs): Likewise.
892         * config/score/score-protos.h (score_rtx_costs): Likewise.
893         * config/score/score.c (score_rtx_costs): Likewise.
894         * config/sh/sh.c (andcosts): Update call to rtx_cost.
895         (sh_rtx_costs): Add an opno parameter.
896         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
897         * config/spu/spu.c (spu_rtx_costs): Likewise.
898         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
899         * config/v850/v850.c (v850_rtx_costs): Likewise.
900         * config/vax/vax.c (vax_rtx_costs): Likewise.
901         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
902
903 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
904
905         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
906         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
907         rtx_cost.
908         * calls.c (precompute_register_parameters): Likewise.
909         * combine.c (expand_compound_operation, make_extraction): Likewise.
910         (force_to_mode, distribute_and_simplify_rtx): Likewise.
911         * dse.c (find_shift_sequence): Likewise.
912         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
913         * expr.c (compress_float_constant): Likewise.
914         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
915         * gcse.c (want_to_gcse_p): Likewise.
916         * ifcvt.c (noce_try_sign_mask): Likewise.
917         * loop-doloop.c (doloop_optimize): Likewise.
918         * loop-invariant.c (create_new_invariant): Likewise.
919         * optabs.c (avoid_expensive_constant): Likewise.
920         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
921         (try_replace_in_use, reload_cse_move2add): Likewise.
922         * reload1.c (calculate_elim_costs_all_insns): Likewise.
923         (note_reg_elim_costly): Likewise.
924         * rtlanal.c (insn_rtx_cost): Likewise.
925         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
926         * stmt.c (lshift_cheap_p): Likewise.
927         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
928         * config/avr/avr.c (final_prescan_insn): Likewise.
929         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
930         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
931
932 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
933
934         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
935         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
936         * cfgloopanal.c (seq_cost): Likewise.
937         * loop-invariant.c (create_new_invariant): Likewise.
938         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
939         (reload_cse_move2add): Use get_full_set_rtx_cost.
940
941 2011-08-18  Richard Guenther  <rguenther@suse.de>
942
943         * expr.c (get_inner_reference): Fix typo in last change.
944
945 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
946             Joseph Myers  <joseph@codesourcery.com>
947
948         PR tree-optimization/49963
949         * hwint.c (absu_hwi): Define.
950         * hwint.h (absu_hwi): Declare.
951         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
952         of abs_hwi.
953         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
954         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
955
956 2011-08-18  Richard Guenther  <rguenther@suse.de>
957
958         * expr.c (get_inner_reference): Sign-extend the constant
959         twos-complement offset before doing arbitrary precision
960         arithmetic on it.
961         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
962         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
963         to get_constraint_for_ptr_offset.
964
965 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
966
967         PR target/50068
968         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
969
970 2011-08-17  Richard Guenther  <rguenther@suse.de>
971
972         * tree.h (convert_to_ptrofftype_loc): New function.
973         (convert_to_ptrofftype): Define.
974         * builtins.c (expand_builtin_bzero): Use size_type_node.
975         (fold_builtin_bzero): Likewise.
976         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
977         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
978         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
979         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
980         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
981         * fold-const.c (build_range_check): Negate using the original type.
982         (fold_unary_loc): Use fold_build_pointer_plus_loc.
983         * gimple-fold.c (gimple_adjust_this_by_delta): Use
984         convert_to_ptrofftype.
985         * gimplify.c (gimplify_self_mod_expr): Likewise.
986         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
987         (graphite_create_new_loop_guard): Likewise.
988         * graphite-sese-to-poly.c (my_long_long): Remove.
989         (scop_ivs_can_be_represented): Adjust.
990         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
991         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
992         * tree-loop-distribution.c (build_size_arg_loc): Use
993         size_type_node.
994         (generate_memset_zero): Simplify.
995         * tree-mudflap.c: Use fold_convert, not convert.
996         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
997         its own type.
998         (determine_offset): Likewise for DR_STEP.
999         (valid_initializer_p): Likewise.
1000         * tree-profile.c (prepare_instrumented_value): Convert the pointer
1001         to an integer type of same size.
1002         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
1003         to sizetype without need.
1004         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1005         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
1006         * tree-ssa-loop-manip.c (create_iv): Likewise.
1007         (determine_exit_conditions): Adjust comment.
1008         * tree-ssa-pre.c (create_expression_by_pieces): Use
1009         convert_to_ptrofftype.
1010         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
1011         * varasm.c (array_size_for_constructor): Compute using double_ints.
1012
1013 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1014
1015         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
1016         when generating an integer result where possible.  Short-cut
1017         comparison against 0 also for QImode.
1018
1019 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1020
1021         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
1022         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
1023         prototype.
1024         * config/spu/spu.c (spu_legitimize_reload_address): New function.
1025         (spu_legitimate_address_p): Do not check displacement if the base
1026         is an eliminable stack register.
1027
1028 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
1029
1030         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
1031         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1032         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
1033         m32c_preferred_output_reload_class): Remove.
1034         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
1035         Change rclass argument and return types to reg_class_t. Use
1036         reg_class_subset_p instead of class_sizes.
1037         (m32c_preferred_output_reload_class): Make static. Change rclass
1038         argument and return types to reg_class_t.
1039         (TARGET_PREFERRED_RELOAD_CLASS,
1040         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1041
1042 2011-08-16  Kai Tietz  <ktietz@redhat.com>
1043
1044         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
1045
1046 2011-08-16  Richard GUenther  <rguenther@suse.de>
1047
1048         PR tree-optimization/50082
1049         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
1050         warnings here, instead of ...
1051         (ssa_forward_propagate_and_combine): ... here.
1052         (forward_propagate_into_comparison_1): Adjust.
1053         (forward_propagate_into_comparison): Likewise.
1054         (forward_propagate_into_gimple_cond): Likewise.
1055         (forward_propagate_into_cond): Likewise.
1056
1057 2011-08-16  Andreas Schwab  <schwab@redhat.com>
1058
1059         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
1060         instead of ggc_alloc_zone_vec_rtvec_def.
1061
1062 2011-08-16  Richard Guenther  <rguenther@suse.de>
1063
1064         * tree.h (ptrofftype_p): New helper function.
1065         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
1066         offset verification.
1067         (verify_gimple_assign_binary): Likewise.
1068         * tree.c (build2_stat): Likewise.
1069         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
1070         (reset_evolution_in_loop): Likewise.
1071         * tree-chrec.h (build_polynomial_chrec): Likewise.
1072
1073 2011-08-16  Liang Wang  <lwang1@marvell.com>
1074
1075         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
1076         ggc_alloc_zone_vec_rtvec_def.
1077
1078 2011-08-16  Richard Guenther  <rguenther@suse.de>
1079
1080         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
1081         helper factored out from ...
1082         (extract_range_from_binary_expr_1): ... here.  Re-structure
1083         to not glob handling too different tree codes.
1084
1085 2011-08-15  Richard Henderson  <rth@redhat.com>
1086
1087         PR middle-end/50006
1088         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
1089         setting out to include allocate_stack named pattern as well.
1090         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
1091         * stmt.c (expand_stack_restore): Likewise.
1092
1093 2011-08-15  Richard Guenther  <rguenther@suse.de>
1094
1095         PR middle-end/50082
1096         * fold-const.c (maybe_canonicalize_comparison_1): Properly
1097         convert the modified operand to the other operand type.
1098         (fold_comparison): Call maybe_canonicalize_comparison_1 with
1099         useless conversions stripped from comparison operands.
1100
1101 2011-08-15  Richard Guenther  <rguenther@suse.de>
1102
1103         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
1104         (extract_range_from_unary_expr_1): Restructure.
1105
1106 2011-08-15  Richard Guenther  <rguenther@suse.de>
1107
1108         PR tree-optimization/50058
1109         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
1110         copy matching.
1111
1112 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1113
1114         PR target/50022
1115         * config/arm/arm.c (output_move_double): Add 2 parameters
1116         to count the number of insns emitted and whether to emit or not.
1117         Use the flag to decide when to emit and count number of instructions
1118         that will be emitted.
1119         Handle case where output_move_double might be called for calculating
1120         lengths with an invalid constant.
1121         (arm_count_output_move_double_insns): Define.
1122         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
1123         (output_move_double): Adjust prototype.
1124         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
1125         output_move_double.
1126         ("*movdi_vfp_cortexa8"): Likewise and add attribute
1127         for ce_count.
1128         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
1129         ("*movdf_soft_insn"): Likewise.
1130         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
1131         ("*cirrus_thumb2_movdi"): Likewise.
1132         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
1133         ("*cirrus_movdf_hard_insn"): Likewise.
1134         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
1135         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
1136         ("mov<mode>_internal VMMX"): Likewise.
1137         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
1138
1139 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
1140
1141         * config/i386/i386.c (ix86_expand_round_sse4): New function.
1142         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
1143         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
1144         for TARGET_ROUND.
1145
1146         (rint<mode>2): Simplify TARGET_ROUND check.
1147         (floor<mode>2): Ditto.
1148         (ceil<mode>2): Ditto.
1149         (btrunc<mode>2): Ditto.
1150
1151 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
1152
1153         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
1154         as mmix_preferred_output_reload_class.
1155
1156 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
1157
1158         * PR target/49903
1159         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
1160         (branch_unspec): New insn.
1161         (branch): Beauty farm.
1162         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
1163         to be IF_THEN_ELSE.
1164         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
1165         New static functions.
1166         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
1167         Use CONST_INT_P.  Beauty.
1168
1169 2011-08-12  Richard Henderson  <rth@redhat.com>
1170
1171         PR rtl-opt/49994
1172         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
1173         * sched-deps.c (init_deps): Clear it.
1174         (deps_analyze_insn): Consume it.
1175         (sched_analyze_insn): Fill it.
1176
1177 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1178
1179         PR target/48328
1180         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
1181         for tbh instructions.
1182
1183 2011-08-12  Diego Novillo  <dnovillo@google.com>
1184
1185         * data-streamer.h (streamer_write_zero): Rename from output_zero.
1186         (streamer_write_uhwi): Rename from lto_output_uleb128.
1187         (streamer_write_hwi): Rename from output_sleb128.
1188         (streamer_write_string): Rename from lto_output_string.
1189         (streamer_string_index): Rename from lto_string_index.
1190         (streamer_write_string_with_length): Rename from
1191         lto_output_string_with_length.
1192         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
1193         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
1194         (streamer_read_string): Rename from lto_input_string.
1195         (streamer_read_indexed_string): Rename from input_string_internal.
1196         (streamer_read_uhwi): Rename from lto_input_uleb128.
1197         (streamer_read_hwi): Rename from lto_input_sleb128.
1198         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
1199         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
1200         (streamer_write_enum): Rename from lto_output_enum.
1201         (streamer_read_enum): Rename from lto_input_enum.
1202         (streamer_write_record_start): Rename from output_record_start.
1203         (streamer_read_record_start): Rename from input_record_start.
1204         (streamer_write_bitpack): Rename from lto_output_bitpack.
1205         (streamer_read_bitpack): Rename from lto_input_bitpack.
1206         (streamer_write_char_stream): Rename from lto_output_1_stream.
1207         (streamer_read_uchar): Rename from lto_input_1_unsigned.
1208         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
1209         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
1210         (streamer_read_string_cst): Rename from input_string_cst.
1211         (streamer_read_chain): Rename from lto_input_chain.
1212         (streamer_alloc_tree): Rename from lto_materialize_tree.
1213         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
1214         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
1215         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
1216         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
1217         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
1218         (streamer_write_chain): Rename from lto_output_chain.
1219         (streamer_write_tree_header): Rename from lto_output_tree_header.
1220         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
1221         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
1222         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
1223         (streamer_write_builtin): Rename from lto_output_builtin_tree.
1224         (streamer_check_handled_ts_structures): Rename from
1225         check_handled_ts_structures.
1226         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
1227         (streamer_tree_cache_insert_at): Rename from
1228         lto_streamer_cache_insert_at.
1229         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
1230         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
1231         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
1232         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
1233         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
1234         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
1235         (write_identifier): Rename from output_identifier.
1236         (write_ts_common_tree_pointers): Rename from
1237         lto_output_ts_common_tree_pointers.
1238         (write_ts_vector_tree_pointers): Rename from
1239         lto_output_ts_vector_tree_pointers.
1240         (write_ts_complex_tree_pointers): Rename from
1241         lto_output_ts_complex_tree_pointers.
1242         (write_ts_decl_minimal_tree_pointers): Rename from
1243         lto_output_ts_decl_minimal_tree_pointers.
1244         (write_ts_decl_common_tree_pointers): Rename from
1245         lto_output_ts_decl_common_tree_pointers.
1246         (write_ts_decl_non_common_tree_pointers): Rename from
1247         lto_output_ts_decl_non_common_tree_pointers.
1248         (write_ts_decl_with_vis_tree_pointers): Rename from
1249         lto_output_ts_decl_with_vis_tree_pointers.
1250         (write_ts_field_decl_tree_pointers): Rename from
1251         lto_output_ts_field_decl_tree_pointers.
1252         (write_ts_function_decl_tree_pointers): Rename from
1253         lto_output_ts_function_decl_tree_pointers.
1254         (write_ts_type_common_tree_pointers): Rename from
1255         lto_output_ts_type_common_tree_pointers.
1256         (write_ts_type_non_common_tree_pointers): Rename from
1257         lto_output_ts_type_non_common_tree_pointers.
1258         (write_ts_list_tree_pointers): Rename from
1259         lto_output_ts_list_tree_pointers.
1260         (write_ts_vec_tree_pointers): Rename from
1261         lto_output_ts_vec_tree_pointers.
1262         (write_ts_exp_tree_pointers): Rename from
1263         lto_output_ts_exp_tree_pointers.
1264         (write_ts_block_tree_pointers): Rename from
1265         lto_output_ts_block_tree_pointers.
1266         (write_ts_binfo_tree_pointers): Rename from
1267         lto_output_ts_binfo_tree_pointers.
1268         (write_ts_constructor_tree_pointers): Rename from
1269         lto_output_ts_constructor_tree_pointers.
1270         (write_ts_target_option): Rename from lto_output_ts_target_option.
1271         (write_ts_translation_unit_decl_tree_pointers): Rename from
1272         lto_output_ts_translation_unit_decl_tree_pointers.
1273         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
1274         Rename from lto_streamer_cache_add_to_node_array.
1275         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
1276         (record_common_node): Rename from lto_record_common_node.
1277
1278         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
1279         declarations.
1280         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
1281         function.
1282         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
1283         unused function.
1284         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
1285         (ipa-reference.o): Likewise.
1286         * lto-section-out.c: Include data-streamer.h.
1287         * ipa-reference.c: Include data-streamer.h.
1288
1289 2011-08-12  Nick Clifton  <nickc@redhat.com>
1290
1291         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
1292         * doc/md.texi (cmpstrn): Note that the comparison stops if both
1293         fetched bytes are zero.
1294         (cmpstr): Likewise.
1295         (cmpmem): Note that the comparison does not stop if both of the
1296         fetched bytes are zero.
1297
1298 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
1299
1300         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
1301         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
1302         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
1303         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
1304         to integer_type_node.
1305         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
1306         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
1307         * builtins.c (expand_builtin_in): Ditto.
1308         (mathfn_built_in_1): Ditto.
1309         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
1310         BUILT_IN_IFLOOR.
1311         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
1312         BUILT_IN_IROUND.
1313         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
1314         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
1315         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
1316
1317 2011-08-12  Richard Guenther  <rguenther@suse.de>
1318
1319         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
1320
1321 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
1322
1323         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
1324
1325 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
1326
1327         * config/arm/arm.c (get_label_padding): New function.
1328         (create_fix_barrier, arm_reorg): Use it.
1329
1330 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
1331
1332         PR target/49781
1333         * config/i386/i386.md (*lea_5_zext): New.
1334         (*lea_6_zext): Ditto.
1335         * config/i386/predicates.md (const_32bit_mask): New predicate.
1336         (lea_address_operand): Reject AND.
1337         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
1338         const_32bit_mask immediate.
1339         (ix86_print_operand_address): Handle AND.
1340         (memory_address_length): Ditto.
1341
1342 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
1343             Brian Hackett  <bhackett1024@gmail.com>
1344
1345         * plugin.def: Add event for finish_decl.
1346         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
1347         * c-decl.c (finish_decl): Invoke callbacks on above event.
1348         * doc/plugins.texi: Document above event.
1349
1350 2011-08-11  Richard Guenther  <rguenther@suse.de>
1351
1352         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
1353         lookups, make looking through aggregate copies stronger.
1354
1355 2011-08-11  Richard Henderson  <rth@redhat.com>
1356
1357         PR bootstrap/50018
1358         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
1359
1360 2011-08-11  Richard Guenther  <rguenther@suse.de>
1361
1362         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
1363         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
1364         (vrp_visit_stmt): Likewise.
1365
1366 2011-08-11  Richard Guenther  <rguenther@suse.de>
1367
1368         PR middle-end/50040
1369         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
1370         load of the other piece with TREE_NO_WARNING.
1371         * tree-flow.h (warn_uninit): Adjust prototype.
1372         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
1373         the base variable and the expression that is used separately.
1374         Properly query all TREE_NO_WARNING flags.
1375         (struct walk_data): Remove.
1376         (warn_uninitialized_var): Likewise.
1377         (warn_uninitialized_vars): Do not walk gimple pieces but simply
1378         look at all SSA uses of the statement.  Handle unused memory
1379         separately.
1380         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
1381
1382 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1383
1384         * config/rx/rx.md (movsicc): Allow register to register transfers.
1385         (*movsicc): Likewise.
1386         (*stcc): Restrict this pattern to EQ and NE compares.
1387         (*stcc_reg): New pattern.  Works for any comparison but only for
1388         register transfers.
1389
1390 2011-08-11   Diego Novillo  <dnovillo@google.com>
1391
1392         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
1393         Call stream_write_tree instead of output_record_start.
1394         (lto_output_ts_binfo_tree_pointers): Likewise.
1395
1396         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
1397         Convert it to a macro.
1398         (stream_read_tree): Likewise.
1399
1400         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
1401         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
1402
1403         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
1404         and tree_read_bitfields.
1405         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
1406         (lto_write_tree): Call it.
1407         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
1408         * streamer-hooks.h (struct streamer_hooks): Remove fields
1409         name, is_streamable and alloc_tree. Update all users.
1410         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
1411         (lto_materialize_tree): ... here.
1412         Handle CALL_EXPR codes.
1413         Remove call to lto_streamer_cache_append.
1414         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
1415         * tree-streamer.h (tree_read_bitfields): Declare.
1416
1417         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
1418         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
1419         * tree-streamer.h (stream_read_tree): New.  Replace all calls
1420         to lto_input_tree with it.
1421         (stream_write_tree): New.  Replace all calls to lto_output_tree,
1422         lto_output_tree_ref and lto_output_tree_or_ref with it.
1423         * lto-streamer-in.c (lto_read_tree): Inline code from
1424         lto_streamer_read_tree.
1425         (lto_input_tree): Move from tree-streamer-in.c.
1426         * lto-streamer-out.c (lto_output_tree_ref): Make static.
1427         Remove handling of NULL values for EXPR.
1428         Do not handle EXPRs that are not indexable.
1429         (lto_write_tree): Move from tree-streamer-out.c.
1430         Inline lto_streamer_write_tree.
1431         (lto_output_tree): Move from tree-streamer-out.c.
1432         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
1433         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
1434         (lto_preload_common_nodes): Likewise.
1435         Remove assertions and adjustments for nodes
1436         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
1437         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
1438         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
1439         * lto-streamer.h (lto_input_tree): Declare.
1440         (lto_output_tree_ref): Remove.
1441         * streamer-hooks.h (struct streamer_hooks): Remove fields
1442         preload_common_nodes, indexable_with_decls_p,
1443         pack_value_fields, unpack_value_fields and output_tree_header.
1444         Update all users.
1445         * tree-streamer-in.c (lto_materialize_tree): Make extern.
1446         (lto_input_tree_pointers): Likewise.
1447         (lto_read_tree): Move to lto-streamer-in.c.
1448         (lto_input_integer_cst): Make extern.
1449         (lto_get_pickled_tree): Likewise.
1450         (lto_get_builtin_tree): Likewise.
1451         (lto_input_tree): Move to lto-streamer-in.c.
1452         * tree-streamer-out.c (pack_value_fields): Make extern.
1453         (lto_output_tree_or_ref): Remove.  Replace all callers with
1454         calls to stream_write_tree.
1455         (lto_output_builtin_tree): Make extern.
1456         (lto_streamer_write_tree): Inline into lto_write_tree.
1457         (lto_output_tree_pointers): Make extern.
1458         (lto_output_tree_header): Likewise.
1459         (lto_output_integer_cst): Likewise.
1460         (lto_write_tree): Move to lto-streamer-out.c.
1461         (lto_output_tree): Likewise.
1462         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
1463         (preload_common_nodes): Likewise.
1464         (lto_streamer_cache_create): Call it.
1465         * tree-streamer.h: Include streamer-hooks.h.
1466         (stream_write_tree): New.
1467         (stream_read_tree): New.
1468         (lto_input_tree): Remove.
1469         (lto_materialize_tree): Declare.
1470         (lto_input_tree_pointers): Declare.
1471         (lto_get_pickled_tree): Declare.
1472         (lto_get_builtin_tree): Declare.
1473         (lto_input_integer_cst): Declare.
1474         (lto_output_tree_header): Declare.
1475         (pack_value_fields): Declare.
1476         (lto_output_tree_pointers): Declare.
1477         (lto_output_integer_cst): Declare.
1478         (lto_output_builtin_tree): Declare.
1479
1480 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
1481
1482         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
1483         only if producer writes to the register given by regno.
1484
1485 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
1486             Alexander Monakov  <amonakov@ispras.ru>
1487
1488         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
1489         (sched_get_condition_with_rev_uncached): ... this.  Factor out
1490         condition caching logic into ...
1491         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
1492         attempt to use cache for instructions with zero luid.
1493         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
1494         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
1495
1496 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
1497
1498         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
1499         get_seqno_for_a_jump.  Update the caller.
1500         (get_seqno_by_succs): New.  Use it ...
1501         (get_seqno_for_a_jump): ... here to find a seqno if looking at
1502         predecessors was not sufficient.
1503         (get_seqno_by_preds): Include head in iteration range, exclude insn.
1504
1505 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
1506
1507         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
1508
1509 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
1510
1511         * sel-sched-ir.h (register_unavailable_p): Declare.
1512         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
1513         (set_unavailable_target_for_expr): ... here to properly test
1514         availability of a register.
1515         (speculate_expr): Ditto.
1516         * sel-sched.c (substitute_reg_in_expr): Ditto.
1517         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
1518
1519 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
1520
1521         * sel-sched.c (verify_target_availability): Fix usage of
1522         hard_regno_nregs.
1523
1524 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
1525
1526         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
1527         recognized by cannot_copy_insn_p hook and volatile instructions.
1528
1529 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
1530
1531         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
1532
1533 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
1534
1535         * doc/md.texi (define_bypass): Say that the instruction names can
1536         be filename-style globs.
1537         * Makefile.in (FNMATCH_H): Define.
1538         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
1539         * genattrtab.c: Include fnmatch.h.
1540         (bypass_list): Change field name from "insn" to "pattern".
1541         (gen_bypass_1): Update accordingly.
1542         (process_bypasses): Use fnmatch to check for matches between
1543         insn reservations and define_bypasses.
1544         * genautomata.c: Include fnmatch.h.
1545         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
1546         and out_pattern respectively.
1547         (gen_bypass, insert_bypass): Update accordingly.
1548         (for_each_matching_insn, process_bypass_2, process_bypass_1)
1549         (process_bypass): New functions.
1550         (process_decls): Use process_bypass.  Update after field name changes.
1551
1552 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
1553
1554         PR target/49687
1555         * config/avr/avr.md (smulqi3_highpart): New insn.
1556         (umulqi3_highpart): New insn.
1557         (*subqi3.ashiftrt7): New insn.
1558         (smulhi3_highpart): New expander.
1559         (umulhi3_highpart): Nex expander.
1560         (*smulhi3_highpart_call): New insn.
1561         (*umulhi3_highpart_call): New insn.
1562         (extend_u): New code attribute.
1563         (extend_prefix): Rename code attribute to extend_su.
1564         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
1565         widening QI/HI multiply.
1566
1567 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
1568
1569         PR tree-optimization/50039
1570         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
1571         that DEF_STMT has a stmt_vec_info.
1572
1573 2011-08-10  Richard Guenther  <rguenther@suse.de>
1574
1575         * tree.h (can_trust_pointer_alignment): Remove.
1576         * builtins.c (can_trust_pointer_alignment): Remove.
1577
1578 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
1579
1580         * c-typeck.c (scalar_to_vector): New function. Try scalar to
1581         vector conversion.
1582         (stv_conv): New enum for scalar_to_vector return type.
1583         (build_binary_op): Adjust.
1584         * doc/extend.texi: Description of scalar to vector expansion.
1585
1586 2011-08-10  Richard Guenther  <rguenther@suse.de>
1587
1588         * tree.h (get_pointer_alignment): Remove max-align argument.
1589         (get_object_alignment): Likewise.
1590         * builtins.c (get_object_alignment_1): Adjust.
1591         (get_object_alignment): Remove max-align argument.
1592         (get_pointer_alignment): Likewise.
1593         (expand_builtin_strlen): Adjust.
1594         (expand_builtin_memcpy): Likewise.
1595         (expand_builtin_mempcpy_args): Likewise.
1596         (expand_builtin_strncpy): Likewise.
1597         (expand_builtin_memset_args): Likewise.
1598         (expand_builtin_memcmp): Likewise.
1599         (expand_builtin_strcmp): Likewise.
1600         (expand_builtin_strncmp): Likewise.
1601         (get_builtin_sync_mem): Likewise.
1602         (fold_builtin_memset): Likewise.
1603         (fold_builtin_memory_op): Likewise.
1604         (expand_builtin_memory_chk): Likewise.
1605         * emit-rtl.c (get_mem_align_offset): Likewise.
1606         (set_mem_attributes_minus_bitpos): Likewise.
1607         * expr.c (expand_assignment): Likewise.
1608         (expand_expr_real_1): Likewise.
1609         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
1610         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
1611         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
1612         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
1613         * value-prof.c (gimple_stringops_transform): Likewise.
1614
1615 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
1616
1617         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
1618         * doc/tm.texi: Regenerate.
1619
1620 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
1621
1622         PR target/29560
1623         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
1624         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
1625         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
1626         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
1627         shift target is unused.
1628
1629 2011-08-10  Richard Guenther  <rguenther@suse.de>
1630
1631         PR tree-optimization/49937
1632         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
1633         using get_object_alignment_1.
1634
1635 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
1636
1637         * config/i386/i386.c (ix86_emit_i387_round): New function.
1638         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
1639         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
1640         Use ix86_emit_i387_round to expand round function for i387 math.
1641         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
1642         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
1643
1644 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1645
1646         * config/sync.c: Move to ../libgcc.
1647         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
1648         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
1649         Remove.
1650
1651 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
1652
1653         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
1654         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
1655         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
1656         Change 'from' and 'to' arguments type to reg_class_t.
1657         (TARGET_REGISTER_MOVE_COST): Define.
1658
1659 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
1660
1661         PR target/50026
1662         Revert:
1663         PR rtl-optimization/49990
1664         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
1665         ignore classes which can not change mode.
1666         (find_costs_and_classes): Ditto.
1667
1668 2011-08-09  Richard Guenther  <rguenther@suse.de>
1669
1670         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
1671         information for ranges with only negative values.
1672         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
1673         BIT_AND_EXPR handling to handle ranges with negative values.
1674
1675 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
1676
1677         * config/i386/i386.c: Remove traling spaces.
1678         * config/i386/sse.md: Likewise.
1679         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
1680         (*fma_fmsub_<mode>): Likewise.
1681         (*fma_fnmadd_<mode>): Likewise.
1682         (*fma_fnmsub_<mode>): Likewise.
1683
1684 2011-08-09  Nick Clifton  <nickc@redhat.com>
1685
1686         * config/rx/rx.md: Disable extender peepholes at -O3.
1687
1688 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
1689
1690         PR target/49781
1691         * config/i386/i386.md (reload_noff_load): New.
1692         (reload_noff_store): Ditto.
1693         * config/i386/i386.c (ix86_secondary_reload): Use
1694         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
1695         double-word moves from/to non-offsetable addresses instead of
1696         generating XMM temporary.
1697
1698 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
1699
1700         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
1701
1702 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
1703
1704         PR tree-optimization/50014
1705         * tree-vect-loop.c (vectorizable_reduction): Get def type before
1706         calling vect_get_vec_def_for_stmt_copy ().
1707
1708 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
1709
1710         PR rtl-optimization/49990
1711         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
1712         ignore classes which can not change mode.
1713         (find_costs_and_classes): Ditto.
1714
1715 2011-08-08  Richard Henderson  <rth@redhat.com>
1716
1717         PR middle-end/49990
1718         * config/i386/i386.c (ix86_expand_prologue): Call
1719         for SEH target gen_prologue_use instead of gen_blockage
1720         at prologue's end.
1721
1722 2011-08-08  Martin Jambor  <mjambor@suse.cz>
1723
1724         PR middle-end/49923
1725         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
1726         memory alignment.
1727
1728 2011-08-08   Diego Novillo  <dnovillo@google.com>
1729
1730         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
1731         (DATA_STREAMER_H): New.
1732         (GIMPLE_STREAMER_H): New.
1733         (TREE_STREAMER_H): New.
1734         (STREAMER_HOOKS_H): New.
1735         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
1736         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
1737         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
1738         (data-streamer.o): New.
1739         (data-streamer-in.o): New.
1740         (data-streamer-out.o): New.
1741         (gimple-streamer-in.o): New.
1742         (gimple-streamer-out.o): New.
1743         (streamer-hooks.o): New.
1744         (tree-streamer.o): New.
1745         (tree-streamer-in.o): New.
1746         (tree-streamer-out.o): New.
1747         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
1748         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
1749         GIMPLE_STREAMER_H and TREE_STREAMER_H.
1750         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
1751         GIMPLE_STREAMER_H and TREE_STREAMER_H.
1752         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
1753         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
1754         (ipa-inline-analysis.o): Likewise.
1755         (ipa-pure-const.o): Likewise.
1756         * data-streamer-in.c: New.
1757         * data-streamer-out.c: New.
1758         * data-streamer.c: New.
1759         * data-streamer.h: New.
1760         * gimple-streamer-in.c: New.
1761         * gimple-streamer-out.c: New.
1762         * gimple-streamer.h: New.
1763         * ipa-inline-analysis.c: Include data-streamer.h.
1764         * ipa-prop.c: Include data-streamer.h.
1765         * ipa-pure-const.c: Include data-streamer.h.
1766         * lto-cgraph.c: Include data-streamer.h.
1767         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
1768         (lto_input_widest_uint_uleb128): Likewise.
1769         (lto_input_sleb128): Likewise.
1770         (bp_unpack_var_len_unsigned): Likewise.
1771         (bp_unpack_var_len_int): Likewise.
1772         * lto-section-out.c (lto_output_uleb128_stream): Move to
1773         data-streamer-out.c.
1774         (lto_output_widest_uint_uleb128_stream): Likewise.
1775         (lto_output_sleb128_stream): Likewise.
1776         (bp_pack_var_len_unsigned): Likewise.
1777         (bp_pack_var_len_int): Likewise.
1778         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
1779         (struct string_slot): Remove.  Update all users.
1780         (lto_tag_check_set): Make extern.
1781         (lto_tag_check_range): Move to lto-streamer.h.
1782         (lto_tag_check): Likewise.
1783         (hash_string_slot_node): Remove.  Update all users.
1784         (eq_string_slot_node): Remove.  Update all users.
1785         (string_for_index): Move to data-streamer-in.c
1786         (input_string_internal): Likewise.
1787         (input_string_cst): Move to tree-streamer-in.c.
1788         (input_identifier): Likewise.
1789         (lto_input_string): Move to data-streamer-in.c
1790         (input_record_start): Move to data-streamer.h
1791         (canon_file_name): Use new definition of struct string_slot
1792         from data-streamer.h.  Set S_SLOT.LEN.
1793         (lto_input_location): Make extern.
1794         (lto_input_chain): Move to tree-streamer-in.c.
1795         (lto_init_eh): Make extern.
1796         (input_phi): Move to gimple-streamer-in.c.
1797         (input_gimple_stmt): Likewise.
1798         (input_bb): Likewise.
1799         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
1800         (unpack_ts_real_cst_value_fields): Likewise.
1801         (unpack_ts_fixed_cst_value_fields): Likewise.
1802         (unpack_ts_decl_common_value_fields): Likewise.
1803         (unpack_ts_decl_wrtl_value_fields): Likewise.
1804         (unpack_ts_decl_with_vis_value_fields): Likewise.
1805         (unpack_ts_function_decl_value_fields): Likewise.
1806         (unpack_ts_type_common_value_fields): Likewise.
1807         (unpack_ts_block_value_fields): Likewise.
1808         (unpack_ts_translation_unit_decl_value_fields): Likewise.
1809         (unpack_value_fields): Likewise.
1810         (lto_materialize_tree): Likewise.
1811         (lto_input_ts_common_tree_pointers): Likewise.
1812         (lto_input_ts_vector_tree_pointers): Likewise.
1813         (lto_input_ts_complex_tree_pointers): Likewise.
1814         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
1815         (lto_input_ts_decl_common_tree_pointers): Likewise.
1816         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
1817         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
1818         (lto_input_ts_field_decl_tree_pointers): Likewise.
1819         (lto_input_ts_function_decl_tree_pointers): Likewise.
1820         (lto_input_ts_type_common_tree_pointers): Likewise.
1821         (lto_input_ts_type_non_common_tree_pointers): Likewise.
1822         (lto_input_ts_list_tree_pointers): Likewise.
1823         (lto_input_ts_vec_tree_pointers): Likewise.
1824         (lto_input_ts_exp_tree_pointers): Likewise.
1825         (lto_input_ts_block_tree_pointers): Likewise.
1826         (lto_input_ts_binfo_tree_pointers): Likewise.
1827         (lto_input_ts_constructor_tree_pointers): Likewise.
1828         (lto_input_ts_target_option): Likewise.
1829         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
1830         (lto_input_tree_pointers): Likewise.
1831         (lto_get_pickled_tree): Likewise.
1832         (lto_get_builtin_tree): Likewise.
1833         (lto_read_tree): Likewise.
1834         (lto_input_integer_cst): Likewise.
1835         (lto_input_tree): Likewise.
1836         * lto-streamer-out.c: Include data-streamer.h,
1837         gimple-streamer.h and streamer-hooks.h.
1838         (struct string_slot): Move to data-streamer.h.
1839         (hash_string_slot_node): Likewise.
1840         (eq_string_slot_node): Likewise.
1841         (lto_string_index): Move to data-streamer-out.c.
1842         (lto_output_string_with_length): Likewise.
1843         (lto_output_string): Likewise.
1844         (output_string_cst): Move to tree-streamer-out.c.
1845         (output_identifier): Likewise.
1846         (output_zero): Move to data-streamer-out.c
1847         (output_uleb128): Likewise.
1848         (output_sleb128): Likewise.
1849         (output_record_start): Move to data-streamer.h
1850         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
1851         (pack_ts_real_cst_value_fields): Likewise.
1852         (pack_ts_fixed_cst_value_fields): Likewise.
1853         (pack_ts_decl_common_value_fields): Likewise.
1854         (pack_ts_decl_wrtl_value_fields): Likewise.
1855         (pack_ts_decl_with_vis_value_fields): Likewise.
1856         (pack_ts_function_decl_value_fields): Likewise.
1857         (pack_ts_type_common_value_fields): Likewise.
1858         (pack_ts_block_value_fields): Likewise.
1859         (pack_ts_translation_unit_decl_value_fields): Likewise.
1860         (pack_value_fields): Likewise.
1861         (lto_output_chain): Likewise.
1862         (lto_output_ts_common_tree_pointers): Likewise.
1863         (lto_output_ts_vector_tree_pointers): Likewise.
1864         (lto_output_ts_complex_tree_pointers): Likewise.
1865         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
1866         (lto_output_ts_decl_common_tree_pointers): Likewise.
1867         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
1868         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
1869         (lto_output_ts_field_decl_tree_pointers): Likewise.
1870         (lto_output_ts_function_decl_tree_pointers): Likewise.
1871         (lto_output_ts_type_common_tree_pointers): Likewise.
1872         (lto_output_ts_type_non_common_tree_pointers): Likewise.
1873         (lto_output_ts_list_tree_pointers): Likewise.
1874         (lto_output_ts_vec_tree_pointers): Likewise.
1875         (lto_output_ts_exp_tree_pointers): Likewise.
1876         (lto_output_ts_block_tree_pointers): Likewise.
1877         (lto_output_ts_binfo_tree_pointers): Likewise.
1878         (lto_output_ts_constructor_tree_pointers): Likewise.
1879         (lto_output_ts_target_option): Likewise.
1880         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
1881         (lto_output_tree_pointers): Likewise.
1882         (lto_output_tree_header): Likewise.
1883         (lto_output_builtin_tree): Likewise.
1884         (lto_write_tree): Likewise.
1885         (lto_output_integer_cst): Likewise.
1886         (lto_output_tree): Likewise.
1887         (output_phi): Move to gimple-streamer-out.c.
1888         (output_gimple_stmt): Likewise.
1889         (output_bb): Likewise.
1890         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
1891         (streamer_hooks): Move to streamer-hooks.c.
1892         (check_handled_ts_structures): Move to tree-streamer.c
1893         (lto_streamer_cache_add_to_node_array): Likewise.
1894         (lto_streamer_cache_insert_1): Likewise.
1895         (lto_streamer_cache_insert): Likewise.
1896         (lto_streamer_cache_insert_at): Likewise.
1897         (lto_streamer_cache_append): Likewise.
1898         (lto_streamer_cache_lookup): Likewise.
1899         (lto_streamer_cache_get): Likewise.
1900         (lto_record_common_node): Likewise.
1901         (lto_preload_common_nodes): Likewise.
1902         (lto_streamer_cache_create): Likewise.
1903         (lto_streamer_cache_delete): Likewise.
1904         (streamer_hooks_init): Move to streamer-hooks.c.
1905         * lto-streamer.h: Include diagnostic.h
1906         (struct output_block, struct lto_input_block,
1907         struct data_in, struct bitpack_d): Remove forward declarations.
1908         (struct bitpack_d): Move to data-streamer.h.
1909         (struct lto_streamer_cache_d): Move to tree-streamer.h.
1910         (struct streamer_hooks): Move to streamer-hooks.h.
1911         (bp_pack_var_len_unsigned): Move to data-streamer.h.
1912         (bp_pack_var_len_int): Likewise.
1913         (bp_unpack_var_len_unsigned): Likewise.
1914         (bp_unpack_var_len_int): Likewise.
1915         (lto_input_location): Declare.
1916         (lto_tag_check_set): Declare.
1917         (lto_init_eh): Declare.
1918         (lto_output_tree_ref): Declare.
1919         (lto_output_location): Declare.
1920         (bitpack_create): Move to data-streamer.h.
1921         (bp_pack_value): Likewise.
1922         (lto_output_bitpack): Likewise.
1923         (lto_input_bitpack): Likewise.
1924         (bp_unpack_value): Likewise.
1925         (lto_output_1_stream): Likewise.
1926         (lto_input_1_unsigned): Likewise.
1927         (lto_output_int_in_range): Likewise.
1928         (lto_input_int_in_range): Likewise.
1929         (bp_pack_int_in_range): Likewise.
1930         (bp_unpack_int_in_range): Likewise.
1931         (lto_output_enum): Likewise.
1932         (lto_input_enum): Likewise.
1933         (bp_pack_enum): Likewise.
1934         (bp_unpack_enum): Likewise.
1935         * streamer-hooks.c: New.
1936         * streamer-hooks.h: New.
1937         * tree-streamer-in.c: New.
1938         * tree-streamer-out.c: New.
1939         * tree-streamer.c: New.
1940         * tree-streamer.h: New.
1941
1942 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1943
1944         * gthr-posix95.h: Remove.
1945         * gthr.h [_PTHREADS95]: Remove.
1946         * configure.ac (enable_threads): Remove posix95.
1947         * configure: Regenerate.
1948         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
1949
1950 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
1951
1952         PR target/49781
1953         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
1954         SImode addresses.
1955         (ix86_print_operand_address): Handle zero-extended addresses.
1956         (memory_address_length): Add length of addr32 prefix for
1957         zero-extended addresses.
1958         (ix86_secondary_reload): Handle moves to/from double-word general
1959         registers from/to zero-extended addresses.
1960         * config/i386/predicates.md (lea_address_operand): Reject
1961         zero-extended operands.
1962
1963 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
1964
1965         PR other/48007
1966         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
1967
1968         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
1969         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
1970
1971         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
1972         (_Unwind_Context_Reg_Val): Likewise.
1973         (_Unwind_Get_Unwind_Word): Likewise.
1974         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
1975         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
1976         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
1977         for EXTENDED_CONTEXT_BIT.
1978         (__frame_state_for): Likewise.
1979         (uw_init_context_1): Likewise.
1980         (_Unwind_GetGR): Updated.
1981         (_Unwind_SetGR): Likewise.
1982         (_Unwind_GetGRPtr): Likewise.
1983         (_Unwind_SetGRPtr): Likewise.
1984         (_Unwind_SetGRValue): Likewise.
1985         (_Unwind_GRByValue): Likewise.
1986         (uw_install_context_1): Likewise.
1987
1988         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
1989         ASSUME_EXTENDED_UNWIND_CONTEXT.
1990         * doc/tm.texi: Regenerated.
1991
1992 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1993
1994         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
1995
1996 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1997
1998         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
1999         Linux/GNU-specific.
2000         (DEC Alpha Options, -mtune): Likewise.
2001         (MIPS Options, -march): native is supported on IRIX.
2002
2003 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2004
2005         * config/sparc/driver-sparc.c: New file.
2006         * config/sparc/x-sparc: New file.
2007         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
2008         * config/sparc/sparc.opt (native): New value for enum processor_type.
2009         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
2010         * config/sparc/sparc.c (sparc_option_override): Abort if
2011         PROCESSOR_NATIVE gets here.
2012         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
2013         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
2014         DRIVER_SELF_SPECS): Define.
2015         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
2016         (SPARC Options, -mtune): Likewise.
2017         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
2018         Substitute result.
2019         * configure: Regenerate.
2020         * Makefile.in (EXTRA_GCC_LIBS): Set.
2021         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
2022         (cpp$(exeext)): Likewise.
2023
2024 2011-08-08  Richard Guenther  <rguenther@suse.de>
2025
2026         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
2027         split out from ...
2028         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
2029         by composition.
2030
2031 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
2032
2033         PR tree-optimization/50005
2034         * ipa-inline-analysis (remap_predicate): Add cast to
2035         silence signed/unsigned comparison warning.
2036
2037 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
2038
2039         * modulo-sched.c (get_sched_window): Use a table for the debug output.
2040         Print the current ii.
2041         (sms_schedule_by_order): Reduce whitespace in dump line.
2042
2043 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
2044
2045         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
2046         and one loop for successors.  Fix upper bound of memory range.
2047
2048 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
2049
2050         PR target/50001
2051         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
2052         (TARGET_INSTANTIATE_DECLS): New define.
2053
2054 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
2055             Mikael Morin   <mikael.morin@sfr.fr>
2056
2057         * Makefile.in (INCLUDES_FOR_TARGET): New.
2058         (LIBGCC2_CFLAGS): Use it.
2059         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
2060
2061 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
2062
2063         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
2064         frame->save_regs_using_mov calculation.
2065
2066 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
2067
2068         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
2069         * config/i386/sse.md (castmode): New mode attribute.
2070         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
2071         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
2072
2073 2011-08-05  Jan Hubicka  <jh@suse.cz>
2074
2075         PR middle-end/49494
2076         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
2077
2078 2011-08-05  Jan Hubicka  <jh@suse.cz>
2079
2080         PR middle-end/49500
2081         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
2082         handle aliases.
2083         (create_emultls_var):New function.
2084         (ipa_lower_emutls): Handle aliases correctly.
2085
2086 2011-08-05  Jan Hubicka  <jh@suse.cz>
2087
2088         PR middle-end/49735
2089         * ipa-inline.c (recursive_inlining): Look through aliases.
2090
2091 2011-08-05  Jason Merrill  <jason@redhat.com>
2092
2093         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
2094         declarations to beginning of function.
2095
2096 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
2097
2098         PR rtl-optimization/49900
2099         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
2100         ensure basic blocks stay in the same order.
2101
2102 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
2103
2104         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
2105         store_bit_field.
2106         (s390_expand_atomic): Same.
2107
2108 2011-08-05  Richard Henderson  <rth@redhat.com>
2109
2110         PR rtl-opt/49977
2111         * dwarf2cfi.c (scan_insn_after): Split out of ...
2112         (scan_trace): ... here.  Correctly place notes wrt sequences.
2113
2114 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2115             Richard Henderson  <rth@redhat.com>
2116
2117         PR rtl-opt/49982
2118         * expr.c (fixup_args_size_notes): Look through no-op moves.
2119
2120 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2121
2122         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
2123         of "m" for operand 0.  Add type and mode attribute.
2124         (*pushxf_nointeger"): Use "<" constraint for operand 0.
2125         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
2126         constraint instead of "o" for opreand 1.
2127         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
2128         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
2129         operand 0, alternative 4.
2130         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
2131
2132 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2133
2134         * config/i386/predicates.md (lea_address_operand): Rename from
2135         no_seg_address_operand.
2136         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
2137         (*lea_1_zext): Ditto.
2138         (*lea_2): Ditto.
2139         (*lea_2_zext): Ditto.
2140
2141 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
2144         parts.base and parts.index.
2145         * config/i386/predicates.md (aligned_operand): Ditto.
2146         (cmpxchg8b_pic_memory_operand): Ditto.
2147
2148 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2149
2150         * config/soft-fp: Move to ../libgcc.
2151         * Makefile.in (SFP_MACHINE): Remove.
2152         (libgcc-support): Remove $(SFP_MACHINE) dependency.
2153         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
2154         * config/arm/t-arm-softfp: Move to
2155         ../libgcc/config/arm/t-softfp.
2156         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
2157         * config/c6x/t-c6x-softfp: Remove.
2158         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
2159         * config/i386/t-fprules-softfp: Move to
2160         ../libgcc/config/t-softfp-tf.
2161         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
2162         * config/ia64/t-fprules-softfp: Remove.
2163         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
2164         * config/lm32/t-fprules-softfp: Remove.
2165         * config/moxie/sfp-machine.h: Remove.
2166         * config/moxie/t-moxie-softfp: Remove.
2167         * config/rs6000/darwin-ldouble-format: Move to
2168         ../libgcc/config/rs6000/ibm-ldouble-format.
2169         * config/rs6000/darwin-ldouble.c: Move to
2170         ../libgcc/config/rs6000/ibm-ldouble.c
2171         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
2172         * config/rs6000/libgcc-ppc64.ver: Likewise.
2173         * config/rs6000/sfp-machine.h: Likewise.
2174         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
2175         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
2176         (LIB2FUNCS_EXTRA): Remove.
2177         (TARGET_LIBGCC2_CFLAGS): Remove.
2178         * config/rs6000/t-aix52: Likewise
2179         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2180         $(srcdir)/config/rs6000/darwin-ldouble.c.
2181         (SHLIB_MAPFILES): Remove.
2182         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
2183         $(srcdir)/config/rs6000/darwin-ldouble.c.
2184         * config/rs6000/t-fprules-softfp: Move to
2185         ../libgcc/config/t-softfp-sfdf.
2186         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
2187         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
2188         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
2189         $(srcdir)/config/rs6000/darwin-ldouble.c.
2190         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
2191         * config/score/t-score-softfp: Remove.
2192         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
2193         soft-fp/t-softfp from tmake_file.
2194         (arm*-*-uclinux*): Likewise.
2195         (arm*-*-ecos-elf): Likewise.
2196         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
2197         (arm*-*-rtems*): Likewise.
2198         (arm*-*-elf): Likewise.
2199         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
2200         tmake_file.
2201         (moxie-*-uclinux*): Likewise.
2202         (moxie-*-rtems*): Likewise.
2203         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
2204         tmake_file.
2205         (lm32-*-rtems*): Likewise.
2206         (lm32-*-uclinux*): Likewise.
2207         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
2208         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2209         (powerpc-*-linux*, powerpc64-*-linux*): Remove
2210         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2211         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
2212         tmake_file.
2213         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
2214         tmake_file.
2215         (tic6x-*-uclinux): Likewise.
2216         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
2217         soft-fp/t-softfp from tmake_file.
2218         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
2219         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
2220         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
2221         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2222         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
2223
2224 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2225
2226         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
2227         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
2228         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
2229         TPBIT, TPBIT_FUNCS.
2230         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
2231         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
2232         Remove.
2233         * config/arm/t-vxworks: Likewise.
2234         * config/arm/t-wince-pe: Likewise.
2235         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
2236         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2237         * config/bfin/t-bfin-elf: Likewise.
2238         * config/bfin/t-bfin-linux: Likewise.
2239         * config/bfin/t-bfin-uclinux: Likewise.
2240         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
2241         Remove.
2242         * config/fr30/t-fr30: Likewise.
2243         * config/frv/t-frv: Likewise.
2244         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
2245         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2246         * config/m32c/t-m32c: Likewise.
2247         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
2248         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2249         * config/mcore/t-mcore: Likewise.
2250         * config/mep/t-mep: Likewise.
2251         * config/microblaze/t-microblaze: Likewise.
2252         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
2253         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2254         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
2255         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2256         * config/mn10300/t-linux: Remove.
2257         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2258         * config/pdp11/t-pdp11: Likewise.
2259         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
2260         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
2261         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2262         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
2263         * config/rs6000/t-aix52: Likewise.
2264         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2265         $(srcdir)/config/rs6000/ppc64-fp.c.
2266         * config/rs6000/t-fprules-fpbit: Remove.
2267         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
2268         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2269         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
2270         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2271         * config/sparc/t-elf: Likewise.
2272         * config/sparc/t-leon: Likewise.
2273         * config/sparc/t-leon3: Likewise.
2274         * config/spu/t-spu-elf: Likewise.
2275         (DPBIT_FUNCS): Remove.
2276         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2277         * config/v850/t-v850: Likewise.
2278         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
2279         (avr-*-*): Likewise.
2280         (h8300-*-rtems*): Set libgcc_tm_file.
2281         (h8300-*-elf*): Likewise.
2282         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
2283         tmake_file.
2284         (powerpc-*-eabisim*): Likewise.
2285         (powerpc-*-elf*): Likewise.
2286         (powerpc-*-eabialtivec*): Likewise.
2287         (powerpc-xilinx-eabi*): Likewise.
2288         (powerpc-*-eabi*): Likewise.
2289         (powerpc-*-rtems*): Likewise.
2290         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
2291         (powerpcle-*-elf*): Likewise.
2292         (powerpcle-*-eabisim*): Likewise.
2293         (powerpcle-*-eabi*): Likewise.
2294         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
2295         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
2296         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
2297         Remove.
2298
2299 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2300
2301         * Makefile.in (UNWIND_H): Remove.
2302         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
2303         ../libgcc/Makefile.in.
2304         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
2305         (LIBUNWINDDEP): Remove.
2306         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
2307         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
2308         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
2309         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
2310         Don't copy $(UNWIND_H).
2311         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
2312         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
2313         * aclocal.m4: Regenerate.
2314         * configure: Regenerate.
2315         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
2316         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
2317         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
2318         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
2319         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
2320         * config/arm/libunwind.S, config/arm/pr-support.c,
2321         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
2322         ../libgcc/config/arm.
2323         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
2324         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
2325         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
2326         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
2327         ($(T)frvend$(objext)): Likewise.
2328         * config/ia64/t-glibc (LIB2ADDEH): Remove.
2329         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
2330         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
2331         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
2332         ../libgcc/config/ia64.
2333         * config/ia64/t-hpux (LIB2ADDEH): Remove.
2334         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
2335         * config/ia64/t-vms (LIB2ADDEH): Remove.
2336         * config/ia64/vms.h (UNW_IVMS_MODE,
2337         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
2338         * config/picochip/t-picochip (LIB2ADDEH): Remove.
2339         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
2340         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
2341         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
2342         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
2343         $(srcdir)/../libgcc to refer to unwinder sources.
2344         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
2345         * config/t-darwin (LIB2ADDEH): Remove.
2346         * config/t-freebsd (LIB2ADDEH): Remove.
2347         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
2348         * config/t-libunwind-elf: Move to ../libgcc/config.
2349         * config/t-linux (LIB2ADDEH): Remove.
2350         * config/t-sol2 (LIB2ADDEH): Remove.
2351         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
2352         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
2353
2354 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
2355
2356         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
2357
2358         * doc/invoke.texi: Document core-avx-i.
2359
2360 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2361
2362         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
2363
2364 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
2365
2366         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
2367         result of multiple results reduction when extracting the final
2368         value using scalar code.
2369
2370 2011-08-05  Richard Guenther  <rguenther@suse.de>
2371
2372         PR tree-optimization/49984
2373         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
2374
2375 2011-08-05  Richard Guenther  <rguenther@suse.de>
2376
2377         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
2378         return true for constant integer ranges.
2379         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
2380         BIT_IOR_EXPR handling.
2381
2382 2011-08-04  Kai Tietz  <ktietz@redhat.com>
2383
2384         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
2385         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
2386
2387 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
2388
2389         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
2390         pattern def statement, and its access macro.
2391         (NUM_PATTERNS): Set to 5.
2392         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
2393         pattern def statement.
2394         (vect_transform_loop): Likewise.
2395         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
2396         function vect_recog_over_widening_pattern ().
2397         (vect_operation_fits_smaller_type): New function.
2398         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
2399         Likewise.
2400         (vect_pattern_recog_1): Move the code that marks pattern
2401         statements to vect_mark_pattern_stmts (), and call it.  Update
2402         documentation.
2403         * tree-vect-stmts.c (vect_supportable_shift): New function.
2404         (vect_analyze_stmt): Handle pattern def statement.
2405         (new_stmt_vec_info): Initialize pattern def statement.
2406
2407 2011-08-04  Richard Henderson  <rth@redhat.com>
2408
2409         PR target/49964
2410         * config/i386/i386.c (ix86_expand_call): Don't create nested
2411         PARALLELs for TARGET_VZEROUPPER.
2412         (ix86_split_call_vzeroupper): Fix extraction of the original call.
2413         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
2414         recognize nested PARALLELs.
2415         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
2416         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
2417         *sibcall_value_pop_vzeroupper): Likewise.
2418
2419 2011-08-04  Richard Henderson  <rth@redhat.com>
2420
2421         PR middle-end/49968
2422         * calls.c (expand_call): Use fixup_args_size_notes for
2423         emit_stack_restore.
2424         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
2425         in non-standard modes.
2426
2427 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
2428
2429         * gcc.c (self_spec): New variable.
2430         (static_specs): Add self_spec.
2431         (main): Call do_self_spec on "self_spec" specs after reading
2432         user specs files.  Move compare_debug handling right after that.
2433
2434 2011-08-04  Richard Guenther  <rguenther@suse.de>
2435
2436         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
2437         (value_range_nonnegative_p): New function.
2438         (ssa_name_nonnegative_p): Use it.
2439         (value_range_constant_singleton): New function.
2440         (op_with_constant_singleton_value_range): Use it.
2441         (extract_range_from_binary_expr_1): New function, split out from ...
2442         (extract_range_from_binary_expr): ... this.  Remove fallback
2443         constant folding done here.
2444
2445 2011-08-04  Richard Guenther  <rguenther@suse.de>
2446
2447         PR tree-optimization/49806
2448         * tree-vrp.c (op_with_boolean_value_range_p): New function.
2449         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
2450         a new statement for a final conversion to bool.
2451
2452 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
2453
2454         * gengtype-state.c: Include "bconfig.h" if
2455         GENERATOR_FILE is defined, "config.h" otherwise.
2456         * gengtype.c: Likewise.
2457         * gengtype-lex.l: Likewise.
2458         * gengtype-parse.c: Likewise.
2459         * Makefile.in (gengtype-lex.o-warn): New variable.
2460         (plugin_resourcesdir): Likewise.
2461         (plugin_bindir): Likewise.
2462         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
2463         (MOSTLYCLEANFILES): Add gengtype$(exeext).
2464         (native): Depend on gengtype$(exeext) is $enable_plugin
2465         is set to "yes".
2466         (gtype.state): Depend on s-gtype. Use temporary file.
2467         (gengtype-lex.o): New rule.
2468         (gengtype-parse.o): Likewise.
2469         (gengtype-state.o): Likewise.
2470         (gengtype$(exeext)): Likewise.
2471         (install-gengtype): Likewise.
2472         (gengtype.o): Likewise.
2473         (build/gengtype.o): Depend on version.h.
2474         (build/gengtype-state): Depend on double-int.h, version.h,
2475         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
2476         (install-plugin): Depend on install-gengtype.
2477
2478 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
2479
2480         PR middle-end/49905
2481         * tree.h (init_attributes): New prototype.
2482         * attribs.c (init_attributes): No longer static.
2483
2484 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2485
2486         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
2487         maybe_suffix.
2488
2489 2011-08-03   David Li  <davidxl@google.com>
2490
2491         * tree-optimize.c (execute_fixup_cfg): Fix up entry
2492         outgoing edge counts after inlining.
2493
2494 2011-08-03   David Li  <davidxl@google.com>
2495
2496         * profile.c (compute_branch_probabilities): Compute
2497         function frequency after profile annotation.
2498
2499 2011-08-04  Alan Modra  <amodra@gmail.com>
2500
2501         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
2502         use_backchain_to_restore_sp initialisation.
2503         (rs6000_legitimate_offset_address_p): Simplify offset test.
2504
2505 2011-08-03  Richard Henderson  <rth@redhat.com>
2506
2507         * config/spu/spu.md: Use define_c_enum instead of define_constants.
2508         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
2509         (UNSPECV_NOP): New.
2510
2511 2011-08-03  Richard Henderson  <rth@redhat.com>
2512
2513         PR target/34888
2514         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
2515
2516 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
2517
2518         PR tree-optimization/49948
2519         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
2520
2521 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
2522
2523         * config/m32c/m32c.c (class_sizes): Remove.
2524         (reduce_class): Change arguments and return type to reg_class_t.
2525         Change type cc var to HARD_REG_SET. Change type best var to
2526         reg_class_t. Change type best_size var to unsigned int. Remove
2527         initialization class_sizes var. Use reg_class_size array instead
2528         of class_sizes. Use reg_class_contents array instead
2529         of class_contents.
2530
2531 2011-08-03  Richard Guenther  <rguenther@suse.de>
2532
2533         PR middle-end/49958
2534         * fold-const.c (fold_binary_loc): Only associate
2535         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
2536         overflow wraps.
2537
2538 2011-08-03  Alan Modra  <amodra@gmail.com>
2539
2540         PR rtl-optimization/49941
2541         * jump.c (mark_jump_label): Comment.
2542         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
2543         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
2544         (mark_used_flags): Don't mark RETURN.
2545
2546 2011-08-03  Richard Guenther  <rguenther@suse.de>
2547
2548         PR tree-optimization/49938
2549         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
2550         deal with a POLYNOMIAL_CHREC.
2551
2552 2011-08-03  Revital Eres  <revital.eres@linaro.org>
2553
2554         * modulo-sched.c (calculate_stage_count,
2555         calculate_must_precede_follow, get_sched_window,
2556         try_scheduling_node_in_cycle, remove_node_from_ps): Add
2557         declaration.
2558         (update_node_sched_params, set_must_precede_follow, optimize_sc):
2559         New functions.
2560         (reset_sched_times): Call update_node_sched_params.
2561         (sms_schedule): Call optimize_sc.
2562         (get_sched_window): Change function arguments.
2563         (sms_schedule_by_order): Update call to get_sched_window.
2564         Call set_must_precede_follow.
2565         (calculate_stage_count): Add function argument.
2566
2567 2011-08-02  Richard Henderson  <rth@redhat.com>
2568
2569         PR target/49864
2570         PR target/49879
2571         * reg-notes.def (REG_ARGS_SIZE): New.
2572         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
2573         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
2574         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
2575         different stack levels.
2576         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
2577         (maybe_move_args_size_note): New.
2578         (combine_stack_adjustments_for_block): Use it.
2579         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
2580         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
2581         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
2582         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
2583         (cur_cfa): New.
2584         (queued_args_size): Remove.
2585         (add_cfi_args_size): Assert size is non-negative.
2586         (stack_adjust_offset, dwarf2out_args_size): Remove.
2587         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
2588         (notice_args_size, notice_eh_throw): New.
2589         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
2590         (dwarf2out_frame_debug_adjust_cfa): Likewise.
2591         (dwarf2out_frame_debug_cfa_offset): Likewise.
2592         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
2593         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
2594         (change_cfi_row): Don't emit args_size.
2595         (maybe_record_trace_start_abnormal): Split out from ...
2596         (maybe_record_trace_start): Here.  Set args_size_undefined.
2597         (create_trace_edges): Update to match.
2598         (scan_trace): Handle REG_ARGS_SIZE.
2599         (connect_traces): Connect args_size between EH insns.
2600         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
2601         * explow.c (suppress_reg_args_size): New.
2602         (adjust_stack_1): Split out from ...
2603         (adjust_stack): ... here.
2604         (anti_adjust_stack): Use it.
2605         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
2606         * expr.c (mem_autoinc_base): New.
2607         (fixup_args_size_notes): New.
2608         (emit_single_push_insn_1): Rename from emit_single_push_insn.
2609         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
2610         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
2611         * reload1.c (reload_as_needed): Likewise.
2612         * rtl.h (fixup_args_size_notes): Declare.
2613
2614 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
2615
2616         PR bootstrap/49914
2617         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
2618         of abs.
2619         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2620         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2621
2622 2011-08-02  Richard Henderson  <rth@redhat.com>
2623
2624         * config/h8300/h8300.c (push, pop): Return the insn.
2625         (h8300_swap_into_er6): Generate correct unwind info.
2626         (h8300_swap_out_of_er6): Likewise.
2627         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
2628         complex cfa expression.
2629         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
2630
2631 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
2632
2633         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
2634
2635 2011-08-02  Richard Henderson  <rth@redhat.com>
2636
2637         PR target/49878
2638         * config/h8300/h8300.c (h8300_move_ok): New.
2639         * config/h8300/h8300-protos.h: Declare it.
2640         * config/h8300/h8300.md (P): New mode iterator.
2641         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
2642         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
2643         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
2644         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
2645         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
2646         and pushqi1_h8300hs_normal; use PRE_MODIFY and
2647         register_no_sp_elim_operand.
2648         (*pushhi1_h8300hs_<P>): Similarly.
2649         (pushqi1, pushhi1, pushhi1_h8300): Remove.
2650         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
2651
2652 2011-08-02  Richard Henderson  <rth@redhat.com>
2653
2654         PR target/49881
2655         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
2656
2657 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
2658
2659         * c-parser.c (enum c_parser_prec): New enum, moved from within
2660         c_parser_binary_expression.
2661         (c_parser_binary_expression): Add PREC argument.  Stop parsing
2662         if operator has lower or equal precedence than PREC.
2663         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
2664         callers.
2665         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
2666         Adjust c_finish_omp_atomic caller.
2667         (c_parser_omp_taskyield): New function.
2668         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
2669         (c_parser_omp_clause_name): Handle final and mergeable clauses.
2670         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
2671         functions.
2672         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
2673         and PRAGMA_OMP_CLAUSE_MERGEABLE.
2674         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
2675         (c_parser_omp_clause_reduction): Handle min and max.
2676         * c-typeck.c (c_finish_omp_clauses): Don't complain about
2677         const qualified predetermined vars in firstprivate clause.
2678         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2679         Handle MIN_EXPR and MAX_EXPR.
2680         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
2681         and OMP_CLAUSE_MERGEABLE.
2682         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
2683         and OMP_ATOMIC_CAPTURE_NEW.
2684         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
2685         OMP_CLAUSE_MERGEABLE.
2686         (omp_clause_code_name): Likewise.
2687         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2688         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
2689         and OMP_CLAUSE_MERGEABLE.
2690         (OMP_CLAUSE_FINAL_EXPR): Define.
2691         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
2692         OMP_CLAUSE_MERGEABLE.
2693         (expand_task_call): Likewise.
2694         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
2695         (expand_omp_atomic_fetch_op): Handle cases where old or new
2696         value is needed afterwards.
2697         (expand_omp_atomic): Call expand_omp_atomic_load resp.
2698         expand_omp_atomic_store.
2699         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
2700         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
2701         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
2702         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2703         * tree-nested.c (convert_nonlocal_omp_clauses,
2704         convert_local_omp_clauses): Likewise.
2705         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
2706         OMP_ATOMIC_CAPTURE_NEW): New.
2707         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
2708         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
2709         New inlines.
2710         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
2711         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
2712         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2713
2714 2011-08-02  Kai Tietz  <ktietz@redhat.com>
2715
2716         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
2717         boolean-type.
2718         (ssa_forward_propagate_and_combine): Interprete result of
2719         forward_propagate_comparison.
2720         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
2721         boolean-typed operands for comparisons.
2722
2723 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
2724
2725         * config/avr/libgcc.S: Gather related function in the
2726         same input section.
2727         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
2728         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
2729         references.
2730         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
2731         __udivmodsi4, __divmodsi4, __prologue_saves__,
2732         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
2733         __do_copy_data, __do_clear_bss, __do_global_ctors,
2734         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
2735
2736 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
2737
2738         PR target/47766
2739         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
2740         (stack_protect_test): The pattern compares ptr_mode value.
2741
2742 2011-08-02  Alan Modra  <amodra@gmail.com>
2743
2744         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
2745         note for save_LR_around_toc_setup sequence.
2746
2747 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2748
2749         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
2750
2751 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
2752             Joseph Myers  <joseph@codesourcery.com>
2753
2754         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
2755         * hwint.c: Include diagnostic-core.h.
2756         (abs_hwi): New.
2757         (gcd): Moved here...
2758         (pos_mul_hwi): New.
2759         (mul_hwi): New.
2760         (least_common_multiple): Moved here...
2761         * hwint.h (gcd): ... from here.
2762         (least_common_multiple): ... from here.
2763         (HOST_WIDE_INT_MIN): New.
2764         (HOST_WIDE_INT_MAX): New.
2765         (abs_hwi): Declared.
2766         (gcd): Declared.
2767         (pos_mul_hwi): Declared.
2768         (mul_hwi): Declared.
2769         (least_common_multiple): Declared.
2770         * omega.c (check_pos_mul): Removed.
2771         (check_mul): Removed.
2772         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
2773         mul_hwi instead of check_mul.
2774
2775 2011-08-01  Richard Henderson  <rth@redhat.com>
2776
2777         PR target/49881
2778         * config/avr/avr.h (PUSH_ROUNDING): New.
2779         * config/avr/avr.md (pushqi1): Rename from *pushqi.
2780         (*pushhi, *pushsi, *pushsf): Remove.
2781         (MPUSH): New mode iterator.
2782         (push<MPUSH>1): New expander.
2783
2784 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
2785
2786         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
2787         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2788         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
2789         mmix_preferred_output_reload_class): Remove.
2790         * config/mmix/mmix.c (mmix_preferred_reload_class,
2791         mmix_preferred_output_reload_class): Make static. Change rclass
2792         argument and return type to reg_class_t.
2793         (TARGET_PREFERRED_RELOAD_CLASS,
2794         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2795
2796 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
2797
2798         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
2799         handling.
2800
2801 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2802
2803         PR target/47766
2804         * config/i386/i386.md (PTR): New.
2805         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
2806         (stack_protect_test): Likewise.
2807         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
2808         (stack_tls_protect_set_<mode>): Likewise.
2809         (stack_tls_protect_test_<mode>): Likewise.
2810
2811 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
2812
2813         PR target/49927
2814         * config/i386/i386.c (ix86_address_subreg_operand): New.
2815         (ix86_decompose_address): Use ix86_address_subreg_operand.
2816         (ix86_legitimate_address_p): Do not assert that subregs satisfy
2817         register_no_elim_operand in DImode.
2818
2819 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
2820
2821         PR tree-optimization/49926
2822         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
2823         in a chain doesn't have uses both inside and outside the loop.
2824
2825 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
2826
2827         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
2828         * config/avr/avr-devices.c (avr_mcu_types): Use it.
2829         * config/avr/avr-mcus.def (AVR_MCU): Use it.
2830         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
2831         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
2832         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
2833         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
2834         to detect if XJMP must not be skipped.
2835
2836 2011-08-02  Alan Modra  <amodra@gmail.com>
2837
2838         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
2839         Delete.
2840         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
2841         (rs6000_emit_prologue): Don't prematurely return when
2842         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
2843         save_toc_in_prologue case.
2844         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
2845         calls_alloca.
2846
2847 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
2848
2849         * config/avr/avr-devices.c: Delete SVN property svn:executable.
2850         * config/avr/predicates.md: Ditto.
2851         * config/avr/driver-avr.c: Ditto.
2852         * config/avr/genopt.sh: Set SVN property svn:executable to *.
2853
2854 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2855
2856         * calls.c (emit_library_call_value_1): Declare size only if
2857         BLOCK_REG_PADDING is defined.
2858
2859 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
2860
2861         PR target/49547
2862         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
2863         (x86_64-*-*): Likewise.
2864         * config/i386/i386.opt (mlzcnt): New.
2865         * config/i386/abmintrin.h: File removed.
2866         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
2867         * config/i386/lzcntintrin.h: ... here.  New file.
2868         (__lzcnt): Rename to ...
2869         (__lzcnt32): ... this.
2870         * config/i386/bmiintrin.h (head): Update copyright year.
2871         (__lzcnt_u16): Removed.
2872         (__lzcnt_u32): Likewise.
2873         (__lzcnt_u64): Likewise.
2874         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
2875         is defined, remove abmintrin.h.
2876         * config/i386/cpuid.h (bit_LZCNT): New.
2877         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2878         LZCNT feature.
2879         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2880         __LZCNT__ if needed.
2881         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
2882         (ix86_option_override_internal): Handle LZCNT option.
2883         (ix86_valid_target_attribute_inner_p): Likewise.
2884         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
2885         * config/i386/i386.h (TARGET_LZCNT): New.
2886         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
2887         * config/i386/i386.md (clz<mode>2): Update insn constraint.
2888         (clz<mode>2_lzcnt): Likewise.
2889         * doc/invoke.texi: Mention -mlzcnt option.
2890         * doc/extend.texi: Likewise.
2891
2892 2011-08-01  Julian Brown  <julian@codesourcery.com>
2893
2894         * configure.ac (fixed-point): Add ARM support.
2895         * configure: Regenerate.
2896         * config/arm/arm.c (arm_fixed_mode_set): New struct.
2897         (arm_set_fixed_optab_libfunc): New.
2898         (arm_set_fixed_conv_libfunc): New.
2899         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
2900         ARM-specific names.
2901         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
2902         return values in SImode.
2903         (arm_return_in_msb): Return fixed-point types in the msb.
2904         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
2905         upwards.
2906         (arm_scalar_mode_supported_p): Support fixed-point modes.
2907         (arm_vector_mode_supported_p): Support vector fixed-point modes.
2908         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
2909         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
2910         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
2911         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
2912         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
2913         New mode iterators.
2914         (qaddsub_suf): New mode attribute.
2915         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
2916         vector modes.
2917         * config/arm/predicates.md (sat_shift_operator): New predicate.
2918         * config/arm/arm-fixed.md: New.
2919         * config/arm/arm.md: Include arm-fixed.md.
2920         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
2921
2922 2011-08-01  Julian Brown  <julian@codesourcery.com>
2923
2924         * calls.c (emit_library_call_value_1): Support padding for libcall
2925         arguments and return values.
2926         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
2927         downwards in big-endian mode.
2928
2929 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2930
2931         PR debug/49887
2932         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
2933         * config/sol2-protos.h: Likewise.
2934         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
2935         solaris_code_end.
2936         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
2937         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
2938         solaris_file_end.
2939         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
2940
2941 2011-08-01  Julian Brown  <julian@codesourcery.com>
2942
2943         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
2944
2945 2011-08-01  Julian Brown  <julian@codesourcery.com>
2946
2947         * final.c (output_addr_const): Print fixed-point constants as
2948         decimal not hex.
2949
2950 2011-08-01  Richard Guenther  <rguenther@suse.de>
2951
2952         * stor-layout.c (initialize_sizetypes): Properly sign-extend
2953         bitsiztype TYPE_MAX_VALUE.
2954
2955 2011-08-01  Julian Brown  <julian@codesourcery.com>
2956
2957         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
2958         comparison helpers.
2959
2960 2011-07-31  Richard Henderson  <rth@redhat.com>
2961
2962         * config/h8300/crti.asm: Add flags to .section directive.
2963         * config/h8300/crtn.asm: Likewise.
2964
2965 2011-07-31  Richard Henderson  <rth@redhat.com>
2966
2967         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
2968         * tree.c (build_common_tree_nodes): Likewise.
2969
2970 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2971
2972         PR target/49880
2973         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
2974         (divsi3_i1): Likewise.
2975
2976 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2977
2978         PR tree-optimization/49749
2979         * tree-ssa-reassoc.c (get_rank): New forward declaration.
2980         (PHI_LOOP_BIAS): New macro.
2981         (phi_rank): New function.
2982         (loop_carried_phi): Likewise.
2983         (propagate_rank): Likewise.
2984         (get_rank): Add calls to phi_rank and propagate_rank.
2985
2986 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2987
2988         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
2989         of TARGET_64BIT.
2990         (PTRDIFF_TYPE): Likewise.
2991
2992 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
2993
2994         PR target/49920
2995         * config/i386/i386.md (strset): Do not expand strset_singleop
2996         when %eax or $edi are fixed.
2997         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
2998         (*strsetsi_1): Ditto.
2999         (*strsethi_1): Ditto.
3000         (*strsetqi_1): Ditto.
3001         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
3002         (*rep_stossi): Ditto.
3003         (*rep_stosqi): Ditto.
3004         (*strlenqi_1): Ditto.
3005         (cmpstrnsi): Also fail when %ecx is fixed.
3006         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
3007         (*cmpstrnqi_1): Ditto.
3008         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
3009         (*strmovsi_1): Ditto.
3010         (*strmovhi_1): Ditto.
3011         (*strmovqi_1): Ditto.
3012         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
3013         (*rep_movsi): Ditto.
3014         (*rep_movqi): Ditto.
3015
3016 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
3017
3018         PR target/47908
3019         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
3020         Disable instruction scheduling for non-ColdFire targets.
3021         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3022
3023 2011-07-31  Revital Eres  <revital.eres@linaro.org>
3024
3025         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
3026         of anti-dep edge from a branch.
3027         (add_cross_iteration_register_deps): Create anti-dep edge from
3028         a branch.
3029
3030 2011-07-31  Revital Eres  <revital.eres@linaro.org>
3031
3032         * modulo-sched.c: Change comment.
3033         (reset_sched_times): Fix print message.
3034         (print_partial_schedule): Add print info.
3035
3036 2011-07-31  Tom de Vries  <tom@codesourcery.com>
3037
3038         PR middle-end/43513
3039         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
3040         get_object_alignment and TYPE_ALIGN.
3041
3042 2011-07-30  Tom de Vries  <tom@codesourcery.com>
3043
3044         PR middle-end/43513
3045         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
3046         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
3047
3048 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3049
3050         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
3051         <sys/sbd.h>.
3052         (cpu_types): New array.
3053         (cputype): New function.
3054         (host_detect_local_cpu): Only define buf, f if !__sgi__.
3055         Use scaninvent instead of /proc/cpuinfo if __sgi__.
3056         * config.host: Also use driver-native.o, mips/x-native on
3057         mips-sgi-irix*.
3058         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
3059         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
3060         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
3061
3062 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
3063
3064         PR middle-end/49897
3065         PR middle-end/49898
3066         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
3067         in nested parallel and outer is a gimple_reg, mark it as addressable
3068         and set its bit in task_shared_vars bitmap too.
3069
3070 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
3071
3072         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
3073
3074 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3075
3076         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
3077         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
3078         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
3079         AMASK_LOCKPFTCHOK): Define.
3080         (host_detect_local_cpu): Remove buf, f, cpu_names.
3081         Define cpu_types, implver, amask.
3082         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
3083         native CPU.
3084         * config.host: Also use driver-alpha.o, alpha/x-alpha on
3085         alpha*-dec-osf*.
3086         * config/alpha/osf5.h [__alpha__ || __alpha]
3087         (host_detect_local_cpu): Declare.
3088         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
3089         (DRIVER_SELF_SPECS): Define.
3090
3091 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
3092
3093         PR target/47715
3094         * config/i386/i386.md (*load_tp_x32): New.
3095         (*load_tp_x32_zext): Ditto.
3096         (*add_tp_x32): Ditto.
3097         (*add_tp_x32_zext): Ditto.
3098         (*load_tp_<mode>): Disable for TARGET_X32 targets.
3099         (*add_tp_<mode>): Ditto.
3100         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
3101         ptr_mode and convert to Pmode if needed.
3102
3103 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
3104
3105         PR target/49687
3106         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
3107         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
3108         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
3109         Add X to register footprint: Clobber r26/r27.
3110
3111 2011-07-29  Richard Guenther  <rguenther@suse.de>
3112
3113         * builtins.c (fold_builtin_signbit): Build the comparison
3114         with a proper type.
3115
3116 2011-07-29  Richard Guenther  <rguenther@suse.de>
3117
3118         PR tree-optimization/49893
3119         * tree-predcom.c (suitable_reference_p): Volatile references
3120         are not suitable.
3121
3122 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
3123
3124         PR target/49313
3125         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3126         (__ctzsi2): Result for 0 may be undefined.
3127         (__ctzhi2): Result for 0 may be undefined.
3128         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
3129         (__popcountsi2): Ditto. And don't clobber r26.
3130         (__popcountdi2): Ditto. And don't clobber r27.
3131         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
3132         (parityhi2): New expand.
3133         (paritysi2): New expand.
3134         (popcounthi2): New expand.
3135         (popcountsi2): New expand.
3136         (clzhi2): New expand.
3137         (clzsi2): New expand.
3138         (ctzhi2): New expand.
3139         (ctzsi2): New expand.
3140         (ffshi2): New expand.
3141         (ffssi2): New expand.
3142         (copysignsf3): New insn.
3143         (bswapsi2): New expand.
3144         (*parityhi2.libgcc): New insn.
3145         (*parityqihi2.libgcc): New insn.
3146         (*paritysihi2.libgcc): New insn.
3147         (*popcounthi2.libgcc): New insn.
3148         (*popcountsi2.libgcc): New insn.
3149         (*popcountqi2.libgcc): New insn.
3150         (*popcountqihi2.libgcc): New insn-and-split.
3151         (*clzhi2.libgcc): New insn.
3152         (*clzsihi2.libgcc): New insn.
3153         (*ctzhi2.libgcc): New insn.
3154         (*ctzsihi2.libgcc): New insn.
3155         (*ffshi2.libgcc): New insn.
3156         (*ffssihi2.libgcc): New insn.
3157         (*bswapsi2.libgcc): New insn.
3158
3159 2011-07-29  Richard Guenther  <rguenther@suse.de>
3160
3161         * tree-vrp.c (get_value_range): Only set parameter default
3162         definitions to varying, leave others at undefined.
3163         (extract_range_from_binary_expr): Fix undefined handling.
3164         (vrp_visit_phi_node): Handle merged undefined state.
3165
3166 2011-07-29  Wei Guozhi  <carrot@google.com>
3167
3168         PR rtl-optimization/49799
3169         * combine.c (make_compound_operation): Check if the bit field is valid
3170         before change it to bit field extraction.
3171
3172 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
3173
3174         PR rtl-optimization/49891
3175         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
3176         newly created returnjumps.
3177
3178 2011-07-28  DJ Delorie  <dj@redhat.com>
3179
3180         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
3181         local frame in a naked function, and produce a suitable error for
3182         that specific case.
3183
3184         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
3185         registers to be reloaded in HI classes when the target is HI.
3186
3187 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
3188
3189         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
3190         bound_one, bound_two.
3191
3192 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
3193
3194         PR middle-end/48648
3195         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
3196         CLAST assignments.
3197         (translate_clast): Same.
3198         (translate_clast_assignment): New.
3199
3200 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
3201
3202         PR tree-optimization/49876
3203         * sese.c (rename_uses): Do not return false on gloog_error: set
3204         the new_expr to integer_zero_node and continue code generation.
3205         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
3206
3207 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
3208
3209         PR debug/49846
3210         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
3211         arguments also check if they aren't initialized with a MODE_INT
3212         mode of the same size.
3213
3214 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
3215
3216         * expr.c (get_bit_range): Handle *MEM_REF's.
3217
3218 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
3219
3220         * rtlanal.c (tablejump_p): False for returns.
3221         * reorg.c (first_active_target_insn): New static function.
3222         (find_end_label): Set JUMP_LABEL for a new returnjump.
3223         (optimize_skip, get_jump_flags, rare_destination,
3224         mostly_true_jump, get_branch_condition,
3225         steal_delay_list_from_target, own_thread_p,
3226         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
3227         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
3228         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
3229         * jump.c (delete_related_insns): Likewise.
3230         (jump_to_label_p): New function.
3231         (redirect_target): New static function.
3232         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
3233         (redirect_jump_1): Assert that the new label is nonnull.
3234         (redirect_jump): Likewise.
3235         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
3236         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
3237         exit block.
3238         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
3239         changed.  Ensure that the right label is passed to redirect_jump.
3240         * function.c (emit_return_into_block,
3241         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
3242         ret_rtx in their JUMP_LABEL.
3243         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
3244         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
3245         pass ret_rtx as label.
3246         * cfglayout.c (fixup_reorder_chain): Use
3247         force_nonfallthru_and_redirect rather than force_nonfallthru.
3248         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
3249         * rtl.h (ANY_RETURN_P): New macro.
3250         (jump_to_label_p): Declare.
3251         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
3252         JUMP_LABELs.
3253         (mark_target_live_regs): Likewise.
3254         * basic-block.h (force_nonfallthru_and_redirect): Declare.
3255         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
3256         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
3257         alpha_tablejump_best_label): Remove functions.
3258         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
3259         alpha_tablejump_best_label): Remove declarations.
3260         * config/sh/sh.c (barrier_align, split_branches): Adjust for
3261         ret_rtx in JUMP_LABELs.
3262         * config/arm/arm.c (is_jump_table): Likewise.
3263
3264 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
3265
3266         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
3267         special predicate.  Remove explicit mode checks.
3268
3269 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
3270
3271         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
3272         DW_AT_data_member_location containing just DW_OP_plus_uconst.
3273
3274         PR debug/49871
3275         * dwarf2out.c (size_of_die, value_format, output_die): Use
3276         DW_FORM_udata instead of DW_FORM_data[48] for
3277         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
3278
3279 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
3280
3281         * config/i386/i386.md (*tls_global_dynamic_64): Update
3282         length attribute.
3283
3284 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
3285
3286         PR target/47715
3287         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
3288         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
3289         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
3290         (tls_dynamic_gnu2_64): Ditto.
3291         (*tls_dynamic_gnu2_lea_64): Ditto.
3292         (*tls_dynamic_gnu2_call_64): Ditto.
3293         (*tls_dynamic_gnu2_combine_64): Ditto.
3294
3295 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
3296
3297         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
3298
3299 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
3300
3301         PR target/47364
3302         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
3303
3304 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3305
3306         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
3307         before the core constraints. Adjust attributes.
3308         ("*thumb2_movdf_vfp"): Likewise.
3309
3310 2011-07-28  Kai Tietz  <ktietz@redhat.com>
3311
3312         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
3313         (simplify_truth_ops_using_ranges): Likewise.
3314         (build_assert_expr_for): Likewise.
3315         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
3316         and handle BIT_NOT_EXPR for truth-operation.
3317
3318 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
3319
3320         PR target/49313
3321         Undo r176835 from trunk
3322         2011-07-27  Georg-Johann Lay
3323
3324 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
3325
3326         PR target/49687
3327         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
3328         Add _muluhisi3, _mulshisi3, _usmulhisi3.
3329         * config/avr/libgcc.S (__mulsi3): Rewrite.
3330         (__mulhisi3): Rewrite.
3331         (__umulhisi3): Rewrite.
3332         (__usmulhisi3): New.
3333         (__muluhisi3): New.
3334         (__mulshisi3): New.
3335         (__mulohisi3): New.
3336         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
3337         declare.
3338         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
3339         (pseudo_register_or_const_int_operand): New.
3340         (combine_pseudo_register_operand): New.
3341         (u16_operand): New.
3342         (s16_operand): New.
3343         (o16_operand): New.
3344         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
3345         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
3346         (any_extend, any_extend2): New code iterators.
3347         (extend_prefix): New code attribute.
3348         (mulsi3): Rewrite. Turn insn to expander.
3349         (mulhisi3): Ditto.
3350         (umulhisi3): Ditto.
3351         (usmulhisi3): New expander.
3352         (*mulsi3): New insn-and-split.
3353         (mulu<mode>si3): New insn-and-split.
3354         (muls<mode>si3): New insn-and-split.
3355         (mulohisi3): New insn-and-split.
3356         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
3357         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
3358         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
3359         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
3360         insn-and-split.
3361         (*mulsi3_call): Rewrite.
3362         (*mulhisi3_call): Rewrite.
3363         (*umulhisi3_call): Rewrite.
3364         (*usmulhisi3_call): New insn.
3365         (*muluhisi3_call): New insn.
3366         (*mulshisi3_call): New insn.
3367         (*mulohisi3_call): New insn.
3368         (extendqihi2): Use combine_pseudo_register_operand as predicate
3369         for operand 1.
3370         (extendqisi2): Ditto.
3371         (zero_extendqihi2): Ditto.
3372         (zero_extendqisi2): Ditto.
3373         (zero_extendhisi2): Ditto.
3374         (extendhisi2): Ditto. Don't early-clobber operand 0.
3375
3376 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
3377
3378         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
3379
3380 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
3381
3382         PR tree-optimization/49471
3383         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
3384         iv only when the largest type is unsigned.  Do not call
3385         lang_hooks.types.type_for_size.
3386
3387 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
3388
3389         PR middle-end/45450
3390         * graphite-poly.c (apply_poly_transforms): Disable legality check
3391         after an openscop read.
3392
3393 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
3394
3395         PR middle-end/47691
3396         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
3397         copy_bb_and_scalar_dependences.
3398         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
3399         (graphite_copy_stmts_from_block): Update call to rename_uses.
3400         (copy_bb_and_scalar_dependences): Update call to
3401         graphite_copy_stmts_from_block.
3402         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
3403
3404 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
3405
3406         PR target/49313
3407         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3408         (__ctzsi2): Result for 0 may be undefined.
3409         (__ctzhi2): Result for 0 may be undefined.
3410  &nb