OSDN Git Service

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