]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
[ARM] [Neon types 3/10] Update Current type attributes to new Neon Types.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f7379e5e
JG
12013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
2
3 * config/arm/iterators.md (V_elem_ch): New.
4 (q): Likewise.
5 (VQH_type): Likewise.
6 * config/arm/arm.md (is_neon_type): New.
7 (conds): Use is_neon_type.
8 (anddi3_insn): Update type attribute.
9 (xordi3_insn): Likewise.
10 (one_cmpldi2): Likewise.
11 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
12 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
13 (*movmisalign<mode>_neon_store): Likewise.
14 (*movmisalign<mode>_neon_load): Likewise.
15 (vec_set<mode>_internal): Likewise.
16 (vec_set<mode>_internal): Likewise.
17 (vec_setv2di_internal): Likewise.
18 (vec_extract<mode>): Likewise.
19 (vec_extract<mode>): Likewise.
20 (vec_extractv2di): Likewise.
21 (*add<mode>3_neon): Likewise.
22 (adddi3_neon): Likewise.
23 (*sub<mode>3_neon): Likewise.
24 (subdi3_neon): Likewise.
25 (fma<VCVTF:mode>4): Likewise.
26 (fma<VCVTF:mode>4_intrinsic): Likewise.
27 (*fmsub<VCVTF:mode>4): Likewise.
28 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
29 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
30 (ior<mode>3): Likewise.
31 (and<mode>3): Likewise.
32 (orn<mode>3_neon): Likewise.
33 (orndi3_neon): Likewise.
34 (bic<mode>3_neon): Likewise.
35 (bicdi3_neon): Likewise.
36 (xor<mode>3): Likewise.
37 (one_cmpl<mode>2): Likewise.
38 (abs<mode>2): Likewise.
39 (neg<mode>2): Likewise.
40 (negdi2_neon): Likewise.
41 (*umin<mode>3_neon): Likewise.
42 (*umax<mode>3_neon): Likewise.
43 (*smin<mode>3_neon): Likewise.
44 (*smax<mode>3_neon): Likewise.
45 (vashl<mode>3): Likewise.
46 (vashr<mode>3_imm): Likewise.
47 (vlshr<mode>3_imm): Likewise.
48 (ashl<mode>3_signed): Likewise.
49 (ashl<mode>3_unsigned): Likewise.
50 (neon_load_count): Likewise.
51 (ashldi3_neon_noclobber): Likewise.
52 (ashldi3_neon): Likewise.
53 (signed_shift_di3_neon): Likewise.
54 (unsigned_shift_di3_neon): Likewise.
55 (ashrdi3_neon_imm_noclobber): Likewise.
56 (lshrdi3_neon_imm_noclobber): Likewise.
57 (<shift>di3_neon): Likewise.
58 (widen_ssum<mode>3): Likewise.
59 (widen_usum<mode>3): Likewise.
60 (quad_halves_<code>v4si): Likewise.
61 (quad_halves_<code>v4sf): Likewise.
62 (quad_halves_<code>v8hi): Likewise.
63 (quad_halves_<code>v16qi): Likewise.
64 (reduc_splus_v2di): Likewise.
65 (neon_vpadd_internal<mode>): Likewise.
66 (neon_vpsmin<mode>): Likewise.
67 (neon_vpsmax<mode>): Likewise.
68 (neon_vpumin<mode>): Likewise.
69 (neon_vpumax<mode>): Likewise.
70 (*ss_add<mode>_neon): Likewise.
71 (*us_add<mode>_neon): Likewise.
72 (*ss_sub<mode>_neon): Likewise.
73 (*us_sub<mode>_neon): Likewise.
74 (neon_vadd<mode>_unspec): Likewise.
75 (neon_vaddl<mode>): Likewise.
76 (neon_vaddw<mode>): Likewise.
77 (neon_vhadd<mode>): Likewise.
78 (neon_vqadd<mode>): Likewise.
79 (neon_vaddhn<mode>): Likewise.
80 (neon_vmul<mode>): Likewise.
81 (neon_vfms<VCVTF:mode>): Likewise.
82 (neon_vmlal<mode>): Likewise.
83 (neon_vmls<mode>): Likewise.
84 (neon_vmlsl<mode>): Likewise.
85 (neon_vqdmulh<mode>): Likewise.
86 (neon_vqdmlal<mode>): Likewise.
87 (neon_vqdmlsl<mode>): Likewise.
88 (neon_vmull<mode>): Likewise.
89 (neon_vqdmull<mode>): Likewise.
90 (neon_vsub<mode>_unspec): Likewise.
91 (neon_vsubl<mode>): Likewise.
92 (neon_vsubw<mode>): Likewise.
93 (neon_vqsub<mode>): Likewise.
94 (neon_vhsub<mode>): Likewise.
95 (neon_vsubhn<mode>): Likewise.
96 (neon_vceq<mode>): Likewise.
97 (neon_vcge<mode>): Likewise.
98 (neon_vcgeu<mode>): Likewise.
99 (neon_vcgt<mode>): Likewise.
100 (neon_vcgtu<mode>): Likewise.
101 (neon_vcle<mode>): Likewise.
102 (neon_vclt<mode>): Likewise.
103 (neon_vcage<mode>): Likewise.
104 (neon_vcagt<mode>): Likewise.
105 (neon_vtst<mode>): Likewise.
106 (neon_vabd<mode>): Likewise.
107 (neon_vabdl<mode>): Likewise.
108 (neon_vaba<mode>): Likewise.
109 (neon_vabal<mode>): Likewise.
110 (neon_vmax<mode>): Likewise.
111 (neon_vmin<mode>): Likewise.
112 (neon_vpaddl<mode>): Likewise.
113 (neon_vpadal<mode>): Likewise.
114 (neon_vpmax<mode>): Likewise.
115 (neon_vpmin<mode>): Likewise.
116 (neon_vrecps<mode>): Likewise.
117 (neon_vrsqrts<mode>): Likewise.
118 (neon_vqabs<mode>): Likewise.
119 (neon_vqneg<mode>): Likewise.
120 (neon_vcls<mode>): Likewise.
121 (clz<mode>2): Likewise.
122 (popcount<mode>2): Likewise.
123 (neon_vrecpe<mode>): Likewise.
124 (neon_vrsqrte<mode>): Likewise.
125 (neon_vget_lane<mode>_sext_internal): Likewise.
126 (neon_vget_lane<mode>_zext_internal): Likewise.
127 (neon_vdup_n<mode>): Likewise.
128 (neon_vdup_n<mode>): Likewise.
129 (neon_vdup_nv2di): Likewise.
130 (neon_vdup_lane<mode>_interal): Likewise.
131 (*neon_vswp<mode>): Likewise.
132 (neon_vcombine<mode>): Likewise.
133 (float<mode><V_cvtto>2): Likewise.
134 (floatuns<mode><V_cvtto>2): Likewise.
135 (fix_trunc<mode><V_cvtto>2): Likewise.
136 (fixuns_trunc<mode><V_cvtto>2
137 (neon_vcvt<mode>): Likewise.
138 (neon_vcvt<mode>): Likewise.
139 (neon_vcvtv4sfv4hf): Likewise.
140 (neon_vcvtv4hfv4sf): Likewise.
141 (neon_vcvt_n<mode>): Likewise.
142 (neon_vcvt_n<mode>): Likewise.
143 (neon_vmovn<mode>): Likewise.
144 (neon_vqmovn<mode>): Likewise.
145 (neon_vqmovun<mode>): Likewise.
146 (neon_vmovl<mode>): Likewise.
147 (neon_vmul_lane<mode>): Likewise.
148 (neon_vmul_lane<mode>): Likewise.
149 (neon_vmull_lane<mode>): Likewise.
150 (neon_vqdmull_lane<mode>): Likewise.
151 (neon_vqdmulh_lane<mode>): Likewise.
152 (neon_vqdmulh_lane<mode>): Likewise.
153 (neon_vmla_lane<mode>): Likewise.
154 (neon_vmla_lane<mode>): Likewise.
155 (neon_vmlal_lane<mode>): Likewise.
156 (neon_vqdmlal_lane<mode>): Likewise.
157 (neon_vmls_lane<mode>): Likewise.
158 (neon_vmls_lane<mode>): Likewise.
159 (neon_vmlsl_lane<mode>): Likewise.
160 (neon_vqdmlsl_lane<mode>): Likewise.
161 (neon_vext<mode>): Likewise.
162 (neon_vrev64<mode>): Likewise.
163 (neon_vrev32<mode>): Likewise.
164 (neon_vrev16<mode>): Likewise.
165 (neon_vbsl<mode>_internal): Likewise.
166 (neon_vshl<mode>): Likewise.
167 (neon_vqshl<mode>): Likewise.
168 (neon_vshr_n<mode>): Likewise.
169 (neon_vshrn_n<mode>): Likewise.
170 (neon_vqshrn_n<mode>): Likewise.
171 (neon_vqshrun_n<mode>): Likewise.
172 (neon_vshl_n<mode>): Likewise.
173 (neon_vqshl_n<mode>): Likewise.
174 (neon_vqshlu_n<mode>): Likewise.
175 (neon_vshll_n<mode>): Likewise.
176 (neon_vsra_n<mode>): Likewise.
177 (neon_vsri_n<mode>): Likewise.
178 (neon_vsli_n<mode>): Likewise.
179 (neon_vtbl1v8qi): Likewise.
180 (neon_vtbl2v8qi): Likewise.
181 (neon_vtbl3v8qi): Likewise.
182 (neon_vtbl4v8qi): Likewise.
183 (neon_vtbl1v16qi): Likewise.
184 (neon_vtbl2v16qi): Likewise.
185 (neon_vcombinev16qi): Likewise.
186 (neon_vtbx1v8qi): Likewise.
187 (neon_vtbx2v8qi): Likewise.
188 (neon_vtbx3v8qi): Likewise.
189 (neon_vtbx4v8qi): Likewise.
190 (*neon_vtrn<mode>_insn): Likewise.
191 (*neon_vzip<mode>_insn): Likewise.
192 (*neon_vuzp<mode>_insn): Likewise.
193 (neon_vld1<mode>): Likewise.
194 (neon_vld1_lane<mode>): Likewise.
195 (neon_vld1_lane<mode>): Likewise.
196 (neon_vld1_dup<mode>): Likewise.
197 (neon_vld1_dup<mode>): Likewise.
198 (neon_vld1_dupv2di): Likewise.
199 (neon_vst1<mode>): Likewise.
200 (neon_vst1_lane<mode>): Likewise.
201 (neon_vst1_lane<mode>): Likewise.
202 (neon_vld2<mode>): Likewise.
203 (neon_vld2<mode>): Likewise.
204 (neon_vld2_lane<mode>): Likewise.
205 (neon_vld2_lane<mode>): Likewise.
206 (neon_vld2_dup<mode>): Likewise.
207 (neon_vst2<mode>): Likewise.
208 (neon_vst2<mode>): Likewise.
209 (neon_vst2_lane<mode>): Likewise.
210 (neon_vst2_lane<mode>): Likewise.
211 (neon_vld3<mode>): Likewise.
212 (neon_vld3qa<mode>): Likewise.
213 (neon_vld3qb<mode>): Likewise.
214 (neon_vld3_lane<mode>): Likewise.
215 (neon_vld3_lane<mode>): Likewise.
216 (neon_vld3_dup<mode>): Likewise.
217 (neon_vst3<mode>): Likewise.
218 (neon_vst3qa<mode>): Likewise.
219 (neon_vst3qb<mode>): Likewise.
220 (neon_vst3_lane<mode>): Likewise.
221 (neon_vst3_lane<mode>): Likewise.
222 (neon_vld4<mode>): Likewise.
223 (neon_vld4qa<mode>): Likewise.
224 (neon_vld4qb<mode>): Likewise.
225 (neon_vld4_lane<mode>): Likewise.
226 (neon_vld4_lane<mode>): Likewise.
227 (neon_vld4_dup<mode>): Likewise.
228 (neon_vst4<mode>): Likewise.
229 (neon_vst4qa<mode>): Likewise.
230 (neon_vst4qb<mode>): Likewise.
231 (neon_vst4_lane<mode>): Likewise.
232 (neon_vst4_lane<mode>): Likewise.
233 (neon_vec_unpack<US>_lo_<mode>): Likewise.
234 (neon_vec_unpack<US>_hi_<mode>): Likewise.
235 (neon_vec_<US>mult_lo_<mode>): Likewise.
236 (neon_vec_<US>mult_hi_<mode>): Likewise.
237 (neon_vec_<US>shiftl_<mode>): Likewise.
238 (neon_unpack<US>_<mode>): Likewise.
239 (neon_vec_<US>mult_<mode>): Likewise.
240 (vec_pack_trunc_<mode>): Likewise.
241 (neon_vec_pack_trunc_<mode>): Likewise.
242 (neon_vabd<mode>_2): Likewise.
243 (neon_vabd<mode>_3): Likewise.
244
a9e66678
JG
2452013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
246
247 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
248 (load_pair): Update type attribute.
249 (store_pair): Update type attribute.
250 * config/aarch64/iterators.md (q): New.
251
20445ed6
JG
2522013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
253
254 * config/arm/types.md: Add new types for Neon insns.
255
afb4ac68
AI
2562013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
257 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
258 Sergey Lega <sergey.s.lega@intel.com>
259 Anna Tikhonova <anna.tikhonova@intel.com>
260 Ilya Tocar <ilya.tocar@intel.com>
261 Andrey Turetskiy <andrey.turetskiy@intel.com>
262 Ilya Verbin <ilya.verbin@intel.com>
263 Kirill Yukhin <kirill.yukhin@intel.com>
264 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
265
266 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
267 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
268 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
269 (rcp14<mode>): New.
270 (srcp14<mode>): Ditto.
271 (rsqrt14<mode>): Ditto.
272 (rsqrt14<mode>): Ditto.
273 (avx512f_vmscalef<mode>): Ditto.
274 (avx512f_scalef<mode>): Ditto.
275 (avx512f_getexp<mode>): Ditto.
276 (avx512f_sgetexp<mode>): Ditto.
277 (avx512f_fixupimm<mode>): Ditto.
278 (avx512f_sfixupimm<mode>): Ditto.
279 (avx512f_rndscale<mode>): Ditto.
280 (*avx512er_exp2<mode>): Ditto.
281 (*avx512er_rcp28<mode>): Ditto.
282 (avx512er_rsqrt28<mode>): Ditto.
283 (avx512f_getmant<mode>): Ditto.
284 (avx512f_getmant<mode>): Ditto.
285 (avx512f_rndscale<mode>): Fix formatting.
286
287
2e2206fa
AI
2882013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
289 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
290 Sergey Lega <sergey.s.lega@intel.com>
291 Anna Tikhonova <anna.tikhonova@intel.com>
292 Ilya Tocar <ilya.tocar@intel.com>
293 Andrey Turetskiy <andrey.turetskiy@intel.com>
294 Ilya Verbin <ilya.verbin@intel.com>
295 Kirill Yukhin <kirill.yukhin@intel.com>
296 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
297
298 * config/i386/predicates.md (const_8_to_15_operand): New.
299 (const_16_to_31_operand): Ditto.
300 * config/i386/sse.md (V8FI): New.
301 (V16FI): Ditto.
302 (reduc_splus_v8df): Ditto.
303 (reduc_splus_v16sf): Ditto.
304 (avx512f_vextract<shuffletype>32x4_1): Ditto.
305 (vec_extract_hi_<mode>): Ditto.
306 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
307 (vec_set_lo_<mode>): Ditto.
308 (vec_set_hi_<mode>): Ditto.
309 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
310 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
311 (avx512f_pshufd_1): Ditto.
312 (avx512f_broadcast<mode>): Ditto.
313 (avx512f_broadcast<mode>): Ditto.
314 (define_split): Split vec_extract_lo into move.
315 (ssequartermode): Ditto.
316 (ssedoublemode): Extened with wider modes.
317 (vec_extract_lo_<mode>): Ditto.
318
0fe65b75
AI
3192013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
320 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
321 Sergey Lega <sergey.s.lega@intel.com>
322 Anna Tikhonova <anna.tikhonova@intel.com>
323 Ilya Tocar <ilya.tocar@intel.com>
324 Andrey Turetskiy <andrey.turetskiy@intel.com>
325 Ilya Verbin <ilya.verbin@intel.com>
326 Kirill Yukhin <kirill.yukhin@intel.com>
327 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
328
329 * config/i386/predicates.md (register_or_constm1_operand): New.
330 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
331 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
332 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
333 UNSPEC_SCATTER_PREFETCH
334 (VI48_512): New.
335 (avx512f_ucmp<mode>3): Ditto.
336 (avx512f_vternlog<mode>): Ditto.
337 (avx512f_align<mode>): Ditto.
338 (<shift_insn><mode>3): Ditto.
339 (avx512f_<rotate>v<mode>): Ditto.
340 (avx512f_<rotate><mode>): Ditto.
341 (avx512f_eq<mode>3): Ditto.
342 (avx512f_eq<mode>3_1): Ditto.
343 (avx512f_gt<mode>3): Ditto.
344 (avx512f_testm<mode>3): Ditto.
345 (avx512f_testnm<mode>3): Ditto.
346 (avx512pf_gatherpf<mode>): Ditto.
347 (*avx512pf_gatherpf<mode>_mask): Ditto.
348 (*avx512pf_gatherpf<mode>): Ditto.
349 (avx512pf_scatterpf<mode>): Ditto.
350 (*avx512pf_scatterpf<mode>_mask): Ditto.
351 (*avx512pf_scatterpf<mode>): Ditto.
352 (avx512f_vec_dup_gpr<mode>): Ditto.
353 (clz<mode>2): Ditto.
354 (conflict<mode>): Ditto.
355 (REDUC_SMINMAX_MODE): Extened with wider modes.
356 (reduc_<code>_<mode>): Ditto.
357 (vlshr<mode>3): Ditto.
358 (vashl<mode>3): Ditto.
359
ab931c71
AI
3602013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
361 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
362 Sergey Lega <sergey.s.lega@intel.com>
363 Anna Tikhonova <anna.tikhonova@intel.com>
364 Ilya Tocar <ilya.tocar@intel.com>
365 Andrey Turetskiy <andrey.turetskiy@intel.com>
366 Ilya Verbin <ilya.verbin@intel.com>
367 Kirill Yukhin <kirill.yukhin@intel.com>
368 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
369
370 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
371 UNSPEC_SCATTER.
372 (VI48F_512): New.
373 (avx512fmaskmode): Ditto.
374 (bcstscalarsuff): Ditto.
375 (avx512f_blendm<mode>): Ditto.
376 (cmp_imm_predicate): Ditto.
377 (avx512f_cmp<mode>3): Ditto.
378 (avx512f_vec_dup<mode>): Ditto.
379 (avx512f_vec_dup_mem<mode>): Ditto.
380 (avx512f_vpermi2var<mode>3): Ditto.
381 (avx512f_vpermt2var<mode>3): Ditto.
382 (vec_init<mode>): Ditto.
383 (avx512f_gathersi<mode>): Ditto.
384 (*avx512f_gathersi<mode>): Ditto.
385 (*avx512f_gathersi<mode>_2): Ditto.
386 (avx512f_gatherdi<mode>): Ditto.
387 (*avx512f_gatherdi<mode>): Ditto.
388 (*avx512f_gatherdi<mode>_2): Ditto.
389 (avx512f_scattersi<mode>): Ditto.
390 (*avx512f_scattersi<mode>): Ditto.
391 (avx512f_scatterdi<mode>): Ditto.
392 (*avx512f_scatterdi<mode>): Ditto.
393 (sseintprefix): Extened with wider modes.
394 (VEC_GATHER_IDXSI): Ditto.
395 (VEC_GATHER_IDXDI): Ditto.
396 (VEC_GATHER_SRCDI): Ditto.
397
c9acb877
MGD
3982013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
399 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
400
401 * config/arm/t-aprofile: New file.
402 * config.gcc: Handle --with-multilib-list option.
403
ecbda484
BS
4042013-10-15 Bernd Schmidt <bernds@codesourcery.com>
405
406 * reload1.c (reloads_unique_chain_p): Ensure that r1 is the input for
407 r2.
408
24f161fd
RB
4092013-10-15 Richard Biener <rguenther@suse.de>
410
411 * tree-loop-distribution.c (build_empty_rdg): Inline into
412 single user.
413 (rdg_flag_vertex): Inline into single user.
414 (rdg_flag_vertex_and_dependent): Likewise.
415 (build_rdg_partition_for_vertex): Remove processed bitmap.
416 (rdg_build_partitions): Simplify.
417
5de989ed
RB
4182013-10-15 Richard Biener <rguenther@suse.de>
419
420 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
421 Restructure forwarding through conversions and copies to
422 avoid performing copy-propagation the wrong way. Adjust
423 recursion invocations.
424 (forward_propagate_addr_expr): Add argument stating if we
425 are recursing from a single-use.
426 (ssa_forward_propagate_and_combine): Adjust.
427
47e0da37
DM
4282013-10-14 David Malcolm <dmalcolm@redhat.com>
429
430 * dumpfile.h (gcc::dump_manager): New class, to hold state
431 relating to dumpfile management.
432 (get_dump_file_name): Remove in favor of method of dump_manager.
433 (dump_initialized_p): Likewise.
434 (dump_start): Likewise.
435 (dump_finish): Likewise.
436 (dump_switch_p): Likewise.
437 (dump_register): Likewise.
438 (get_dump_file_info): Likewise.
439 * context.c (gcc::context::context): Construct the dump_manager
440 instance.
441 * context.h (gcc::context::get_dumps): New.
442 (gcc::context::m_dumps): New.
443 * coverage.c (coverage_init): Port to dump_manager API.
444 * dumpfile.c (extra_dump_files): Convert to field of
445 gcc::dump_manager.
446 (extra_dump_files_in_use): Likewise.
447 (extra_dump_files_alloced): Likewise.
448 (gcc::dump_manager::dump_manager): New.
449 (dump_register): Convert to...
450 (gcc::dump_manager::dump_register): ...method, replacing
451 function-static next_dump with m_next_dump field.
452 (get_dump_file_info): Convert to...
453 (gcc::dump_manager::get_dump_file_info): ...method.
454 (get_dump_file_name): Convert to...
455 (gcc::dump_manager::get_dump_file_name): ...method.
456 (dump_start): Convert to...
457 (gcc::dump_manager::dump_start): ...method.
458 (dump_finish): Convert to...
459 (gcc::dump_manager::dump_finish): ...method.
460 (dump_begin): Replace body with...
461 (gcc::dump_manager::dump_begin): ...new method.
462 (dump_phase_enabled_p): Convert to...
463 (gcc::dump_manager::dump_phase_enabled_p): ...method.
464 (dump_phase_enabled_p): Convert to...
465 (gcc::dump_manager::dump_phase_enabled_p): ...method.
466 (dump_initialized_p): Convert to...
467 (gcc::dump_manager::dump_initialized_p): ...method.
468 (dump_flag_name): Replace body with...
469 (gcc::dump_manager::dump_flag_name): ...new method.
470 (dump_enable_all): Convert to...
471 (gcc::dump_manager::dump_enable_all): ...new method.
472 (opt_info_enable_passes): Convert to...
473 (gcc::dump_manager::opt_info_enable_passes): ...new method.
474 (dump_switch_p_1): Convert to...
475 (gcc::dump_manager::dump_switch_p_1): ...new method.
476 (dump_switch_p): Convert to...
477 (gcc::dump_manager::dump_switch_p): ...new method.
478 (opt_info_switch_p): Port to dump_manager API.
479 (enable_rtl_dump_file): Likewise.
480 * opts-global.c (handle_common_deferred_options): Port to new
481 dump_manager API.
482 * passes.c (pass_manager::finish_optimization_passes): Likewise.
483 (pass_manager::register_one_dump_file): Likewise.
484 (pass_manager::register_pass): Likewise.
485 (pass_init_dump_file): Likewise.
486 (pass_fini_dump_file): Likewise.
487 * statistics.c (statistics_early_init): Likewise.
488
83fd5d11
RB
4892013-10-14 Richard Biener <rguenther@suse.de>
490
491 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
492 iterative_hash_canonical_type, gimple_canonical_type_hash,
493 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
494 gimple_register_canonical_type, print_gimple_types_stats,
495 free_gimple_type_tables): Move to lto/lto.c
496 (gt-gimple.h): Do not include.
497 * gimple.h (gimple_register_canonical_type,
498 print_gimple_types_stats, free_gimple_type_tables): Remove.
499 * Makefile.in (GTFILES): Remove gimple.c.
500
a6dbd0f7
TS
5012013-10-14 Travis Snoozy <quandary@remstate.com>
502
503 PR target/58716
504 * config/msp430/msp430.c (msp430_option_override): Correct thinko
505 scanning for msp430x targets.
506
b5ccb9ed
EB
5072013-10-14 Eric Botcazou <ebotcazou@adacore.com>
508
509 PR bootstrap/58509
510 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
511 (registers_ok_for_ldd_peep): Move around.
512 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
513 * config/sparc/sparc.md (widening peepholes): Use it.
514
fd7e5084
RB
5152013-10-14 Richard Biener <rguenther@suse.de>
516
517 PR middle-end/58712
518 PR middle-end/55358
519 * gimple.c (iterative_hash_canonical_type): Make sure to
520 record the hash into the correct hashtable slot.
521
3246afaa
EB
5222013-10-13 Eric Botcazou <ebotcazou@adacore.com>
523
524 PR rtl-optimization/58662
525 * combine.c (try_combine): Take into account death nodes on I2 when
526 splitting a PARALLEL of two independent SETs. Fix dump message.
527
5d30dc5b
OE
5282013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
529
530 PR target/51244
531 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
532 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
533 * config/sh/t-sh (sh_treg_combine.o): New entry.
534 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
535 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
536 (register_sh_passes): New function. Register sh_treg_combine pass.
537 (sh_option_override): Invoke it.
538 (sh_canonicalize_comparison): Handle op0_preserve_value.
539 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
540 opportunities. Canonicalize branch condition.
541 (nott): Allow only if pseudos can be created for non-SH2A.
542
37d1c5db
L
5432013-10-12 H.J. Lu <hongjiu.lu@intel.com>
544
545 PR target/58690
546 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
547 (ix86_expand_movmem): Replace copy_addr_to_reg with
548 ix86_copy_addr_to_reg.
549 (ix86_expand_setmem): Likewise.
550
b86a70ff
AM
5512013-10-12 Alexander Monakov <amonakov@ispras.ru>
552
553 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
554 provided by ix86_fp_compare_mode instead of CCFPUmode.
555
6e1d5961
JG
5562013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
557
558 * config/aarch64/arm_neon.h
559 (vtbx<1,3>_<psu>8): Fix register constriants.
560
ef3cfba2
JL
5612013-10-11 Jeff Law <law@redhat.com>
562
563 PR tree-optimization/58640
adcfd489
UB
564 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
565 threading paths that cross over two loop entry points.
ef3cfba2 566
6e8b7d9c
BS
5672013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
568
569 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
570 handle vector float as well.
571 (*vsx_le_perm_load_v4si): Likewise.
572 (*vsx_le_perm_store_v2di): Likewise.
573 (*vsx_le_perm_store_v4si): Likewise.
574
f200869a
BS
5752013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
576
577 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
578 directly to circumvent subtract from splat{31} workaround.
579 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
580 prototype.
581 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
582 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
583 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
584 (altivec_vperm_<mode>): Convert to define_insn_and_split to
585 separate big and little endian logic.
586 (*altivec_vperm_<mode>_internal): New define_insn.
587 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
588 separate big and little endian logic.
589 (*altivec_vperm_<mode>_uns_internal): New define_insn.
590 (vec_permv16qi): Add little endian logic.
591
8d28e3fc
MG
5922013-10-11 Marc Glisse <marc.glisse@inria.fr>
593
594 * doc/extend.texi (returns_nonnull): Remove arguments.
595
3c87b77b
AI
5962013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
597 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
598 Sergey Lega <sergey.s.lega@intel.com>
599 Anna Tikhonova <anna.tikhonova@intel.com>
600 Ilya Tocar <ilya.tocar@intel.com>
601 Andrey Turetskiy <andrey.turetskiy@intel.com>
602 Ilya Verbin <ilya.verbin@intel.com>
603 Kirill Yukhin <kirill.yukhin@intel.com>
604 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
605
606 * config/i386/sse.md (VI48F_256_512): New.
607 (avx2_permvar<mode>): Change to ...
608 (<avx2_avx512f>_permvar<mode>): This.
609
50e60d7d
AI
6102013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
611 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
612 Sergey Lega <sergey.s.lega@intel.com>
613 Anna Tikhonova <anna.tikhonova@intel.com>
614 Ilya Tocar <ilya.tocar@intel.com>
615 Andrey Turetskiy <andrey.turetskiy@intel.com>
616 Ilya Verbin <ilya.verbin@intel.com>
617 Kirill Yukhin <kirill.yukhin@intel.com>
618 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
619
620 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
621 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
622 * config/i386/sse.md (VI4_AVX): New.
623 (sf2simodelower): Ditto.
624 (sse2_cvtps2dq): Change to ...
625 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
626
f62ce24f
AI
6272013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
628 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
629 Sergey Lega <sergey.s.lega@intel.com>
630 Anna Tikhonova <anna.tikhonova@intel.com>
631 Ilya Tocar <ilya.tocar@intel.com>
632 Andrey Turetskiy <andrey.turetskiy@intel.com>
633 Ilya Verbin <ilya.verbin@intel.com>
634 Kirill Yukhin <kirill.yukhin@intel.com>
635 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
636
637 * config/i386/sse.md (V_512): New.
638 (VI_512): Ditto.
639 (vcond<V_512:mode><VF_512:mode>): Ditto.
640 (vcond<V_512:mode><VI_512:mode>): Ditto.
641 (vcondu<V_512:mode><VI_512:mode>): Ditto.
642
558d9f79
AI
6432013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
644 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
645 Sergey Lega <sergey.s.lega@intel.com>
646 Anna Tikhonova <anna.tikhonova@intel.com>
647 Ilya Tocar <ilya.tocar@intel.com>
648 Andrey Turetskiy <andrey.turetskiy@intel.com>
649 Ilya Verbin <ilya.verbin@intel.com>
650 Kirill Yukhin <kirill.yukhin@intel.com>
651 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
652
653 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
654 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
655 (FMAMODE): Ditto.
656 (fma<mode>4): Removed condition.
657 (fms<mode>4): Ditto.
658 (fnma<mode>4): Ditto.
659 (fnms<mode>4): Ditto.
660 (fma4i_fmadd_<mode>): Ditto.
661 (*fma_fmadd_<mode>): Ditto.
662 (*fma_fmsub_<mode>): Ditto.
663 (*fma_fnmadd_<mode>): Ditto.
664 (*fma_fnmsub_<mode>): Ditto.
665 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
666 (*fma_fmaddsub_<mode>): Ditto.
667 (*fma_fmsubadd_<mode>): Ditto.
668 (*fmai_fmadd_<mode>): Ditto.
669 (*fmai_fmsub_<mode>): Ditto.
670 (*fmai_fnmadd_<mode>): Ditto.
671 (*fmai_fnmsub_<mode>): Ditto.
672
e8d08206
AI
6732013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
674 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
675 Sergey Lega <sergey.s.lega@intel.com>
676 Anna Tikhonova <anna.tikhonova@intel.com>
677 Ilya Tocar <ilya.tocar@intel.com>
678 Andrey Turetskiy <andrey.turetskiy@intel.com>
679 Ilya Verbin <ilya.verbin@intel.com>
680 Kirill Yukhin <kirill.yukhin@intel.com>
681 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
682
683 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
684 (VI124_256): Changed to ...
685 (VI124_256_48_512): This.
686 (ssepackmode): Extended with wider modes.
687 (<code><mode>3): Changed iterator.
688 (*avx2_<code><mode>3): Ditto.
689 (vec_pack_trunc_<mode>): Ditto.
690
16821545
AI
6912013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
692 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
693 Sergey Lega <sergey.s.lega@intel.com>
694 Anna Tikhonova <anna.tikhonova@intel.com>
695 Ilya Tocar <ilya.tocar@intel.com>
696 Andrey Turetskiy <andrey.turetskiy@intel.com>
697 Ilya Verbin <ilya.verbin@intel.com>
698 Kirill Yukhin <kirill.yukhin@intel.com>
699 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
700
701 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
702 (VI8F_256_512): Ditto.
703 (abs<mode>2): Changed iterator.
704 (avx2_perm<mode>): Changed to ...
705 (<avx2_avx512f>_perm<mode>): This.
706 (avx2_perm<mode>_1): Changed to ...
707 (<avx2_avx512f>_perm<mode>_1): This.
708
5348cff8
AI
7092013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
710 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
711 Sergey Lega <sergey.s.lega@intel.com>
712 Anna Tikhonova <anna.tikhonova@intel.com>
713 Ilya Tocar <ilya.tocar@intel.com>
714 Andrey Turetskiy <andrey.turetskiy@intel.com>
715 Ilya Verbin <ilya.verbin@intel.com>
716 Kirill Yukhin <kirill.yukhin@intel.com>
717 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
718
719 * config/i386/sse.md (VI48_AVX512F): New.
720 (VI48_AVX2): Changed to ...
721 (VI48_AVX2_48_AVX512F): This.
722 (avx2_ashrv<mode>): Changed to ...
723 (<avx2_avx512f>_ashrv<mode>): This.
724 (avx2_<shift_insn>v<mode>): Changed to ...
725 (<avx2_avx512f>_<shift_insn>v<mode>): This.
726
f5f41d88
AI
7272013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
728 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
729 Sergey Lega <sergey.s.lega@intel.com>
730 Anna Tikhonova <anna.tikhonova@intel.com>
731 Ilya Tocar <ilya.tocar@intel.com>
732 Andrey Turetskiy <andrey.turetskiy@intel.com>
733 Ilya Verbin <ilya.verbin@intel.com>
734 Kirill Yukhin <kirill.yukhin@intel.com>
735 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
736
737 * config/i386/sse.md (VI4_AVX512F): New.
738 (VI8_AVX2_AVX512F): Ditto.
739 (mul<mode>3): Extended with wider modes.
740 (*<sse4_1_avx2>_mul<mode>3): Ditto.
741 (mul<mode>3): Ditto.
742 (vec_widen_<s>mult_odd_<mode>): Ditto.
743
3bdf6340
AI
7442013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
745 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
746 Sergey Lega <sergey.s.lega@intel.com>
747 Anna Tikhonova <anna.tikhonova@intel.com>
748 Ilya Tocar <ilya.tocar@intel.com>
749 Andrey Turetskiy <andrey.turetskiy@intel.com>
750 Ilya Verbin <ilya.verbin@intel.com>
751 Kirill Yukhin <kirill.yukhin@intel.com>
752 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
753
754 * config/i386/sse.md (VI2_AVX512F): New.
755 (VI124_AVX512F): Ditto.
756 (sseunpackmode): Extended with wider modes.
757 (sseunpackfltmode): Ditto.
758 (vec_unpacks_float_hi_<mode>): Ditto.
759 (vec_unpacks_float_lo_<mode>): Ditto.
760 (vec_unpacku_float_hi_<mode>): Ditto.
761 (vec_unpacku_float_lo_<mode>): Ditto.
762 (vec_unpacks_lo_<mode>): Ditto.
763 (vec_unpacks_hi_<mode>): Ditto.
764 (vec_unpacku_lo_<mode>): Ditto.
765 (vec_unpacku_hi_<mode>): Ditto.
766
67f783cb
AI
7672013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
768 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
769 Sergey Lega <sergey.s.lega@intel.com>
770 Anna Tikhonova <anna.tikhonova@intel.com>
771 Ilya Tocar <ilya.tocar@intel.com>
772 Andrey Turetskiy <andrey.turetskiy@intel.com>
773 Ilya Verbin <ilya.verbin@intel.com>
774 Kirill Yukhin <kirill.yukhin@intel.com>
775 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
776
777 * config/i386/i386.md (multdiv): New.
778 (multdiv_mnemonic): Ditto.
779 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
780 (<sse>_vm<multdiv_mnemonic><mode>3): This.
781 (<sse>_vmdiv<mode>3): Removed.
782
ec5e777c
AI
7832013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
784 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
785 Sergey Lega <sergey.s.lega@intel.com>
786 Anna Tikhonova <anna.tikhonova@intel.com>
787 Ilya Tocar <ilya.tocar@intel.com>
788 Andrey Turetskiy <andrey.turetskiy@intel.com>
789 Ilya Verbin <ilya.verbin@intel.com>
790 Kirill Yukhin <kirill.yukhin@intel.com>
791 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
792
793 * config/i386/sse.md (V): Extended with wider modes.
794 (VF2): Ditto.
795 (ssehalfvecmode): Ditto.
796 (i128): Ditto.
797 (ssepackfltmode): Ditto.
798 (avx_vec_concat<mode>): Ditto.
799 (V_256_512): New iterator.
800 (VF2_512_256): Ditto.
801 (si2dfmode): New attribute.
802 (si2dfmodelower): Ditto.
803 (sf2dfmode): Ditto.
804 (concat_tg_mode): Ditto.
805 (floatv4siv4df2): Changed to ...
806 (float<si2dfmodelower><mode>2): This.
807 (avx_cvtps2pd256): Changed to ...
808 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
809 (vec_pack_trunc_v4df): Changed to ...
810 (vec_pack_trunc_<mode>): This.
811 (avx_vpermil<mode>): Changed to ...
812 (<sse2_avx_avx512f>_vpermil<mode>): This.
813 (<fixsuffix>fix_truncv8dfv8si2): New.
814 (vec_pack_sfix_trunc_v8df): Ditto.
815 (avx512f_rndscale<mode>): Ditto.
816 (avx512f_roundpd512): Ditto.
817 (vec_pack_ufix_trunc_<mode>): Updated iterator.
818
a9ccbba2
AI
8192013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
820 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
821 Sergey Lega <sergey.s.lega@intel.com>
822 Anna Tikhonova <anna.tikhonova@intel.com>
823 Ilya Tocar <ilya.tocar@intel.com>
824 Andrey Turetskiy <andrey.turetskiy@intel.com>
825 Ilya Verbin <ilya.verbin@intel.com>
826 Kirill Yukhin <kirill.yukhin@intel.com>
827 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
828
829 * config/i386/i386.md (any_fix): New iterator.
830 (fixsuffix): New attribute.
831 * config/i386/sse.md (VF1): Extened with wider modes.
832 (VI): Ditto.
833 (VI_AVX2): Ditto.
834 (VI8): Ditto.
835 (sseintvecmodelower): Ditto.
836 (ssescalarmode): Ditto.
837 (ssescalarnum): Ditto.
838 (VF1_128_256): New.
839 (ssexmmmode): Ditto.
840 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
841 (<sse>_rcp<mode>2): Change iterator.
842 (rsqrt<mode>2): Ditto.
843 (<sse>_rsqrt<mode>2): Ditto.
844 (avx2_vec_dup<mode>): Ditto.
845 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
846 (round<mode>2_sfix): Ditto.
847 (avx2_pbroadcast<mode>): Ditto.
848 (*andnot<mode>3): Handle XI mode.
849 (*<code><mode>3): Ditto.
850 (AVXTOSSEMODE): Removed.
851 (avx_vpermil<mode>): Changed to ...
852 (<sse2_avx_avx512f>_vpermil<mode>): This.
853
2b1ebb0c
AI
8542013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
855 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
856 Sergey Lega <sergey.s.lega@intel.com>
857 Anna Tikhonova <anna.tikhonova@intel.com>
858 Ilya Tocar <ilya.tocar@intel.com>
859 Andrey Turetskiy <andrey.turetskiy@intel.com>
860 Ilya Verbin <ilya.verbin@intel.com>
861 Kirill Yukhin <kirill.yukhin@intel.com>
862 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
863
864 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
865 (<sse>_comi): Ditto.
866 (<sse>_ucomi): Ditto.
867 (sse_cvtss2siq_2): Ditto.
868 (sse2_cvtsd2si): Ditto.
869 (sse2_cvtsd2siq): Ditto.
870 (sse2_cvttsd2si): Ditto.
871 (sse2_cvttsd2siq): Ditto.
872 (<shift_insn><mode>3): Ditto.
873 (sse2_cvtsi2sdq): Update constraint and prefix.
874 (sse_cvtsi2ss): Update prefix.
875 (sse_cvtsi2ssq): Ditto.
876
d89124ed
JJ
8772013-10-11 Jakub Jelinek <jakub@redhat.com>
878
879 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
880 ignore internal calls.
881
e6ad28c3
RB
8822013-10-11 Richard Biener <rguenther@suse.de>
883
884 * tree-pretty-print.c (dump_generic_node): Allow to dump
885 both (D) and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with
886 (OVF) if TREE_OVERFLOW is set.
887
d1227447
TS
8882013-10-11 Thomas Schwinge <thomas@codesourcery.com>
889
1ac4b8e4
TS
890 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
891
7d05cebb
TS
892 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
893 * gimple.h: Likewise.
894
adcfd489 895 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 896
1a79fb8a
TS
897 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
898 macros.
899
3afd2873
TS
900 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
901
adcfd489 902 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
903 * configure: Regenerate.
904
acf0174b
JJ
9052013-10-11 Jakub Jelinek <jakub@redhat.com>
906
907 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
908 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
909 formatting fixes, use pp_colon instead of pp_character (..., ':'),
910 similarly pp_right_paren.
911 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
912 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
913 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
914 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
915 clauses.
916 (omp_declare_simd_clauses_equal,
917 omp_remove_redundant_declare_simd_attrs): New functions.
918 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
919 (walk_tree_1): Handle new OpenMP 4.0 clauses.
920 * tree.h (OMP_LOOP_CHECK): Define.
921 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
922 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
923 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
924 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
925 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
926 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
927 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
928 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
929 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
930 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
931 OMP_CLAUSE_SIMDLEN_EXPR): Define.
932 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
933 (omp_remove_redundant_declare_simd_attrs): New prototype.
934 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
935 GIMPLE_OMP_TEAMS): New codes.
936 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
937 * omp-low.c (struct omp_context): Add cancel_label and cancellable
938 fields.
939 (target_nesting_level): New variable.
940 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
941 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
942 for collapse > 1 static schedule unless ordered.
943 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
944 (determine_parallel_type): Adjust get_ws_args_for caller.
945 (install_var_field): Handle mask & 4 for double indirection.
946 (scan_sharing_clauses): Ignore shared clause on teams construct.
947 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
948 (create_omp_child_function): If inside target or declare target
adcfd489 949 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
950 (find_combined_for): New function.
951 (scan_omp_parallel): Handle combined loops.
952 (scan_omp_target, scan_omp_teams): New functions.
953 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
954 restrictions and set ctx->cancellable for cancellable constructs.
955 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
956 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
957 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 958 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b
JJ
959 (omp_clause_aligned_alignment): New function.
960 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
961 on decls.
962 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
963 on teams constructs. Handle user defined reductions and new
964 OpenMP 4.0 clauses.
965 (lower_reduction_clauses): Don't set placeholder to address of ref
966 if it has already the right type.
967 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
968 (expand_parallel_call): Use the new non-_start suffixed builtins,
969 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
970 and GOMP_parallel_end after the call.
971 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
972 (expand_omp_for_init_counts): Handle combined loops.
973 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
974 loops.
975 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
976 end of cancellable loops.
977 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
978 Likewise. Handle collapse > 1 loops.
979 (expand_omp_simd): Handle combined loops.
980 (expand_omp_for): Add inner_stmt argument, adjust callers of
981 expand_omp_for* functions, use expand_omp_for_static*chunk even
982 for collapse > 1 unless ordered.
983 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
984 of cancellable sections.
985 (expand_omp_single): Remove need_barrier variable, just rely on
986 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
987 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
988 (expand_omp_atomic_load, expand_omp_atomic_store,
989 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
990 (expand_omp_target): New function.
991 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
992 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
993 (build_omp_regions_1): Immediately close region for
994 GF_OMP_TARGET_KIND_UPDATE.
995 (maybe_add_implicit_barrier_cancel): New function.
996 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
997 cancellation.
998 (lower_omp_single): Likewise. Add clobber after the barrier.
999 (lower_omp_taskgroup): New function.
1000 (lower_omp_for): Handle combined loops. Adjust
1001 lower_rec_input_clauses caller. Handle cancellation.
1002 (lower_depend_clauses): New function.
1003 (lower_omp_taskreg): Lower depend clauses. Adjust
1004 lower_rec_input_clauses caller. Add clobber after the call. Handle
1005 cancellation.
1006 (lower_omp_target, lower_omp_teams): New functions.
1007 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
1008 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
1009 and GOMP_cancellation_point calls.
1010 (lower_omp): Fold stmts inside of target region.
1011 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
1012 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1013 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
1014 (BT_FN_VOID_OMPFN_PTR_UINT,
1015 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
1016 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
1017 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
1018 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
1019 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
1020 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
1021 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
1022 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1023 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1024 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
1025 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1026 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
1027 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
1028 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
1029 BUILT_IN_GOMP_PARALLEL_END.
1030 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
1031 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1032 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
1033 GF_OMP_FOR_KIND_DISTRIBUTE.
1034 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
1035 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
1036 (dump_gimple_omp_return): Print lhs if it has any.
1037 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
1038 gimple_omp_atomic_seq_cst_p.
1039 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
1040 and GIMPLE_OMP_TEAMS.
1041 * langhooks.c (lhd_omp_mappable_type): New function.
1042 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
1043 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
1044 hook.
1045 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
1046 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
1047 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
1048 ORT_TARGET.
1049 (struct gimplify_omp_ctx): Add combined_loop field.
1050 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
1051 on stmts inside of target region.
1052 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
1053 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
1054 ORT_TARGET and ORT_TARGET_DATA.
1055 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
1056 Handle GOVD_MAP.
1057 (omp_notice_threadprivate_variable): Complain about threadprivate
1058 variables in target region.
1059 (omp_notice_variable): Complain about vars with non-mappable type
1060 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
1061 (omp_check_private): Ignore ORT_TARGET* regions.
1062 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
1063 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
1064 (find_combined_omp_for): New function.
1065 (gimplify_omp_for): Handle gimplification of combined loops.
1066 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
1067 OMP_TEAMS.
1068 (gimplify_omp_target_update): New function.
1069 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
1070 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
1071 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
1072 (gimplify_body): If fndecl has "omp declare target" attribute, add
1073 implicit ORT_TARGET context around it.
1074 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
1075 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
1076 * tree-nested.c (convert_nonlocal_reference_stmt,
1077 convert_local_reference_stmt, convert_gimple_call): Handle
1078 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1079 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
1080 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
1081 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
1082 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
1083 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
1084 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
1085 BUILT_IN_GOMP_LOOP_END_CANCEL,
1086 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
1087 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
1088 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
1089 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
1090 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
1091 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
1092 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
1093 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
1094 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1095 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1096 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1097 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1098 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
1099 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
1100 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
1101 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1102 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
1103 gimple_build_omp_teams): New functions.
1104 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
1105 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
1106 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
1107 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1108 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
1109 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
1110 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
1111 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
1112 GF_OMP_ATOMIC_SEQ_CST): New.
1113 (gimple_build_omp_taskgroup, gimple_build_omp_target,
1114 gimple_build_omp_teams): New prototypes.
1115 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
1116 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1117 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
1118 GIMPLE_OMP_SINGLE as end of range.
1119 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
1120 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
1121 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
1122 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
1123 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
1124 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
1125 gimple_omp_target_kind, gimple_omp_target_set_kind,
1126 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
1127 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
1128 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
1129 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
1130 gimple_omp_teams_set_clauses): New inlines.
1131 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
1132 and GIMPLE_OMP_TASKGROUP.
adcfd489 1133 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
1134 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
1135 enum omp_clause_proc_bind_kind): New.
1136 (union omp_clause_subcode): Add depend_kind, map_kind and
1137 proc_bind_kind fields.
1138 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
1139 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1140 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
1141 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
1142 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1143
67fa7880
TJ
11442013-10-10 Teresa Johnson <tejohnson@google.com>
1145
1146 * predict.c (tree_estimate_probability): Add new parameter
1147 for estimate_bb_frequencies.
1148 (estimate_bb_frequencies): Add new parameter to force estimation.
1149 (rebuild_frequencies): When max frequency in function is small,
1150 recompute counts from frequencies.
1151 * predict.h (estimate_bb_frequencies): New parameter.
1152
b591a8b7
DM
11532013-10-10 David Malcolm <dmalcolm@redhat.com>
1154
1155 * ipa-inline.c (ipa_inline): Fix leak of "order" when
1156 optimizations are disabled.
1157
782f0db2
DM
11582013-10-10 David Malcolm <dmalcolm@redhat.com>
1159
1160 * coverage.c (coverage_finish): Fix leak of da_file_name.
1161
13ef00fa
JH
11622013-10-10 Jan Hubicka <jh@suse.cz>
1163
1164 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
1165 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
1166 Bobcat and generic.
1167
a1d50386
JJ
11682013-10-10 Jakub Jelinek <jakub@redhat.com>
1169
1170 PR middle-end/58670
1171 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
1172 if any labels are in FALLTHRU_BB, use a special label emitted
1173 immediately after the asm goto insn rather than label_rtx
1174 of the LABEL_DECL.
1175 (expand_asm_stmt): Adjust caller.
1176 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
1177 edge if the last insn in predecessor is a jump with single successor,
1178 but it isn't simplejump_p.
1179
e2c2fde2
RB
11802013-10-10 Richard Biener <rguenther@suse.de>
1181
1182 PR tree-optimization/58656
1183 * tree-ssa-pre.c (phi_translate): Do not cache failed
1184 translations.
1185
de6a5608
AM
11862013-10-10 Andrew MacLeod <amacleod@redhat.com>
1187
adcfd489
UB
1188 * gimplify.c: Include expr.h and tm_p.h for targets with special
1189 va-arg padding requirements.
de6a5608 1190
b184c8f1
AM
11912013-10-10 Andrew MacLeod <amacleod@redhat.com>
1192
1193 * tree-flow.h: Move some prototypes to gimple.h.
1194 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
1195 * gimple.h: Relocate some prototypes from tree-flow.h
1196 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
1197 Move to gimplify.c.
1198 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
1199 (build_va_arg_indirect_ref): Relocate and make static.
1200 (std_gimplify_va_arg_expr): Relocate here.
1201 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
1202 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
1203
13b72c22
AK
12042013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1205
1206 * doc/md.texi: Document the mnemonic attribute.
1207
5db40447
AK
12082013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1209
1210 PR target/57377
1211 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
1212 (set_attr_alternative x ...) when searching for user defined
1213 mnemonic attribute.
1214
ed018d4b
AM
12152013-10-10 Andrew MacLeod <amacleod@redhat.com>
1216
1217 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
1218
4d5b5e9f
ER
12192013-10-09 Easwaran Raman <eraman@google.com>
1220
1221 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
1222 * cfgexpand.c (defer_stack_allocation): ...use here
1223 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
1224
c9ef86a1
ZC
12252013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
1226
1227 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
1228 (operand_equal_for_value_replacement): New function, extracted from
1229 value_replacement and enhanced to catch more cases.
1230 (value_replacement): Use operand_equal_for_value_replacement.
1231
2431114f
AM
12322013-10-09 Andrew MacLeod <amacleod@redhat.com>
1233
adcfd489 1234 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
1235 get_max_loop_iterations.
1236
1dd2a9a0
KT
12372013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1238
1239 * config/arm/aarch-common.c (arm_early_load_addr_dep):
1240 Place comment above function.
1241
c1bf2a39
AM
12422013-10-09 Andrew MacLeod <amacleod@redhat.com>
1243
1244 * tree-flow.h: Remove all remaining prototypes, enums and structs that
1245 are not related to tree-cfg.c.
1246 * tree-ssa-address.h: New file. Relocate prototypes.
1247 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
1248 (addr_for_mem_ref): New. Combine call to get_address_description and
1249 return addr_for_mem_ref.
1250 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
1251 * tree-ssa-live.h: Adjust prototypes.
1252 * passes.c: Include tree-ssa-live.h.
1253 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
1254 * graphite.c (graphite_transform_loops): Make static.
1255 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 1256 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
1257 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
1258 * ipa-pure-const.c (warn_function_noreturn): Make static.
1259 (execute_warn_function_noreturn, gate_warn_function_noreturn,
1260 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
1261 Relocate from tree-cfg.c
1262 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
1263 static.
1264 (execute_warn_function_noreturn, gate_warn_function_noreturn,
1265 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
1266 Move to ipa-pure-const.c.
adcfd489
UB
1267 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
1268 Relocate from tree-optimize.c.
c1bf2a39
AM
1269 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
1270 make_pass_fixup_cfg): Move to tree-cfg.c.
1271 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
1272 Relocate some prototypes.
1273 * tree-data-ref.h (tree_check_data_deps) Add prototype.
1274 * tree-dump.c (dump_function_to_file): Remove prototype.
1275 Add tree-flow.h to the include file.
1276 * tree-dump.h: Remove prototype.
1277 * tree-parloops.h: New File. Add prototypes.
1278 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
1279 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
1280 from tree-ssa-loop.c.
1281 * tree-predcom.c (run_tree_predictive_commoning,
1282 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
1283 Relocate here from tree-ssa-loop.c.
adcfd489 1284 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
1285 ssa_name_values.release ().
1286 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
1287 (ssa_name_values): Relocate from tree-flow.h.
1288 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
1289 * tree-ssa-loop.c (run_tree_predictive_commoning,
1290 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
1291 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
1292 make_pass_graphite, pass_data_graphite_transforms,
1293 make_pass_graphite_transforms, gate_tree_parallelize_loops,
1294 tree_parallelize_loops, pass_data_parallelize_loops,
1295 make_pass_parallelize_loops): Move to other files.
1296 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
1297 moved here.
1298 * tree.h: Remove prototypes from tree-address.c.
1299
cc524fc7
AM
13002013-10-09 Andrew MacLeod <amacleod@redhat.com>
1301
1302 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
1303 (struct int_tree_map): Move to tree-hasher.h
1304 (SCALE, LABEL, PERCENT): Move to gimple.h
1305 * tree-flow-inline.h: Delete. Move functions to other files.
1306 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
1307 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
1308 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
1309 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
1310 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
1311 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
1312 * tree-hasher.h: Don't include tree-flow.h.
1313 (struct int_tree_map): Relocate from tree-flow.h.
1314 * tree-sra.c (contains_view_convert_expr_p): Relocate from
1315 tree-flow-inline.h and make static.
adcfd489
UB
1316 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
1317 tree-flow-inline.h.
cc524fc7
AM
1318 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
1319 tree-flow-inline.h and make static.
1320 * tree.h (is_global_var, may_be_aliased): Relocate from
1321 tree-flow-inline.h.
1322 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
1323 * value-prof.c: No longer include tree-flow-inline.h.
1324 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
1325
71343877
AM
13262013-10-09 Andrew MacLeod <amacleod@redhat.com>
1327
1328 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
1329 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
1330 (enum move_pos): Move to tree-ssa-loop-im.h
1331 * cfgloop.h: Move some prototypes.
1332 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
1333 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
1334 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
1335 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
1336 (loop_containing_stmt): Relocate from tree-flow-inline.h.
1337 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
1338 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
1339 (enum move_pos): Relocate here.
1340 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
1341 tree-ssa-loop.c.
1342 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
1343 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
1344 make_pass_lim): Relocate here from tree-ssa-loop.c.
1345 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
1346 tree-ssa-loop.c.
1347 (loop_edge_to_cancel, unloop_loops): Make static.
1348 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
1349 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
1350 (tree_complete_unroll, gate_tree_complete_unroll,
1351 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
1352 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
1353 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
1354 * tree-ssa-loop-ivopts.c: Remove local prototypes.
1355 (stmt_invariant_in_loop_p): Remove unused function.
1356 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
1357 * tree-ssa-loop-manip.h: New file. Add prototypes.
1358 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
1359 (gcov_type_to_double_int): Move to cfgloop.h.
1360 (double_int_cmp, bound_index,
1361 estimate_numbers_of_iterations_loop): Make static.
1362 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
1363 (max_loop_iterations): Factor out get_max_loop_iterations.
1364 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
1365 cfgloop.c.
1366 * tree-ssa-loop-niter.h: New file. Add prototypes.
1367 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
1368 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
1369 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
1370 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
1371 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
1372 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
1373 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
1374 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
1375 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
1376 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
1377 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
1378 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
1379 pass_data_complete_unroll, make_pass_complete_unroll,
1380 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
1381 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
1382 tree-ssa-loop-ivcanon.c.
1383 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
1384 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
1385 tree-ssa-loop-prefetch.c.
1386 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
1387 tree-ssa-loop-im.c.
1388 (get_lsm_tmp_name): Relocate and add suffix parameter.
1389 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
1390 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
1391 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
1392 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 1393 (get_estimated_loop_iterations): Factor out accessor from
71343877 1394 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
1395 (get_max_loop_iterations): Factor out accessor from
1396 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
1397 * loop-unroll.c (decide_unroll_constant_iterations,
1398 decide_unroll_runtime_iterations, decide_peel_simple,
1399 decide_unroll_stupid): Use new get_* accessors.
1400
826cacfe
MG
14012013-10-09 Marc Glisse <marc.glisse@inria.fr>
1402
1403 PR tree-optimization/20318
1404 * doc/extend.texi (returns_nonnull): New function attribute.
1405 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
1406 attribute.
1407 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
1408 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
1409
378f8976
EB
14102013-10-09 Eric Botcazou <ebotcazou@adacore.com>
1411
1412 PR middle-end/58570
1413 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
1414 false if both components are bitfields.
1415
0fe04f5c
AV
14162013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1417
1418 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
1419 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
1420 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
1421 * config/aarch64/aarch64.h
1422 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
1423 * config/aarch64/aarch64-simd-builtins.def
1424 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
1425
bed9bae4
AV
14262013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1427
1428 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
1429
7f3d8b19
AV
14302013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1431
1432 * config/aarch64/arm_neon.h (vdiv_f64): Added.
1433
7df625a6
AV
14342013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1435
1436 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
1437 (vneg_f64): New intrinsic.
1438 (vneg_s8): Asm replaced with C.
1439 (vneg_s16): Likewise.
1440 (vneg_s32): Likewise.
1441 (vneg_s64): New intrinsic.
1442 (vnegq_f32): Asm replaced with C.
1443 (vnegq_f64): Likewise.
1444 (vnegq_s8): Likewise.
1445 (vnegq_s16): Likewise.
1446 (vnegq_s32): Likewise.
1447 (vnegq_s64): Likewise.
1448
2b86fca7
RL
14492013-10-09 Renlin Li <Renlin.Li@arm.com>
1450
1451 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
1452
e179df83
AK
14532013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1454
1455 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
1456 packed stack special handling.
1457 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
1458 back to fixed stack slots for FPRs saved due to stdarg.
1459
74129172
AK
14602013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1461
1462 * config/s390/s390.c (s390_frame_info): Restructure function.
1463
6455a49e
AK
14642013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1465
1466 * config/s390/s390.c (struct s390_frame_layout): New field
1467 gpr_save_slots.
1468 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
1469 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
1470 regs_ever_clobbered to char*.
adcfd489
UB
1471 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
1472 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
1473 (s390_register_info): Enable FPR save slots. Move/Copy some
1474 functionality into ...
1475 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
1476 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
1477 function.
1478 (s390_frame_info): Do gpr slot allocation here now. stdarg does
1479 not imply a stack frame.
1480 (s390_init_frame_layout): Remove variable clobbered_regs.
1481 (s390_update_register_info): Remove function.
1482 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
1483 cannot be used for register renaming.
1484 (s390_hard_regno_scratch_ok): New function.
1485 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
1486 (s390_initial_elimination_offset): Change offset calculation of
1487 the return address pointer.
adcfd489 1488 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 1489 (restore_gprs): Set frame related flag.
adcfd489 1490 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
1491 (s390_emit_prologue): Call s390_register_info instead of
1492 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
1493 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
1494 (s390_optimize_prologue): Call s390_optimize_register_info.
1495 Try to remove also FPR slot save/restore INSNs. Remove frame
1496 related flags from restore INSNs.
1497
59d96342
DD
14982013-10-08 DJ Delorie <dj@redhat.com>
1499
0dc7adad
DD
1500 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
1501 (movhi): Likewise.
1502
59d96342
DD
1503 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
1504 avoid conflict with the MI use of %c.
1505 * config/rl78/rl78-real.md: change %c to %C throughout.
1506 * config/rl78/rl78-virt.md: Likewise.
1507
a81169d8
JH
15082013-10-08 Jan Hubicka <jh@suse.cz>
1509
1510 * config/i386/i386.c (ix86_option_override_internal): Switch
1511 to SSE math for -ffast-math when target ISA supports SSE2.
1512
481d1b81
AM
15132013-10-08 Andrew MacLeod <amacleod@redhat.com>
1514
1515 * tree-flow.h: Remove some prototypes.
1516 * tree.h: Remove some protypes, add a couple.
1517 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
1518 using_eh_for_cleanups_p): Add interface routines for front ends.
1519 * tree-eh.h: New file. Add protoptyes.
1520 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
1521 (add_stmt_to_eh_lp_fn): Make static.
1522 (lower_try_finally): Use new using_eh_for_cleanups_p.
1523 * emit-rtl.c: Include tree-eh.h.
1524 * gimple.h: Include tree-eh.h.
1525
0e6a0e48
MG
15262013-10-08 Marc Glisse <marc.glisse@inria.fr>
1527
1528 PR tree-optimization/58480
1529 * tree-vrp.c (infer_nonnull_range): New function.
1530 (infer_value_range): Call infer_nonnull_range.
1531
ef6179d1
DC
15322013-10-08 Dehao Chen <dehao@google.com>
1533
1534 PR tree-optimization/58619
1535 * tree-inline.c (copy_phis_for_bb): Combine location data
1536 only if non-null.
1537
07d964d5
ZC
15382013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1539
1540 PR target/58423
1541 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
1542 RTX_FRAME_RELATED_P on INSN.
1543
19e9b2a3
BS
15442013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1545
1546 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
1547 (altivec_expand_vec_perm_const): Call it.
1548
0cf68694
BS
15492013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1550
1551 * config/rs6000/vector.md (mov<mode>): Emit permuted move
1552 sequences for LE VSX loads and stores at expand time.
1553 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
1554 prototype.
1555 * config/rs6000/rs6000.c (rs6000_const_vec): New.
1556 (rs6000_gen_le_vsx_permute): New.
1557 (rs6000_gen_le_vsx_load): New.
1558 (rs6000_gen_le_vsx_store): New.
1559 (rs6000_gen_le_vsx_move): New.
1560 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
1561 (*vsx_le_perm_load_v4si): New.
1562 (*vsx_le_perm_load_v8hi): New.
1563 (*vsx_le_perm_load_v16qi): New.
1564 (*vsx_le_perm_store_v2di): New.
1565 (*vsx_le_perm_store_v4si): New.
1566 (*vsx_le_perm_store_v8hi): New.
1567 (*vsx_le_perm_store_v16qi): New.
1568 (*vsx_xxpermdi2_le_<mode>): New.
1569 (*vsx_xxpermdi4_le_<mode>): New.
1570 (*vsx_xxpermdi8_le_V8HI): New.
1571 (*vsx_xxpermdi16_le_V16QI): New.
1572 (*vsx_lxvd2x2_le_<mode>): New.
1573 (*vsx_lxvd2x4_le_<mode>): New.
1574 (*vsx_lxvd2x8_le_V8HI): New.
1575 (*vsx_lxvd2x16_le_V16QI): New.
1576 (*vsx_stxvd2x2_le_<mode>): New.
1577 (*vsx_stxvd2x4_le_<mode>): New.
1578 (*vsx_stxvd2x8_le_V8HI): New.
1579 (*vsx_stxvd2x16_le_V16QI): New.
1580
9520e1eb
RL
15812013-10-07 Renlin Li <Renlin.Li@arm.com>
1582
1583 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
1584
36c0bd4f
AK
15852013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1586
1587 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
1588 loop to work also for 31bit ABI.
1589 Save the stack pointer for frame_size > 0.
1590
ee163e72
AK
15912013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1592
1593 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
1594 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
1595 constraint letters from expanders.
1596 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
1597 retry count to general_operand.
1598 ("tabort"): Give operand 0 a mode.
1599 ("tabort_1"): Add mode and constraint letter for operand 0.
1600 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
1601
45d99234
JL
16022013-10-04 Jeff Law <law@redhat.com>
1603
1604 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
1605
adcfd489
UB
1606 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
1607 out of ...
45d99234
JL
1608 (thread_across_edge): Here. Call it.
1609
7c327f7b
CC
16102013-10-04 Cary Coutant <ccoutant@google.com>
1611
1612 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 1613 discarding a location list expression (or a piece of one).
7c327f7b 1614
6867e128
JH
16152013-10-03 Jan Hubicka <jh@suse.cz>
1616
65efa7e7
UB
1617 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
1618 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 1619 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 1620
c7f36d55
JH
16212013-10-03 Jan Hubicka <jh@suse.cz>
1622
65efa7e7 1623 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
1624 accumulate-outgoing-args when producing unwind info.
1625
4f0bee4c
WM
16262013-10-03 Wei Mi <wmi@google.com>
1627
1628 * lra-constraints.c (insert_move_for_subreg): New function
1629 extracted from simplify_operand_subreg.
1630 (simplify_operand_subreg): Add reload for paradoxical subreg.
1631
111c3f39
RX
16322013-10-03 Rong Xu <xur@google.com>
1633
65efa7e7
UB
1634 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
1635 the candidate of builtin_expect such that we should fix the
1636 size/time estimation.
1637 (estimate_function_body_sizes): Do the acutally size/time fix-up
1638 for builtin_expect.
111c3f39 1639
942df739
RX
16402013-10-03 Rong Xu <xur@google.com>
1641
65efa7e7
UB
1642 * predict.c (tree_predict_by_opcode): Get the probability
1643 for builtin_expect from param builtin_expect_probability.
1644 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
1645 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
1646 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 1647
2284b034
MG
16482013-10-03 Marc Glisse <marc.glisse@inria.fr>
1649
1650 PR c++/19476
1651 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
1652 * calls.c (alloca_call_p): Use get_callee_fndecl.
1653 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
1654 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
1655 Likewise.
1656 (vrp_visit_stmt): Remove duplicated code.
1657
0609bdf2
MM
16582013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1659
1660 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
1661 ceildf2, btruncdf2, instead of vsx_* name.
1662
1663 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
1664 iterators to only do V2DF and V4SF here. Move the DF code to
1665 rs6000.md where it is combined with SF mode. Replace <VSv> with
1666 just 'v' since only vector operations are handled with these insns
1667 after moving the DF support to rs6000.md.
1668 (vsx_sub<mode>3): Likewise.
1669 (vsx_mul<mode>3): Likewise.
1670 (vsx_div<mode>3): Likewise.
1671 (vsx_fre<mode>2): Likewise.
1672 (vsx_neg<mode>2): Likewise.
1673 (vsx_abs<mode>2): Likewise.
1674 (vsx_nabs<mode>2): Likewise.
1675 (vsx_smax<mode>3): Likewise.
1676 (vsx_smin<mode>3): Likewise.
1677 (vsx_sqrt<mode>2): Likewise.
1678 (vsx_rsqrte<mode>2): Likewise.
1679 (vsx_fms<mode>4): Likewise.
1680 (vsx_nfma<mode>4): Likewise.
1681 (vsx_copysign<mode>3): Likewise.
1682 (vsx_btrunc<mode>2): Likewise.
1683 (vsx_floor<mode>2): Likewise.
1684 (vsx_ceil<mode>2): Likewise.
1685 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
1686 (vsx_sminsf3): Likewise.
1687 (vsx_fmadf4): Likewise.
1688 (vsx_fmsdf4): Likewise.
1689 (vsx_nfmadf4): Likewise.
1690 (vsx_nfmsdf4): Likewise.
1691 (vsx_cmpdf_internal1): Likewise.
1692
1693 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
1694 simpler to select whether a target has SPE or traditional floating
1695 point support in iterators.
1696 (TARGET_DF_SPE): Likewise.
1697 (TARGET_SF_FPR): Likewise.
1698 (TARGET_DF_FPR): Likewise.
1699 (TARGET_SF_INSN): Macros to say whether floating point support
1700 exists for a given operation for expanders.
1701 (TARGET_DF_INSN): Likewise.
1702
1703 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
1704 combining of SF/DF mode operations, using both traditional and VSX
1705 registers.
1706 (Fvsx): Likewise.
1707 (Ff): Likewise.
1708 (Fv): Likewise.
1709 (Fs): Likewise.
1710 (Ffre): Likewise.
1711 (FFRE): Likewise.
1712 (abs<mode>2): Combine SF/DF modes using traditional floating point
1713 instructions. Add support for using the upper DF registers with
1714 VSX support, and SF registers with power8-vector support. Update
1715 expanders for operations supported by both the SPE and traditional
1716 floating point units.
1717 (abs<mode>2_fpr): Likewise.
1718 (nabs<mode>2): Likewise.
1719 (nabs<mode>2_fpr): Likewise.
1720 (neg<mode>2): Likewise.
1721 (neg<mode>2_fpr): Likewise.
1722 (add<mode>3): Likewise.
1723 (add<mode>3_fpr): Likewise.
1724 (sub<mode>3): Likewise.
1725 (sub<mode>3_fpr): Likewise.
1726 (mul<mode>3): Likewise.
1727 (mul<mode>3_fpr): Likewise.
1728 (div<mode>3): Likewise.
1729 (div<mode>3_fpr): Likewise.
1730 (sqrt<mode>3): Likewise.
1731 (sqrt<mode>3_fpr): Likewise.
1732 (fre<Fs>): Likewise.
1733 (rsqrt<mode>2): Likewise.
1734 (cmp<mode>_fpr): Likewise.
1735 (smax<mode>3): Likewise.
1736 (smin<mode>3): Likewise.
1737 (smax<mode>3_vsx): Likewise.
1738 (smin<mode>3_vsx): Likewise.
1739 (negsf2): Delete SF operations that are merged with DF.
1740 (abssf2): Likewise.
1741 (addsf3): Likewise.
1742 (subsf3): Likewise.
1743 (mulsf3): Likewise.
1744 (divsf3): Likewise.
1745 (fres): Likewise.
1746 (fmasf4_fpr): Likewise.
1747 (fmssf4_fpr): Likewise.
1748 (nfmasf4_fpr): Likewise.
1749 (nfmssf4_fpr): Likewise.
1750 (sqrtsf2): Likewise.
1751 (rsqrtsf_internal1): Likewise.
1752 (smaxsf3): Likewise.
1753 (sminsf3): Likewise.
1754 (cmpsf_internal1): Likewise.
1755 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
1756 (negdf2): Delete DF operations that are merged with SF.
1757 (absdf2): Likewise.
1758 (nabsdf2): Likewise.
1759 (adddf3): Likewise.
1760 (subdf3): Likewise.
1761 (muldf3): Likewise.
1762 (divdf3): Likewise.
1763 (fred): Likewise.
1764 (rsqrtdf_internal1): Likewise.
1765 (fmadf4_fpr): Likewise.
1766 (fmsdf4_fpr): Likewise.
1767 (nfmadf4_fpr): Likewise.
1768 (nfmsdf4_fpr): Likewise.
1769 (sqrtdf2): Likewise.
1770 (smaxdf3): Likewise.
1771 (smindf3): Likewise.
1772 (cmpdf_internal1): Likewise.
1773 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
1774 (btrunc<mode>2): Delete separate expander, and combine with the
1775 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
1776 (btrunc<mode>2_fpr): Likewise.
1777 (ceil<mode>2): Likewise.
1778 (ceil<mode>2_fpr): Likewise.
1779 (floor<mode>2): Likewise.
1780 (floor<mode>2_fpr): Likewise.
1781 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
1782 Add support for using the upper registers with VSX and
1783 power8-vector. Move insns to be closer to the define_expands. On
1784 VSX systems, prefer the traditional form of FMA over the VSX
1785 version, since the traditional form allows the target not to
1786 overlap with the inputs.
1787 (fms<mode>4_fpr): Likewise.
1788 (nfma<mode>4_fpr): Likewise.
1789 (nfms<mode>4_fpr): Likewise.
1790
5bea0c6c 17912013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 1792 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
1793
1794 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
1795 (struct mult_cost_table): Likewise.
1796 (struct mem_cost_table): Likewise.
1797 (struct fp_cost_table): Likewise.
1798 (struct vector_cost_table): Likewise.
1799 (cpu_cost_table): Likewise.
1800 * config/arm/arm.opt (mold-rts-costs): New option.
1801 (mnew-generic-costs): Likewise.
1802 * config/arm/arm.c (generic_extra_costs): New table.
1803 (cortexa15_extra_costs): Likewise.
1804 (arm_slowmul_tune): Use NULL as new costs.
1805 (arm_fastmul_tune): Likewise.
1806 (arm_strongarm_tune): Likewise.
1807 (arm_xscale_tune): Likewise.
1808 (arm_9e_tune): Likewise.
1809 (arm_v6t2_tune): Likewise.
1810 (arm_cortex_a5_tune): Likewise.
1811 (arm_cortex_a9_tune): Likewise.
1812 (arm_v6m_tune): Likewise.
1813 (arm_fa726te_tune): Likewise.
1814 (arm_cortex_a15_tune): Use cortex15_extra_costs.
1815 (arm_cortex_tune): Use generict_extra_costs.
1816 (shifter_op_p): New function.
1817 (arm_unspec_cost): Likewise.
1818 (LIBCALL_COST): Define.
1819 (arm_new_rtx_costs): New function.
1820 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
1821 table is available. Use old costs otherwise unless mnew-generic-costs
1822 is specified.
1823 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
1824 (cpu_cost_table): Declare.
1825
24c56925
MS
18262013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
1827
1828 PR target/58460
1829 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
1830 (*subs_mul_imm_<mode>)
1831 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
1832 (*sub_<shift>_<mode>)
1833 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
1834 Remove k constraint.
1835
2ab8f063
IB
18362013-10-03 Ian Bolton <ian.bolton@arm.com>
1837
1838 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
1839 code.
1840 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
1841
79221839
TJ
18422013-10-02 Teresa Johnson <tejohnson@google.com>
1843
1844 * predict.c (probably_never_executed): New function.
1845 (probably_never_executed_bb_p): Invoke probably_never_executed.
1846 (probably_never_executed_edge_p): Ditto.
1847 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1848 Treat profile insanities conservatively.
1849
d441afe0
JDA
18502013-10-02 John David Anglin <danglin@gcc.gnu.org>
1851
1852 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
1853
80f466c4
VM
18542013-10-02 Vladimir Makarov <vmakarov@redhat.com>
1855
1856 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
1857 use it. Use smaller increase for scratch. Don't increase reject
1858 for early clobber scratch.
1859 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
1860 setting eliminated regs except setting fp from hfp.
1861 (lra_eliminate): Check lra_insn_recog_data on NULL.
1862
6e228b4b
MM
18632013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1864
1865 PR target/58587
1866 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 1867 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
1868 (RS6000_CPU, power7 defaults): Likewise.
1869
11b54a5a
UB
18702013-10-02 Uros Bizjak <ubizjak@gmail.com>
1871
1872 * config/x-linux (host-linux.o): Remove header dependencies.
1873 Use $(COMPILE) and $(POSTCOMPILE).
1874 * config/t-linux-android (linux-android.o): Ditto.
1875
bbc02b69
UB
18762013-10-02 Uros Bizjak <ubizjak@gmail.com>
1877
1878 * Makefile.in (expmed.o-warn): Remove.
1879
440917de
AM
18802013-10-02 Andrew MacLeod <amacleod@redhat.com>
1881
1882 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
1883 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
1884
99206ca9
TJ
18852013-10-02 Teresa Johnson <tejohnson@google.com>
1886
1887 * dojump.c (do_jump_1): Divide probability between
1888 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
1889
56e82b14
TT
18902013-10-02 Tom Tromey <tromey@redhat.com>
1891
1892 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
1893
3d9c733e
AM
18942013-10-02 Andrew MacLeod <amacleod@redhat.com>
1895
1896 * tree-flow.h: Remove some prototypes.
1897 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
1898 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
1899 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
1900 mark_virtual_phi_result_for_renaming): Relocate here.
1901 * tree-into-ssa.h: Add prototypes.
bbc02b69 1902 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
1903 single_pred_before_succ_order.
1904 (blocks_in_phiopt_order): Rename and move to cfganal.c.
1905 (nonfreeing_call_p) Move to gimple.c.
1906 * cfganal.c (single_pred_before_succ_order): Move and renamed from
1907 tree-ssa-phiopt.c.
1908 * basic-block.h (single_pred_before_succ_order): Add prototype.
1909 * gimple.c (nonfreeing_call_p): Relocate here.
1910 * gimple.h: Add prototype.
1911 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
1912 * tree-ssa-dom.h: New file. Relocate prototypes here.
1913 * tree-ssa.h: Include tree-ssa-dom.h.
1914
78cedfb1
UB
19152013-10-02 Uros Bizjak <ubizjak@gmail.com>
1916
1917 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
1918 Use $(COMPILE) and $(POSTCOMPILE).
1919
1920 * config/alpha/x-alpha (driver-alpha.o): Ditto.
1921
744730a4
AM
19222013-10-02 Andrew MacLeod <amacleod@redhat.com>
1923
1924 * tree-flow.h: Remove some prototypes.
1925 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
1926 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
1927 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
1928 propagate_tree_value*): Move from here to...
1929 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
1930 propagate_tree_value*): Relocate here.
1931 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
1932 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
1933 * gimple-fold.c: Remove gimple-fold.h from include list.
1934 * tree-vrp.c: Remove gimple-fold.h from include list.
1935 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
1936 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
1937 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
1938 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
1939 * sese.c: Add tree-ssa-propagate.h to include list.
1940
826a536d
RB
19412013-10-02 Richard Biener <rguenther@suse.de>
1942
1943 * tree-loop-distribution.c: Include tree-vectorizer.h for
1944 find_loop_location.
1945 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 1946 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
1947 (partition_alloc): Adjust.
1948 (partition_builtin_p): Likewise.
1949 (partition_has_writes): Remove.
1950 (partition_reduction_p): New function.
1951 (partition_merge_into): Likewise.
1952 (generate_code_for_partition): Commonize builtin partition
1953 handling tail.
1954 (rdg_cannot_recompute_vertex_p): Remove.
1955 (already_processed_vertex_p): Likewise.
1956 (rdg_flag_vertex): Do not set has_writes.
1957 (classify_partition): Adjust.
1958 (rdg_build_partitions): Do not set has_writes, treat all
1959 partitions as useful.
78cedfb1 1960 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
1961 (tree_loop_distribution): Report number of loops and library
1962 calls generated as opt-info.
1963
4b403ece
AM
19642013-10-02 Andrew MacLeod <amacleod@redhat.com>
1965
1966 * tree-flow.h: Include new .h files. Move prototypes.
1967 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
1968 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
1969 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
1970 * tree-pretty-print.h: Add prototypes from tree-flow.h.
1971 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
1972 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
1973 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
1974 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 1975 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
1976 tree-dfa.h.
1977 * gimple-low.h: New File. Add prototypes from tree-flow.h.
1978 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
1979 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
1980 * tree-scalar-evolution.c: Include tree.h.
1981 * sese.c: Include tree.h.
1982 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
1983 * dwarf2out.c: Include tree-dfa.h.
1984 * tree-chrec.c: Include tree.h.
1985 * tree-data-ref.c: Include tree.h.
1986
1d2151c6
YZ
19872013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
1988
1989 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
1990 Fix whitespace.
1991
441ad147
RO
19922013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1993
1994 * config/t-sol2 (sol2-c.o): Remove header dependencies.
1995 Use $(COMPILE) and $(POSTCOMPILE).
1996 (sol2-cxx.o): Likewise.
1997 (sol2-stubs.o): Likewise.
1998 (sol2.o): Likewise.
1999 * config/x-solaris (host-solaris.o): Likewise.
2000
2001 * config/sparc/t-sparc (sparc.o): Remove.
2002 (sparc-c.o): Remove header dependencies.
2003 Use $(COMPILE) and $(POSTCOMPILE).
2004 * config/sparc/x-sparc: Likewise.
2005
2deaf8b0
JR
20062013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
2007
2008 * config/arc/arc-opts.h: Add 2013 to Copyright years.
2009 * config/arc/arc700.md: Likewise.
2010 * config/arc/arc-modes.def: Likewise.
2011 * config/arc/arc-simd.h: Likewise.
2012 * config/arc/t-arc-uClibc: Likewise.
2013 * config/arc/t-arc-newlib: Likewise.
2014
f6fe771a
RL
20152013-10-02 Renlin Li <renlin.li@arm.com>
2016
78cedfb1
UB
2017 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2018 plus_constant.
f6fe771a
RL
2019 (aarch64_expand_epilogue): Likewise.
2020
0916f876
YZ
20212013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2022 Yufeng Zhang <yufeng.zhang@arm.com>
2023
2024 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
2025 declaration.
2026 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
2027 'base_in' represent a conversion and legal_cast_p_1 holds; set
2028 'base_in' with the returned value from get_unwidened.
2029
ebfcd719
KT
20302013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2031
2032 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
2033 plus_constant is not used.
2034
157ca3e9
WM
20352013-10-01 Wei Mi <wmi@google.com>
2036
78cedfb1 2037 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
2038 * config/i386/i386.md: Add define_peephole2 to
2039 break partial reg stall for cvtss2sd/cvtsd2ss.
2040
cd4dd8f0
JR
20412013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2042
2043 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 2044 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 2045
1465e5cf
JL
20462013-10-01 Jeff Law <law@redhat.com>
2047
2048 * tree-ssa-threadupdate.c (struct redirection_data): Delete
2049 outgoing_edge and intermediate_edge fields. Instead store the path.
2050 (redirection_data::hash): Hash on the last edge's destination index.
2051 (redirection_data::equal): Check the entire thread path.
2052 (lookup_redirectio_data): Corresponding changes.
2053 (create_edge_and_update_destination_phis): Likewise.
2054 (thread_single_edge): Likewise.
2055
25c606cb 20562013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 2057 Diego Novillo <dnovillo@google.com>
25c606cb
JR
2058
2059 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
2060 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
2061 (vld32wh_insn, vld32wl_insn): Delete commented-out old
2062 versions of these patterns.
2063
0ccbc132
JR
2064 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
2065 (__builtin_arc_aligned): Likewise.
2066
f55d4a20
JR
2067 * config/arc/arc.md: Expand adc_0 comment stating the intended
2068 purpose and why it isn't ready.
2069 Replace commented out call_value_via_label_mixed with a
2070 plain comment about bl_s.
2071
5719867d 2072 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
2073 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
2074 Remove if (1) condition.
2075 (arc_encode_section_info): Fix comment.
2076
6462fab0
JR
20772013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2078
2079 * config/arc/arc.c (arc_conditional_register_usage):
2080 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
2081 Also set reg_alloc_order for DMA config regs.
2082
5d5f6720
JR
20832013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2084 Jeremy Bennett <jeremy.bennett@embecosm.com>
2085
2086 * doc/install.texi (--with-cpu): Mention ARC.
2087 (arc-*-elf32): New paragraph.
2088 (arc-linux-uclibc): Likewise.
2089 * doc/md.texi (Machine Constraints): Add ARC part.
2090 * doc/invoke.texi: (menu): Add ARC Options.
2091 (Machine Dependent Options) <ARC Options>: Add synopsis.
2092 (node ARC Options): Add.
2093 * doc/extend.texi (long_call / short_call attribute): Add ARC.
2094 (ARC Built-in Functions): New section defining
2095 generic ARC built-in functions.
2096 (ARC SIMD Built-in Functions): New section defining SIMD specific
2097 built-in functions.
2098 (Declaring Attributes of Functions): Extended
2099 description of short_call and long_call attributes for ARC and
2100 added index entries.
2101
526b7aee
SV
21022013-10-01 Saurabh Verma <saurabh.verma@codito.com>
2103 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
2104 Joern Rennecke <joern.rennecke@embecosm.com>
2105 Muhammad Khurram Riaz <khurram.riaz@arc.com>
2106 Brendan Kehoe <brendan@zen.org>
2107 Michael Eager <eager@eagercon.com>
2108 Simon Cook <simon.cook@embecosm.com>
2109 Jeremy Bennett <jeremy.bennett@embecosm.com>
2110
2111 * config/arc, common/config/arc: New directories.
2112
53426f6c
JR
21132013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2114 Brendan Kehoe <brendan@zen.org>
2115 Simon Cook <simon.cook@embecosm.com>
2116
2117 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
2118
1df9f5a9
AM
21192013-10-01 Andrew MacLeod <amacleod@redhat.com>
2120
2121 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
2122 * tree-ssa-coalesce.h: New. Move prototype to here.
2123 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
2124 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
2125 (gimple_can_coalesce_p): Move to...
2126 * gimple.c (gimple_can_coalesce_p): Here.
2127
80560f95
AM
21282013-10-01 Andrew MacLeod <amacleod@redhat.com>
2129
2130 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
2131 (dump_decl_set): Move to gimple.c.
2132 * gimple.h: Don't include tree-ssa-operands.h.
2133 (dump_decl_set): Add prototype.
2134 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2135 Move to gimple-ssa.h.
2136 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
2137 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
2138 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
2139 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
2140 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
2141 than PHI_ARG_DEF.
2142 (dump_decl_set): Relocate here.
2143 * gimple-ssa.h: New file.
2144 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2145 Relocate from gimple.h.
2146 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
2147 * tree-ssa-operands.c (swap_ssa_operands): Rename from
2148 swap_tree_operands and remove non-ssa path.
2149 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
2150 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
2151 swap_ssa_operands.
2152 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
2153 vect_is_simple_reduction_1): Use swap_ssa_operands.
2154 * tree-flow.h: Move various prototypes to tree-phinodes.h.
2155 (enum need_phi_state): Move to tree-into-ssa.c.
2156 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2157 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
2158 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
2159 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2160 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2161 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2162 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2163 num_imm_uses): Move to ssa-iterators.h.
2164 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
2165 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
2166 tree-phinodes.h.
2167 (op_iter_done, op_iter_next_def, op_iter_next_tree,
2168 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
2169 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
2170 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
2171 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
2172 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
2173 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
2174 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
2175 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
2176 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
2177 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
2178 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
2179 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
2180 (set_phi_nodes): Move to tree-phinodes.h.
2181 * tree-ssa-operands.h (enum ssa_op_iter_type,
2182 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
2183 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
2184 (dump_decl_set): Remove prototype.
2185 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
2186 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
2187 (set_phi_nodes): Relocate from tree-flow-inline.h.
2188 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
2189 tree-flow-inline.h
2190 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
2191 include list. Temporarily add gimple.h to include list.
2192 * ssa-iterators.h: New file.
2193 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2194 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
2195 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
2196 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
2197 Relocate from tree-ssa-operands.h.
2198 (delink_imm_use, link_imm_use_to_list, link_imm_use,
2199 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2200 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2201 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2202 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
2203 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
2204 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
2205 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
2206 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
2207 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
2208 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
2209 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
2210 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
2211 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
2212 Relocate from tree-flow-inline.h.
2213 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
2214
8da00d65
VP
22152013-10-01 Vidya Praveen <vidyapraveen@arm.com>
2216
2217 * aarch64-simd.md
2218 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
2219 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
2220 Insert '\t' to output template.
2221 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
2222 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
2223 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
2224 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
2225
e2ebe1c2
UB
22262013-10-01 Uros Bizjak <ubizjak@gmail.com>
2227
2228 * doc/install.texi (Host/target specific installation notes for GCC):
2229 Put @anchor before @heading.
2230 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
2231 Use @email for email addresses.
2232
aee2d611
JL
22332013-10-01 Jeff Law <law@redhat.com>
2234
2235 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
2236 a vec. Only delete the path if we create one without successfully
2237 registering a jump thread.
2238 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
2239 as a pointer.
2240 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
2241 (paths): New vector of jump threading paths.
2242 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
2243 (THREAD_PATH): New accessor macro for the entire thread path.
2244 (lookup_redirection_data): Get intermediate and final outgoing edge
2245 from the thread path.
2246 (create_edge_and_update_destination_phis): Copy the threading path.
2247 (ssa_fix_duplicate_block_edges): Get edges and block types from the
2248 jump threading path.
2249 (ssa_redirect_edges): Get edges and block types from the jump threading
2250 path. Free the path vector.
2251 (thread_block): Get edges from the jump threading path. Look at the
2252 entire path to see if we thread to a loop exit. If we cancel a jump
2253 thread request, then free the path vector.
2254 (thread_single_edge): Get edges and block types from the jump threading
2255 path. Free the path vector.
2256 (thread_through_loop_header): Get edges and block types from the jump
2257 threading path. Free the path vector.
2258 (mark_threaded_blocks): Iterate over the vector of paths and store
2259 the path on the appropriate edge. Get edges and block types from the
2260 jump threading path.
2261 (mark_threaded_blocks): Get edges and block types from the jump
2262 threading path. Free the path vector.
2263 (thread_through_all_blocks): Use the vector of paths rather than
2264 a vector of 3-edge sets.
2265 (register_jump_thread): Accept pointer to a path vector rather
2266 than the path vector itself. Store the path vector for later use.
2267 Simplify.
2268
966f97ac 22692013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 2270 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
2271
2272 PR target/58574
2273 * config/s390/s390.c (s390_split_branches): Modify check for table
2274 jump insns.
2275 (s390_chunkify_start): Rearrange table jump insn check in order to
2276 deal with compare and branch insns correctly.
2277
3a323a38
KV
22782013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
2279
2280 PR target/58578
2281 Revert
2282 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2283 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
2284 define_insn_and_split.
2285 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
2286 (shiftsi3_compare): New pattern.
2287 (rrx): New pattern.
2288 * config/arm/unspecs.md (UNSPEC_RRX): New.
2289
90444831
AM
22902013-10-01 Alan Modra <amodra@gmail.com>
2291
2292 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
2293 casing inout operands.
2294
818625cf
RB
22952013-10-01 Richard Biener <rguenther@suse.de>
2296
2297 PR tree-optimization/58553
2298 * tree-loop-distribution.c (struct partition_s): Add niter member.
2299 (classify_partition): Populate niter member for the partition
2300 and properly identify whether the relevant store happens before
2301 or after the loop exit.
2302 (generate_memset_builtin): Use niter member from the partition.
2303 (generate_memcpy_builtin): Likewise.
2304
30f641cd
RS
23052013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
2306
2307 * vec.h (vec_prefix, vec): Prefix member names with "m_".
2308 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
2309
65d3284b
RS
23102013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
2311
2312 * basic-block.h (edge_list): Prefix member names with "m_".
2313 * context.h (context): Likewise.
2314 * domwalk.h (dom_walker): Likewise.
2315 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
2316 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
2317 * hash-table.h (hash_table): Likewise.
2318 * machmode.h (bit_field_mode_iterator): Likewise.
2319 * pass_manager.h (pass_list): Likewise.
2320 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
2321 * tree-pass.h (pass_data): Likewise.
2322 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
2323 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
2324 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
2325 * asan.c (pass_data_asan): Update accordingly.
2326 * cfganal.c (control_dependences::find_control_dependence): Likewise.
2327 (control_dependences::control_dependences): Likewise.
2328 (control_dependences::~control_dependences): Likewise.
2329 (control_dependences::~control_dependences): Likewise.
2330 (control_dependences::get_edges_dependent_on): Likewise.
2331 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
2332 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
2333 * context.c (gcc::context::context): Likewise.
2334 * cprop.c (pass_rtl_cprop::clone): Likewise.
2335 * domwalk.c (dom_walker::walk): Likewise.
2336 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
2337 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
2338 * mode-switching.c (pass_mode_switching::clone): Likewise.
2339 * passes.c (opt_pass::opt_pass): Likewise.
2340 (pass_manager::pass_manager): Likewise.
2341 * predict.c (pass_strip_predict_hints::clone): Likewise.
2342 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
2343 (pass_split_all_insns::clone): Likewise.
2344 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
2345 Likewise.
2346 (bit_field_mode_iterator::next_mode): Likewise.
2347 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
2348 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
2349 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
2350 * tree-complex.c (pass_lower_complex::clone): Likewise.
2351 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
2352 * tree-object-size.c (pass_object_sizes::clone): Likewise.
2353 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
2354 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
2355 (pass_fold_builtins::clone): Likewise.
2356 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
2357 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
2358 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
2359 (pass_cd_dce::clone): Likewise.
2360 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
2361 (pass_phi_only_cprop::clone): Likewise.
2362 * tree-ssa-dse.c (pass_dse::clone): Likewise.
2363 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
2364 * tree-ssa-loop.c (pass_lim::clone): Likewise.
2365 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
2366 * tree-ssa-pre.c (pass_fre::clone): Likewise.
2367 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
2368 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
2369 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
2370 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
2371 * tree-vrp.c (pass_vrp::clone): Likewise.
2372 * tsan.c (pass_tsan::clone): Likewise.
2373
f66d0891
JJ
23742013-09-30 Jakub Jelinek <jakub@redhat.com>
2375
d2a365a8
JJ
2376 PR middle-end/58564
2377 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
2378 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
2379
f66d0891
JJ
2380 PR middle-end/58564
2381 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
2382 optimization, punt if sign_bit_p looked through any zero extension.
2383
05357ac3
TJ
23842013-09-30 Teresa Johnson <tejohnson@google.com>
2385
2386 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
2387 Update redirected out edge count in joiner case.
2388 (ssa_redirect_edges): Common the joiner and non-joiner cases
2389 so that joiner case gets profile updates.
2390
ca406576
RB
23912013-09-30 Richard Biener <rguenther@suse.de>
2392
2393 PR tree-optimization/58554
e2ebe1c2
UB
2394 * tree-loop-distribution.c (classify_partition): Require
2395 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
2396 (tree_loop_distribution): Calculate dominance info.
2397
92d649c4
VK
23982013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2399
2400 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
2401 (NO_PROFILE_COUNTERS): Likewise.
2402 (PROFILE_HOOK): Likewise.
2403 (FUNCTION_PROFILER): Likewise.
2404 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
2405
bd9534e2
IS
24062013-09-30 Iain Sandoe <iain@codesourcery.com>
2407
2408 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
2409 calls and defines in TARGET_MACHO conditional.
2410 (load_macho_picbase_di): Likewise.
2411 (reload_macho_picbase): Likewise.
2412 (reload_macho_picbase_si): Likewise.
2413 (reload_macho_picbase_di): Likewise.
2414 (nonlocal_goto_receiver): Likewise.
2415
4494fbc9
NC
24162013-09-30 Nick Clifton <nickc@redhat.com>
2417
2418 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
2419 that use the MSP430X ISA.
2420 (msp430_option_override): Scan -mmcu command line option for any
2421 MCU name that supports the MSP430X ISA.
2422 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
2423 -mmcu options which enable the MSP430X ISA.
2424
791d9044
RB
24252013-09-30 Richard Biener <rguenther@suse.de>
2426
2427 PR middle-end/58532
2428 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
2429 before looking for setjmp-like calls.
2430
e1c5c877
IS
24312013-09-29 Iain Sandoe <iain@codesourcery.com>
2432
2433 PR target/10901
2434 * config/darwin-protos.h (machopic_get_function_picbase): New.
2435 * config/darwin.c (machopic_get_function_picbase): New.
2436 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
2437 label for a new func. (load_macho_picbase_di): Likewise.
2438 (reload_macho_picbase): New expand.
2439 (reload_macho_picbase_si): New insn.
2440 (reload_macho_picbase_di): New insn.
2441 (nonlocal_goto_receiver): New define and split.
2442 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
2443 (unspecv enum): Add UNSPECV_NLGR.
2444
749278c5
IS
24452013-09-29 Iain Sandoe <iain@codesourcery.com>
2446
2447 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
2448 that altivec registers are correctly sized on Darwin.
2449
2c43a51c
IS
24502013-09-29 Iain Sandoe <iain@codesourcery.com>
2451
2452 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
2453 darwin-driver.o): Use COMPILE and POSTCOMPILE.
2454 * config/x-darwin (host-darwin.o): Likewise.
2455 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2456 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2457 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2458
7a5911d3
UB
24592013-09-29 Uros Bizjak <ubizjak@gmail.com>
2460
2461 * doc/invoke.texi: Fix usage of @tie{} command.
2462
3f67a73d
EB
24632013-09-29 Eric Botcazou <ebotcazou@adacore.com>
2464
2465 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
2466
9ac2f538
JH
24672013-09-28 Jan Hubicka <jh@suse.cz>
2468
2469 * config/i386/x86-tune.def: Add documentation for each of the options;
2470 add whitespace.
2471
b0ff06da
JH
24722013-09-28 Jan Hubicka <jh@suse.cz>
2473
7a5911d3
UB
2474 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
2475 generic.
b0ff06da
JH
2476 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
2477 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
2478 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
2479 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
2480 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
2481
c3284718
RS
24822013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
2483
2484 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
2485 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
2486 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
2487 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
2488 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
2489 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
2490 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
2491 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
2492 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
2493 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
2494 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
2495 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
2496 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
2497 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
2498 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
2499 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
2500 gimple.h, godump.c, graphite-clast-to-gimple.c,
2501 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
2502 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
2503 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
2504 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
2505 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
2506 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
2507 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
2508 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
2509 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
2510 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
2511 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
2512 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
2513 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
2514 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
2515 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
2516 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
2517 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
2518 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
2519 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
2520 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
2521 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
2522 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
2523 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
2524 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
2525 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
2526 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
2527 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
2528 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
2529 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2530 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
2531 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
2532 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
2533 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
2534 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
2535 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
2536 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
2537 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
2538 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
2539 whitespace before "(".
2540
c6285bd7
SL
25412013-09-28 Sandra Loosemore <sandra@codesourcery.com>
2542
2543 * expr.h (extract_bit_field): Remove packedp parameter.
2544 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
2545 from forward declaration.
2546 (store_split_bit_field): Remove packedp arg from calls to
2547 extract_fixed_bit_field.
2548 (extract_bit_field_1): Remove packedp parameter and packedp
2549 argument from recursive calls and calls to extract_fixed_bit_field.
2550 (extract_bit_field): Remove packedp parameter and corresponding
2551 arg to extract_bit_field_1.
2552 (extract_fixed_bit_field): Remove packedp parameter. Remove code
2553 to issue warnings.
2554 (extract_split_bit_field): Remove packedp arg from call to
2555 extract_fixed_bit_field.
2556 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
2557 (copy_blkmode_from_reg): Likewise.
2558 (copy_blkmode_to_reg): Likewise.
2559 (read_complex_part): Likewise.
2560 (store_field): Likewise.
2561 (expand_expr_real_1): Likewise.
2562 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
2563 to extract_bit_field.
2564 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
2565 call to extract_bit_field.
2566 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
2567 call to extract_bit_field.
2568 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
2569 and special packedp behavior from -fstrict-volatile-bitfields
2570 documentation.
2571
522d4efc
JBG
25722013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2573
2574 * lra-eliminations.c (init_elim_table): Guard value_p.
2575
19cdb489
MM
25762013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2577
2578 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
2579 DFmode, DImode, and SFmode in the upper VSX registers based on the
2580 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
2581 if -mpower8-vector. Combine -mvsx-timode handling with the rest
2582 of the VSX register handling.
2583
2584 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
2585 (f32_sv): Likewise.
2586 (zero_extendsidi2_lfiwzx): Add support for loading into the
2587 Altivec registers with -mpower8-vector. Use wu/wv constraints to
2588 only do VSX memory options on Altivec registers.
2589 (extendsidi2_lfiwax): Likewise.
2590 (extendsfdf2_fpr): Likewise.
2591 (mov<mode>_hardfloat, SF/SD modes): Likewise.
2592 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
2593 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
2594 (movdi_internal64): Likewise.
2595
d6d11272
XDL
25962013-09-27 Xinliang David Li <davidxl@google.com>
2597
2598 * opts.c (finish_options): Adjust parameters
2599 according to vect cost model.
2600 (common_handle_option): Set dynamic vect cost
2601 model for FDO.
2602 targhooks.c (default_add_stmt_cost): Compute stmt cost
2603 unconditionally.
2604 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
2605 Use helper function.
2606 * tree-vectorizer.h (unlimited_cost_model): New function.
2607 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
2608 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
2609 function.
2610 (vect_enhance_data_refs_alignment): Ditto.
2611 * flag-types.h: New enum.
2612 * common/config/i386/i386-common.c (ix86_option_init_struct):
2613 No need to initialize vect_cost_model flag.
2614 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
2615 unconditionally.
2616
ac1857a3
DN
26172013-09-27 Diego Novillo <dnovillo@google.com>
2618
2619 * gimple.h (enum ssa_mode): Remove.
2620
3c468b4c
PM
26212013-09-27 Paulo Matos <pmatos@broadcom.com>
2622
2623 PR middle-end/58463
2624 * gcc.dg/pr58463.c: New test.
2625
0d0e2af6
PM
26262013-09-27 Paulo Matos <pmatos@broadcom.com>
2627
2628 * cfgloop.h (number_of_loops): Fix typo in check for null.
2629
09dc585e
JJ
26302013-09-27 Jakub Jelinek <jakub@redhat.com>
2631
2632 PR middle-end/58551
2633 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
2634 are children of outermost saved_cfun's loop, and set it up to
2635 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
2636 if loop != loop0 and SESE region contains bbs that belong to loop0.
2637
ec5a3504
RS
26382013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2639
2640 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
2641 (binary_scale_code_p, get_base_term, get_index_term): New functions.
2642 (set_address_segment, set_address_base, set_address_index)
2643 (set_address_disp): Accept the argument unconditionally.
2644 (baseness): Remove must_be_base_p and must_be_index_p checks.
2645 (decompose_normal_address): Classify as much as possible in the
2646 main loop.
2647
f91aec98
RS
26482013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2649
2650 * cse.c (count_reg_usage): Handle INT_LIST.
2651 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
2652 * reginfo.c (reg_scan_mark_refs): Likewise.
2653 * reload1.c (eliminate_regs_1): Likewise.
2654
a9195970
IS
26552013-09-27 Iain Sandoe <iain@codesourcery.com>
2656
2657 PR middle-end/58547
2658 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
2659 signed.
2660
e6f1c509
RB
26612013-09-27 Richard Biener <rguenther@suse.de>
2662
2663 PR tree-optimization/58459
2664 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
2665 restriction not propagating into loops.
2666
84f48495
FW
26672013-09-26 Florian Weimer <fw@deneb.enyo.de>
2668
2669 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
2670 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
2671 * doc/tree-ssa.texi (Walking use-def chains): Delete.
2672
74fc8b8a
RB
26732013-09-26 Richard Biener <rguenther@suse.de>
2674
7a5911d3 2675 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 2676
b4ada065
RB
26772013-09-26 Richard Biener <rguenther@suse.de>
2678
2679 * alias.h (component_uses_parent_alias_set): Rename to ...
2680 (component_uses_parent_alias_set_from): ... this.
2681 * alias.c (component_uses_parent_alias_set): Rename to ...
2682 (component_uses_parent_alias_set_from): ... this and return
2683 the desired parent.
2684 (reference_alias_ptr_type_1): Use the result from
2685 component_uses_parent_alias_set_from instead of stripping
2686 components one at a time.
2687 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
2688
78bca40d
AM
26892013-09-26 Andrew MacLeod <amacleod@redhat.com>
2690
7a5911d3
UB
2691 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
2692 Move prototypes to...
78bca40d
AM
2693 * tree-ssa-ter.h: New File. Move prototypes here.
2694 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
2695 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
2696 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 2697 from is_replaceable_p.
78bca40d
AM
2698 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
2699 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
2700 (process_replaceable): Use ter_is_replaceable_p.
2701 (find_replaceable_in_bb): Use ter_is_replaceable_p.
2702 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
2703 newly refactored ssa_is_replaceable_p.
2704 * cfgexpand.c: Include tree-outof-ssa.h.
2705 * ssaexpand.h: Delete.
2706
ff2a63a7
AM
27072013-09-26 Andrew MacLeod <amacleod@redhat.com>
2708
2709 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
2710 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
2711 tree-ssa.c
2712 (create_gimple_tmp): Delete.
2713 (get_expr_type, build_assign, build_type_cast): Move to...
2714 * gimple-builder.c: New File.
2715 (get_expr_type): Relocate from gimple.c.
2716 (build_assign, build_type_cast): Change to only create ssanames.
2717 * gimple.h: Move prototypes to...
2718 * gimple-builder.h: New File. Here.
2719 * tree-ssa.h: And here.
2720 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
2721 count_uses_and_derefs): Relocate from gimple.c.
2722 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
2723 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
2724 * tree-ssa-math-opts (execute_cse_reciprocals): Use
2725 gimple_replace_ssa_lhs.
2726 * asan.c: Include gimple-builder.h.
2727 * Makefile.in: Add gimple-builder.o.
2728
a2544177
RB
27292013-09-26 Richard Biener <rguenther@suse.de>
2730
2731 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
2732 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
2733 (loe_visit_block): Use gcc_checking_assert.
2734 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
2735 gimple_assign_ssa_name_copy_p.
2736 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
2737 change.
2738
6d1ca9a0
DE
27392013-09-26 David Edelsohn <dje.gcc@gmail.com>
2740
2741 * config/rs6000/t-rs6000 (rs6000.o): Remove.
2742 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
2743
46e950db
RB
27442013-09-26 Richard Biener <rguenther@suse.de>
2745
2746 PR tree-optimization/58539
2747 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
2748 the fact that debug statements are not taking part in loop-closed
2749 SSA construction.
2750
40ada30a
NC
27512013-09-26 Nick Clifton <nickc@redhat.com>
2752
2753 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
2754 time warning message.
2755 (msp430_print_operand_raw): Delete unused letter parameter.
2756 (TARGET_PRINT_OPERAND_ADDRESS): Define.
2757 (msp430_print_operand_address): New function.
2758 (msp430_print_operand): Move address printing code from here to
2759 new function.
2760 * config/msp430/msp430.md (movsipsi2): Add comment in generated
2761 assembler.
2762 (zero_extendpsisi2): Likewise.
2763 (extendpsisi2): New pattern.
2764 (andneghi3): New pattern.
2765
38e8f663
YR
27662013-09-26 Yvan Roux <yvan.roux@linaro.org>
2767
2768 * config/aarch64/aarch64.opt (mlra): New option.
2769 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
2770 (TARGET_LRA_P): Define.
2771
4167e8d4
EB
27722013-09-26 Eric Botcazou <ebotcazou@adacore.com>
2773
2774 * expr.c (expand_assignment): Remove obsolete comment.
2775
5254eac4
JL
27762013-09-25 Jeff Law <law@redhat.com>
2777
2778 * tree-flow.h (thread_through_all_blocks): Prototype moved into
2779 tree-ssa-threadupdate.h.
2780 (register_jump_thread): Similarly.
2781 * tree-ssa-threadupdate.h: New header file.
2782 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
2783 * tree-vrp.c: Likewise.
2784 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
2785 (thread_around_empty_blocks): Change type of path vector argument to
2786 an edge,type pair from just an edge. Initialize both elements when
2787 appending to a jump threading path. Tweak references to elements
2788 appropriately.
2789 (thread_across_edge): Similarly. Release memory for the elements
2790 as needed.
2791 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
2792 (dump_jump_thread_path): New function broken out from
2793 register_jump_thread.
2794 (register_jump_thread): Use dump_jump_thread_path. Change type of
2795 path vector entries. Search the path for NULL edges and dump
2796 the path if one is found. Tweak the conversion of path to 3-edge
2797 form to use the block copy type information embedded in the path.
2798
20f114a3
YR
27992013-09-25 Yvan Roux <yvan.roux@linaro.org>
2800
2801 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
2802
3936bafc
YR
28032013-09-25 Yvan Roux <yvan.roux@linaro.org>
2804 Vladimir Makarov <vmakarov@redhat.com>
2805
2806 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
2807 from the least significant bit.
2808 (strip_address_mutations): Add bitfield operations handling.
2809 (must_be_index_p): Add shifting and rotate operations handling.
2810 (set_address_base): Use must_be_base_p predicate.
4167e8d4 2811 (set_address_index): Use must_be_index_p predicate.
3936bafc 2812
b86f6e9e
AI
28132013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
2814 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2815 Sergey Lega <sergey.s.lega@intel.com>
2816 Anna Tikhonova <anna.tikhonova@intel.com>
2817 Ilya Tocar <ilya.tocar@intel.com>
2818 Andrey Turetskiy <andrey.turetskiy@intel.com>
2819 Ilya Verbin <ilya.verbin@intel.com>
2820 Kirill Yukhin <kirill.yukhin@intel.com>
2821 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2822
2823 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2824 Use new names.
2825 (ix86_expand_vector_move_misalign): Support new unaligned load and
2826 stores and use new names.
2827 (CODE_FOR_sse2_storedqu): Rename to ...
2828 (CODE_FOR_sse2_storedquv16qi): ... this.
2829 (CODE_FOR_sse2_loaddqu): Rename to ...
2830 (CODE_FOR_sse2_loaddquv16qi): ... this.
2831 (CODE_FOR_avx_loaddqu256): Rename to ...
2832 (CODE_FOR_avx_loaddquv32qi): ... this.
2833 (CODE_FOR_avx_storedqu256): Rename to ...
2834 (CODE_FOR_avx_storedquv32qi): ... this.
2835 * config/i386/i386.md (fpint_logic): New.
2836 * config/i386/sse.md (VMOVE): Extend for AVX512.
2837 (VF): Ditto.
2838 (VF_128_256): New.
2839 (VF_512): Ditto.
2840 (VI_UNALIGNED_LOADSTORE): Ditto.
2841 (sse2_avx_avx512f): Ditto.
2842 (sse2_avx2): Extend for AVX512.
2843 (sse4_1_avx2): Ditto.
2844 (avx2_avx512f): New.
2845 (sse): Extend for AVX512.
2846 (sse2): Ditto.
2847 (sse4_1): Ditto.
2848 (avxsizesuffix): Ditto.
2849 (sseintvecmode): Ditto.
2850 (ssePSmode): Ditto.
2851 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
2852 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
2853 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
2854 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
2855 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
2856 (<sse2_avx_avx512f>_storedqu<mode): ... this.
2857 (<sse>_movnt<mode>): Replace constraint "x" with "v".
2858 (STORENT_MODE): Extend for AVX512.
2859 (*absneg<mode>2): Replace constraint "x" with "v".
2860 (*mul<mode>3): Ditto.
2861 (*ieee_smin<mode>3): Ditto.
2862 (*ieee_smax<mode>3): Ditto.
2863 (avx_cmp<mode>3): Replace VF with VF_128_256.
2864 (*<sse>_maskcmp<mode>3_comm): Ditto.
2865 (<sse>_maskcmp<mode>3): Ditto.
2866 (<sse>_andnot<mode>3): Extend for AVX512.
2867 (<code><mode>3, anylogic): Replace VF with VF_128_256.
2868 (<code><mode>3, fpint_logic): New.
2869 (*<code><mode>3): Extend for AVX512.
2870 (avx512flogicsuff): New.
2871 (avx512f_<logic><mode>): Ditto.
2872 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
2873 VF_128_256.
2874 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
2875 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
2876 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
2877 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
2878 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
2879 (xop_vpermil2<mode>3): Ditto.
2880 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
2881 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
2882 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
2883 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
2884
4d44d03c
TT
28852013-09-25 Tom Tromey <tromey@redhat.com>
2886
2887 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
2888 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
2889 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
2890 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
2891 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
2892 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
2893 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
2894 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
2895 (GRAPHITE_HTAB_H): Remove.
2896
86aaf68d
TT
28972013-09-25 Tom Tromey <tromey@redhat.com>
2898
2899 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
2900
c987deb8
TT
29012013-09-25 Tom Tromey <tromey@redhat.com>
2902
2903 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
2904
9439747e
TT
29052013-09-25 Tom Tromey <tromey@redhat.com>
2906
2907 * config/i386/t-i386 (i386.o): Remove.
2908 (i386-c.o): Use COMPILE and POSTCOMPILE.
2909
aefc31a1
TT
29102013-09-25 Tom Tromey <tromey@redhat.com>
2911
2912 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
2913
b6541edc
TT
29142013-09-25 Tom Tromey <tromey@redhat.com>
2915
2916 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
2917 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
2918 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
2919 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
2920 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
2921 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
2922 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
2923 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
2924 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
2925 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
2926 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
2927 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
2928 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
2929 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
2930 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
2931 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
2932 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
2933 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
2934 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
2935 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
2936 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
2937 (tree-ssa-pre.o, tree-ssa-sccvn.o)
2938 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
2939 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
2940 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
2941 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
2942 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
2943 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
2944 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
2945 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
2946 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
2947 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
2948 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
2949 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
2950 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
2951 (graphite-clast-to-gimple.o, graphite-dependences.o)
2952 (graphite-interchange.o, graphite-poly.o)
2953 (graphite-scop-detection.o, graphite-sese-to-poly.o)
2954 (graphite-optimize-isl.o, tree-vect-loop.o)
2955 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
2956 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
2957 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
2958 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
2959 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
2960 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
2961 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
2962 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
2963 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
2964 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
2965 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
2966 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
2967 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
2968 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
2969 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
2970 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
2971 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
2972 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
2973 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
2974 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
2975 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
2976 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
2977 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
2978 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
2979 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
2980 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
2981 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
2982 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
2983 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
2984 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
2985 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
2986 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
2987 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
2988 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
2989 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
2990 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
2991 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
2992 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
2993 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
2994 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
2995 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
2996 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
2997 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
2998 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
2999 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
3000 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
3001 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
3002 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
3003 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
3004 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
3005 (gcov-dump.o): Remove.
3006 (default-c.o): Use COMPILE and POSTCOMPILE.
3007 (CFLAGS-gcc.o): New variable.
3008 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
3009
8c796d19
TT
30102013-09-25 Tom Tromey <tromey@redhat.com>
3011
3012 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
3013 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
3014 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
3015 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
3016 (c-family/c-pragma.o, c-family/c-pretty-print.o)
3017 (c-family/c-semantics.o, c-family/c-ada-spec.o)
3018 (c-family/array-notation-common.o, c-family/stub-objc.o)
3019 (c-family/c-ubsan.o): Remove.
3020
0a6c2227
TT
30212013-09-25 Tom Tromey <tromey@redhat.com>
3022
3023 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
3024
f3bc55f0
TT
30252013-09-25 Tom Tromey <tromey@redhat.com>
3026
3027 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
3028 to add -DENABLE_SHARED_LIBGCC.
3029 (gcc.o): Don't use subshell.
3030
c11c795e
TT
30312013-09-25 Tom Tromey <tromey@redhat.com>
3032
3033 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
3034 * configure.ac: Don't invoke AM_PROG_CC_C_O.
3035 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
3036 * configure, config.in: Rebuild.
3037
043378c3
TT
30382013-09-25 Tom Tromey <tromey@redhat.com>
3039
3040 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
3041 (COMPILE, POSTCOMPILE): New variables.
3042 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
3043 (DEPFILES): New variable.
3044 Include ".Po" files.
3045 * configure.ac: Add checks for dependency checking.
3046 * configure, aclocal.m4: Regenerate.
3047
eab34643
TT
30482013-09-25 Tom Tromey <tromey@redhat.com>
3049
3050 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 3051 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 3052
d2db5e91
TT
30532013-09-25 Tom Tromey <tromey@redhat.com>
3054
3055 * Makefile.in (generated_files): Add options.h,
3056 target-hooks-def.h, insn-opinit.h,
3057 common/common-target-hooks-def.h, pass-instances.def,
3058 c-family/c-target-hooks-def.h.
3059
af33629e
JL
30602013-09-25 Jeff Law <law@redhat.com>
3061
3062 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
3063 than foo[foo.length () - 1] to access last member in a vec.
3064 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
3065
ed0d3051
RB
30662013-09-25 Richard Biener <rguenther@suse.de>
3067
3068 PR middle-end/58521
3069 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
3070
123485ca
JH
30712013-09-25 Jan Hubicka <jh@suse.cz>
3072
3073 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
3074 test.
3075
d70b0f1f
MP
30762013-09-25 Marek Polacek <polacek@redhat.com>
3077
3078 PR sanitizer/58420
3079 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
3080 when determining the type name.
3081
e3f02798
OE
30822013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
3083
3084 * config/sh/sh.md: Fix formatting.
3085
7a5911d3 30862013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 3087
7a5911d3
UB
3088 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
3089 max peel iterations parameter.
4f17aa0b
XDL
3090 * param.def: New parameter.
3091 * doc/invoke.texi: Document New parameter.
3092
0498471b
CL
30932013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
3094
3095 * gimple-pretty-print.c: Various whitespace tweaks.
3096 * tree-core.h: Likewise.
3097 * tree-pretty-print.c: Likewise.
3098 * tree-ssa-alias.c: Likewise.
3099 * tree-ssa-copy.c: Likewise.
3100 * tree-ssanames.c: Likewise.
3101 * tree-ssanames.h: Likewise.
3102 * tree-vrp.c: Likewise.
3103
5a8c2b57
AM
31042013-09-24 Alan Modra <amodra@gmail.com>
3105
3106 PR middle-end/57134
3107 PR middle-end/57586
7a5911d3
UB
3108 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
3109 for output operands that disallow regs. Don't use EXPAND_WRITE on
3110 inout operands.
5a8c2b57 3111
f40333af
RB
31122013-09-24 Richard Biener <rguenther@suse.de>
3113
3114 PR middle-end/58513
3115 * tree.c (reference_alias_ptr_type): Move ...
3116 * alias.c (reference_alias_ptr_type): ... here and implement
3117 in terms of the new reference_alias_ptr_type_1.
3118 (ref_all_alias_ptr_type_p): New helper.
3119 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
3120 use ref_all_alias_ptr_type_p.
3121 (get_deref_alias_set): Add flag_strict_aliasing check here.
3122 (reference_alias_ptr_type_1): New function, split out from ...
3123 (get_alias_set): ... here.
3124 (alias_ptr_types_compatible_p): New function.
3125 * alias.h (reference_alias_ptr_type): Declare.
3126 (alias_ptr_types_compatible_p): Likewise.
3127 * tree.h (reference_alias_ptr_type): Remove.
3128 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
3129 to compare MEM_REF alias types.
3130
583e8bf5
RB
31312013-09-24 Richard Biener <rguenther@suse.de>
3132
3133 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
3134
5e8586d7
MM
31352013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3136
19c3e797
MM
3137 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
3138 reload helper function arrays into a single array reg_addr.
3139 (reload_fpr_gpr): Likewise.
3140 (reload_gpr_vsx): Likewise.
3141 (reload_vsx_gpr): Likewise.
3142 (struct rs6000_reg_addr): Likewise.
3143 (reg_addr): Likewise.
3144 (rs6000_debug_reg_global): Change rs6000_vector_reload,
3145 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
3146 (rs6000_init_hard_regno_mode_ok): Likewise.
3147 (rs6000_secondary_reload_direct_move): Likewise.
3148 (rs6000_secondary_reload): Likewise.
3149
5e8586d7
MM
3150 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
3151 constraints: wu, ww, and wy. Repurpose wv constraint added during
3152 power8 changes. Put wg constraint in alphabetical order.
3153
3154 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
3155 for future work to add ISA 2.07 VSX single precision support.
3156 (-mvsx-scalar-double): Change default from -1 to 1, update
3157 documentation comment.
3158 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
3159 (-mupper-regs-df): New debug switch to control whether DF values
3160 can go in the traditional Altivec registers.
3161 (-mupper-regs-sf): New debug switch to control whether SF values
3162 can go in the traditional Altivec registers.
3163
3164 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
3165 and wy constraints.
3166 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
3167 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
3168 Add new constraints, wu/ww/wy. Repurpose wv constraint.
3169 (rs6000_debug_legitimate_address_p): Print if we are running
3170 before, during, or after reload.
3171 (rs6000_secondary_reload): Add a comment.
3172 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
3173
3174 * config/rs6000/constraints.md (wa constraint): Sort w<x>
3175 constraints. Update documentation string.
3176 (wd constraint): Likewise.
3177 (wf constraint): Likewise.
3178 (wg constraint): Likewise.
3179 (wn constraint): Likewise.
3180 (ws constraint): Likewise.
3181 (wt constraint): Likewise.
3182 (wx constraint): Likewise.
3183 (wz constraint): Likewise.
3184 (wu constraint): New constraint for ISA 2.07 SFmode scalar
3185 instructions.
3186 (ww constraint): Likewise.
3187 (wy constraint): Likewise.
3188 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
3189 the previous submissions.
3190 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
3191
e5af9ddd
RS
31922013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3193
3194 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
3195 (REG_BR_PROB): Say that the probability is stored in an int_list.
3196 * reg-notes.def: Update commentary to mention INT_LIST.
3197 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
3198 (INT_LIST): New rtx.
3199 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
3200 * rtlanal.c (int_reg_note_p): New function.
3201 (alloc_reg_note): Assert that the note does not have an int argument.
3202 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
3203 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
3204 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
3205 rather than an INSN_LIST. Handle INT_LIST.
3206 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
3207 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
3208 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
3209 Manipulate them as ints rather than rtxes.
3210 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
3211 * regmove.c (copy_src_to_dest): Likewise.
3212 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
3213
3214 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
3215 into the cases that need it.
3216 * config/arm/arm.c (arm_unwind_emit): Likewise.
3217
3218 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
3219 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
3220 * loop-doloop.c (add_test, doloop_modify): Likewise.
3221 * loop-unswitch.c (compare_and_jump_seq): Likewise.
3222 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
3223 * predict.c (combine_predictions_for_insn): Likewise.
3224 * print-rtl.c (print_rtx): Handle INT_LIST.
3225 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
3226 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
3227 * config/arm/arm.c (emit_unlikely_jump): Likewise.
3228 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
3229 (ix86_split_fp_branch, predict_jump): Likewise.
3230 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
3231 * config/sh/sh.c (expand_cbranchsi4): Likewise.
3232 * config/spu/spu.c (ea_load_store_inline): Likewise.
3233
3234 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
3235 value of a REG_BR_PROB note.
3236 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
3237 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
3238 * emit-rtl.c (try_split): Likewise.
3239 * predict.c (br_prob_note_reliable_p): Likewise.
3240 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
3241 * reorg.c (mostly_true_jump): Likewise.
3242 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
3243 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
3244 * config/i386/i386.c (ix86_print_operand): Likewise.
3245 * config/ia64/ia64.c (ia64_print_operand): Likewise.
3246 * config/mmix/mmix.c (mmix_print_operand): Likewise.
3247 * config/rs6000/rs6000.c (output_cbranch): Likewise.
3248 * config/s390/s390.c (s390_expand_tbegin): Likewise.
3249 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
3250 * config/sparc/sparc.c (output_cbranch): Likewise.
3251 * config/spu/spu.c (get_branch_target): Likewise.
3252 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
3253 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
3254
450ad0cd
JH
32552013-09-23 Jan Hubicka <jh@suse.cz>
3256
3257 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
3258 for ipa-devirt.
3259 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
3260 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
3261 of external calls
3262 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
3263 (gimple_fold_call): Dump inconsistent devirtualizations; add
3264 sanity check for type based devirtualizations.
3265 * ipa-prop.c: Include ipa-utils.h
3266 (ipa_intraprocedural_devirtualization): Add sanity check.
3267 (try_make_edge_direct_virtual_call): Likewise.
3268
cefce769
EB
32692013-09-23 Eric Botcazou <ebotcazou@adacore.com>
3270
3271 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
3272 assignment statements.
3273
a895a2b8
KV
32742013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
3275
3276 * gimple-pretty-print.c (dump_ssaname_info): New function.
3277 (dump_gimple_phi): Call it.
3278 (pp_gimple_stmt_1): Likewise.
3279 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
3280 (range_info_def): Declare.
3281 * tree-pretty-print.c (pp_double_int): New function.
3282 (dump_generic_node): Call it.
3283 * tree-pretty-print.h (pp_double_int): Declare.
3284 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
3285 * tree-ssanames.h (range_info_def): New structure.
3286 (value_range_type): Move definition here.
3287 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
3288 Declare.
3289 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
3290 initialization.
3291 (set_range_info): New function.
3292 (get_range_info): Likewise.
3293 (duplicate_ssa_name_range_info): Likewise.
3294 (duplicate_ssa_name_fn): Check pointer type and call
3295 duplicate_ssa_name_range_info.
3296 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3297 * tree-vrp.c (value_range_type): Remove definition, now in
3298 tree-ssanames.h.
7a5911d3 3299 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
3300 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
3301 (SSA_NAME_RANGE_INFO): New macro.
3302
984af6ac
RB
33032013-09-23 Richard Biener <rguenther@suse.de>
3304
3305 PR tree-optimization/58464
3306 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 3307 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
3308 (phi_translate_1): Remove recursion detection here.
3309 (phi_translate): Pre-seed the cache with NULL to catch
3310 recursion here in a more generic way.
3311 (bitmap_find_leader): Adjust comment.
3312 (get_representative_for): Dump value-numbers.
3313 (create_expression_by_pieces): Likewise.
3314 (insert_into_preds_of_block): Likewise.
3315
0e26cf79
CB
33162013-09-23 Christian Bruel <christian.bruel@st.com>
3317
3318 PR target/58475
3319 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
3320 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
3321
4d0e5b54
JG
33222013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
3323
3324 Revert r202780:
3325 2013-09-20 Renlin Li <renlin.li@arm.com>
3326
7a5911d3
UB
3327 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3328 plus_constant.
4d0e5b54
JG
3329 (aarch64_expand_epilogue): Likewise.
3330 (aarch64_legitimize_reload_address): Likewise.
3331
ca081cc8
EB
33322013-09-22 Eric Botcazou <ebotcazou@adacore.com>
3333
3334 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
3335 NULL_TREE before pushing them onto the vector. Likewise for labels.
3336
8fc53a5f
EB
33372013-09-21 Eric Botcazou <ebotcazou@adacore.com>
3338
3339 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
3340 comparison operators when -fno-trapping-math is in effect.
3341 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
3342 comparison operators in TFmode and assert that unsupported operators
3343 cannot reach here.
3344 (ia64_print_operand): Likewise.
3345
33462013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
3347
3348 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
3349 (sse_typeless_stores): Enable for core
3350 (sse_load0_by_pxor): Likewise.
3351 (four_jump_limit): Disable for core.
3352 (pad_returns): Likewise.
3353 (avoid_vector_decode): Likewise.
3354 (fuse_cmp_and_branch): Enable for cores.
3355 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
3356
578e51e6
JDA
33572013-09-20 John David Anglin <danglin@gcc.gnu.org>
3358
96ce28a3
JDA
3359 PR middle-end/56791
3360 * config/pa/pa.c (pa_option_override): Disable auto increment and
3361 decrement instructions until reload is completed.
3362
578e51e6
JDA
3363 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
3364 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
3365 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
3366
6fcd3a13 33672013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 3368 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
3369
3370 * config/rl78/rl78.c: Various whitespace and comment tweaks.
3371 (need_to_save): Save bank 0 on interrupts.
3372 (characterize_address): Strip far address wrappers.
3373 (rl78_as_legitimate_address): Likewise.
3374 (transcode_memory_rtx): Likewise.
3375 (rl78_peep_movhi_p): Disable this peephole after devirt.
3376 (rl78_propogate_register_origins): Forget all origins when a
3377 CLOBBER is seen.
3378 * config/rl78/rl78-virt.md: Various whitespace tweaks.
3379 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
3380 peephole2's.
3381 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
3382 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
3383 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
3384 relocating.
3385 * config/rl78/constraints.md: Various whitespace and paren tweaks.
3386
4a08db33
JDA
33872013-09-20 John David Anglin <danglin@gcc.gnu.org>
3388
3389 * config/pa/pa.md: In "scc" insn patterns, change output template to
3390 handle const0_rtx in reg_or_0_operand operands.
3391
7691132c
JBG
33922013-09-20 Martin Husemann <martin@NetBSD.org>
3393
3394 PR target/56875
3395 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
3396 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
3397
a3cc13cc
RB
33982013-09-20 Richard Biener <rguenther@suse.de>
3399
3400 PR middle-end/58484
3401 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
3402 remembering SSA name version and block index.
3403 (new_scev_info_str): Adjust.
3404 (hash_scev_info): Likewise. Also hash the block index.
3405 (eq_scev_info): Adjust.
3406 (find_var_scev_info): Likewise.
3407 (struct instantiate_cache_entry): Remove.
3408 (struct instantiate_cache_type): Use a htab to map name, block
3409 to chrec.
3410 (instantiate_cache_type::~instantiate_cache_type): Adjust.
3411 (get_instantiated_value_entry): Likewise.
3412 (hash_idx_scev_info, eq_idx_scev_info): New functions.
3413 (instantiate_scev_name): Adjust.
3414
925f3871
JL
34152013-09-20 Jeff Law <law@redhat.com>
3416
3417 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
3418
2888c331
YZ
34192013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
3420
3421 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
3422 Call aarch64_simd_expand_args to update op[argc].
3423
0a811e96
BS
34242013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
3425
7a5911d3
UB
3426 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
3427 plugin argument.
0a811e96 3428
0078f462
BS
34292013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
3430
7a5911d3
UB
3431 * gengtype.c (file_rules): Added rule for *.cc files.
3432 (get_output_file_with_visibility): Give fatal message when no
3433 rules found.
0078f462 3434
d20e48b0
RL
34352013-09-20 Renlin Li <renlin.li@arm.com>
3436
3437 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
3438 (aarch64_expand_epilogue): Likewise.
3439 (aarch64_legitimize_reload_address): Likewise.
3440
59bb1544
BE
34412013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3442
3443 PR middle-end/57748
3444 * expr.c (expand_assignment): Remove misalignp code path.
3445
a5430019
MP
34462013-09-20 Marek Polacek <polacek@redhat.com>
3447
3448 PR sanitizer/58413
3449 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
3450 TYPE_PRECISION. Add asserts.
3451
9fed7f3a
RB
34522013-09-20 Richard Biener <rguenther@suse.de>
3453
3454 PR tree-optimization/58453
3455 * tree-loop-distribution.c (distribute_loop): Apply the cost
3456 model for -ftree-loop-distribute-patterns, too.
3457
a820c834
RB
34582013-09-20 Richard Biener <rguenther@suse.de>
3459
3460 PR middle-end/58473
3461 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
3462 make type comparison less strict.
3463
3cbe17f7
AM
34642013-09-20 Alan Modra <amodra@gmail.com>
3465
3466 * configure: Regenerate.
3467 * aclocal.m4: Regenerate.
3468
87fccdbb
MP
34692013-09-20 Marek Polacek <polacek@redhat.com>
3470
3471 PR other/58467
3472 * doc/extend.texi: Document that attribute used is meant to be used
3473 on variables with static storage duration.
3474
8928eff3
JJ
34752013-09-19 Jakub Jelinek <jakub@redhat.com>
3476
3477 PR tree-optimization/58472
3478 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
3479 simd_lane_access set inv_p = false.
3480 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
3481 the simduid magic VAR_DECL.
3482
b7b28c53
JH
34832013-09-19 Jan Hubicka <jh@suse.cz>
3484
3485 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
3486
83ae86f5
JL
34872013-09-17 Jeff Law <law@redhat.com>
3488
3489 * tree-ssa-dom.c (record_temporary_equivalences): New function
3490 split out of dom_opt_dom_walker::after_dom_children.
3491 (dom_opt_dom_walker::thread_across_edge): Move common code
3492 in here from dom_opt_dom_walker::after_dom_children.
3493 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
3494
9d532162
JH
34952013-09-19 Jan Hubicka <jh@suse.cz>
3496
3497 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
3498 (TARGET_GENERIC): Use PROCESOR_GENERIC
3499 (enum processor_type): Unify generic32 and 64.
3500 * i386.md (cpu): Likewise.
3501 * x86-tune.def (use_leave): Enable for generic32.
3502 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
3503 * athlon.md: Change generic64 to generic in all occurences.
3504 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
3505 (ix86_target_macros_internal): Likewise.
3506 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
3507 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
3508 to ..
9d532162
JH
3509 (generic_memcpy, generic_memset, generic_cost): This one.
3510 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
3511 (m_GENERIC32, m_GENERIC64): Remove.
3512 (m_GENERIC): Turn into one flag.
3513 (processor_target): Unify generic tunnings.
3514 (ix86_option_override_internal): Replace generic32/64 by generic.
3515 (ix86_issue_rate): Likewise.
3516 (ix86_adjust_cost): Likewise.
3517
188c7d00
JH
35182013-09-19 Jan Hubicka <jh@suse.cz>
3519
3520 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
3521 of speculative flag.
3522
4befd127
JJ
35232013-09-19 Jakub Jelinek <jakub@redhat.com>
3524
3525 * omp-low.c (expand_omp_sections): Always pass len - 1 to
3526 GOMP_sections_start, even if !exit_reachable.
3527
8a26ad39
VM
35282013-09-18 Vladimir Makarov <vmakarov@redhat.com>
3529
3530 * lra-constraints.c (need_for_all_save_p): Use macro
3531 HARD_REGNO_CALL_PART_CLOBBERED.
3532 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
3533 set up pseudo conflict hard regs.
3534
09487185
MM
35352013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
3536
3537 PR target/58452
3538 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
3539 operands.
3540
080cbf9e
VM
35412013-09-18 Vladimir Makarov <vmakarov@redhat.com>
3542
3543 PR rtl-optimization/58438
3544 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
3545 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
3546 from previous subpasses.
3547
a0f70fcb
RE
35482013-09-18 Richard Earnshaw <rearnsha@arm.com>
3549
3550 * arm.c (arm_get_frame_offsets): Validate architecture supports
3551 LDRD/STRD before accepting the tuning preference.
3552 (arm_expand_prologue): Likewise.
3553 (arm_expand_epilogue): Likewise.
3554
0547c9b6
RB
35552013-09-18 Richard Biener <rguenther@suse.de>
3556
3557 PR tree-optimization/58417
3558 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
3559 have chrecs with symbols defined in the loop as operands.
3560 (chrec_fold_multiply): Likewise.
3561 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
3562 parameters before folding binary operations.
3563 (struct instantiate_cache_entry_hasher): Remove.
3564 (struct instantiate_cache_type): Use a pointer-map.
3565 (instantiate_cache_type::instantiate_cache_type): New function.
3566 (instantiate_cache_type::get): Likewise.
3567 (instantiate_cache_type::set): Likewise.
3568 (instantiate_cache_type::~instantiate_cache_type): Adjust.
3569 (get_instantiated_value_entry): Likewise.
3570 (global_cache): New global.
3571 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
3572 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
3573 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
3574 (instantiate_scev_name): Adjust.
3575 (instantiate_scev): Construct global instead of local cache.
3576 (resolve_mixers): Likewise.
3577
309dc1aa
DM
35782013-09-18 Daniel Morris <danielm@ecoscentric.com>
3579 Paolo Carlini <paolo.carlini@oracle.com>
3580
3581 PR c++/58458
3582 * doc/implement-cxx.texi: Fix references to the C++ standards.
3583
995a1b4a
JJ
35842013-09-18 Jakub Jelinek <jakub@redhat.com>
3585
3586 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
3587 * tree-vect-data-refs.c (vect_analyze_data_refs): For
3588 simd_lane_access drs, update also DR_ALIGNED_TO.
3589
ce6923c5
MP
35902013-09-18 Marek Polacek <polacek@redhat.com>
3591
3592 PR sanitizer/58411
3593 * doc/extend.texi: Document no_sanitize_undefined attribute.
3594 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
3595 no_sanitize_undefined attribute.
3596
d30d00a2
NC
35972013-09-18 Nick Clifton <nickc@redhat.com>
3598
3599 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
3600 (ASM_DECLARE_FUNCTION_NAME): Define.
3601
4d9192b5
TS
36022013-09-17 Trevor Saunders <tsaunders@mozilla.com>
3603
3604 * compare-elim.c (find_comparison_dom_walker): New class
3605 (find_comparisons_in_bb): Rename to
3606 find_comparison_dom_walker::before_dom_children
3607 (find_comparisons): Adjust
3608 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
3609 adjust.
3610 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
3611 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
3612 (init_walk_dominator_tree): Remove declaration.
3613 (fini_walk_dominator_tree): Remove declaration.
3614 * fwprop.c (single_def_use_dom_walker): New class
3615 (single_def_use_enter_block): Convert to
3616 single_def_use_dom_walker::before_dom_children.
3617 (single_def_use_leave_block): Convert to
3618 single_def_use_dom_walker::after_dom_children.
3619 (build_single_def_use_links): Adjust.
3620 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
3621 class.
3622 (find_candidates_in_block): Convert to
3623 find_candidates_dom_walker::before_dom_children.
3624 (execute_strength_reduction): Adjust.
3625 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
3626 (sese_dom_walker): New class.
3627 (sese_dom_walker::sese_dom_walker): New constructor.
3628 (sese_dom_walker::~sese_dom_walker): New destructor.
3629 (build_sese_conditions_before): Convert to
3630 sese_dom_walker::before_dom_children.
3631 (build_sese_conditions_after): Convert to
3632 sese_dom_walker::after_dom_children.
3633 (build_poly_scop): Adjust
3634 * tree-into-ssa.c (rewrite_dom_walker): New class
3635 (rewrite_enter_block): Convert to
3636 rewrite_dom_walker::before_dom_children.
3637 (rewrite_leave_block): Convert to
3638 rewrite_dom_walker::after_dom_children.
3639 (rewrite_update_dom_walker): New class.
3640 (rewrite_update_enter_block): Convert to
3641 rewrite_update_dom_walker::before_dom_children.
3642 (rewrite_update_leave_block): Convert to
3643 rewrite_update_dom_walker::after_dom_children.
3644 (rewrite_blocks, rewrite_into_ssa): Adjust.
3645 (mark_def_dom_walker): New class.
3646 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
3647 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
3648 (mark_def_sites_blocks): Convert to
3649 mark_def_dom_walker::before_dom_children.
3650 (mark_def_site_blocks): Remove.
3651 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
3652 (tree_ssa_dominator_optimize): Adjust.
3653 (dom_thread_across_edge): Convert to method
3654 dom_opt_dom_walker::thread_across_edge.
3655 (dom_opt_enter_block): Convert to member function
3656 dom_opt_dom_walker::before_dom_children.
3657 (dom_opt_leave_block): Convert to member function
3658 dom_opt_dom_walker::after_dom_children.
3659 * tree-ssa-dse.c (dse_dom_walker): New class.
3660 (dse_enter_block): Convert to member function
3661 dse_dom_walker::before_dom_children.
3662 (tree_ssa_dse): Adjust.
3663 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
3664 (determine_invariantness_stmt): Convert to method
3665 invariantness_dom_walker::before_dom_children.
3666 (determine_invariantness): Remove
3667 (move_computations_dom_walker): New class.
3668 (move_computations_stmt): Convert to method
3669 move_computations_dom_walker::before_dom_children.
3670 (move_computations, tree_ssa_lim): Adjust.
3671 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
3672 (nt_init_block): Make method
3673 notrappping_dom_walker::before_dom_children.
3674 (nt_fini_block): Make
3675 method nontrapping_dom_walker::after_dom_children.
3676 (get_non_trapping): Adjust.
3677 * tree-ssa-pre.c (eliminate_dom_walker): New class.
3678 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
3679 (eliminate_leave_block): Make method.
3680 eliminate_dom_walker::after_dom_children.
3681 (eliminate): Adjust
3682 * tree-ssa-strlen.c (strlen_dom_walker): New class.
3683 (strlen_enter_block): Make method
3684 strlen_dom_walker::before_dom_children.
3685 (strlen_leave_block): Make
3686 method strlen_dom_walker::after_dom_children.
3687 (tree_ssa_strlen): Adjust.
3688 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
3689 (tree_ssa_uncprop): Adjust.
3690 (uncprop_leave_block): Make method
3691 uncprop_dom_walker::after_dom_children.
3692 (uncprop_leave_block): Make method
3693 uncprop_dom_walker::before_dom_children.
3694
3b3cc26b
BC
36952013-09-18 Bin Cheng <bin.cheng@arm.com>
3696
7a5911d3
UB
3697 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
3698 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 3699
b5ba3a9b
NC
37002013-09-17 Nick Clifton <nickc@redhat.com>
3701
3702 * config/rl78/rl78-real.md (bf): New pattern.
3703 (bt): New pattern.
3704 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
3705 (rl78_print_operand): Do not put a # before a %B.
3706 * config/rl78/rl78.opt: Tweak doc strings.
3707
09d5094b
DD
37082013-09-17 DJ Delorie <dj@redhat.com>
3709
3710 * config/rl78/constraints.md (Wcv): Allow up to $r31.
3711 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
3712 (rl78_option_override): Likewise, if -mallregs.
3713 (is_virtual_register): Likewise.
3714 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
3715 (REGNO_OK_FOR_BASE_P): Likewise.
3716 * config/rl78/rl78.opt (-mallregs): New.
3717
2ba1dca1
NC
37182013-09-17 Nick Clifton <nickc@redhat.com>
3719
3720 * config/rl78/rl78.c (need_to_save): Change return type to bool.
3721 For interrupt functions: save all call clobbered registers if the
3722 interrupt handler is not a leaf function.
3723 (rl78_expand_prologue): Always recompute the frame information.
3724 For interrupt functions: only select bank 0 if one of the bank 0
3725 registers is going to be psuhed.
3726
2e7c3f21
DD
37272013-09-17 DJ Delorie <dj@redhat.com>
3728
3729 * config/rl78/constraints.md: For each W* constraint, rename to C*
3730 and create a W* constraint that checks for an optional ES: prefix
3731 pattern also.
3732 * config/rl78/rl78.md (UNS_ES_ADDR): New.
3733 (es_addr): New. Used to wrap far addresses.
3734 * config/rl78/rl78-protos.h (rl78_es_addr): New.
3735 (rl78_es_base): New.
3736 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
3737 wrapped far addresses.
3738 (rl78_print_operand_1): Unwrap far addresses before processing.
3739 (rl78_lo16): Wrap far addresses in unspecs.
3740 (rl78_es_addr): New.
3741 (rl78_es_base): New.
3742 (insn_ok_now): Check for not-yet-wrapped far addresses.
3743 (transcode_memory_rtx): Properly re-wrap far addresses.
3744
5c26a69a
SH
37452013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
3746
3747 * config/sparc/t-rtems: Add leon3 multilibs.
3748
181f5f3e
CH
37492013-09-17 Cong Hou <congh@google.com>
3750
3751 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
3752 when checking the dot production pattern. The type of rhs operand
3753 of multiply is now checked correctly.
3754
8d34e421
JL
37552013-09-17 Jeff Law <law@redhat.com>
3756
3757 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3758 edge implied equivalences into successor phis.
3759 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
3760 here from tree-ssa-threadedge.c.
3761 (mark_threaded_blocks): When threading through a joiner, if both
3762 successors of the joiner's clone reach the same block, verify the
3763 PHI arguments are equal. If not, cancel the jump threading request.
3764 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
3765 tree-ssa-threadupdate.c
3766 (thread_across_edge): Don't check PHI argument equality when
3767 threading through joiner block here.
7a5911d3 3768
c152901f
AM
37692013-09-17 Andrew MacLeod <amacleod@redhat.com>
3770
3771 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
3772 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
3773 (warn_uninit, warn_uninitialized_vars,
3774 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
3775 Move to tree-ssa-uninit.c.
78cedfb1 3776 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 3777 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
3778 ssa_undefined_value_p.
3779 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
3780 (warn_uninit, warn_uninitialized_vars,
3781 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
3782 Move from tree-ssa.c.
3783 * tree-ssa.h: Adjust prototypes.
c152901f 3784
b631d45a
JH
37852013-09-17 Jan Hubicka <jh@suse.cz>
3786
3787 PR middle-end/58332
3788 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
3789 * ipa-inline.c (can_inline_edge_p): Do not downgrade
3790 FUNCTION_NOT_OPTIMIZED.
3791 * ipa-inline-analysis.c (compute_inline_parameters): Function
3792 not optimized is not inlinable unless it is alwaysinline.
3793 (inline_analyze_function): Force calls in not optimized
3794 function not inlinable.
3795
5b79657a
JH
37962013-09-17 Jan Hubicka <jh@suse.cz>
3797
3798 PR middle-end/58329
3799 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
3800 to return NULL.
3801 * ipa.c (function_and_variable_visibility): Likewise.
3802 * ipa-profile.c (ipa_profile): Likewise.
3803
27442c24
BE
38042013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
3805
3806 PR ipa/58398
3807 * cgraph.c (cgraph_function_body_availability): Check for ifunc
3808 attribute, and don't inline the resolver in this case.
3809
753b9bc3
TJ
38102013-09-17 Teresa Johnson <tejohnson@google.com>
3811
3812 * coverage.c (get_coverage_counts): Add missing newline.
3813
e3d3cfb4
KT
38142013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3815
3816 PR tree-optimization/58088
3817 * fold-const.c (mask_with_trailing_zeros): New function.
3818 (fold_binary_loc): Make sure we don't recurse infinitely
3819 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
3820 Use mask_with_trailing_zeros where appropriate.
3821
9a0ac98f
YR
38222013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
3823
3824 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
3825 of 'prev' var to get better distance estimation.
3826
78bbd765
EB
38272013-09-17 Eric Botcazou <ebotcazou@adacore.com>
3828
3829 * tree-inline.h (struct copy_body_data): Add transform_parameter.
3830 * tree-inline.c (is_parameter_of): New predicate.
3831 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
3832 a parameter has been remapped.
3833 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
3834 (optimize_inline_calls): Initialize transform_parameter.
3835 (copy_gimple_seq_and_replace_locals): Likewise.
3836 (tree_function_versioning): Likewise.
3837 (maybe_inline_call_in_expr): Likewise.
3838
cad055a4
NC
38392013-09-17 Nick Clifton <nickc@redhat.com>
3840
3841 * config/msp430/msp430-protos.h: Add prototypes for new functions.
3842 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
3843 interrupt handlers.
3844 (is_attr_func): New function.
3845 (msp430_is_interrupt_func): New function.
3846 (is_naked_func): New function.
3847 (is_reentrant_func): New function.
3848 (is_critical_func): New function.
3849 (msp430_start_function): Add annotations for function attributes.
3850 (msp430_attr): New function.
3851 (msp430_attribute_table): New.
3852 (msp430_function_section): New function.
3853 (TARGET_ASM_FUNCTION_SECTION): Define.
3854 (msp430_builtin): New enum.
3855 (msp430_init_builtins): New function.
3856 (msp430_builtin_devl): New function.
3857 (msp430_expand_builtin): New function.
3858 (TARGET_INIT_BUILTINS): Define.
3859 (TARGET_EXPAND_BUILTINS): Define.
3860 (TARGET_BUILTIN_DECL): Define.
3861 (msp430_expand_prologue): Add support for naked, interrupt,
3862 critical and reentrant functions.
3863 (msp430_expand_epilogue): Likewise.
3864 (msp430_print_operand): Handle 'O' character.
3865 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
3866 NO_TRAMPOLINES.
3867 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
3868 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
3869 (pushm): Use a 'n' rather than an 'i' constraint.
3870 (msp_return): Add generation of the interrupt return instruction.
3871 (disable_interrupts): New pattern.
3872 (enable_interrupts): New pattern.
3873 (push_intr_state): New pattern.
3874 (pop_intr_state): New pattern.
3875 (bic_SR): New pattern.
3876 (bis_SR): New pattern.
3877 * doc/extend.texi: Document MSP430 function attributes and builtin
3878 functions.
3879
deb6c11a
RB
38802013-09-17 Richard Biener <rguenther@suse.de>
3881
3882 PR tree-optimization/58432
3883 * tree-loop-distribution.c (tree_loop_distribution): Also
3884 scan PHIs for outside loop uses and seed a partition from them.
3885
c068654b
BC
38862013-09-17 Bin Cheng <bin.cheng@arm.com>
3887
3888 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
3889 (restructure_reference): Call backtrace_base_for_ref.
3890
567969e4
AM
38912013-09-17 Alan Modra <amodra@gmail.com>
3892
3893 PR target/57589
7a5911d3
UB
3894 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
3895 patch.
567969e4 3896
5c0029de
DD
38972013-09-16 DJ Delorie <dj@redhat.com>
3898
3899 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
3900 vregs location for RL78/G10.
3901 (rl78_expand_prologue): Avoid SEL on G10.
3902 (rl78_expand_epilogue): Likewise.
3903 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
3904 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
3905 __RL78_G10__ when appropriate.
3906 (ASM_SPEC): Pass -mg10 along to the assembler.
3907 * config/rl78/rl78.md (sel_rb): Disable for G10.
3908 * config/rl78/rl78.opt: Add -mg10 option.
3909 * config/rl78/t-rl78: Add -mg10 multilib.
3910
ea0f3e87
XDL
39112013-09-16 Xinliang David Li <davidxl@google.com>
3912
3913 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
3914 * omp-low.c (omp_max_vf): Ditto.
3915 (expand_omp_simd): Ditto.
3916 * tree-vectorizer.c (vectorize_loops): Ditto.
3917 (gate_vect_slp): Ditto.
3918 (gate_increase_alignment): Ditto.
3919 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
3920 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
3921 (gate_tree_vectorize): Name change.
3922 (tree_vectorize): Ditto.
3923 (pass_vectorize::gate): Call new function.
3924 (pass_vectorize::execute): Ditto.
7a5911d3 3925 * opts.c: O3 default setting change.
ea0f3e87
XDL
3926 (finish_options): Check new flag.
3927 * doc/invoke.texi: Document new flags.
3928 * common.opt: New flags.
3929
4f3da2e5
AS
39302013-09-16 Andreas Schwab <schwab@linux-m68k.org>
3931
3932 * doc/tm.texi.in (Cond Exec Macros): Remove node.
3933 (Condition Code): Don't reference it.
3934 * doc/tm.texi: Regenerate.
3935
aa940f7c
VM
39362013-09-16 Vladimir Makarov <vmakarov@redhat.com>
3937
3938 PR middle-end/58418
3939 * lra-constraints.c (undo_optional_reloads): Consider all optional
3940 reload even if it did not get a hard reg.
3941
e645e942
TJ
39422013-09-16 Teresa Johnson <tejohnson@google.com>
3943
3944 * dumpfile.c (dump_loc): Remove newline emission.
3945 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
3946 emission to dump_printf_loc calls where missing.
3947 (vect_mark_for_runtime_alias_test): Ditto.
3948 (vect_analyze_data_ref_dependence): Ditto.
3949 (vect_analyze_data_ref_dependences): Ditto.
3950 (vect_slp_analyze_data_ref_dependence): Ditto.
3951 (vect_slp_analyze_data_ref_dependences): Ditto.
3952 (vect_compute_data_ref_alignment): Ditto.
3953 (vect_update_misalignment_for_peel): Ditto.
3954 (vect_verify_datarefs_alignment): Ditto.
3955 (vector_alignment_reachable_p): Ditto.
3956 (vect_get_data_access_cost): Ditto.
3957 (vect_enhance_data_refs_alignment): Ditto.
3958 (vect_find_same_alignment_drs): Ditto.
3959 (vect_analyze_data_refs_alignment): Ditto.
3960 (vect_analyze_group_access): Ditto.
3961 (vect_analyze_data_ref_access): Ditto.
3962 (vect_analyze_data_ref_accesses): Ditto.
3963 (vect_prune_runtime_alias_test_list): Ditto.
3964 (vect_analyze_data_refs): Ditto.
3965 (vect_create_addr_base_for_vector_ref): Ditto.
3966 (vect_create_data_ref_ptr): Ditto.
3967 (vect_grouped_store_supported): Ditto.
3968 (vect_grouped_load_supported): Ditto.
3969 * value-prof.c (check_counter): Ditto.
3970 (check_ic_target): Ditto.
3971 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
3972 (vect_recog_widen_mult_pattern): Ditto.
3973 (vect_recog_widen_sum_pattern): Ditto.
3974 (vect_recog_over_widening_pattern): Ditto.
3975 (vect_recog_widen_shift_pattern): Ditto.
3976 (vect_recog_rotate_pattern): Ditto.
3977 (vect_recog_vector_vector_shift_pattern): Ditto.
3978 (vect_recog_divmod_pattern): Ditto.
3979 (vect_recog_mixed_size_cond_pattern): Ditto.
3980 (vect_recog_bool_pattern): Ditto.
3981 (vect_pattern_recog_1): Ditto.
3982 (vect_pattern_recog): Ditto.
3983 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
3984 (vect_is_simple_iv_evolution): Ditto.
3985 (vect_analyze_scalar_cycles_1): Ditto.
3986 (vect_get_loop_niters): Ditto.
3987 (vect_analyze_loop_1): Ditto.
3988 (vect_analyze_loop_form): Ditto.
3989 (vect_analyze_loop_operations): Ditto.
3990 (vect_analyze_loop_2): Ditto.
3991 (vect_analyze_loop): Ditto.
3992 (report_vect_op): Ditto.
3993 (vect_is_slp_reduction): Ditto.
3994 (vect_is_simple_reduction_1): Ditto.
3995 (vect_get_known_peeling_cost): Ditto.
3996 (vect_estimate_min_profitable_iters): Ditto.
3997 (vect_model_reduction_cost): Ditto.
3998 (vect_model_induction_cost): Ditto.
3999 (get_initial_def_for_induction): Ditto.
4000 (vect_create_epilog_for_reduction): Ditto.
4001 (vectorizable_reduction): Ditto.
4002 (vectorizable_induction): Ditto.
4003 (vectorizable_live_operation): Ditto.
4004 (vect_loop_kill_debug_uses): Ditto.
4005 (vect_transform_loop): Ditto.
4006 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
4007 (vect_stmt_relevant_p): Ditto.
4008 (process_use): Ditto.
4009 (vect_mark_stmts_to_be_vectorized): Ditto.
4010 (vect_model_simple_cost): Ditto.
4011 (vect_model_promotion_demotion_cost): Ditto.
4012 (vect_model_store_cost): Ditto.
4013 (vect_get_store_cost): Ditto.
4014 (vect_model_load_cost): Ditto.
4015 (vect_get_load_cost): Ditto.
4016 (vect_init_vector_1): Ditto.
4017 (vect_get_vec_def_for_operand): Ditto.
4018 (vect_finish_stmt_generation): Ditto.
4019 (vectorizable_call): Ditto.
4020 (vectorizable_conversion): Ditto.
4021 (vectorizable_assignment): Ditto.
4022 (vectorizable_shift): Ditto.
4023 (vectorizable_operation): Ditto.
4024 (vectorizable_store): Ditto.
4025 (vectorizable_load): Ditto.
4026 (vectorizable_condition): Ditto.
4027 (vect_analyze_stmt): Ditto.
4028 (vect_transform_stmt): Ditto.
4029 (vect_is_simple_use): Ditto.
4030 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
4031 (vect_can_advance_ivs_p): Ditto.
4032 (vect_update_ivs_after_vectorizer): Ditto.
4033 (vect_do_peeling_for_loop_bound): Ditto.
4034 (vect_gen_niters_for_prolog_loop): Ditto.
4035 (vect_update_inits_of_drs): Ditto.
4036 (vect_create_cond_for_alias_checks): Ditto.
4037 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
4038 (vect_build_slp_tree_1): Ditto.
4039 (vect_supported_load_permutation_p): Ditto.
4040 (vect_analyze_slp_instance): Ditto.
4041 (vect_analyze_slp): Ditto.
4042 (vect_make_slp_decision): Ditto.
4043 (vect_detect_hybrid_slp): Ditto.
4044 (vect_bb_vectorization_profitable_p): Ditto.
4045 (vect_slp_analyze_bb_1): Ditto.
4046 (vect_update_slp_costs_according_to_vf): Ditto.
4047 (vect_get_mask_element): Ditto.
4048 (vect_transform_slp_perm_load): Ditto.
4049 (vect_schedule_slp_instance): Ditto.
4050 (vect_schedule_slp): Ditto.
4051 (vect_slp_transform_bb): Ditto.
4052 * profile.c (read_profile_edge_counts): Ditto.
4053 (compute_branch_probabilities): Ditto.
4054 * coverage.c (get_coverage_counts): Ditto.
4055
46f851f3
DN
40562013-09-16 Diego Novillo <dnovillo@google.com>
4057
7a5911d3 4058 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 4059
1632a686
JH
40602013-09-16 Jan Hubicka <jh@suse.cz>
4061
4062 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 4063 abstract functions; for static functions check the presence of body.
1632a686 4064
828e70c1
JG
40652013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4066
4067 * config/aarch64/aarch64-simd-builtins.def (fma): New.
4068 * config/aarch64/aarch64-simd.md
4069 (aarch64_mla_elt<mode>): New.
4070 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4071 (aarch64_mls_elt<mode>): Likewise.
4072 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4073 (aarch64_fma4_elt<mode>): Likewise.
4074 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4075 (aarch64_fma4_elt_to_128v2df): Likewise.
4076 (aarch64_fma4_elt_to_64df): Likewise.
4077 (fnma<mode>4): Likewise.
4078 (aarch64_fnma4_elt<mode>): Likewise.
4079 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4080 (aarch64_fnma4_elt_to_128v2df): Likewise.
4081 (aarch64_fnma4_elt_to_64df): Likewise.
4082 * config/aarch64/iterators.md (VDQSF): New.
4083 * config/aarch64/arm_neon.h
4084 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
4085 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
4086
779aea46
JG
40872013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4088
4089 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
4090 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
4091 (aarch64_mul3_elt_to_128df): Likewise.
4092 (aarch64_mul3_elt_to_64v2df): Likewise.
4093 * config/aarch64/iterators.md (VEL): Also handle DFmode.
4094 (VMUL): New.
4095 (VMUL_CHANGE_NLANES) Likewise.
4096 (h_con): Likewise.
4097 (f): Likewise.
4098 * config/aarch64/arm_neon.h
4099 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
4100
a407a750
JG
41012013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4102
4103 * config/aarch64/arm_neon.h
4104 (vcvtx_high_f32_f64): Fix parameters.
4105
f77e2d2d 41062013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 4107 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 4108
a5bd71fa 4109 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 4110
36875e8f
RB
41112013-09-16 Richard Biener <rguenther@suse.de>
4112
4113 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
4114 (dot_rdg_1): Handle control_dd.
4115 (create_edge_for_control_dependence): New function.
4116 (create_rdg_edges): Add control dependences if asked for.
4117 (build_rdg): Likewise.
4118 (generate_loops_for_partition): If there are not necessary
4119 control stmts remove all their dependencies.
4120 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
4121 (distribute_loop): Pass on control dependences.
4122 (tree_loop_distribution): Compute control dependences and remove
4123 restriction on number of loop nodes.
4124
96e24d49
JJ
41252013-09-16 Jakub Jelinek <jakub@redhat.com>
4126
4127 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
4128 for internal calls.
4129
40dbb05c
RS
41302013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
4131
4132 * cse.c (try_const_anchors): Punt on CC modes.
4133
97191ad0
JBG
41342013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4135
4136 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
4137
403a3fb7
JDA
41382013-09-14 John David Anglin <danglin@gcc.gnu.org>
4139
4140 PR target/58382
4141 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
4142 calls to word_mode.
4143
fb5610fb
IS
41442013-09-14 Iain Sandoe <iain@codesourcery.com>
4145
4146 PR target/48094
4147 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
4148 seen.
4149 (darwin_objc1_section): Likewise.
fb5610fb
IS
4150 (darwin_file_end): Emit Image Info section when required.
4151
afdec9bd
JH
41522013-09-14 Jan Hubicka <jh@suse.cz>
4153
4154 * tree-into-ssa.c (gate_into_ssa): New.
4155 (pass_data_build_ssa): Use it.
4156 * cgraph.h (expand_thunk): Update prototype.
4157 * cgraphunit.c (analyze_function): Expand thunks early.
4158 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
4159 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
4160 set lowered flag; do not add new function.
4161 (assemble_thunks_and_aliases): Update.
4162 * tree-ssa.c (gate_init_datastructures): New gate.
4163 (pass_data_init_datastructures): Use it.
4164
492d1e0a
IS
41652013-09-14 Iain Sandoe <iain@codesourcery.com>
4166
4167 PR target/58269
f77e2d2d 4168 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
4169 xmm register set described in the psABI.
4170
d13c6b70
EG
41712013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
4172
f77e2d2d
JBG
4173 * dwarf2out.c (should_emit_struct_debug): Add check
4174 for type_decl variable is not NULL.
d13c6b70 4175
88b0e79e
JC
41762013-09-13 Jacek Caban <jacek@codeweavers.com>
4177
4178 * config.gcc: Use new winnt-c.c target hooks
4179 * config/t-winnt: New file
4180 * config/winnt-c.c: New file
4181 * doc/tm.texi.in: Document new hook
4182 * doc/tm.texi: Regenerated
4183
19ba6aab
JH
41842013-09-13 Jan Hubicka <jh@suse.cz>
4185
4186 PR middle-end/58094
4187 * ipa-inline.c (check_callers): New function.
4188 (check_caller_edge): Remove.
4189 (want_inline_function_to_all_callers_p): Also permit alises that are
4190 called dirrectly.
4191 (inline_to_all_callers): Terminate the walk when devirtualization
4192 introduce new calls.
4193
a93c18c8
JH
41942013-09-13 Jan Hubicka <jh@suse.cz>
4195
4196 * ipa-inline-analysis.c (struct growth_data): Add node.
4197 (do_estimate_growth_1): Fix detection of recursion.
4198
f3b331d1
JJ
41992013-09-13 Jakub Jelinek <jakub@redhat.com>
4200
4201 PR tree-optimization/58392
4202 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
4203 to avoid shadowing of outer loop variable. If
4204 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
4205 replace_by_duplicate_decl simduid of loops that have it set and
4206 set dest_cfun->has_simduid_loops and/or
4207 dest_cfun->has_force_vect_loops.
4208 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
4209 instead of maybe_lookup_decl.
4210 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
4211 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
4212 call. Copy over force_vect and copy and remap simduid. Set
4213 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
4214 (copy_cfg_body): Remove blocks_to_copy argument. Use
4215 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
4216 caller. Don't set cfun->has_simduid_loops and/or
4217 cfun->has_force_vect_loops here.
4218 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
4219 caller.
4220 (expand_call_inline, tree_function_versioning): Adjust copy_body
4221 callers.
4222
ae6d0907
MJ
42232013-09-13 Martin Jambor <mjambor@suse.cz>
4224
4225 PR bootstrap/58388
4226 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
4227 the assert if the edge was a speculative one.
4228
2fd5894f
RB
42292013-09-13 Richard Biener <rguenther@suse.de>
4230
4231 * tree-data-ref.h (known_dependences_p): Move here ...
4232 * tree-loop-distribution.c (known_dependences_p): ... from here.
4233 (dump_rdg_component, debug_rdg_component): Remove.
4234 (dump_rdg): Adjust.
4235 (generate_loops_for_partition): Use gimple_uid instead of
4236 relying on matching stmt visit order.
4237 (rdg_build_partitions): Take starting stmt vector.
4238 (ldist_gen): Merge into ...
4239 (distribute_loop): ... this function. Do not compute starting
4240 vertices vector.
4241 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
4242
86eb4bd7
KT
42432013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4244
4245 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
4246 Set type attribute correctly. Set predicable_short_it attribute.
4247 (cmpsi_shiftsi): Remove %? from output template.
4248
83a95546
RB
42492013-09-13 Richard Biener <rguenther@suse.de>
4250
4251 * tree-loop-distribution.c (struct rdg_component,
4252 rdg_defs_used_in_other_loops_p, free_rdg_components,
4253 rdg_build_components): Remove.
4254 (stmts_from_loop): Do not record virtual PHIs.
4255 (generate_loops_for_partition): Skip virtual PHIs.
4256 (build_rdg_partition_for_component): Rename to ...
4257 (build_rdg_partition_for_vertex): ... this and adjust.
4258 (rdg_build_partitions): Take a vector of starting vertices
4259 instead of components. Remove unnecessary leftover handling.
4260 (ldist_gen): Do not build components or record other stores.
4261 (distribute_loop): Do not distribute loops containing stmts
4262 with side-effects.
4263
c0ecf7f1
CB
42642013-09-13 Christian Bruel <christian.bruel@st.com>
4265
4266 PR target/58314
4267 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
4268
34f56efc
KT
42692013-09-13 Kai Tietz <ktietz@redhat.com>
4270
740f2bf3
KT
4271 * config.gcc: Separate cases for mingw and cygwin targets,
4272 and add 64-bit cygwin target case.
4273
34f56efc
KT
4274 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
4275 dll-export inline-functions.
4276 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
4277
4278
42792013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
4280
4281 PR middle-end/58387
4282 Revert:
4283 2013-09-06 Jeff Law <law@redhat.com>
4284
4285 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4286 edge implied equivalences into successor phis.
4287
aadb52ad
DD
42882013-09-12 DJ Delorie <dj@redhat.com>
4289
4290 * config/rl78/rl78-virt.md: Change from | to \; for asm line
4291 separators.
4292
90ae7019
BM
42932013-09-12 Brooks Moses <bmoses@google.com>
4294
4295 PR driver/42955
4296 * Makefile.in: Do not install driver binaries in $(target)/bin.
4297
17b2557c
DD
42982013-09-12 DJ Delorie <dj@redhat.com>
4299
c5215a9b
DD
4300 * config/rl78/rl78.opt (mrelax): New.
4301 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
4302 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
4303
17b2557c
DD
4304 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
4305 between SP and FP.
4306 (rl78_expand_epilogue): Likewise.
4307
ecafcf05
VM
43082013-09-12 Vladimir Makarov <vmakarov@redhat.com>
4309
4310 PR middle-end/58335
84f6d9fa 4311 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
4312 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
4313 pointer elimination with using remove_reg_equal_offset_note.
4314
8369f38a
DD
43152013-09-12 DJ Delorie <dj@redhat.com>
4316
f6a83b4a
DD
4317 * config/msp430/: New port.
4318 * config.gcc (msp430): Added.
4319 * doc/invoke.texi: Document MSP430 options.
4320 * doc/install.texi: Document msp430-elf
4321 * doc/md.texi: Document msp430-elf
4322 * doc/contrib.texi: Document msp430-elf
4323
8369f38a
DD
4324 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
4325 PSImode.
4326
a854f856
MJ
43272013-09-12 Martin Jambor <mjambor@suse.cz>
4328
4329 PR ipa/58389
4330 * ipa-prop.c (remove_described_reference): Give up if the edge in the
4331 reference descriptor is NULL.
4332 (ipa_edge_removal_hook): If owning a reference descriptor, set its
4333 edge to NULL.
4334
b12ebd96
AM
43352013-09-12 Andrew MacLeod <amacleod@redhat.com>
4336
4337 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
4338 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
4339 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
4340 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
4341 make_temp_ssa_name): move to tree-ssanames.h
4342 * tree-ssa-alias.h: Move prototype.
4343 * tree-ssa.h: Include tree-ssanames.h.
4344 * tree-ssanames.c (FREE_SSANAMES): Move to here.
4345 * tree-ssanames.h: New. Move items from tree-flow*.h
4346 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
4347
e1fb4ad3
RB
43482013-09-12 Richard Biener <rguenther@suse.de>
4349
4350 PR tree-optimization/58404
4351 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4352 propagate non-invariant addresses into dereferences wrapped
4353 in component references.
4354
154c9188
RB
43552013-09-12 Richard Biener <rguenther@suse.de>
4356
4357 PR tree-optimization/58402
4358 * passes.def: Move pass_late_warn_uninitialized later.
4359
7a300452
AM
43602013-09-12 Andrew MacLeod <amacleod@redhat.com>
4361
4362 * tree-ssa.h: New. Move content from tree-flow.h and
4363 tree-flow-inline.h.
4364 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
4365 Move prototypes belonging to tree-ssa.c.
f77e2d2d 4366 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
4367 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
4368 tree-ssa.h.
4369 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
4370 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
4371 to...
4372 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
4373 * tree.h: Move prototype to tree-ssa.h.
4374 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
4375 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
4376 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
4377 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
4378 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
4379 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
4380 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
4381 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
4382 graphite-blocking.c, graphite-clast-to-gimple.c,
4383 graphite-dependences.c, graphite-interchange.c,
4384 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
4385 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
4386 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
4387 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
4388 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
4389 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
4390 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
4391 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
4392 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
4393 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
4394 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
4395 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
4396 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
4397 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
4398 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
4399 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
4400 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
4401 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
4402 value-prof.c, var-tracking.c,
4403 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
4404
97463b2b
RB
44052013-09-12 Richard Biener <rguenther@suse.de>
4406
4407 PR tree-optimization/58396
4408 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
4409 (build_rdg): Take a loop-nest parameter, fix memleaks.
4410 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
4411
80ecd89d
YR
44122013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4413
4414 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
4415 for SLM.
4416
893e85fa
CM
44172013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
4418
4419 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
4420 The FMA instruction names should have a 'v' prefix.
4421
174ec470
RB
44222013-09-12 Richard Biener <rguenther@suse.de>
4423
4424 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
4425 (dot_rdg): Use popen instead of system in optional code.
4426 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
4427 (already_processed_vertex_p): Adjust.
4428 (has_anti_or_output_dependence, predecessor_has_mem_write,
4429 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
4430 rdg_flag_uses): Remove.
4431 (rdg_flag_vertex): Simplify.
4432 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
4433 remove recursion.
4434 (build_rdg_partition_for_component): Process the first vertex
4435 of a component only.
4436 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
4437
38c89763
AM
44382013-09-12 Alan Modra <amodra@gmail.com>
4439
4440 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
4441
3e3d9d17
DD
44422013-09-11 DJ Delorie <dj@redhat.com>
4443 Nick Clifton <nickc@redhat.com>
4444
4445 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
4446 (rl78_stack_based_mem): New.
4447 * config/rl78/constraints.md (Iv08): New.
4448 (Iv16): New.
4449 (Iv24): New.
4450 (Is09): New.
4451 (Is17): New.
4452 (Is25): New.
4453 (ISsi): New.
4454 (IShi): New.
4455 (ISqi): New.
4456 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
4457 (movhi): Likewise.
4458 (movsi): Change from expand to insn-and-split.
4459 (ashrsi3): Clobber AX.
4460 (lshrsi3): New.
4461 (ashlsi3): New.
4462 (cbranchsi4): New.
4463 * config/rl78/rl78.md (CC_REG): Fix.
4464 (addsi3): Allow memory and immediate operands.
4465 (addsi3_internal): Split into...
4466 (addsi3_internal_virt): ...new, and ...
4467 (addsi3_internal_real): ...new.
4468 (subsi): New.
4469 (subsi3_internal_virt): New.
4470 (subsi3_internal_real): New.
4471 (mulsi3): Add memory operand.
4472 (mulsi3_rl78): Likewise.
4473 (mulsi3_g13): Likewise.
4474 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
4475 (cbranchqi4_real): Add more constraint options.
4476 (cbranchhi4_real): Expand pattern.
4477 (cbranchhi4_real_signed): New.
4478 (cbranchhi4_real_inverted): New.
4479 (cbranchsi4_real_lt): New.
4480 (cbranchsi4_real_ge): New.
4481 (cbranchsi4_real_signed): New.
4482 (cbranchsi4_real): New.
4483 (peephole2): New.
893e85fa
CM
4484 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
4485 constant shifts.
3e3d9d17
DD
4486 (lshrsi3_virt): Likewise.
4487 (ashlsi3_virt): Likewise.
4488 (cbranchqi4_virt_signed): New.
4489 (cbranchhi4_virt_signed): New.
4490 (cbranchsi4_virt): New.
4491 * config/rl78/rl78.c: Whitespace fixes throughout.
4492 (move_elim_pass): New.
4493 (pass_data_rl78_move_elim): New.
4494 (pass_rl78_move_elim): New.
4495 (make_pass_rl78_move_elim): New.
4496 (rl78_devirt_info): Run devirt earlier.
4497 (rl78_move_elim_info): New.
4498 (rl78_asm_file_start): Register it.
4499 (rl78_split_movsi): New.
4500 (rl78_as_legitimate_address): Allow virtual base registers when
4501 appropriate.
4502 (rl78_addr_space_convert): Remove spurious debug stuff.
4503 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
4504 (rl78_print_operand): More cases for not printing '#'.
4505 (rl78_expand_compare): Remove most of the logic.
4506 (content_memory): New.
4507 (clear_content_memory): New.
4508 (get_content_index): New.
4509 (get_content_name): New.
4510 (display_content_memory): New.
4511 (update_content): New.
4512 (record_content): New.
4513 (already_contains): New.
4514 (insn_ok_now): Re-recog insns with virtual registers.
4515 (add_postponed_content_update): New.
4516 (process_postponed_content_update): New.
4517 (gen_and_emit_move): New.
893e85fa
CM
4518 (transcode_memory_rtx): Record new location content.
4519 Use gen_and_emit_move.
3e3d9d17
DD
4520 (force_into_acc): New.
4521 (move_to_acc): Use gen_and_emit_move.
4522 (move_from_acc): Likewise.
4523 (move_acc_to_reg): Likewise.
4524 (move_to_x): Likewise.
4525 (move_to_hl): Likewise.
4526 (move_to_de): Likewise.
4527 (rl78_alloc_physical_registers_op1): Record location content.
4528 (has_constraint): New.
4529 (rl78_alloc_physical_registers_op2): Record location content.
4530 Optimize use of HL.
4531 (rl78_alloc_physical_registers_ro1): Likewise.
4532 (rl78_alloc_physical_registers_cmp): Likewise.
4533 (rl78_alloc_physical_registers_umul): Likewise.
4534 (rl78_alloc_address_registers_macax): New.
4535 (rl78_alloc_physical_registers): Initialize and set location
4536 content memory as needed.
4537 (rl78_reorg): Make sure split2 is called.
4538 (rl78_rtx_costs): New.
4539
088845a5
RS
45402013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
4541
4542 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
4543 for (not (neg ...)) and (neg (not ...)) cases.
4544
5c2961cf
RB
45452013-09-11 Richard Biener <rguenther@suse.de>
4546
4547 PR middle-end/58377
4548 * passes.def: Split critical edges before late uninit warning passes.
4549 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
4550
427e6a14
JJ
45512013-09-11 Jakub Jelinek <jakub@redhat.com>
4552
4553 PR tree-optimization/58385
4554 * fold-const.c (build_range_check): If both low and high are NULL,
4555 use omit_one_operand_loc to preserve exp side-effects.
4556
df45c0cc
KT
45572013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4558
4559 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
4560
80ab0b19
RB
45612013-09-11 Richard Biener <rguenther@suse.de>
4562
4563 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
4564 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
4565 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
4566 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
4567 stmts_from_loop, known_dependences_p, build_empty_rdg,
4568 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
4569 * tree-loop-distribution.c: ... here.
4570 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
4571 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
4572 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
4573 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
4574 * tree-loop-distribution.c: ... here.
4575 * tree-loop-distribution.c: Include gimple-pretty-print.h.
4576 (struct partition_s): Add loops member.
4577 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
4578 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
4579 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
4580
85a77221
AI
45812013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
4582 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4583 Sergey Lega <sergey.s.lega@intel.com>
4584 Anna Tikhonova <anna.tikhonova@intel.com>
4585 Ilya Tocar <ilya.tocar@intel.com>
4586 Andrey Turetskiy <andrey.turetskiy@intel.com>
4587 Ilya Verbin <ilya.verbin@intel.com>
4588 Kirill Yukhin <kirill.yukhin@intel.com>
4589 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4590
4591 * config/i386/constraints.md (k): New.
4592 (Yk): Ditto.
4593 * config/i386/i386.c (const regclass_map): Add new mask registers.
4594 (dbx_register_map): Ditto.
4595 (dbx64_register_map): Ditto.
4596 (svr4_dbx_register_map): Ditto.
4597 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
4598 disabled.
4599 (ix86_preferred_reload_class): Disable constants for mask registers.
4600 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
4601 (ix86_hard_regno_mode_ok): Support new mask registers.
4602 (x86_order_regs_for_local_alloc): Ditto.
4603 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
4604 (FIXED_REGISTERS): Add new mask registers.
4605 (CALL_USED_REGISTERS): Ditto.
4606 (REG_ALLOC_ORDER): Ditto.
4607 (VALID_MASK_REG_MODE): New.
4608 (FIRST_MASK_REG): Ditto.
4609 (LAST_MASK_REG): Ditto.
4610 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
4611 (MAYBE_MASK_CLASS_P): New.
4612 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
4613 (REG_CLASS_CONTENTS): Ditto.
4614 (MASK_REGNO_P): New.
4615 (ANY_MASK_REG_P): Ditto.
4616 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
4617 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
4618 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
4619 mask registers.
85a77221
AI
4620 (attribute "type"): Add mskmov, msklog.
4621 (attribute "length_immediate"): Support them.
4622 (attribute "memory"): Ditto.
4623 (attribute "prefix_0f"): Ditto.
4624 (*movhi_internal): Support new mask registers.
4625 (*movqi_internal): Ditto.
4626 (define_split): Split out clobber pattern is a logic
4627 insn on mask registers.
4628 (*k<logic><mode>): New.
4629 (*andhi_1): Extend to support mask regs.
4630 (*andqi_1): Extend to support mask regs.
4631 (kandn<mode>): New.
4632 (define_split): Split and-not to and and not if operands
4633 are not mask regs.
4634 (*<code><mode>_1): Separate HI mode to new pattern...
4635 (*<code>hi_1): This.
4636 (*<code>qi_1): Extend to support mask regs.
4637 (kxnor<mode>): New.
4638 (kortestzhi): Ditto.
4639 (kortestchi): Ditto.
4640 (kunpckhi): Ditto.
4641 (*one_cmpl<mode>2_1): Remove HImode and handle it...
4642 (*one_cmplhi2_1): ...Here, now with mask registers support.
4643 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
4644 (HI/QImode arithmetics splitter): Don't split if mask registers
4645 are used.
85a77221
AI
4646 (HI/QImode not splitter): Ditto.
4647 * config/i386/predicated.md (mask_reg_operand): New.
4648 (general_reg_operand): Ditto.
4649
7e570821
AI
46502013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
4651
4652 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
4653 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
4654
9e1376e9
JL
46552013-09-10 Jeff Law <law@redhat.com>
4656
4657 PR tree-optimization/58380
4658 * tree-ssa-threadupdate.c (thread_block): Recognize another case
4659 of threading through a buried loop header.
4660
4661 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
4662 return value for single successor case.
4663
5bbcb888
JH
46642013-09-10 Jan Hubicka <jh@suse.cz>
4665
4666 * ipa-devirt.c (ipa_devirt): Enable with LTO.
4667
d742ff4b
RE
46682013-09-10 Richard Earnshaw <rearnsha@arm.com>
4669
4670 PR target/58361
4671 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
4672 support conditional execution.
4673 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
4674
b0681c9e
VM
46752013-09-10 Vladimir Makarov <vmakarov@redhat.com>
4676
4677 * lra.c (lra): Clear lra_optional_reload_pseudos before every
4678 constraint pass.
f77e2d2d
JBG
4679 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
4680 Check destination too to check move insn.
b0681c9e 4681 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
4682 changed its allocation and the optional reload was inherited on last
4683 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
4684 (lra_undo_inheritance): Add check that inherited pseudo still in
4685 memory.
4686
c9b1c957
JG
46872013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
4688
4689 * config/aarch64/aarch64.md (generic_sched): New.
4690 * config/aarch64/aarch64-generic.md (load): Make conditional
4691 on generic_sched attribute.
4692 (nonload): Likewise.
4693
82d618d3
JH
46942013-09-10 Jan Hubicka <jh@suse.cz>
4695
4696 * lto-cgraph.c: Include ipa-utils.h.
4697 (compute_ltrans_boundary): Also add possible targets into the boundary.
4698
668b6894
JH
46992013-09-10 Jan Hubicka <jh@suse.cz>
4700
4701 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
4702 VAR_DECL of vtable rather than full expression.
4703
4f90d3e0
JH
47042013-09-10 Jan Hubicka <jh@suse.cz>
4705 Paolo Carlini <paolo.carlini@oracle.com>
4706
4707 * cgraphunit.c (analyze_functions): Save input_location, set it
4708 to UNKNOWN_LOCATION and restore it at the end.
4709
39e87baf
MJ
47102013-09-10 Martin Jambor <mjambor@suse.cz>
4711
4712 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
4713 represented by a thunk.
4714
581aedec
JL
47152013-09-10 Jeff Law <law@redhat.com>
4716
4717 PR tree-optimization/58343
4718 * tree-ssa-threadupdate.c (thread_block): Identify and disable
4719 jump threading requests through loop headers buried in the middle
4720 of a jump threading path.
4721
4722 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
4723 in return value/type.
4724
84cf4ab6
JJ
47252013-09-10 Jakub Jelinek <jakub@redhat.com>
4726
4727 PR rtl-optimization/58365
4728 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
4729 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
4730 it differs.
4731
447dd906
RB
47322013-09-10 Richard Biener <rguenther@suse.de>
4733
4734 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
4735 * tree-data-ref.c (create_rdg_vertices): Collect all data
4736 references, signal failure to the caller, use data-ref API.
893e85fa
CM
4737 (build_rdg): Compute data references only once. Maintain lifetime
4738 of data references and data dependences from within RDG.
447dd906
RB
4739 (free_rdg): Free dependence relations.
4740 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
4741 inventing extra dependences.
4742 (distribute_loop): Update for RDG API changes.
4743
f14a7324
KT
47442013-09-10 Kai Tietz <ktietz@redhat.com>
4745
4746 * doc/invoke.texi (fms-extensions): Document changed
4747 behavior for ms-abi targets.
4748 * config/i386/i386.c (ix86_option_override_internal):
4749 Set default value of option -fms-extension for ms-abi targets.
4750
ff131f26
MZ
47512013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
4752
4753 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
4754
33115a2c
AM
47552013-09-10 Alan Modra <amodra@gmail.com>
4756
4757 PR target/58330
4758 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
4759
b6872a13
AM
47602013-09-10 Alan Modra <amodra@gmail.com>
4761
4762 * config/rs6000/predicates.md (add_cint_operand): New.
4763 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
4764 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
4765 using add_cint_operand.
4766 (largetoc_high_plus_aix): Likewise.
4767
28fd0ba2
JJ
47682013-09-09 Jakub Jelinek <jakub@redhat.com>
4769
4770 PR tree-optimization/58364
4771 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
4772 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
4773 the current range can't be an unconditional true or false.
4774
552d99fe
JG
47752013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
4776
4777 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
4778
f43245d1
UB
47792013-09-09 Uros Bizjak <ubizjak@gmail.com>
4780
4781 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
4782
c9b0866a
PC
47832013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
4784
4785 PR c++/43452
4786 * doc/invoke.texi (-Wdelete-incomplete): Document it.
4787
78d8b9f0
IB
47882013-09-09 Ian Bolton <ian.bolton@arm.com>
4789
4790 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
4791 NO_REGS for immediate that can't be moved directly into FP_REGS.
4792
274b2532
KT
47932013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4794
4795 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
4796 comparison with negated operand.
c9b0866a
PC
4797 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
4798 RTL form.
274b2532 4799
467a3558
RB
48002013-09-09 Richard Biener <rguenther@suse.de>
4801
4802 PR middle-end/58326
4803 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
4804 of a subloop record all its block as affecting loop-closed SSA form.
4805
088c5368
RS
48062013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4807
4808 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
4809 of an rtx/bitpos pair.
4810 (store_fixed_bit_field): Update accordingly.
4811
69db2d57
RS
48122013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4813
4814 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
4815 GEN_INT.
4816 * builtins.c (expand_errno_check): Likewise.
4817 * dwarf2cfi.c (init_return_column_size): Likewise.
4818 * except.c (sjlj_mark_call_sites): Likewise.
4819 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
4820 * lra-constraints.c (emit_inc): Likewise.
4821 * ree.c (combine_set_extension): Likewise.
4822 * regmove.c (fixup_match_2): Likewise.
4823 * reload1.c (inc_for_reload): Likewise.
4824
69a59f0f
RS
48252013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4826
4827 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
4828 (force_to_mode, simplify_shift_const_1, simplify_comparison):
4829 Use gen_int_mode with the mode of the associated simplify_* call.
4830 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
4831 * expmed.c (expand_shift_1): Likewise.
4832 * function.c (instantiate_virtual_regs_in_insn): Likewise.
4833 * loop-iv.c (iv_number_of_iterations): Likewise.
4834 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4835 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4836
2f1cd2eb
RS
48372013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4838
4839 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
4840 of the associated expand_* call.
4841 (asan_emit_stack_protection): Likewise.
4842 * builtins.c (round_trampoline_addr): Likewise.
4843 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
4844 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
4845 (emit_store_flag): Likewise.
4846 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
4847 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
4848 Likewise.
4849 * function.c (instantiate_virtual_regs_in_insn): Likewise.
4850 * ifcvt.c (noce_try_store_flag_constants): Likewise.
4851 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4852 * modulo-sched.c (generate_prolog_epilog): Likewise.
4853 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
4854 (expand_ctz, expand_ffs, expand_unop): Likewise.
4855
4789c0ce
RS
48562013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4857
4858 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
4859 of the associated gen_rtx_* call.
4860 * caller-save.c (init_caller_save): Likewise.
4861 * combine.c (find_split_point, make_extraction): Likewise.
4862 (make_compound_operation): Likewise.
4863 * dwarf2out.c (mem_loc_descriptor): Likewise.
4864 * explow.c (plus_constant, probe_stack_range): Likewise.
4865 * expmed.c (expand_mult_const): Likewise.
4866 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
4867 * reload1.c (init_reload): Likewise.
4868 * valtrack.c (cleanup_auto_inc_dec): Likewise.
4869 * var-tracking.c (adjust_mems): Likewise.
4870 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
4871 rather than gen_rtx_fmt_ee.
4872
a811f7cb
JH
48732013-09-09 Jan Hubicka <jh@suse.cz>
4874
4875 PR middle-end/58294
4876 * value-prof.c (gimple_ic): Copy also abnormal edges.
4877
dcad1dd3
RS
48782013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4879
4880 * asan.c (asan_shadow_cst): Use gen_int_mode.
4881
daf5c770
JH
48822013-09-08 Jan Hubicka <jh@suse.cz>
4883
4884 * ipa-profile.c: Add toplevel comment.
4885 (ipa_propagate_frequency_1): Be more conservative when profile is read.
4886 (contains_hot_call_p): New function.
4887 (ipa_propagate_frequency): Set frequencies based on counts when
4888 profile is read.
4889 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
4890 profile; do not tamper with profile after inlining if it is read.
4891
a12cd2db
JH
48922013-09-08 Jan Hubicka <jh@suse.cz>
4893
4894 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
4895 speculative edges.
4896
856a1588
JH
48972013-09-08 Jan Hubicka <jh@suse.cz>
4898
4899 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
4900 summary generation.
4901
4f4b0b73
JL
49022013-09-08 Jeff Law <law@redhat.com>
4903
4904 PR bootstrap/58340
4905 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
4906 of 'found'.
4907
cc4029ee
AK
49082013-09-08 Andi Kleen <ak@linux.intel.com>
4909
4910 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
4911
7b395ddd
JH
49122013-09-08 Jan Hubicka <jh@suse.cz>
4913
4914 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
4915
c34c46dd
RS
49162013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
4917
4918 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
4919 for non-debug insns.
4920 * lra.c (new_insn_reg): Take the containing insn as a parameter.
4921 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
4922 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
4923 accordingly.
4924
3462aa02
JH
49252013-09-08 Jan Hubicka <jh@suse.cz>
4926
4927 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
4928 targets and devirtualize to BUILT_IN_UNREACHABLE.
4929 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
4930 * ipa.c (walk_polymorphic_call_targets): New function.
4931 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
4932 functions; use the new timevar.
4933 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
4934 was removed from the program.
4935 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
4936 not consider it in the walk when its vtable is dead.
4937 (possible_polymorphic_call_targets_1): Pass anonymous flag to
4938 record_binfo.
4939 (devirt_variable_node_removal_hook): New function.
4940 (possible_polymorphic_call_targets): Also register
4941 devirt_variable_node_removal_hook.
4942 (ipa_devirt): Do not do non-speculative devirtualization.
4943 (gate_ipa_devirt): One execute if devirtualizing speculatively.
4944
26e5b0fd
JH
49452013-09-08 Jan Hubicka <jh@suse.cz>
4946
4947 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
4948 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
4949 varpool_remove_variable_insertion_hook): Declare.
4950 * varpool.c (varpool_node_hook_list): New structure.
4951 (first_varpool_node_removal_hook,
4952 first_varpool_variable_insertion_hook): New variables.
4953 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
4954 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
4955 varpool_remove_variable_insertion_hook,
4956 varpool_call_variable_insertion_hooks): New functions.
4957 (varpool_remove_node): Use it.
4958
97f1f314 49592013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 4960
97f1f314
PC
4961 PR c++/54941
4962 * diagnostic.c (diagnostic_build_prefix): When s.file is
4963 "<built-in>" don't output line and column numbers.
6df2ca09 4964
bcb650cb
JH
49652013-09-06 Jan Hubicka <jh@suse.cz>
4966
4967 * cgraphunit.c (expand_thunk): Get body before touching arguments.
4968 * lto-streamer-out.c: Stream thunks, too.
4969 * lto-streamer-in.c (input_function): Pop cfun here
4970 (lto_read_body): Instead of here.
4971
87f3fea8
CT
49722013-09-06 Caroline Tice <cmtice@google.com>
4973
4974 * doc/install.texi: Add documentation for the --enable-vtable-verify
4975 and the --disable-libvtv configure options.
4976
5e8d9b45
JL
49772013-09-06 Jeff Law <law@redhat.com>
4978
4979 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4980 edge implied equivalences into successor phis.
4981
3a001aff
JR
49822013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
4983
4984 * resource.c (mark_referenced_resources): Handle COND_EXEC.
4985
49862013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
4987
4988 * resource.c (mark_target_live_regs): Compute resources taking
4989 into account if a call is predicated or not.
4990
2c641f8b
EB
49912013-09-06 Eric Botcazou <ebotcazou@adacore.com>
4992
4993 * toplev.c (output_stack_usage): Be prepared for suffixes created by
4994 the compiler in the function names.
4995
a81b0a3d
JH
49962013-09-06 Jan Hubicka <jh@suse.cz>
4997
4998 PR middle-end/58094
4999 * ipa-inline.c (has_caller_p): New function.
5000 (want_inline_function_to_all_callers_p): Use it.
5001 (sum_callers, inline_to_all_callers): Break out from ...
5002 (ipa_inline): ... here.
5003
68e4ca7e
JH
50042013-09-06 Jan Hubicka <jh@suse.cz>
5005
2c641f8b
EB
5006 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
5007 only when AVX is enabled.
68e4ca7e 5008
3c73e2fe
JG
50092013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5010
5011 * config/aarch64/aarch64.md
5012 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
5013 is fpsimd_<load/store>2.
5014 (load_pair<mode>): Likewise.
5015 (store_pair<mode>): Likewise.
5016
8c48eecd
JG
50172013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5018
5019 * config/arm/types.md (type): Add "mrs" type.
5020 * config/aarch64/aarch64.md
5021 (aarch64_load_tp_hard): Make type "mrs".
5022 * config/arm/arm.md
5023 (load_tp_hard): Make type "mrs".
5024 * config/arm/cortex-a15.md: Update with new attributes.
5025 * config/arm/cortex-a5.md: Update with new attributes.
5026 * config/arm/cortex-a53.md: Update with new attributes.
5027 * config/arm/cortex-a7.md: Update with new attributes.
5028 * config/arm/cortex-a8.md: Update with new attributes.
5029 * config/arm/cortex-a9.md: Update with new attributes.
5030 * config/arm/cortex-m4.md: Update with new attributes.
5031 * config/arm/cortex-r4.md: Update with new attributes.
5032 * config/arm/fa526.md: Update with new attributes.
5033 * config/arm/fa606te.md: Update with new attributes.
5034 * config/arm/fa626te.md: Update with new attributes.
5035 * config/arm/fa726te.md: Update with new attributes.
5036
9ea187a5
JG
50372013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5038
5039 * config/aarch64/aarch64.md
5040 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
5041 (*movtf_aarch64): Likewise.
5042 * config/arm/arm.md
5043 (thumb1_movdi_insn): Use "multiple" for type where more than one
5044 instruction is used for a move.
5045 (*arm32_movhf): Likewise.
5046 (*thumb_movdf_insn): Likewise.
5047
292b89b3
JG
50482013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5049
5050 * config/arm/types.md (type): Rename fcpys to fmov.
5051 * config/arm/vfp.md
5052 (*arm_movsi_vfp): Rename type fcpys as fmov.
5053 (*thumb2_movsi_vfp): Likewise
5054 (*movhf_vfp_neon): Likewise
5055 (*movhf_vfp): Likewise
5056 (*movsf_vfp): Likewise
5057 (*thumb2_movsf_vfp): Likewise
5058 (*movsfcc_vfp): Likewise
5059 (*thumb2_movsfcc_vfp): Likewise
5060 * config/aarch64/aarch64-simd.md
5061 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
5062 * config/aarch64/aarch64.md
5063 (*movsi_aarch64): Replace type mov_reg with fmovs.
5064 (*movdi_aarch64): Likewise
5065 (*movsf_aarch64): Likewise
5066 (*movdf_aarch64): Likewise
5067 * config/arm/arm.c
5068 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
5069 * config/arm/iwmmxt.md
5070 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
5071 * config/arm/arm1020e.md: Update with new attributes.
5072 * config/arm/cortex-a15-neon.md: Update with new attributes.
5073 * config/arm/cortex-a5.md: Update with new attributes.
5074 * config/arm/cortex-a53.md: Update with new attributes.
5075 * config/arm/cortex-a7.md: Update with new attributes.
5076 * config/arm/cortex-a8-neon.md: Update with new attributes.
5077 * config/arm/cortex-a9.md: Update with new attributes.
5078 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5079 * config/arm/cortex-r4f.md: Update with new attributes.
5080 * config/arm/marvell-pj4.md: Update with new attributes.
5081 * config/arm/vfp11.md: Update with new attributes.
5082
6a24a83e
JG
50832013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5084
5085 * config/aarch64/aarch64.md
5086 (*madd<mode>): Fix type attribute.
5087 (*maddsi_uxtw): Likewise.
5088 (*msub<mode>): Likewise.
5089 (*msubsi_uxtw): Likewise.
5090 (<su_optab>maddsidi4): Likewise.
5091 (<su_optab>msubsidi4): Likewise.
5092
b86923f0
JG
50932013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5094
5095 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
5096 * config/arm/arm.md (core_cycles): Remove fdiv.
5097 * config/arm/vfp.md:
5098 (*sqrtsf2_vfp): Update for attribute changes.
5099 (*sqrtdf2_vfp): Likewise.
5100 * config/aarch64/aarch64.md:
5101 (sqrt<mode>2): Update for attribute changes.
5102 * config/arm/arm1020e.md: Update with new attributes.
5103 * config/arm/cortex-a15-neon.md: Update with new attributes.
5104 * config/arm/cortex-a5.md: Update with new attributes.
5105 * config/arm/cortex-a53.md: Update with new attributes.
5106 * config/arm/cortex-a7.md: Update with new attributes.
5107 * config/arm/cortex-a8-neon.md: Update with new attributes.
5108 * config/arm/cortex-a9.md: Update with new attributes.
5109 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5110 * config/arm/cortex-r4f.md: Update with new attributes.
5111 * config/arm/marvell-pj4.md: Update with new attributes.
5112 * config/arm/vfp11.md: Update with new attributes.
5113
7b49c9e1
JG
51142013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5115
5116 * config/arm/types.md
5117 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
5118 * config/aarch64/aarch64.md
5119 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
5120 new attributes.
5121 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
5122 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
5123 (float<GPI:mode><GPF:mode>2): Likewise.
5124 * config/arm/vfp.md
5125 (*truncsisf2_vfp): Update with new attributes.
5126 (*truncsidf2_vfp): Likewise.
5127 (fixuns_truncsfsi2): Likewise.
5128 (fixuns_truncdfsi2): Likewise.
5129 (*floatsisf2_vfp): Likewise.
5130 (*floatsidf2_vfp): Likewise.
5131 (floatunssisf2): Likewise.
5132 (floatunssidf2): Likewise.
5133 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
5134 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
5135 * config/arm/arm1020e.md: Update with new attributes.
5136 * config/arm/cortex-a15-neon.md: Update with new attributes.
5137 * config/arm/cortex-a5.md: Update with new attributes.
5138 * config/arm/cortex-a53.md: Update with new attributes.
5139 * config/arm/cortex-a7.md: Update with new attributes.
5140 * config/arm/cortex-a8-neon.md: Update with new attributes.
5141 * config/arm/cortex-a9.md: Update with new attributes.
5142 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5143 * config/arm/cortex-r4f.md: Update with new attributes.
5144 * config/arm/marvell-pj4.md: Update with new attributes.
5145 * config/arm/vfp11.md: Update with new attributes.
5146
e7df8af8
JG
51472013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5148
5149 * config/aarch64/arm_neon.h
5150 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
5151 (vqtbx<1,2,3,4><q>_s8): Likewise.
5152
594726e4
JG
51532013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5154
f43245d1
UB
5155 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
5156 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
5157 (add<mode>3): Add type attribute.
5158 (add<mode>3): Likewise.
5159 (usadd<mode>3): Likewise.
5160 (ssadd<mode>3): Likewise.
5161 (sub<mode>3): Likewise.
5162 (sub<mode>3): Likewise.
5163 (ussub<mode>3): Likewise.
5164 (sssub<mode>3): Likewise.
5165 (ssmulsa3): Likewise.
5166 (usmulusa3): Likewise.
5167 (arm_usatsihi): Likewise.
5168 * config/arm/vfp.md
5169 (*movdi_vfp): Add types for all instructions.
5170 (*movdi_vfp_cortexa8): Likewise.
5171 (*movhf_vfp_neon): Likewise.
5172 (*movhf_vfp): Likewise.
5173 (*movdf_vfp): Likewise.
5174 (*thumb2_movdf_vfp): Likewise.
5175 (*thumb2_movdfcc_vfp): Likewise.
5176 * config/arm/arm.md: Add type attribute to all insn patterns.
5177 (*thumb1_adddi3): Add type attribute.
5178 (*arm_adddi3): Likewise.
5179 (*adddi_sesidi_di): Likewise.
5180 (*adddi_zesidi_di): Likewise.
5181 (*thumb1_addsi3): Likewise.
5182 (addsi3_compare0): Likewise.
5183 (*addsi3_compare0_scratch): Likewise.
5184 (*compare_negsi_si): Likewise.
5185 (cmpsi2_addneg): Likewise.
5186 (*addsi3_carryin_<optab>): Likewise.
5187 (*addsi3_carryin_alt2_<optab>): Likewise.
5188 (*addsi3_carryin_clobercc_<optab>): Likewise.
5189 (*subsi3_carryin): Likewise.
5190 (*subsi3_carryin_const): Likewise.
5191 (*subsi3_carryin_compare): Likewise.
5192 (*subsi3_carryin_compare_const): Likewise.
5193 (*arm_subdi3): Likewise.
5194 (*thumb_subdi3): Likewise.
5195 (*subdi_di_zesidi): Likewise.
5196 (*subdi_di_sesidi): Likewise.
5197 (*subdi_zesidi_di): Likewise.
5198 (*subdi_sesidi_di): Likewise.
5199 (*subdi_zesidi_ze): Likewise.
5200 (thumb1_subsi3_insn): Likewise.
5201 (*arm_subsi3_insn): Likewise.
5202 (*anddi3_insn): Likewise.
5203 (*anddi_zesidi_di): Likewise.
5204 (*anddi_sesdi_di): Likewise.
5205 (*ne_zeroextracts): Likewise.
5206 (*ne_zeroextracts): Likewise.
5207 (*ite_ne_zeroextr): Likewise.
5208 (*ite_ne_zeroextr): Likewise.
5209 (*anddi_notdi_di): Likewise.
5210 (*anddi_notzesidi): Likewise.
5211 (*anddi_notsesidi): Likewise.
5212 (andsi_notsi_si): Likewise.
5213 (thumb1_bicsi3): Likewise.
5214 (*iordi3_insn): Likewise.
5215 (*iordi_zesidi_di): Likewise.
5216 (*iordi_sesidi_di): Likewise.
5217 (*thumb1_iorsi3_insn): Likewise.
5218 (*xordi3_insn): Likewise.
5219 (*xordi_zesidi_di): Likewise.
5220 (*xordi_sesidi_di): Likewise.
5221 (*arm_xorsi3): Likewise.
5222 (*andsi_iorsi3_no): Likewise.
5223 (*smax_0): Likewise.
5224 (*smax_m1): Likewise.
5225 (*arm_smax_insn): Likewise.
5226 (*smin_0): Likewise.
5227 (*arm_smin_insn): Likewise.
5228 (*arm_umaxsi3): Likewise.
5229 (*arm_uminsi3): Likewise.
5230 (*minmax_arithsi): Likewise.
5231 (*minmax_arithsi_): Likewise.
5232 (*satsi_<SAT:code>): Likewise.
5233 (arm_ashldi3_1bit): Likewise.
5234 (arm_ashrdi3_1bit): Likewise.
5235 (arm_lshrdi3_1bit): Likewise.
5236 (*arm_negdi2): Likewise.
5237 (*thumb1_negdi2): Likewise.
5238 (*arm_negsi2): Likewise.
5239 (*thumb1_negsi2): Likewise.
5240 (*negdi_extendsid): Likewise.
5241 (*negdi_zero_extend): Likewise.
5242 (*arm_abssi2): Likewise.
5243 (*thumb1_abssi2): Likewise.
5244 (*arm_neg_abssi2): Likewise.
5245 (*thumb1_neg_abss): Likewise.
5246 (one_cmpldi2): Likewise.
5247 (extend<mode>di2): Likewise.
5248 (*compareqi_eq0): Likewise.
5249 (*arm_extendhisi2addsi): Likewise.
5250 (*arm_movdi): Likewise.
5251 (*thumb1_movdi_insn): Likewise.
5252 (*arm_movt): Likewise.
5253 (*thumb1_movsi_insn): Likewise.
5254 (pic_add_dot_plus_four): Likewise.
5255 (pic_add_dot_plus_eight): Likewise.
5256 (tls_load_dot_plus_eight): Likewise.
5257 (*thumb1_movhi_insn): Likewise.
5258 (*thumb1_movsf_insn): Likewise.
5259 (*movdf_soft_insn): Likewise.
5260 (*thumb_movdf_insn): Likewise.
5261 (cbranchsi4_insn): Likewise.
5262 (cbranchsi4_scratch): Likewise.
5263 (*negated_cbranchsi4): Likewise.
5264 (*tbit_cbranch): Likewise.
5265 (*tlobits_cbranch): Likewise.
5266 (*tstsi3_cbranch): Likewise.
5267 (*cbranchne_decr1): Likewise.
5268 (*addsi3_cbranch): Likewise.
5269 (*addsi3_cbranch_scratch): Likewise.
5270 (*arm_cmpdi_insn): Likewise.
5271 (*arm_cmpdi_unsig): Likewise.
5272 (*arm_cmpdi_zero): Likewise.
5273 (*thumb_cmpdi_zero): Likewise.
5274 (*deleted_compare): Likewise.
5275 (*mov_scc): Likewise.
5276 (*mov_negscc): Likewise.
5277 (*mov_notscc): Likewise.
5278 (*cstoresi_eq0_thumb1_insn): Likewise.
5279 (cstoresi_nltu_thumb1): Likewise.
5280 (cstoresi_ltu_thu): Likewise.
5281 (thumb1_addsi3_addgeu): Likewise.
5282 (*arm_jump): Likewise.
5283 (*thumb_jump): Likewise.
5284 (*check_arch2): Likewise.
5285 (arm_casesi_internal): Likewise.
5286 (thumb1_casesi_dispatch): Likewise.
5287 (*arm_indirect_jump): Likewise.
5288 (*thumb1_indirect_jump): Likewise.
5289 (nop): Likewise.
5290 (*and_scc): Likewise.
5291 (*ior_scc): Likewise.
5292 (*compare_scc): Likewise.
5293 (*cond_move): Likewise.
5294 (*cond_arith): Likewise.
5295 (*cond_sub): Likewise.
5296 (*cmp_ite0): Likewise.
5297 (*cmp_ite1): Likewise.
5298 (*cmp_and): Likewise.
5299 (*cmp_ior): Likewise.
5300 (*ior_scc_scc): Likewise.
5301 (*ior_scc_scc_cmp): Likewise.
5302 (*and_scc_scc): Likewise.
5303 (*and_scc_scc_cmp): Likewise.
5304 (*and_scc_scc_nod): Likewise.
5305 (*negscc): Likewise.
5306 (movcond_addsi): Likewise.
5307 (movcond): Likewise.
5308 (*ifcompare_plus_move): Likewise.
5309 (*if_plus_move): Likewise.
5310 (*ifcompare_move_plus): Likewise.
5311 (*if_move_plus): Likewise.
5312 (*ifcompare_arith_arith): Likewise.
5313 (*if_arith_arith): Likewise.
5314 (*ifcompare_arith_move): Likewise.
5315 (*if_arith_move): Likewise.
5316 (*ifcompare_move_arith): Likewise.
5317 (*if_move_arith): Likewise.
5318 (*ifcompare_move_not): Likewise.
5319 (*if_move_not): Likewise.
5320 (*ifcompare_not_move): Likewise.
5321 (*if_not_move): Likewise.
5322 (*ifcompare_shift_move): Likewise.
5323 (*if_shift_move): Likewise.
5324 (*ifcompare_move_shift): Likewise.
5325 (*if_move_shift): Likewise.
5326 (*ifcompare_shift_shift): Likewise.
5327 (*ifcompare_not_arith): Likewise.
5328 (*ifcompare_arith_not): Likewise.
5329 (*if_arith_not): Likewise.
5330 (*ifcompare_neg_move): Likewise.
5331 (*if_neg_move): Likewise.
5332 (*ifcompare_move_neg): Likewise.
5333 (*if_move_neg): Likewise.
5334 (prologue_thumb1_interwork): Likewise.
5335 (*cond_move_not): Likewise.
5336 (*sign_extract_onebit): Likewise.
5337 (*not_signextract_onebit): Likewise.
5338 (stack_tie): Likewise.
5339 (align_4): Likewise.
5340 (align_8): Likewise.
5341 (consttable_end): Likewise.
5342 (consttable_1): Likewise.
5343 (consttable_2): Likewise.
5344 (consttable_4): Likewise.
5345 (consttable_8): Likewise.
5346 (consttable_16): Likewise.
5347 (*thumb1_tablejump): Likewise.
5348 (prefetch): Likewise.
5349 (force_register_use): Likewise.
5350 (thumb_eh_return): Likewise.
5351 (load_tp_hard): Likewise.
5352 (load_tp_soft): Likewise.
5353 (tlscall): Likewise.
5354 (*arm_movtas_ze): Likewise.
5355 (*arm_rev): Likewise.
5356 (*arm_revsh): Likewise.
5357 (*arm_rev16): Likewise.
5358 * config/arm/thumb2.md
5359 (*thumb2_smaxsi3): Likewise.
5360 (*thumb2_sminsi3): Likewise.
5361 (*thumb32_umaxsi3): Likewise.
5362 (*thumb2_uminsi3): Likewise.
5363 (*thumb2_negdi2): Likewise.
5364 (*thumb2_abssi2): Likewise.
5365 (*thumb2_neg_abss): Likewise.
5366 (*thumb2_movsi_insn): Likewise.
5367 (tls_load_dot_plus_four): Likewise.
5368 (*thumb2_movhi_insn): Likewise.
5369 (*thumb2_mov_scc): Likewise.
5370 (*thumb2_mov_negs): Likewise.
5371 (*thumb2_mov_negs): Likewise.
5372 (*thumb2_mov_nots): Likewise.
5373 (*thumb2_mov_nots): Likewise.
5374 (*thumb2_movsicc_): Likewise.
5375 (*thumb2_movsfcc_soft_insn): Likewise.
5376 (*thumb2_indirect_jump): Likewise.
5377 (*thumb2_and_scc): Likewise.
5378 (*thumb2_ior_scc): Likewise.
5379 (*thumb2_ior_scc_strict_it): Likewise.
5380 (*thumb2_cond_move): Likewise.
5381 (*thumb2_cond_arith): Likewise.
5382 (*thumb2_cond_ari): Likewise.
5383 (*thumb2_cond_sub): Likewise.
5384 (*thumb2_negscc): Likewise.
5385 (*thumb2_movcond): Likewise.
5386 (thumb2_casesi_internal): Likewise.
5387 (thumb2_casesi_internal_pic): Likewise.
5388 (*thumb2_alusi3_short): Likewise.
5389 (*thumb2_mov<mode>_shortim): Likewise.
5390 (*thumb2_addsi_short): Likewise.
5391 (*thumb2_subsi_short): Likewise.
5392 (thumb2_addsi3_compare0): Likewise.
5393 (*thumb2_cbz): Likewise.
5394 (*thumb2_cbnz): Likewise.
5395 (*thumb2_one_cmplsi2_short): Likewise.
5396 (*thumb2_negsi2_short): Likewise.
5397 (*orsi_notsi_si): Likewise.
5398 * config/arm/arm1020e.md: Update with new attributes.
5399 * config/arm/arm1026ejs.md: Update with new attributes.
5400 * config/arm/arm1136jfs.md: Update with new attributes.
5401 * config/arm/arm926ejs.md: Update with new attributes.
5402 * config/arm/cortex-a15.md: Update with new attributes.
5403 * config/arm/cortex-a5.md: Update with new attributes.
5404 * config/arm/cortex-a53.md: Update with new attributes.
5405 * config/arm/cortex-a7.md: Update with new attributes.
5406 * config/arm/cortex-a8.md: Update with new attributes.
5407 * config/arm/cortex-a9.md: Update with new attributes.
5408 * config/arm/cortex-m4.md: Update with new attributes.
5409 * config/arm/cortex-r4.md: Update with new attributes.
5410 * config/arm/fa526.md: Update with new attributes.
5411 * config/arm/fa606te.md: Update with new attributes.
5412 * config/arm/fa626te.md: Update with new attributes.
5413 * config/arm/fa726te.md: Update with new attributes.
5414
1c83b673
JG
54152013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5416
5417 * config/aarch64/aarch64-simd.md
5418 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
5419 <vwx> iterator to ensure correct register choice.
5420 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
5421 (aarch64_sqdmull_n<mode>): Likewise.
5422 (aarch64_sqdmull2_n<mode>_internal): Likewise.
5423 * config/aarch64/arm_neon.h
5424 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
5425 (vml<as><q>_n_<su>16): Likewise.
5426 (vml<as>l_high_lane<q>_<su>16): Likewise.
5427 (vml<as>l_high_n_<su>16): Likewise.
5428 (vml<as>l_lane<q>_<su>16): Likewise.
5429 (vml<as>l_n_<su>16): Likewise.
5430 (vmul<q>_lane<q>_<su>16): Likewise.
5431 (vmul<q>_n_<su>16): Likewise.
5432 (vmull_lane<q>_<su>16): Likewise.
5433 (vmull_n_<su>16): Likewise.
5434 (vmull_high_lane<q>_<su>16): Likewise.
5435 (vmull_high_n_<su>16): Likewise.
5436 (vqrdmulh<q>_n_s16): Likewise.
5437
bb1ae543
TB
54382013-09-06 Tejas Belagod <tejas.belagod@arm.com>
5439
5440 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
5441 have the correct lane parameter.
5442
f23c0742
RB
54432013-09-06 Richard Biener <rguenther@suse.de>
5444
5445 * cfganal.c (control_dependences::~control_dependences):
5446 Properly free all of the vector.
5447
c1d49770
KY
54482013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
5449
5450 PR target/58269
5451 * config/i386/i386.c (ix86_conditional_register_usage):
5452 Proper initialize extended SSE registers.
5453
6da47f52
JH
54542013-09-06 Jan Hubicka <jh@suse.cz>
5455
5456 PR tree-optimization/58311
5457 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
5458
54592013-09-06 Jan Hubicka <jh@suse.cz>
5460
5461 * Makefile.in (tree-sra.o): Update dependencies.
5462 * tree-sra.c: Include ipa-utils.h
5463 (scan_function): Use recursive_call_p.
5464 (has_caller_p): New function.
5465 (cgraph_for_node_and_aliases): Count also callers of aliases.
5466
fc11f321
JH
54672013-09-06 Jan Hubicka <jh@suse.cz>
5468
5469 PR middle-end/58094
5470 * cgraph.h (symtab_semantically_equivalent_p): Declare.
5471 * tree-tailcall.c: Include ipa-utils.h.
5472 (find_tail_calls): Use it.
5473 * ipa-pure-const.c (check_call): Likewise.
5474 * ipa-utils.c (recursive_call_p): New function.
5475 * ipa-utils.h (recursive_call_p): Dclare.
5476 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
5477 (symtab_semantically_equivalent_p): New function.
5478 * Makefile.in (tree-tailcall.o): Update dependencies.
5479
9a6af450
EB
54802013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5481
5482 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
5483 non-inlinable part.
5484
35f32ad4
RB
54852013-09-06 Richard Biener <rguenther@suse.de>
5486
5487 * lto-streamer.h (lto_global_var_decls): Remove.
5488 * Makefile.in (OBJS): Remove lto-symtab.o.
5489 (lto-symtab.o): Remove.
5490 (GTFILES): Remove lto-symtab.c
5491 * lto-symtab.c: Move to lto/
5492
d12a76f3
AK
54932013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5494
5495 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
5496 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
5497 (UNSPEC_FPINT_RINT): New constant definitions.
5498 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
5499 definition with 2 attributes.
5500 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
5501 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
5502 definitions.
5503
55042013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5505
f43245d1 5506 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
5507 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
5508 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
5509 attribute to "z196_alone".
5510 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
5511 "zEC12_simple".
5512
c8e9d8c3
RB
55132013-09-06 Richard Biener <rguenther@suse.de>
5514
5515 * basic-block.h (class control_dependences): New.
5516 * tree-ssa-dce.c (control_dependence_map): Remove.
5517 (cd): New global.
5518 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
5519 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
5520 find_pdom, find_control_dependence, find_all_control_dependences):
5521 Move to cfganal.c.
f43245d1
UB
5522 (mark_control_dependent_edges_necessary,
5523 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
5524 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
5525 * cfganal.c (set_control_dependence_map_bit,
5526 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
5527 find_all_control_dependences): Move from tree-ssa-dce.c and
5528 implement as methods of control_dependences class.
5529 (control_dependences::control_dependences): New.
5530 (control_dependences::~control_dependences): Likewise.
5531 (control_dependences::get_edges_dependent_on): Likewise.
5532 (control_dependences::get_edge): Likewise.
5533
7d2ba471
JH
55342013-09-04 Jan Hubicka <jh@suse.cz>
5535
5536 * tree.c (types_same_for_odr): Drop overactive check.
5537 * ipa-devirt.c (hash_type_name): Likewise.
5538
e18412fc
JH
55392013-09-04 Jan Hubicka <jh@suse.cz>
5540
5541 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
5542 (analyze_functions): ... here.
5543
d352b245
JH
55442013-09-04 Jan Hubicka <jh@suse.cz>
5545
5546 PR middle-end/58201
5547 * cgraphunit.c (analyze_functions): Clear AUX fields
5548 after processing; initialize assembler name has.
5549
770da076
JL
55502013-09-05 Jeff Law <law@redhat.com>
5551
5552 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
5553 from thread_around_empty_block. Record threading path into PATH.
5554 Recurse if threading through the initial block is successful.
5555 (thread_across_edge): Corresponding changes to slightly simplify.
5556
fe6f68e2
JG
55572013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5558
5559 * config/aarch64/aarch64.md
5560 (type): Remove frecpe, frecps, frecpx.
5561 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
5562 fix to be a TARGET_SIMD instruction.
5563 (aarch64_frecps): Remove.
5564 * config/aarch64/aarch64-simd.md
5565 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
5566 (aarch64_frecps<mode>): Handle all float/vector of float modes.
5567
6e4150e1
JG
55682013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5569 Sofiane Naci <sofiane.naci@arm.com>
5570
f43245d1 5571 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 5572 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
5573 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
5574 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
5575 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
5576 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
5577 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
5578 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
5579 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 5580 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 5581 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
5582 shift* types.
5583 * config/arm/arm-fixed.md: Update for attribute changes
5584 all occurrences of arlo_* types.
5585 * config/arm/thumb2.md: Update for attribute changes all occurrences
5586 of arlo_* types.
5587 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
5588 (cortexa7_older_only): Likewise.
5589 (cortexa7_younger): Likewise.
5590 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
5591 (1020alu_shift_op): Likewise.
5592 (1020alu_shift_reg_op): Likewise.
5593 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
5594 (alu_shift_op): Likewise.
5595 (alu_shift_reg_op): Likewise.
f43245d1 5596 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
5597 (11_alu_shift_op): Likewise.
5598 (11_alu_shift_reg_op): Likewise.
5599 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
5600 (9_alu_shift_reg_op): Likewise.
5601 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
5602 attribute changes.
5603 (cortex_a15_alu_shift): Likewise.
5604 (cortex_a15_alu_shift_reg): Likewise.
5605 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
5606 attribute changes.
5607 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
5608 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
5609 attribute changes.
6e4150e1 5610 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
5611 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
5612 attribute changes.
6e4150e1
JG
5613 (cortex_a7_alu_reg): Likewise.
5614 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
5615 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
5616 attribute changes.
6e4150e1
JG
5617 (cortex_a8_alu_shift): Likewise.
5618 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 5619 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 5620 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
5621 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
5622 attribute changes.
6e4150e1
JG
5623 * config/arm/cortex-r4.md
5624 (cortex_r4_alu): Update for attribute changes.
5625 (cortex_r4_mov): Likewise.
5626 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 5627 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 5628 (526_alu_shift_op): Likewise.
f43245d1
UB
5629 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
5630 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 5631 (626te_alu_shift_op): Likewise.
f43245d1 5632 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
5633 (726te_alu_shift_op): Likewise.
5634 (726te_alu_shift_reg_op): Likewise.
5635 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
5636 (mp626_alu_shift_op): Likewise.
5637 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
5638 (pj4_alu_conds): Likewise.
5639 (pj4_shift): Likewise.
5640 (pj4_shift_conds): Likewise.
5641 (pj4_alu_shift): Likewise.
5642 (pj4_alu_shift_conds): Likewise.
5643 * config/aarch64/aarch64.md: Update for attribute change
5644 all occurrences of arlo_* and shift* types.
5645
e6523306
MS
56462013-09-05 Mike Stump <mikestump@comcast.net>
5647
5648 * tree.h: Move documentation for tree_function_decl to tree-core.h
5649 with the declaration.
5650
80a18161
PB
56512013-09-05 Peter Bergner <bergner@vnet.ibm.com>
5652
5653 PR target/58139
5654 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
5655 looking for widest mode.
5656
6994430a
EB
56572013-09-05 Eric Botcazou <ebotcazou@adacore.com>
5658
5659 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
5660
e67f39f7
RB
56612013-09-05 Richard Biener <rguenther@suse.de>
5662
5663 PR tree-optimization/58137
5664 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5665 Do not create vectors of pointers.
5666 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
5667 types for the components of the vector initializer.
5668 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
5669 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
5670
568cda29
MJ
56712013-09-05 Martin Jambor <mjambor@suse.cz>
5672
5673 * ipa-prop.c (remove_described_reference): Accept missing references,
5674 return false if that hppens, otherwise return true.
5675 (cgraph_node_for_jfunc): New function.
5676 (try_decrement_rdesc_refcount): Likewise.
5677 (try_make_edge_direct_simple_call): Use them.
5678 (ipa_edge_removal_hook): Remove references from rdescs.
5679 (ipa_edge_duplication_hook): Clone rdescs and their references
5680 when the new edge has the same caller as the old one.
5681 * cgraph.c (cgraph_resolve_speculation): Remove speculative
5682 reference before removing any edges.
5683
5a200acb
RE
56842013-09-05 Richard Earnshaw <rearnsha@arm.com>
5685
5686 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
5687 initial store.
5688 * thumb2.md (thumb2_storewb_parisi): New pattern.
5689
5922847b
YZ
56902013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
5691
5692 * config/aarch64/aarch64-option-extensions.def: Add
5693 AARCH64_OPT_EXTENSION of 'crc'.
5694 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
5695 (AARCH64_ISA_CRC): Ditto.
5696 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
5697 description of the CRC extension.
5698
996746aa
AI
56992013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
5700
5701 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
5702 * config/rs6000/linux.h: Ditto.
5703 * alpha/linux.h: Ditto.
5704 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
5705 no_c99_libc_has_function.
5706 * config/c6x/uclinux-elf.h: Ditto.
5707 * config/lm32/uclinux-elf.h: Ditto.
5708 * config/m68k/uclinux.h: Ditto.
5709 * config/moxie/uclinux.h: Ditto.
5710 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
5711 (crisv32-*-linux*, cris-*-linux*): Ditto.
5712 * config/bfin/bfin.c: Include "tm_p.h".
5713
c370d99f
RB
57142013-09-05 Richard Biener <rguenther@suse.de>
5715
5716 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
5717 check for a definition without a basic-block.
5718
003bb7f3
JG
57192013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5720 Sofiane Naci <sofiane.naci@arm.com>
5721
5722 * config/aarch64/aarch64.md
5723 (*movti_aarch64): Rename r_2_f and f_2_r.
5724 (*movsf_aarch64): Likewise.
5725 (*movdf_aarch64): Likewise.
5726 (*movtf_aarch64): Likewise.
5727 (aarch64_movdi_<mode>low): Likewise.
5728 (aarch64_movdi_<mode>high): Likewise.
5729 (aarch64_mov<mode>high_di): Likewise.
5730 (aarch64_mov<mode>low_di): Likewise.
5731 (aarch64_movtilow_tilow): Likewise.
5732 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
5733 values to config/arm/types.md
5734 (attribute "conds"): Update for attribute change.
5735 (anddi3_insn): Likewise.
5736 (iordi3_insn): Likewise.
5737 (xordi3_insn): Likewise.
5738 (one_cmpldi2): Likewise.
5739 * config/arm/types.md (type): Add Neon types.
5740 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
5741 use "type" attribute.
5742 (movmisalign<mode>_neon_store): Likewise.
5743 (movmisalign<mode>_neon_load): Likewise.
5744 (vec_set<mode>_internal): Likewise.
5745 (vec_setv2di_internal): Likewise.
5746 (vec_extract<mode>): Likewise.
5747 (vec_extractv2di): Likewise.
5748 (add<mode>3_neon): Likewise.
5749 (adddi3_neon): Likewise.
5750 (sub<mode>3_neon): Likewise.
5751 (subdi3_neon): Likewise.
5752 (mul<mode>3_neon): Likewise.
5753 (mul<mode>3add<mode>_neon): Likewise.
5754 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
5755 (fma<VCVTF:mode>4)): Likewise.
5756 (fma<VCVTF:mode>4_intrinsic): Likewise.
5757 (fmsub<VCVTF:mode>4)): Likewise.
5758 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
5759 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
5760 (ior<mode>3): Likewise.
5761 (and<mode>3): Likewise.
5762 (anddi3_neon): Likewise.
5763 (orn<mode>3_neon): Likewise.
5764 (orndi3_neon): Likewise.
5765 (bic<mode>3_neon): Likewise.
5766 (bicdi3_neon): Likewise.
5767 (xor<mode>3): Likewise.
5768 (one_cmpl<mode>2): Likewise.
5769 (abs<mode>2): Likewise.
5770 (neg<mode>2): Likewise.
5771 (umin<mode>3_neon): Likewise.
5772 (umax<mode>3_neon): Likewise.
5773 (smin<mode>3_neon): Likewise.
5774 (smax<mode>3_neon): Likewise.
5775 (vashl<mode>3): Likewise.
5776 (vashr<mode>3_imm): Likewise.
5777 (vlshr<mode>3_imm): Likewise.
5778 (ashl<mode>3_signed): Likewise.
5779 (ashl<mode>3_unsigned): Likewise.
5780 (neon_load_count): Likewise.
5781 (ashldi3_neon_noclobber): Likewise.
5782 (signed_shift_di3_neon): Likewise.
5783 (unsigned_shift_di3_neon): Likewise.
5784 (ashrdi3_neon_imm_noclobber): Likewise.
5785 (lshrdi3_neon_imm_noclobber): Likewise.
5786 (widen_ssum<mode>3): Likewise.
5787 (widen_usum<mode>3): Likewise.
5788 (quad_halves_<code>v4si): Likewise.
5789 (quad_halves_<code>v4sf): Likewise.
5790 (quad_halves_<code>v8hi): Likewise.
5791 (quad_halves_<code>v16qi): Likewise.
5792 (reduc_splus_v2di): Likewise.
5793 (neon_vpadd_internal<mode>): Likewise.
5794 (neon_vpsmin<mode>): Likewise.
5795 (neon_vpsmax<mode>): Likewise.
5796 (neon_vpumin<mode>): Likewise.
5797 (neon_vpumax<mode>): Likewise.
5798 (ss_add<mode>_neon): Likewise.
5799 (us_add<mode>_neon): Likewise.
5800 (ss_sub<mode>_neon): Likewise.
5801 (us_sub<mode>_neon): Likewise.
5802 (neon_vadd<mode>_unspec): Likewise.
5803 (neon_vaddl<mode>): Likewise.
5804 (neon_vaddw<mode>): Likewise.
5805 (neon_vhadd<mode>): Likewise.
5806 (neon_vqadd<mode>): Likewise.
5807 (neon_vaddhn<mode>): Likewise.
5808 (neon_vmul<mode>): Likewise.
5809 (neon_vmla<mode>): Likewise.
5810 (neon_vmlal<mode>): Likewise.
5811 (neon_vmls<mode>): Likewise.
5812 (neon_vmlsl<mode>): Likewise.
5813 (neon_vqdmulh<mode>): Likewise.
5814 (neon_vqdmlal<mode>): Likewise.
5815 (neon_vqdmlsl<mode>): Likewise.
5816 (neon_vmull<mode>): Likewise.
5817 (neon_vqdmull<mode>): Likewise.
5818 (neon_vsub<mode>_unspec): Likewise.
5819 (neon_vsubl<mode>): Likewise.
5820 (neon_vsubw<mode>): Likewise.
5821 (neon_vqsub<mode>): Likewise.
5822 (neon_vhsub<mode>): Likewise.
5823 (neon_vsubhn<mode>): Likewise.
5824 (neon_vceq<mode>): Likewise.
5825 (neon_vcge<mode>): Likewise.
5826 (neon_vcgeu<mode>): Likewise.
5827 (neon_vcgt<mode>): Likewise.
5828 (neon_vcgtu<mode>): Likewise.
5829 (neon_vcle<mode>): Likewise.
5830 (neon_vclt<mode>): Likewise.
5831 (neon_vcage<mode>): Likewise.
5832 (neon_vcagt<mode>): Likewise.
5833 (neon_vtst<mode>): Likewise.
5834 (neon_vabd<mode>): Likewise.
5835 (neon_vabdl<mode>): Likewise.
5836 (neon_vaba<mode>): Likewise.
5837 (neon_vabal<mode>): Likewise.
5838 (neon_vmax<mode>): Likewise.
5839 (neon_vmin<mode>): Likewise.
5840 (neon_vpaddl<mode>): Likewise.
5841 (neon_vpadal<mode>): Likewise.
5842 (neon_vpmax<mode>): Likewise.
5843 (neon_vpmin<mode>): Likewise.
5844 (neon_vrecps<mode>): Likewise.
5845 (neon_vrsqrts<mode>): Likewise.
5846 (neon_vqabs<mode>): Likewise.
5847 (neon_vqneg<mode>): Likewise.
5848 (neon_vcls<mode>): Likewise.
5849 (clz<mode>2): Likewise.
5850 (popcount<mode>2): Likewise.
5851 (neon_vrecpe): Likewise.
5852 (neon_vrsqrte): Likewise.
5853 (neon_vget_lane<mode>_sext_internal): Likewise.
5854 (neon_vget_lane<mode>_zext_internal): Likewise.
5855 (neon_vdup_n<mode>): Likewise.
5856 (neon_vdup_nv2di): Likewise.
5857 (neon_vdpu_lane<mode>_internal): Likewise.
5858 (neon_vswp<mode>): Likewise.
5859 (float<mode><V_cvtto>2): Likewise.
5860 (floatuns<mode><V_cvtto>2): Likewise.
5861 (fix_trunc<mode><V_cvtto>)2): Likewise
5862 (fixuns_trunc<mode><V_cvtto)2): Likewise.
5863 (neon_vcvt<mode>): Likewise.
5864 (neon_vcvtv4sfv4hf): Likewise.
5865 (neon_vcvtv4hfv4sf): Likewise.
5866 (neon_vcvt_n<mode>): Likewise.
5867 (neon_vmovn<mode>): Likewise.
5868 (neon_vqmovn<mode>): Likewise.
5869 (neon_vqmovun<mode>): Likewise.
5870 (neon_vmovl<mode>): Likewise.
5871 (neon_vmul_lane<mode>): Likewise.
5872 (neon_vmull_lane<mode>): Likewise.
5873 (neon_vqdmull_lane<mode>): Likewise.
5874 (neon_vqdmulh_lane<mode>): Likewise.
5875 (neon_vmla_lane<mode>): Likewise.
5876 (neon_vmlal_lane<mode>): Likewise.
5877 (neon_vqdmlal_lane<mode>): Likewise.
5878 (neon_vmls_lane<mode>): Likewise.
5879 (neon_vmlsl_lane<mode>): Likewise.
5880 (neon_vqdmlsl_lane<mode>): Likewise.
5881 (neon_vext<mode>): Likewise.
5882 (neon_vrev64<mode>): Likewise.
5883 (neon_vrev32<mode>): Likewise.
5884 (neon_vrev16<mode>): Likewise.
5885 (neon_vbsl<mode>_internal): Likewise.
5886 (neon_vshl<mode>): Likewise.
5887 (neon_vqshl<mode>): Likewise.
5888 (neon_vshr_n<mode>): Likewise.
5889 (neon_vshrn_n<mode>): Likewise.
5890 (neon_vqshrn_n<mode>): Likewise.
5891 (neon_vqshrun_n<mode>): Likewise.
5892 (neon_vshl_n<mode>): Likewise.
5893 (neon_vqshl_n<mode>): Likewise.
5894 (neon_vqshlu_n<mode>): Likewise.
5895 (neon_vshll_n<mode>): Likewise.
5896 (neon_vsra_n<mode>): Likewise.
5897 (neon_vsri_n<mode>): Likewise.
5898 (neon_vsli_n<mode>): Likewise.
5899 (neon_vtbl1v8qi): Likewise.
5900 (neon_vtbl2v8qi): Likewise.
5901 (neon_vtbl3v8qi): Likewise.
5902 (neon_vtbl4v8qi): Likewise.
5903 (neon_vtbx1v8qi): Likewise.
5904 (neon_vtbx2v8qi): Likewise.
5905 (neon_vtbx3v8qi): Likewise.
5906 (neon_vtbx4v8qi): Likewise.
5907 (neon_vtrn<mode>_internal): Likewise.
5908 (neon_vzip<mode>_internal): Likewise.
5909 (neon_vuzp<mode>_internal): Likewise.
5910 (neon_vld1<mode>): Likewise.
5911 (neon_vld1_lane<mode>): Likewise.
5912 (neon_vld1_dup<mode>): Likewise.
5913 (neon_vld1_dupv2di): Likewise.
5914 (neon_vst1<mode>): Likewise.
5915 (neon_vst1_lane<mode>): Likewise.
5916 (neon_vld2<mode>): Likewise.
5917 (neon_vld2_lane<mode>): Likewise.
5918 (neon_vld2_dup<mode>): Likewise.
5919 (neon_vst2<mode>): Likewise.
5920 (neon_vst2_lane<mode>): Likewise.
5921 (neon_vld3<mode>): Likewise.
5922 (neon_vld3qa<mode>): Likewise.
5923 (neon_vld3qb<mode>): Likewise.
5924 (neon_vld3_lane<mode>): Likewise.
5925 (neon_vld3_dup<mode>): Likewise.
5926 (neon_vst3<mode>): Likewise.
5927 (neon_vst3qa<mode>): Likewise.
5928 (neon_vst3qb<mode>): Likewise.
5929 (neon_vst3_lane<mode>): Likewise.
5930 (neon_vld4<mode>): Likewise.
5931 (neon_vld4qa<mode>): Likewise.
5932 (neon_vld4qb<mode>): Likewise.
5933 (neon_vld4_lane<mode>): Likewise.
5934 (neon_vld4_dup<mode>): Likewise.
5935 (neon_vst4<mode>): Likewise.
5936 (neon_vst4qa<mode>): Likewise.
5937 (neon_vst4qb<mode>): Likewise.
5938 (neon_vst4_lane<mode>): Likewise.
5939 (neon_vec_unpack<US>_lo_<mode>): Likewise.
5940 (neon_vec_unpack<US>_hi_<mode>): Likewise.
5941 (neon_vec_<US>mult_lo_<mode>): Likewise.
5942 (neon_vec_<US>mult_hi_<mode>): Likewise.
5943 (neon_vec_<US>shiftl_<mode>): Likewise.
5944 (neon_unpack<US>_<mode>): Likewise.
5945 (neon_vec_<US>mult_<mode>): Likewise.
5946 (vec_pack_trunc_<mode>): Likewise.
5947 (neon_vec_pack_trunk_<mode>): Likewise.
5948 (neon_vabd<mode>_2): Likewise.
5949 (neon_vabd<mode>_3): Likewise.
5950 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
5951 (thumb2_movsi_vfp): Likewise.
5952 (movdi_vfp): Likewise.
5953 (movdi_vfp_cortexa8): Likewise.
5954 (movhf_vfp_neon): Likewise.
5955 (movhf_vfp): Likewiwse.
5956 (movsf_vfp): Likewiwse.
5957 (thumb2_movsf_vfp): Likewiwse.
5958 (movdf_vfp): Likewise.
5959 (thumb2_movdf_vfp): Likewise.
5960 (movsfcc_vfp): Likewise.
5961 (thumb2_movsfcc_vfp): Likewise.
5962 (movdfcc_vfp): Likewise.
5963 (thumb2_movdfcc_vfp): Likewise.
5964 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
5965 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
5966 (v10_v2c): Likewise.
5967 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
5968 attribute change.
5969 (cortex_a15_neon_int_2): Likewise.
5970 (cortex_a15_neon_int_3): Likewise.
5971 (cortex_a15_neon_int_4): Likewise.
5972 (cortex_a15_neon_int_5): Likewise.
5973 (cortex_a15_neon_vqneg_vqabs): Likewise.
5974 (cortex_a15_neon_vmov): Likewise.
5975 (cortex_a15_neon_vaba): Likewise.
5976 (cortex_a15_neon_vaba_qqq): Likewise.
5977 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5978 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
5979 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
5980 scalar_64_32_long_scalar): Likewise.
5981 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5982 (cortex_a15_neon_mla_qqq_8_16): Likewise.
5983 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5984 lotype_qdd_64_32_long): Likewise.
5985 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5986 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5987 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
5988 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5989 (cortex_a15_neon_shift_1): Likewise.
5990 (cortex_a15_neon_shift_2): Likewise.
5991 (cortex_a15_neon_shift_3): Likewise.
5992 (cortex_a15_neon_vshl_ddd): Likewise.
5993 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5994 (cortex_a15_neon_vsra_vrsra): Likewise.
5995 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
5996 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
5997 (cortex_a15_neon_fp_vmul_ddd): Likewise.
5998 (cortex_a15_neon_fp_vmul_qqd): Likewise.
5999 (cortex_a15_neon_fp_vmla_ddd): Likewise.
6000 (cortex_a15_neon_fp_vmla_qqq): Likewise.
6001 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
6002 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
6003 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6004 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6005 (cortex_a15_neon_bp_simple): Likewise.
6006 (cortex_a15_neon_bp_2cycle): Likewise.
6007 (cortex_a15_neon_bp_3cycle): Likewise.
6008 (cortex_a15_neon_vld1_1_2_regs): Likewise.
6009 (cortex_a15_neon_vld1_3_4_regs): Likewise.
6010 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6011 (cortex_a15_neon_vld2_4_regs): Likewise.
6012 (cortex_a15_neon_vld3_vld4): Likewise.
6013 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6014 (cortex_a15_neon_vst1_3_4_regs): Likewise.
6015 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
6016 (cortex_a15_neon_vst3_vst4): Likewise.
6017 (cortex_a15_neon_vld1_vld2_lane): Likewise.
6018 (cortex_a15_neon_vld3_vld4_lane" 10
6019 (cortex_a15_neon_vst1_vst2_lane): Likewise.
6020 (cortex_a15_neon_vst3_vst4_lane): Likewise.
6021 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
6022 (cortex_a15_neon_ldm_2): Likewise.0
6023 (cortex_a15_neon_stm_2): Likewise.
6024 (cortex_a15_neon_mcr): Likewise.
6025 (cortex_a15_neon_mcr_2_mcrr): Likewise.
6026 (cortex_a15_neon_mrc): Likewise.
6027 (cortex_a15_neon_mrrc): Likewise.
6028 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
6029 change.
6030 (cortex_a15_alu_shift): Likewise.
6031 (cortex_a15_alu_shift_reg): Likewise.
6032 (cortex_a15_mult32): Likewise.
6033 (cortex_a15_mult64): Likewise.
6034 (cortex_a15_block): Likewise.
6035 (cortex_a15_branch): Likewise.
6036 (cortex_a15_load1): Likewise.
6037 (cortex_a15_load3): Likewise.
6038 (cortex_a15_store1): Likewise.
6039 (cortex_a15_store3): Likewise.
6040 (cortex_a15_call): Likewise.
f43245d1 6041 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
6042 (cortex_a5_f2r): Likewise.
6043 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
6044 change.
6045 (cortex_a53_f2r): Likewise.
6046 * config/arm/cortex-a7.md
6047 (cortex_a7_branch): Update for attribute change.
6048 (cortex_a7_call): Likewise.
6049 (cortex_a7_alu_imm): Likewise.
6050 (cortex_a7_alu_reg): Likewise.
6051 (cortex_a7_alu_shift): Likewise.
6052 (cortex_a7_mul): Likewise.
6053 (cortex_a7_load1): Likewise.
6054 (cortex_a7_store1): Likewise.
6055 (cortex_a7_load2): Likewise.
6056 (cortex_a7_store2): Likewise.
6057 (cortex_a7_load3): Likewise.
6058 (cortex_a7_store3): Likewise.
6059 (cortex_a7_load4): Likewise.
6060 (cortex_a7_store4): Likewise.
6061 (cortex_a7_fpalu): Likewise.
6062 (cortex_a7_fconst): Likewise.
6063 (cortex_a7_fpmuls): Likewise.
6064 (cortex_a7_neon_mul): Likewise.
6065 (cortex_a7_fpmacs): Likewise.
6066 (cortex_a7_neon_mla: Likewise.
6067 (cortex_a7_fpmuld: Likewise.
6068 (cortex_a7_fpmacd: Likewise.
6069 (cortex_a7_fpfmad: Likewise.
6070 (cortex_a7_fdivs: Likewise.
6071 (cortex_a7_fdivd: Likewise.
6072 (cortex_a7_r2f: Likewise.
6073 (cortex_a7_f2r: Likewise.
6074 (cortex_a7_f_flags: Likewise.
6075 (cortex_a7_f_loads: Likewise.
6076 (cortex_a7_f_loadd: Likewise.
6077 (cortex_a7_f_stores: Likewise.
6078 (cortex_a7_f_stored: Likewise.
6079 (cortex_a7_neon): Likewise.
6080 * config/arm/cortex-a8-neon.md
6081 (cortex_a8_neon_mrc): Update for attribute change.
6082 (cortex_a8_neon_mrrc): Likewise.
6083 (cortex_a8_neon_int_1): Likewise.
6084 (cortex_a8_neon_int_2): Likewise.
6085 (cortex_a8_neon_int_3): Likewise.
6086 (cortex_a8_neon_int_4): Likewise.
6087 (cortex_a8_neon_int_5): Likewise.
6088 (cortex_a8_neon_vqneg_vqabs): Likewise.
6089 (cortex_a8_neon_vmov): Likewise.
6090 (cortex_a8_neon_vaba): Likewise.
6091 (cortex_a8_neon_vaba_qqq): Likewise.
6092 (cortex_a8_neon_vsma): Likewise.
6093 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6094 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6095 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6096 long_scalar): Likewise.
003bb7f3
JG
6097 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6098 (cortex_a8_neon_mla_qqq_8_16): Likewise.
6099 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6100 long_scalar_qdd_64_32_long): Likewise.
6101 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6102 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6103 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
6104 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6105 (cortex_a8_neon_shift_1): Likewise.
6106 (cortex_a8_neon_shift_2): Likewise.
6107 (cortex_a8_neon_shift_3): Likewise.
6108 (cortex_a8_neon_vshl_ddd): Likewise.
6109 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6110 (cortex_a8_neon_vsra_vrsra): Likewise.
6111 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
6112 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
6113 (cortex_a8_neon_fp_vsum): Likewise.
6114 (cortex_a8_neon_fp_vmul_ddd): Likewise.
6115 (cortex_a8_neon_fp_vmul_qqd): Likewise.
6116 (cortex_a8_neon_fp_vmla_ddd): Likewise.
6117 (cortex_a8_neon_fp_vmla_qqq): Likewise.
6118 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
6119 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
6120 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6121 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6122 (cortex_a8_neon_bp_simple): Likewise.
6123 (cortex_a8_neon_bp_2cycle): Likewise.
6124 (cortex_a8_neon_bp_3cycle): Likewise.
6125 (cortex_a8_neon_ldr): Likewise.
6126 (cortex_a8_neon_str): Likewise.
6127 (cortex_a8_neon_vld1_1_2_regs): Likewise.
6128 (cortex_a8_neon_vld1_3_4_regs): Likewise.
6129 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6130 (cortex_a8_neon_vld2_4_regs): Likewise.
6131 (cortex_a8_neon_vld3_vld4): Likewise.
6132 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6133 (cortex_a8_neon_vst1_3_4_regs): Likewise.
6134 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
6135 (cortex_a8_neon_vst3_vst4): Likewise.
6136 (cortex_a8_neon_vld1_vld2_lane): Likewise.
6137 (cortex_a8_neon_vld3_vld4_lane): Likewise.
6138 (cortex_a8_neon_vst1_vst2_lane): Likewise.
6139 (cortex_a8_neon_vst3_vst4_lane): Likewise.
6140 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
6141 (cortex_a8_neon_mcr): Likewise.
6142 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 6143 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
6144 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
6145 change.
6146 (ca9_neon_mrrc): Likewise.
6147 (cortex_a9_neon_int_1): Likewise.
6148 (cortex_a9_neon_int_2): Likewise.
6149 (cortex_a9_neon_int_3): Likewise.
6150 (cortex_a9_neon_int_4): Likewise.
6151 (cortex_a9_neon_int_5): Likewise.
6152 (cortex_a9_neon_vqneg_vqabs): Likewise.
6153 (cortex_a9_neon_vmov): Likewise.
6154 (cortex_a9_neon_vaba): Likewise.
6155 (cortex_a9_neon_vaba_qqq): Likewise.
6156 (cortex_a9_neon_vsma): Likewise.
6157 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6158 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
6159 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6160 long_scalar): Likewise.
003bb7f3
JG
6161 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6162 (cortex_a9_neon_mla_qqq_8_16): Likewise.
6163 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6164 long_scalar_qdd_64_32_long): Likewise.
6165 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6166 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6167 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
6168 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6169 (cortex_a9_neon_shift_1): Likewise.
6170 (cortex_a9_neon_shift_2): Likewise.
6171 (cortex_a9_neon_shift_3): Likewise.
6172 (cortex_a9_neon_vshl_ddd): Likewise.
6173 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6174 (cortex_a9_neon_vsra_vrsra): Likewise.
6175 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
6176 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
6177 (cortex_a9_neon_fp_vsum): Likewise.
6178 (cortex_a9_neon_fp_vmul_ddd): Likewise.
6179 (cortex_a9_neon_fp_vmul_qqd): Likewise.
6180 (cortex_a9_neon_fp_vmla_ddd): Likewise.
6181 (cortex_a9_neon_fp_vmla_qqq): Likewise.
6182 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
6183 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
6184 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6185 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6186 (cortex_a9_neon_bp_simple): Likewise.
6187 (cortex_a9_neon_bp_2cycle): Likewise.
6188 (cortex_a9_neon_bp_3cycle): Likewise.
6189 (cortex_a9_neon_ldr): Likewise.
6190 (cortex_a9_neon_str): Likewise.
6191 (cortex_a9_neon_vld1_1_2_regs): Likewise.
6192 (cortex_a9_neon_vld1_3_4_regs): Likewise.
6193 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6194 (cortex_a9_neon_vld2_4_regs): Likewise.
6195 (cortex_a9_neon_vld3_vld4): Likewise.
6196 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6197 (cortex_a9_neon_vst1_3_4_regs): Likewise.
6198 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
6199 (cortex_a9_neon_vst3_vst4): Likewise.
6200 (cortex_a9_neon_vld1_vld2_lane): Likewise.
6201 (cortex_a9_neon_vld3_vld4_lane): Likewise.
6202 (cortex_a9_neon_vst1_vst2_lane): Likewise.
6203 (cortex_a9_neon_vst3_vst4_lane): Likewise.
6204 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
6205 (cortex_a9_neon_mcr): Likewise.
6206 (cortex_a9_neon_mcr_2_mcrr): Likewise.
6207 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
6208 (cortex_a9_fps): Likewise.
6209 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
6210 change.
6211 (cortex_m4_fmuls): Likewise.
6212 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
6213 change.
6214 (cortex_r4_mrc): Likewise.
6215 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 6216 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 6217 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
6218 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
6219 attribute change.
003bb7f3
JG
6220 (pj4_core_to_vfp): Likewise.
6221 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
6222 attribute change.
6223 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
6224 (vfp_fstore): Likewise.
6225 * doc/md.texi: Change references to neon_type to refer to type.
6226
fbe0dc78
DS
62272013-09-04 Dodji Seketeli <dodji@redhat.com>
6228
6229 * tree.h (DECL_BUILT_IN): Fix typo in comment.
6230
c167bc5b
DE
62312013-09-04 David Edelsohn <dje.gcc@gmail.com>
6232
6233 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
6234 lglobl if not weak.
6235
035cb59f
ER
62362013-09-04 Easwaran Raman <eraman@google.com>
6237
6238 PR middle-end/57370
6239 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
6240 (build_and_add_sum): Use it.
6241 (appears_later_in_bb): Simplify code.
6242
71191083
TJ
62432013-09-04 Teresa Johnson <tejohnson@google.com>
6244
6245 * dumpfile.c (dump_finish): Don't close stderr/stdout.
6246
0c488213
JG
62472013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
6248
6249 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
6250
61a74079
JH
62512013-09-04 Jan Hubicka <jh@suse.cz>
6252
6253 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
6254 * ipa-devirt.c: Include diganostic.h
6255 (odr_type_d): Add types and types_set.
6256 (hash_type_name): Work for types with vtables during LTO.
6257 (odr_hasher::remove): Fix comment; destroy types_set.
6258 (add_type_duplicate): New function,
6259 (get_odr_type): Use it.
6260 (dump_type_inheritance_graph): Dump type duplicates.
6261 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
6262 graph.
6263 * tree.c (types_same_for_odr): Give exact answers on types with
6264 virtual tables.
6265
24ba8195
DS
62662013-09-04 Dodji Seketeli <dodji@redhat.com>
6267
6268 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 6269 explaining their differences.
24ba8195 6270
0a04869e
SKS
62712013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
6272
6273 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
6274
3b18bc42
JL
62752013-09-03 Jeff Law <law@redhat.com>
6276
6277 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
6278 when not threading through a joiner block. Pass joiner/no joiner
6279 state to register_jump_thread.
6280 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
6281 state from argument rather than implying on path length.
6282 Dump the entire jump thread path into debugging dump.
6283 * tree-flow.h (register_jump_thread): Update prototype.
6284
ae84e151
XDL
62852013-08-29 Xinliang David Li <davidxl@google.com>
6286
6287 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6288 Remove a trivial gcc_assert.
6289
c716e67f
XDL
62902013-08-29 Xinliang David Li <davidxl@google.com>
6291
6292 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
6293 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
6294 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6295 Delay base decl alignment adjustment.
6296 * tree-vectorizer.c (vect_destroy_datarefs): New function.
6297 * tree-vectorizer.h: New data structure.
6298 (set_dr_misalignment): New function.
6299 (dr_misalignment): Ditto.
6300 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
6301 (vectorizable_load): Ditto.
6302 (ensure_base_align): New function.
6303 (vectorize_loops): Add dbg_cnt support.
6304 (execute_vect_slp): Ditto.
6305 * dbgcnt.def: New debug counter.
6306 * Makefile: New dependency.
6307
db8800bc
MI
63082013-09-03 Meador Inge <meadori@codesourcery.com>
6309
6310 Revert:
6311
6312 2013-08-30 Meador Inge <meadori@codesourcery.com>
6313
6314 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
6315
0d9b4f5c
DE
63162013-09-03 David Edelsohn <dje.gcc@gmail.com>
6317
6318 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
6319 function descriptor.
6320
29e810b9
RB
63212013-09-03 Richard Biener <rguenther@suse.de>
6322
6323 * tree-affine.c (add_elt_to_tree): Fix association issue,
6324 avoid useless converts and make sure to always return a
6325 properly typed result.
6326
dbfc2894
RB
63272013-09-03 Richard Biener <rguenther@suse.de>
6328
6329 PR middle-end/57656
6330 * fold-const.c (negate_expr_p): Fix division case.
6331 (negate_expr): Likewise.
6332
fa3bf4ce
RB
63332013-09-03 Richard Biener <rguenther@suse.de>
6334
6335 PR lto/58285
6336 * tree-streamer-out.c: Include tm.h.
6337 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
6338
a64bbb3f
JH
63392013-09-03 Jan Hubicka <jh@suse.cz>
6340
6341 * tree-profile.c (tree_profiling): Cleanup CFG when done.
6342
93ed07e2
AM
63432013-09-03 Alan Modra <amodra@gmail.com>
6344
6345 * config.gcc (powerpc*-*-linux*): Add support for little-endian
6346 multilibs to big-endian target and vice versa.
6347 * config/rs6000/t-linux64: Use := assignment on all vars.
6348 (MULTILIB_EXTRA_OPTS): Remove fPIC.
6349 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
6350 * config/rs6000/t-linux64le: New file.
6351 * config/rs6000/t-linux64bele: New file.
6352 * config/rs6000/t-linux64lebe: New file.
6353
07d6cd64
JH
63542013-09-02 Jan Hubicka <jh@suse.cz>
6355
6356 * ipa-inline-transform.c (inline_transform): Do not
6357 optimize_inline_calls when not optimizing.
6358
8e4c9a10
JH
63592013-09-02 Jan Hubicka <jh@suse.cz>
6360
6361 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
6362 duplicated nodes for assembler names.
6363 * symtab.c (symtab_unregister_node): Do not attempt to unlink
6364 hard registers from assembler name hash.
6365
c91061e6
JH
63662013-09-02 Jan Hubicka <jh@suse.cz>
6367
6368 * ipa-split.c (execute_split_functions): Split externally visible
6369 functions called once.
6370
2fd0985c
MJ
63712013-09-02 Martin Jambor <mjambor@suse.cz>
6372
6373 PR ipa/58106
6374 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
6375 linked list. When finding the correct duplicate, also consider also
6376 the caller in additon to its inlined_to node.
6377
91bd4114
JG
63782013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
6379
6380 * config/aarch64/aarch64-simd-builtins.def
6381 (dup_lane_scalar): Remove.
6382 * config/aarch64/aarch64-simd.md
6383 (aarch64_simd_dup): Add 'w->w' alternative.
6384 (aarch64_dup_lane<mode>): Allow for VALL.
6385 (aarch64_dup_lane_scalar<mode>): Remove.
6386 (aarch64_dup_lane_<vswap_width_name><mode>): New.
6387 (aarch64_get_lane_signed<mode>): Add w->w altenative.
6388 (aarch64_get_lane_unsigned<mode>): Likewise.
6389 (aarch64_get_lane<mode>): Likewise.
6390 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
6391 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
6392 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
6393 (VCON): Change container of V2SF.
6394 (vswap_width_name): Likewise.
6395 * config/aarch64/arm_neon.h
6396 (__aarch64_vdup_lane_any): New.
6397 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
6398 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
6399 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
6400
d617d2d8
EB
64012013-09-02 Eric Botcazou <ebotcazou@adacore.com>
6402
6403 PR middle-end/56382
6404 * expr.c (emit_move_complex): Do not move complex FP values as parts if
6405 the source or the destination is a single hard register.
6406
63fdb7be
RB
64072013-09-02 Richard Biener <rguenther@suse.de>
6408
6409 PR middle-end/57511
6410 * tree-scalar-evolution.c (instantiate_scev_name): Allow
6411 non-linear SCEVs.
6412
78de2333
RB
64132013-09-02 Richard Biener <rguenther@suse.de>
6414
6415 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
6416 arithmetic to sizetype.
6417
85ff4ec6
BC
64182013-09-02 Bin Cheng <bin.cheng@arm.com>
6419
6420 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
6421 Find auto-increment use both before and after candidate.
6422
576016fe
MP
64232013-09-02 Marek Polacek <polacek@redhat.com>
6424
6425 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
6426
08f835dc
JH
64272013-09-01 Jan Hubicka <jh@suse.cz>
6428
6429 * Makefile.in: Add ipa-profile.o
6430 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
6431 * cgraph.c (struct cgraph_propagate_frequency_data,
6432 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
6433 ipa-profile.c; replace cgraph_ by ipa_ prefix.
6434 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
6435 * ipa-inline-analysis.c: Include ipa-utils.h;
6436 drop duplicated cfgloop.h.
08f835dc
JH
6437 (inline_update_callee_summaries): Update.
6438 * ipa-profile.c: New file.
6439 * ipa-utils.h (ipa_propagate_frequency): Declare.
6440 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 6441 data-streamer.h, value-prof.h.
08f835dc
JH
6442 (symtab_remove_unreachable_nodes): Update profile.
6443 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
6444 account_time_size, cmp_counts, dump_histogram,
6445 ipa_profile_generate_summary, ipa_profile_write_summary,
6446 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
6447 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 6448 Move to ipa-profile.c.
08f835dc 6449
cec8583c
JDA
64502013-09-01 John David Anglin <danglin@gcc.gnu.org>
6451
6452 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
6453
bbc9396b
JH
64542013-09-01 Jan Hubicka <jh@suse.cz>
6455
6456 * common.opt (fdevirtualize-speculatively): New function.
6457 * invoke.texi (fdevirtualize-speculatively): Document.
6458 * ipa-devirt.c: Include ipa-inline.h
6459 (likely_target_p): New function.
6460 (ipa_devirt): New function.
6461 (gate_ipa_devirt): New function.
6462 (pass_data_ipa_devirt): New static var.
6463 (pass_ipa_devirt): Likewise.
6464 (make_pass_ipa_devirt): New function.
6465 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
6466 (common_handle_option): Disable devirtualization when
6467 value range profiling is available.
6468 * passes.def (pass_ipa_devirt): Add.
6469 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 6470 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 6471
0cea211e
IS
64722013-09-01 Iain Sandoe <iain@codesourcery.com>
6473
6474 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
6475 include sanitize(undefined).
6476
5e351e96
DN
64772013-08-31 Diego Novillo <dnovillo@google.com>
6478
6479 * Makefile.in (TREE_CORE_H): Define.
6480 (TREE_H): Use.
6481 (GTFILES): Add tree-core.h.
6482 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
6483 size the array.
6484 * tree-core.h: New file.
6485 Move all data structures, enum, typedefs, global
6486 declarations and constants from ...
6487 * tree.h: ... here.
6488
63bf9a90
JH
64892013-08-31 Jan Hubicka <jh@suse.cz>
6490
6491 * bulitins.c (expand_builtin): Do not early exit for gcov
6492 instrumented functions.
6493
5c0abd6a
MP
64942013-08-31 Marek Polacek <polacek@redhat.com>
6495
6496 * ubsan.c: Include tm_p.h.
6497
4843f032
JH
64982013-08-31 Jan Hubicka <jh@suse.cz>
6499
8356c89c
JH
6500 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
6501 warning.
6502
4843f032
JH
6503 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
6504 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 6505 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
6506 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
6507 (ipa_merge_profiles): New function.
6508 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
6509 (lto_input_function_body): Likewise.
5e581212
JH
6510 * ipa-utils.h (ipa_merge_profiles): Declare.
6511 * lto-streamer.h (lto_input_function_body): Update prototype.
6512 (emit_label_in_global_context_p): Remove.
6513 * lto-symtab.c: Include ipa-utils.h
6514 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 6515
57292ce9
JH
65162013-08-31 Jan Hubicka <jh@suse.cz>
6517
6518 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
6519
b9cbfeeb
JH
65202013-08-31 Jan Hubicka <jh@suse.cz>
6521
6522 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
6523
41dedebd
UB
65242013-08-31 Uros Bizjak <ubizjak@gmail.com>
6525
6526 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
6527 "cmp" RTX before signed_comparison_operator check to account
6528 for "code" changes.
6529
06d65050
JH
65302013-08-30 Jan Hubicka <jh@suse.cz>
6531
41dedebd 6532 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
6533 (detect_type_change_1): Rename to ...
6534 (detect_type_change): ... this one; early return on non-polymorphic
6535 types.
41dedebd 6536 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
6537 use of detect_type_change.
6538 (compute_complex_assign_jump_func): Add param_type parameter;
6539 update use of detect_type_change_ssa.
6540 (compute_complex_ancestor_jump_func): Likewise.
6541 (ipa_get_callee_param_type): New function.
6542 (ipa_compute_jump_functions_for_edge): Compute parameter type;
6543 update calls to the jump function computation functions.
6544
600b5b1d
TJ
65452013-08-30 Teresa Johnson <tejohnson@google.com>
6546 Steven Bosscher <steven@gcc.gnu.org>
6547
6548 * cfgrtl.c (fixup_new_cold_bb): New routine.
6549 (commit_edge_insertions): Invoke fixup_partitions.
6550 (find_partition_fixes): New routine.
6551 (fixup_partitions): Ditto.
6552 (verify_hot_cold_block_grouping): Update comments.
6553 (rtl_verify_edges): Invoke find_partition_fixes.
6554 (rtl_verify_bb_pointers): Update comments.
6555 (rtl_verify_bb_layout): Ditto.
6556 * basic-block.h (probably_never_executed_edge_p): Declare.
6557 (fixup_partitions): Ditto.
6558 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
6559 * bb-reorder.c (sanitize_hot_paths): New function.
6560 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
6561 sanitize_hot_paths.
6562 * predict.c (probably_never_executed_edge_p): New routine.
6563 * cfg.c (check_bb_profile): Add partition insanity warnings.
6564
0a6ea5c9
MI
65652013-08-30 Meador Inge <meadori@codesourcery.com>
6566
6567 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
6568
de5a5fa1
MP
65692013-08-30 Marek Polacek <polacek@redhat.com>
6570
6571 * Makefile.in (ubsan.o): Add.
6572 (c-family/c-ubsan.o): Add.
6573 (builtins.o): Add ubsan.h dependency.
6574 * ubsan.h: New file.
6575 * ubsan.c: New file.
6576 * common.opt: Add -fsanitize=undefined option.
6577 (flag_sanitize): Add variable.
6578 (fsanitize=): Add option. Add Driver.
6579 (fsanitize=thread): Remove option.
6580 (fsanitize=address): Likewise.
6581 (static-libubsan): New option.
6582 * doc/invoke.texi: Document the new flag and -static-libubsan.
6583 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
6584 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
6585 * builtin-attrs.def (ATTR_COLD): Define.
6586 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
6587 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
6588 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
6589 * flag-types.h (sanitize_code): New enum.
6590 * opts.c (common_handle_option): Parse command line arguments
6591 of -fsanitize=. Add -fsanitize=unreachable option.
6592 * varasm.c (get_variable_section): Adjust.
6593 (assemble_noswitch_variable): Likewise.
6594 (assemble_variable): Likewise.
6595 (output_constant_def_contents): Likewise.
6596 (categorize_decl_for_section): Likewise.
6597 (place_block_symbol): Likewise.
6598 (output_object_block): Likewise.
6599 * builtins.def: Likewise.
6600 * toplev.c (compile_file): Likewise.
6601 (process_options): Likewise.
6602 * cppbuiltin.c: Likewise.
6603 * tsan.c (tsan_pass): Likewise.
6604 (tsan_gate): Likewise.
6605 (tsan_gate_O0): Likewise.
6606 * cfgexpand.c (partition_stack_vars): Likewise.
6607 (expand_stack_vars): Likewise.
6608 (defer_stack_allocation): Likewise.
6609 (expand_used_vars): Likewise.
6610 * cfgcleanup.c (old_insns_match_p): Likewise.
6611 * asan.c (asan_finish_file): Likewise.
6612 (asan_instrument): Likewise.
6613 (gate_asan): Likewise.
6614 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
6615 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
6616 (asan_global_struct): Use pointer_sized_int_node instead
6617 calling build_nonstandard_integer_type.
6618 (initialize_sanitizer_builtins): Likewise.
6619 (asan_finish_file): Likewise.
6620 * gcc.c: Document %{%:function(args):X}.
6621 (static_spec_functions): Add sanitize.
6622 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
6623 store funcval != NULL there.
6624 (do_spec_1): Adjust handle_spec_function caller.
6625 (handle_braces): Allow %:function(args) as condition.
6626 (sanitize_spec_function): New function.
6627 (ADD_STATIC_LIBUBSAN_LIBS): Define.
6628 (LIBUBSAN_SPEC): Likewise.
6629 (LIBUBSAN_EARLY_SPEC): Likewise.
6630 (SANITIZER_SPEC): Handle libubsan.
6631 (SANITIZER_EARLY_SPEC): Likewise.
6632 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
6633 instead of fsanitize=address.
6634 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
6635 instead of fsanitize=address*.
6636 * builtins.c: Include ubsan.h.
6637 (fold_builtin_0): Instrument __builtin_unreachable.
6638 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
6639 instead of flag_asan.
6640 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
6641 (pointer_sized_int_node): Define.
41dedebd 6642 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 6643
f07f30cf
MS
66442013-08-30 Mike Stump <mikestump@comcast.net>
6645
6646 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
6647 with RE patterns.
6648
8a41354f
JH
66492013-08-29 Jan Hubicka <jh@suse.cz>
6650
6651 * cgraph.c (cgraph_function_body_availability): Handle weakref
6652 correctly.
6653 * passes.def: Remove pass_fixup_cfg.
6654 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
6655 track when we need to remove functions.
6656 (gate_ipa_inline): Execute inlining always; add comment why.
6657 (pass_data_ipa_inline): Remove TODO_remove_functions.
6658 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
6659 do not produce summaries.
6660 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
6661 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
6662 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
6663 constant pool and vtable.
6664
dc8d7a0f
TB
66652013-08-30 Tejas Belagod <tejas.belagod@arm.com>
6666
41dedebd
UB
6667 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
6668 New arm_neon.h's internal macros to specify 64-bit constants.
6669 Avoid using stdint.h's macros.
dc8d7a0f 6670
ac7eacd2
JR
66712013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
6672
6673 * recog.c (verify_changes): Verify that changes[i].old is non-zero
6674 before applying REG_P.
6675
8b29fd4e
JJ
66762013-08-30 Jakub Jelinek <jakub@redhat.com>
6677
6678 PR tree-optimization/58277
6679 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
6680 after seeing too many stmts with vdef in between dombb and current
6681 bb, invalidate everything.
6682
26d75703
RB
66832013-08-30 Richard Biener <rguenther@suse.de>
6684
6685 * fold-const.c (fold_single_bit_test): Fix overflow test.
6686
f7e088e7
EB
66872013-08-30 Eric Botcazou <ebotcazou@adacore.com>
6688
6689 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
6690 and which can live in a register, always retrieve the value on entry.
6691 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
6692 passed by invisible reference specially.
6693 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
6694 (vt_add_function_parameter): Correctly deal with a parameter passed by
6695 invisible reference.
6696
66972013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
6698
6699 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
6700
6e8dad05
RB
67012013-08-30 Richard Biener <rguenther@suse.de>
6702
6703 PR tree-optimization/58228
6704 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
6705 allow invariant loads in nested loop vectorization.
6706
062ef2c8
RB
67072013-08-30 Richard Biener <rguenther@suse.de>
6708
6709 PR tree-optimization/58223
6710 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
6711 (has_anti_or_output_dependence): ... this and adjust to also
6712 look for output dependences.
6713 (mark_nodes_having_upstream_mem_writes): Adjust.
6714 (rdg_flag_uses): Likewise.
6715
7a764c60
RB
67162013-08-30 Richard Biener <rguenther@suse.de>
6717
6718 PR tree-optimization/58010
6719 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
6720 assert that we have a loop-closed PHI.
6721
82e9d642
JH
67222013-08-29 Jan Hubicka <jh@suse.cz>
6723
6724 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
6725 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
6726 * lto-section-in.c (lto_free_function_in_decl_state): New function.
6727 (lto_free_function_in_decl_state_for_node): New function.
6728
9cc1fb4b
XDL
67292013-08-29 Xinliang David Li <davidxl@google.com>
6730
41dedebd 6731 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
6732 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
6733 Emit alignment peeling message with default -fopt-info.
6734 (vect_loop_versioning): Emit loop version info message.
41dedebd 6735 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
6736 (execute_vect_slp): Ditto.
6737
440a5082
EB
67382013-08-29 Eric Botcazou <ebotcazou@adacore.com>
6739
6740 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
6741 of the clone from the DECL_NAME of the original function.
6742
3fa3690d
OE
67432013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
6744
6745 * passes.c (register_pass): Add overload.
6746 * tree-pass.h (register_pass): Forward declare it. Add comment.
6747
0170f33c
JH
67482013-08-29 Jan Hubicka <jh@suse.cz>
6749
41dedebd
UB
6750 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
6751 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
6752 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
6753 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
6754 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
6755 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 6756 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
6757 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
6758
103ff0d6
TJ
67592013-08-29 Teresa Johnson <tejohnson@google.com>
6760
6761 * dumpfile.c (dump_loc): Output column number.
6762 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
6763 * doc/invoke.texi: Document optall -fopt-info flag.
6764 * profile.c (read_profile_edge_counts): Use new dump framework.
6765 (compute_branch_probabilities): Ditto.
6766 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
6767 when pass not in any opt group.
6768 * pass_manager.h (pass_manager::get_pass_profile): New method.
6769 * value-prof.c (check_counter): Use new dump framework.
6770 (check_ic_target): Ditto.
6771 * coverage.c (get_coverage_counts): Ditto.
6772 (coverage_init): Setup new dump framework.
6773
301bbc16
RB
67742013-08-29 Richard Biener <rguenther@suse.de>
6775
6776 PR tree-optimization/58246
6777 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
6778 handle the dominance check inside a basic-block.
6779
1b275000
RB
67802013-08-29 Richard Biener <rguenther@suse.de>
6781
6782 PR middle-end/57287
6783 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
6784 of default defs that appear in abnormal PHI nodes.
6785
6b1184ba
RB
67862013-08-29 Richard Biener <rguenther@suse.de>
6787
6788 PR tree-optimization/57685
6789 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
6790 single-use operands to avoid exponential complexity.
6791
1b08b734
DC
67922013-08-28 Dehao Chen <dehao@google.com>
6793
6794 * ipa-inline.c (edge_badness): Fix integer underflow.
6795
48a3fa69
UB
67962013-08-28 Uros Bizjak <ubizjak@gmail.com>
6797
6798 * gtm-builtins.def (_ITM_free): Declare leaf.
6799
215f73e6
JJ
68002013-08-28 Jakub Jelinek <jakub@redhat.com>
6801
6802 PR target/58067
6803 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
6804 (*tls_local_dynamic_base_64_largepic): Likewise.
6805 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
6806 Remove predicate from call operand.
6807 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
6808 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
6809
34554d1a
JL
68102013-08-28 Jeff Law <law@redhat.com>
6811
6812 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
6813 checks for the number of predecessors and successors allowed.
6814 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
6815 which require copying a joiner block if there is a request which
6816 is a subpath that requires no joiner block copying.
6817
c01c111b
JH
68182013-08-28 Jan Hubicka <jh@suse.cz>
6819
6820 * lto-streamer-out.c (DFS_write_tree_body): Drop
6821 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
6822 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
6823 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
6824 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
6825 Do not read DECL_ERROR_ISSUED.
6826 (unpack_ts_decl_with_vis_value_fields): Do not read
6827 DECL_DEFER_OUTPUT.
48a3fa69
UB
6828 (lto_input_ts_binfo_tree_pointers): Do not read
6829 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
6830 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
6831 write DECL_ERROR_ISSUED..
6832 (pack_ts_decl_with_vis_value_fields): Do not write
6833 DECL_DEFER_OUTPUT.
6834 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 6835 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
6836 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
6837 * tree.h (tree_decl_common): Update comment.
6838 (DECL_ERROR_ISSUED): Remove.
6839
4b128ece
JJ
68402013-08-28 Jakub Jelinek <jakub@redhat.com>
6841
6842 PR middle-end/58257
6843 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
6844
12211b99 68452013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
6846
6847 * builtins.def (free): Declare leaf.
6848
8dce4dbc
DM
68492013-08-27 David Malcolm <dmalcolm@redhat.com>
6850
6851 * gdbhooks.py: New.
6852 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
6853 * configure: Regenerate.
6854
b8f6e610
MJ
68552013-08-27 Martin Jambor <mjambor@suse.cz>
6856
6857 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
6858 (ipa_ancestor_jf_data): Likewise.
6859 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
6860 (ipa_get_jf_pass_through_type_preserved): New function.
6861 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
6862 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 6863 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
6864 (ipa_get_jf_ancestor_result): Likewise.
6865 (propagate_vals_accross_pass_through): Use
6866 ipa_get_jf_pass_through_result to do all the value mappings.
6867 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
6868 type_preserved flag.
6869 (ipa_set_jf_cst_copy): New function.
6870 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
6871 (ipa_set_jf_arith_pass_through): Likewise.
6872 (ipa_set_ancestor_jf): Likewise.
6873 (compute_complex_assign_jump_func): Set type_preserved instead of
6874 punting.
6875 (ipa_compute_jump_functions_for_edge): Likewise.
6876 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
6877 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 6878 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
6879 (ipa_write_jump_function): Stream the type_preserved flags.
6880 (ipa_read_jump_function): Likewise.
6881
74bf76ed
JJ
68822013-08-27 Jakub Jelinek <jakub@redhat.com>
6883 Aldy Hernandez <aldyh@redhat.com>
6884
6885 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
6886 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
6887 * function.h (struct function): Add has_force_vect_loops and
6888 has_simduid_loops.
12211b99 6889 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
6890 * gimple.c (gimple_build_omp_critical): Add KIND argument and
6891 handle it.
6892 * gimple.def: Update CLAUSES comments.
6893 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
6894 (gimple_build_omp_for): Add argument to prototype.
6895 (gimple_omp_for_kind): New.
6896 (gimple_omp_for_set_kind): New.
6897 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
6898 GOVD_DATA_SHARE_CLASS.
6899 (enum omp_region_type): Add ORT_SIMD.
6900 (gimple_add_tmp_var): Handle ORT_SIMD.
6901 (gimplify_var_or_parm_decl): Same.
6902 (is_gimple_stmt): Same.
6903 (omp_firstprivatize_variable): Same.
6904 (omp_add_variable): Only use splay_tree_insert if lookup failed.
6905 (omp_notice_variable): Handle ORT_SIMD.
12211b99 6906 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
6907 (omp_check_private): Handle ORT_SIMD.
6908 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
6909 OMP_CLAUSE_SAFELEN.
6910 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
6911 Handle OMP_CLAUSE_LASTPRIVATE.
6912 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
6913 OMP_CLAUSE_SAFELEN.
6914 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
6915 (gimplify_expr): Handle OMP_SIMD.
6916 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
6917 (expand_GOMP_SIMD_VF): New.
6918 (expand_GOMP_SIMD_LAST_LANE): New.
6919 * internal-fn.def (GOMP_SIMD_LANE): New.
6920 (GOMP_SIMD_VF): New.
6921 (GOMP_SIMD_LAST_LANE): New.
6922 * omp-low.c: Include target.h.
6923 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
6924 OMP_CLAUSE_SAFELEN.
6925 (check_omp_nesting_restrictions): Same.
6926 (omp_max_vf): New.
6927 (lower_rec_simd_input_clauses): New.
6928 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
6929 OMP_CLAUSE_LINEAR.
6930 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
6931 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
6932 (expand_omp_build_assign): New.
6933 (expand_omp_for_init_counts): New.
6934 (expand_omp_for_init_vars): New.
6935 (extract_omp_for_update_vars): New.
6936 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
6937 and rewrite accordingly.
6938 (expand_omp_simd): New.
6939 (expand_omp_for): Use expand_omp_simd.
6940 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
6941 (lower_omp_for): Do not lower the body.
6942 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
6943 in their own loops.
6944 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
6945 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
6946 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
6947 (gate_tree_if_conversion): Similarly.
6948 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
6949 gimple_build_omp_for.
6950 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
6951 * tree-parloops (create_parallel_loop): Pass kind argument to
6952 gimple_build_omp_for.
6953 * tree-pretty-print.c (dump_omp_clause): Add cases for
6954 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
6955 OMP_CLAUSE__SIMDUID_.
6956 (dump_generic_node): Handle OMP_SIMD.
6957 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
6958 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
6959 unroll OMP_SIMD loops here.
12211b99 6960 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 6961 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 6962 loop->safelen.
74bf76ed
JJ
6963 (vect_analyze_data_refs): Handle simd loops.
6964 * tree-vect-loop.c (vectorizable_live_operation): Handle
6965 IFN_GOMP_SIMD*.
12211b99 6966 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
6967 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
6968 (vectorizable_load): Same.
12211b99 6969 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
6970 (struct simduid_to_vf): New.
6971 (simduid_to_vf::hash): New.
6972 (simduid_to-vf::equal): New.
6973 (struct simd_array_to_simduid): New.
6974 (simd_array_to_simduid::hash): New.
6975 (simd_array_to_simduid::equal): New.
6976 (adjust_simduid_builtins): New.
6977 (struct note_simd_array_uses_struct): New.
6978 (note_simd_array_uses_cb): New.
6979 (note_simd_array_uses): New.
6980 (vectorize_loops): Handle simd hints and adjust simd builtins
6981 accordingly.
6982 * tree-vectorizer.h (struct _stmt_vec_info): Add
6983 simd_lane_access_p field.
6984 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
6985 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
6986 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
6987 (omp_clause_code_name): Same.
6988 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
6989 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
6990 * tree.def (OMP_SIMD): New entry.
12211b99
UB
6991 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
6992 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
6993 (OMP_CLAUSE_DECL): Adjust range for new clauses.
6994 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
6995 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
6996 (OMP_CLAUSE_LINEAR_STEP): New.
6997 (OMP_CLAUSE_SAFELEN_EXPR): New.
6998 (OMP_CLAUSE__SIMDUID__DECL): New.
6999 (find_omp_clause): New prototype.
7000
d0cf4e84
L
70012013-08-27 H.J. Lu <hongjiu.lu@intel.com>
7002
7003 * config/i386/driver-i386.c (host_detect_local_cpu): Update
7004 Haswell processor detection.
7005
992592ec
CW
70062013-08-27 Christian Widmer <shadow@umbrox.de>
7007
7008 PR target/57927
7009 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
7010 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
7011 AVX2 capable processors.
7012
9116eb22
TB
70132013-08-27 Tejas Belagod <tejas.belagod@arm.com>
7014
7015 * config/aarch64/arm_neon.h: Replace all inline asm implementations
7016 of vget_low_* with implementations in terms of other intrinsics.
7017
1c5abb53
MG
70182013-08-27 Marc Glisse <marc.glisse@inria.fr>
7019
7020 PR middle-end/57219
7021 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
7022 values to -1, 0 and 1.
7023
2e100703
VP
70242013-08-27 Vidya Praveen <vidyapraveen@arm.com>
7025
7026 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
7027 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
7028 (<optab><mode>3_insn): Remove.
7029 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
7030 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
7031 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
7032 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
7033 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
7034 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
7035 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
7036 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
7037 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
7038 (ror<mode>3_insn): Likewise.
7039 * config/aarch64/predicates.md (aarch64_simd_register): New.
7040
4ded8276
RB
70412013-08-27 Richard Biener <rguenther@suse.de>
7042
7043 PR tree-optimization/57521
7044 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
7045 one edge is non-critical.
7046 (find_phi_replacement_condition): Make sure to use a non-critical
7047 edge. Cleanup and remove old bug workarounds.
7048 (bb_postdominates_preds): Remove.
7049 (if_convertible_loop_p_1): Do not compute post-dominators.
7050 (combine_blocks): Do not free post-dominators.
7051 (main_tree_if_conversion): Likewise.
7052 (pass_data_if_conversion): Add TODO_verify_ssa.
7053
5aa11061
DD
70542013-08-27 DJ Delorie <dj@redhat.com>
7055
7056 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
7057
fd91cfe3
YZ
70582013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
7059
7060 * function.c (assign_parm_find_data_types): Set passed_mode and
7061 nominal_mode to the TYPE_MODE of nominal_type for the built
7062 pointer type in case of the struct-pass-by-reference.
7063
907555ce
JR
70642013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7065
7066 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
7067 (UINT16_TYPE): Change default to "unsigned int".
7068
67518c93
JR
7069 * config/avr/avr.opt (mfract-convert-truncate): New option.
7070 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
7071 is set, round negative fractional integers according to n1169
7072 when converting to integer types.
7073
d6d989fc
JH
70742013-08-26 Jan Hubicka <jh@suse.cz>
7075
7076 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
7077 methods can not be called indirectly when their address is not taken.
7078
2aa3da06
JH
70792013-08-26 Jan Hubicka <jh@suse.cz>
7080
12211b99
UB
7081 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
7082 ctor_for_folding.
2aa3da06 7083
0987ffe7
JH
70842013-08-26 Jan Hubicka <jh@suse.cz>
7085
7086 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
7087 can be unshared.
7088
befe8647
JR
70892013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7090
7091 * reload.c (find_valid_class): Allow classes that do not include
7092 FIRST_PSEUDO_REGISTER - 1.
7093
a21e735e
JH
70942013-08-26 Jan Hubicka <jh@suse.cz>
7095
7096 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
7097 fix edge count/frequency when speculation failed; fix type check
7098 for the direct call.
7099
e067bd43
JH
71002013-08-26 Jan Hubicka <jh@suse.cz>
7101
7102 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
7103
e8aec975
JH
71042013-08-26 Jan Hubicka <jh@suse.cz>
7105
7106 * ipa-inline-transform.c (inline_transform): Be ready for basic block
7107 to be changed by edge redirection.
7108
d0b66480
JH
71092013-08-26 Jan Hubicka <jh@suse.cz>
7110
12211b99
UB
7111 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
7112 formating; add sanity check.
d0b66480
JH
7113 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
7114 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
7115 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
7116 (resolve_noninline_speculation): Update callee keys, too.
7117
0f9aaac7
JH
71182013-08-26 Jan Hubicka <jh@suse.cz>
7119
7120 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
7121 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
7122
4b37444e
JR
71232013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7124
7125 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
7126 into proper place.
7127
5339fc0c
UB
71282013-08-26 Uros Bizjak <ubizjak@gmail.com>
7129
7130 * config/i386/i386.c (ix86_debug_options): Remove prototype.
7131 (x86_64_elf_select_section): Ditto.
7132 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
7133 arguments.
7134 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
7135 (output_set_got): Ditto.
7136 (ix86_unary_operator_ok): Ditto.
7137 (ix86_expand_builtin): Ditto.
7138
d5c3d3ef
JH
71392013-08-23 Jan Hubicka <jh@suse.cz>
7140
5339fc0c 7141 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 7142
5b1e7435
JH
71432013-08-23 Jan Hubicka <jh@suse.cz>
7144
7145 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
7146 (tree_decl_with_vis): Add FINAL field.
7147
ead69dac
JL
71482013-08-23 Jeff Law <law@redhat.com>
7149
7150 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
7151 the debugging dump when the expression is fully redundant.
7152
025311c4
GDR
71532013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7154
7155 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
7156 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
7157 * pretty-print.c (pp_formatted_text_data): Likewise.
7158 (pp_write_text_to_stream): Likewise.
7159 (pp_write_text_as_dot_label_to_stream): Likewise.
7160 (pp_append_r): Likewise.
7161 (pp_format): Likewise.
7162 (pp_flush): Likewise.
7163 (pp_clear_output_area): Likewise.
7164 (pp_append_text): Likewise.
7165 (pp_formatted_text): Likewise.
7166 (pp_remaining_character_count_for_line): Likewise.
7167 (pp_newline): Likewise.
7168 (pp_character): Likewise.
7169 (output_buffer::~output_buffer): Define.
7170 (pretty_printer::~pretty_printer): Destruct output buffer.
7171 * pretty-print.h (output_buffer::~output_buffer): Declare.
7172 (pretty_printer::~pretty_printer): Declare virtual.
7173
0cadbfaa
MG
71742013-08-24 Marc Glisse <marc.glisse@inria.fr>
7175
7176 PR other/57324
7177 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
7178 HOST_WIDE_INT_M1U): New macros.
7179 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
7180 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
7181 unsigned -1 for lshift.
7182 * cse.c (cse_insn): Likewise.
7183 * double-int.c (rshift_double, lshift_double): Likewise.
7184 * builtins.c (fold_builtin_bitop): Likewise.
7185 * combine.c (force_to_mode): Likewise.
7186 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
7187 * simplify-rtx.c (simplify_const_unary_operation,
7188 simplify_const_binary_operation): Likewise.
7189 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
7190 check_va_list_escapes): Likewise.
7191 * rtlanal.c (nonzero_bits1): Likewise.
7192 * expmed.c (expand_smod_pow2): Likewise.
7193 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
7194
009e5353
JH
71952013-08-23 Jan Hubicka <jh@suse.cz>
7196
7197 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
7198 as having address taken.
7199
c4be6568
JH
72002013-08-23 Jan Hubicka <jh@suse.cz>
7201
64cbf23d
JH
7202 * ipa-utils.h (method_class_type): Declare.
7203 * ipa-devirt.c (method_class_type): Export.
7204
c4be6568
JH
7205 * cgraphunit.c (analyze_functions): Do basic devirtualization;
7206 do not walk base classes of anonymous types.
7207
97aba8e9
KK
72082013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
7209
7210 PR rtl-optimization/58220
7211 PR regression/58221
7212 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
7213 handle SEQUENCE insns properly.
7214
0fc80001
GDR
72152013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7216
7217 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
7218 definition.
7219 (pp_newline_and_indent): Likewise.
7220 (pp_separate_with): Likewise.
7221 * pretty-print.c (pp_newline_and_flush): Define.
7222 (pp_newline_and_indent): Likewise.
7223 (pp_separate_with): Likewise.
7224
520a5868
JJ
72252013-08-23 Jakub Jelinek <jakub@redhat.com>
7226
7227 PR target/58218
7228 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
7229 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
7230
e500c62a
KY
72312013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
7232
f43245d1
UB
7233 * config/i386/predicates.md (ext_sse_reg_operand): New.
7234 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
7235 predicate to determine if EVEX is needed.
7236 (*movsi_internal): Ditto.
7237 (*movdf_internal): Ditto.
7238 (*movsf_internal): Ditto.
f43245d1 7239 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 7240
6b00d7dd
JJ
72412013-08-23 Jakub Jelinek <jakub@redhat.com>
7242
7243 PR tree-optimization/58209
7244 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
7245 (find_tail_calls): Give up for pointer result types if m is non-NULL.
7246 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
7247 emit POINTER_PLUS_EXPR.
7248 (create_tailcall_accumulator): For pointer result type accumulate in
7249 sizetype type.
7250
4f2a9f90
PC
72512013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
7252
7253 * configure.ac: Add backslashes missing from the last change.
7254 * configure: Regenerate.
7255
7bf4274e
JH
72562013-08-22 Jan Hubicka <jh@susue.cz>
7257
4f2a9f90
PC
7258 * ipa.c (function_and_variable_visibility): First remember function
7259 was global and then make it local.
7bf4274e 7260
1bea243d
JB
72612013-08-22 Julian Brown <julian@codesourcery.com>
7262
7263 * configure.ac: Add aarch64 to list of arches which use "nop" in
7264 debug_line test.
7265 * configure: Regenerate.
7266
bcba7ecc
AK
72672013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7268
7269 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
7270 gnu_libc_has_function.
7271 * config/s390/tpf.h: Likewise.
7272
4c495b0d
JH
72732013-08-22 Jan Hubicka <jh@susue.cz>
7274
7275 * timevar.c (validate_phases): Add cast.
7276
5e302bca
JH
72772013-08-22 Jan Hubicka <jh@susue.cz>
7278
7279 * timevar.c (validate_phases): Use size_t for memory.
7280 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
7281
da6ca2b5
GDR
72822013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
7283
7284 * pretty-print.h (output_buffer::output_buffer): Declare.
7285 (pretty_printer::pretty_printer): Likewise.
7286 (pp_construct): Remove.
7287 * pretty-print.c (output_buffer::output_buffer): Define.
7288 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
7289 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
7290 (print_gimple_expr): Likewise.
7291 (print_gimple_seq): Likewise.
7292 (gimple_dump_bb): Likewise.
7293 * sched-vis.c (dump_value_slim): Likewise.
7294 (dump_insn_slim): Likewise.
7295 (dump_rtl_slim): Likewise.
7296 (str_pattern_slim): Likewise.
7297 * tree-mudflap.c (mf_varname_tree): Likewise.
7298 * graph.c (print_graph_cfg): Likewise.
7299 (start_graph_dump): Likewise.
7300 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
7301 placement-new.
7302 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
7303 pretty printer initialization.
7304 * coretypes.h (diagnostic_context): Remove superflous type alias
7305 declaration.
7306 (pretty_printer): Likewise. Declare directly as a class.
7307 (pretty_print_info): Remove declaration as class.
7308 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
7309 and pp_clear_output_area.
7310 (asan_add_global): Likewise.
7311
0e1474e5
JH
73122013-08-22 Jan Hubicka <jh@suse.cz>
7313
7314 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
7315 * ipa-utils.h (update_type_inheritance_graph): Declare.
7316 (possible_polymorphic_call_target_p): Declare.
7317 (possible_polymorphic_call_target_p): New.
7318 * ipa-devirt.c: Update toplevel comments.
7319 (cached_polymorphic_call_targets): Move up.
7320 (odr_type_d): Move ID down.
7321 (polymorphic_type_binfo_p): Update comment.
7322 (odr_hasher::remove): Likewise;
7323 (get_odr_type): Set anonymous_namespace.
7324 (dump_odr_type): Dump it.
7325 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
7326 (maybe_record_node): Record node in cached_polymorphic_call_targets.
7327 (record_binfo): Add comment.
5339fc0c
UB
7328 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
7329 built.
0e1474e5
JH
7330 (devirt_node_removal_hook): Do not iCE when cache is freed.
7331 (possible_polymorphic_call_target_p): New predicate.
7332 (update_type_inheritance_graph): New function.
7333
3f97cb0b
AI
73342013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
7335 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7336 Sergey Lega <sergey.s.lega@intel.com>
7337 Anna Tikhonova <anna.tikhonova@intel.com>
7338 Ilya Tocar <ilya.tocar@intel.com>
7339 Andrey Turetskiy <andrey.turetskiy@intel.com>
7340 Ilya Verbin <ilya.verbin@intel.com>
7341 Kirill Yukhin <kirill.yukhin@intel.com>
7342 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7343
7344 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
7345 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
7346 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
7347 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
7348 (OPTION_MASK_ISA_AVX2_UNSET): Update.
7349 (OPTION_MASK_ISA_AVX512F_UNSET): New.
7350 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
7351 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
7352 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
7353 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
7354 OPT_mavx512pf, OPT_mavx512er cases.
7355 * config/i386/constraints.md (v): New constraint.
7356 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
7357 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
7358 (bit_AVX512CD): New.
7359 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7360 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
7361 * config/i386/i386-c.c (ix86_target_macros_internal):
7362 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
7363 __AVX512PF__.
7364 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
7365 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
7366 * config/i386/i386.c (regclass_map, dbx_register_map)
7367 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
7368 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
7369 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
7370 -mavx512pf options.
7371 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
7372 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
7373 -mavx512pf options. Fix formatting.
7374 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
7375 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
7376 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
7377 -mavx512cd, -mavx512pf options.
7378 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
7379 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
7380 (ix86_preferred_output_reload_class): Replace SSE_REGS with
7381 ALL_SSE_REGS.
7382 (ix86_hard_regno_mode_ok): Support 512-bit registers.
7383 (ix86_set_reg_reg_cost): Ditto.
7384 (x86_order_regs_for_local_alloc): Ditto.
7385 (MAX_VECT_LEN): Extend to 64-byte.
7386 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
7387 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
7388 (TARGET_AVX512ER, TARGET_AVX512CD): New.
7389 (BIGGEST_ALIGNMENT): Extend to 512-bits.
7390 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
7391 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
7392 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
7393 (SSE_REG_MODE_P): Support new modes.
7394 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
7395 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
7396 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
7397 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
7398 (REG_CLASS_CONTENTS): Add new registers.
7399 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
7400 (EXT_REX_SSE_REGNO_P): New.
7401 (HI_REGISTER_NAMES): Add new registers.
7402 * config/i386/i386.md: Define constants for new registers.
7403 (mode): Add new 512-bit modes.
7404 (prefix): Support evex prefix.
7405 (isa): Support avx512f, noavx512f, fma_avx512f.
7406 (ssemodesuffix): Add new 512-bit modes.
7407 (movxi): New.
7408 (*movxi_internal_avx512f): Ditto.
7409 (*movdi_internal): Replace constraint "x" with the new constraint "v".
7410 Support MODE_XI.
7411 (*movsi_internal): Likewise.
7412 (*movdf_internal): Likewise.
7413 (*movsf_internal): Likewise.
7414 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
7415 (<code><mode>3): Likewise.
5339fc0c
UB
7416 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
7417 New.
3f97cb0b
AI
7418 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
7419 with the new constraint "v".
7420 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
7421 modes.
7422 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
7423 with the new constraint "v".
7424 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
7425 (<sse2>_storedqu<avxsizesuffix>): Likewise.
7426 (*<plusminus_insn><mode>3): Likewise.
7427 (<sse>_vm<plusminus_insn><mode>3): Likewise.
7428 (*mul<mode>3): Likewise.
7429 (<sse>_vmmul<mode>3): Likewise.
7430 (<sse>_div<mode>3): Likewise.
7431 (<sse>_vmdiv<mode>3): Likewise.
7432 (<sse>_sqrt<mode>2): Likewise.
7433 (<sse>_vmsqrt<mode>2): Likewise.
7434 (*<code><mode>3_finite): Likewise.
7435 (*<code><mode>3) <smaxmin>: Likewise.
7436 (<sse>_vm<code><mode>3): Likewise.
7437 (*<code><mode>3) <any_logic>: Likewise.
7438 (*fma_fmadd_<mode>): Likewise.
7439 (*fma_fmsub_<mode>): Likewise.
7440 (*fma_fnmadd_<mode>): Likewise.
7441 (*fma_fnmsub_<mode>): Likewise.
7442 (*fma_fmaddsub_<mode>): Likewise.
7443 (*fma_fmsubadd_<mode>): Likewise.
7444 (*fmai_fmadd_<mode>): Likewise.
7445 (*fmai_fmsub_<mode>): Likewise.
7446 (*fmai_fnmadd_<mode>): Likewise.
7447 (*fmai_fnmsub_<mode>): Likewise.
7448 (sse_cvtsi2ss): Likewise.
7449 (sse_cvtsi2ssq): Likewise.
7450 (sse_cvtss2si): Likewise.
7451 (sse_cvtss2si_2): Likewise.
7452 (sse_cvtss2siq): Likewise.
7453 (sse_cvtss2siq_2): Likewise.
7454 (sse_cvttss2si): Likewise.
7455 (sse_cvtss2siq_2): Likewise.
7456 (float<sseintvecmodelower><mode>2): Likewise.
7457 (sse2_cvtsd2si_2): Likewise.
7458 (sse2_cvtsd2siq_2): Likewise.
7459 (*<plusminus_insn><mode>3): Likewise.
7460 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
7461 (*<sse4_1_avx2>_mul<mode>3): Likewise.
7462 (ashr<mode>3): Likewise.
7463 (<shift_insn><mode>3): Likewise.
7464 (avx2_<code><mode>3): Likewise.
7465 (*avx2_<code><mode>3): Likewise.
7466 (*andnot<mode>3): Likewise.
7467 (*<code><mode>3) <any_logic>: Likewise.
7468 (abs<mode>2): Likewise.
7469 (avx2_permvar<mode>): Likewise.
7470 (avx2_perm<mode>_1): Likewise.
7471 (*avx_vpermilp<mode>): Likewise.
7472 (avx_vpermilvar<mode>3): Likewise.
7473 (avx2_ashrv<mode>): Likewise.
7474 (avx2_<shift_insn>v<mode>): Likewise.
7475 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
7476 -mavx512cd.
7477 * doc/rtl.texi: Document XImode.
7478
dd5e8423
JL
74792013-08-21 Jeff Law <law@redhat.com>
7480
b9ebee5d
JL
7481 * tree-flow.h (register_jump_thread): Pass vector of edges
7482 instead of each important edge.
7483 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
7484 thread path into a vector and pass that to register_jump_thread.
7485 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
7486 passed in edge vector to the current 3-edge form.
7487
dd5e8423
JL
7488 Revert:
7489 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
7490
9bb6628e 7491 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
7492 delete_unmarked_insns removed anything.
7493
445dc8df
JR
74942013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
7495
7496 * reload.h (struct reg_equivs): Rename to ..
7497 (struct reg_equivs_s): .. this.
7498
e0df53dd
ML
74992013-08-20 Martin Liska <marxin.liska@gmail.com>
7500
7501 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
7502
e7d1d3eb
RO
75032013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7504
5339fc0c 7505 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 7506
5562e26e
JL
75072013-08-21 Jeff Law <law@redhat.com>
7508
7509 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
7510 simplify assignments too. If the RHS collapses to a singleton
7511 range, then return the value for the range.
7512
c7ecdec6
KY
75132013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
7514
7a5911d3
UB
7515 * config/i386/sse.md (V16): Rename to...
7516 (VMOVE): this.
7517 (mov<mode>): Update iterator name.
7518 (*mov<mode>_internal): Ditto.
7519 (push<mode>1): Ditto.
7520 (movmisalign<mode>): Ditto.
c7ecdec6 7521
bfa3b50a
JH
75222013-08-20 Jan Hubicka <jh@suse.cz>
7523
7524 PR bootstrap/58186
7525 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
7526 entry for direct edges.
7527 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
7528
6cd4d135
DM
75292013-08-20 David Malcolm <dmalcolm@redhat.com>
7530
7531 Revert my last two changes, r201865 and r201864:
7532
7533 Revert r201865:
7534 2013-08-20 David Malcolm <dmalcolm@redhat.com>
7535
7536 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
7537 instances can own GC refs.
7538
7539 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
7540 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
7541 (gcc::context::gt_pch_nx): Likewise.
7542 (gcc::context::gt_pch_nx): Likewise.
7543 * ggc.h (gt_ggc_mx <T>): New.
7544 (gt_pch_nx_with_op <T>): New.
7545 (gt_pch_nx <T>): New.
7546 * passes.c (opt_pass::gt_ggc_mx): New.
7547 (opt_pass::gt_pch_nx): New.
7548 (opt_pass::gt_pch_nx_with_op): New.
7549 (pass_manager::gt_ggc_mx): New.
7550 (pass_manager::gt_pch_nx): New.
7551 (pass_manager::gt_pch_nx_with_op): New.
7552 (pass_manager::operator new): Use
7553 ggc_internal_cleared_alloc_stat rather than xcalloc.
7554 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
7555 (pass_manager::gt_ggc_mx): New.
7556 (pass_manager::gt_pch_nx): New.
7557 (pass_manager::gt_pch_nx_with_op): New.
7558 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
7559 (opt_pass::operator new): New.
7560 (opt_pass::gt_ggc_mx): New.
7561 (opt_pass::gt_pch_nx): New.
7562 (opt_pass::gt_pch_nx_with_op): New.
7563
7564 Revert r201864:
7565 2013-08-20 David Malcolm <dmalcolm@redhat.com>
7566
7567 * Makefile.in (GTFILES): Add context.h.
7568 * context.c (gcc::context::operator new): New.
7569 (gcc::context::gt_ggc_mx): New.
7570 (gcc::context::gt_pch_nx): New.
7571 (gcc::context::gt_pch_nx): New.
7572 * context.h (gcc::context): Add GTY((user)) marking.
7573 (gcc::context::operator new): New.
7574 (gcc::context::gt_ggc_mx): New.
7575 (gcc::context::gt_pch_nx): New.
7576 (gcc::context::gt_pch_nx): New.
7577 (g): Add GTY marking.
7578 (gt_ggc_mx (gcc::context *)): New.
7579 (gt_pch_nx (gcc::context *)): New.
7580 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
7581 void *cookie)): New.
7582 * gengtype.c (open_base_files) <ifiles>: Add context.h.
7583
a046136a
AM
75842013-08-20 Alexey Makhalov <makhaloff@gmail.com>
7585
7586 * dce.c (fini_dce): Call df_analyze again just in case
7587 delete_unmarked_insns removed anything.
7588
67598720
TJ
75892013-08-20 Teresa Johnson <tejohnson@google.com>
7590
7591 PR rtl-optimizations/57451
7592 * final.c (reemit_insn_block_notes): Prevent lexical blocks
7593 from crossing split section boundaries.
7594
f8693faf
MGD
75952013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
7596
7597 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
7598 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
7599 with MULTLIB_DEFAULTS.
7600
7d0b9a9c
NC
76012013-08-20 Nick Clifton <nickc@redhat.com>
7602
7603 * target.def (narrow_volatile_bitfield): Note that the default
7604 value is false, not !TARGET_STRICT_ALIGN.
7605 * doc/tm.texi: Regenerate.
7606
8edb8dc8
PC
76072013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
7608
7609 Fix LIB_SPEC for systems without libpthread.
7610
7611 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
7612 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
7613 for Android.
7614 * config/i386/linux-common.h: Likewise.
7615 * config/mips/linux-common.h: Likewise.
7616
12211b99 76172013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
7618
7619 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
7620 checks.
7621
e42c64cb
DM
76222013-08-20 David Malcolm <dmalcolm@redhat.com>
7623
7624 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
7625 instances can own GC refs.
7626
7627 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
7628 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
7629 (gcc::context::gt_pch_nx): Likewise.
7630 (gcc::context::gt_pch_nx): Likewise.
7631 * ggc.h (gt_ggc_mx <T>): New.
7632 (gt_pch_nx_with_op <T>): New.
7633 (gt_pch_nx <T>): New.
7634 * passes.c (opt_pass::gt_ggc_mx): New.
7635 (opt_pass::gt_pch_nx): New.
7636 (opt_pass::gt_pch_nx_with_op): New.
7637 (pass_manager::gt_ggc_mx): New.
7638 (pass_manager::gt_pch_nx): New.
7639 (pass_manager::gt_pch_nx_with_op): New.
7640 (pass_manager::operator new): Use
7641 ggc_internal_cleared_alloc_stat rather than xcalloc.
7642 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
7643 (pass_manager::gt_ggc_mx): New.
7644 (pass_manager::gt_pch_nx): New.
7645 (pass_manager::gt_pch_nx_with_op): New.
7646 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
7647 (opt_pass::operator new): New.
7648 (opt_pass::gt_ggc_mx): New.
7649 (opt_pass::gt_pch_nx): New.
7650 (opt_pass::gt_pch_nx_with_op): New.
7651
910c02a0
DM
76522013-08-20 David Malcolm <dmalcolm@redhat.com>
7653
7654 * Makefile.in (GTFILES): Add context.h.
7655 * context.c (gcc::context::operator new): New.
7656 (gcc::context::gt_ggc_mx): New.
7657 (gcc::context::gt_pch_nx): New.
7658 (gcc::context::gt_pch_nx): New.
7659 * context.h (gcc::context): Add GTY((user)) marking.
7660 (gcc::context::operator new): New.
7661 (gcc::context::gt_ggc_mx): New.
7662 (gcc::context::gt_pch_nx): New.
7663 (gcc::context::gt_pch_nx): New.
7664 (g): Add GTY marking.
7665 (gt_ggc_mx (gcc::context *)): New.
7666 (gt_pch_nx (gcc::context *)): New.
7667 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
7668 void *cookie)): New.
7669 * gengtype.c (open_base_files) <ifiles>: Add context.h.
7670
af4b4236
AM
76712013-08-20 Alan Modra <amodra@gmail.com>
7672
7673 PR target/57865
7674 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
7675 (rs6000_emit_epilogue): Likewise.
7676
12211b99 76772013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
7678
7679 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
7680
e2323f5b
PB
76812013-08-19 Peter Bergner <bergner@vnet.ibm.com>
7682 Jakub Jelinek <jakub@redhat.com>
7683
7684 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
7685 (BUILT_IN_FABSD64): Likewise.
7686 (BUILT_IN_FABSD128): Likewise.
7687 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
7688 (fold_builtin_1): Likewise.
5339fc0c
UB
7689 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
7690 destination and source operands.
e2323f5b
PB
7691 (*abstd2_fpr): Likewise.
7692 (*nabstd2_fpr): Likewise.
7693
cfbf3ee8
RS
76942013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
7695
7696 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
7697 JUMP_P and INSN_P.
7698
d3136aeb
AH
76992013-08-19 Aldy Hernandez <aldyh@redhat.com>
7700
7701 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
7702 incomplete.
7703
d33d9e47
AI
77042013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
7705
7706 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
7707 * builtins.c (default_libc_has_function): New.
7708 (gnu_libc_has_function): Ditto.
7709 (no_c99_libc_has_function): Ditto.
7710 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
7711 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
7712 (fold_builtin_sincos): Likewise.
7713 (fold_builtin_cexp): Likewise.
7714 * builtins.def (DEF_C94_BUILTIN): Likewise.
7715 (DEF_C99_BUILTIN): Likewise.
7716 (DEF_C99_C90RES_BUILTIN): Likewise.
7717 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
7718 definitions to using this define.
7719 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 7720 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
7721 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
7722 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
7723 * config/darwin.h: Ditto.
7724 * config/elfos.h: Ditto.
7725 * config/freebsd.h: Ditto.
7726 * config/i386/cygming.h: Ditto.
7727 * config/i386/djgpp.h: Ditto.
7728 * config/i386/i386-interix.h: Ditto.
7729 * config/microblaze/microblaze.h: Ditto.
7730 * config/mmix/mmix.h: Ditto.
7731 * config/gnu-user.h: Ditto.
7732 * config/ia64/hpux.h: Ditto.
7733 * config/pa/pa-hpux.h: Ditto.
7734 * config/pdp11/pdp11.h: Ditto.
7735 * config/picochip/picochip.h: Ditto.
7736 * config/linux.h: Ditto.
7737 * config/netbsd.h: Ditto.
7738 * config/openbsd.h: Ditto.
7739 * config/rs6000/aix43.h: Ditto.
7740 * config/rs6000/aix51.h: Ditto.
7741 * config/rs6000/aix52.h: Ditto.
7742 * config/rs6000/aix53.h: Ditto.
7743 * config/rs6000/aix61.h: Ditto.
7744 * config/rs6000/darwin.h: Ditto.
7745 * config/rs6000/linux.h: Ditto.
7746 * config/rs6000/linux64.h: Ditto.
7747 * config/s390/tpf.h: Ditto.
7748 * config/sol2-10.h: Ditto.
7749 * config/sol2.h: Ditto.
7750 * config/vms/vms.h: Ditto.
7751 * config/vxworks.h: Ditto.
7752 * config/linux-android.c (linux_android_libc_has_function):
7753 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
7754 * config/linux-protos.h (linux_android_libc_has_function):
7755 New declaration.
7756 * config/i386/i386.c (ix86_libc_has_function): New.
7757 * config/i386/i386-protos.h
7758 (ix86_libc_has_function): New declaration.
7759 * config/i386/i386.md
7760 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
7761 ("isinf<mode>2): Likewise.
7762 * convert.c (convert_to_integer): Using new target hook
7763 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
7764 TARGET_C99_FUNCTIONS.
7765 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
7766 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
7767 * coretypes.h (function_class): New enum for different
7768 classes of functions.
7769 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
7770 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
7771 (TARGET_HAS_SINCOS): Likewise.
7772 (TARGET_LIBC_HAS_FUNCTION): New.
7773 * doc/tm.texi: Regenerated.
7774 * targhooks.h (default_libc_has_function): New declaration.
7775 (no_c99_libc_has_function): Ditto.
7776 (gnu_libc_has_function): Ditto.
7777 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
7778 and TARGET_HAS_SINCOS.
7779
eefe9a99
JH
77802013-08-18 Jan Hubicka <jh@suse.cz>
7781
7782 * Makeifle-in (ipa-devirt.o): New.
7783 (GTFILES): Add ipa-utils.h and ipa-devirt.c
7784 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
7785 (analyze_functions): Look into possible targets of polymorphic call.
7786 * dumpfile.c (dump_files): Add type-inheritance dump.
7787 * dumpfile.h (TDI_inheritance): New.
7788 * ipa-devirt.c: New file.
7789 * ipa-utils.h (odr_type_d): Forward declare.
7790 (odr_type): New type.
7791 (build_type_inheritance_graph): Declare.
7792 (possible_polymorphic_call_targets): Declare and introduce inline
7793 variant when only edge is pased.
7794 (dump_possible_polymorphic_call_targets): Likewise.
7795 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
7796 * tree.c (type_in_anonymous_namespace_p): Break out from ...
7797 (types_same_for_odr): ... here.
7798 * tree.h (type_in_anonymous_namespace_p): Declare.
7799
29b89442
JJ
78002013-08-18 Jakub Jelinek <jakub@redhat.com>
7801
7802 PR tree-optimization/58006
7803 * tree-parloops.c (take_address_of): Don't ICE if get_name
7804 returns NULL.
7805 (eliminate_local_variables_stmt): Remove clobber stmts.
7806
4f219961
EB
78072013-08-18 Eric Botcazou <ebotcazou@adacore.com>
7808
7809 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
7810 error message is issued for an alias to undefined symbol.
7811
1d5755ef
JH
78122013-08-18 Jan Hubicka <jh@suse.cz>
7813
7814 * cgraph.c (cgraph_create_indirect_edge): Discover
7815 polymorphic calls and record basic info into indirect_info.
7816 * gimple-fold.c (gimple_fold_call): When doing BINFO based
7817 devirtualization, ignore objc function calls.
7818 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
7819 call with no parm index info.
7820 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
7821 * tree.c (virtual_method_call_p): New function.
7822 * tree.h (virtual_method_call_p): Declare.
7823
5945bebf
JH
78242013-08-16 Jan Hubicka <jh@suse.cz>
7825
7826 PR middle-end/58179
7827 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
7828
47fa5d23
DE
78292013-08-16 David Edelsohn <dje.gcc@gmail.com>
7830
7831 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
7832 attribute.
7833
c74f54a0
DM
78342013-08-16 David Malcolm <dmalcolm@redhat.com>
7835
7836 * gengtype.c (type_for_name): Add special-case support for
7837 locating types within the "gcc::" namespace.
7838 (open_base_files): Emit a "using namespace gcc" directive.
7839
f758f299
MM
78402013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
7841
7842 PR target/58160
7843 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
7844 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
7845
7846 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
7847 array instead of each individual operand as a separate argument.
7848 (emit_fusion_gpr_load): Likewise.
7849 (expand_fusion_gpr_load): Add new function declaration.
7850
7851 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
7852 signature to have the operands passed as an array, instead of as
7853 separate arguments. Allow ZERO_EXTEND to be in the memory
7854 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
7855 depend on the register live/dead flags when peepholes are run.
7856 (expand_fusion_gpr_load): New function to be called from the
7857 peephole2 pass, to change the register that addis sets to be the
7858 target register.
7859 (emit_fusion_gpr_load): Change the calling signature to have the
7860 operands passed as an array, instead of as separate arguments.
7861 Allow ZERO_EXTEND to be in the memory address, and also
7862 SIGN_EXTEND if -mpower8-fusion-sign.
7863
7864 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
7865 unspec enumeration.
7866 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
7867 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 7868 depend on the register live/dead state when the peephole pass is done.
f758f299 7869
158f4e4f
DM
78702013-08-16 David Malcolm <dmalcolm@redhat.com>
7871
7872 * gengtype.c (create_user_defined_type): Ensure that the kind
7873 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
7874 declaration is seen before the GTY((user)) marking.
7875
22f8cea5
BE
78762013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
7877
7878 PR target/58105
7879 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
7880
c49bdb2e
JH
78812013-08-16 Jan Hubicka <jh@suse.cz>
7882
7883 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
7884 arugment expected_type.
7885 (gimple_fold_call): Use it.
7886 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
7887 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 7888 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
7889 (try_make_edge_direct_virtual_call): Likewise.
7890 * tree.c (obj_type_ref_class): New.
7891 * tree.h (obj_type_ref_class): Use it.
7892
4042dca9
GDR
78932013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
7894
7895 * sched-vis.c (rtl_slim_pp_initialized): Remove.
7896 (rtl_slim_pp): Likewise.
7897 (init_rtl_slim_pretty_print): Likewise.
7898 (dump_value_slim): Don't call it. Use local pretty printer.
7899 (dump_insn_slim): Likewise.
7900 (dump_rtl_slim): Likewise.
7901 (str_pattern_slim): Likewise.
7902 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
7903 Simplify.
7904
7a460594
JJ
79052013-08-16 Jakub Jelinek <jakub@redhat.com>
7906
639dc669
JJ
7907 PR tree-optimization/58164
7908 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
7909 walk gimple_goto_dest of GIMPLE_GOTO.
7910
7a460594
JJ
7911 PR tree-optimization/58165
7912 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
7913 bi_call must be the last stmt in a bb, don't split_block, instead
7914 use fallthru edge from it and give up if there is none.
7915 Release conds vector when returning early.
7916
e3c02cc7
XDL
79172013-08-14 Xinliang David Li <davidxl@google.com>
7918
7919 * config/i386/i386.c (ix86_option_override_internal):
7920 Remove unused variable and field.
7921
6469da2c
BS
79222013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7923
7924 PR target/57949
22f8cea5 7925 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
7926 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
7927 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
7928 and Linux, correct BLKmode alignment when 128-bit alignment is
7929 required and compatibility flag is not set.
22f8cea5
BE
7930 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
7931 for zero-size arguments when compatibility flag is not set.
6469da2c 7932
4ca890e2
JJ
79332013-08-14 Jakub Jelinek <jakub@redhat.com>
7934
7935 PR tree-optimization/58145
7936 * tree-sra.c (build_ref_for_offset): If prev_base has
7937 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
7938
daec1759 79392013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 7940
daec1759 7941 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 7942 Fix uninitialized variable error.
daec1759 7943
3ad20bd4
XDL
79442013-08-14 Xinliang David Li <davidxl@google.com>
7945
7946 * config/i386/i386.opt: Define two new options.
7947 * config/i386/x86-tune.def: Add arch selector field in macros.
7948 * config/i386/i386.h: Adjust macro definition.
7949 * config/i386/i386.c (ix86_option_override_internal):
7950 Refactor the code.
7951 (parse_mtune_ctrl_str): New function.
7952 (set_ix86_tune_features): New function.
7953 (ix86_function_specific_restore): Call the new helper function.
7954
e839e2a9
AB
79552013-08-14 Andrey Belevantsev <abel@ispras.ru>
7956
7957 PR rtl-optimization/57662
7958 * sel-sched.c (code_motion_process_successors): When the current insn
7959 is removed after the recursive traversal, break from the loop.
7960 Add comments and debug printouts.
7961
27ed665f
JJ
79622013-08-14 Jakub Jelinek <jakub@redhat.com>
7963 Alexandre Oliva <aoliva@redhat.com>
7964
7965 PR target/58067
7966 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
7967 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
7968 there also UNSPEC_PLTOFF.
7969
61c1a609
MP
79702013-08-14 Marek Polacek <polacek@redhat.com>
7971
7972 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
7973 NUM_CONDITIONS bit positions.
7974
0e901c67
CC
79752013-08-13 Cary Coutant <ccoutant@google.com>
7976
7977 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
7978 (attr_checksum): Hash vector contents instead of pointer.
7979 (attr_checksum_ordered): Likewise.
7980
061eff6d
UB
79812013-08-13 Uros Bizjak <ubizjak@gmail.com>
7982
7983 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
7984 when Pmode != word_mode. Add length_address attribute.
7985 (sse3_monitor_<mode>): Merge from sse3_monitor and
7986 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
7987 Pmode != word_mode. Update insn length attribute.
7988 * config/i386/i386.c (ix86_option_override_internal): Update
7989 ix86_gen_monitor selection for merged sse3_monitor insn.
7990
8ec9249b
JB
79912013-08-13 Julian Brown <julian@codesourcery.com>
7992
7993 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7994 perform invalid legitimization on greater-than-word-size modes for
7995 TARGET_E500_DOUBLE.
7996
761a8eb7
VM
79972013-08-13 Vladimir Makarov <vmakarov@redhat.com>
7998
7999 * ira.c (setup_class_translate_array): Use aclass instead of cl
8000 for classes not fully covered by allocno classes.
8001
99c2bd54
JJ
80022013-08-13 Jakub Jelinek <jakub@redhat.com>
8003
4029a5e0
JJ
8004 PR tree-optimization/57661
8005 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
8006 * tree-inline.c (tree_function_versioning): Initialize it.
8007 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
8008 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
8009 that is not being copied.
8010
99c2bd54
JJ
8011 PR sanitizer/56417
8012 * asan.c (instrument_strlen_call): Fix typo in comment.
8013 Use char * type even for the lhs of POINTER_PLUS_EXPR.
8014
b5f8f063
SE
80152013-08-13 Steve Ellcey <sellcey@mips.com>
8016
8017 * config/mips/mips.md (prefetch): Use lw instead of ld on
8018 loongson in 32bit mode.
8019
4de80584
NC
80202013-08-13 Nick Clifton <nickc@redhat.com>
8021
8022 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
8023
09ce3660
JH
80242013-08-13 Jan Hubicka <jh@suse.cz>
8025
8026 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
8027 introduced edge; fix typo in sanity check.
8028 (cgraph_resolve_speculation): Export; improve diagnostic.
8029 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
8030 speculation at type mismatch.
8031 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
8032 (cgraph_resolve_speculation): Declare.
8033 (symtab_can_be_discarded): New function.
8034 * value-prof.c (gimple_ic_transform): Remove actual transform code.
8035 * ipa-inline-transform.c (speculation_removed): New global var.
8036 (clone_inlined_nodes): See if speculation can be removed.
8037 (inline_call): If speculations was removed, we growths may not match.
8038 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
8039 (speculation_useful_p): New function.
8040 (resolve_noninline_speculation): New function.
8041 (inline_small_functions): Resolve useless speculations.
8042 * ipa-inline.h (speculation_useful_p): Declare
8043 * ipa.c (can_replace_by_local_alias): Simplify.
8044 (ipa_profile): Produce speculative calls in non-lto, too;
8045 add simple cost model; produce local aliases.
8046
f971dc24
DM
80472013-08-13 David Malcolm <dmalcolm@redhat.com>
8048
8049 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 8050 PASS_MANAGER_H.
f971dc24 8051
2e507b9a
PC
80522013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
8053
8054 * config/i386/i386.c (ix86_function_versions): Use error + inform.
8055
c97fd4b8
UB
80562013-08-12 Uros Bizjak <ubizjak@gmail.com>
8057
8058 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
8059 iterator instead of X87MODEF.
8060
80612013-08-12 Perez Read <netfirewall@gmail.com>
8062
8063 PR target/58132
8064 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
8065 operand 0 for intel asm alternative.
8066 (*movabs<mode>_2): Ditto for operand 1.
8067
f4f4204c
JG
80682013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
8069
8070 * config/aarch64/arm_none.h
8071 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
8072
133b1a8e
NC
80732013-08-12 Nick Clifton <nickc@redhat.com>
8074
8075 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
8076
15dd8b3a
YR
80772013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
8078
8079 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
8080 expand for QI/HImode operand to produce more effictive code for
8081 unsigned char(short) --> float(double) conversion.
8082
94109a6a
AM
80832013-08-12 Alexander Monakov <amonakov@ispras.ru>
8084
8085 * doc/invoke.texi: Mention that -ftls-model does not force the final
8086 model.
8087
4e115102
MP
80882013-08-12 Marek Polacek <polacek@redhat.com>
8089 Marc Glisse <marc.glisse@inria.fr>
8090
8091 PR tree-optimization/57980
8092 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
8093 when creating -1 constant.
8094
748d71f3
JH
80952013-08-10 Jan Hubicka <jh@suse.cz>
8096
1f97e193 8097 Workaround binutils PR14342.
748d71f3
JH
8098 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
8099 (gimple_init_edge_profiler): Likewise.
8100 (gimple_gen_ic_func_profiler): Likewise.
8101
5979aa54
JH
81022013-08-09 Jan Hubicka <jh@suse.cz>
8103
8104 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
8105
ad83025e
XDL
81062013-08-09 Xinliang David Li <davidxl@google.com>
8107
8108 * config/i386/stringop.def: New file.
8109 * config/i386/stringop.opt: New file.
8110 * config/i386/i386-opts.h: Include stringopt.def.
8111 * config/i386/i386.opt: Include stringopt.opt.
8112 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 8113 Override default size based stringop inline strategies with options.
ad83025e
XDL
8114 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
8115 New function.
8116
e59df5fd
JH
81172013-08-09 Jan Hubicka <jh@suse.cz>
8118
c97fd4b8 8119 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 8120
634ab819
JH
81212013-08-09 Jan Hubicka <jh@suse.cz>
8122
8123 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
8124 CGRAPH_FREQ_MAX.
8125 (dump_cgraph_node): Dump profile-id.
8126 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
8127 and common_target_probability.
8128 * lto-cgraph.c (lto_output_edge): Stream common targets.
8129 (lto_output_node): Stream profile ids.
8130 (input_node): Stream profile ids.
8131 (input_edge): Stream common targets.
8132 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
8133 * ipa.c: Include value-prof.h
8134 (ipa_profile_generate_summary): Turn indirect call statement histograms
8135 into common targets.
8136 (ipa_profile): Turn common targets into speculative edges.
8137
2fa3d31b
JH
81382013-08-09 Jan Hubicka <jh@suse.cz>
8139
8140 * cgraph.h (cgraph_node): Add profile_id.
8141 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 8142 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
8143 (del_node_map): Update.
8144 (find_func_by_funcdef_no): Replace by ...
8145 (find_func_by_profile_id): ... this one.
8146 (gimple_ic_transform): Do not remove useful histograms when
8147 speculation is not done; dump info when indirect call removal
8148 can happen at LTO.
8149 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
8150 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
8151 (__gcov_indirect_call_profiler_v2): .. this one.
8152 * profile.h (init_node_map): Update.
8153 * coverage.c (coverage_compute_profile_id): New function.
8154 * coverage.h (coverage_compute_profile_id): Declare.
8155 * tree-profile.c (init_ic_make_global_vars): Make
8156 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
8157 (gimple_init_edge_profiler): Update prototype of
8158 __gcov_indirect_call_profiler.
8159 (gimple_gen_ic_func_profiler): Simplify.
8160 (tree_profiling): Use init_node_map
8161
042ae7d2
JH
81622013-08-09 Jan Hubicka <jh@suse.cz>
8163
c97fd4b8
UB
8164 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
8165 non-speculative refs.
042ae7d2
JH
8166 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
8167 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
8168 (cgraph_set_call_stmt): Likewise.
8169 (cgraph_create_edge_1): Fix release checking compilatoin;
8170 clear lto_stmt_uid.
8171 (cgraph_free_edge): Free indirect info.
8172 (cgraph_turn_edge_to_speculative): New function.
8173 (cgraph_speculative_call_info): New function.
8174 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 8175 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
8176 (dump_cgraph_node): Dump speculation.
8177 (verify_edge_count_and_frequency): Accept speculative edges.
8178 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
8179 (verify_cgraph_node): Handle speculation.
8180 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
8181 (cgraph_set_call_stmt): Update prototype.
8182 (cgraph_make_edge_direct): Update prototype.
8183 (cgraph_speculative_call_info): Declare.
8184 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
8185 to change; update call of ipa_find_references.
8186 * ipa-ref.c (ipa_record_reference): Fix return value; clear
8187 lto_stmt_uid and speculative flags.
8188 (ipa_dump_references): Dump speculation.
8189 (ipa_clone_references): Clone speculative flag.
8190 (ipa_clone_referring): Likewise.
8191 (ipa_clone_ref): New function.
8192 (ipa_find_reference): Look into lto_stmt_uids
8193 (ipa_clear_stmts_in_references): Do not clear speculative calls.
8194 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
8195 (ipa_find_reference): Update declaration.
8196 (ipa_clone_ref): Declare.
8197 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
8198 stream speculative flag.
8199 (lto_output_ref): Stream statements uids and speculation.
8200 (input_ref): Likewise.
8201 (input_edge): Stream speuclation.
8202 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
8203 (cgraph_set_call_stmt_including_clones): Handle speculation.
8204 * ipa-inline.c (heap_edge_removal_hook): New function.
8205 (inline_small_functions): Register it.
8206 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
8207 also initialize refs.
8208 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
8209 edge to change.
8210 (try_make_edge_direct_simple_call): Likewise.
8211 (try_make_edge_direct_simple_call): Likewise.
8212 (update_indirect_edges_after_inlining): Likewise.
8213 (remove_described_reference): Look proper lto_stmt_uid.
8214 (propagate_controlled_uses): Likewise.
8215 (propagate_controlled_uses): Liekwise.
8216 * tree-inline.c (copy_bb): Copy speculative edges.
8217 (redirect_all_calls): New function.
c97fd4b8
UB
8218 (copy_cfg_body): Do redirection after loop info is updated.
8219 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 8220
aa1e10cc
JH
82212013-08-09 Jan Hubicka <jh@suse.cz>
8222
8223 * lto-streamer-out.c (output_function): Renumber PHIs.
8224 * lto-streamer-in.c (input_function): Likewise.
8225
66adb8eb
JG
82262013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
8227
8228 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
8229 (get_lane_unsigned): Likewise.
8230 (dup_lane_scalar): Likewise.
8231 (get_lane): enable for VALL.
8232 * config/aarch64/aarch64-simd.md
8233 (aarch64_dup_lane_scalar<mode>): Remove.
8234 (aarch64_get_lane_signed<mode>): Likewise.
8235 (aarch64_get_lane_unsigned<mode>): Likewise.
8236 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
8237 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
8238 (aarch64_get_lane<mode>): Enable for all vector modes.
8239 (aarch64_get_lanedi): Remove misleading constraints.
8240 * config/aarch64/arm_neon.h
8241 (__aarch64_vget_lane_any): Define.
8242 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
8243 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
8244 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
8245 * config/aarch64/iterators.md (VDQQH): New.
8246 (VDQQHS): Likewise.
8247 (vwcore): Likewise.
8248
1f65ae7a
EB
82492013-08-09 Eric Botcazou <ebotcazou@adacore.com>
8250
8251 * configure.ac: Add GAS check for LEON instructions on SPARC.
8252 * configure: Regenerate.
8253 * config.in: Likewise.
8254 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
8255 sparc*-*-* block.
8256 * config/sparc/sparc.opt (LEON, LEON3): New masks.
8257 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
8258 for LEON or LEON3.
8259 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
8260 (AS_LEON_FLAG): New macro.
8261 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
8262 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
8263 Deal with LEON and LEON3 for the memory model.
23a6cb78 8264 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
8265 (atomic_compare_and_swap<mode>_1): Likewise.
8266 (*atomic_compare_and_swap<mode>_1): Likewise.
8267
ff522f7f
ZC
82682013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8269
8270 * config/arm/neon.md (vcond): Fix floating-point vector
8271 comparisons against 0.
8272
cb1cca12
VM
82732013-08-08 Vladimir Makarov <vmakarov@redhat.com>
8274
8275 * lra-constraints.c (emit_spill_move): Remove assert.
8276 (process_alt_operands): Add more debugging
8277 output. Increase reject for spilling into memory. Decrease
8278 reject for reloading scratch.
8279 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
8280
a3719e31
SE
82812013-08-08 Steve Ellcey <sellcey@mips.com>
8282
8283 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
8284 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
8285 micromips incompatible. Add nan2008.
8286 (MULTILIB_DIRNAMES): Add nan2008.
8287 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
8288 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
8289 and micromips incompatible. Add nan2008.
8290 (MULTILIB_DIRNAMES): Add nan2008.
8291 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
8292
f40423e2
RS
82932013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
8294
8295 PR rtl-optimization/58079
8296 * combine.c (combine_simplify_rtx): Avoid using SUBST if
8297 simplify_comparison has widened a comparison with an integer.
8298
869b9125
KT
82992013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8300
8301 * config/arm/neon.md (movmisalign<mode>): Disable when we
8302 don't allow unaligned accesses.
8303 (*movmisalign<mode>_neon_store): Likewise.
8304 (*movmisalign<mode>_neon_load): Likewise.
8305 (*movmisalign<mode>_neon_store): Likewise.
8306 (*movmisalign<mode>_neon_load): Likewise.
8307
71cafea9
JH
83082013-08-08 Jan Hubicka <jh@suse.cz>
8309
8310 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
8311 (make_pass_rebuild_cgraph_edges): Also clear references.
8312 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
8313 * ipa-inline-transform.c (inline_transform): Remove all references
8314 after inlining.
c97fd4b8
UB
8315 * cgraphunit.c (expand_function): Remove all references after
8316 expansion.
71cafea9
JH
8317 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
8318 (ipa_find_reference): Rewrite to iterator.
8319 (remove_stmt_references): Likewise.
8320 (ipa_clear_stmts_in_references): New function.
8321 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
8322 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
8323 clear references.
71cafea9
JH
8324 * ipa-split.c (split_function): Remove references in split function.
8325
27d2e612
RE
83262013-08-08 Richard Earnshaw <rearnsha@arm.com>
8327
8328 PR target/57431
1f65ae7a 8329 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
8330 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
8331
5efc661c
RE
83322013-08-08 Richard Earnshaw <rearnsha@arm.com>
8333
8334 PR target/56979
1f65ae7a 8335 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
8336 suggested mode for the assignment isn't compatible with the
8337 registers required.
8338
f276d31d
BE
83392013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
8340
8341 PR target/58065
8342 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
8343
4b8bc035
XDL
83442013-08-07 Xinliang David Li <davidxl@google.com>
8345
8346 * config/i386/i386.opt: New option -mtune-ctrl=.
8347 * config/i386/x86-tune.def: New file.
8348 * config/i386/i386.h: include x86-tune.def.
8349 * config/i386/i386.c (ix86_option_override_internal):
8350 Parsing -mtune-ctrl= option and set tune features.
8351
12211b99 83522013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
8353
8354 PR other/12081
03b0ee0a 8355 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
8356 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
8357 to gen_2arg_fn_t.
8358
5cf6635b
EB
83592013-08-07 Eric Botcazou <ebotcazou@adacore.com>
8360
8361 * rtl.h (update_alignments): Declare.
8362 * final.c (grow_label_align): New function extracted from...
8363 (shorten_branches): ...here. Call it.
8364 (update_alignments): New function.
8365 * reorg.c (sibling_labels): New variable.
8366 (get_label_before): Add SIBLING parameter. If it is non-zero, push
8367 the new label along with it onto the sibling_labels vector.
8368 (fill_simple_delay_slots): Adjust call to get_label_before.
8369 (fill_slots_from_thread): Likewise.
8370 (relax_delay_slots): Likewise.
8371 (make_return_insns): Likewise.
8372 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
8373
3c8ca1ab
EB
83742013-08-07 Eric Botcazou <ebotcazou@adacore.com>
8375
8376 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
8377 document its semantics.
8378 (diagnostic_report_diagnostic): Adjust accordingly.
8379
5ee5b32c
DM
83802013-08-07 David Malcolm <dmalcolm@redhat.com>
8381
03b0ee0a 8382 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
8383 (sparc_option_override): ...and port to new C++ pass API.
8384 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
8385
abd566fa
PB
83862013-08-07 Peter Bergner <bergner@vnet.ibm.com>
8387
8388 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
8389
2077db1b
CT
83902013-08-06 Caroline Tice <cmtice@google.com>
8391
8392 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
8393 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
8394 * tree-pass.h: Add pass_vtable_verify.
8395 * varasm.c (assemble_variable): Add code to properly set the comdat
8396 section and name for the .vtable_map_vars section.
8397 (assemble_vtyv_preinit_initializer): New function.
8398 (default_sectin_type_flags): Make sure .vtable_map_vars section has
8399 LINK_ONCE flag.
8400 * output.h: Add function decl for assemble_vtv_preinit_initializer.
8401 * vtable-verify.c: New file.
8402 * vtable-verify.h: New file.
8403 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
8404 initialiation levels.
8405 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
8406 * passes.def: Insert pass_vtable_verify.
8407 * aclocal.m4: Reorder includes.
8408 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
8409 -fvtv-counts options.
8410 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
8411 as appropriate, if -fvtable-verify=... is used.
8412 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
8413 -fvtable-verify=... is used.
8414 * Makefile.in (OBJS): Add vtable-verify.o to list.
8415 (vtable-verify.o): Add new build rule.
8416 (GTFILES): Add vtable-verify.c to list.
8417 * common.opt (fvtable-verify=): New flag.
8418 (vtv_priority): Values for fvtable-verify= flag.
8419 (fvtv-counts): New flag.
8420 (fvtv-debug): New flag.
8421 * tree.h (save_vtable_map_decl): New extern function decl.
8422
03085d1c
DM
84232013-08-07 David Malcolm <dmalcolm@redhat.com>
8424
8425 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
8426 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
8427 (pass_data_rl78_devirt): ...new pass_data instance and...
8428 (make_pass_rl78_devirt): ...new function.
8429 (rl78_asm_file_start): Port pass registration to new C++ API.
8430
05555c4a
DM
84312013-08-07 David Malcolm <dmalcolm@redhat.com>
8432
8433 * coretypes.h (rtl_opt_pass): Add.
8434 (gcc::context): Add.
8435 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
8436 (epiphany_init): Port to new C++ pass API.
8437 (epiphany_optimize_mode_switching): Likewise.
8438 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
8439 (pass_manager::get_pass_mode_switching): New.
8440 (pass_manager::get_pass_peephole2): New.
8441 * mode-switching.c (pass_mode_switching): Add clone method.
8442 * recog.c (pass_peephole2): Add clone method.
8443 (pass_split_all_insns): Add clone method.
8444
c5a12e26
DM
84452013-08-06 David Malcolm <dmalcolm@redhat.com>
8446
03b0ee0a
UB
8447 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
8448 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 8449
a2e2a668
JH
84502013-08-06 Jan Hubicka <jh@suse.cz>
8451
8452 * cgraph.c (cgraph_get_body): New function based on lto.c
8453 implementation.
8454 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
8455 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
8456 LTO paths.
a2e2a668
JH
8457 * cgraphunit.c (expand_function): Get body prior expanding.
8458 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
8459 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
8460 really need.
a2e2a668
JH
8461 * passes.c (do_per_function_toporder): Get body.
8462 * tree-inline.c (expand_call_inline): Get body prior inlining it.
8463 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
8464
15682f24
MJ
84652013-08-06 Martin Jambor <mjambor@suse.cz>
8466
8467 PR fortran/57987
8468 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
8469 is not re-finalized. Rename second parameter to no_collect.
8470
78f6dd68
MJ
84712013-08-06 Martin Jambor <mjambor@suse.cz>
8472
8473 PR middle-end/58041
8474 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
8475 MEM_REF has proper alignment information.
8476
12211b99 84772013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
8478
8479 PR other/12081
8480 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
8481 class insn_gen_fn.
8482 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
8483 rtx (*) (rtx, ...) with insn_gen_fn.
8484 * genoutput.c (output_insn_data): Cast gen_? function pointers to
8485 insn_gen_fn::stored_funcptr. Add initializer braces.
8486
8ac69a6c
DM
84872013-08-05 David Malcolm <dmalcolm@redhat.com>
8488
8489 Rewrite how instances of passes are cloned to remove assumptions
8490 about their sizes (thus allowing pass subclasses to have
8491 additional data fields, albeit non-GC-managed ones at this point).
8492
8493 * passes.c (make_pass_instance): Now that passes have clone
8494 methods, rewrite this function to eliminate XNEW and memcpy
8495 calls that used hardcoded sizes. Since this function no longer
8496 creates pass instances, rename it to...
03b0ee0a
UB
8497 (add_pass_instance): ...this. Document the old way that passes were
8498 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
8499 (next_pass_1): Add an initial_pass argument for use by
8500 add_pass_instance.
8501 (position_pass): When adding multiple instances of a pass, use
8502 the pass's clone method, rather than relying on the XNEW/memcpy
8503 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
8504 (pass_manager::pass_manager): When invoking next_pass_1, also supply
8505 the initial instance of the current pass within the pass manager.
8ac69a6c 8506
27a4cd48
DM
85072013-08-05 David Malcolm <dmalcolm@redhat.com>
8508
8509 This is the automated part of the conversion of passes from C
8510 structs to C++ classes.
8511
8512 Patch autogenerated by refactor_passes.py from
8513 https://github.com/davidmalcolm/gcc-refactoring-scripts
8514 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
8515
8516 * asan.c (pass_asan): Convert from a global struct to a subclass of
8517 gimple_opt_pass along with...
8518 (pass_data_asan): ...new pass_data instance and...
8519 (make_pass_asan): ...new function.
8520 (pass_asan_O0): Convert from a global struct to a subclass of
8521 gimple_opt_pass along with...
8522 (pass_data_asan_O0): ...new pass_data instance and...
8523 (make_pass_asan_O0): ...new function.
8524 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
8525 subclass of rtl_opt_pass along with...
8526 (pass_data_inc_dec): ...new pass_data instance and...
8527 (make_pass_inc_dec): ...new function.
8528 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
8529 a subclass of rtl_opt_pass along with...
8530 (pass_data_reorder_blocks): ...new pass_data instance and...
8531 (make_pass_reorder_blocks): ...new function.
8532 (pass_duplicate_computed_gotos): Convert from a global struct to a
8533 subclass of rtl_opt_pass along with...
8534 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
8535 (make_pass_duplicate_computed_gotos): ...new function.
8536 (pass_partition_blocks): Convert from a global struct to a subclass of
8537 rtl_opt_pass along with...
8538 (pass_data_partition_blocks): ...new pass_data instance and...
8539 (make_pass_partition_blocks): ...new function.
8540 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
8541 struct to a subclass of rtl_opt_pass along with...
8542 (pass_data_branch_target_load_optimize1): ...new pass_data instance
8543 and...
8544 (make_pass_branch_target_load_optimize1): ...new function.
8545 (pass_branch_target_load_optimize2): Convert from a global struct to a
8546 subclass of rtl_opt_pass along with...
8547 (pass_data_branch_target_load_optimize2): ...new pass_data instance
8548 and...
8549 (make_pass_branch_target_load_optimize2): ...new function.
8550 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
8551 of rtl_opt_pass along with...
8552 (pass_data_jump): ...new pass_data instance and...
8553 (make_pass_jump): ...new function.
8554 (pass_jump2): Convert from a global struct to a subclass of
8555 rtl_opt_pass along with...
8556 (pass_data_jump2): ...new pass_data instance and...
8557 (make_pass_jump2): ...new function.
8558 * cfgexpand.c (pass_expand): Convert from a global struct to a
8559 subclass of rtl_opt_pass along with...
8560 (pass_data_expand): ...new pass_data instance and...
8561 (make_pass_expand): ...new function.
8562 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
8563 of rtl_opt_pass along with...
8564 (pass_data_free_cfg): ...new pass_data instance and...
8565 (make_pass_free_cfg): ...new function.
8566 (pass_into_cfg_layout_mode): Convert from a global struct to a
8567 subclass of rtl_opt_pass along with...
8568 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
8569 (make_pass_into_cfg_layout_mode): ...new function.
8570 (pass_outof_cfg_layout_mode): Convert from a global struct to a
8571 subclass of rtl_opt_pass along with...
8572 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
8573 (make_pass_outof_cfg_layout_mode): ...new function.
8574 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
8575 struct to a subclass of gimple_opt_pass along with...
8576 (pass_data_build_cgraph_edges): ...new pass_data instance and...
8577 (make_pass_build_cgraph_edges): ...new function.
8578 (pass_rebuild_cgraph_edges): Convert from a global struct to a
8579 subclass of gimple_opt_pass along with...
8580 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
8581 (make_pass_rebuild_cgraph_edges): ...new function.
8582 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
8583 subclass of gimple_opt_pass along with...
8584 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
8585 and...
8586 (make_pass_remove_cgraph_callee_edges): ...new function.
8587 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
8588 struct to a subclass of rtl_opt_pass along with...
8589 (pass_data_stack_adjustments): ...new pass_data instance and...
8590 (make_pass_stack_adjustments): ...new function.
8591 * combine.c (pass_combine): Convert from a global struct to a subclass
8592 of rtl_opt_pass along with...
8593 (pass_data_combine): ...new pass_data instance and...
8594 (make_pass_combine): ...new function.
8595 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
8596 global struct to a subclass of rtl_opt_pass along with...
8597 (pass_data_compare_elim_after_reload): ...new pass_data instance
8598 and...
8599 (make_pass_compare_elim_after_reload): ...new function.
8600 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
8601 of rtl_opt_pass along with...
8602 (pass_data_rtl_cprop): ...new pass_data instance and...
8603 (make_pass_rtl_cprop): ...new function.
8604 * cse.c (pass_cse): Convert from a global struct to a subclass of
8605 rtl_opt_pass along with...
8606 (pass_data_cse): ...new pass_data instance and...
8607 (make_pass_cse): ...new function.
8608 (pass_cse2): Convert from a global struct to a subclass of
8609 rtl_opt_pass along with...
8610 (pass_data_cse2): ...new pass_data instance and...
8611 (make_pass_cse2): ...new function.
8612 (pass_cse_after_global_opts): Convert from a global struct to a
8613 subclass of rtl_opt_pass along with...
8614 (pass_data_cse_after_global_opts): ...new pass_data instance and...
8615 (make_pass_cse_after_global_opts): ...new function.
8616 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
8617 of rtl_opt_pass along with...
8618 (pass_data_ud_rtl_dce): ...new pass_data instance and...
8619 (make_pass_ud_rtl_dce): ...new function.
8620 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
8621 rtl_opt_pass along with...
8622 (pass_data_fast_rtl_dce): ...new pass_data instance and...
8623 (make_pass_fast_rtl_dce): ...new function.
8624 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
8625 a subclass of rtl_opt_pass along with...
8626 (pass_data_df_initialize_opt): ...new pass_data instance and...
8627 (make_pass_df_initialize_opt): ...new function.
8628 (pass_df_initialize_no_opt): Convert from a global struct to a
8629 subclass of rtl_opt_pass along with...
8630 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
8631 (make_pass_df_initialize_no_opt): ...new function.
8632 (pass_df_finish): Convert from a global struct to a subclass of
8633 rtl_opt_pass along with...
8634 (pass_data_df_finish): ...new pass_data instance and...
8635 (make_pass_df_finish): ...new function.
8636 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
8637 rtl_opt_pass along with...
8638 (pass_data_rtl_dse1): ...new pass_data instance and...
8639 (make_pass_rtl_dse1): ...new function.
8640 (pass_rtl_dse2): Convert from a global struct to a subclass of
8641 rtl_opt_pass along with...
8642 (pass_data_rtl_dse2): ...new pass_data instance and...
8643 (make_pass_rtl_dse2): ...new function.
8644 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
8645 subclass of rtl_opt_pass along with...
8646 (pass_data_dwarf2_frame): ...new pass_data instance and...
8647 (make_pass_dwarf2_frame): ...new function.
8648 * except.c (pass_set_nothrow_function_flags): Convert from a global
8649 struct to a subclass of rtl_opt_pass along with...
8650 (pass_data_set_nothrow_function_flags): ...new pass_data instance
8651 and...
8652 (make_pass_set_nothrow_function_flags): ...new function.
8653 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
8654 subclass of rtl_opt_pass along with...
8655 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
8656 and...
8657 (make_pass_convert_to_eh_region_ranges): ...new function.
8658 * final.c (pass_compute_alignments): Convert from a global struct to a
8659 subclass of rtl_opt_pass along with...
8660 (pass_data_compute_alignments): ...new pass_data instance and...
8661 (make_pass_compute_alignments): ...new function.
8662 (pass_final): Convert from a global struct to a subclass of
8663 rtl_opt_pass along with...
8664 (pass_data_final): ...new pass_data instance and...
8665 (make_pass_final): ...new function.
8666 (pass_shorten_branches): Convert from a global struct to a subclass of
8667 rtl_opt_pass along with...
8668 (pass_data_shorten_branches): ...new pass_data instance and...
8669 (make_pass_shorten_branches): ...new function.
8670 (pass_clean_state): Convert from a global struct to a subclass of
8671 rtl_opt_pass along with...
8672 (pass_data_clean_state): ...new pass_data instance and...
8673 (make_pass_clean_state): ...new function.
8674 * function.c (pass_instantiate_virtual_regs): Convert from a global
8675 struct to a subclass of rtl_opt_pass along with...
8676 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
8677 (make_pass_instantiate_virtual_regs): ...new function.
8678 (pass_leaf_regs): Convert from a global struct to a subclass of
8679 rtl_opt_pass along with...
8680 (pass_data_leaf_regs): ...new pass_data instance and...
8681 (make_pass_leaf_regs): ...new function.
8682 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
8683 subclass of rtl_opt_pass along with...
8684 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
8685 and...
8686 (make_pass_thread_prologue_and_epilogue): ...new function.
8687 (pass_match_asm_constraints): Convert from a global struct to a
8688 subclass of rtl_opt_pass along with...
8689 (pass_data_match_asm_constraints): ...new pass_data instance and...
8690 (make_pass_match_asm_constraints): ...new function.
8691 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
8692 subclass of rtl_opt_pass along with...
8693 (pass_data_rtl_fwprop): ...new pass_data instance and...
8694 (make_pass_rtl_fwprop): ...new function.
8695 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
8696 rtl_opt_pass along with...
8697 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
8698 (make_pass_rtl_fwprop_addr): ...new function.
8699 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
8700 rtl_opt_pass along with...
8701 (pass_data_rtl_pre): ...new pass_data instance and...
8702 (make_pass_rtl_pre): ...new function.
8703 (pass_rtl_hoist): Convert from a global struct to a subclass of
8704 rtl_opt_pass along with...
8705 (pass_data_rtl_hoist): ...new pass_data instance and...
8706 (make_pass_rtl_hoist): ...new function.
8707 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
8708 subclass of gimple_opt_pass along with...
8709 (pass_data_lower_cf): ...new pass_data instance and...
8710 (make_pass_lower_cf): ...new function.
8711 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
8712 from a global struct to a subclass of gimple_opt_pass along with...
8713 (pass_data_strength_reduction): ...new pass_data instance and...
8714 (make_pass_strength_reduction): ...new function.
8715 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
8716 of rtl_opt_pass along with...
8717 (pass_data_rtl_ifcvt): ...new pass_data instance and...
8718 (make_pass_rtl_ifcvt): ...new function.
8719 (pass_if_after_combine): Convert from a global struct to a subclass of
8720 rtl_opt_pass along with...
8721 (pass_data_if_after_combine): ...new pass_data instance and...
8722 (make_pass_if_after_combine): ...new function.
8723 (pass_if_after_reload): Convert from a global struct to a subclass of
8724 rtl_opt_pass along with...
8725 (pass_data_if_after_reload): ...new pass_data instance and...
8726 (make_pass_if_after_reload): ...new function.
8727 * init-regs.c (pass_initialize_regs): Convert from a global struct to
8728 a subclass of rtl_opt_pass along with...
8729 (pass_data_initialize_regs): ...new pass_data instance and...
8730 (make_pass_initialize_regs): ...new function.
8731 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
8732 of ipa_opt_pass_d along with...
8733 (pass_data_ipa_cp): ...new pass_data instance and...
8734 (make_pass_ipa_cp): ...new function.
8735 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
8736 global struct to a subclass of gimple_opt_pass along with...
8737 (pass_data_inline_parameters): ...new pass_data instance and...
8738 (make_pass_inline_parameters): ...new function.
8739 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
8740 subclass of gimple_opt_pass along with...
8741 (pass_data_early_inline): ...new pass_data instance and...
8742 (make_pass_early_inline): ...new function.
8743 (pass_ipa_inline): Convert from a global struct to a subclass of
8744 ipa_opt_pass_d along with...
8745 (pass_data_ipa_inline): ...new pass_data instance and...
8746 (make_pass_ipa_inline): ...new function.
8747 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
8748 struct to a subclass of gimple_opt_pass along with...
8749 (pass_data_local_pure_const): ...new pass_data instance and...
8750 (make_pass_local_pure_const): ...new function.
8751 (pass_ipa_pure_const): Convert from a global struct to a subclass of
8752 ipa_opt_pass_d along with...
8753 (pass_data_ipa_pure_const): ...new pass_data instance and...
8754 (make_pass_ipa_pure_const): ...new function.
8755 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
8756 to a subclass of ipa_opt_pass_d along with...
8757 (pass_data_ipa_reference): ...new pass_data instance and...
8758 (make_pass_ipa_reference): ...new function.
8759 * ipa-split.c (pass_split_functions): Convert from a global struct to
8760 a subclass of gimple_opt_pass along with...
8761 (pass_data_split_functions): ...new pass_data instance and...
8762 (make_pass_split_functions): ...new function.
8763 (pass_feedback_split_functions): Convert from a global struct to a
8764 subclass of gimple_opt_pass along with...
8765 (pass_data_feedback_split_functions): ...new pass_data instance and...
8766 (make_pass_feedback_split_functions): ...new function.
8767 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
8768 global struct to a subclass of simple_ipa_opt_pass along with...
8769 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
8770 instance and...
8771 (make_pass_ipa_function_and_variable_visibility): ...new function.
8772 (pass_ipa_free_inline_summary): Convert from a global struct to a
8773 subclass of simple_ipa_opt_pass along with...
8774 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
8775 (make_pass_ipa_free_inline_summary): ...new function.
8776 (pass_ipa_whole_program_visibility): Convert from a global struct to a
8777 subclass of ipa_opt_pass_d along with...
8778 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
8779 and...
8780 (make_pass_ipa_whole_program_visibility): ...new function.
8781 (pass_ipa_profile): Convert from a global struct to a subclass of
8782 ipa_opt_pass_d along with...
8783 (pass_data_ipa_profile): ...new pass_data instance and...
8784 (make_pass_ipa_profile): ...new function.
8785 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
8786 ipa_opt_pass_d along with...
8787 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
8788 (make_pass_ipa_cdtor_merge): ...new function.
8789 * ira.c (pass_ira): Convert from a global struct to a subclass of
8790 rtl_opt_pass along with...
8791 (pass_data_ira): ...new pass_data instance and...
8792 (make_pass_ira): ...new function.
8793 (pass_reload): Convert from a global struct to a subclass of
8794 rtl_opt_pass along with...
8795 (pass_data_reload): ...new pass_data instance and...
8796 (make_pass_reload): ...new function.
8797 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
8798 subclass of rtl_opt_pass along with...
8799 (pass_data_cleanup_barriers): ...new pass_data instance and...
8800 (make_pass_cleanup_barriers): ...new function.
8801 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
8802 of rtl_opt_pass along with...
8803 (pass_data_loop2): ...new pass_data instance and...
8804 (make_pass_loop2): ...new function.
8805 (pass_rtl_loop_init): Convert from a global struct to a subclass of
8806 rtl_opt_pass along with...
8807 (pass_data_rtl_loop_init): ...new pass_data instance and...
8808 (make_pass_rtl_loop_init): ...new function.
8809 (pass_rtl_loop_done): Convert from a global struct to a subclass of
8810 rtl_opt_pass along with...
8811 (pass_data_rtl_loop_done): ...new pass_data instance and...
8812 (make_pass_rtl_loop_done): ...new function.
8813 (pass_rtl_move_loop_invariants): Convert from a global struct to a
8814 subclass of rtl_opt_pass along with...
8815 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
8816 (make_pass_rtl_move_loop_invariants): ...new function.
8817 (pass_rtl_unswitch): Convert from a global struct to a subclass of
8818 rtl_opt_pass along with...
8819 (pass_data_rtl_unswitch): ...new pass_data instance and...
8820 (make_pass_rtl_unswitch): ...new function.
8821 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
8822 subclass of rtl_opt_pass along with...
8823 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
8824 and...
8825 (make_pass_rtl_unroll_and_peel_loops): ...new function.
8826 (pass_rtl_doloop): Convert from a global struct to a subclass of
8827 rtl_opt_pass along with...
8828 (pass_data_rtl_doloop): ...new pass_data instance and...
8829 (make_pass_rtl_doloop): ...new function.
8830 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
8831 a subclass of rtl_opt_pass along with...
8832 (pass_data_lower_subreg): ...new pass_data instance and...
8833 (make_pass_lower_subreg): ...new function.
8834 (pass_lower_subreg2): Convert from a global struct to a subclass of
8835 rtl_opt_pass along with...
8836 (pass_data_lower_subreg2): ...new pass_data instance and...
8837 (make_pass_lower_subreg2): ...new function.
8838 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
8839 struct to a subclass of ipa_opt_pass_d along with...
8840 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
8841 (make_pass_ipa_lto_gimple_out): ...new function.
8842 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
8843 of ipa_opt_pass_d along with...
8844 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
8845 (make_pass_ipa_lto_finish_out): ...new function.
8846 * mode-switching.c (pass_mode_switching): Convert from a global struct
8847 to a subclass of rtl_opt_pass along with...
8848 (pass_data_mode_switching): ...new pass_data instance and...
8849 (make_pass_mode_switching): ...new function.
8850 * modulo-sched.c (pass_sms): Convert from a global struct to a
8851 subclass of rtl_opt_pass along with...
8852 (pass_data_sms): ...new pass_data instance and...
8853 (make_pass_sms): ...new function.
8854 * omp-low.c (pass_expand_omp): Convert from a global struct to a
8855 subclass of gimple_opt_pass along with...
8856 (pass_data_expand_omp): ...new pass_data instance and...
8857 (make_pass_expand_omp): ...new function.
8858 (pass_lower_omp): Convert from a global struct to a subclass of
8859 gimple_opt_pass along with...
8860 (pass_data_lower_omp): ...new pass_data instance and...
8861 (make_pass_lower_omp): ...new function.
8862 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
8863 of gimple_opt_pass along with...
8864 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
8865 (make_pass_diagnose_omp_blocks): ...new function.
8866 * passes.c (pass_early_local_passes): Convert from a global struct to
8867 a subclass of simple_ipa_opt_pass along with...
8868 (pass_data_early_local_passes): ...new pass_data instance and...
8869 (make_pass_early_local_passes): ...new function.
8870 (pass_all_early_optimizations): Convert from a global struct to a
8871 subclass of gimple_opt_pass along with...
8872 (pass_data_all_early_optimizations): ...new pass_data instance and...
8873 (make_pass_all_early_optimizations): ...new function.
8874 (pass_all_optimizations): Convert from a global struct to a subclass
8875 of gimple_opt_pass along with...
8876 (pass_data_all_optimizations): ...new pass_data instance and...
8877 (make_pass_all_optimizations): ...new function.
8878 (pass_all_optimizations_g): Convert from a global struct to a subclass
8879 of gimple_opt_pass along with...
8880 (pass_data_all_optimizations_g): ...new pass_data instance and...
8881 (make_pass_all_optimizations_g): ...new function.
8882 (pass_rest_of_compilation): Convert from a global struct to a subclass
8883 of rtl_opt_pass along with...
8884 (pass_data_rest_of_compilation): ...new pass_data instance and...
8885 (make_pass_rest_of_compilation): ...new function.
8886 (pass_postreload): Convert from a global struct to a subclass of
8887 rtl_opt_pass along with...
8888 (pass_data_postreload): ...new pass_data instance and...
8889 (make_pass_postreload): ...new function.
8890 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
8891 subclass of rtl_opt_pass along with...
8892 (pass_data_gcse2): ...new pass_data instance and...
8893 (make_pass_gcse2): ...new function.
8894 * postreload.c (pass_postreload_cse): Convert from a global struct to
8895 a subclass of rtl_opt_pass along with...
8896 (pass_data_postreload_cse): ...new pass_data instance and...
8897 (make_pass_postreload_cse): ...new function.
8898 * predict.c (pass_profile): Convert from a global struct to a subclass
8899 of gimple_opt_pass along with...
8900 (pass_data_profile): ...new pass_data instance and...
8901 (make_pass_profile): ...new function.
8902 (pass_strip_predict_hints): Convert from a global struct to a subclass
8903 of gimple_opt_pass along with...
8904 (pass_data_strip_predict_hints): ...new pass_data instance and...
8905 (make_pass_strip_predict_hints): ...new function.
8906 * recog.c (pass_peephole2): Convert from a global struct to a subclass
8907 of rtl_opt_pass along with...
8908 (pass_data_peephole2): ...new pass_data instance and...
8909 (make_pass_peephole2): ...new function.
8910 (pass_split_all_insns): Convert from a global struct to a subclass of
8911 rtl_opt_pass along with...
8912 (pass_data_split_all_insns): ...new pass_data instance and...
8913 (make_pass_split_all_insns): ...new function.
8914 (pass_split_after_reload): Convert from a global struct to a subclass
8915 of rtl_opt_pass along with...
8916 (pass_data_split_after_reload): ...new pass_data instance and...
8917 (make_pass_split_after_reload): ...new function.
8918 (pass_split_before_regstack): Convert from a global struct to a
8919 subclass of rtl_opt_pass along with...
8920 (pass_data_split_before_regstack): ...new pass_data instance and...
8921 (make_pass_split_before_regstack): ...new function.
8922 (pass_split_before_sched2): Convert from a global struct to a subclass
8923 of rtl_opt_pass along with...
8924 (pass_data_split_before_sched2): ...new pass_data instance and...
8925 (make_pass_split_before_sched2): ...new function.
8926 (pass_split_for_shorten_branches): Convert from a global struct to a
8927 subclass of rtl_opt_pass along with...
8928 (pass_data_split_for_shorten_branches): ...new pass_data instance
8929 and...
8930 (make_pass_split_for_shorten_branches): ...new function.
8931 * ree.c (pass_ree): Convert from a global struct to a subclass of
8932 rtl_opt_pass along with...
8933 (pass_data_ree): ...new pass_data instance and...
8934 (make_pass_ree): ...new function.
8935 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
8936 subclass of rtl_opt_pass along with...
8937 (pass_data_stack_regs): ...new pass_data instance and...
8938 (make_pass_stack_regs): ...new function.
8939 (pass_stack_regs_run): Convert from a global struct to a subclass of
8940 rtl_opt_pass along with...
8941 (pass_data_stack_regs_run): ...new pass_data instance and...
8942 (make_pass_stack_regs_run): ...new function.
8943 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
8944 subclass of rtl_opt_pass along with...
8945 (pass_data_cprop_hardreg): ...new pass_data instance and...
8946 (make_pass_cprop_hardreg): ...new function.
8947 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
8948 subclass of rtl_opt_pass along with...
8949 (pass_data_reginfo_init): ...new pass_data instance and...
8950 (make_pass_reginfo_init): ...new function.
8951 * regmove.c (pass_regmove): Convert from a global struct to a subclass
8952 of rtl_opt_pass along with...
8953 (pass_data_regmove): ...new pass_data instance and...
8954 (make_pass_regmove): ...new function.
8955 * regrename.c (pass_regrename): Convert from a global struct to a
8956 subclass of rtl_opt_pass along with...
8957 (pass_data_regrename): ...new pass_data instance and...
8958 (make_pass_regrename): ...new function.
8959 * reorg.c (pass_delay_slots): Convert from a global struct to a
8960 subclass of rtl_opt_pass along with...
8961 (pass_data_delay_slots): ...new pass_data instance and...
8962 (make_pass_delay_slots): ...new function.
8963 (pass_machine_reorg): Convert from a global struct to a subclass of
8964 rtl_opt_pass along with...
8965 (pass_data_machine_reorg): ...new pass_data instance and...
8966 (make_pass_machine_reorg): ...new function.
8967 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
8968 of rtl_opt_pass along with...
8969 (pass_data_sched): ...new pass_data instance and...
8970 (make_pass_sched): ...new function.
8971 (pass_sched2): Convert from a global struct to a subclass of
8972 rtl_opt_pass along with...
8973 (pass_data_sched2): ...new pass_data instance and...
8974 (make_pass_sched2): ...new function.
8975 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
8976 to a subclass of rtl_opt_pass along with...
8977 (pass_data_stack_ptr_mod): ...new pass_data instance and...
8978 (make_pass_stack_ptr_mod): ...new function.
8979 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
8980 to a subclass of rtl_opt_pass along with...
8981 (pass_data_rtl_store_motion): ...new pass_data instance and...
8982 (make_pass_rtl_store_motion): ...new function.
8983 * tracer.c (pass_tracer): Convert from a global struct to a subclass
8984 of gimple_opt_pass along with...
8985 (pass_data_tracer): ...new pass_data instance and...
8986 (make_pass_tracer): ...new function.
8987 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
8988 to a subclass of gimple_opt_pass along with...
8989 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
8990 (make_pass_diagnose_tm_blocks): ...new function.
8991 (pass_lower_tm): Convert from a global struct to a subclass of
8992 gimple_opt_pass along with...
8993 (pass_data_lower_tm): ...new pass_data instance and...
8994 (make_pass_lower_tm): ...new function.
8995 (pass_tm_init): Convert from a global struct to a subclass of
8996 gimple_opt_pass along with...
8997 (pass_data_tm_init): ...new pass_data instance and...
8998 (make_pass_tm_init): ...new function.
8999 (pass_tm_mark): Convert from a global struct to a subclass of
9000 gimple_opt_pass along with...
9001 (pass_data_tm_mark): ...new pass_data instance and...
9002 (make_pass_tm_mark): ...new function.
9003 (pass_tm_edges): Convert from a global struct to a subclass of
9004 gimple_opt_pass along with...
9005 (pass_data_tm_edges): ...new pass_data instance and...
9006 (make_pass_tm_edges): ...new function.
9007 (pass_tm_memopt): Convert from a global struct to a subclass of
9008 gimple_opt_pass along with...
9009 (pass_data_tm_memopt): ...new pass_data instance and...
9010 (make_pass_tm_memopt): ...new function.
9011 (pass_ipa_tm): Convert from a global struct to a subclass of
9012 simple_ipa_opt_pass along with...
9013 (pass_data_ipa_tm): ...new pass_data instance and...
9014 (make_pass_ipa_tm): ...new function.
9015 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
9016 subclass of gimple_opt_pass along with...
9017 (pass_data_call_cdce): ...new pass_data instance and...
9018 (make_pass_call_cdce): ...new function.
9019 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
9020 subclass of gimple_opt_pass along with...
9021 (pass_data_build_cfg): ...new pass_data instance and...
9022 (make_pass_build_cfg): ...new function.
9023 (pass_split_crit_edges): Convert from a global struct to a subclass of
9024 gimple_opt_pass along with...
9025 (pass_data_split_crit_edges): ...new pass_data instance and...
9026 (make_pass_split_crit_edges): ...new function.
9027 (pass_warn_function_return): Convert from a global struct to a
9028 subclass of gimple_opt_pass along with...
9029 (pass_data_warn_function_return): ...new pass_data instance and...
9030 (make_pass_warn_function_return): ...new function.
9031 (pass_warn_function_noreturn): Convert from a global struct to a
9032 subclass of gimple_opt_pass along with...
9033 (pass_data_warn_function_noreturn): ...new pass_data instance and...
9034 (make_pass_warn_function_noreturn): ...new function.
9035 (pass_warn_unused_result): Convert from a global struct to a subclass
9036 of gimple_opt_pass along with...
9037 (pass_data_warn_unused_result): ...new pass_data instance and...
9038 (make_pass_warn_unused_result): ...new function.
9039 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
9040 a subclass of gimple_opt_pass along with...
9041 (pass_data_merge_phi): ...new pass_data instance and...
9042 (make_pass_merge_phi): ...new function.
9043 * tree-complex.c (pass_lower_complex): Convert from a global struct to
9044 a subclass of gimple_opt_pass along with...
9045 (pass_data_lower_complex): ...new pass_data instance and...
9046 (make_pass_lower_complex): ...new function.
9047 (pass_lower_complex_O0): Convert from a global struct to a subclass of
9048 gimple_opt_pass along with...
9049 (pass_data_lower_complex_O0): ...new pass_data instance and...
9050 (make_pass_lower_complex_O0): ...new function.
9051 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
9052 subclass of gimple_opt_pass along with...
9053 (pass_data_lower_eh): ...new pass_data instance and...
9054 (make_pass_lower_eh): ...new function.
9055 (pass_refactor_eh): Convert from a global struct to a subclass of
9056 gimple_opt_pass along with...
9057 (pass_data_refactor_eh): ...new pass_data instance and...
9058 (make_pass_refactor_eh): ...new function.
9059 (pass_lower_resx): Convert from a global struct to a subclass of
9060 gimple_opt_pass along with...
9061 (pass_data_lower_resx): ...new pass_data instance and...
9062 (make_pass_lower_resx): ...new function.
9063 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
9064 of gimple_opt_pass along with...
9065 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
9066 (make_pass_lower_eh_dispatch): ...new function.
9067 (pass_cleanup_eh): Convert from a global struct to a subclass of
9068 gimple_opt_pass along with...
9069 (pass_data_cleanup_eh): ...new pass_data instance and...
9070 (make_pass_cleanup_eh): ...new function.
9071 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
9072 to a subclass of simple_ipa_opt_pass along with...
9073 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
9074 (make_pass_ipa_lower_emutls): ...new function.
9075 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
9076 a subclass of gimple_opt_pass along with...
9077 (pass_data_if_conversion): ...new pass_data instance and...
9078 (make_pass_if_conversion): ...new function.
9079 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
9080 subclass of gimple_opt_pass along with...
9081 (pass_data_build_ssa): ...new pass_data instance and...
9082 (make_pass_build_ssa): ...new function.
9083 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
9084 global struct to a subclass of gimple_opt_pass along with...
9085 (pass_data_loop_distribution): ...new pass_data instance and...
9086 (make_pass_loop_distribution): ...new function.
9087 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
9088 subclass of gimple_opt_pass along with...
9089 (pass_data_mudflap_1): ...new pass_data instance and...
9090 (make_pass_mudflap_1): ...new function.
9091 (pass_mudflap_2): Convert from a global struct to a subclass of
9092 gimple_opt_pass along with...
9093 (pass_data_mudflap_2): ...new pass_data instance and...
9094 (make_pass_mudflap_2): ...new function.
9095 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
9096 subclass of gimple_opt_pass along with...
9097 (pass_data_mudflap_1): ...new pass_data instance and...
9098 (make_pass_mudflap_1): ...new function.
9099 (pass_mudflap_2): Convert from a global struct to a subclass of
9100 gimple_opt_pass along with...
9101 (pass_data_mudflap_2): ...new pass_data instance and...
9102 (make_pass_mudflap_2): ...new function.
9103 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
9104 gimple_opt_pass along with...
9105 (pass_data_nrv): ...new pass_data instance and...
9106 (make_pass_nrv): ...new function.
9107 (pass_return_slot): Convert from a global struct to a subclass of
9108 gimple_opt_pass along with...
9109 (pass_data_return_slot): ...new pass_data instance and...
9110 (make_pass_return_slot): ...new function.
9111 * tree-object-size.c (pass_object_sizes): Convert from a global struct
9112 to a subclass of gimple_opt_pass along with...
9113 (pass_data_object_sizes): ...new pass_data instance and...
9114 (make_pass_object_sizes): ...new function.
9115 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
9116 global struct to a subclass of gimple_opt_pass along with...
9117 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
9118 and...
9119 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9120 (pass_fixup_cfg): Convert from a global struct to a subclass of
9121 gimple_opt_pass along with...
9122 (pass_data_fixup_cfg): ...new pass_data instance and...
9123 (make_pass_fixup_cfg): ...new function.
9124 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
9125 (make_pass_mudflap_1): ...new function.
9126 (pass_mudflap_2): Replace declaration with that of...
9127 (make_pass_mudflap_2): ...new function.
9128 (pass_asan): Replace declaration with that of...
9129 (make_pass_asan): ...new function.
9130 (pass_asan_O0): Replace declaration with that of...
9131 (make_pass_asan_O0): ...new function.
9132 (pass_tsan): Replace declaration with that of...
9133 (make_pass_tsan): ...new function.
9134 (pass_tsan_O0): Replace declaration with that of...
9135 (make_pass_tsan_O0): ...new function.
9136 (pass_lower_cf): Replace declaration with that of...
9137 (make_pass_lower_cf): ...new function.
9138 (pass_refactor_eh): Replace declaration with that of...
9139 (make_pass_refactor_eh): ...new function.
9140 (pass_lower_eh): Replace declaration with that of...
9141 (make_pass_lower_eh): ...new function.
9142 (pass_lower_eh_dispatch): Replace declaration with that of...
9143 (make_pass_lower_eh_dispatch): ...new function.
9144 (pass_lower_resx): Replace declaration with that of...
9145 (make_pass_lower_resx): ...new function.
9146 (pass_build_cfg): Replace declaration with that of...
9147 (make_pass_build_cfg): ...new function.
9148 (pass_early_tree_profile): Replace declaration with that of...
9149 (make_pass_early_tree_profile): ...new function.
9150 (pass_cleanup_eh): Replace declaration with that of...
9151 (make_pass_cleanup_eh): ...new function.
9152 (pass_sra): Replace declaration with that of...
9153 (make_pass_sra): ...new function.
9154 (pass_sra_early): Replace declaration with that of...
9155 (make_pass_sra_early): ...new function.
9156 (pass_early_ipa_sra): Replace declaration with that of...
9157 (make_pass_early_ipa_sra): ...new function.
9158 (pass_tail_recursion): Replace declaration with that of...
9159 (make_pass_tail_recursion): ...new function.
9160 (pass_tail_calls): Replace declaration with that of...
9161 (make_pass_tail_calls): ...new function.
9162 (pass_tree_loop): Replace declaration with that of...
9163 (make_pass_tree_loop): ...new function.
9164 (pass_tree_loop_init): Replace declaration with that of...
9165 (make_pass_tree_loop_init): ...new function.
9166 (pass_lim): Replace declaration with that of...
9167 (make_pass_lim): ...new function.
9168 (pass_tree_unswitch): Replace declaration with that of...
9169 (make_pass_tree_unswitch): ...new function.
9170 (pass_predcom): Replace declaration with that of...
9171 (make_pass_predcom): ...new function.
9172 (pass_iv_canon): Replace declaration with that of...
9173 (make_pass_iv_canon): ...new function.
9174 (pass_scev_cprop): Replace declaration with that of...
9175 (make_pass_scev_cprop): ...new function.
9176 (pass_empty_loop): Replace declaration with that of...
9177 (make_pass_empty_loop): ...new function.
9178 (pass_record_bounds): Replace declaration with that of...
9179 (make_pass_record_bounds): ...new function.
9180 (pass_graphite): Replace declaration with that of...
9181 (make_pass_graphite): ...new function.
9182 (pass_graphite_transforms): Replace declaration with that of...
9183 (make_pass_graphite_transforms): ...new function.
9184 (pass_if_conversion): Replace declaration with that of...
9185 (make_pass_if_conversion): ...new function.
9186 (pass_loop_distribution): Replace declaration with that of...
9187 (make_pass_loop_distribution): ...new function.
9188 (pass_vectorize): Replace declaration with that of...
9189 (make_pass_vectorize): ...new function.
9190 (pass_slp_vectorize): Replace declaration with that of...
9191 (make_pass_slp_vectorize): ...new function.
9192 (pass_complete_unroll): Replace declaration with that of...
9193 (make_pass_complete_unroll): ...new function.
9194 (pass_complete_unrolli): Replace declaration with that of...
9195 (make_pass_complete_unrolli): ...new function.
9196 (pass_parallelize_loops): Replace declaration with that of...
9197 (make_pass_parallelize_loops): ...new function.
9198 (pass_loop_prefetch): Replace declaration with that of...
9199 (make_pass_loop_prefetch): ...new function.
9200 (pass_iv_optimize): Replace declaration with that of...
9201 (make_pass_iv_optimize): ...new function.
9202 (pass_tree_loop_done): Replace declaration with that of...
9203 (make_pass_tree_loop_done): ...new function.
9204 (pass_ch): Replace declaration with that of...
9205 (make_pass_ch): ...new function.
9206 (pass_ccp): Replace declaration with that of...
9207 (make_pass_ccp): ...new function.
9208 (pass_phi_only_cprop): Replace declaration with that of...
9209 (make_pass_phi_only_cprop): ...new function.
9210 (pass_build_ssa): Replace declaration with that of...
9211 (make_pass_build_ssa): ...new function.
9212 (pass_build_alias): Replace declaration with that of...
9213 (make_pass_build_alias): ...new function.
9214 (pass_build_ealias): Replace declaration with that of...
9215 (make_pass_build_ealias): ...new function.
9216 (pass_dominator): Replace declaration with that of...
9217 (make_pass_dominator): ...new function.
9218 (pass_dce): Replace declaration with that of...
9219 (make_pass_dce): ...new function.
9220 (pass_dce_loop): Replace declaration with that of...
9221 (make_pass_dce_loop): ...new function.
9222 (pass_cd_dce): Replace declaration with that of...
9223 (make_pass_cd_dce): ...new function.
9224 (pass_call_cdce): Replace declaration with that of...
9225 (make_pass_call_cdce): ...new function.
9226 (pass_merge_phi): Replace declaration with that of...
9227 (make_pass_merge_phi): ...new function.
9228 (pass_split_crit_edges): Replace declaration with that of...
9229 (make_pass_split_crit_edges): ...new function.
9230 (pass_pre): Replace declaration with that of...
9231 (make_pass_pre): ...new function.
9232 (pass_profile): Replace declaration with that of...
9233 (make_pass_profile): ...new function.
9234 (pass_strip_predict_hints): Replace declaration with that of...
9235 (make_pass_strip_predict_hints): ...new function.
9236 (pass_lower_complex_O0): Replace declaration with that of...
9237 (make_pass_lower_complex_O0): ...new function.
9238 (pass_lower_complex): Replace declaration with that of...
9239 (make_pass_lower_complex): ...new function.
9240 (pass_lower_vector): Replace declaration with that of...
9241 (make_pass_lower_vector): ...new function.
9242 (pass_lower_vector_ssa): Replace declaration with that of...
9243 (make_pass_lower_vector_ssa): ...new function.
9244 (pass_lower_omp): Replace declaration with that of...
9245 (make_pass_lower_omp): ...new function.
9246 (pass_diagnose_omp_blocks): Replace declaration with that of...
9247 (make_pass_diagnose_omp_blocks): ...new function.
9248 (pass_expand_omp): Replace declaration with that of...
9249 (make_pass_expand_omp): ...new function.
9250 (pass_expand_omp_ssa): Replace declaration with that of...
9251 (make_pass_expand_omp_ssa): ...new function.
9252 (pass_object_sizes): Replace declaration with that of...
9253 (make_pass_object_sizes): ...new function.
9254 (pass_strlen): Replace declaration with that of...
9255 (make_pass_strlen): ...new function.
9256 (pass_fold_builtins): Replace declaration with that of...
9257 (make_pass_fold_builtins): ...new function.
9258 (pass_stdarg): Replace declaration with that of...
9259 (make_pass_stdarg): ...new function.
9260 (pass_early_warn_uninitialized): Replace declaration with that of...
9261 (make_pass_early_warn_uninitialized): ...new function.
9262 (pass_late_warn_uninitialized): Replace declaration with that of...
9263 (make_pass_late_warn_uninitialized): ...new function.
9264 (pass_cse_reciprocals): Replace declaration with that of...
9265 (make_pass_cse_reciprocals): ...new function.
9266 (pass_cse_sincos): Replace declaration with that of...
9267 (make_pass_cse_sincos): ...new function.
9268 (pass_optimize_bswap): Replace declaration with that of...
9269 (make_pass_optimize_bswap): ...new function.
9270 (pass_optimize_widening_mul): Replace declaration with that of...
9271 (make_pass_optimize_widening_mul): ...new function.
9272 (pass_warn_function_return): Replace declaration with that of...
9273 (make_pass_warn_function_return): ...new function.
9274 (pass_warn_function_noreturn): Replace declaration with that of...
9275 (make_pass_warn_function_noreturn): ...new function.
9276 (pass_cselim): Replace declaration with that of...
9277 (make_pass_cselim): ...new function.
9278 (pass_phiopt): Replace declaration with that of...
9279 (make_pass_phiopt): ...new function.
9280 (pass_forwprop): Replace declaration with that of...
9281 (make_pass_forwprop): ...new function.
9282 (pass_phiprop): Replace declaration with that of...
9283 (make_pass_phiprop): ...new function.
9284 (pass_tree_ifcombine): Replace declaration with that of...
9285 (make_pass_tree_ifcombine): ...new function.
9286 (pass_dse): Replace declaration with that of...
9287 (make_pass_dse): ...new function.
9288 (pass_nrv): Replace declaration with that of...
9289 (make_pass_nrv): ...new function.
9290 (pass_rename_ssa_copies): Replace declaration with that of...
9291 (make_pass_rename_ssa_copies): ...new function.
9292 (pass_sink_code): Replace declaration with that of...
9293 (make_pass_sink_code): ...new function.
9294 (pass_fre): Replace declaration with that of...
9295 (make_pass_fre): ...new function.
9296 (pass_check_data_deps): Replace declaration with that of...
9297 (make_pass_check_data_deps): ...new function.
9298 (pass_copy_prop): Replace declaration with that of...
9299 (make_pass_copy_prop): ...new function.
9300 (pass_vrp): Replace declaration with that of...
9301 (make_pass_vrp): ...new function.
9302 (pass_uncprop): Replace declaration with that of...
9303 (make_pass_uncprop): ...new function.
9304 (pass_return_slot): Replace declaration with that of...
9305 (make_pass_return_slot): ...new function.
9306 (pass_reassoc): Replace declaration with that of...
9307 (make_pass_reassoc): ...new function.
9308 (pass_rebuild_cgraph_edges): Replace declaration with that of...
9309 (make_pass_rebuild_cgraph_edges): ...new function.
9310 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
9311 (make_pass_remove_cgraph_callee_edges): ...new function.
9312 (pass_build_cgraph_edges): Replace declaration with that of...
9313 (make_pass_build_cgraph_edges): ...new function.
9314 (pass_local_pure_const): Replace declaration with that of...
9315 (make_pass_local_pure_const): ...new function.
9316 (pass_tracer): Replace declaration with that of...
9317 (make_pass_tracer): ...new function.
9318 (pass_warn_unused_result): Replace declaration with that of...
9319 (make_pass_warn_unused_result): ...new function.
9320 (pass_diagnose_tm_blocks): Replace declaration with that of...
9321 (make_pass_diagnose_tm_blocks): ...new function.
9322 (pass_lower_tm): Replace declaration with that of...
9323 (make_pass_lower_tm): ...new function.
9324 (pass_tm_init): Replace declaration with that of...
9325 (make_pass_tm_init): ...new function.
9326 (pass_tm_mark): Replace declaration with that of...
9327 (make_pass_tm_mark): ...new function.
9328 (pass_tm_memopt): Replace declaration with that of...
9329 (make_pass_tm_memopt): ...new function.
9330 (pass_tm_edges): Replace declaration with that of...
9331 (make_pass_tm_edges): ...new function.
9332 (pass_split_functions): Replace declaration with that of...
9333 (make_pass_split_functions): ...new function.
9334 (pass_feedback_split_functions): Replace declaration with that of...
9335 (make_pass_feedback_split_functions): ...new function.
9336 (pass_strength_reduction): Replace declaration with that of...
9337 (make_pass_strength_reduction): ...new function.
9338 (pass_ipa_lower_emutls): Replace declaration with that of...
9339 (make_pass_ipa_lower_emutls): ...new function.
9340 (pass_ipa_function_and_variable_visibility): Replace declaration with
9341 that of...
9342 (make_pass_ipa_function_and_variable_visibility): ...new function.
9343 (pass_ipa_tree_profile): Replace declaration with that of...
9344 (make_pass_ipa_tree_profile): ...new function.
9345 (pass_early_local_passes): Replace declaration with that of...
9346 (make_pass_early_local_passes): ...new function.
9347 (pass_ipa_whole_program_visibility): Replace declaration with that
9348 of...
9349 (make_pass_ipa_whole_program_visibility): ...new function.
9350 (pass_ipa_lto_gimple_out): Replace declaration with that of...
9351 (make_pass_ipa_lto_gimple_out): ...new function.
9352 (pass_ipa_increase_alignment): Replace declaration with that of...
9353 (make_pass_ipa_increase_alignment): ...new function.
9354 (pass_ipa_inline): Replace declaration with that of...
9355 (make_pass_ipa_inline): ...new function.
9356 (pass_ipa_free_lang_data): Replace declaration with that of...
9357 (make_pass_ipa_free_lang_data): ...new function.
9358 (pass_ipa_free_inline_summary): Replace declaration with that of...
9359 (make_pass_ipa_free_inline_summary): ...new function.
9360 (pass_ipa_cp): Replace declaration with that of...
9361 (make_pass_ipa_cp): ...new function.
9362 (pass_ipa_reference): Replace declaration with that of...
9363 (make_pass_ipa_reference): ...new function.
9364 (pass_ipa_pure_const): Replace declaration with that of...
9365 (make_pass_ipa_pure_const): ...new function.
9366 (pass_ipa_pta): Replace declaration with that of...
9367 (make_pass_ipa_pta): ...new function.
9368 (pass_ipa_lto_finish_out): Replace declaration with that of...
9369 (make_pass_ipa_lto_finish_out): ...new function.
9370 (pass_ipa_tm): Replace declaration with that of...
9371 (make_pass_ipa_tm): ...new function.
9372 (pass_ipa_profile): Replace declaration with that of...
9373 (make_pass_ipa_profile): ...new function.
9374 (pass_ipa_cdtor_merge): Replace declaration with that of...
9375 (make_pass_ipa_cdtor_merge): ...new function.
9376 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
9377 of...
9378 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9379 (pass_init_datastructures): Replace declaration with that of...
9380 (make_pass_init_datastructures): ...new function.
9381 (pass_fixup_cfg): Replace declaration with that of...
9382 (make_pass_fixup_cfg): ...new function.
9383 (pass_expand): Replace declaration with that of...
9384 (make_pass_expand): ...new function.
9385 (pass_instantiate_virtual_regs): Replace declaration with that of...
9386 (make_pass_instantiate_virtual_regs): ...new function.
9387 (pass_rtl_fwprop): Replace declaration with that of...
9388 (make_pass_rtl_fwprop): ...new function.
9389 (pass_rtl_fwprop_addr): Replace declaration with that of...
9390 (make_pass_rtl_fwprop_addr): ...new function.
9391 (pass_jump): Replace declaration with that of...
9392 (make_pass_jump): ...new function.
9393 (pass_jump2): Replace declaration with that of...
9394 (make_pass_jump2): ...new function.
9395 (pass_lower_subreg): Replace declaration with that of...
9396 (make_pass_lower_subreg): ...new function.
9397 (pass_cse): Replace declaration with that of...
9398 (make_pass_cse): ...new function.
9399 (pass_fast_rtl_dce): Replace declaration with that of...
9400 (make_pass_fast_rtl_dce): ...new function.
9401 (pass_ud_rtl_dce): Replace declaration with that of...
9402 (make_pass_ud_rtl_dce): ...new function.
9403 (pass_rtl_dce): Replace declaration with that of...
9404 (make_pass_rtl_dce): ...new function.
9405 (pass_rtl_dse1): Replace declaration with that of...
9406 (make_pass_rtl_dse1): ...new function.
9407 (pass_rtl_dse2): Replace declaration with that of...
9408 (make_pass_rtl_dse2): ...new function.
9409 (pass_rtl_dse3): Replace declaration with that of...
9410 (make_pass_rtl_dse3): ...new function.
9411 (pass_rtl_cprop): Replace declaration with that of...
9412 (make_pass_rtl_cprop): ...new function.
9413 (pass_rtl_pre): Replace declaration with that of...
9414 (make_pass_rtl_pre): ...new function.
9415 (pass_rtl_hoist): Replace declaration with that of...
9416 (make_pass_rtl_hoist): ...new function.
9417 (pass_rtl_store_motion): Replace declaration with that of...
9418 (make_pass_rtl_store_motion): ...new function.
9419 (pass_cse_after_global_opts): Replace declaration with that of...
9420 (make_pass_cse_after_global_opts): ...new function.
9421 (pass_rtl_ifcvt): Replace declaration with that of...
9422 (make_pass_rtl_ifcvt): ...new function.
9423 (pass_into_cfg_layout_mode): Replace declaration with that of...
9424 (make_pass_into_cfg_layout_mode): ...new function.
9425 (pass_outof_cfg_layout_mode): Replace declaration with that of...
9426 (make_pass_outof_cfg_layout_mode): ...new function.
9427 (pass_loop2): Replace declaration with that of...
9428 (make_pass_loop2): ...new function.
9429 (pass_rtl_loop_init): Replace declaration with that of...
9430 (make_pass_rtl_loop_init): ...new function.
9431 (pass_rtl_move_loop_invariants): Replace declaration with that of...
9432 (make_pass_rtl_move_loop_invariants): ...new function.
9433 (pass_rtl_unswitch): Replace declaration with that of...
9434 (make_pass_rtl_unswitch): ...new function.
9435 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
9436 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9437 (pass_rtl_doloop): Replace declaration with that of...
9438 (make_pass_rtl_doloop): ...new function.
9439 (pass_rtl_loop_done): Replace declaration with that of...
9440 (make_pass_rtl_loop_done): ...new function.
9441 (pass_web): Replace declaration with that of...
9442 (make_pass_web): ...new function.
9443 (pass_cse2): Replace declaration with that of...
9444 (make_pass_cse2): ...new function.
9445 (pass_df_initialize_opt): Replace declaration with that of...
9446 (make_pass_df_initialize_opt): ...new function.
9447 (pass_df_initialize_no_opt): Replace declaration with that of...
9448 (make_pass_df_initialize_no_opt): ...new function.
9449 (pass_reginfo_init): Replace declaration with that of...
9450 (make_pass_reginfo_init): ...new function.
9451 (pass_inc_dec): Replace declaration with that of...
9452 (make_pass_inc_dec): ...new function.
9453 (pass_stack_ptr_mod): Replace declaration with that of...
9454 (make_pass_stack_ptr_mod): ...new function.
9455 (pass_initialize_regs): Replace declaration with that of...
9456 (make_pass_initialize_regs): ...new function.
9457 (pass_combine): Replace declaration with that of...
9458 (make_pass_combine): ...new function.
9459 (pass_if_after_combine): Replace declaration with that of...
9460 (make_pass_if_after_combine): ...new function.
9461 (pass_ree): Replace declaration with that of...
9462 (make_pass_ree): ...new function.
9463 (pass_partition_blocks): Replace declaration with that of...
9464 (make_pass_partition_blocks): ...new function.
9465 (pass_match_asm_constraints): Replace declaration with that of...
9466 (make_pass_match_asm_constraints): ...new function.
9467 (pass_regmove): Replace declaration with that of...
9468 (make_pass_regmove): ...new function.
9469 (pass_split_all_insns): Replace declaration with that of...
9470 (make_pass_split_all_insns): ...new function.
9471 (pass_fast_rtl_byte_dce): Replace declaration with that of...
9472 (make_pass_fast_rtl_byte_dce): ...new function.
9473 (pass_lower_subreg2): Replace declaration with that of...
9474 (make_pass_lower_subreg2): ...new function.
9475 (pass_mode_switching): Replace declaration with that of...
9476 (make_pass_mode_switching): ...new function.
9477 (pass_sms): Replace declaration with that of...
9478 (make_pass_sms): ...new function.
9479 (pass_sched): Replace declaration with that of...
9480 (make_pass_sched): ...new function.
9481 (pass_ira): Replace declaration with that of...
9482 (make_pass_ira): ...new function.
9483 (pass_reload): Replace declaration with that of...
9484 (make_pass_reload): ...new function.
9485 (pass_clean_state): Replace declaration with that of...
9486 (make_pass_clean_state): ...new function.
9487 (pass_branch_prob): Replace declaration with that of...
9488 (make_pass_branch_prob): ...new function.
9489 (pass_value_profile_transformations): Replace declaration with that
9490 of...
9491 (make_pass_value_profile_transformations): ...new function.
9492 (pass_postreload_cse): Replace declaration with that of...
9493 (make_pass_postreload_cse): ...new function.
9494 (pass_gcse2): Replace declaration with that of...
9495 (make_pass_gcse2): ...new function.
9496 (pass_split_after_reload): Replace declaration with that of...
9497 (make_pass_split_after_reload): ...new function.
9498 (pass_branch_target_load_optimize1): Replace declaration with that
9499 of...
9500 (make_pass_branch_target_load_optimize1): ...new function.
9501 (pass_thread_prologue_and_epilogue): Replace declaration with that
9502 of...
9503 (make_pass_thread_prologue_and_epilogue): ...new function.
9504 (pass_stack_adjustments): Replace declaration with that of...
9505 (make_pass_stack_adjustments): ...new function.
9506 (pass_peephole2): Replace declaration with that of...
9507 (make_pass_peephole2): ...new function.
9508 (pass_if_after_reload): Replace declaration with that of...
9509 (make_pass_if_after_reload): ...new function.
9510 (pass_regrename): Replace declaration with that of...
9511 (make_pass_regrename): ...new function.
9512 (pass_cprop_hardreg): Replace declaration with that of...
9513 (make_pass_cprop_hardreg): ...new function.
9514 (pass_reorder_blocks): Replace declaration with that of...
9515 (make_pass_reorder_blocks): ...new function.
9516 (pass_branch_target_load_optimize2): Replace declaration with that
9517 of...
9518 (make_pass_branch_target_load_optimize2): ...new function.
9519 (pass_leaf_regs): Replace declaration with that of...
9520 (make_pass_leaf_regs): ...new function.
9521 (pass_split_before_sched2): Replace declaration with that of...
9522 (make_pass_split_before_sched2): ...new function.
9523 (pass_compare_elim_after_reload): Replace declaration with that of...
9524 (make_pass_compare_elim_after_reload): ...new function.
9525 (pass_sched2): Replace declaration with that of...
9526 (make_pass_sched2): ...new function.
9527 (pass_stack_regs): Replace declaration with that of...
9528 (make_pass_stack_regs): ...new function.
9529 (pass_stack_regs_run): Replace declaration with that of...
9530 (make_pass_stack_regs_run): ...new function.
9531 (pass_df_finish): Replace declaration with that of...
9532 (make_pass_df_finish): ...new function.
9533 (pass_compute_alignments): Replace declaration with that of...
9534 (make_pass_compute_alignments): ...new function.
9535 (pass_duplicate_computed_gotos): Replace declaration with that of...
9536 (make_pass_duplicate_computed_gotos): ...new function.
9537 (pass_variable_tracking): Replace declaration with that of...
9538 (make_pass_variable_tracking): ...new function.
9539 (pass_free_cfg): Replace declaration with that of...
9540 (make_pass_free_cfg): ...new function.
9541 (pass_machine_reorg): Replace declaration with that of...
9542 (make_pass_machine_reorg): ...new function.
9543 (pass_cleanup_barriers): Replace declaration with that of...
9544 (make_pass_cleanup_barriers): ...new function.
9545 (pass_delay_slots): Replace declaration with that of...
9546 (make_pass_delay_slots): ...new function.
9547 (pass_split_for_shorten_branches): Replace declaration with that of...
9548 (make_pass_split_for_shorten_branches): ...new function.
9549 (pass_split_before_regstack): Replace declaration with that of...
9550 (make_pass_split_before_regstack): ...new function.
9551 (pass_convert_to_eh_region_ranges): Replace declaration with that
9552 of...
9553 (make_pass_convert_to_eh_region_ranges): ...new function.
9554 (pass_shorten_branches): Replace declaration with that of...
9555 (make_pass_shorten_branches): ...new function.
9556 (pass_set_nothrow_function_flags): Replace declaration with that of...
9557 (make_pass_set_nothrow_function_flags): ...new function.
9558 (pass_dwarf2_frame): Replace declaration with that of...
9559 (make_pass_dwarf2_frame): ...new function.
9560 (pass_final): Replace declaration with that of...
9561 (make_pass_final): ...new function.
9562 (pass_rtl_seqabstr): Replace declaration with that of...
9563 (make_pass_rtl_seqabstr): ...new function.
9564 (pass_release_ssa_names): Replace declaration with that of...
9565 (make_pass_release_ssa_names): ...new function.
9566 (pass_early_inline): Replace declaration with that of...
9567 (make_pass_early_inline): ...new function.
9568 (pass_inline_parameters): Replace declaration with that of...
9569 (make_pass_inline_parameters): ...new function.
9570 (pass_update_address_taken): Replace declaration with that of...
9571 (make_pass_update_address_taken): ...new function.
9572 (pass_convert_switch): Replace declaration with that of...
9573 (make_pass_convert_switch): ...new function.
9574 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
9575 to a subclass of simple_ipa_opt_pass along with...
9576 (pass_data_ipa_tree_profile): ...new pass_data instance and...
9577 (make_pass_ipa_tree_profile): ...new function.
9578 * tree-sra.c (pass_sra_early): Convert from a global struct to a
9579 subclass of gimple_opt_pass along with...
9580 (pass_data_sra_early): ...new pass_data instance and...
9581 (make_pass_sra_early): ...new function.
9582 (pass_sra): Convert from a global struct to a subclass of
9583 gimple_opt_pass along with...
9584 (pass_data_sra): ...new pass_data instance and...
9585 (make_pass_sra): ...new function.
9586 (pass_early_ipa_sra): Convert from a global struct to a subclass of
9587 gimple_opt_pass along with...
9588 (pass_data_early_ipa_sra): ...new pass_data instance and...
9589 (make_pass_early_ipa_sra): ...new function.
9590 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
9591 subclass of gimple_opt_pass along with...
9592 (pass_data_ccp): ...new pass_data instance and...
9593 (make_pass_ccp): ...new function.
9594 (pass_fold_builtins): Convert from a global struct to a subclass of
9595 gimple_opt_pass along with...
9596 (pass_data_fold_builtins): ...new pass_data instance and...
9597 (make_pass_fold_builtins): ...new function.
9598 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
9599 subclass of gimple_opt_pass along with...
9600 (pass_data_copy_prop): ...new pass_data instance and...
9601 (make_pass_copy_prop): ...new function.
9602 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
9603 global struct to a subclass of gimple_opt_pass along with...
9604 (pass_data_rename_ssa_copies): ...new pass_data instance and...
9605 (make_pass_rename_ssa_copies): ...new function.
9606 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
9607 subclass of gimple_opt_pass along with...
9608 (pass_data_dce): ...new pass_data instance and...
9609 (make_pass_dce): ...new function.
9610 (pass_dce_loop): Convert from a global struct to a subclass of
9611 gimple_opt_pass along with...
9612 (pass_data_dce_loop): ...new pass_data instance and...
9613 (make_pass_dce_loop): ...new function.
9614 (pass_cd_dce): Convert from a global struct to a subclass of
9615 gimple_opt_pass along with...
9616 (pass_data_cd_dce): ...new pass_data instance and...
9617 (make_pass_cd_dce): ...new function.
9618 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
9619 subclass of gimple_opt_pass along with...
9620 (pass_data_dominator): ...new pass_data instance and...
9621 (make_pass_dominator): ...new function.
9622 (pass_phi_only_cprop): Convert from a global struct to a subclass of
9623 gimple_opt_pass along with...
9624 (pass_data_phi_only_cprop): ...new pass_data instance and...
9625 (make_pass_phi_only_cprop): ...new function.
9626 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
9627 subclass of gimple_opt_pass along with...
9628 (pass_data_dse): ...new pass_data instance and...
9629 (make_pass_dse): ...new function.
9630 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
9631 a subclass of gimple_opt_pass along with...
9632 (pass_data_forwprop): ...new pass_data instance and...
9633 (make_pass_forwprop): ...new function.
9634 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
9635 struct to a subclass of gimple_opt_pass along with...
9636 (pass_data_tree_ifcombine): ...new pass_data instance and...
9637 (make_pass_tree_ifcombine): ...new function.
9638 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
9639 subclass of gimple_opt_pass along with...
9640 (pass_data_ch): ...new pass_data instance and...
9641 (make_pass_ch): ...new function.
9642 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
9643 subclass of gimple_opt_pass along with...
9644 (pass_data_tree_loop): ...new pass_data instance and...
9645 (make_pass_tree_loop): ...new function.
9646 (pass_tree_loop_init): Convert from a global struct to a subclass of
9647 gimple_opt_pass along with...
9648 (pass_data_tree_loop_init): ...new pass_data instance and...
9649 (make_pass_tree_loop_init): ...new function.
9650 (pass_lim): Convert from a global struct to a subclass of
9651 gimple_opt_pass along with...
9652 (pass_data_lim): ...new pass_data instance and...
9653 (make_pass_lim): ...new function.
9654 (pass_tree_unswitch): Convert from a global struct to a subclass of
9655 gimple_opt_pass along with...
9656 (pass_data_tree_unswitch): ...new pass_data instance and...
9657 (make_pass_tree_unswitch): ...new function.
9658 (pass_predcom): Convert from a global struct to a subclass of
9659 gimple_opt_pass along with...
9660 (pass_data_predcom): ...new pass_data instance and...
9661 (make_pass_predcom): ...new function.
9662 (pass_vectorize): Convert from a global struct to a subclass of
9663 gimple_opt_pass along with...
9664 (pass_data_vectorize): ...new pass_data instance and...
9665 (make_pass_vectorize): ...new function.
9666 (pass_graphite): Convert from a global struct to a subclass of
9667 gimple_opt_pass along with...
9668 (pass_data_graphite): ...new pass_data instance and...
9669 (make_pass_graphite): ...new function.
9670 (pass_graphite_transforms): Convert from a global struct to a subclass
9671 of gimple_opt_pass along with...
9672 (pass_data_graphite_transforms): ...new pass_data instance and...
9673 (make_pass_graphite_transforms): ...new function.
9674 (pass_check_data_deps): Convert from a global struct to a subclass of
9675 gimple_opt_pass along with...
9676 (pass_data_check_data_deps): ...new pass_data instance and...
9677 (make_pass_check_data_deps): ...new function.
9678 (pass_iv_canon): Convert from a global struct to a subclass of
9679 gimple_opt_pass along with...
9680 (pass_data_iv_canon): ...new pass_data instance and...
9681 (make_pass_iv_canon): ...new function.
9682 (pass_scev_cprop): Convert from a global struct to a subclass of
9683 gimple_opt_pass along with...
9684 (pass_data_scev_cprop): ...new pass_data instance and...
9685 (make_pass_scev_cprop): ...new function.
9686 (pass_record_bounds): Convert from a global struct to a subclass of
9687 gimple_opt_pass along with...
9688 (pass_data_record_bounds): ...new pass_data instance and...
9689 (make_pass_record_bounds): ...new function.
9690 (pass_complete_unroll): Convert from a global struct to a subclass of
9691 gimple_opt_pass along with...
9692 (pass_data_complete_unroll): ...new pass_data instance and...
9693 (make_pass_complete_unroll): ...new function.
9694 (pass_complete_unrolli): Convert from a global struct to a subclass of
9695 gimple_opt_pass along with...
9696 (pass_data_complete_unrolli): ...new pass_data instance and...
9697 (make_pass_complete_unrolli): ...new function.
9698 (pass_parallelize_loops): Convert from a global struct to a subclass
9699 of gimple_opt_pass along with...
9700 (pass_data_parallelize_loops): ...new pass_data instance and...
9701 (make_pass_parallelize_loops): ...new function.
9702 (pass_loop_prefetch): Convert from a global struct to a subclass of
9703 gimple_opt_pass along with...
9704 (pass_data_loop_prefetch): ...new pass_data instance and...
9705 (make_pass_loop_prefetch): ...new function.
9706 (pass_iv_optimize): Convert from a global struct to a subclass of
9707 gimple_opt_pass along with...
9708 (pass_data_iv_optimize): ...new pass_data instance and...
9709 (make_pass_iv_optimize): ...new function.
9710 (pass_tree_loop_done): Convert from a global struct to a subclass of
9711 gimple_opt_pass along with...
9712 (pass_data_tree_loop_done): ...new pass_data instance and...
9713 (make_pass_tree_loop_done): ...new function.
9714 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
9715 struct to a subclass of gimple_opt_pass along with...
9716 (pass_data_cse_reciprocals): ...new pass_data instance and...
9717 (make_pass_cse_reciprocals): ...new function.
9718 (pass_cse_sincos): Convert from a global struct to a subclass of
9719 gimple_opt_pass along with...
9720 (pass_data_cse_sincos): ...new pass_data instance and...
9721 (make_pass_cse_sincos): ...new function.
9722 (pass_optimize_bswap): Convert from a global struct to a subclass of
9723 gimple_opt_pass along with...
9724 (pass_data_optimize_bswap): ...new pass_data instance and...
9725 (make_pass_optimize_bswap): ...new function.
9726 (pass_optimize_widening_mul): Convert from a global struct to a
9727 subclass of gimple_opt_pass along with...
9728 (pass_data_optimize_widening_mul): ...new pass_data instance and...
9729 (make_pass_optimize_widening_mul): ...new function.
9730 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
9731 subclass of gimple_opt_pass along with...
9732 (pass_data_phiopt): ...new pass_data instance and...
9733 (make_pass_phiopt): ...new function.
9734 (pass_cselim): Convert from a global struct to a subclass of
9735 gimple_opt_pass along with...
9736 (pass_data_cselim): ...new pass_data instance and...
9737 (make_pass_cselim): ...new function.
9738 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
9739 subclass of gimple_opt_pass along with...
9740 (pass_data_phiprop): ...new pass_data instance and...
9741 (make_pass_phiprop): ...new function.
9742 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
9743 subclass of gimple_opt_pass along with...
9744 (pass_data_pre): ...new pass_data instance and...
9745 (make_pass_pre): ...new function.
9746 (pass_fre): Convert from a global struct to a subclass of
9747 gimple_opt_pass along with...
9748 (pass_data_fre): ...new pass_data instance and...
9749 (make_pass_fre): ...new function.
9750 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
9751 subclass of gimple_opt_pass along with...
9752 (pass_data_reassoc): ...new pass_data instance and...
9753 (make_pass_reassoc): ...new function.
9754 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
9755 subclass of gimple_opt_pass along with...
9756 (pass_data_sink_code): ...new pass_data instance and...
9757 (make_pass_sink_code): ...new function.
9758 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
9759 subclass of gimple_opt_pass along with...
9760 (pass_data_strlen): ...new pass_data instance and...
9761 (make_pass_strlen): ...new function.
9762 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
9763 struct to a subclass of gimple_opt_pass along with...
9764 (pass_data_build_alias): ...new pass_data instance and...
9765 (make_pass_build_alias): ...new function.
9766 (pass_build_ealias): Convert from a global struct to a subclass of
9767 gimple_opt_pass along with...
9768 (pass_data_build_ealias): ...new pass_data instance and...
9769 (make_pass_build_ealias): ...new function.
9770 (pass_ipa_pta): Convert from a global struct to a subclass of
9771 simple_ipa_opt_pass along with...
9772 (pass_data_ipa_pta): ...new pass_data instance and...
9773 (make_pass_ipa_pta): ...new function.
9774 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
9775 subclass of gimple_opt_pass along with...
9776 (pass_data_uncprop): ...new pass_data instance and...
9777 (make_pass_uncprop): ...new function.
9778 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
9779 global struct to a subclass of gimple_opt_pass along with...
9780 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
9781 (make_pass_late_warn_uninitialized): ...new function.
9782 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
9783 to a subclass of gimple_opt_pass along with...
9784 (pass_data_init_datastructures): ...new pass_data instance and...
9785 (make_pass_init_datastructures): ...new function.
9786 (pass_early_warn_uninitialized): Convert from a global struct to a
9787 subclass of gimple_opt_pass along with...
9788 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
9789 (make_pass_early_warn_uninitialized): ...new function.
9790 (pass_update_address_taken): Convert from a global struct to a
9791 subclass of gimple_opt_pass along with...
9792 (pass_data_update_address_taken): ...new pass_data instance and...
9793 (make_pass_update_address_taken): ...new function.
9794 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
9795 struct to a subclass of gimple_opt_pass along with...
9796 (pass_data_release_ssa_names): ...new pass_data instance and...
9797 (make_pass_release_ssa_names): ...new function.
9798 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
9799 subclass of gimple_opt_pass along with...
9800 (pass_data_stdarg): ...new pass_data instance and...
9801 (make_pass_stdarg): ...new function.
9802 * tree-switch-conversion.c (pass_convert_switch): Convert from a
9803 global struct to a subclass of gimple_opt_pass along with...
9804 (pass_data_convert_switch): ...new pass_data instance and...
9805 (make_pass_convert_switch): ...new function.
9806 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
9807 to a subclass of gimple_opt_pass along with...
9808 (pass_data_tail_recursion): ...new pass_data instance and...
9809 (make_pass_tail_recursion): ...new function.
9810 (pass_tail_calls): Convert from a global struct to a subclass of
9811 gimple_opt_pass along with...
9812 (pass_data_tail_calls): ...new pass_data instance and...
9813 (make_pass_tail_calls): ...new function.
9814 * tree-vect-generic.c (pass_lower_vector): Convert from a global
9815 struct to a subclass of gimple_opt_pass along with...
9816 (pass_data_lower_vector): ...new pass_data instance and...
9817 (make_pass_lower_vector): ...new function.
9818 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
9819 gimple_opt_pass along with...
9820 (pass_data_lower_vector_ssa): ...new pass_data instance and...
9821 (make_pass_lower_vector_ssa): ...new function.
9822 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
9823 to a subclass of gimple_opt_pass along with...
9824 (pass_data_slp_vectorize): ...new pass_data instance and...
9825 (make_pass_slp_vectorize): ...new function.
9826 (pass_ipa_increase_alignment): Convert from a global struct to a
9827 subclass of simple_ipa_opt_pass along with...
9828 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
9829 (make_pass_ipa_increase_alignment): ...new function.
9830 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
9831 gimple_opt_pass along with...
9832 (pass_data_vrp): ...new pass_data instance and...
9833 (make_pass_vrp): ...new function.
9834 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
9835 subclass of simple_ipa_opt_pass along with...
9836 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
9837 (make_pass_ipa_free_lang_data): ...new function.
9838 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
9839 gimple_opt_pass along with...
9840 (pass_data_tsan): ...new pass_data instance and...
9841 (make_pass_tsan): ...new function.
9842 (pass_tsan_O0): Convert from a global struct to a subclass of
9843 gimple_opt_pass along with...
9844 (pass_data_tsan_O0): ...new pass_data instance and...
9845 (make_pass_tsan_O0): ...new function.
9846 * var-tracking.c (pass_variable_tracking): Convert from a global
9847 struct to a subclass of rtl_opt_pass along with...
9848 (pass_data_variable_tracking): ...new pass_data instance and...
9849 (make_pass_variable_tracking): ...new function.
9850 * web.c (pass_web): Convert from a global struct to a subclass of
9851 rtl_opt_pass along with...
9852 (pass_data_web): ...new pass_data instance and...
9853 (make_pass_web): ...new function.
9854 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
9855 declaration with that of...
9856 (make_pass_mode_switch_use): ...new function.
9857 (pass_resolve_sw_modes): Replace declaration with that of...
9858 (make_pass_resolve_sw_modes): ...new function.
9859 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
9860 from a global struct to a subclass of rtl_opt_pass along with...
9861 (pass_data_mode_switch_use): ...new pass_data instance and...
9862 (make_pass_mode_switch_use): ...new function.
9863 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
9864 from a global struct to a subclass of rtl_opt_pass along with...
9865 (pass_data_resolve_sw_modes): ...new pass_data instance and...
9866 (make_pass_resolve_sw_modes): ...new function.
9867 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
9868 struct to a subclass of rtl_opt_pass along with...
9869 (pass_data_insert_vzeroupper): ...new pass_data instance and...
9870 (make_pass_insert_vzeroupper): ...new function.
9871 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
9872 global struct to a subclass of rtl_opt_pass along with...
9873 (pass_data_work_around_errata): ...new pass_data instance and...
9874 (make_pass_work_around_errata): ...new function.
9875 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
9876 struct to a subclass of rtl_opt_pass along with...
9877 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
9878 (make_pass_mips_machine_reorg2): ...new function.
9879
6a389ed5
DM
98802013-08-05 David Malcolm <dmalcolm@redhat.com>
9881
9882 * passes.c (pass_manager::operator new): New.
9883
f7695dbf
DM
98842013-08-05 David Malcolm <dmalcolm@redhat.com>
9885
9886 Handwritten part of conversion of passes to C++ classes.
9887
9888 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
9889 (toplev.o): Add dep on PASS_MANAGER_H.
9890 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
9891 of early local pases to reflect this moving from a global to a
9892 member of gcc::pass_manager.
9893 (cgraph_add_new_function): Likewise.
9894 * lto-cgraph.c (lto_output_node): Update for conversion of
9895 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
9896 * passes.c (opt_pass::clone): New.
9897 (opt_pass::gate): New.
9898 (opt_pass::execute): New.
9899 (opt_pass::opt_pass): New.
9900 (pass_manager::execute_early_local_passes): New.
9901 (pass_manager::execute_pass_mode_switching): new.
9902 (finish_optimization_passes): Convert to...
9903 (pass_manager::finish_optimization_passes): ...this.
9904 (finish_optimization_passes): Update for conversion of passes to
9905 C++ classes.
9906 (register_dump_files_1): Use has_gate since we cannot portably
9907 check a vtable entry against NULL.
9908 (dump_one_pass): Likewise.
9909 (ipa_write_summaries_2): Likewise.
9910 (ipa_write_optimization_summaries_1): Likewise.
9911 (ipa_read_summaries_1): Likewise.
9912 (ipa_read_optimization_summaries_1): Likewise.
9913 (execute_ipa_stmt_fixups): Likewise.
9914 (pass_manager::pass_manager): Rewrite pass-creation, invoking
9915 pass-creation functions rather than wiring up globals, and
9916 storing the results in fields of pass_manager generated using
9917 pass-instances.def.
9918 (pass_manager::dump_profile_report): Update for conversion of
9919 passes to C++ classes.
9920 (pass_manager::execute_ipa_summary_passes): Likewise.
9921 (execute_one_ipa_transform_pass): Likewise.
9922 (execute_one_pass): Use has_gate and has_execute since we cannot
9923 portably check a vtable entry against NULL.
9924 * pass_manager.h (pass_manager::finish_optimization_passes): New.
9925 (pass_manager): Use pass-instances.def to add fields for the
9926 various pass instances.
9927 * toplev.c (finalize): Update for move of
9928 finish_optimization_passes to a method of gcc::pass_manager.
9929 * toplev.h (finish_optimization_passes): Move to method of class
9930 pass_manager.
9931 * tree-pass.h (struct pass_data): New.
03b0ee0a 9932 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
9933 (opt_pass::gate): Convert to virtual function.
9934 (opt_pass::~opt_pass): New.
9935 (opt_pass::clone): New.
9936 (opt_pass::execute): Convert to virtual function.
9937 (opt_pass::opt_pass): New.
9938 (opt_pass::ctxt_): new.
9939 (gimple_opt_pass): Convert to subclass of opt_pass.
9940 (gimple_opt_pass::gimple_opt_pass): New.
9941 (rtl_opt_pass): Convert to subclass of opt_pass.
9942 (rtl_opt_pass::rtl_opt_pass): New.
9943 (ipa_opt_pass_d): Convert to subclass of opt_pass.
9944 (ipa_opt_pass_d::ipa_opt_pass_d): New.
9945 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
9946 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
9947 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
9948 invocation of pass_mode_switching to reflect this moving from a
9949 global to a member of gcc::pass_manager.
9950 (ix86_option_override): Rework how pass_insert_vzeroupper is
9951 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 9952 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 9953
d0b2f831
RE
99542013-08-05 Richard Earnshaw <rearnsha@arm.com>
9955
9956 PR rtl-optimization/57708
9957 * recog.c (peep2_find_free_register): Validate all regs in a
9958 multi-reg mode.
9959
51a5c0c2
JH
99602013-08-05 Jan Hubicka <jh@suse.cz>
9961
9962 PR lto/57602
03b0ee0a
UB
9963 * cgraph.c (verify_cgraph_node): Accept local flags from other
9964 partitions.
51a5c0c2
JH
9965 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
9966 (function_and_variable_visibility): Likewise.
9967 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
9968
65f0a120
GDR
99692013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9970
9971 * graph.c (init_graph_slim_pretty_print): Remove.
9972 (print_graph_cfg): Do not call it. Use local pretty printer.
9973 (start_graph_dump): Likewise.
9974
b3f80694
GDR
99752013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9976
9977 * gimple-pretty-print.c (buffer): Remove.
9978 (initialized): Likewise.
9979 (maybe_init_pretty_print): Likewise.
9980 (print_gimple_stmt): Do not call it. Use non-static local
9981 pretty_printer variable.
9982 (print_gimple_expr): Likewise.
9983 (print_gimple_seq): Likewise.
9984 (gimple_dump_bb): Likewise.
9985
11a877b3
GDR
99862013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9987
9988 * asan.c (asan_pp): Remove.
9989 (asan_pp_initialized): Likewise.
9990 (asan_pp_initialize): Likewise.
9991 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
9992 (asan_emit_stack_protection): Tidy. Use local pretty printer.
9993 (asan_add_global): Likewise.
9994
b066401f
GDR
99952013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
9996
9997 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
9998 * diagnostic.h (diagnostic_flush_buffer): Adjust.
9999 * pretty-print.c (pp_formatted_text_data): Likewise.
10000 (pp_indent): Rename from pp_base_indent.
10001 (pp_format): Rename from pp_base_format.
10002 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
10003 (pp_format_verbatim): Rename from pp_base_format_verbatim.
10004 (pp_flush): Rename from pp_base_flush.
10005 (pp_set_line_maximum_length): Rename from
10006 pp_base_set_line_maximum_length.
10007 (pp_clear_output_area): Rename from pp_base_clear_output_area.
10008 (pp_set_prefix): Rename from pp_base_set_prefix.
10009 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
10010 (pp_emit_prefix): Rename from pp_base_emit_prefix.
10011 (pp_append_text): Rename from pp_base_append_text.
10012 (pp_formatted_text): Rename from pp_base_formatted_text.
10013 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
10014 (pp_remaining_character_count_for_line): Rename from
10015 pp_base_remaining_character_count_for_line.
10016 (pp_newline): Rename from pp_base_newline.
10017 (pp_character): Rename from pp_base_character.
10018 (pp_string): Rename from pp_base_string.
10019 (pp_maybe_space): Rename from pp_base_maybe_space.
10020 * asan.c (asan_pp_string): Adjust.
10021 (asan_emit_stack_protection): Likewise.
10022 (asan_add_global): Likewise.
10023 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
10024 * tree-mudflap.c (mf_varname_tree): Likewise.
10025 * tree-pretty-print.c (pp_tree_identifier): Rename from
10026 pp_base_tree_identifier.
10027 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
10028 Declare as function.
10029
137a1a27
GDR
100302013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10031
10032 * pretty-print.h (pp_bar_bar): New.
10033 (pp_ampersand_ampersand): Likewise.
10034 (pp_less_equal): Likewise.
10035 (pp_greater_equal): Likewise.
10036 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
10037 printer functions instead of pp_string or operators and punctuators.
10038 (dump_gimple_call): Likewise.
10039 (dump_gimple_omp_for): Likewise.
10040 (dump_gimple_transaction): Likewise.
10041 (dump_gimple_phi): Likewise.
10042 (pp_gimple_stmt_1): Likewise.
10043 * sched-vis.c (print_insn): Likewise.
10044 * tree-mudflap.c (mf_varname_tree): Likewise.
10045 * tree-pretty-print.c (dump_block_node): Likewise.
10046 (dump_generic_node): Likewise.
10047
815effe1
JH
100482013-08-02 Jan Hubicka <jh@suse.cz>
10049
10050 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
10051 boundaries.
10052 * lto-streamer-out.c (tree_is_indexable): Results decls and
10053 parm decls are not indexable.
10054 (DFS_write_tree_body): Do not follow args and results.
10055 (hash_tree): Likewise.
10056 (output_functions): Rearrange so struct function is needed
10057 only when real body is output; be able to also ouptut abstract
10058 functions; output DECL_ARGUMENTS and DECL_RESULT.
10059 (lto_output): When not in WPA, ale store abstract functions.
10060 (write_symbol): Do not care about RESULT_DECL.
10061 (output_symbol_p): Handle correctly sbtract decls.
10062 * lto-streamer-in.c (input_function): Rearrange so struct
10063 function can be NULL at entry; allow streaming of
10064 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
10065 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
10066 sanity check during LTO.
10067 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
10068 RESULT_DECl and DECL_ARGUMENTS.
10069 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
10070 Likewise.
10071
07838b13
GDR
100722013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10073
10074 * pretty-print.h (pp_underscore): New.
10075 (pp_comma): Tidy.
10076 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
10077 printer functions instead of pp_character.
10078 (dump_binary_rhs): Likewise.
10079 (dump_ternary_rhs): Likewise.
10080 (dump_gimple_call_args): Likewise.
10081 (pp_points_to_solution): Likewise.
10082 (dump_gimple_call): Likewise.
10083 (dump_gimple_switch): Likewise.
10084 (dump_gimple_cond): Likewise.
10085 (dump_gimple_bind): Likewise.
10086 (dump_gimple_try): Likewise.
10087 (dump_gimple_omp_for): Likewise.
10088 (dump_gimple_omp_continue): Likewise.
10089 (dump_gimple_omp_single): Likewise.
10090 (dump_gimple_omp_sections): Likewise.
10091 (dump_gimple_omp_block): Likewise.
10092 (dump_gimple_omp_critical): Likewise.
10093 (dump_gimple_transaction): Likewise.
10094 (dump_gimple_asm): Likewise.
10095 (dump_gimple_phi): Likewise.
10096 (dump_gimple_omp_parallel): Likewise.
10097 (dump_gimple_omp_task): Likewise.
10098 (dump_gimple_omp_atomic_load): Likewise.
10099 (dump_gimple_omp_atomic_store): Likewise.
10100 (dump_gimple_mem_ops): Likewise.
10101 (pp_gimple_stmt_1): Likewise.
10102 (pp_cfg_jump): Likewise.
10103 (dump_implicit_edges): Likewise.
10104 (gimple_dump_bb_for_graph): Likewise.
10105 * graph.c (draw_cfg_node): Likewise.
10106 * langhooks.c (lhd_print_error_function): Likewise.
10107 * sched-vis.c (print_exp): Likewise.
10108 (print_value): Likewise.
10109 (print_pattern): Likewise.
10110 (print_insn): Likewise.
10111 (rtl_dump_bb_for_graph): Likewise.
10112 * tree-pretty-print.c (dump_function_declaration): Likewise.
10113 (dump_array_domain): Likewise.
10114 (dump_omp_clause): Likewise.
10115 (dump_location): Likewise.
10116 (dump_generic_node): Likewise.
10117 (print_struct_decl): Likewise.
10118 * diagnostic.c (diagnostic_show_locus): Use pp_space.
10119
bb0d2039
BS
101202013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10121
10122 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
10123 candidate table when replacing a candidate statement.
10124 (replace_rhs_if_not_dup): Likewise.
10125 (replace_one_candidate): Likewise.
10126
bc0ec027 101272013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 10128 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
10129
10130 * cgraphunit.c (add_new_function): Fix logic when adding from
10131 late IPA pass.
10132 (assemble_thunk): Rename to ...
03b0ee0a
UB
10133 (expand_thunk); .. this one; export; get it working with
10134 general functions; make produced gimple valid.
bc0ec027
JH
10135 * cgraph.h (expand_thunk): Declare.
10136
0e8853ee
JH
101372013-08-02 Jan Hubicka <jh@suse.cz>
10138
03b0ee0a
UB
10139 * ipa-cp.c (gather_context_independent_values): Use
10140 ipa_get_param_move_cost.
10141 (get_replacement_map): Remove PARAM; move parameter folding
10142 into tree-inline.c
0e8853ee
JH
10143 (create_specialized_node): Update.
10144 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
10145 assert that we have gimple body; update move_cost.
10146 (count_formal_params): Assert that we have gimple body.
10147 (ipa_dump_param): New function.
10148 (ipa_alloc_node_params): Break out from ...
10149 (ipa_initialize_node_params): ... here.
10150 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
10151 (ipa_write_node_info): Stream move costs.
10152 (ipa_read_node_info): Read move costs.
10153 (ipa_update_after_lto_read): Do not recompute node params.
10154 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
10155 (ipa_get_param): Check we are not in WPA.
10156 (ipa_get_param_move_cost): New.
10157 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
10158 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
10159 parm numbers to be present.
10160
ecee672b
VM
101612013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10162
10163 PR rtl-optimization/58048
10164 * lra-constraints.c (process_alt_operands): Don't check asm
10165 operand on register.
10166
13ec0527
EB
101672013-08-02 Eric Botcazou <ebotcazou@adacore.com>
10168
10169 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
10170 the implied StoreLoad barrier for atomic operations if before.
10171
af15184a
JH
101722013-08-02 Jan Hubicka <jh@suse.cz>
10173 Martin Liska <marxin.liska@gmail.com>
10174
03b0ee0a
UB
10175 * cgraph.c (cgraph_function_body_availability): Do not check
10176 cgraph flags.
af15184a
JH
10177 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
10178 symtab_node_availability): Declare.
10179 * ipa.c (can_replace_by_local_alias): New.
10180 (function_and_variable_visibility): Use it.
03b0ee0a
UB
10181 * symtab.c (symtab_for_node_and_aliases,
10182 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 10183
01e54ef8
VM
101842013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10185
10186 PR rtl-optimization/57963
03b0ee0a 10187 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
10188 (lra_constraints): Use them.
10189
e2fd7ca7
SN
101902013-08-02 Sofiane Naci <sofiane.naci@arm.com>
10191
03b0ee0a
UB
10192 * config/arm/types.md (define_attr "type"): Add "load_acq"
10193 and "store_rel".
e2fd7ca7
SN
10194 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
10195 changes.
10196 (cortex_a53_store1): Likewise.
10197
0dcc26c3
JH
101982013-08-01 Jan Hubicka <jh@suse.cz>
10199
03b0ee0a
UB
10200 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
10201 partitions are not needed.
0dcc26c3 10202
0bd72901
UB
102032013-08-01 Uros Bizjak <ubizjak@gmail.com>
10204
10205 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
10206 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
10207 MAYBE_NON_Q_CLASS_P where appropriate.
10208
12123452
JH
102092013-08-01 Jan Hubicka <jh@suse.cz>
10210
10211 * cgraph.h (release_function_body): Declare.
10212 * tree.c (free_lang_data_in_decl): Free, parameters and return values
10213 of unused delcarations.
10214
ce852f9c
KT
102152013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10216
03b0ee0a
UB
10217 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
10218 RTL form when subtracting a constant.
ce852f9c 10219
c743b246
KT
102202013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10221
10222 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
10223 Generate canonical plus rtx with negated immediate instead of minus
10224 where appropriate.
10225 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
10226
c0c123ef
JH
102272013-08-01 Jan Hubicka <jh@suse.cz>
10228
10229 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
10230 (cgraph_release_function_body): Likewise.
10231 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
10232 * cgraph.h (cgrpah_node): Rename abstract_and_needed
10233 to used_as_abstract_origin.
10234 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
10235 symbols used as abstract origins.
10236 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
10237 * ipa.c (symtab_remove_unreachable_nodes): Recompute
10238 used_as_abstract_origin.
c0c123ef 10239 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
10240 used_as_abstract_origin; be ready for DECL_RESULT and
10241 DECL_ARGUMENTS to be NULL.
c0c123ef 10242
0bd72901
UB
10243 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
10244 for abstract functions.
10245 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
10246 real symbols.
c0c123ef 10247
1f029433
JH
102482013-08-01 Jan Hubicka <jh@suse.cz>
10249
10250 * profile.c (compute_value_histograms): Fix thinko.
10251
c451f4d6
SN
102522013-08-01 Sofiane Naci <sofiane.naci@arm.com>
10253
10254 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
10255 aarch-common-protos.h to extra_headers.
10256 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
10257 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
10258 * config/aarch64/t-aarch64 (aarch-common.o): Define.
10259
34b512f5
SN
102602013-08-01 Sofiane Naci <sofiane.naci@arm.com>
10261
10262 * config/aarch64/aarch64.md (define_attr "type"): Delete.
10263 Include "../arm/types.md". Define "type" attribute for all patterns.
10264 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
10265 attribute changes.
10266
d86e633a
MM
102672013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
10268
10269 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
10270 to support power8 load fusion.
10271 (fusion_gpr_mem_load): Likewise.
10272
10273 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
10274
10275 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
10276 declarations for power8 load fusion.
10277 (emit_fusion_gpr_load): Likewise.
10278
10279 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
10280 tuning for power8, turn on fusion mode by default. Turn on sign
10281 extending fusion mode if normal fusion mode is on, and we are at
10282 -O2 or -O3.
10283 (fusion_gpr_load_p): New function, return true if we can fuse an
10284 addis instruction with a dependent load to a GPR.
10285 (emit_fusion_gpr_load): Emit the instructions for power8 load
10286 fusion to GPRs.
10287
0bd72901 10288 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
10289 (VSX load fusion peepholes): New peepholes to fuse together an
10290 addi instruction with a VSX load instruction.
10291
10292 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
10293 peepholes to fuse an addis instruction with a load to a GPR base
10294 register. If we are supporting sign extending fusions, convert
10295 sign extending loads to zero extending loads and add an explicit
10296 sign extension.
10297
c3f35647
SN
102982013-07-31 Sofiane Naci <sofiane.naci@arm.com>
10299
10300 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
10301 aarch-common-protos.h to extra_headers.
10302 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
10303 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
10304 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
10305 (arm_no_early_alu_shift_dep): Likewise.
10306 (arm_no_early_alu_shift_value_dep): Likewise.
10307 (arm_no_early_mul_dep): Likewise.
10308 (arm_no_early_store_addr_dep): Likewise.
10309 (arm_mac_accumulator_is_mul_result): Likewise.
10310 (arm_mac_accumulator_is_result): Likewise.
c3f35647 10311 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
10312 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
10313 here to ...
c3f35647 10314 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
10315 (arm_no_early_alu_shift_dep): Likewise.
10316 (arm_no_early_alu_shift_value_dep): Likewise.
10317 (arm_no_early_mul_dep): Likewise.
10318 (arm_no_early_store_addr_dep): Likewise.
10319 (arm_mac_accumulator_is_mul_result): Likewise.
10320 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
10321 * config/arm/aarch-common-protos.h: ... here. New file.
10322 * config/arm/t-arm (aarch-common.o): Define.
10323
103242013-07-31 Sofiane Naci <sofiane.naci@arm.com>
10325
10326 * config/arm/arm.md: Include new file "types.md".
10327 (define_attr "type"): Move from here to ...
10328 (define_attr "mul32"): Likewise.
10329 (define_attr "mul64"): Likewise.
10330 * config/arm/types.md: ... here. New file.
10331
228c1313
SH
103322013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
10333
10334 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
10335 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
10336
d6e9046d 103372013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
10338
10339 * gen-pass-instances.awk: Fix offset of substr().
10340
a167b052
DM
103412013-07-31 David Malcolm <dmalcolm@redhat.com>
10342
10343 * Makefile.in (pass-instances.def): New.
10344 (passes.o): Replace dependency on passes.def with one on
10345 pass-instances.def
10346
10347 * gen-pass-instances.awk: New.
10348
10349 * passes.c (pass_manager::pass_manager): Use pass-instances.def
10350 rather than passes.def, updating local definition of NEXT_PASS
10351 macro to add an extra NUM parameter (currently unused).
10352
315f8c0e
DM
103532013-07-30 David Malcolm <dmalcolm@redhat.com>
10354
10355 * Makefile.in (PASS_MANAGER_H): New.
10356 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
10357 (passes.o): Likewise.
10358 (statistics.o): Likewise.
10359 (cgraphunit.o): Likewise.
10360 (context.o): Depend on PASS_MANAGER_H.
10361
10362 * pass_manager.h: New.
10363
10364 * cgraphunit.c (cgraph_add_new_function): Update for moves
10365 of globals to fields of pass_manager.
10366 (analyze_function): Likewise.
10367 (expand_function): Likewise.
10368 (ipa_passes): Likewise.
10369 (compile): Likewise.
10370
10371 * context.c (context::context): New.
10372 * context.h (context::context): New.
10373 (context::get_passes): New.
10374 (context::passes_): New.
10375
10376 * lto-cgraph.c (input_node): Update for moves of globals to
10377 fields of pass_manager.
10378
10379 * passes.c (all_passes): Remove, in favor of a field of the
10380 same name within the new class pass_manager.
10381 (all_small_ipa_passes): Likewise.
10382 (all_lowering_passes): Likewise.
10383 (all_regular_ipa_passes): Likewise.
10384 (all_late_ipa_passes): Likewise.
10385 (all_lto_gen_passes): Likewise.
10386 (passes_by_id): Likewise.
10387 (passes_by_id_size): Likewise.
10388 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
10389 the new class pass_manager.
10390 (set_pass_for_id): Convert to...
10391 (pass_manager::set_pass_for_id): ...method.
10392 (get_pass_for_id): Convert to...
10393 (pass_manager::get_pass_for_id): ...method.
10394 (register_one_dump_file): Move body of implementation into...
10395 (pass_manager::register_one_dump_file): ...here.
10396 (register_dump_files_1): Convert to...
10397 (pass_manager::register_dump_files_1): ...method.
10398 (register_dump_files): Convert to...
10399 (pass_manager::register_dump_files): ...method.
10400 (create_pass_tab): Update for moves of globals to fields of
10401 pass_manager.
10402 (dump_passes): Move body of implementation into...
10403 (pass_manager::dump_passes): ...here.
10404 (register_pass): Move body of implementation into...
10405 (pass_manager::register_pass): ...here.
10406 (init_optimization_passes): Convert into...
10407 (pass_manager::pass_manager): ...constructor for new
10408 pass_manager class, and initialize the pass_lists array.
10409 (check_profile_consistency): Update for moves of globals to
10410 fields of pass_manager.
10411 (dump_profile_report): Move body of implementation into...
10412 (pass_manager::dump_profile_report): ...here.
10413 (ipa_write_summaries_1): Update for moves of pass lists from
10414 being globals to fields of pass_manager.
10415 (ipa_write_optimization_summaries): Likewise.
10416 (ipa_read_summaries): Likewise.
10417 (ipa_read_optimization_summaries): Likewise.
10418 (execute_all_ipa_stmt_fixups): Likewise.
10419
10420 * statistics.c (statistics_fini): Update for moves of globals to
10421 fields of pass_manager.
10422
10423 * toplev.c (general_init): Replace call to
10424 init_optimization_passes with construction of the pass_manager
10425 instance.
10426
10427 * tree-pass.h (all_passes): Remove, in favor of a field of the
10428 same name within the new class pass_manager.
10429 (all_small_ipa_passes): Likewise.
10430 (all_lowering_passes): Likewise.
10431 (all_regular_ipa_passes): Likewise.
10432 (all_lto_gen_passes): Likewise.
10433 (all_late_ipa_passes): Likewise.
10434 (passes_by_id): Likewise.
10435 (passes_by_id_size): Likewise.
10436 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
10437 the new class pass_manager.
10438 (get_pass_for_id): Remove.
10439
02cab1c1
RE
104402013-07-30 Richard Earnshaw <rearnsha@arm.com>
10441
10442 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
10443 configs.
10444
b2d3f886
RE
104452013-07-30 Richard Earnshaw <rearnsha@arm.com>
10446
10447 * arm.md (mulhi3): New expand pattern.
10448
605e86fa
JH
104492013-07-30 Jan Hubicka <jh@suse.cz>
10450 Martin Liska <marxin.liska@gmail.com>
10451
10452 * profile.c (compute_value_histograms): Do not ICE when
10453 there is mismatch only on some counters.
10454
14a87636
ZC
104552013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10456
10457 PR rtl-optimization/57637
10458 * function.c (move_insn_for_shrink_wrap): Also check the
10459 GEN set of the LIVE problem for the liveness analysis
10460 if it exists, otherwise give up.
10461
0100cd3f
BS
104622013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10463
10464 PR tree-optimization/57993
10465 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
10466 replaced statement in the candidate table.
10467 (phi_add_costs): Return infinite cost when the hidden basis does
10468 not dominate all phis on which the candidate is dependent.
10469 (replace_one_candidate): Record replaced statement in the
10470 candidate table.
10471
f0d811f7
JR
104722013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
10473
10474 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
10475 (ashlv2si3): New expander.
10476 (*ashlv2si3_i): New define_insn_and_split.
10477 * predicates.md (float_operation): Allow patterns with three
10478 basic sub-patterns.
10479
bba33211
JR
10480 PR rtl-optimization/58021
10481 * mode-switching.c (create_pre_exit): Always split off preceding
10482 insns if we are not at the basic block head.
10483
ff3f3951
MR
104842013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
10485
10486 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
10487 (UCLIBC_DYNAMIC_LINKER): New macro.
10488 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
10489 `-mnan=2008'.
10490 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
10491 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
10492 `-mnan=2008'.
10493 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
10494 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
10495 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
10496 for SF and DF modes. Use ieee_quad_format for TF mode.
10497 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
10498 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
10499 (mips_option_override): Handle `-mnan=legacy'.
10500 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
10501 `-mabs=2008' and `-mnan=2008'.
10502 (OPTION_DEFAULT_SPECS): Add "nan" default.
10503 (ASM_SPEC): Handle `-mnan='.
10504 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
10505 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
10506 comment accordingly.
10507 (neg<mode>2): Likewise.
10508 * config/mips/mips.opt (mabs, mnan): New options.
10509 * doc/install.texi (Configuration): Document `--with-nan=' option.
10510 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
10511 `-mnan=' options.
10512 (MIPS Options): Document them.
10513 * config.gcc <mips*-*-*>: Handle `--with-nan='.
10514 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
10515 * configure: Regenerate.
10516 * config.in: Regenerate.
10517
576e2f37
UB
105182013-07-29 Uros Bizjak <ubizjak@gmail.com>
10519
10520 * config/i386/i386.md (float post-reload splitters): Do not check
10521 for subregs of SSE registers.
10522
105232013-07-29 Uros Bizjak <ubizjak@gmail.com>
10524 H.J. Lu <hongjiu.lu@intel.com>
10525
10526 PR target/57954
10527 PR target/57988
10528 * config/i386/i386.md (post-reload splitter
10529 to avoid partial SSE reg dependency stalls): New pattern.
10530
a71f0749
DV
105312013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10532
10533 * config/s390/s390.md ("movcc"): Swap load and store instructions.
10534
4c97f1cc
JR
105352013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
10536
10537 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
10538 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
10539
b0c733d8
CC
105402013-07-26 Cary Coutant <ccoutant@google.com>
10541
10542 * dwarf2out.c (die_checksum_ordered): Don't include template
10543 instantiations in signature.
10544 (is_template_parameter): New function.
10545 (is_template_instantiation): New function.
10546 (generate_skeleton_bottom_up): Don't include template instantiations
10547 in type unit DIE.
10548 (generate_skeleton): Likewise.
10549 (break_out_comdat_types): Move recursive call to break out nested
10550 types earlier.
10551 (prune_unused_types_mark_generic_parms_dies): Call
10552 is_template_parameter.
10553
040d8a1c
IB
105542013-07-26 Ian Bolton <ian.bolton@arm.com>
10555
10556 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
10557 uses vector registers.
89fdc743 10558 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 10559
85bd4ac6 105602013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 10561 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
10562
10563 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 10564 where appropriate.
85bd4ac6
KT
10565 * config/arm/arm.md (movcond_addsi): New splitter.
10566
b6051207
SA
105672013-07-25 Sterling Augustine <saugustine@google.com>
10568
10569 * dwarf2out.c (size_of_pubnames): Move code to...
10570 (include_pubname_in_output): ...here. New.
10571 (want_pubnames): Rearrange.
10572 (output_pubnames): Call include_pubname_in_output. Move assertion.
10573
41a7c215
CM
105742013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
10575
10576 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
10577
105782013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
10579
10580 PR target/38836
10581 * doc/extend.texi: Remove obsolete builtins. Fix
10582 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
10583
49bde175
JH
105842013-07-25 Jan Hubicka <jh@suse.cz>
10585
10586 * cgraph.c (release_function_body): Break out from ...
10587 (cgraph_release_function_body): ... this one; also release DECL_RESULT
10588 and DECL_ARGUMENTS.
10589 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
10590 old_tree in the map.
10591 (create_specialized_node): Update.
10592 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
10593 into index.
41a7c215
CM
10594 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
10595 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
10596 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
10597 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
10598 DECL_RESULT.
10599
4870352d
KT
106002013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10601
10602 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
10603 addsi3_carryin_alt2_<optab>): Correct output template.
10604
1d6aee1c
KT
106052013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10606
10607 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
10608 Adjust for arm_restrict_it.
10609 Remove trailing whitespace.
10610
c7cafd75
MK
106112013-07-25  Mark Kettenis  <kettenis@openbsd.org>
10612
017d38f5
MK
10613 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
10614 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
10615
c7cafd75
MK
10616 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
10617
00b7527b
VM
106182013-07-25 Vladimir Makarov <vmakarov@redhat.com>
10619
10620 PR rtl-optimization/57960
10621 * lra-constraints.c (process_alt_operands): Use the right mode
10622 when checking strict_low.
10623
4f63dfc6
JH
106242013-07-25 Jan Hubicka <jh@suse.cz>
10625
10626 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
10627 * cgraph.c (cgraph_remove_node): Do not release function body
10628 when in cgraph streaming.
10629 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
10630 in other partitions are not considered reachable; fix handling of
10631 clones.
4f63dfc6 10632
e6dcfa18
RR
106332013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10634
10635 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
10636
0b93d3b6
RR
106372013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10638
10639 PR target/19599
10640 PR target/57731
bb80c2eb 10641 PR target/57837
e6dcfa18 10642 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 10643 Ss with US. Adjust output for v5 and v4t.
41a7c215 10644 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 10645
0b93d3b6
RR
10646 * config/arm/constraints.md ("Ss"): Rename to US.
10647
690688b3
TG
106482013-07-25 Terry Guo <terry.guo@arm.com>
10649
10650 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
10651 shift_add/shift_sub0/shift_sub1 RTXs.
10652
a4ad093b 106532013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 10654 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
10655
10656 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
10657 (altivec_vpks<VI_char>ss): Likewise.
10658 (altivec_vpks<VI_char>us): Likewise.
10659 (altivec_vpku<VI_char>us): Likewise.
10660 (altivec_vpku<VI_char>um): Likewise.
10661
8c5005ce
DM
106622013-07-24 David Malcolm <dmalcolm@redhat.com>
10663
10664 Introduce context class.
10665
10666 * Makefile.in (CONTEXT_H): New.
10667 (OBJS): Add context.o.
10668 (toplev.o): Add CONTEXT_H to dependencies.
10669 (context.o): New.
10670
41a7c215 10671 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
10672
10673 * context.c: New.
10674
10675 * context.h: New.
10676
ce4a9422
JR
106772013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
10678
10679 PR rtl-optimization/57968
10680 * mode-switching.c (create_pre_exit): Allow instructions that
10681 don't set a return register to need a non-exit mode.
10682
493f4c9e 106832013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 10684 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 10685
b5860fd3
WS
10686 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
10687 operands to vperm for little endian.
10688 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
10689 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 10690
73792b92 106912013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 10692 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
10693
10694 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
10695 two operands for little-endian.
10696
14c21302
SE
106972013-07-23 Steve Ellcey <sellcey@mips.com>
10698
10699 * config/mips/mips.c (mips_case_values_threshold): New.
10700 (TARGET_CASE_VALUES_THRESHOLD): Define.
10701
a6056198 107022013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 10703 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
10704
10705 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
10706 selection of field for vector splat in little endian mode.
10707
dd7a40e1
MM
107082013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10709
10710 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
10711 expanders to rs6000.md.
10712 (ior<mode>3): Likewise.
10713 (and<mode>3): Likewise.
10714 (one_cmpl<mode>2): Likewise.
10715 (nor<mode>3): Likewise.
10716 (andc<mode>3): Likewise.
10717 (eqv<mode>3): Likewise.
10718 (nand<mode>3): Likewise.
10719 (orc<mode>3): Likewise.
10720
10721 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
10722 declaration.
10723
10724 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
10725 to split multi-word logical operations.
10726 (rs6000_split_logical_di): Likewise.
10727 (rs6000_split_logical): Likewise.
10728
10729 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
10730 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
10731 and allow TImode operations in 32-bit.
10732 (vsx_and<mode>3_64bit): Likewise.
10733 (vsx_ior<mode>3_32bit): Likewise.
10734 (vsx_ior<mode>3_64bit): Likewise.
10735 (vsx_xor<mode>3_32bit): Likewise.
10736 (vsx_xor<mode>3_64bit): Likewise.
10737 (vsx_one_cmpl<mode>2_32bit): Likewise.
10738 (vsx_one_cmpl<mode>2_64bit): Likewise.
10739 (vsx_nor<mode>3_32bit): Likewise.
10740 (vsx_nor<mode>3_64bit): Likewise.
10741 (vsx_andc<mode>3_32bit): Likewise.
10742 (vsx_andc<mode>3_64bit): Likewise.
10743 (vsx_eqv<mode>3_32bit): Likewise.
10744 (vsx_eqv<mode>3_64bit): Likewise.
10745 (vsx_nand<mode>3_32bit): Likewise.
10746 (vsx_nand<mode>3_64bit): Likewise.
10747 (vsx_orc<mode>3_32bit): Likewise.
10748 (vsx_orc<mode>3_64bit): Likewise.
10749
10750 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
10751 logical types in GPRs.
10752
10753 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
10754 logical insns to rs6000.md, and allow TImode operations in
10755 32-bit.
10756 (altivec_ior<mode>3): Likewise.
10757 (altivec_xor<mode>3): Likewise.
10758 (altivec_one_cmpl<mode>2): Likewise.
10759 (altivec_nor<mode>3): Likewise.
10760 (altivec_andc<mode>3): Likewise.
10761
10762 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
10763 attributes for moving the 128-bit logical operations into
10764 rs6000.md.
10765 (BOOL_REGS_OUTPUT): Likewise.
10766 (BOOL_REGS_OP1): Likewise.
10767 (BOOL_REGS_OP2): Likewise.
10768 (BOOL_REGS_UNARY): Likewise.
10769 (BOOL_REGS_AND_CR0): Likewise.
10770 (one_cmpl<mode>2): Add support for DI logical operations on
10771 32-bit, splitting the operations to 32-bit.
10772 (anddi3): Likewise.
10773 (iordi3): Likewise.
10774 (xordi3): Likewise.
10775 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
10776 changes to combine the 32/64-bit code, allow logical operations on
10777 TI mode in 32-bit, and to use similar match_operator patterns like
10778 scalar mode uses. Combine the Altivec and VSX code for logical
10779 operations, and move it here.
10780 (ior<mode>3, 128-bit types): Likewise.
10781 (xor<mode>3, 128-bit types): Likewise.
10782 (one_cmpl<mode>3, 128-bit types): Likewise.
10783 (nor<mode>3, 128-bit types): Likewise.
10784 (andc<mode>3, 128-bit types): Likewise.
10785 (eqv<mode>3, 128-bit types): Likewise.
10786 (nand<mode>3, 128-bit types): Likewise.
10787 (orc<mode>3, 128-bit types): Likewise.
10788 (and<mode>3_internal): Likewise.
10789 (bool<mode>3_internal): Likewise.
10790 (boolc<mode>3_internal1): Likewise.
10791 (boolc<mode>3_internal2): Likewise.
10792 (boolcc<mode>3_internal1): Likewise.
10793 (boolcc<mode>3_internal2): Likewise.
10794 (eqv<mode>3_internal1): Likewise.
10795 (eqv<mode>3_internal2): Likewise.
10796 (one_cmpl1<mode>3_internal): Likewise.
10797
12211b99 107982013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
10799
10800 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10801 Rename flag_stack_usage to flag_stack_usage_info.
10802
12211b99 108032013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 10804
a5f257fd
ME
10805 * config/microblaze/sync.md: New file.
10806 * config/microblaze/microblaze.md: Include sync.md
10807 * config/microblaze/microblaze.c: Add print_operand 'y'.
10808 * config/microblaze/constraints.md: Add memory_contraint
10809 'Q' which is a single register.
450b0ebb 10810
49fba14f
EB
108112013-07-23 Eric Botcazou <ebotcazou@adacore.com>
10812
10813 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
10814
c7b3b99f
PCC
108152013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
10816
10817 * reload.c (find_reloads): Exit loop once we find this operand
10818 cannot be reloaded somehow for this alternative.
10819
10820 * reload.c (find_reloads): Exit loop once we find a hard register.
10821
10822 * rtlanal.c (computed_jump_p): Exit loop once we find label
10823 reference is used.
10824
10825 * i386.c (ix86_pad_returns): Exit loop after setting replace.
10826
10827 * cfgloopmanip.c (remove_path): Exit loop after setting
10828 irred_invalidated.
10829
10830 * gensupport.c (subst_dup): Avoid loop if code is not
10831 MATCH_DUP nor MATCH_OP_DUP.
10832
c8fbf1fa
NBJ
108332013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
10834
10835 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
10836
9259db42
YZ
108372013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10838
10839 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
10840 true for SP_REGNUM if mode == ptr_mode.
10841 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
10842 with value R0_REGNUM + 31.
10843
00edcfbe
YZ
108442013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10845
10846 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
10847 pad pointer-typed argument downward.
10848
43be9a95
YZ
108492013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10850
10851 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
10852 and __ILP32__ when the ILP32 model is in use.
10853
28514dda
YZ
108542013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10855
10856 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
10857 (aarch64_load_symref_appropriately): In the case of
10858 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
10859 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
10860 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
10861 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
10862 if 'mode' doesn't equal to 'ptr_mode'.
10863 (aarch64_output_mi_thunk): Add an assertion on the alignment of
10864 'vcall_offset'; change to call aarch64_emit_move differently depending
10865 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
10866 to calculate the upper bound of 'vcall_offset'.
10867 (aarch64_cannot_force_const_mem): Change to also return true if
10868 mode != ptr_mode.
10869 (aarch64_legitimize_reload_address): In the case of large
10870 displacements, add new local variable 'xmode' and an assertion
10871 based on it; change to use 'xmode' to generate the new rtx and
10872 reload.
10873 (aarch64_asm_trampoline_template): Change to generate the template
10874 differently depending on TARGET_ILP32 or not; change to use
10875 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
10876 (aarch64_trampoline_size): Removed.
10877 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
10878 and replace immediate literals with it. Change to use 'ptr_mode'
10879 instead of 'DImode' and call convert_memory_address if the mode
10880 of 'fnaddr' doesn't equal to 'ptr_mode'.
10881 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
10882 to output symbol.
10883 (aarch64_elf_asm_destructor): Likewise.
10884 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
10885 on TARGET_ILP32 instead of aarch64_trampoline_size.
10886 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
10887 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
10888 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
10889 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
10890 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
10891 (storewb_pair<GPI:mode>_<P:mode>): ... this.
10892 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
10893 depending on the value of 'mode'.
10894 (add_losym_<mode>): New.
10895 (ldr_got_small_<mode>): New, based on ldr_got_small.
10896 (ldr_got_small): Remove.
10897 (ldr_got_small_sidi): New.
10898 * config/aarch64/iterators.md (P): New.
10899 (PTR): Change to 'ptr_mode' in the condition.
10900
17a819cb
YZ
109012013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10902
10903 * config.gcc (aarch64*-*-*): Support --with-abi.
10904 (aarch64*-*-elf): Support --with-multilib-list.
10905 (aarch64*-*-linux*): Likewise.
10906 (supported_defaults): Add abi to aarch64*-*-*.
10907 * configure.ac: Mention AArch64 for --with-multilib-list.
10908 * configure: Re-generated.
10909 * config/aarch64/biarchilp32.h: New file.
10910 * config/aarch64/biarchlp64.h: New file.
10911 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
10912 (ABI_SPEC): Ditto.
10913 (MULTILIB_DEFAULTS): Ditto.
10914 (DRIVER_SELF_SPECS): Ditto.
10915 (ASM_SPEC): Update to also substitute -mabi.
10916 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
10917 file whose name depends on -mabi= and -mbig-endian.
10918 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
10919 TARGET_ILP32.
10920 (POINTER_SIZE): New define.
10921 (POINTERS_EXTEND_UNSIGNED): Ditto.
10922 (enum aarch64_abi_type): New enumeration tag.
10923 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
10924 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
10925 (TARGET_ILP32): New define.
10926 * config/aarch64/aarch64.opt (mabi): New.
10927 (aarch64_abi): New.
10928 (ilp32, lp64): New values for -mabi.
10929 * config/aarch64/t-aarch64 (comma): New define.
10930 (MULTILIB_OPTIONS): Ditto.
10931 (MULTILIB_DIRNAMES): Ditto.
10932 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
10933 * doc/invoke.texi: Document -mabi for AArch64.
10934
9f9cbdce
GJL
109352013-07-23 Georg-Johann Lay <avr@gjlay.de>
10936
10937 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
10938
7061977b 109392013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 10940 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
10941
10942 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
10943 endianness when selecting field to splat.
10944
75a41878
EC
109452013-07-22 Eric Christopher <echristo@gmail.com>
10946
10947 * dwarf2out.c (die_odr_checksum): New function to use
10948 CHECKSUM_ macros and ULEB128 for DIE tag.
10949 (generate_type_signature): Use.
41a7c215 10950
38ae58ca
EB
109512013-07-22 Eric Botcazou <ebotcazou@adacore.com>
10952
10953 * config.gcc (sparc*-*-*): Accept leon3 processor.
10954 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
10955 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
10956 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
10957 * config/sparc/sparc.opt (enum processor_type): Add leon3.
10958 (mfix-ut699): Adjust comment.
10959 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
10960 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
10961 (CPP_CPU_SPEC): Likewise.
10962 (ASM_CPU_SPEC): Likewise.
10963 * config/sparc/sparc.c (leon3_cost): New constant.
10964 (sparc_option_override): Add leon3 support.
10965 (mem_ref): New function.
10966 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
10967 (sparc_do_work_around_errata): Look into the instruction in the delay
10968 slot and adjust accordingly. Add fix for the data cache nullify issues
10969 of the UT699. Change insertion position for the NOP.
10970 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
10971 (leon3_load): New reservation.
10972 (leon_store): Bump latency to 2.
10973 (grfpu): New automaton.
10974 (grfpu_alu): New unit.
10975 (grfpu_ds): Likewise.
10976 (leon_fp_alu): Adjust.
10977 (leon_fp_mult): Delete.
10978 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
10979 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
10980 * config/sparc/sparc.md (cpu): Add leon3.
10981 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
10982 (swapsi): Likewise.
10983 (atomic_test_and_set): Likewise.
10984 (ldstub): Likewise.
10985
04dfc6df
JU
109862013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
10987
10988 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
10989 default for R5900 targets.
10990 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
10991 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
10992 * config/mips/mips.c (mips_option_override): Report an error for
10993 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
10994 for -march=r5900 -mhard-float.
10995
c7b3b99f 109962013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
10997
10998 * df-problems.c (can_move_insns_across): Exit loop once we
10999 find a non-fixed, non-global register.
11000
11001 * ipa-pure-const.c (propagate_nothrow): Exit loop after
11002 setting can_throw.
11003
11004 * omega.c (omega_eliminate_red): Break after setting red_found.
11005 (omega_problem_has_red_equations): Similarly after setting found.
11006 (omega_query_variable): Similarly after setting coupled.
11007
9b6e6981
MP
110082013-07-22 Marek Polacek <polacek@redhat.com>
11009
11010 * gimplify.c: Don't include gimple.h twice.
11011
5e5f7673
KT
110122013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11013
11014 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
11015 instead of TARGET_THUMB1.
11016 (Pz): New constraint.
11017 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
11018 encodings.
11019 (compare_negsi_si): Likewise.
11020 (compare_addsi2_op0): Likewise.
11021 (compare_addsi2_op1): Likewise.
11022 (addsi3_carryin_<optab>): Likewise.
11023 (addsi3_carryin_alt2_<optab>): Likewise.
11024 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
11025 for arm_restrict_it.
11026 (subsi3_carryin): Likewise.
11027 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
11028 (minmax_arithsi): Disable for arm_restrict_it.
11029 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
11030 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
11031 (satsi_<SAT:code>_shift): Likewise.
11032 (arm_shiftsi3): Add alternative for 16-bit encoding.
11033 (arm32_movhf): Disable for arm_restrict_it.
11034 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
11035 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
11036
859abddd
SN
110372013-07-22 Sofiane Naci <sofiane.naci@arm.com>
11038
11039 * config/arm/arm.md (attribute "insn"): Delete.
11040 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
11041 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
11042 (not_shiftsi): Update for attribute change.
11043 (not_shiftsi_compare0): Likewise.
11044 (not_shiftsi_compare0_scratch): Likewise.
11045 (arm_one_cmplsi2): Likewise.
11046 (thumb1_one_cmplsi2): Likewise.
11047 (notsi_compare0): Likewise.
11048 (notsi_compare0_scratch): Likewise.
11049 (thumb1_movdi_insn): Likewise.
11050 (arm_movsi_insn): Likewise.
11051 (movhi_insn_arch4): Likewise.
11052 (movhi_bytes): Likewise.
11053 (arm_movqi_insn): Likewise.
11054 (thumb1_movqi_insn): Likewise.
11055 (arm32_movhf): Likewise.
11056 (thumb1_movhf): Likewise.
11057 (arm_movsf_soft_insn): Likewise.
11058 (thumb1_movsf_insn): Likewise.
11059 (thumb_movdf_insn): Likewise.
11060 (movsicc_insn): Likewise.
11061 (movsfcc_soft_insn): Likewise.
11062 (and_scc): Likewise.
11063 (cond_move): Likewise.
11064 (if_move_not): Likewise.
11065 (if_not_move): Likewise.
11066 (if_shift_move): Likewise.
11067 (if_move_shift): Likewise.
11068 (if_shift_shift): Likewise.
11069 (if_not_arith): Likewise.
11070 (if_arith_not): Likewise.
11071 (cond_move_not): Likewise.
11072 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
11073 (neon_mov<mode>): Likewise.
11074 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
11075 (thumb2_movsi_vfp): Likewise.
11076 (movsf_vfp): Likewise.
11077 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
11078 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11079 change.
859abddd
SN
11080 (cortexa7_older_only): Likewise.
11081 (cortexa7_younger): Likewise.
11082 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
11083 (1020alu_shift_op): Likewise.
11084 (1020alu_shift_reg_op): Likewise.
11085 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
11086 (alu_shift_op): Likewise.
11087 (alu_shift_reg_op): Likewise.
11088 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
11089 (11_alu_shift_op): Likewise.
11090 (11_alu_shift_reg_op): Likewise.
11091 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
11092 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11093 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11094 change.
859abddd
SN
11095 (cortex_a15_alu_shift): Likewise.
11096 (cortex_a15_alu_shift_reg): Likewise.
11097 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
11098 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
11099 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
11100 change.
859abddd 11101 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
11102 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11103 change.
859abddd
SN
11104 (cortex_a7_alu_reg): Likewise.
11105 (cortex_a7_alu_shift): Likewise.
11106 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
11107 (cortex_a8_alu_shift): Likewise.
11108 (cortex_a8_alu_shift_reg): Likewise.
11109 (cortex_a8_mov): Likewise.
11110 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
11111 (cortex_a9_dp_shift): Likewise.
11112 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
11113 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
11114 (cortex_r4_mov): Likewise.
11115 (cortex_r4_alu_shift): Likewise.
11116 (cortex_r4_alu_shift_reg): Likewise.
11117 * config/arm/fa526.md (526_alu_op): Update for attribute change.
11118 (526_alu_shift_op): Likewise.
11119 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
11120 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
11121 (626te_alu_shift_op): Likewise.
11122 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
11123 (726te_alu_op): Likewise.
11124 (726te_alu_shift_op): Likewise.
11125 (726te_alu_shift_reg_op): Likewise.
11126 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
11127 (mp626_alu_shift_op): Likewise.
11128 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
11129 (pj4_alu_e1_conds): Likewise.
11130 (pj4_alu): Likewise.
11131 (pj4_alu_conds): Likewise.
11132 (pj4_shift): Likewise.
11133 (pj4_shift_conds): Likewise.
11134 (pj4_alu_shift): Likewise.
11135 (pj4_alu_shift_conds): Likewise.
11136
95b97fac
KT
111372013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11138
11139 * config/arm/predicates.md (shiftable_operator_strict_it):
11140 New predicate.
11141 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
11142 Disable cond_exec version for arm_restrict_it.
11143 (thumb2_smaxsi3): Convert to generate cond_exec.
11144 (thumb2_sminsi3): Likewise.
11145 (thumb32_umaxsi3): Likewise.
11146 (thumb2_uminsi3): Likewise.
11147 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
11148 (thumb2_neg_abssi2): Likewise.
11149 (thumb2_mov_scc): Add alternative for 16-bit encoding.
11150 (thumb2_movsicc_insn): Adjust alternatives.
11151 (thumb2_mov_negscc): Disable for arm_restrict_it.
11152 (thumb2_mov_negscc_strict_it): New pattern.
11153 (thumb2_mov_notscc_strict_it): New pattern.
11154 (thumb2_mov_notscc): Disable for arm_restrict_it.
11155 (thumb2_ior_scc): Likewise.
11156 (thumb2_ior_scc_strict_it): New pattern.
11157 (thumb2_cond_move): Adjust for arm_restrict_it.
11158 (thumb2_cond_arith): Disable for arm_restrict_it.
11159 (thumb2_cond_arith_strict_it): New pattern.
11160 (thumb2_cond_sub): Adjust for arm_restrict_it.
11161 (thumb2_movcond): Likewise.
11162 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
11163 (thumb2_zero_extendhisi2_v6): Likewise.
11164 (thumb2_zero_extendqisi2_v6): Likewise.
11165 (orsi_notsi_si): Likewise.
11166 (orsi_not_shiftsi_si): Likewise.
11167
d5a6ef82
GJL
111682013-07-22 Georg-Johann Lay <avr@gjlay.de>
11169
11170 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
11171 instruction sequence is 1 byte shorter.
11172
d9e71154
UB
111732013-07-22 Uros Bizjak <ubizjak@gmail.com>
11174
11175 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
11176 it is not needed after split.
11177
8c6381ec
IS
111782013-07-20 Iain Sandoe <iain@codesourcery.com>
11179
11180 PR target/51784
11181 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
11182 second label for nonlocal goto receivers. Don't output pic base labels
11183 unless we're producing PIC; mark that action unreachable().
11184 (ix86_save_reg): If the function contains a nonlocal label, save the
11185 PIC base reg.
11186 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 11187 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
11188 (update_pic_label_number_if_needed): New.
11189 (machopic_output_function_base_name): Adjust for nonlocal receiver
11190 case.
11191 (machopic_should_output_picbase_label): New.
11192 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
11193 (nonlocal_goto_receiver): New insn and split.
11194
d05d0709
JG
111952013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
11196
11197 * config/aarch64/aarch64-builtins.c
11198 (aarch64_fold_builtin): Fold abs in all modes.
11199 * config/aarch64/aarch64-simd-builtins.def
11200 (abs): Enable for all modes.
11201 * config/aarch64/arm_neon.h
11202 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
11203 (vabs_f64): Add missing intrinsic.
11204
ba590e63
IB
112052013-07-19 Ian Bolton <ian.bolton@arm.com>
11206
11207 * config/aarch64/arm_neon.h (vabs_s64): New function
11208
02371798
GJL
112092013-07-19 Georg-Johann Lay <avr@gjlay.de>
11210
11211 PR target/57516
11212 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
11213 * config/avr/avr.md (adjust_len): Add `round'.
11214 * config/avr/avr-protos.h (avr_out_round): New prototype.
11215 (avr_out_plus): Add `out_label' argument.
11216 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
11217 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
11218 Handle the case where `insn' is just a pattern.
11219 (avr_out_bitop): Handle the case where `insn' is just a pattern.
11220 (avr_out_round): New function.
11221 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
11222
12211b99 112232013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
11224
11225 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11226 Add check for flag_stack_usage to handle -fstack-usage support
11227
12211b99 112282013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
11229
11230 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
11231 interaction for new Power8 flags and VSX.
11232
df9dda2d
ST
112332013-07-18 Sriraman Tallam <tmsriram@google.com>
11234
11235 PR middle-end/57698
11236 * tree-inline.c (expand_call_inline): Emit errors during
11237 early_inlining only if optimization is not turned on.
11238
0f9cdef4
DM
112392013-07-18 David Malcolm <dmalcolm@redhat.com>
11240
11241 * passes.def: New.
11242
11243 * passes.c (init_optimization_passes): Move the construction of
11244 the pass hierarchy into a new passes.def file.
11245
11246 * Makefile.in (passes.o): Add dependency on passes.def.
11247
2efa4087
DM
112482013-07-18 David Malcolm <dmalcolm@redhat.com>
11249
11250 * passes.c (init_optimization_passes): Introduce macros for
11251 constructing the tree of passes (INSERT_PASSES_AFTER,
11252 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
11253 TERMINATE_PASS_LIST).
11254
bc404e1b
VM
112552013-07-18 Vladimir Makarov <vmakarov@redhat.com>
11256 Wei Mi <wmi@google.com>
11257
11258 PR rtl-optimization/57878
11259 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
11260 top.
11261 (reload_pseudo_compare_func): Check nregs first for reload
11262 pseudos.
11263
d675843f
DM
112642013-07-18 David Malcolm <dmalcolm@redhat.com>
11265
11266 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
11267
c7b3b99f 112682013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
11269
11270 * read-rtl.c (validate_const_int): Once an invalid character is
11271 seen, quit the loop.
11272
11273 * gengtype.c (write_roots): Similarly once we find the "deletable"
11274 or "if_marked" option.
11275
52fceb44
SN
112762013-07-18 Sofiane Naci <sofiane.naci@arm.com>
11277
11278 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
11279 "xtab" and "sat". Move value "clz" from here to ...
11280 (attriubte "type"): ... here.
11281 (satsi_<SAT:code>): Delete "insn" attribute.
11282 (satsi_<SAT:code>_shift): Likewise.
11283 (arm_zero_extendqisi2addsi): Likewise.
11284 (arm_extendqisi2addsi): Likewise.
11285 (clzsi2): Update for attribute changes.
11286 (rbitsi2): Likewise.
371e77e3
UB
11287 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
11288 attribute.
52fceb44
SN
11289 (arm_usatsihi): Likewise.
11290 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
11291
006bd006
SN
112922013-07-18 Sofiane Naci <sofiane.naci@arm.com>
11293
11294 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
11295 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
11296 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
11297 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
11298 in alphabetical order.
11299 (attribute "core_cycles"): Update for attribute changes.
11300 (arm_addsi3): Likewise.
11301 (addsi3_compare0): Likewise.
11302 (addsi3_compare0_scratch): Likewise.
11303 (addsi3_compare_op1): Likewise.
11304 (addsi3_compare_op2): Likewise.
11305 (compare_addsi2_op0): Likewise.
11306 (compare_addsi2_op1): Likewise.
11307 (addsi3_carryin_shift_<optab>): Likewise.
11308 (subsi3_carryin_shift): Likewise.
11309 (rsbsi3_carryin_shift): Likewise.
11310 (arm_subsi3_insn): Likewise.
11311 (subsi3_compare0): Likewise.
11312 (subsi3_compare): Likewise.
11313 (arm_andsi3_insn): Likewise.
11314 (thumb1_andsi3_insn): Likewise.
11315 (andsi3_compare0): Likewise.
11316 (andsi3_compare0_scratch): Likewise.
11317 (zeroextractsi_compare0_scratch
11318 (andsi_not_shiftsi_si): Likewise.
11319 (iorsi3_insn): Likewise.
11320 (iorsi3_compare0): Likewise.
11321 (iorsi3_compare0_scratch): Likewise.
11322 (arm_xorsi3): Likewise.
11323 (thumb1_xorsi3_insn): Likewise.
11324 (xorsi3_compare0): Likewise.
11325 (xorsi3_compare0_scratch): Likewise.
11326 (satsi_<SAT:code>_shift): Likewise.
11327 (rrx): Likewise.
11328 (arm_shiftsi3): Likewise.
11329 (shiftsi3_compare0): Likewise.
11330 (not_shiftsi): Likewise.
11331 (not_shiftsi_compare0): Likewise.
11332 (not_shiftsi_compare0_scratch): Likewise.
11333 (arm_one_cmplsi2): Likewise.
11334 (thumb_one_complsi2): Likewise.
11335 (notsi_compare0): Likewise.
11336 (notsi_compare0_scratch): Likewise.
11337 (thumb1_zero_extendhisi2): Likewise.
11338 (arm_zero_extendhisi2): Likewise.
11339 (arm_zero_extendhisi2_v6): Likewise.
11340 (arm_zero_extendhisi2addsi): Likewise.
11341 (thumb1_zero_extendqisi2): Likewise.
11342 (thumb1_zero_extendqisi2_v6): Likewise.
11343 (arm_zero_extendqisi2): Likewise.
11344 (arm_zero_extendqisi2_v6): Likewise.
11345 (arm_zero_extendqisi2addsi): Likewise.
11346 (thumb1_extendhisi2): Likewise.
11347 (arm_extendhisi2): Likewise.
11348 (arm_extendhisi2_v6): Likewise.
11349 (arm_extendqisi): Likewise.
11350 (arm_extendqisi_v6): Likewise.
11351 (arm_extendqisi2addsi): Likewise.
11352 (thumb1_extendqisi2): Likewise.
11353 (thumb1_movdi_insn): Likewise.
11354 (arm_movsi_insn): Likewise.
11355 (movsi_compare0): Likewise.
11356 (movhi_insn_arch4): Likewise.
11357 (movhi_bytes): Likewise.
11358 (arm_movqi_insn): Likewise.
11359 (thumb1_movqi_insn): Likewise.
11360 (arm32_movhf): Likewise.
11361 (thumb1_movhf): Likewise.
11362 (arm_movsf_soft_insn): Likewise.
11363 (thumb1_movsf_insn): Likewise.
11364 (movdf_soft_insn): Likewise.
11365 (thumb_movdf_insn): Likewise.
11366 (arm_cmpsi_insn): Likewise.
11367 (cmpsi_shiftsi): Likewise.
11368 (cmpsi_shiftsi_swp): Likewise.
11369 (arm_cmpsi_negshiftsi_si): Likewise.
11370 (movsicc_insn): Likewise.
11371 (movsfcc_soft_insn): Likewise.
11372 (arith_shiftsi): Likewise.
11373 (arith_shiftsi_compare0
11374 (arith_shiftsi_compare0_scratch
11375 (sub_shiftsi): Likewise.
11376 (sub_shiftsi_compare0
11377 (sub_shiftsi_compare0_scratch
11378 (and_scc): Likewise.
11379 (cond_move): Likewise.
11380 (if_plus_move): Likewise.
11381 (if_move_plus): Likewise.
11382 (if_move_not): Likewise.
11383 (if_not_move): Likewise.
11384 (if_shift_move): Likewise.
11385 (if_move_shift): Likewise.
11386 (if_shift_shift): Likewise.
11387 (if_not_arith): Likewise.
11388 (if_arith_not): Likewise.
11389 (cond_move_not): Likewise.
11390 (thumb1_ashlsi3): Set type attribute.
11391 (thumb1_ashrsi3): Likewise.
11392 (thumb1_lshrsi3): Likewise.
11393 (thumb1_rotrsi3): Likewise.
11394 (shiftsi3_compare0_scratch): Likewise.
11395 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
11396 (neon_mov<mode>): Likewise.
371e77e3
UB
11397 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
11398 attribute changes.
006bd006
SN
11399 (thumb2_movsi_insn): Likewise.
11400 (thumb2_cmpsi_neg_shiftsi): Likewise.
11401 (thumb2_extendqisi_v6): Likewise.
11402 (thumb2_zero_extendhisi2_v6): Likewise.
11403 (thumb2_zero_extendqisi2_v6): Likewise.
11404 (thumb2_shiftsi3_short): Likewise.
11405 (thumb2_addsi3_compare0_scratch): Likewise.
11406 (orsi_not_shiftsi_si): Likewise.
11407 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
11408 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
11409 changes.
11410 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
11411 (1020alu_shift_op): Likewise.
11412 (1020alu_shift_reg_op): Likewise.
11413 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
11414 (alu_shift_op): Likewise.
11415 (alu_shift_reg_op): Likewise.
11416 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
11417 (11_alu_shift_op): Likewise.
11418 (11_alu_shift_reg_op): Likewise.
11419 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
11420 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11421 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11422 changes.
006bd006
SN
11423 (cortex_a15_alu_shift): Likewise.
11424 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
11425 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
11426 changes.
006bd006
SN
11427 (cortex_a5_alu_shift): Likewise.
11428 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
11429 changes.
11430 (cortex_a53_alu_shift): Likewise.
11431 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11432 changes.
11433 (cortex_a7_alu_reg): Likewise.
11434 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
11435 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
11436 changes.
006bd006
SN
11437 (cortex_a8_alu_shift): Likewise.
11438 (cortex_a8_alu_shift_reg): Likewise.
11439 (cortex_a8_mov): Likewise.
11440 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
11441 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
11442 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
11443 changes.
11444 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
11445 changes.
006bd006
SN
11446 (cortex_r4_mov): Likewise.
11447 (cortex_r4_alu_shift): Likewise.
11448 (cortex_r4_alu_shift_reg): Likewise.
11449 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
11450 (526_alu_shift_op): Likewise.
11451 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
11452 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
11453 (626te_alu_shift_op): Likewise.
11454 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
11455 (726te_alu_op): Likewise.
11456 (726te_alu_shift_op): Likewise.
11457 (726te_alu_shift_reg_op): Likewise.
11458 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
11459 (mp626_alu_shift_op): Likewise.
11460 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
11461 (pj4_alu_e1_conds): Likewise.
11462 (pj4_alu): Likewise.
11463 (pj4_alu_conds): Likewise.
11464 (pj4_shift): Likewise.
11465 (pj4_shift_conds): Likewise.
11466 (pj4_alu_shift): Likewise.
11467 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
11468 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11469 changes.
006bd006
SN
11470 (cortexa7_older_only): Likewise.
11471 (cortexa7_younger): Likewise.
11472
651df1b2
DM
114732013-07-18 David Malcolm <dmalcolm@redhat.com>
11474
11475 * ipa-pure-const.c (generate_summary): Rename to...
11476 (pure_const_generate_summary): ... this.
11477
ea717bd7
IS
114782013-07-17 Iain Sandoe <iain@codesourcery.com>
11479
11480 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
11481
a1259a13
YR
114822013-07-17 Yvan Roux <yvan.roux@linaro.org>
11483
11484 PR target/57909
11485 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
11486 usage in HI mode.
11487
167f68ed
AK
114882013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11489
11490 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
11491 enabled without -march=zEC12.
11492 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
11493 flags to be set.
11494
f900a982
MR
114952013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11496
11497 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
11498 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
11499 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
11500 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
11501 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
11502 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
11503 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
11504 ISA_HAS_FP4.
11505 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
11506 and ISA_HAS_NMADD3_NMSUB3.
11507 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
11508 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
11509 (nmsub4<mode>, nmsub3<mode>): Likewise.
11510 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
11511
d4ed27eb
MR
115122013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11513
11514 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
11515 TARGET_MIPS5400 checking.
11516
7a5add18
PB
115172013-07-16 Jakub Jelinek <jakub@redhat.com>
11518 Peter Bergner <bergner@vnet.ibm.com>
11519
11520 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
11521 registers in the comment.
11522 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
11523 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
11524 rather than FIRST_PSEUDO_REGISTERS.
11525
115262013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
11527
11528 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
11529 enable extra ISA flags with TARGET_HTM.
11530
d2ab0929
MR
115312013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11532
11533 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
11534 Fix comment typos.
11535
839c74bc
CH
115362013-07-15 Cong Hou <congh@google.com>
11537
11538 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
11539 in compare function for sorting.
11540
7a5add18 115412013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
11542
11543 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
11544 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
11545 * config/rs6000/rs6000.opt: Add -mhtm option.
11546 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
11547 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
11548 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11549 __HTM__ if the HTM instructions are available.
11550 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
11551 htm_spr_reg_operand): New define_predicates.
11552 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
11553 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
11554 Include htm.md.
11555 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
11556 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
11557 HTM builtin functions.
11558 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
11559 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
11560 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
11561 (rs6000_builtin_mask_calculate): Likewise.
11562 (rs6000_option_override_internal): Likewise.
11563 (bdesc_htm): Add new HTM builtin support.
11564 (htm_spr_num): New function.
11565 (htm_spr_regno): Likewise.
11566 (rs6000_htm_spr_icode): Likewise.
11567 (htm_expand_builtin): Likewise.
11568 (htm_init_builtins): Likewise.
11569 (rs6000_expand_builtin): Add support for HTM builtin functions.
11570 (rs6000_init_builtins): Likewise.
371e77e3
UB
11571 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
11572 option.
0258b6e4
PB
11573 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
11574 (TARGET_HTM, MASK_HTM): Define macros.
11575 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
11576 (FIXED_REGISTERS): Likewise.
11577 (CALL_USED_REGISTERS): Likewise.
11578 (CALL_REALLY_USED_REGISTERS): Likewise.
11579 (REG_ALLOC_ORDER): Likewise.
11580 (enum reg_class): Likewise.
11581 (REG_CLASS_NAMES): Likewise.
11582 (REG_CLASS_CONTENTS): Likewise.
11583 (REGISTER_NAMES): Likewise.
11584 (ADDITIONAL_REGISTER_NAMES): Likewise.
11585 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
11586 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
11587 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
11588 * config/rs6000/htm.md: New file.
11589 * config/rs6000/htmintrin.h: New file.
11590 * config/rs6000/htmxlintrin.h: New file.
11591
87dd8ab0
MS
115922013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
11593
11594 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
11595 Define SYMBOL_TINY_GOT, update comment.
11596 * config/aarch64/aarch64.c
11597 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
11598 (aarch64_expand_mov_immediate): Likewise.
11599 (aarch64_print_operand): Likewise.
11600 (aarch64_classify_symbol): Likewise.
11601 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
11602 (ldr_got_tiny): Define.
11603
52d676b6
TG
116042013-07-13 Tobias Grosser <tobias@grosser.es>
11605
11606 PR tree-optimization/54094
11607 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
11608 scheduling dimension for the parallelism check from the polyhedral
11609 information in the AST.
11610 * graphite-dependences.c (carries_deps): Do not assume the schedule is
11611 in 2D + 1 form.
11612
286e8fc1
JM
116132013-07-13 Jason Merrill <jason@redhat.com>
11614
11615 * print-tree.c (debug_vec_tree): Use debug_raw.
11616 (debug_raw (vec<tree, va_gc> &)): New.
11617 (debug_raw (vec<tree, va_gc> *)): New.
11618 * tree.h: Declare them.
11619
e43257e8
BC
116202013-07-13 Bin Cheng <bin.cheng@arm.com>
11621
11622 * ifcvt.c (ifcvt_after_combine): New static variable.
11623 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
11624 for size.
11625 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
11626 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
11627 rest_of_handle_if_after_reload): Pass new argument for if_convert.
11628
da582d46
MR
116292013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
11630
11631 * config/mips/mips.c (mips_expand_call): Remove empty statement.
11632
18b0ea8f
MM
116332013-07-12 Michael Matz <matz@suse.de>
11634
11635 PR middle-end/55771
11636 * convert.c (convert_to_real): Reject non-float inner types.
11637
e4f0f84d
TB
116382013-07-12 Tejas Belagod <tejas.belagod@arm.com>
11639
11640 * config/aarch64/aarch64-protos.h
11641 (aarch64_simd_immediate_valid_for_move): Remove.
11642 * config/aarch64/aarch64.c (simd_immediate_info): New member.
11643 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
11644 cases.
11645 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
11646
76500022
SE
116472013-07-11 Steve Ellcey <sellcey@mips.com>
11648
11649 * config/mips/mips.c (mips_conditional_register_usage): Do not
11650 use t[0-7] registers in MIPS16 mode when optimizing for size.
11651
78039734
ST
116522013-07-11 Sriraman Tallam <tmsriram@google.com>
11653
11654 * config/i386/i386.c (dispatch_function_versions): Fix array
11655 indexing of function_version_info to match actual_versions.
11656
7b24b675
TJ
116572013-07-11 Teresa Johnson <tejohnson@google.com>
11658
11659 * vec.h (struct va_gc): Move release out-of-line.
11660 (va_gc::release): Call ggc_free on released vec.
11661
85d4cbb8
UW
116622013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11663
11664 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
11665 Require GOT register as additional operand in UNSPEC.
11666 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
11667 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
11668 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
11669 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
11670 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
11671 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
11672 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
11673
52b3f9e2
GJL
116742013-07-11 Georg-Johann Lay <avr@gjlay.de>
11675
11676 PR target/57631
11677 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
11678 name seen by assembler/linker rather if available.
11679
3f3e266e
AS
116802013-07-11 Andreas Schwab <schwab@suse.de>
11681
11682 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
11683
21231ca6
VM
116842013-07-10 Vladimir Makarov <vmakarov@redhat.com>
11685
371e77e3 11686 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 11687
d331d374
JM
116882013-07-10 Joseph Myers <joseph@codesourcery.com>
11689
673c2f63
JM
11690 * doc/tm.texi.in: Move hook documentation to ....
11691 * target.def: ... here.
11692
d331d374
JM
11693 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
11694 text on @hook line.
11695 * doc/tm.texi: Regenerate.
11696
dfeadaa0
PC
116972013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
11698
11699 PR c++/57869
11700 * doc/invoke.texi: Document -Wconditionally-supported.
11701
bb6f2bac
GJL
117022013-07-10 Georg-Johann Lay <avr@gjlay.de>
11703
11704 PR target/57844
11705 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
11706 of my_fp.
11707
5219b232
GJL
117082013-07-10 Georg-Johann Lay <avr@gjlay.de>
11709
11710 PR target/57506
11711 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
11712 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
11713 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
11714 Remove duplicate devices.
11715 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
11716 * config/avr/t-multilib: Regenerate.
11717 * config/avr/avr-tables.opt: Regenerate.
11718 * doc/avr-mmcu.texi: Regenerate.
11719
283045c0
GJL
117202013-07-10 Georg-Johann Lay <avr@gjlay.de>
11721
11722 PR target/56987
11723 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
11724
ceb2d59f 117252013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 11726
ceb2d59f
GS
11727 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
11728 the cost of MULT when optimizing for size.
11729
055e0a99
JBG
117302013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11731
11732 * config/cr16/cr16-protos.h: Don't include target.h.
11733
ef43e868
JM
117342013-07-09 Joseph Myers <joseph@codesourcery.com>
11735
11736 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
11737 adjust register size for TDmode and TFmode for VSX registers.
11738
4a283fdf
KT
117392013-07-08 Kai Tietz <ktietz@redhat.com>
11740
11741 PR target/56892
11742 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
11743 hook_bool_const_tree_true.
11744
2cf4c39e
AK
117452013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11746
11747 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
11748 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
11749 * config/s390/s390.md: Define FPR*_REGNUM constants.
11750 Fix FPR2_REGNUM constant (18 -> 17).
11751 ("*trunc<BFP:mode><DFP_ALL:mode>2")
11752 ("*trunc<DFP_ALL:mode><BFP:mode>2")
11753 ("trunc<BFP:mode><DFP_ALL:mode>2")
11754 ("trunc<DFP_ALL:mode><BFP:mode>2")
11755 ("*extend<BFP:mode><DFP_ALL:mode>2")
11756 ("*extend<DFP_ALL:mode><BFP:mode>2")
11757 ("extend<BFP:mode><DFP_ALL:mode>2")
11758 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
11759 FPR4_REGNUM.
11760
e6ac0270 117612013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 11762
6a2fa4b2 11763 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 11764
b89b22fc
AK
117652013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11766
11767 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
11768 and cfun_fpr_bit_p to cfun_fpr_save_p.
11769 (s390_frame_area, s390_register_info, s390_frame_info)
11770 (s390_emit_prologue, s390_emit_epilogue)
11771 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
11772 register numbers.
11773 * config/s390/s390.h: Define *_REGNUM macros for floating point
11774 register numbers.
11775
07f398aa
EB
117762013-07-08 Eric Botcazou <ebotcazou@adacore.com>
11777
11778 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
11779
75fefa91
PCC
117802013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
11781
11782 PR rtl-optimization/57786
11783 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
11784 and break out of the loop when it is set to false.
11785
046f1eee
JJ
117862013-07-08 Jakub Jelinek <jakub@redhat.com>
11787
8140c065
JJ
11788 PR target/57819
11789 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
11790 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
11791 (const_int 63)) 0)).
11792 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
11793 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
11794 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
11795
046f1eee
JJ
11796 PR rtl-optimization/57829
11797 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
11798 mask bits outside of mode are just sign-extension from mode to HWI.
11799
930b700b
MZ
118002013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
11801
11802 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
11803 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
11804 adjust_address instead of change_address to keep info about alignment.
11805 (emit_strmov): Remove.
11806 (emit_memmov): New function.
11807 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
11808 (expand_movmem_epilogue): Likewise and return updated rtx for
11809 destination.
11810 (expand_constant_movmem_prologue): Likewise and return updated rtx for
11811 destination and source.
11812 (decide_alignment): Refactor, handle vector_loop.
11813 (ix86_expand_movmem): Likewise.
11814 (ix86_expand_setmem): Likewise.
11815 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
11816
7b9d1bd8
UB
118172013-07-07 Uros Bizjak <ubizjak@gmail.com>
11818
11819 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
11820 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
11821
eabb5f48
UB
118222013-07-06 Uros Bizjak <ubizjak@gmail.com>
11823
11824 * config/i386/sse.md (sse_movlhps): Change alternative 3
11825 of operand 2 to "m".
11826
118272013-07-06 Uros Bizjak <ubizjak@gmail.com>
11828
11829 PR target/57807
11830 * config/i386/sse.md (iptr): New mode attribute.
11831 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
11832 (<sse>_vm<plusminus_insn><mode>3): Ditto.
11833 (<sse>_vmmul<mode>3): Ditto.
11834 (<sse>_vmdiv<mode>3): Ditto.
11835 (sse_vmrcpv4sf2): Ditto.
11836 (<sse>_vmsqrt<mode>2): Ditto.
11837 (sse_vmrsqrtv4sf2): Ditto.
11838 (<sse>_vm<code><mode>3): Ditto.
11839 (avx_vmcmp<mode>3): Ditto.
11840 (<sse>_vmmaskcmp<mode>3): Ditto.
11841 (<sse>_comi): Ditto.
11842 (<sse>_ucomi): Ditto.
11843 (*xop_vmfrcz_<mode>): Ditto.
11844 (*fmai_fmadd_<mode>): Ditto.
11845 (*fmai_fmsub_<mode>): Ditto.
11846 (*fmai_fnmadd_<mode>): Ditto.
11847 (*fmai_fnmsub_<mode>): Ditto.
11848 (*fma4i_vmfmadd_<mode>): Ditto.
11849 (*fma4i_vmfmsub_<mode>): Ditto.
11850 (*fma4i_vmfnmadd_<mode>): Ditto.
11851 (*fma4i_vmfnmsub_<mode>): Ditto.
11852 (*xop_vmfrcz_<mode>): Ditto.
11853 (sse_cvtps2pi): Ditto.
11854 (sse_cvttps2pi): Ditto.
11855 (sse_cvtss2si): Ditto.
11856 (sse_cvtss2si_2): Ditto.
11857 (sse_cvtss2siq_2): Ditto.
11858 (sse_cvttss2si): Ditto.
11859 (sse_cvttss2siq): Ditto.
11860 (sse_cvtsd2si): Ditto.
11861 (sse_cvtsd2si_2): Ditto.
11862 (sse_cvtsd2siq_2): Ditto.
11863 (sse_cvttsd2si): Ditto.
11864 (sse_cvttsd2siq): Ditto.
11865 (sse_cvtsd2ss): Ditto.
11866 (sse_cvtss2sd): Ditto.
11867 (avx2_pbroadcast<mode>): Ditto.
11868 (avx2_pbroadcast<mode>_1): Ditto.
11869 (*avx_vperm_broadcast_v4sf): Ditto.
11870
11871 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
11872 (sse_movlhps): Ditto.
11873 (sse_storehps): Ditto.
11874 (sse_loadhps): Ditto.
11875 (sse_storelps): Ditto.
11876 (sse_loadlps): Ditto.
11877 (*vec_concatv4sf): Ditto.
11878 (*vec_interleave_highv2df): Ditto.
11879 (*vec_interleave_lowv2df): Ditto.
11880 (*vec_extractv2df_1_sse): Ditto.
11881 (*vec_extractv2df_0_sse): Ditto.
11882 (sse2_storelpd): Ditto.
11883 (sse2_loadlpd): Ditto.
11884 (sse2_movsd): Ditto.
11885 (*vec_concatv4si): Ditto.
11886 (vec_concatv2di): Ditto.
11887
11888 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
11889 for Intel asm dialect.
11890 (mmx_punpcklwd): Ditto.
11891 (mmx_punpckldq): Ditto.
11892
11893 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
11894 for intel assembler dialect.
11895
1f6eac90
JJ
118962013-07-06 Jakub Jelinek <jakub@redhat.com>
11897
11898 PR target/29776
11899 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
11900 for BUILT_IN_C{LZ,LRSB}*.
11901 * tree.h (CASE_INT_FN): Add FN##IMAX case.
11902 * tree-vrp.c (extract_range_basic): Handle
11903 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
11904 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
11905 fall thru to code calling set_value*.
11906 * builtins.c (expand_builtin): Remove *IMAX cases.
11907 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
11908 if width is bigger than 2*HWI.
11909
2b778c9d
VM
119102013-07-05 Vladimir Makarov <vmakarov@redhat.com>
11911
11912 PR rtl-optimization/55342
11913 * lra-int.h (lra_subreg_reload_pseudos): New.
11914 * lra.c: Add undoing optional reloads to the block diagram.
11915 (lra_subreg_reload_pseudos): New.
11916 (lra_optional_reload_pseudos): Change comments.
11917 (lra): Init and clear lra_subreg_reload_pseudos. Clear
11918 lra_optional_reload_pseudos after undo transformations.
11919 * lra-assigns.c (pseudo_prefix_title): New.
11920 (lra_setup_reg_renumber): Use it.
11921 (spill_for): Ditto. Check subreg reload pseudos too.
11922 (assign_by_spills): Consider subreg reload pseudos too.
11923 * lra-constraints.c (simplify_operand_subreg): Use
11924 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
11925 (curr_insn_transform): Recognize and do optional reloads.
11926 (undo_optional_reloads): New.
11927 (lra_undo_inheritance): Call undo_optional_reloads.
11928
207156e4
TQ
119292013-07-05 Thomas Quinot <quinot@adacore.com>
11930
11931 * tree-complex.c (expand_complex_operations_1): Fix typo.
11932
8990e73a
TB
119332013-07-04 Tejas Belagod <tejas.belagod@arm.com>
11934
11935 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
11936 (tune_params): New member 'const vec_costs'.
11937 * config/aarch64/aarch64.c (generic_vector_cost): New.
11938 (generic_tunings): New member 'generic_vector_cost'.
11939 (aarch64_builtin_vectorization_cost): New.
11940 (aarch64_add_stmt_cost): New.
11941 (TARGET_VECTORIZE_ADD_STMT_COST): New.
11942 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
11943
f7bc421d
JJ
119442013-07-03 Jakub Jelinek <jakub@redhat.com>
11945
11946 PR target/57777
11947 * config/i386/predicates.md (vsib_address_operand): Disallow
11948 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
11949
e90d1568
HPN
119502013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
11951
11952 PR middle-end/55030
11953 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
11954 expand_builtin_setjmp_receiver.
11955 (expand_label): Adjust, call expand_builtin_setjmp_receiver
11956 with NULL for the label parameter.
11957 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
11958 the frame-pointer. Adjust comments.
11959 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
11960 only if LABEL is non-NULL.
11961
cbd7413b
YZ
119622013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
11963
11964 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
11965 (ARM_ABI_AAPCS64): Ditto.
11966 (arm_abi): Ditto.
11967 (ARM_DEFAULT_ABI): Ditto.
11968
dec11868
JG
119692013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
11970
11971 * config/aarch64/aarch64-builtins.c
11972 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
11973 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
11974 (st1): Likewise.
11975 * config/aarch64/aarch64-simd.md
11976 (aarch64_ld1<VALL:mode>): New.
11977 (aarch64_st1<VALL:mode>): Likewise.
11978 * config/aarch64/arm_neon.h
11979 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
11980
786fb9b6
ST
119812013-07-02 Sriraman Tallam <tmsriram@google.com>
11982
0ba6aff3
UB
11983 * config/i386/i386.c (gate_insert_vzeroupper): Check if
11984 target ISA is AVX.
786fb9b6
ST
11985 (ix86_option_override_internal):Turn on all -mavx target flags by
11986 default as they are dependent on AVX anyway.
11987
4b043553
CC
119882013-07-02 Cary Coutant <ccoutant@google.com>
11989
11990 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
11991 deterministic hash.
11992 (loc_checksum_ordered): Likewise.
11993 (hash_loc_operands): Remove inline keyword.
11994
c4e87a13
JJ
119952013-07-02 Jakub Jelinek <jakub@redhat.com>
11996
11997 PR tree-optimization/57741
11998 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
11999 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
12000 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
12001 Allow REAL_CST step_exprs if flag_associative_math.
12002 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
12003
26366d28
IB
120042013-07-02 Ian Bolton <ian.bolton@arm.com>
12005
0ba6aff3 12006 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 12007
2879bb2b
IB
120082013-07-02 Ian Bolton <ian.bolton@arm.com>
12009
12010 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
12011
afc5e8a6
KT
120122013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12013
12014 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
12015 encoding.
12016 (iorsi3_insn): Likewise.
12017 (arm_xorsi3): Likewise.
12018
31f8442b
SN
120192013-07-01 Sofiane Naci <sofiane.naci@arm.com>
12020
12021 * arm.md (attribute "wtype"): Delete. Move attribute values from here
12022 to ...
12023 (attribute "type"): ... here, and prefix with "wmmx_".
12024 (attribute "core_cycles"): Update for attribute changes.
12025 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
12026 (tbcstv4hi): Likewise.
12027 (tbcstv2si): Likewise.
12028 (iwmmxt_iordi3): Likewise.
12029 (iwmmxt_xordi3): Likewise.
12030 (iwmmxt_anddi3): Likewise.
12031 (iwmmxt_nanddi3): Likewise.
12032 (iwmmxt_arm_movdi): Likewise.
12033 (iwmmxt_movsi_insn): Likewise.
12034 (mov<mode>_internal): Likewise.
12035 (and<mode>3_iwmmxt): Likewise.
12036 (ior<mode>3_iwmmxt): Likewise.
12037 (xor<mode>3_iwmmxt): Likewise.
12038 (add<mode>3_iwmmxt): Likewise.
12039 (ssaddv8qi3): Likewise.
12040 (ssaddv4hi3): Likewise.
12041 (ssaddv2si3): Likewise.
12042 (usaddv8qi3): Likewise.
12043 (usaddv4hi3): Likewise.
12044 (usaddv2si3): Likewise.
12045 (sub<mode>3_iwmmxt): Likewise.
12046 (sssubv8qi3): Likewise.
12047 (sssubv4hi3): Likewise.
12048 (sssubv2si3): Likewise.
12049 (ussubv8qi3): Likewise.
12050 (ussubv4hi3): Likewise.
12051 (ussubv2si3): Likewise.
12052 (mulv4hi3_iwmmxt): Likewise.
12053 (smulv4hi3_highpart): Likewise.
12054 (umulv4hi3_highpart): Likewise.
12055 (iwmmxt_wmacs): Likewise.
12056 (iwmmxt_wmacsz): Likewise.
12057 (iwmmxt_wmacu): Likewise.
12058 (iwmmxt_wmacuz): Likewise.
12059 (iwmmxt_clrdi): Likewise.
12060 (iwmmxt_clrv8qi): Likewise.
12061 (iwmmxt_clr4hi): Likewise.
12062 (iwmmxt_clr2si): Likewise.
12063 (iwmmxt_uavgrndv8qi3): Likewise.
12064 (iwmmxt_uavgrndv4hi3): Likewise.
12065 (iwmmxt_uavgv8qi3): Likewise.
12066 (iwmmxt_uavgv4hi3): Likewise.
12067 (iwmmxt_tinsrb): Likewise.
12068 (iwmmxt_tinsrh): Likewise.
12069 (iwmmxt_tinsrw): Likewise.
12070 (iwmmxt_textrmub): Likewise.
12071 (iwmmxt_textrmsb): Likewise.
12072 (iwmmxt_textrmuh): Likewise.
12073 (iwmmxt_textrmsh): Likewise.
12074 (iwmmxt_textrmw): Likewise.
12075 (iwmxxt_wshufh): Likewise.
12076 (eqv8qi3): Likewise.
12077 (eqv4hi3): Likewise.
12078 (eqv2si3): Likewise.
12079 (gtuv8qi3): Likewise.
12080 (gtuv4hi3): Likewise.
12081 (gtuv2si3): Likewise.
12082 (gtv8qi3): Likewise.
12083 (gtv4hi3): Likewise.
12084 (gtv2si3): Likewise.
12085 (smax<mode>3_iwmmxt): Likewise.
12086 (umax<mode>3_iwmmxt): Likewise.
12087 (smin<mode>3_iwmmxt): Likewise.
12088 (umin<mode>3_iwmmxt): Likewise.
12089 (iwmmxt_wpackhss): Likewise.
12090 (iwmmxt_wpackwss): Likewise.
12091 (iwmmxt_wpackdss): Likewise.
12092 (iwmmxt_wpackhus): Likewise.
12093 (iwmmxt_wpackwus): Likewise.
12094 (iwmmxt_wpackdus): Likewise.
12095 (iwmmxt_wunpckihb): Likewise.
12096 (iwmmxt_wunpckihh): Likewise.
12097 (iwmmxt_wunpckihw): Likewise.
12098 (iwmmxt_wunpckilb): Likewise.
12099 (iwmmxt_wunpckilh): Likewise.
12100 (iwmmxt_wunpckilw): Likewise.
12101 (iwmmxt_wunpckehub): Likewise.
12102 (iwmmxt_wunpckehuh): Likewise.
12103 (iwmmxt_wunpckehuw): Likewise.
12104 (iwmmxt_wunpckehsb): Likewise.
12105 (iwmmxt_wunpckehsh): Likewise.
12106 (iwmmxt_wunpckehsw): Likewise.
12107 (iwmmxt_wunpckelub): Likewise.
12108 (iwmmxt_wunpckeluh): Likewise.
12109 (iwmmxt_wunpckeluw): Likewise.
12110 (iwmmxt_wunpckelsb): Likewise.
12111 (iwmmxt_wunpckelsh): Likewise.
12112 (iwmmxt_wunpckelsw): Likewise.
12113 (ror<mode>3): Likewise.
12114 (ashr<mode>3_iwmmxt): Likewise.
12115 (lshr<mode>3_iwmmxt): Likewise.
12116 (ashl<mode>3_iwmmxt): Likewise.
12117 (ror<mode>3_di): Likewise.
12118 (ashr<mode>3_di): Likewise.
12119 (lshr<mode>3_di): Likewise.
12120 (ashl<mode>3_di): Likewise.
12121 (iwmmxt_wmadds): Likewise.
12122 (iwmmxt_wmaddu): Likewise.
12123 (iwmmxt_tmia): Likewise.
12124 (iwmmxt_tmiaph): Likewise.
12125 (iwmmxt_tmiabb): Likewise.
12126 (iwmmxt_tmiatb): Likewise.
12127 (iwmmxt_tmiabt): Likewise.
12128 (iwmmxt_tmiatt): Likewise.
12129 (iwmmxt_tmovmskb): Likewise.
12130 (iwmmxt_tmovmskh): Likewise.
12131 (iwmmxt_tmovmskw): Likewise.
12132 (iwmmxt_waccb): Likewise.
12133 (iwmmxt_wacch): Likewise.
12134 (iwmmxt_waccw): Likewise.
12135 (iwmmxt_waligni): Likewise.
12136 (iwmmxt_walignr): Likewise.
12137 (iwmmxt_walignr0): Likewise.
12138 (iwmmxt_walignr1): Likewise.
12139 (iwmmxt_walignr2): Likewise.
12140 (iwmmxt_walignr3): Likewise.
12141 (iwmmxt_wsadb): Likewise.
12142 (iwmmxt_wsadh): Likewise.
12143 (iwmmxt_wsadbz): Likewise.
12144 (iwmmxt_wsadhz): Likewise.
12145 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
12146 (iwmmxt_wabsdiffb): Likewise.
12147 (iwmmxt_wabsdiffh): Likewise.
12148 (iwmmxt_wabsdiffw): Likewise.
12149 (iwmmxt_waddsubhx): Likewise
12150 (iwmmxt_wsubaddhx): Likewise.
12151 (addc<mode>3): Likewise.
12152 (iwmmxt_avg4): Likewise.
12153 (iwmmxt_avg4r): Likewise.
12154 (iwmmxt_wmaddsx): Likewise.
12155 (iwmmxt_wmaddux): Likewise.
12156 (iwmmxt_wmaddsn): Likewise.
12157 (iwmmxt_wmaddun): Likewise.
12158 (iwmmxt_wmulwsm): Likewise.
12159 (iwmmxt_wmulwum): Likewise.
12160 (iwmmxt_wmulsmr): Likewise.
12161 (iwmmxt_wmulumr): Likewise.
12162 (iwmmxt_wmulwsmr): Likewise.
12163 (iwmmxt_wmulwumr): Likewise.
12164 (iwmmxt_wmulwl): Likewise.
12165 (iwmmxt_wqmulm): Likewise.
12166 (iwmmxt_wqmulwm): Likewise.
12167 (iwmmxt_wqmulmr): Likewise.
12168 (iwmmxt_wqmulwmr): Likewise.
12169 (iwmmxt_waddbhusm): Likewise.
12170 (iwmmxt_waddbhusl): Likewise.
12171 (iwmmxt_wqmiabb): Likewise.
12172 (iwmmxt_wqmiabt): Likewise.
12173 (iwmmxt_wqmiatb): Likewise.
12174 (iwmmxt_wqmiatt): Likewise.
12175 (iwmmxt_wqmiabbn): Likewise.
12176 (iwmmxt_wqmiabtn): Likewise.
12177 (iwmmxt_wqmiatbn): Likewise.
12178 (iwmmxt_wqmiattn): Likewise.
12179 (iwmmxt_wmiabb): Likewise.
12180 (iwmmxt_wmiabt): Likewise.
12181 (iwmmxt_wmiatb): Likewise.
12182 (iwmmxt_wmiatt): Likewise.
12183 (iwmmxt_wmiabbn): Likewise.
12184 (iwmmxt_wmiabtn): Likewise.
12185 (iwmmxt_wmiatbn): Likewise.
12186 (iwmmxt_wmiattn): Likewise.
12187 (iwmmxt_wmiawbb): Likewise.
12188 (iwmmxt_wmiawbt): Likewise.
12189 (iwmmxt_wmiawtb): Likewise.
12190 (iwmmxt_wmiawtt): Likewise.
12191 (iwmmxt_wmiawbbn): Likewise.
12192 (iwmmxt_wmiawbtn): Likewise.
12193 (iwmmxt_wmiawtbn): Likewise.
12194 (iwmmxt_wmiawttn): Likewise.
12195 (iwmmxt_wmerge): Likewise.
12196 (iwmmxt_tandc<mode>3): Likewise.
12197 (iwmmxt_torc<mode>3): Likewise.
12198 (iwmmxt_torvsc<mode>3): Likewise.
12199 (iwmmxt_textrc<mode>3): Likewise.
12200 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
12201 (wmmxt_pack): Likewise.
12202 (wmmxt_mult_c1): Likewise.
12203 (wmmxt_mult_c2): Likewise.
12204 (wmmxt_alu_c1): Likewise.
12205 (wmmxt_alu_c2): Likewise.
12206 (wmmxt_alu_c3): Likewise.
12207 (wmmxt_transfer_c1): Likewise.
12208 (wmmxt_transfer_c2): Likewise.
12209 (wmmxt_transfer_c3): Likewise.
12210 (marvell_f_iwmmxt_wstr): Likewise.
12211 (marvell_f_iwmmxt_wldr): Likewise.
12212
bdb7bf8a
YZ
122132013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
12214
0ba6aff3 12215 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 12216
e6631d38
VM
122172013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12218
12219 Revert:
12220 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12221 * lra-constraints.c (need_for_split_p): Check call used hard regs
12222 living through calls.
12223
12224 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
12225 call used regs for call insn.
12226
53c1275b
JJ
122272013-06-28 Jakub Jelinek <jakub@redhat.com>
12228
12229 PR target/57736
0ba6aff3
UB
12230 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
12231 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 12232
1141ed3f
BI
122332013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
12234
12235 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 12236
e32e4c4a
VM
122372013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12238
12239 * lra-constraints.c (need_for_split_p): Check call used hard regs
12240 living through calls.
12241
f161bfd3
MM
122422013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
12243
12244 PR target/57744
12245 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
12246 to tie with any other modes. Eliminate Altivec vector mode tests,
12247 since these are a subset of ALTIVEC or VSX vector modes. Simplify
12248 code, to return 0 if testing MODE2 for a condition, if we've
12249 already tested MODE1 for the same condition.
12250
7eda14e1
MS
122512013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
12252
12253 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
12254 layout.
12255
c822f852
MS
122562013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
12257
12258 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12259 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
12260
da4f13a4
MS
122612013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
12262
0ba6aff3
UB
12263 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
12264 Define.
da4f13a4
MS
12265 (aarch64_symbolic_constant_p): Remove.
12266 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
12267 static. Fix line length and white space.
12268 (aarch64_symbolic_constant_p): Remove.
12269 * config/aarch64/predicates.md (aarch64_valid_symref):
12270 Use aarch64_classify_symbol_expression.
12271
956a95a5
KT
122722013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12273
12274 * config/arm/constraints.md (Ts): New constraint.
12275 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
12276 16-bit encodings.
12277 (compare_scc): Use "Ts" constraint for operand 0.
12278 (ior_scc_scc): Likewise.
12279 (and_scc_scc): Likewise.
12280 (and_scc_scc_nodom): Likewise.
12281 (ior_scc_scc_cmp): Likewise for operand 7.
12282 (and_scc_scc_cmp): Likewise.
12283 * config/arm/thumb2.md (thumb2_movsi_insn):
12284 Add alternatives for 16-bit encodings.
12285 (thumb2_movhi_insn): Likewise.
12286 (thumb2_movsicc_insn): Likewise.
12287 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
12288 (thumb2_negscc): Use "Ts" constraint.
12289 Move mvn instruction outside cond_exec block.
12290 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
12291 for 16-bit encodings.
12292
31dfce10
KT
122932013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12294
12295 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
12296 encoding.
12297 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
12298 (mulsi3subsi): Likewise.
12299 (mulsidi3adddi): Likewise.
12300 (mulsidi3_v6): Likewise.
12301 (umulsidi3_v6): Likewise.
12302 (umulsidi3adddi_v6): Likewise.
12303 (smulsi3_highpart_v6): Likewise.
12304 (umulsi3_highpart_v6): Likewise.
12305 (mulhisi3tb): Likewise.
12306 (mulhisi3bt): Likewise.
12307 (mulhisi3tt): Likewise.
12308 (maddhisi4): Likewise.
12309 (maddhisi4tb): Likewise.
12310 (maddhisi4tt): Likewise.
12311 (maddhidi4): Likewise.
12312 (maddhidi4tb): Likewise.
12313 (maddhidi4tt): Likewise.
12314 (zeroextractsi_compare0_scratch): Likewise.
12315 (insv_zero): Likewise.
12316 (insv_t2): Likewise.
12317 (anddi_notzesidi_di): Likewise.
12318 (anddi_notsesidi_di): Likewise.
12319 (andsi_notsi_si): Likewise.
12320 (iordi_zesidi_di): Likewise.
12321 (xordi_zesidi_di): Likewise.
12322 (andsi_iorsi3_notsi): Likewise.
12323 (smax_0): Likewise.
12324 (smax_m1): Likewise.
12325 (smin_0): Likewise.
12326 (not_shiftsi): Likewise.
12327 (unaligned_loadsi): Likewise.
12328 (unaligned_loadhis): Likewise.
12329 (unaligned_loadhiu): Likewise.
12330 (unaligned_storesi): Likewise.
12331 (unaligned_storehi): Likewise.
12332 (extv_reg): Likewise.
12333 (extzv_t2): Likewise.
12334 (divsi3): Likewise.
12335 (udivsi3): Likewise.
12336 (arm_zero_extendhisi2addsi): Likewise.
12337 (arm_zero_extendqisi2addsi): Likewise.
12338 (compareqi_eq0): Likewise.
12339 (arm_extendhisi2_v6): Likewise.
12340 (arm_extendqisi2addsi): Likewise.
12341 (arm_movt): Likewise.
12342 (thumb2_ldrd): Likewise.
12343 (thumb2_ldrd_base): Likewise.
12344 (thumb2_ldrd_base_neg): Likewise.
12345 (thumb2_strd): Likewise.
12346 (thumb2_strd_base): Likewise.
12347 (thumb2_strd_base_neg): Likewise.
12348 (arm_negsi2): Add alternative for 16-bit encoding.
12349 (arm_one_cmplsi2): Likewise.
12350
1572e697
KT
123512013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12352
12353 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
12354 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
12355 (movdfcc): Likewise.
12356 * config/arm/vfp.md (*thumb2_movsf_vfp):
12357 Disable predication for arm_restrict_it.
12358 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
12359 (*thumb2_movdfcc_vfp): Likewise.
12360 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
12361 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
12362 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
12363 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
12364 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
12365 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
12366 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
12367 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
12368 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
12369 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
12370 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
12371 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
12372 Disable predication for arm_restrict_it.
12373
ebf8f0ea
KY
123742013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
12375
12376 * config/i386/bmiintrin.h (_bextr_u32): New.
12377 (_bextr_u64): Ditto.
12378
a290fcda
RS
123792013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12380
12381 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
12382 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
12383 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
12384 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
12385 * config/mips/n32-elf.h: ...this new file.
12386
ea169996
MG
123872013-06-27 Marc Glisse <marc.glisse@inria.fr>
12388
12389 PR target/57224
12390 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
12391 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
12392
12211b99 123932013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
12394
12395 * config/mips/mips-tables.opt: Regenerate.
12396 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 12397 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 12398 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 12399
2444244e
JJ
124002013-06-27 Jakub Jelinek <jakub@redhat.com>
12401
cd06d2a2
JJ
12402 PR target/57623
12403 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
12404 constraints of operand 1 and 2.
12405
2444244e
JJ
12406 PR target/57623
12407 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
12408 to match RTL canonicalization. Swap predicates and
12409 constraints of operand 1 and 2.
12410
2f259720
VM
124112013-06-27 Vladimir Makarov <vmakarov@redhat.com>
12412
0ba6aff3
UB
12413 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
12414 Process OP_INOUT regs for splitting too.
2f259720 12415
fef4d2b3
JJ
124162013-06-27 Jakub Jelinek <jakub@redhat.com>
12417
12418 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
12419 decl before the loop, initialize to NULL.
12420 (vectorizable_load): Initialize ptr_incr to NULL.
12421
79ee9826
MJ
124222013-06-27 Martin Jambor <mjambor@suse.cz>
12423
12424 PR lto/57208
12425 * ipa-ref.h (ipa_maybe_record_reference): Declare.
12426 * ipa-ref.c (ipa_maybe_record_reference): New function.
12427 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
12428 * ipa-cp.c (create_specialized_node): Record potential references from
12429 aggvals.
12430 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
12431
e18b4a81
YZ
124322013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
12433
12434 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
12435 parameter 'mode' of type 'enum machine_mode mode'; change to pass
12436 'mode' to force_reg.
12437 (aarch64_add_offset): Update calls to aarch64_force_temporary.
12438 (aarch64_expand_mov_immediate): Likewise.
12439
9c023bf0
YZ
124402013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
12441
12442 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
12443 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
12444
5a3fe9b6
AK
124452013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12446
12447 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
12448 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
12449 (struct machine_function): Add tbegin_p.
12450 (s390_canonicalize_comparison): Fold CC mode compares to
12451 conditional jump if possible.
12452 (s390_emit_jump): Return the emitted jump.
12453 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
12454 Handle CCRAWmode compares.
12455 (s390_option_override): Default to -mhtm if available.
12456 (s390_reg_clobbered_rtx): Handle floating point regs as well.
12457 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
12458 FPRs instead of df_regs_ever_live_p.
12459 (s390_optimize_nonescaping_tx): New function.
12460 (s390_init_frame_layout): Extend clobbered_regs array to cover
12461 FPRs as well.
12462 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
12463 (s390_expand_tbegin): New function.
12464 (enum s390_builtin): New enum definition.
12465 (code_for_builtin): New array definition.
12466 (s390_init_builtins): New function.
12467 (s390_expand_builtin): New function.
12468 (TARGET_INIT_BUILTINS): Define.
12469 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 12470 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
12471 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
12472 (s390_alc_comparison): Likewise.
12473 * config/s390/s390-modes.def: Add CCRAWmode.
12474 * config/s390/s390.h (processor_flags): Add PF_TX.
12475 (TARGET_CPU_HTM): Define macro.
12476 (TARGET_HTM): Define macro.
12477 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
12478 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
12479 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
12480 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 12481 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
12482 (TBEGIN_MASK, TBEGINC_MASK): New constants.
12483 ("*cc_to_int"): Move up.
12484 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
12485 constants other than 0.
12486 ("*ccraw_to_int"): New insn and splitter definition.
12487 ("tbegin", "tbegin_nofloat", "tbegin_retry")
12488 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
12489 ("tx_assist"): New expander.
12490 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
12491 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
12492 * config/s390/s390.opt: Add -mhtm option.
12493 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
12494 * config/s390/htmxlintrin.h: New file.
12495 * config/s390/htmintrin.h: New file.
12496 * config/s390/s390intrin.h: New file.
12497 * doc/extend.texi: Document htm builtins.
12498 * config.gcc: Add the new header files to extra_headers.
12499
9e216629
TS
125002013-06-26 Thomas Schwinge <thomas@codesourcery.com>
12501
12502 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 12503 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 12504
fd8c65e7 125052013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12506 Pat Haugen <pthaugen@us.ibm.com>
12507 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
12508
12509 * config/rs6000/power8.md: New.
12510 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
12511 setting for power8 entry.
12512 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
12513 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
12514 test for Power4/Power5 only.
12515 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
12516 support.
12517 (force_new_group): Adjust comment.
12518 * config/rs6000/rs6000.md: Include power8.md.
12519
b24a2ce5
GY
125202013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
12521
12522 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
12523 * config/arm/arm-protos.h (arm_max_conditional_execute): New
12524 declaration.
12525 (tune_params): Update comment.
12526 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
12527 (arm_max_conditional_execute): New function.
12528 (thumb2_final_prescan_insn): Use max_insn_skipped and
12529 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
12530
f6fdeb62
JJ
125312013-06-25 Jakub Jelinek <jakub@redhat.com>
12532
12533 PR tree-optimization/57705
12534 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
12535 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 12536 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
12537 (get_initial_def_for_induction): Handle SSA_NAME IV step.
12538
c13bc3d9
MJ
125392013-06-25 Martin Jambor <mjambor@suse.cz>
12540
12541 PR middle-end/57670
12542 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
12543 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
12544 calls in the dump.
12545 (ipa_note_param_call): Initialize member_ptr flag.
12546 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
12547 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
12548 (ipa_write_indirect_edge_info): Stream member_ptr flag.
12549 (ipa_read_indirect_edge_info): Likewise.
12550
8a845901
RB
125512013-06-25 Richard Biener <rguenther@suse.de>
12552
12553 PR middle-end/56977
12554 * passes.c (init_optimization_passes): Move pass_fold_builtins
12555 and pass_dce earlier with -Og.
12556
33be0bec
EB
125572013-06-25 Eric Botcazou <ebotcazou@adacore.com>
12558
12559 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
12560 <BIT_FIELD_REF>: Remove trailing TAB.
12561 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
12562 remove blank line.
12563
5fe8e757
MJ
125642013-06-24 Martin Jambor <mjambor@suse.cz>
12565
12566 PR tree-optimization/57358
12567 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
12568 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
12569 (ipa_analyze_params_uses): Generate pessimistic info when true.
12570
44a60244
MJ
125712013-06-24 Martin Jambor <mjambor@suse.cz>
12572
12573 PR tree-optimization/57539
12574 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
12575 global.inlined_to of the new node to it. All callers changed.
12576 * ipa-inline-transform.c (clone_inlined_nodes): New variable
12577 inlining_into, pass it to cgraph_clone_node.
12578 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
12579 ipa_free_edge_args_substructures.
12580 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
12581 rdesc linked list. Do not assert rdesc edges have inlined caller.
12582 Assert we have found an rdesc in the rdesc list.
12583
7c5848b8
RB
125842013-06-24 Richard Biener <rguenther@suse.de>
12585
0ba6aff3 12586 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
12587 (pointer_set_lookup): Declare.
12588 (class pointer_map): New template class implementing a
12589 generic pointer to T map.
12590 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
12591 pointer_map<T>::contains, pointer_map<T>::insert,
12592 pointer_map<T>::traverse): New functions.
12593 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
12594 (pointer_set_lookup): New function.
12595 (pointer_set_contains): Use pointer_set_lookup.
12596 (pointer_set_insert): Likewise.
12597 (insert_aux): Remove.
12598 (struct pointer_map_t): Embed a pointer_set_t.
12599 (pointer_map_create): Adjust.
12600 (pointer_map_destroy): Likewise.
12601 (pointer_map_contains): Likewise.
12602 (pointer_map_insert): Likewise.
12603 (pointer_map_traverse): Likewise.
12604 * tree-streamer.h (struct streamer_tree_cache_d): Use a
12605 pointer_map<unsigned> instead of a pointer_map_t.
12606 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
12607 (streamer_tree_cache_lookup): Likewise.
12608 (streamer_tree_cache_create): Likewise.
12609 (streamer_tree_cache_delete): Likewise.
12610 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
12611 pointer_map<unsigned> instead of a pointer_map_t.
12612 (lto_init_tree_ref_encoder): Adjust.
12613 (lto_destroy_tree_ref_encoder): Likewise.
12614 * lto-section-out.c (lto_output_decl_index): Likewise.
12615 (lto_record_function_out_decl_state): Likewise.
12616 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
12617
3dbc97a9
RB
126182013-06-24 Richard Biener <rguenther@suse.de>
12619
12620 PR tree-optimization/57488
12621 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
12622
8345965a
AM
126232013-06-24 Alan Modra <amodra@gmail.com>
12624
12625 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
12626 (gen_easy_altivec_constant): Likewise.
12627 * config/rs6000/predicates.md (easy_vector_constant_add_self,
12628 easy_vector_constant_msb): Likewise.
12629
b7df379f
JJ
126302013-06-23 Jakub Jelinek <jakub@redhat.com>
12631
12632 PR target/57688
12633 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
12634 add missing return true.
12635
12211b99 126362013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
12637
12638 PR target/52483
12639 * config/sh/predicates.md (general_extend_operand): Invoke
12640 general_movsrc_operand for memory operands.
12641 (general_movsrc_operand): Allow reg+reg addressing, do not use
12642 general_operand for memory operands.
12643
97db2bf7
ST
126442013-06-23 Sriraman Tallam <tmsriram@google.com>
12645
12646 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
12647 when current target options does not apply.
12648 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
12649 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
12650 * config/i386/bmiintrin.h: Pass appropriate target
12651 attributes to header.
97db2bf7
ST
12652 * config/i386/mmintrin.h: Ditto.
12653 * config/i386/nmmintrin.h: Ditto.
12654 * config/i386/avx2intrin.h: Ditto.
12655 * config/i386/fxsrintrin.h: Ditto.
12656 * config/i386/tbmintrin.h: Ditto.
12657 * config/i386/xsaveintrin.h: Ditto.
12658 * config/i386/f16cintrin.h: Ditto.
12659 * config/i386/xtestintrin.h: Ditto.
12660 * config/i386/xsaveoptintrin.h: Ditto.
12661 * config/i386/bmi2intrin.h: Ditto.
12662 * config/i386/lzcntintrin.h: Ditto.
12663 * config/i386/smmintrin.h: Ditto.
12664 * config/i386/wmmintrin.h: Ditto.
12665 * config/i386/x86intrin.h: Remove all header include guards.
12666 * config/i386/prfchwintrin.h: Ditto.
12667 * config/i386/pmmintrin.h: Ditto.
12668 * config/i386/tmmintrin.h: Ditto.
12669 * config/i386/xmmintrin.h: Ditto.
12670 * config/i386/popcntintrin.h: Ditto.
12671 * config/i386/rdseedintrin.h: Ditto.
12672 * config/i386/ammintrin.h: Ditto.
12673 * config/i386/emmintrin.h: Ditto.
12674 * config/i386/immintrin.h: Remove all header include guards.
12675 * config/i386/fma4intrin.h: Ditto.
12676 * config/i386/lwpintrin.h: Ditto.
12677 * config/i386/xopintrin.h: Ditto.
12678 * config/i386/ia32intrin.h: Ditto.
12679 * config/i386/avxintrin.h: Ditto.
12680 * config/i386/rtmintrin.h: Ditto.
12681 * config/i386/fmaintrin.h: Ditto.
12682 * config/i386/mm3dnow.h: Ditto.
12683
495e6879
ST
126842013-06-22 Sriraman Tallam <tmsriram@google.com>
12685
12686 * common/config/i386/i386-common.c: Handle LZCNT.
12687
11e8f687
AK
126882013-06-22 Andi Kleen <ak@linux.intel.com>
12689
12690 * doc/extend.texi: Use __atomic_store_n instead of
12691 __atomic_store in HLE example.
12692
12211b99 126932013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
12694
12695 * config/sh/sh.c: Remove <cstdlib> workaround.
12696
927f908b
AK
126972013-06-21 Andi Kleen <ak@linux.intel.com>
12698
0ba6aff3 12699 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 12700
cca410b6
AK
127012013-06-21 Andi Kleen <ak@linux.intel.com>
12702
12703 * doc/extend.texi: Document that __atomic_clear and
12704 __atomic_test_and_set should only be used with bool.
12705
d84db1ed
JH
127062013-06-20 Jan Hubicka <jh@suse.cz>
12707
12708 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
12709 types_same_for_odr.
12710 * tree.c (decls_same_for_odr): New function.
12711 (same_for_edr): New function.
12712 (types_same_for_odr): New function.
12713 (get_binfo_at_offset): Use it.
12714 * tree.h (types_same_for_odr): Declare.
12715
12211b99 127162013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
12717 Jason Merrill <jason@redhat.com>
12718
12719 * system.h: Include <cstdlib> as well as <stdlib.h>.
12720
49b4ff63
UB
127212013-06-20 Uros Bizjak <ubizjak@gmail.com>
12722
12723 PR target/57655
12724 * config/i386/i386.c (construct_container): Report error if
12725 long double is used with disabled x87 float returns.
12726
7a89ad00
JH
127272013-06-20 Jan Hubicka <jh@suse.cz>
12728
12729 * lto-cgraph.c (input_symtab): Do not set cgraph state.
12730
12211b99 127312013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
12732
12733 PR rtl-optimization/57425
12734 PR rtl-optimization/57569
12735 * alias.c (write_dependence_p): Remove parameters mem_mode and
12736 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
12737 Changed all callers.
12738 (canon_anti_dependence): Get comments and semantics in sync.
12739 Add parameter mem_canonicalized. Changed all callers.
12740 * rtl.h (canon_anti_dependence): Update prototype.
12741
d16e9a99
RB
127422013-06-20 Richard Biener <rguenther@suse.de>
12743
12744 * data-streamer-in.c (streamer_read_uhwi): Optimize single
12745 byte case, inline streamer_read_uchar and defer section
12746 overrun check.
12747
c3a9b91b
RB
127482013-06-20 Richard Biener <rguenther@suse.de>
12749
12750 PR tree-optimization/57584
12751 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
12752 SSA names into the expanded expression that take part in
12753 abnormal coalescing.
12754
371e77e3 127552013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
12756
12757 * gcov.c (print_usage): Handle new option.
12758 (process_args): Ditto.
12759 (get_gcov_intermediate_filename): New function.
12760 (output_intermediate_file): New function.
12761 (output_gcov_file): New function
12762 (generate_results): Handle new option.
12763 (release_function): Relase demangled name.
12764 (read_graph_file): Handle demangled name.
12765 (output_lines): Ditto.
12766 * doc/gcov.texi: Document gcov intermediate format.
12767
11f5b71a
VM
127682013-06-19 Vladimir Makarov <vmakarov@redhat.com>
12769
12770 PR bootstrap/57604
12771 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
12772 (lra_emit_add): Use the functions. Add comment about Y as an
12773 address segment.
12774
e1f9340b
DE
127752013-06-19 David Edelsohn <dje.gcc@gmail.com>
12776
12777 PR driver/57652
12778 * collect2.c (collect_atexit): New.
12779 (collect_exit): Delete.
12780 (main): Register collect_atexit with atexit.
12781 (collect_wait): Change collect_exit to exit.
12782 (do_wait): Same.
12783 * collect2.h (collect_exit): Delete.
12784 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
12785
e3f9e0ac
WM
127862013-06-19 Wei Mi <wmi@google.com>
12787
12788 PR rtl-optimization/57518
12789 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
12790 if regno is used in paradoxical subreg.
12791 (update_equiv_regs): Check pdx_subregs[regno] before
12792 set a reg to be equivalent with a mem.
12793
a09f1a76
MK
127942013-06-19 Matthias Klose <doko@ubuntu.com>
12795
12796 PR driver/57651
12797 * file-find.h (find_a_file): Add a mode parameter.
12798 * file-find.c (find_a_file): Likewise.
12799 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
12800 with X_OK for the executables.
12801 * collect2.c (main): Call find_a_file with X_OK.
12802
7d18b0ad
SE
128032013-06-19 Steve Ellcey <sellcey@mips.com>
12804
12805 PR target/56942
12806 * config/mips/mips.md (casesi_internal_mips16_<mode>):
12807 Use NEXT_INSN instead of next_real_insn.
12808
6a6dac52
JH
128092013-06-19 Jan Hubicka <jh@suse.cz>
12810
12811 * cgraph.h (const_value_known_p): Replace by ...
12812 (ctor_for_folding): .. this one.
12813 * cgraphunit.c (process_function_and_variable_attributes): Use it.
12814 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
12815 * expr.c (expand_expr_real_1): Likewise.
12816 (string_constant): Likewise.
12817 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12818 * ipa.c (process_references): Likewise.
12819 (symtab_remove_unreachable_nodes): Likewise.
12820 * ipa-inline-analysis.c (param_change_prob): Likewise.
12821 * gimple-fold.c (canonicalize_constructor_val): Likewise.
12822 (get_base_constructor): Likwise.
12823 * varpool.c (varpool_remove_node): Likewise.
12824 (varpool_remove_initializer): LIkewise.
12825 (dump_varpool_node): LIkwise.
12826 (const_value_known_p): Rewrite to ...
12827 (ctor_for_folding): ... this one.
12828
216c12ab
JJ
128292013-06-19 Jakub Jelinek <jakub@redhat.com>
12830
12831 PR driver/57651
12832 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
12833 PERSONALITY in $PATH derived prefixes.
12834
d53e2f99
JL
128352013-06-19 Jeff Law <law@redhat.com>
12836
ecdbf306
JL
12837 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
12838 in comment.
12839
d53e2f99
JL
12840 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
12841 (simplify_bitwise_binary): Use it to simpify certain binary ops on
12842 booleans.
12843
89e7fc04
SN
128442013-06-19 Sofiane Naci <sofiane.naci@arm.com>
12845
12846 * config/arm/vfp.md: Move VFP instruction classification documentation
12847 to ...
12848 * config/arm/arm.md: ... here. Update instruction classification
12849 documentation.
12850
5e7f6aaa
RE
128512013-06-19 Richard Earnshaw <rearnsha@arm.com>
12852
12853 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
12854 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
12855 pattern. Use more efficient sequences on ARMv5 and Thumb2.
12856
5fdc1e5d
SB
128572013-06-19 Steven Bosscher <steven@gcc.gnu.org>
12858
12859 PR target/57609
12860 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12861 with NEXT_INSN. Use tablejump_p to check for jump table data
12862 insns.
12863
e952afba
PC
128642013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
12865
12866 PR c++/56544
12867 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
12868 that now in C++ the value is correct per the C++ standards.
12869
3fd0303a
RB
128702013-06-19 Richard Biener <rguenther@suse.de>
12871
12872 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
12873 for global context.
12874
b04e4b08
AK
128752013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12876
12877 Revert:
12878 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12879
12880 PR target/57609
12881 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12882 with next_active_insn.
12883
bef8491a
ST
128842013-06-18 Sriraman Tallam <tmsriram@google.com>
12885
12886 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
12887 functions are inlined during failures to flag an error.
12888 * tree-inline.c (expand_call_inline): Allow the error to be flagged
12889 in early inline pass.
22fc7d3d 12890
c21b257d
L
128912013-06-18 H.J. Lu <hongjiu.lu@intel.com>
12892
12893 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
12894 in comments.
12895
33255ae3
JB
128962013-06-18 Julian Brown <julian@codesourcery.com>
12897
12898 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
12899 Permit virtual register pre-reload if !strict.
12900 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
12901 change.
12902 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
12903 prototype.
12904 * config/arm/neon.md (movmisalign<mode>): Use
12905 neon_perm_struct_or_reg_operand instead of
12906 neon_struct_or_register_operand.
12907 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
12908 neon_permissive_struct_operand instead of neon_struct_operand.
12909 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
12910 neon_vector_mem_operand.
12911 * config/arm/predicates.md (neon_struct_operand): Adjust call to
12912 neon_vector_mem_operand.
12913 (neon_permissive_struct_operand): New.
12914 (neon_struct_or_register_operand): Rename to...
12915 (neon_perm_struct_or_reg_operand): This. Adjust call to
12916 neon_vector_mem_operand.
12917
d579fcda
RB
129182013-06-18 Richard Biener <rguenther@suse.de>
12919
12920 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
12921 * lto-streamer.h: Include pointer-set.h.
12922 (struct lto_decl_slot): Remove.
12923 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
12924 Remove next_index entry.
12925 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
12926 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
12927 (lto_init_tree_ref_encoder): Adjust.
12928 (lto_destroy_tree_ref_encoder): Likewise.
12929 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
12930 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
12931 (lto_output_decl_index): Adjust.
12932 (lto_new_out_decl_state): Likewise.
12933 (lto_record_function_out_decl_state): Likewise.
12934 * lto-streamer-out.c (copy_function): Likewise.
12935
31ee20ba
RB
129362013-06-18 Richard Biener <rguenther@suse.de>
12937
12938 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
12939 * cgraphunit.c: Include cfgloop.h.
12940 (init_lowered_empty_function): Initialize the loop tree.
12941 (assemble_thunk): Insert new BBs into loops.
12942
ac0511f2
RB
129432013-06-18 Richard Biener <rguenther@suse.de>
12944
12945 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
12946 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
12947 the map from cache entry to cache index optional.
12948 (streamer_tree_cache_replace_tree): Adjust accordingly.
12949 (streamer_tree_cache_append): Likewise.
12950 (streamer_tree_cache_delete): Likewise.
12951 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
12952 streamer cache map from cache entry to cache index.
12953 * lto-streamer-out.c (create_output_block): Adjust.
12954
09485a08
SN
129552013-06-18 Sofiane Naci <sofiane.naci@arm.com>
12956
22fc7d3d
UB
12957 * config/arm/arm.md (attribute "insn"): Move multiplication and
12958 division attributes to...
09485a08
SN
12959 (attribute "type"): ... here. Remove mult.
12960 (attribute "mul32"): New attribute.
12961 (attribute "mul64"): Add umaal.
12962 (*arm_mulsi3): Update attributes.
12963 (*arm_mulsi3_v6): Likewise.
12964 (*thumb_mulsi3): Likewise.
12965 (*thumb_mulsi3_v6): Likewise.
12966 (*mulsi3_compare0): Likewise.
12967 (*mulsi3_compare0_v6): Likewise.
12968 (*mulsi_compare0_scratch): Likewise.
12969 (*mulsi_compare0_scratch_v6): Likewise.
12970 (*mulsi3addsi): Likewise.
12971 (*mulsi3addsi_v6): Likewise.
12972 (*mulsi3addsi_compare0): Likewise.
12973 (*mulsi3addsi_compare0_v6): Likewise.
12974 (*mulsi3addsi_compare0_scratch): Likewise.
12975 (*mulsi3addsi_compare0_scratch_v6): Likewise.
12976 (*mulsi3subsi): Likewise.
12977 (*mulsidi3adddi): Likewise.
12978 (*mulsi3addsi_v6): Likewise.
12979 (*mulsidi3adddi_v6): Likewise.
12980 (*mulsidi3_nov6): Likewise.
12981 (*mulsidi3_v6): Likewise.
12982 (*umulsidi3_nov6): Likewise.
12983 (*umulsidi3_v6): Likewise.
12984 (*umulsidi3adddi): Likewise.
12985 (*umulsidi3adddi_v6): Likewise.
12986 (*smulsi3_highpart_nov6): Likewise.
12987 (*smulsi3_highpart_v6): Likewise.
12988 (*umulsi3_highpart_nov6): Likewise.
12989 (*umulsi3_highpart_v6): Likewise.
12990 (mulhisi3): Likewise.
12991 (*mulhisi3tb): Likewise.
12992 (*mulhisi3bt): Likewise.
12993 (*mulhisi3tt): Likewise.
12994 (maddhisi4): Likewise.
12995 (*maddhisi4tb): Likewise.
12996 (*maddhisi4tt): Likewise.
12997 (maddhidi4): Likewise.
12998 (*maddhidi4tb): Likewise.
12999 (*maddhidi4tt): Likewise.
13000 (divsi3): Likewise.
13001 (udivsi3): Likewise.
13002 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
13003 (thumb2_mulsi_short_compare0): Likewise.
13004 (thumb2_mulsi_short_compare0_scratch): Likewise.
13005 * config/arm/arm1020e.md (1020mult1): Update attribute change.
13006 (1020mult2): Likewise.
13007 (1020mult3): Likewise.
13008 (1020mult4): Likewise.
13009 (1020mult5): Likewise.
13010 (1020mult6): Likewise.
22fc7d3d
UB
13011 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
13012 change.
09485a08
SN
13013 (cortex_a15_mult64): Likewise.
13014 (cortex_a15_sdiv): Likewise.
13015 (cortex_a15_udiv): Likewise.
13016 * config/arm/arm1026ejs.md (mult1): Update attribute change.
13017 (mult2): Likewise.
13018 (mult3): Likewise.
13019 (mult4): Likewise.
13020 (mult5): Likewise.
13021 (mult6): Likewise.
13022 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
13023 (pj4_ir_div): Likewise.
13024 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
13025 (11_mult2): Likewise.
13026 (11_mult3): Likewise.
13027 (11_mult4): Likewise.
13028 (11_mult5): Likewise.
13029 (11_mult6): Likewise.
13030 (11_mult7): Likewise.
13031 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
13032 (cortex_a8_mla): Likewise.
13033 (cortex_a8_mull): Likewise.
13034 (cortex_a8_smulwy): Likewise.
13035 (cortex_a8_smlald): Likewise.
13036 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
13037 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
13038 (cortex_r4_mul_3): Likewise.
13039 (cortex_r4_mla_4): Likewise.
13040 (cortex_r4_mla_3): Likewise.
13041 (cortex_r4_smlald): Likewise.
13042 (cortex_r4_mull): Likewise.
13043 (cortex_r4_sdiv): Likewise.
13044 (cortex_r4_udiv): Likewise.
13045 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
13046 (cortex_a7_idiv): Likewise.
13047 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
13048 (9_mult2): Likewise.
13049 (9_mult3): Likewise.
13050 (9_mult4): Likewise.
13051 (9_mult5): Likewise.
13052 (9_mult6): Likewise.
13053 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
13054 (cortex_a53_sdiv): Likewise.
13055 (cortex_a53_udiv): Likewise.
13056 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
13057 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
13058 (mp626_mult2): Likewise.
13059 (mp626_mult3): Likewise.
13060 (mp626_mult4): Likewise.
13061 * config/arm/fa526.md (526_mult1): Update attribute change.
13062 (526_mult2): Likewise.
13063 * config/arm/arm-generic.md (mult): Update attribute change.
13064 (mult_ldsched_strongarm): Likewise.
13065 (mult_ldsched): Likewise.
13066 (multi_cycle): Likewise.
13067 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
13068 * config/arm/fa606te.md (606te_mult1): Update attribute change.
13069 (606te_mult2): Likewise.
13070 (606te_mult3): Likewise.
13071 (606te_mult4): Likewise.
13072 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
13073 (cortex_a9_mac16): Likewise.
13074 (cortex_a9_multiply): Likewise.
13075 (cortex_a9_mac): Likewise.
13076 (cortex_a9_multiply_long): Likewise.
13077 * config/arm/fa626te.md (626te_mult1): Update attribute change.
13078 (626te_mult2): Likewise.
13079 (626te_mult3): Likewise.
13080 (626te_mult4): Likewise.
13081
8951f345
RB
130822013-06-18 Richard Biener <rguenther@suse.de>
13083
13084 PR lto/57334
13085 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
13086
d8101d05
AK
130872013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13088
13089 PR target/57609
13090 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13091 with next_active_insn.
13092
69eff9da
AM
130932013-06-18 Alan Modra <amodra@gmail.com>
13094
13095 * config/rs6000/rs6000.h (enum data_align): New.
13096 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
13097 (DATA_ABI_ALIGNMENT): Define.
13098 (CONSTANT_ALIGNMENT): Correct comment.
13099 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
13100 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
13101
8ed00d76
DM
131022013-06-17 David Malcolm <dmalcolm@redhat.com>
13103
13104 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
13105 ATTRIBUTE_UNUSED marking.
13106
3d33d06b
SN
131072013-06-17 Sofiane Naci <sofiane.naci@arm.com>
13108
13109 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
13110 alternative and update.
13111 (aarch64_dup_lanedi): Delete.
13112 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
13113 * config/aarch64/aarch64-simd-builtins.def: Update.
13114
ee03e71d
RB
131152013-06-17 Richard Biener <rguenther@suse.de>
13116
13117 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
13118 (lto_input_scc): Declare.
13119 (lto_input_tree_1): Likewise.
13120 (struct lto_stats_d): Add num_tree_bodies_output and
13121 num_pickle_refs_output.
13122 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
13123 (lto_read_tree_1): Split out from ...
13124 (lto_read_tree): ... this.
13125 (lto_input_scc): New function.
13126 (lto_input_tree_1): Split out from ...
13127 (lto_input_tree): ... this. Handle LTO_tree_scc.
13128 (lto_data_in_create): Create the streamer cache without hashes.
13129 * lto-streamer-out.c (create_output_block): Create the streamer
13130 cache with hashes when not doing WPA.
13131 (lto_write_tree_1): Split out from ...
13132 (lto_write_tree): ... this.
13133 (get_symbol_initial_value): New function.
13134 (lto_output_tree_1): Split out from ...
13135 (lto_output_tree): ... this. Write trees as series of SCCs
13136 using a DFS walk via DFS_write_tree.
13137 (struct sccs, struct scc_entry): New types.
13138 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
13139 (DFS_write_tree_body): New function.
13140 (DFS_write_tree): Likewise.
13141 (hash_tree): Likewise.
13142 (scc_entry_compare): Likewise.
13143 (hash_scc): Likewise.
13144 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
13145 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
13146 TREE_CHAIN as regular reference.
13147 (streamer_read_integer_cst): Remove.
13148 (streamer_get_pickled_tree): Adjust.
13149 * tree-streamer-out.c (streamer_write_chain): Disable streaming
13150 of DECL_EXTERNALs in BLOCK_VARS for now.
13151 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
13152 reference.
13153 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
13154 Add hash value argument and record that if hashes are recorded
13155 in the cache.
13156 (streamer_tree_cache_insert_1): Adjust.
13157 (streamer_tree_cache_insert): Likewise.
13158 (streamer_tree_cache_insert_at): Rename to ...
13159 (streamer_tree_cache_replace_tree): ... this and adjust.
13160 (streamer_tree_cache_append): Adjust.
13161 (record_common_node): Likewise.
13162 (streamer_tree_cache_create): Add argument whether to
13163 record hash values together with trees.
13164 (streamer_tree_cache_delete): Adjust.
13165 * tree-streamer.h (struct streamer_tree_cache_d): Add
13166 vector of hashes.
13167 (streamer_read_integer_cst): Remove.
13168 (streamer_tree_cache_insert): Adjust.
13169 (streamer_tree_cache_append): Likewise.
13170 (streamer_tree_cache_insert_at): Rename to ...
13171 (streamer_tree_cache_replace_tree): ... this and adjust.
13172 (streamer_tree_cache_create): Add argument whether to record hashes.
13173 (streamer_tree_cache_get): Rename to ...
13174 (streamer_tree_cache_get_tree): ... this.
13175 (streamer_tree_cache_get_hash): New function.
13176 * tree.c (cache_integer_cst): New function.
13177 * tree.h (cache_integer_cst): Declare.
13178 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
13179 * lto-symtab.c (lto_varpool_replace_node): Only release
13180 DECL_INITIAL of non-prevailing decls.
13181 * varpool.c (varpool_remove_initializer): Do not release
13182 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
13183
0de86a92
JU
131842013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
13185
13186 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
13187 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
13188 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
13189 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
13190 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
13191 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
13192 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
13193 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
13194 instead of TARGET_64BIT.
13195 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
13196 Require ISA_HAS_<D>DIV.
13197
74240413
RS
131982013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
13199
13200 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
13201 (mips*-*-linux*): Move default with_llsc setting to where other
13202 defaults are set.
13203 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
13204 with_arch block.
13205 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
13206 Likewise. Remove default with_tune setting. Move default float
13207 setting to its own block. Handle with_llsc in the same block as above.
13208
12211b99 132092013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
13210
13211 PR rtl-optimization/57425
13212 PR rtl-optimization/57569
299a5f6a 13213 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
13214 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
13215 Changed all callers.
13216 (canon_anti_dependence): New function.
13217 * cse.c (check_dependence): Use canon_anti_dependence.
13218 * cselib.c (cselib_invalidate_mem): Likewise.
13219 * rtl.h (canon_anti_dependence): Declare.
13220
b259d352
JU
132212013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
13222
13223 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
13224 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
13225 ".set mips3" for 64-bit targets.
13226
4de09b85
DC
132272013-06-15 Dehao Chen <dehao@google.com>
13228
13229 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
13230 * gimple-low.c (gimple_check_call_matching_types): Likewise.
13231 (gimple_check_call_args): Likewise.
13232 * value-prof.c (check_ic_target): Likewise.
13233 * ipa-inline.c (early_inliner): Likewise.
13234 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
13235 * cgraph.c (cgraph_create_edge_1): Likewise.
13236 (cgraph_make_edge_direct): Likewise.
13237
d1aa4a76
MM
132382013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13239
13240 PR target/57615
13241 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
13242 rs6000_output_move_128bit to handle emitting quad memory
13243 operations. Set attribute length to 8 bytes.
13244
12211b99 132452013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
13246
13247 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
13248 New pattern.
13249 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
13250 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
13251 (aarch64_<su>mlsl<mode>): Likewise.
13252
f5273574
MS
132532013-06-14 Mike Stump <mikestump@comcast.net>
13254
13255 * Makefile.in (TARGET_H): Add insn-codes.h.
13256
ef7e7ab2
AM
132572013-06-14 Alan Modra <amodra@gmail.com>
13258
13259 PR middle-end/57134
13260 PR middle-end/57586
13261 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
13262 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
13263 bitfield expansion when EXPAND_MEMORY.
13264 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
13265
135faab6
MM
132662013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
13267
13268 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
13269 test for clearing quad memory on 32-bit later.
13270
948a1fd9
MG
132712013-06-13 Marc Glisse <marc.glisse@inria.fr>
13272
13273 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
13274 (fold_negate_expr): Likewise.
13275 (fold_real_zero_addition_p): Handle vectors.
13276 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
13277
0597fb9c
AM
132782013-06-14 Alan Modra <amodra@gmail.com>
13279
13280 * varasm.c (force_const_mem): Revert 2013-06-07 change.
13281
e5b962d0
JH
132822013-06-13 Jan Hubicka <jh@suse.cz>
13283
13284 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
13285 Local comdats are not externally visible.
13286 * symtab.c (dump_symtab_base): Dump externally visible.
13287 (verify_symtab_base): Verify back links in the symtab hash.
13288
a8355e51
BC
132892013-06-13 Bin Cheng <bin.cheng@arm.com>
13290
13291 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
13292 CONVERT_EXPR as equal nodes.
13293
8f7e6e33
BC
132942013-06-13 Bin Cheng <bin.cheng@arm.com>
13295
22fc7d3d 13296 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 13297
5d418483
MG
132982013-06-13 Marc Glisse <marc.glisse@inria.fr>
13299
13300 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
13301 Generalize to complex and vector.
13302 * tree.c (build_all_ones_cst): New function.
13303 * tree.h (build_all_ones_cst): Declare it.
13304
50751417
AM
133052013-06-13 Alan Modra <amodra@gmail.com>
13306
13307 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
13308 * config/rs6000/rs6000.md (signbittf2): New insn.
13309 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
13310 (abstf2_internal, cmptf_internal2): Likewise.
13311 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
13312
4b02c962 133132013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13314 Pat Haugen <pthaugen@us.ibm.com>
13315 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
13316
13317 * config/rs6000/rs6000.c (emit_load_locked): Add support for
13318 power8 byte, half-word, and quad-word atomic instructions.
13319 (emit_store_conditional): Likewise.
13320 (rs6000_expand_atomic_compare_and_swap): Likewise.
13321 (rs6000_expand_atomic_op): Likewise.
13322
13323 * config/rs6000/sync.md (larx): Add new modes for power8.
13324 (stcx): Likewise.
13325 (AINT): New mode iterator to include TImode as well as normal
13326 integer modes on power8.
13327 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
13328 that VSX registers are not considered. Use AINT mode iterator
13329 instead of INT1 to allow inclusion of quad word atomic operations
13330 on power8.
13331 (load_locked<mode>): Likewise.
13332 (store_conditional<mode>): Likewise.
13333 (atomic_compare_and_swap<mode>): Likewise.
13334 (atomic_exchange<mode>): Likewise.
13335 (atomic_nand<mode>): Likewise.
13336 (atomic_fetch_<fetchop_name><mode>): Likewise.
13337 (atomic_nand_fetch<mode>): Likewise.
13338 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
13339 each type.
13340 (ATOMIC): On power8, add QImode, HImode modes.
13341 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
13342 modes that promote to SImode.
13343 (load_lockedti): Convert TImode arguments to PTImode, so that we
13344 get a guaranteed even/odd register pair.
13345 (load_lockedpti): Likewise.
13346 (store_conditionalti): Likewise.
13347 (store_conditionalpti): Likewise.
13348
13349 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
13350 atomic load/store instructions.
13351 (HSI): Likewise.
13352
710b6cc1
RS
133532013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
13354
13355 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
13356 loads.
13357 (insn_count): New attribute, with most cases extracted from...
13358 (length): ...here. Redefine most cases in terms of insn_count.
13359 (single_insn): Delete.
13360 (can_delay): Use insn_count to check for single instructions.
13361 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
13362 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
13363 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
13364 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
13365 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
13366 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
13367 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
13368 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
13369 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
13370 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
13371 rather than "length".
13372 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
13373 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
13374 Use "insn_count" rather than "length".
13375 * config/mips/mips-dsp.md
13376 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
13377 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
13378 length attributes.
13379
1951f101
MG
133802013-06-12 Marc Glisse <marc.glisse@inria.fr>
13381
13382 PR tree-optimization/57361
13383 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
13384
8b033a8a
SN
133852013-06-12 Sofiane Naci <sofiane.naci@arm.com>
13386
22fc7d3d
UB
13387 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
13388 to split.
8b033a8a
SN
13389 (aarch64_simd_combine<mode>): New instruction expansion.
13390 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
13391 function prototype.
13392 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
13393 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
13394
ca0f62a8
JH
133952013-06-12 Jan Hubicka <jh@suse.cz>
13396
13397 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
13398 decl has when in streaming stage.
13399 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
13400 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
13401
12211b99 134022013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
13403
13404 PR target/57578
13405 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
13406
bfdeda2c
JJ
134072013-06-12 Jakub Jelinek <jakub@redhat.com>
13408
13409 PR tree-optimization/57537
13410 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
13411 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
13412
a4fa02d1
RB
134132013-06-12 Richard Biener <rguenther@suse.de>
13414
13415 * data-streamer.h (streamer_write_char_stream): CSE
13416 obs->current_pointer.
13417 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
13418 streamer_write_char_stream manually and optimize the resulting loop.
13419 (streamer_write_hwi_stream): Likewise.
13420
bbf9ad07
JH
134212013-06-12 Jan Hubicka <jh@suse.cz>
13422
13423 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
13424 * cgraph.h (varpool_create_empty_node): Declare.
13425 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
13426 duplicated nodes.
13427 * symtab.c (symtab_unregister_node): Be lax about missin entries
13428 in node hash.
13429 (symtab_get_node): Update comment.
13430 * varpool.c (varpool_create_empty_node): Break out from ...
13431 (varpool_node_for_decl): ... here.
13432 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
13433
a53f90ad
EB
134342013-06-12 Eric Botcazou <ebotcazou@adacore.com>
13435
13436 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
13437 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
13438 part. Use straight-line flow at the end.
13439 <COMPONENT_REF>: Remove superfluous else.
13440 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
13441
946f9306
JJ
134422013-06-12 Jakub Jelinek <jakub@redhat.com>
13443
13444 PR target/56564
13445 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
13446 target hook even for !TREE_PUBLIC decls. If no resolution info
13447 is available, return false for common and external decls.
13448
a7fca6f0
KP
134492013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13450
13451 * config/rl78/constraints.md (U): New constraint.
13452 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
13453 valloc attribute.
13454
c7d8f446
MM
134552013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13456
13457 PR target/57589
13458 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
13459 to allow returning address to AT_PLATFORM name.
13460
08346abd
JH
134612013-06-11 Jan Hubicka <jh@suse.cz>
13462
13463 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
13464 * cgraph.h (symtab_node_base): Add weakref flag.
13465 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
13466 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
13467 (output_weakrefs): Use weakref flag.
13468 * fold-const.c (simple_operand_p): Handle WEAK.
13469 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
13470 * ipa.c (varpool_externally_visible_p): Drop weakref.
13471 (function_and_variable_visibility): Update comment; fix weakref
13472 sanity checks; do not clear DECL_WEAK on them.
13473 * lto-cgraph.c (lto_output_node): update.
13474 (lto_output_varpool_node): Update.
13475 (input_overwrite_node): Update.
13476 (input_node): Update.
13477 (input_varpool_node): Update.
13478 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
13479 (lto_symtab_merge_symbols): Add sanity check.
13480 (lto_symtab_prevailing_decl): Do not special case weakrefs.
13481 * passes.c (rest_of_decl_compilation): Set static flag, too.
13482 * symtab.c (dump_symtab_base): Dump weakref.
13483 (verify_symtab_base): Sanity check weakrefs.
13484 (symtab_make_decl_local): Remove duplicated code.
13485 (symtab_alias_ultimate_target): Simplify.
13486 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 13487
2e6a2f88
TV
134882013-06-11 Tom de Vries <tom@codesourcery.com>
13489
13490 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
13491 sequence_vect == NULL.
13492
d9af3652
DD
134932013-06-11 DJ Delorie <dj@redhat.com>
13494
13495 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
13496 (rl78_unwind_word_mode): New.
13497
ffa66012
DM
134982013-06-11 David Malcolm <dmalcolm@redhat.com>
13499
13500 * final.c (debug_prefix_maps): Make static.
13501
783f2d35
DM
135022013-06-11 David Malcolm <dmalcolm@redhat.com>
13503
13504 * function.c (initial_trampoline): Remove stray copy.
13505
7af26def
SN
135062013-06-11 Sofiane Naci <sofiane.naci@arm.com>
13507
13508 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
13509
97756c0e
MJ
135102013-06-11 Martin Jambor <mjambor@suse.cz>
13511
13512 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
13513 within bounds at the beginning of the function.
13514
2c7b8bf6
AM
135152013-06-11 Alan Modra <amodra@gmail.com>
13516
13517 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
13518 reporting.
13519 (get_named_section): Don't NULL !DECL_P decl.
13520
77cea46e
IZ
135212013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
13522
13523 * doc/invoke.texi (core-avx2): Document.
13524 (slm): Likewise.
13525 (atom): Updated with MOVBE.
13526
888f0920
RB
135272013-06-11 Richard Biener <rguenther@suse.de>
13528
22fc7d3d 13529 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 13530
6b438d58
AB
135312013-06-11 Anton Blanchard <anton@samba.org>
13532
13533 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
13534 correct shift value in little-endian mode.
13535
3bc66938
JJ
135362013-06-11 Jakub Jelinek <jakub@redhat.com>
13537
13538 PR target/56564
13539 * varasm.c (get_variable_align): Move #endif to the right place.
13540
a5dc7f88
CC
135412013-06-10 Cary Coutant <ccoutant@google.com>
13542
13543 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
13544 for hash so that hash table traversal order is deterministic.
13545
19be72ab 135462013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13547 Pat Haugen <pthaugen@us.ibm.com>
13548 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
13549
13550 * config/rs6000/vector.md (GPR move splitter): Do not split moves
13551 of vectors in GPRS if they are direct moves or quad word load or
13552 store moves.
13553
13554 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
13555 declaration.
13556 (direct_move_p): Likewise.
13557 (quad_load_store_p): Likewise.
13558
13559 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
13560 classes into bins based on the physical register type.
13561 (reg_class_to_reg_type): Likewise.
13562 (IS_STD_REG_TYPE): Likewise.
13563 (IS_FP_VECT_REG_TYPE): Likewise.
13564 (reload_fpr_gpr): Arrays to determine what insn to use if we can
13565 use direct move instructions.
13566 (reload_gpr_vsx): Likewise.
13567 (reload_vsx_gpr): Likewise.
13568 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
13569 information that is a simplification of register classes. Also
13570 precalculate direct move reload helpers.
13571 (direct_move_p): New function to return true if the operation can
13572 be done as a direct move instruciton.
13573 (quad_load_store_p): New function to return true if the operation
13574 is a quad memory operation.
13575 (rs6000_legitimize_address): If quad memory, only allow register
13576 indirect for TImode addresses.
13577 (rs6000_legitimate_address_p): Likewise.
13578 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
13579 (rs6000_reload_register_type): Likewise.
13580 (register_to_reg_type): Return register type.
13581 (rs6000_secondary_reload_simple_move): New helper function for
13582 secondary reload and secondary memory needed to identify anything
13583 that is a simple move, and does not need reloading.
13584 (rs6000_secondary_reload_direct_move): New helper function for
13585 secondary reload to identify cases that can be done with several
13586 instructions via the direct move instructions.
13587 (rs6000_secondary_reload_move): New helper function for secondary
13588 reload to identify moves between register types that can be done.
13589 (rs6000_secondary_reload): Add support for quad memory operations
13590 and for direct move.
13591 (rs6000_secondary_memory_needed): Likewise.
13592 (rs6000_debug_secondary_memory_needed): Change argument names.
13593 (rs6000_output_move_128bit): New function to return the move to
13594 use for 128-bit moves, including knowing about the various
13595 limitations of quad memory operations.
13596
13597 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
13598 memory operations. call rs6000_output_move_128bit for the actual
13599 instruciton(s) to generate.
13600 (vsx_movti_64bit): Likewise.
13601
13602 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
13603 (UNSPEC_P8V_MTVSRWZ): Likewise.
13604 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
13605 (UNSPEC_P8V_MTVSRD): Likewise.
13606 (UNSPEC_P8V_XXPERMDI): Likewise.
13607 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
13608 (UNSPEC_FUSION_GPR): Likewise.
13609 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 13610 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
13611 (f32_sv): Likewise.
13612 (f32_dm): Likewise.
13613 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
13614 loads and direct move instructions.
13615 (zero_extendsidi2_lfiwzx): Likewise.
13616 (extendsidi2_lfiwax): Likewise.
13617 (extendsidi2_nocell): Likewise.
13618 (floatsi<mode>2_lfiwax): Likewise.
13619 (lfiwax): Likewise.
13620 (floatunssi<mode>2_lfiwzx): Likewise.
13621 (lfiwzx): Likewise.
13622 (fix_trunc<mode>_stfiwx): Likewise.
13623 (fixuns_trunc<mode>_stfiwx): Likewise.
13624 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
13625 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
13626 (parity<mode>2_cmpb): Set length/type attr.
13627 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
13628 for 'mr.' to fast_compare.
13629 (bpermd_<mode>): Change type attr to popcnt.
13630 (p8_fmrgow_<mode>): New insns for power8 direct move support.
13631 (p8_mtvsrwz_1): Likewise.
13632 (p8_mtvsrwz_2): Likewise.
13633 (reload_fpr_from_gpr<mode>): Likewise.
13634 (p8_mtvsrd_1): Likewise.
13635 (p8_mtvsrd_2): Likewise.
13636 (p8_xxpermdi_<mode>): Likewise.
13637 (reload_vsx_from_gpr<mode>): Likewise.
13638 (reload_vsx_from_gprsf): Likewise.
13639 (p8_mfvsrd_3_<mode>): LIkewise.
13640 (reload_gpr_from_vsx<mode>): Likewise.
13641 (reload_gpr_from_vsxsf): Likewise.
13642 (p8_mfvsrd_4_disf): Likewise.
13643 (multi-word GPR splits): Do not split direct moves or quad memory
13644 operations.
13645
16876bdc
DM
136462013-06-10 David Malcolm <dmalcolm@redhat.com>
13647
13648 * tree-into-ssa.c (interesting_blocks): Make static.
13649
df8a1d28
JJ
136502013-06-10 Jakub Jelinek <jakub@redhat.com>
13651
13652 PR target/56564
13653 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
13654 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
13655 Use DATA_ABI_ALIGNMENT for that case instead if defined.
13656 (get_variable_align): New function.
13657 (get_variable_section, emit_bss, emit_common,
13658 assemble_variable_contents, place_block_symbol): Use
13659 get_variable_align instead of DECL_ALIGN.
13660 (assemble_noswitch_variable): Add align argument, use it
13661 instead of DECL_ALIGN.
13662 (assemble_variable): Adjust caller. Use get_variable_align
13663 instead of DECL_ALIGN.
13664 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
13665 caller.
13666 (DATA_ABI_ALIGNMENT): Define.
13667 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
13668 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
13669 opt is false, only return the psABI mandated alignment increase.
13670 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
13671 (DATA_ABI_ALIGNMENT): ... this.
13672 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
13673 (DATA_ABI_ALIGNMENT): ... this.
13674 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
13675 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
13676 (DATA_ABI_ALIGNMENT): ... this.
13677 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
13678 * doc/tm.texi: Regenerated.
13679
57b29ca6
UB
136802013-06-10 Uros Bizjak <ubizjak@gmail.com>
13681
13682 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
13683 cmp_code to construct REG_EQUAL note.
13684
3e56ed50
JJ
136852013-06-09 Jakub Jelinek <jakub@redhat.com>
13686
13687 PR target/57568
13688 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
13689 that operands[2] doesn't overlap with operands[0].
13690
74fe2a1d
DE
136912013-06-09 David Edelsohn <dje.gcc@gmail.com>
13692 Jan Hubicka <jh@suse.cz>
13693
13694 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
13695 hack to mark symbols as used.
13696
ed52a84e
VM
136972013-06-08 Vladimir Makarov <vmakarov@redhat.com>
13698
13699 PR rtl-optimization/57559
13700 * lra-constraints.c (process_alt_operands): Don't discourage
13701 memory with known offset for offsetable memory constraint.
13702 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
13703
299316ed
EB
137042013-06-08 Eric Botcazou <ebotcazou@adacore.com>
13705
13706 * varasm.c (struct oc_local_state): Reorder fields.
13707 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
13708 and adjust accordingly.
13709 (output_constructor): Reorder initialization code and adjust call to
13710 output_constructor_bitfield.
13711
88ac60d3
JH
137122013-06-07 Jan Hubicka <jh@suse.cz>
13713
13714 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
13715
4cdce1a8
DM
137162013-06-07 David Malcolm <dmalcolm@redhat.com>
13717
13718 * tree-object-size.c (unknown): Make const.
13719
b5e0425c
AK
137202013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13721
13722 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
13723 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
13724 for last alternative in the cpu_facility attribute.
13725
79678d04
KT
137262013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13727
13728 PR target/56315
13729 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
13730 (xordi3): Change operand 2 constraint to arm_xordi_operand.
13731 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
13732 * config/arm/constraints.md (Dg): New constraint.
13733 * config/arm/neon.md (xordi3_neon): Remove.
13734 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
13735 * config/arm/predicates.md (arm_xordi_operand): New predicate.
13736
b31ddbdb
KT
137372013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13738
13739 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
13740 Clean up alternatives.
13741
8f90b7d4
AM
137422013-06-07 Alan Modra <amodra@gmail.com>
13743
13744 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
13745 va_list_gpr_size.
13746
961ce119
AM
137472013-06-07 Alan Modra <amodra@gmail.com>
13748
13749 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
13750
33e49835
KT
137512013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13752
13753 * config/arm/constraints.md (Df): New constraint.
13754 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
13755 Correct length attribute for last two alternatives.
13756
acd17ae6
AM
137572013-06-07 Alan Modra <amodra@gmail.com>
13758
13759 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13760 override user -mfp-in-toc.
13761 (offsettable_ok_by_alignment): Consider just the current access
13762 rather than the whole object, unless BLKmode. Handle
13763 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
13764 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
13765 for -mcmodel=medium.
13766 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
13767 override user -mfp-in-toc or -msum-in-toc. Default to
13768 -mno-fp-in-toc for -mcmodel=medium.
13769
73310b0e
DD
137702013-06-06 DJ Delorie <dj@redhat.com>
13771
13772 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
13773 TARGET_VALID_POINTER_MODE.
13774
0bd62dca 137752013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13776 Pat Haugen <pthaugen@us.ibm.com>
13777 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
13778
13779 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13780 Document new power8 builtins.
13781
13782 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
13783 condition code register, to allow 128-bit logical operations to be
13784 done in the VSX or GPR registers.
13785 (nor<mode>3): Use the canonical form for nor.
13786 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
13787 vclz*, and vpopcnt* vector instructions.
13788 (nand<mode>3): Likewise.
13789 (orc<mode>3): Likewise.
13790 (clz<mode>2): LIkewise.
13791 (popcount<mode>2): Likewise.
13792
13793 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
13794 that only the GPRs are recognized.
13795
13796 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13797 support for new power8 builtins.
13798
13799 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
13800 builtin functions.
13801 (xscvdpspn): Likewise.
13802 (vclz): Likewise.
13803 (vclzb): Likewise.
13804 (vclzh): Likewise.
13805 (vclzw): Likewise.
13806 (vclzd): Likewise.
13807 (vpopcnt): Likewise.
13808 (vpopcntb): Likewise.
13809 (vpopcnth): Likewise.
13810 (vpopcntw): Likewise.
13811 (vpopcntd): Likewise.
13812 (vgbbd): Likewise.
13813 (vmrgew): Likewise.
13814 (vmrgow): Likewise.
13815 (eqv): Likewise.
13816 (eqv_v16qi3): Likewise.
13817 (eqv_v8hi3): Likewise.
13818 (eqv_v4si3): Likewise.
13819 (eqv_v2di3): Likewise.
13820 (eqv_v4sf3): Likewise.
13821 (eqv_v2df3): Likewise.
13822 (nand): Likewise.
13823 (nand_v16qi3): Likewise.
13824 (nand_v8hi3): Likewise.
13825 (nand_v4si3): Likewise.
13826 (nand_v2di3): Likewise.
13827 (nand_v4sf3): Likewise.
13828 (nand_v2df3): Likewise.
13829 (orc): Likewise.
13830 (orc_v16qi3): Likewise.
13831 (orc_v8hi3): Likewise.
13832 (orc_v4si3): Likewise.
13833 (orc_v2di3): Likewise.
13834 (orc_v4sf3): Likewise.
13835 (orc_v2df3): Likewise.
13836
13837 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
13838 allow power8 quad mode in 64-bit.
13839 (rs6000_builtin_vectorized_function): Add support to vectorize
13840 ISA 2.07 count leading zeros, population count builtins.
13841 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
13842 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
13843 (builtin_function_type): Add vgbbd builtin function which takes an
13844 unsigned argument.
13845 (altivec_expand_vec_perm_const): Add support for new power8 merge
13846 instructions.
13847
13848 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
13849 that does not include TImdoe for use with 32-bit.
13850 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
13851 instructions.
13852 (UNSPEC_VSX_CVDPSPN): Likewise.
13853 (vsx_xscvdpspn): Likewise.
13854 (vsx_xscvspdpn): Likewise.
13855 (vsx_xscvdpspn_scalar): Likewise.
13856 (vsx_xscvspdpn_directmove): Likewise.
13857 (vsx_and<mode>3): Split logical operations into 32-bit and
13858 64-bit. Add support to do logical operations on TImode as well as
13859 VSX vector types. Allow logical operations to be done in either
13860 VSX registers or in general purpose registers in 64-bit mode. Add
13861 splitters if GPRs were used. For AND, add clobber of CCmode to
13862 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
13863 encoding.
13864 (vsx_and<mode>3_32bit): Likewise.
13865 (vsx_and<mode>3_64bit): Likewise.
13866 (vsx_ior<mode>3): Likewise.
13867 (vsx_ior<mode>3_32bit): Likewise.
13868 (vsx_ior<mode>3_64bit): Likewise.
13869 (vsx_xor<mode>3): Likewise.
13870 (vsx_xor<mode>3_32bit): Likewise.
13871 (vsx_xor<mode>3_64bit): Likewise.
13872 (vsx_one_cmpl<mode>2): Likewise.
13873 (vsx_one_cmpl<mode>2_32bit): Likewise.
13874 (vsx_one_cmpl<mode>2_64bit): Likewise.
13875 (vsx_nor<mode>3): Likewise.
13876 (vsx_nor<mode>3_32bit): Likewise.
13877 (vsx_nor<mode>3_64bit): Likewise.
13878 (vsx_andc<mode>3): Likewise.
13879 (vsx_andc<mode>3_32bit): Likewise.
13880 (vsx_andc<mode>3_64bit): Likewise.
13881 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
13882 and xxlorc instructions.
13883 (vsx_eqv<mode>3_64bit): Likewise.
13884 (vsx_nand<mode>3_32bit): Likewise.
13885 (vsx_nand<mode>3_64bit): Likewise.
13886 (vsx_orc<mode>3_32bit): Likewise.
13887 (vsx_orc<mode>3_64bit): Likewise.
13888
13889 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
13890
13891 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
13892 instruction.
13893 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
13894 (p8_vmrgow): Likewise.
13895 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
13896 GPRs to be split under VSX.
13897 (p8v_clz<mode>2): Add power8 count leading zero support.
13898 (p8v_popcount<mode>2): Add power8 population count support.
13899 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
13900 support.
13901
13902 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
13903 instruction.
13904
13905 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
13906 builtin functions.
13907 (vec_nand): Likewise.
13908 (vec_vclz): Likewise.
13909 (vec_vclzb): Likewise.
13910 (vec_vclzd): Likewise.
13911 (vec_vclzh): Likewise.
13912 (vec_vclzw): Likewise.
13913 (vec_vgbbd): Likewise.
13914 (vec_vmrgew): Likewise.
13915 (vec_vmrgow): Likewise.
13916 (vec_vpopcnt): Likewise.
13917 (vec_vpopcntb): Likewise.
13918 (vec_vpopcntd): Likewise.
13919 (vec_vpopcnth): Likewise.
13920 (vec_vpopcntw): Likewise.
13921
37684c46
VM
139222013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13923
13924 PR rtl-optimization/57468
13925 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
13926 spilled pseudos.
13927
d89ae27c
VM
139282013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13929
13930 PR rtl-optimization/57459
13931 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
13932 type when setting live regs.
13933
3597e113
VM
139342013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13935
13936 * config/s390/s390.opt (mlra): New option.
13937 * config/s390/s390.c (s390_decompose_address): Check displacement
13938 for all registers for LRA.
13939 (s390_secondary_reload): Don't used secondary reloads for LRA.
13940 (s390_lra_p): New function.
13941 (TARGET_LRA_P): Define.
13942 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
13943 of attribute cpu_facility to zarch for the last alternative.
13944 (*cmpmem_short): Ditto.
13945
01037aeb
EB
139462013-06-06 Eric Botcazou <ebotcazou@adacore.com>
13947
13948 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
13949 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
13950 (arm_expand_prologue): Likewise.
13951
3371a64f
TJ
139522013-06-06 Teresa Johnson <tejohnson@google.com>
13953
13954 PR c++/53743
13955 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
13956 as this is now done by redirect_edge_and_branch_force.
13957 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
13958 barriers, and fix interaction with splitting.
13959 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
13960 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
13961 reflect changes made in the routine.
13962 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
13963 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
13964 since this is called in cfglayout mode, and replace partition fixup
13965 with assert as that is now done by force_nonfallthru_and_redirect.
13966 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
13967 already be marked with region crossing note.
13968 (insert_section_boundary_note): Make non-static, gate on flag
13969 has_bb_partition, rewrite to also check for multiple partitions.
13970 (rest_of_handle_reorder_blocks): Remove call to
13971 insert_section_boundary_note, now done later during free_cfg.
13972 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
13973 * bb-reorder.h (insert_section_boundary_note): Declare.
13974 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
13975 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
13976 invoke insert_section_boundary_note.
13977 (try_redirect_by_replacing_jump): Remove unnecessary
13978 check for region crossing note.
13979 (fixup_partition_crossing): New function.
13980 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
13981 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
13982 in non-cfglayout mode.
13983 (force_nonfallthru_and_redirect): Fixup partition boundaries,
13984 remove old code that tried to do this. Emit barrier correctly
13985 when we are in cfglayout mode.
13986 (last_bb_in_partition): New function.
13987 (rtl_split_edge): Correctly fixup partition boundaries.
13988 (commit_one_edge_insertion): Remove old code that tried to
13989 fixup region crossing edge since this is now handled in
13990 split_block, and set up insertion point correctly since
13991 block may now end in a jump.
13992 (verify_hot_cold_block_grouping): Guard against checking when not in
13993 linearized RTL mode.
13994 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
13995 notes.
13996 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
13997 rtl_verify_flow_info, so not called in cfglayout mode.
13998 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
13999 (fixup_reorder_chain): Remove old code that attempted to fixup region
14000 crossing note as this is now handled in force_nonfallthru_and_redirect.
14001 (duplicate_insn_chain): Don't duplicate switch section notes.
14002 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
14003 note.
14004 * basic-block.h (emit_barrier_after_bb): Declare.
14005
66071e10
KT
140062013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14007
14008 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
14009 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
14010 arm_usatsihi): Adjust alternatives for arm_restrict_it.
14011
0e26bf3d
KT
140122013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14013
14014 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
14015 where appropriate.
14016 * config/arm/ldmstm.md: Regenerate.
14017
12b4e7ef
KT
140182013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14019
14020 * config/arm/sync.md (atomic_loaddi_1):
14021 Disable predication for arm_restrict_it.
14022 (arm_load_exclusive<mode>): Likewise.
14023 (arm_load_exclusivesi): Likewise.
14024 (arm_load_exclusivedi): Likewise.
14025 (arm_load_acquire_exclusive<mode>): Likewise.
14026 (arm_load_acquire_exclusivesi): Likewise.
14027 (arm_load_acquire_exclusivedi): Likewise.
14028 (arm_store_exclusive<mode>): Likewise.
14029 (arm_store_exclusive<mode>): Likewise.
14030 (arm_store_release_exclusivedi): Likewise.
14031 (arm_store_release_exclusive<mode>): Likewise.
14032
15d16c8a
RB
140332013-06-06 Richard Biener <rguenther@suse.de>
14034
14035 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
14036 after LTO_null.
14037 (lto_tag_is_tree_code_p): Adjust.
14038 (lto_tag_is_gimple_code_p): Likewise.
14039 (lto_gimple_code_to_tag): Likewise.
14040 (lto_tag_to_gimple_code): Likewise.
14041 (lto_tree_code_to_tag): Likewise.
14042 (lto_tag_to_tree_code): Likewise.
14043 * data-streamer.h (streamer_write_hwi_in_range): Use
14044 uhwi streaming to stream the normalized range.
14045 (streamer_read_hwi_in_range): Likewise.
14046
17a7fc37
KT
140472013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14048
14049 * config/arm/arm.md (enabled_for_depr_it): New attribute.
14050 (predicable_short_it): Likewise.
14051 (predicated): Likewise.
14052 (enabled): Handle above.
14053 (define_cond_exec): Set predicated attribute to yes.
14054
b57ca59b
MS
140552013-06-05 Mike Stump <mikestump@comcast.net>
14056
14057 * gdbinit.in (__FUNCTION__): Add.
14058
c1e183a9
UB
140592013-06-05 Uros Bizjak <ubizjak@gmail.com>
14060
14061 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
14062 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
14063
0378bddb
JH
140642013-06-05 Jan Hubicka <jh@suse.cz>
14065
14066 * varasm.c (mark_decl_referenced): Revert the removal until targets
14067 are fixed.
14068
8f8a2057
DE
140692013-06-05 David Edelsohn <dje.gcc@gmail.com>
14070
14071 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
14072 instead of mark_decl_referenced.
14073
edb983b2
JH
140742013-06-05 Jan Hubicka <jh@suse.cz>
14075
14076 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
14077 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
14078 and symtab_used_from_object_file_p.
14079 (cgraph_make_node_local_1): Clear forced_by_abi.
14080 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
14081 * cgraph.h (symtab_node_base): Add forced_by_abi.
14082 (decide_is_variable_needed): Remove.
14083 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
14084 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
14085 (decide_is_symbol_needed): ... this one; handle symbols in general;
14086 always analyze virtuals; honnor forced_by_abi.
14087 (cgraph_finalize_function): Update.
14088 (varpool_finalize_decl): Update.
14089 (symbol_defined_and_needed): Remove.
14090 (analyze_functions): Update.
14091 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
14092 output_refs, input_overwrite_node): Handle forced_by_abi.
14093 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
14094 (address_taken_from_non_vtable_p): ... this one.
14095 (comdat_can_be_unshared_p_1): New function.
14096 (cgraph_comdat_can_be_unshared_p): Rename to ...
14097 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
14098 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
14099 (function_and_variable_visibility): Clear forced_by_abi as needed.
14100 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
14101 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
14102 * symtab.c (dump_symtab_base): Dump forced_by_abi.
14103 * varpool.c (decide_is_variable_needed): Remove.
14104
9912dbe5
KT
141052013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14106
14107 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
14108 (arm_option_override): Override arm_restrict_it where appropriate.
14109 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
14110 * config/arm/arm.opt (mrestrict-it): New command-line option.
14111 * doc/invoke.texi: Document -mrestrict-it.
14112
34c136b6
DM
141132013-06-05 David Malcolm <dmalcolm@redhat.com>
14114
14115 * tsan.c (tsan_atomic_table): Make const.
14116
a367df53
RB
141172013-06-05 Richard Biener <rguenther@suse.de>
14118
14119 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
14120 index associated with the tree we are supposed to replace.
14121 * tree-streamer-out.c (pack_ts_base_value_fields): Output
14122 TREE_ASM_WRITTEN as zero for everything but SSA names.
14123
70d51a19
DM
141242013-06-05 David Malcolm <dmalcolm@redhat.com>
14125
14126 * tree-ssa-structalias.c (call_stmt_vars): Make static.
14127
b9bd2075
JH
141282013-06-04 Jan Hubicka <jh@suse.cz>
14129
14130 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
14131 (input_node, input_varpool_node): Handle correctly external same
14132 body aliases.
14133 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
14134 nodes at ltrans stage.
14135
aaae719d
JH
141362013-06-04 Jan Hubicka <jh@suse.cz>
14137
14138 * ipa-inline.c (update_caller_keys): Fix availability test.
14139 (update_callee_keys): Likewise.
14140 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
14141 to follow ELF standard.
14142
107eea2c
JU
141432013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
14144
14145 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
14146 (mips64r5900el-*-elf*): New configurations.
14147 * config/mips/mips-cpus.def (r5900): New processor.
14148 * config/mips/mips-tables.opt: Regenerate.
14149 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
14150 (mips_issue_rate): Handle PROCESSOR_R5900.
14151 (mips_reorg_process_insns): Force reorder mode for the R5900.
14152 * config/mips/mips.h (TARGET_MIPS5900): Define.
14153 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
14154 TARGET_MIPS5900.
14155 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
14156 TARGET_MIPS5900.
14157 * config/mips/mips.md (processor): Add r5900.
14158 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
14159
b7342d25
IB
141602013-06-04 Ian Bolton <ian.bolton@arm.com>
14161
14162 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
14163 into function to generate MOVI instruction.
c1e183a9 14164 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
14165 (aarch64_preferred_simd_mode): Turn into wrapper.
14166 (aarch64_output_scalar_simd_mov_immediate): New function.
14167 * config/aarch64/aarch64-protos.h: Add prototype for above.
14168
81c2dfb9
IB
141692013-06-04 Ian Bolton <ian.bolton@arm.com>
14170
14171 * config/aarch64/aarch64.c (simd_immediate_info): Remove
14172 element_char member.
14173 (sizetochar): Return signed char.
14174 (aarch64_simd_valid_immediate): Remove elchar and other
14175 unnecessary variables.
14176 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
14177 Calculate element_char as required.
14178 * config/aarch64/aarch64-protos.h: Update and move prototype
14179 for aarch64_output_simd_mov_immediate.
14180 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
14181 Update arguments.
14182
48063b9d
IB
141832013-06-04 Ian Bolton <ian.bolton@arm.com>
14184
14185 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
14186 information completed by aarch64_simd_valid_immediate.
14187 (aarch64_legitimate_constant_p): Update arguments.
14188 (aarch64_simd_valid_immediate): Work with struct rather than many
14189 pointers.
14190 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
14191 (aarch64_simd_make_constant): Update arguments.
14192 (aarch64_output_simd_mov_immediate): Work with struct rather than
14193 many pointers. Output immediate directly rather than as operand.
14194 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
14195 Update prototype.
14196 * config/aarch64/constraints.md (Dn): Update arguments.
14197
3ea63f60
IB
141982013-06-04 Ian Bolton <ian.bolton@arm.com>
14199
14200 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
14201 longer static.
14202 (aarch64_simd_immediate_valid_for_move): Remove.
14203 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
14204 (aarch64_simd_make_constant): Update call.
14205 (aarch64_output_simd_mov_immediate): Update call.
14206 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
14207 Add prototype.
14208 * config/aarch64/constraints.md (Dn): Update call.
14209
d8edd899
IB
142102013-06-04 Ian Bolton <ian.bolton@arm.com>
14211
14212 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
14213 return type to bool for prototype.
14214 (aarch64_legitimate_constant_p): Check for true instead of not -1.
14215 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
14216 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
14217
44b20bb8
CM
142182013-06-04 Catherine Moore <clm@codesourcery.com>
14219
14220 * config/mips/mips.opt (meva): New.
c1e183a9 14221 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
14222 (ASM_SPEC): Handle -meva.
14223 * doc/invoke.texi (meva): Document.
14224
52befbd8
AM
142252013-06-04 Alan Modra <amodra@gmail.com>
14226
14227 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
14228 constant output.
14229
aadaf24e
KT
142302013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14231
14232 * rtl.def: Add extra fourth optional field to define_cond_exec.
14233 * gensupport.c (process_one_cond_exec): Process attributes from
14234 define_cond_exec.
14235 * doc/md.texi: Document fourth field in define_cond_exec.
14236
0cd9e9ee
EB
142372013-06-04 Eric Botcazou <ebotcazou@adacore.com>
14238
14239 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
14240 out the processing order as in store_bit_field_1.
14241
cb0f665d
JH
142422013-06-04 Jan Hubicka <jh@suse.cz>
14243
14244 PR middle-end/57500
14245 * cgraphunit.c (cgraph_process_same_body_aliases): Create
14246 non-VAR_DECL node if it does not exist yet.
14247
53984b9b
RS
142482013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
14249
14250 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
14251 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
14252 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
14253 target_cpu_default setting.
14254
5d318fd4
TJ
142552013-06-03 Teresa Johnson <tejohnson@google.com>
14256
14257 * dumpfile.c (opt_info_switch_p): Change -fopt-info
14258 default to -fopt-info=optimized instead of all.
14259 * doc/invoke.texi: Ditto.
14260 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
14261 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
14262 (execute_vect_slp): Emit BB vectorization success under
14263 MSG_OPTIMIZED_LOCATIONS.
14264 * tree-vect-slp.c (vect_slp_transform_bb): Change
14265 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
14266 * tree-vect-loop.c (vect_transform_loop): Ditto.
14267
ec3af349
JM
142682013-06-03 Jason Merrill <jason@redhat.com>
14269
14270 PR c++/57415
14271 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14272 Use TARGET_EXPR for C++.
14273
1baf9159
JJ
142742013-06-03 Jakub Jelinek <jakub@redhat.com>
14275
14276 PR rtl-optimization/57268
0cd9e9ee 14277 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
14278 if DEBUG_INSN_P (insn).
14279
14280 Reapply
14281 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
14282
14283 PR rtl-optimization/57268
14284 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14285 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14286
0f1d3965
YR
142872013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14288
14289 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
14290 (ix86_avoid_lea_for_addr): Likewise.
14291 (exact_dependency_1): Likewise.
14292 (ix86_adjust_cost): Likewise.
14293 (swap_top_of_ready_list): Fix formatting and !reload_completed check
14294 removed.
14295 (do_reorder_for_imul): Fix typo, formatting and
14296 !reload_completed check removed.
14297 (ix86_sched_reorder): Fix typo and formatting.
14298 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
14299 list.
14300
3bc30db4
SN
143012013-06-03 Sofiane Naci <sofiane.naci@arm.com>
14302
14303 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
14304
19cc6fac
EB
143052013-06-03 Eric Botcazou <ebotcazou@adacore.com>
14306
14307 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
14308 <STRING_CST>: Likewise.
14309 <VECTOR_CST>: Likewise.
14310
c68a6e08
JW
143112013-06-01 Janus Weil <janus@gcc.gnu.org>
14312 Mikael Morin <mikael@gcc.gnu.org>
14313
14314 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
14315 * config.in: Regenerated.
14316 * configure: Regenerated.
14317
38e55e5c
JH
143182013-06-01 Jan Hubicka <jh@suse.cz>
14319
14320 PR middle-end/57366
14321 * cgraphunit.c (compile): When weakref is not supported,
14322 set up transparent aliases before final output pass.
14323 * varasm.c (assemble_alias): Do not try to do it here.
14324
eb51d2ff
JH
143252013-06-01 Jan Hubicka <jh@suse.cz>
14326
14327 PR middle-end/57467
14328 * passes.c (for_per_function): Skip unanalyzed functions.
14329
40a7fe1e
JH
143302013-06-01 Jan Hubicka <jh@suse.cz>
14331
14332 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
14333 (lto_symtab_merge_symbols_1): ... this one.
14334 (lto_symtab_merge_cgraph_nodes): Rename to ...
14335 (lto_symtab_merge_symbols): ... this one; simplify.
14336 * cgraph.c (same_body_aliases_done): Rename to ...
14337 (cpp_implicit_aliases_done): ... this one.
14338 (cgraph_create_function_alias): Update.
14339 (cgraph_same_body_alias): Update.
c1e183a9 14340 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 14341 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 14342 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
14343 (cgraph_node): Remove same_body_alias.
14344 (varpool_node): Remove alias_of and extra_name_alias.
14345 (same_body_aliases_done): Rename to ..
14346 (cpp_implicit_aliases_done): ... this one.
14347 (symtab_alias_ultimate_target): Add default parameter.
14348 (symtab_resolve_alias): New function.
14349 (fixup_same_cpp_alias_visibility): Declare.
14350 (cgraph_function_node): Add default parameter.
14351 (cgraph_node_asm_name): Likewise.
14352 (cgraph_function_or_thunk_node): Add default parameter; do
14353 not ICE when it is NULL.
14354 (varpool_variable_node): Likewise.
14355 * tree-emutls.c (create_emultls_var): Update.
14356 (ipa_lower_emutls): Update.
14357 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
14358 (cgraph_reset_node): Reset alias info.
14359 (cgraph_finalize_function): Update.
14360 (fixup_same_cpp_alias_visibility): Move to symtab.c.
14361 (analyze_function): Simplify.
14362 (cgraph_process_same_body_aliases): Simplify.
14363 (analyze_functions): Fixup same body aliases.
14364 (handle_alias_pairs): Simplify.
14365 (assemble_thunk): Update.
14366 (assemble_thunks_and_aliases): Update.
14367 (output_weakrefs): Rewrite.
14368 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
14369 (lto_output_varpool_node): Likewise.
14370 (compute_ltrans_boundary): Remve assert.
14371 (get_alias_symbol): New functoin.
14372 (input_node): Rewrite alias handling.
14373 (input_varpool_node): Likewise.
14374 * ipa-pure-const.c (propagate_pure_const): Fix formating.
14375 * ipa.c (process_references): Handle weakrefs correctly.
14376 (symtab_remove_unreachable_nodes): Likewise.
14377 * trans-mem.c (get_cg_data): Update.
14378 (ipa_tm_create_version_alias): Update.
14379 (ipa_tm_execute): Update.
14380 * symtab.c (dump_symtab_base): Dump aliases.
14381 (verify_symtab_base): Verify aliases.
14382 (symtab_node_availability): New function.
14383 (symtab_alias_ultimate_target): Simplify.
14384 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
14385 handle all the fixup cases.
14386 (symtab_resolve_alias): New function.
14387 * passes.c (ipa_write_summaries): Handle weakrefs.
14388 * varpool.c (varpool_analyze_node): Simplify.
14389 (assemble_aliases): Update.
14390 (varpool_create_variable_alias): Simplify.
14391 (varpool_extra_name_alias): Simplify.
14392 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
14393 (lto_symtab_merge_symbols): ... this one.
14394
21759881
DT
143952013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
14396
14397 Revert
14398 PR rtl-optimization/57268
14399 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14400 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14401
daf4e940
TB
144022013-06-01 Tobias Burnus <burnus@net-b.de>
14403
14404 Partially reverted:
14405 2013-05-31 Tobias Burnus <burnus@net-b.de>
14406
14407 PR middle-end/57073
14408 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
14409 further up.
14410
c359d8d0
DT
144112013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
14412
14413 PR rtl-optimization/57268
14414 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14415 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14416
4172215d
EB
144172013-05-31 Eric Botcazou <ebotcazou@adacore.com>
14418
14419 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
14420 unordered comparison operators when -fno-trapping-math is in effect
14421 on the e500.
14422 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
14423 and implement unordered comparison operators properly on the e500.
14424
a8c50132
EB
144252013-05-31 Eric Botcazou <ebotcazou@adacore.com>
14426
14427 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
14428 for constant scalar integers.
14429 (simplify_relational_operation_1): Likewise.
14430
44626634
SB
144312013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
14432
14433 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
14434 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
14435 Fix comment.
14436
55805e54
YR
144372013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14438 Igor Zamyatin <igor.zamyatin@intel.com>
14439
14440 Silvermont (SLM) architecture performance tuning.
14441 * config/i386/i386.h (enum ix86_tune_indices): Add
14442 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
14443 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
14444
14445 * config/i386/i386.c (initial_ix86_tune_features)
14446 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
14447 (ix86_lea_outperforms): Handle Silvermont tuning.
14448 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
14449 call.
14450 (ix86_use_lea_for_mov): Likewise.
14451 (ix86_avoid_lea_for_addr): Likewise.
14452 (ix86_lea_for_add_ok): Likewise.
14453 (exact_dependency_1): New function.
14454 (exact_store_load_dependency): Likewise.
14455 (ix86_adjust_cost): Handle Silvermont tuning.
14456 (do_reoder_for_imul): Likewise.
14457 (swap_top_of_ready_list): New function.
14458 (ix86_sched_reorder): Changed to handle Silvermont tuning.
14459
14460 * config/i386/i386.md (peepholes that split memory operand in fp
14461 converts): New.
14462
e19c9de2
MS
144632013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
14464
14465 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14466 Remove un-necessary braces.
14467
38e6c9a6
MS
144682013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
14469
14470 * config/aarch64/aarch64.c (aarch64_classify_symbol):
14471 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
14472
e3530904
TB
144732013-05-31 Tobias Burnus <burnus@net-b.de>
14474
14475 PR middle-end/57073
c1e183a9 14476 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 14477
b6af05a9
KT
144782013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14479
14480 PR target/56315
14481 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
14482 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
14483 * config/arm/neon.md (iordi3_neon): Remove.
14484 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
14485 * config/arm/predicates.md (imm_for_neon_logic_operand):
14486 Move to earlier in the file.
14487 (neon_logic_op2): Likewise.
14488 (arm_iordi_operand_neon): New predicate.
14489
f800c166
RB
144902013-05-31 Richard Biener <rguenther@suse.de>
14491
14492 PR tree-optimization/57478
14493 PR tree-optimization/57453
14494 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
14495 are life as well.
14496
e571fa59
KP
144972013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14498
14499 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
14500 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
14501
0fa6e0ef
TB
145022013-05-30 Tobias Burnus <burnus@net-b.de>
14503 Thomas Koenig <tkoenig@gcc.gnu.org>
14504
14505 PR middle-end/57073
14506 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
14507 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
14508
4688ddf5
SB
145092013-05-30 Steven Bosscher <steven@gcc.gnu.org>
14510
0fa6e0ef 14511 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 14512
3b9ceb4b
VM
145132013-05-30 Vladimir Makarov <vmakarov@redhat.com>
14514
14515 * target.def (register_usage_leveling_p): New hook.
14516 * targhooks.c (default_register_usage_leveling_p): New.
14517 * targhooks.h (default_register_usage_leveling_p): New prototype.
14518 * lra-assigns.c (register_usage_leveling_p): Use the hook.
14519 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
14520 * doc/tm.texi: Update.
14521 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
14522
65f9e789
IB
145232013-05-30 Ian Bolton <ian.bolton@arm.com>
14524
14525 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
14526 (*insv_reg<mode>): New define_insn.
14527
12211b99 145282013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
14529
14530 PR rtl-optimization/57439
14531 * postreload.c (move2add_valid_value_p): Check that we have
14532 a zero subreg_regno_offset when accessing the register in
14533 the requested mode.
14534
0b871ccf
YR
145352013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14536 Igor Zamyatin <igor.zamyatin@intel.com>
14537
14538 Silvermont (SLM) architecture pipeline model, tuning and
14539 insn selection.
14540 * config.gcc: Add slm config options and target.
14541
14542 * config/i386/slm.md: New.
14543
14544 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
14545
f43245d1 14546 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
14547 PROCESSOR_SLM.
14548 (ix86_target_macros_internal): Likewise.
14549
f43245d1 14550 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
14551 (m_SLM): New macro flag.
14552 (initial_ix86_tune_features): Set m_SLM.
14553 (x86_accumulate_outgoing_args): Likewise.
14554 (x86_arch_always_fancy_math_387): Likewise.
14555 (processor_target_table): Add slm cost.
14556 (cpu_names): Add slm cpu name.
14557 (x86_option_override_internal): Set SLM ISA.
14558 (ix86_issue_rate): New case PROCESSOR_SLM.
14559 (ia32_multipass_dfa_lookahead): Likewise.
14560 (fold_builtin_cpu): Add slm.
14561
14562 * config/i386/i386.h (TARGET_SLM): New target macro.
14563 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
14564 (processor_type): Add PROCESSOR_SLM.
14565
14566 * config/i386/i386.md (cpu): Add new value "slm".
14567 (slm.md): Include slm.md.
14568
24d5b097
XG
145692013-05-30 Bernd Schmidt <bernds@codesourcery.com>
14570 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14571
14572 * config/arm/arm-protos.h: Add and update function protos.
14573 * config/arm/arm.c (use_simple_return_p): New added.
14574 (thumb2_expand_return): Check simple_return flag.
14575 * config/arm/arm.md: Add simple_return and conditional simple_return.
14576 * config/arm/iterators.md: Add iterator for return and simple_return.
14577
c1cccc15
ZC
145782013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14579
14580 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
14581 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
14582 (arm_emit_vfp_multi_reg_pop): Likewise.
14583 (thumb2_emit_ldrd_pop): Likewise.
14584 (arm_expand_epilogue): Add misc REG_CFA notes.
14585 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
14586
3a4f280b
LC
145872013-05-29 Lawrence Crowl <crowl@google.com>
14588
14589 * config/arm/t-arm: Update for below.
14590
14591 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
14592 Change type to hash_table. Update dependent calls and types.
14593
14594 * config/i386/t-cygming: Update for below.
14595
14596 * config/i386/t-interix: Update for below.
14597
14598 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
14599 Change type to hash_table. Update dependent calls and types.
14600 (i386_find_on_wrapper_list::wrappers): Likewise.
14601
14602 * config/ia64/t-ia64: Update for below.
14603
14604 * config/ia64/ia64.c (bundle_state_table):
14605 Change type to hash_table. Update dependent calls and types.
14606
14607 * config/mips/mips.c (mips_reorg_process_insns::htab):
14608 Change type to hash_table. Update dependent calls and types.
14609
14610 * config/sol2.c (solaris_comdat_htab):
14611 Change type to hash_table. Update dependent calls and types.
14612
14613 * config/t-sol2: Update for above.
14614
1388a0e3
TJ
146152013-05-29 Teresa Johnson <tejohnson@google.com>
14616
14617 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
14618 functions are not yet marked as defined.
14619
a5965b52 146202013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14621 Pat Haugen <pthaugen@us.ibm.com>
14622 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
14623
14624 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
14625 instructions.
14626 (VEC_A): Likewise.
14627 (VEC_C): Likewise.
14628 (vrotl<mode>3): Likewise.
14629 (vashl<mode>3): Likewise.
14630 (vlshr<mode>3): Likewise.
14631 (vashr<mode>3): Likewise.
14632
14633 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14634 support for power8 V2DI builtins.
14635
14636 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
14637 power8 V2DI builtins.
14638 (vupkhsw): Likewise.
14639 (vupklsw): Likewise.
14640 (vaddudm): Likewise.
14641 (vminsd): Likewise.
14642 (vmaxsd): Likewise.
14643 (vminud): Likewise.
14644 (vmaxud): Likewise.
14645 (vpkudum): Likewise.
14646 (vpksdss): Likewise.
14647 (vpkudus): Likewise.
14648 (vpksdus): Likewise.
14649 (vrld): Likewise.
14650 (vsld): Likewise.
14651 (vsrd): Likewise.
14652 (vsrad): Likewise.
14653 (vsubudm): Likewise.
14654 (vcmpequd): Likewise.
14655 (vcmpgtsd): Likewise.
14656 (vcmpgtud): Likewise.
14657 (vcmpequd_p): Likewise.
14658 (vcmpgtsd_p): Likewise.
14659 (vcmpgtud_p): Likewise.
14660 (vupkhsw): Likewise.
14661 (vupklsw): Likewise.
14662 (vaddudm): Likewise.
14663 (vmaxsd): Likewise.
14664 (vmaxud): Likewise.
14665 (vminsd): Likewise.
14666 (vminud): Likewise.
14667 (vpksdss): Likewise.
14668 (vpksdus): Likewise.
14669 (vpkudum): Likewise.
14670 (vpkudus): Likewise.
14671 (vrld): Likewise.
14672 (vsld): Likewise.
14673 (vsrad): Likewise.
14674 (vsrd): Likewise.
14675 (vsubudm): Likewise.
14676
14677 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
14678 support for power8 V2DI instructions.
14679
14680 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
14681 power8 V2DI instructions. Combine pack and unpack insns to use an
14682 iterator for each mode. Check whether a particular mode supports
14683 Altivec instructions instead of just checking TARGET_ALTIVEC.
14684 (UNSPEC_VPKUWUM): Likewise.
14685 (UNSPEC_VPKSHSS): Likewise.
14686 (UNSPEC_VPKSWSS): Likewise.
14687 (UNSPEC_VPKUHUS): Likewise.
14688 (UNSPEC_VPKSHUS): Likewise.
14689 (UNSPEC_VPKUWUS): Likewise.
14690 (UNSPEC_VPKSWUS): Likewise.
14691 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
14692 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
14693 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
14694 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
14695 (UNSPEC_VUPKHSB): Likewise.
14696 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
14697 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
14698 (UNSPEC_VUPKHSH): Likewise.
14699 (UNSPEC_VUPKLSB): Likewise.
14700 (UNSPEC_VUPKLSH): Likewise.
14701 (VI2): Likewise.
14702 (VI_char): Likewise.
14703 (VI_scalar): Likewise.
14704 (VI_unit): Likewise.
14705 (VP): Likewise.
14706 (VP_small): Likewise.
14707 (VP_small_lc): Likewise.
14708 (VU_char): Likewise.
14709 (add<mode>3): Likewise.
14710 (altivec_vaddcuw): Likewise.
14711 (altivec_vaddu<VI_char>s): Likewise.
14712 (altivec_vadds<VI_char>s): Likewise.
14713 (sub<mode>3): Likewise.
14714 (altivec_vsubcuw): Likewise.
14715 (altivec_vsubu<VI_char>s): Likewise.
14716 (altivec_vsubs<VI_char>s): Likewise.
14717 (altivec_vavgs<VI_char>): Likewise.
14718 (altivec_vcmpbfp): Likewise.
14719 (altivec_eq<mode>): Likewise.
14720 (altivec_gt<mode>): Likewise.
14721 (altivec_gtu<mode>): Likewise.
14722 (umax<mode>3): Likewise.
14723 (smax<mode>3): Likewise.
14724 (umin<mode>3): Likewise.
14725 (smin<mode>3): Likewise.
14726 (altivec_vpkuhum): Likewise.
14727 (altivec_vpkuwum): Likewise.
14728 (altivec_vpkshss): Likewise.
14729 (altivec_vpkswss): Likewise.
14730 (altivec_vpkuhus): Likewise.
14731 (altivec_vpkshus): Likewise.
14732 (altivec_vpkuwus): Likewise.
14733 (altivec_vpkswus): Likewise.
14734 (altivec_vpks<VI_char>ss): Likewise.
14735 (altivec_vpks<VI_char>us): Likewise.
14736 (altivec_vpku<VI_char>us): Likewise.
14737 (altivec_vpku<VI_char>um): Likewise.
14738 (altivec_vrl<VI_char>): Likewise.
14739 (altivec_vsl<VI_char>): Likewise.
14740 (altivec_vsr<VI_char>): Likewise.
14741 (altivec_vsra<VI_char>): Likewise.
14742 (altivec_vsldoi_<mode>): Likewise.
14743 (altivec_vupkhsb): Likewise.
14744 (altivec_vupkhs<VU_char>): Likewise.
14745 (altivec_vupkls<VU_char>): Likewise.
14746 (altivec_vupkhsh): Likewise.
14747 (altivec_vupklsb): Likewise.
14748 (altivec_vupklsh): Likewise.
14749 (altivec_vcmpequ<VI_char>_p): Likewise.
14750 (altivec_vcmpgts<VI_char>_p): Likewise.
14751 (altivec_vcmpgtu<VI_char>_p): Likewise.
14752 (abs<mode>2): Likewise.
14753 (vec_unpacks_hi_v16qi): Likewise.
14754 (vec_unpacks_hi_v8hi): Likewise.
14755 (vec_unpacks_lo_v16qi): Likewise.
14756 (vec_unpacks_hi_<VP_small_lc>): Likewise.
14757 (vec_unpacks_lo_v8hi): Likewise.
14758 (vec_unpacks_lo_<VP_small_lc>): Likewise.
14759 (vec_pack_trunc_v8h): Likewise.
14760 (vec_pack_trunc_v4si): Likewise.
14761 (vec_pack_trunc_<mode>): Likewise.
14762
14763 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
14764 V2DI builtins.
14765 (vec_vmaxsd): Likewise.
14766 (vec_vmaxud): Likewise.
14767 (vec_vminsd): Likewise.
14768 (vec_vminud): Likewise.
14769 (vec_vpksdss): Likewise.
14770 (vec_vpksdus): Likewise.
14771 (vec_vpkudum): Likewise.
14772 (vec_vpkudus): Likewise.
14773 (vec_vrld): Likewise.
14774 (vec_vsld): Likewise.
14775 (vec_vsrad): Likewise.
14776 (vec_vsrd): Likewise.
14777 (vec_vsubudm): Likewise.
14778 (vec_vupkhsw): Likewise.
14779 (vec_vupklsw): Likewise.
14780
e70670cf
JH
147812013-05-29 Jan Hubicka <jh@suse.cz>
14782
14783 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
14784 flags; reorder rest of fields in more consistent way.
14785 (varpool_node): Remove analyzed, finalized and alias.
14786 (cgraph_ndoe): Likewise.
14787 (symtab_alias_ultimate_target): New function.
14788 (cgraph_function_node): Move offline.
14789 (cgraph_reset_node): Declare.
14790 (cgraph_comdat_can_be_unshared_p): Remove.
14791 (varpool_remove_initializer): Declare.
14792 (varpool_first_defined_variable, varpool_next_defined_variable
14793 cgraph_first_defined_function, cgraph_next_defined_function): Update.
14794 (cgraph_function_with_gimple_body_p): Update.
14795 (varpool_all_refs_explicit_p): Update.
14796 (symtab_alias_target): New function.
14797 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
14798 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
14799 (cgraph_function_or_thunk_node): Simplify using
14800 symtab_alias_ultimate_target.
e70670cf
JH
14801 (varpool_variable_node): Likewise.
14802 * cgraph.c (cgraph_create_function_alias): Update.
14803 (cgraph_add_thunk): Update.
14804 (cgraph_remove_node): Update.
14805 (dump_cgraph_node): Do not dump removed flags.
14806 (cgraph_function_body_availability): Update.
14807 (cgraph_propagate_frequency): Update.
14808 (verify_cgraph_node): Check sanity of local flag.
14809 (cgraph_function_node): Move here from cgraph.h; revamp for
14810 cgraph_function_or_thunk_node.
14811 * lto-symtab.c (lto_varpool_replace_node): Update.
14812 (lto_symtab_resolve_can_prevail_p): Update.
14813 (lto_symtab_merge_cgraph_nodes): Update.
14814 * ipa-cp.c (determine_versionability, initialize_node_lattices,
14815 propagate_constants_accross_call, devirtualization_time_bonus,
14816 ipcp_propagate_stage): Update.
14817 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
14818 * ipa-inline-transform.c (clone_inlined_nodes,
14819 preserve_function_body_p): Update.
e70670cf
JH
14820 * ipa-reference.c (propagate): Update.
14821 (write_node_summary_p): Update.
14822 * toplev.c (wrapup_global_declaration_2): Update.
14823 * cgraphunit.c (cgraph_analyze_function): Rename to ...
14824 (analyze_function) ... this one.
14825 (cgraph_process_new_functions): Update.
14826 (cgraph_reset_node): Export.
14827 (cgraph_finalize_function): Update.
14828 (cgraph_add_new_function): Update.
14829 (process_function_and_variable_attributes): Update.
14830 (varpool_finalize_decl): Update.
14831 (symbol_finalized): Remove.
14832 (symbol_finalized_and_needed): Rename to ...
14833 (symbol_defined_and_needed): ... update.
14834 (cgraph_analyze_functions): Update.
14835 (handle_alias_pairs): Update.
14836 (mark_functions_to_output): Update.
14837 (assemble_thunk): Update.
14838 (output_in_order): Update.
14839 (output_weakrefs): Update.
14840 (finalize_compilation_unit): Update.
14841 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
14842 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
14843 input_node, input_varpool_node): Update.
14844 * dbxout.c (dbxout_expand_expr): Update.
14845 * cgraphclones.c (cgraph_clone_node): Update.
14846 (cgraph_copy_node_for_versioning): Update.
14847 (cgraph_materialize_clone): Update.
14848 (cgraph_materialize_all_clones): Update.
14849 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
14850 propagate_pure_const, propagate_nothrow): Update.
14851 * lto-streamer-out.c (lto_output, write_symbol): Update.
14852 * ipa-utils.c (ipa_reverse_postorder): Update.
14853 * ipa-inline.c (can_inline_edge_p): Update.
14854 (update_caller_keys, ipa_inline): Update.
14855 * dwarf2out.c (reference_to_unused,
14856 premark_types_used_by_global_vars_helper): Update.
14857 * tree-eh.c (tree_could_trap_p): Update.
14858 * ipa-split.c (consider_split, execute_split_functions): Update.
14859 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
14860 has_addr_references_p): Update; move ahead in file for better
14861 readability.
e70670cf
JH
14862 (process_references): Simplify.
14863 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
14864 bodies are removed.
14865 (cgraph_comdat_can_be_unshared_p): Make static.
14866 (cgraph_externally_visible_p): Update.
14867 (varpool_externally_visible_p): Update.
14868 (function_and_variable_visibility): Update.
14869 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
14870 ipa_tm_mark_force_output_node): Update.
14871 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
14872 estimate_edge_devirt_benefit, inline_generate_summary,
14873 inline_write_summary): Update.
14874 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
14875 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
14876 (ipa_print_node_params, ipa_prop_read_section,
14877 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
14878 * varasm.c (mark_decl_referenced): Update.
14879 (assemble_alias, dump_tm_clone_pairs): Update.
14880 * tree-inline.c (copy_bb): Update.
14881 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
14882 Update.
14883 * symtab.c (dump_symtab_base): Print new flags.
14884 (verify_symtab_base): Verify new flags.
14885 (symtab_alias_ultimate_target): New function.
14886 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
14887 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
14888 Update.
c1e183a9
UB
14889 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
14890 Update.
e70670cf
JH
14891 * i386.c (ix86_get_function_versions_dispatcher,
14892 ix86_generate_version_dispatcher_body): Update.
14893 (fold_builtin_cpu): Use varpool_add_new_variable.
14894 * varpool.c (varpool_remove_initializer): Break out from ...
14895 (varpool_remove_node): ... this one.
14896 (dump_varpool_node, varpool_node_for_asm,
14897 cgraph_variable_initializer_availability, varpool_analyze_node,
14898 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
14899 varpool_finalize_named_section_flags, varpool_create_variable_alias):
14900 Update.
e70670cf 14901
182802ad
JH
149022013-05-29 Jan Hubicka <jh@suse.cz>
14903
14904 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
14905
8190b609
ER
149062013-05-29 Easwaran Raman <eraman@google.com>
14907
14908 PR tree-optimization/57442
14909 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
14910 when control exits the main loop.
14911
69f5aa9b
SKS
149122013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
14913
14914 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
14915 and RX600.
c1e183a9 14916 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
14917 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
14918 * rx/t-rx: Add rx100 under multi library matches option for nofpu
14919 option.
14920
4b847da9
BS
149212013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14922
14923 PR tree-optimization/57441
14924 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
14925 Don't limit size of incr_vec to number of candidates.
14926
4fc43c39
SE
149272013-05-29 Steve Ellcey <sellcey@imgtec.com>
14928
14929 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
14930 and mips16 directories.
c1e183a9 14931 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
14932 (MULTILIB_DIRNAMES): Ditto.
14933 (MULTILIB_EXCEPTIONS): Add new exceptions.
14934 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
14935 (MULTILIB_DIRNAMES): Ditto.
14936 (MULTILIB_EXCEPTIONS): Add new exceptions.
14937
12211b99 149382012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
14939 Marcus Shawcroft <marcus.shawcroft@arm.com>
14940
14941 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
14942 SYMBOL_TINY_ABSOLUTE.
14943 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
14944 SYMBOL_TINY_ABSOLUTE.
14945 (aarch64_expand_mov_immediate): Likewise.
14946 (aarch64_classify_symbol): Likewise.
14947 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
14948 Permit SYMBOL_TINY_ABSOLUTE.
14949 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
14950
12211b99 149512013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
14952 Marcus Shawcroft <marcus.shawcroft@arm.com>
14953
14954 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
14955 Refactor if/switch. Replace gcc_assert with if.
14956
c0186656
GG
149572013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14958
14959 * config/i386/i386.c (initial_ix86_tune_features): Enable
14960 FP Reassociation for AMD bdver1 and bdver2.
14961
d20188f3
MJ
149622013-05-29 Martin Jambor <mjambor@suse.cz>
14963
14964 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
14965 and IMAGPART_EXPR do not occur within other handled_components.
14966
292cba13
RB
149672013-05-29 Richard Biener <rguenther@suse.de>
14968
14969 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
14970 access on whether the use is in the BB we currently try to
14971 vectorize.
14972 (vect_bb_vectorization_profitable_p): Pass the BB we currently
14973 vectorize to vect_bb_slp_scalar_cost.
14974
6eddf228
RB
149752013-05-29 Richard Biener <rguenther@suse.de>
14976
14977 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
14978 computing scalar cost offsetted by stmts that are kept live
14979 by scalar uses.
14980 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
14981 for computation of scalar cost.
14982
7df36117
SE
149832013-05-28 Steve Ellcey <sellcey@mips.com>
14984
14985 * config/mips/mips-cpus.def (mips32r2): Change processor type.
14986
36536d79
BI
149872013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
14988
14989 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
14990 array notation built-in reduction functions.
14991 * doc/passes.texi (Passes): Added documentation about changes done
14992 for Cilk Plus.
14993 * doc/invoke.texi (C Dialect Options): Added documentation about
14994 the -fcilkplus flag.
14995 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
14996 (BUILTINS_DEF): Depend on cilkplus.def.
14997 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
14998 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
14999 * cilkplus.def: New file.
15000
12211b99 150012013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
15002
15003 PR rtl-optimization/57439
15004 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
15005
9daf6dbb
ER
150062013-05-28 Easwaran Raman <eraman@google.com>
15007
15008 PR tree-optimization/57337
15009 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
15010 (find_insert_point): Correctly identify the insertion point
15011 when two statements with the same UID is compared.
15012
fbd7e877
RB
150132013-05-28 Richard Biener <rguenther@suse.de>
15014
15015 PR tree-optimization/56787
15016 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
15017 from the list of data references.
15018 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
15019 clobbers.
15020 (vect_analyze_loop_operations): Likewise.
15021 (vect_transform_loop): Remove clobbers.
15022
bbba1117
MJ
150232013-05-28 Martin Jambor <mjambor@suse.cz>
15024
15025 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
15026 and REALPART_EXPRs have scalar type.
15027
bd388c2a
RB
150282013-05-28 Richard Biener <rguenther@suse.de>
15029
15030 PR tree-optimization/57411
15031 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
15032 virtual operands.
15033 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
15034 virtual operand propagation.
15035
2f56a311
EB
150362013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15037
15038 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
15039 destination register for bmasksi_vis.
15040 (vector_init_bshuffle): Likewise.
15041 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
15042
5c3eacbb
EB
150432013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15044
15045 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
15046 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
15047 mode if the instruction isn't available in the original mode.
15048 * config/sparc/sparc.opt (mfix-ut699): New option.
15049 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
15050 (divdf3): Turn into expander.
15051 (divdf3_nofix): New insn.
15052 (divdf3_fix): Likewise.
15053 (divsf3): Disable if -mfix-ut699.
15054 (sqrtdf2): Turn into expander.
15055 (sqrtdf2_nofix): New insn.
15056 (sqrtdf2_fix): Likewise.
15057 (sqrtsf2): Disable if -mfix-ut699.
15058
a1756c0a
RB
150592013-05-27 Richard Biener <rguenther@suse.de>
15060
15061 PR middle-end/57412
15062 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
15063 block for the new loop.
15064
5a892248
RB
150652013-05-27 Richard Biener <rguenther@suse.de>
15066
15067 PR tree-optimization/57343
15068 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
15069 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
15070 (number_of_iterations_cond): Do not build the folded tree.
15071
d1de852b
RB
150722013-05-27 Richard Biener <rguenther@suse.de>
15073
15074 Revert
15075 PR middle-end/57381
15076 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15077 OEP_CONSTANT_ADDRESS_OF retained.
15078
15079 PR tree-optimization/57417
15080 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
15081 for unchanged base.
15082 (set_ssa_val_to): Compare addresses using
15083 get_addr_base_and_unit_offset.
15084
12211b99 150852013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
15086
15087 PR rtl-optimization/56833
15088 * postreload.c (move2add_record_mode): New function.
15089 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
15090 (move2add_use_add2_insn): Use move2add_record_sym_value.
15091 (move2add_use_add3_insn): Likewise.
15092 (reload_cse_move2add): Use move2add_valid_value_p and
15093 move2add_record_mode. Invalidate call-clobbered and REG_INC
15094 affected regs by setting reg_mode to VOIDmode.
15095 (move2add_note_store): Don't pretend the inside of a SUBREG is
15096 the actual destination. Invalidate single/leading registers by
15097 setting reg_mode to VOIDmode.
15098 Use move2add_record_sym_value, move2add_valid_value_p and
15099 move2add_record_mode.
15100
b03be25f
RB
151012013-05-27 Richard Biener <rguenther@suse.de>
15102
15103 PR tree-optimization/57396
15104 * tree-affine.c (double_int_constant_multiple_p): Properly
15105 return false for val == 0 and div != 0.
15106
44e88db2
RS
151072013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15108
15109 * config/mips/mips.h: Use #elif in preprocessor conditions.
15110
3b859704
RS
151112013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15112
15113 PR target/53916
15114 * config/mips/constraints.md (kl): New constraint.
15115 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
15116 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
15117 constraint for operand 0. Split after CSE for MIPS16. Emit a move
15118 from LO for MIPS16.
15119 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
15120
c979d5f5
RS
151212013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15122
15123 PR target/55777
15124 * config/mips/mips.c (mips_can_inline_p): New function.
15125 (TARGET_CAN_INLINE_P): Define.
15126
8e90de43
SB
151272013-05-25 Steven Bosscher <steven@gcc.gnu.org>
15128
15129 * sched-int.h (ds_t, dw_t): Make unsigned int.
15130 Fix documentation that describes how all the ds_t bits are used.
15131 Reserve the last bit for delayed-branch scheduling.
15132 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
15133 (BITS_PER_DEP_WEAK): Fix definition and documentation.
15134 (gen_dep_weak_1): Remove prototype.
15135 * sched-deps.c (get_dep_weak_1): Make static.
15136 * target.def (speculate_insn, needs_block_p, gen_spec_check,
15137 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
15138 * doc/tm.texi: Regenerate.
15139 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
15140
cb5cb194
SB
151412013-05-24 Steven Bosscher <steven@gcc.gnu.org>
15142
15143 PR debug/56950
15144 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
15145
5bd93ff6
NS
151462013-05-24 Nathan Sidwell <nathan@codesourcery.com>
15147 Sandra Loosemore <sandra@codesourcery.com>
15148
15149 * config.gcc (powerpc-*): Allow native for with-cpu.
15150
2343af65
JL
151512013-05-24 Jeff Law <law@redhat.com>
15152
15153 PR tree-optimization/57124
15154 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
15155 conversion feeding a condition if the range has an overflow
15156 if -fstrict-overflow. Add warnings for when we do make the
15157 transformation.
15158
3ad695b9
DC
151592013-05-24 Dehao Chen <dehao@google.com>
15160
04960246 15161 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
15162 (locus_discrim_hasher): Likewise.
15163 (locus_discrim_hasher::hash): Likewise.
15164 (locus_discrim_hasher::equal): Likewise.
15165
82338059
MJ
151662013-05-24 Martin Jambor <mjambor@suse.cz>
15167
15168 PR tree-optimization/57294
15169 * cgraph.h (ipa_record_stmt_references): Declare.
15170 * cgraphbuild.c (ipa_record_stmt_references): New function.
15171 (build_cgraph_edges): Use ipa_record_stmt_references.
15172 (rebuild_cgraph_edges): Likewise.
15173 (cgraph_rebuild_references): Likewise.
15174 * ipa-prop.c (ipa_modify_call_arguments): Discard references
15175 associated with the old statement and build references from the
15176 newly built statements.
15177 * ipa-ref.c (ipa_remove_stmt_references): New function.
15178 * ipa-ref.h (ipa_remove_stmt_references): Declare.
15179
1ccd4874
VM
151802013-05-24 Vladimir Makarov <vmakarov@redhat.com>
15181
55805e54 15182 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 15183 mem-mem moves.
55805e54 15184 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 15185 too.
55805e54 15186 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
15187 secondary memory moves.
15188 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
15189 reg set up in the current insn.
15190
25e25c73
DC
151912013-05-24 Dehao Chen <dehao@google.com>
15192
04960246 15193 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
15194 hash function.
15195 (locus_descrim_hasher::equal): Likewise.
04960246 15196 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
15197 (make_edges): Likewise.
15198 (next_discriminator_for_locus): Likewise.
15199 (same_line_p): Likewise.
15200 (assign_discriminators): Likewise.
15201 (make_cond_expr_edges): Likewise.
15202 (make_gimple_switch_edges): Likewise.
15203 (make_goto_expr_edges): Likewise.
15204 (make_gimple_asm_edges): Likewise.
15205
50d38551
IB
152062013-05-24 Ian Bolton <ian.bolton@arm.com>
15207
15208 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
15209 X format specifier to only display bottom 16 bits.
15210 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
15211 immediate to match for operand 2, since it will be masked.
15212
aea0101d
RB
152132013-05-24 Richard Biener <rguenther@suse.de>
15214
15215 PR tree-optimization/57287
15216 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
15217 all SSA names that occur in abnormal PHIs.
15218
634e03d3
AI
152192013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
15220
15221 PR tree-ssa/57385
15222 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
15223 that index is not negative.
15224
b17c024f
EB
152252013-05-24 Eric Botcazou <ebotcazou@adacore.com>
15226
15227 PR rtl-optimization/55177
15228 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
15229 (simplify_byte_swapping_operation): New.
15230 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
15231 (simplify_relational_operation_1): Deal with BSWAP.
15232
46aeac1b
RH
152332013-05-23 Richard Henderson <rth@redhat.com>
15234
15235 PR target/56742
15236 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
15237 (ix86_reorg): Call it.
15238
70cc1536
UB
152392013-05-23 Uros Bizjak <ubizjak@gmail.com>
15240
15241 PR target/57379
15242 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
15243 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
15244 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
15245
b3851501
CB
152462013-05-23 Christian Bruel <christian.bruel@st.com>
15247
15248 PR debug/57351
15249 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
15250
12211b99 152512013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
15252 Marcus Shawcroft <marcus.shawcroft@arm.com>
15253
15254 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
15255 * config/aarch64/constraints.md (Usa): Remove.
15256 * doc/md.texi (AArch64 Usa): Remove.
15257
12211b99 152582013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
15259 Marcus Shawcroft <marcus.shawcroft@arm.com>
15260
15261 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
15262 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
15263 * config/aarch64/predicates.md (aarch64_const_address): Remove.
15264 (aarch64_mov_operand): Use aarch64_mov_operand_p.
15265
12211b99 152662013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
15267
15268 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
15269 instruction (AdvSIMD).
15270 * config/aarch64/aarch64-builtins.c
15271 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
15272 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
15273
76c36cb1 152742013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
15275
15276 PR middle-end/57347
15277 * tree.h (contains_bitfld_component_ref_p): Declare.
15278 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
15279 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
15280 caller.
7d2fb524
MJ
15281 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
15282 not access a bit-field. Assert all final offsets are byte-aligned.
15283
ce521ae6
RB
152842013-05-23 Richard Biener <rguenther@suse.de>
15285
15286 PR tree-optimization/57380
15287 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
15288 least one invariant or re-used load.
15289 * passes.c (init_optimization_passes): Move pass_phiprop before
15290 pass_forwprop.
15291
75c7257f
JG
152922013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
15293
15294 * config/aarch64/aarch64-simd.md
15295 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
15296
af6d44b5
RB
152972013-05-23 Richard Biener <rguenther@suse.de>
15298
15299 PR middle-end/57381
15300 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15301 OEP_CONSTANT_ADDRESS_OF retained.
15302
bd3647bf
JJ
153032013-05-23 Jakub Jelinek <jakub@redhat.com>
15304
15305 PR middle-end/57344
70cc1536
UB
15306 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
15307 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 15308
a55757ea
RB
153092013-05-23 Richard Biener <rguenther@suse.de>
15310
15311 PR rtl-optimization/57341
15312 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
15313 instead of true_dependence.
15314
cfb00b41
DM
153152013-05-22 David Malcolm <dmalcolm@redhat.com>
15316
dd1c676f
DM
15317 * bb-reorder.c (branch_threshold): Make const.
15318 (exec_threshold): Ditto.
cfb00b41 15319
f62511da 153202013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15321 Pat Haugen <pthaugen@us.ibm.com>
15322 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
15323
15324 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
15325 documentation for the power8 crypto builtins.
15326
15327 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
15328
15329 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
15330 macros for defining power8 builtin functions.
15331 (BU_P8V_AV_2): Likewise.
15332 (BU_P8V_AV_P): Likewise.
15333 (BU_P8V_VSX_1): Likewise.
15334 (BU_P8V_OVERLOAD_1): Likewise.
15335 (BU_P8V_OVERLOAD_2): Likewise.
15336 (BU_CRYPTO_1): Likewise.
15337 (BU_CRYPTO_2): Likewise.
15338 (BU_CRYPTO_3): Likewise.
15339 (BU_CRYPTO_OVERLOAD_1): Likewise.
15340 (BU_CRYPTO_OVERLOAD_2): Likewise.
15341 (XSCVSPDP): Fix typo, point to the correct instruction.
15342 (VCIPHER): Add power8 crypto builtins.
15343 (VCIPHERLAST): Likewise.
15344 (VNCIPHER): Likewise.
15345 (VNCIPHERLAST): Likewise.
15346 (VPMSUMB): Likewise.
15347 (VPMSUMH): Likewise.
15348 (VPMSUMW): Likewise.
15349 (VPERMXOR_V2DI): Likewise.
15350 (VPERMXOR_V4SI: Likewise.
15351 (VPERMXOR_V8HI: Likewise.
15352 (VPERMXOR_V16QI: Likewise.
15353 (VSHASIGMAW): Likewise.
15354 (VSHASIGMAD): Likewise.
15355 (VPMSUM): Likewise.
15356 (VPERMXOR): Likewise.
15357 (VSHASIGMA): Likewise.
15358
15359 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
15360 __CRYPTO__ if the crypto instructions are available.
15361 (altivec_overloaded_builtins): Add support for overloaded power8
15362 builtins.
15363
15364 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
15365 support for power8 crypto builtins.
15366 (builtin_function_type): Likewise.
15367 (altivec_init_builtins): Add support for builtins that take vector
15368 long long (V2DI) arguments.
15369
15370 * config/rs6000/crypto.md: New file, define power8 crypto
15371 instructions.
15372
153732013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15374 Pat Haugen <pthaugen@us.ibm.com>
15375 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
15376
15377 * doc/invoke.texi (Option Summary): Add power8 options.
15378 (RS/6000 and PowerPC Options): Likewise.
15379
15380 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
15381 constraints.md instead of rs6000.h. Reorder w* constraints. Add
15382 wm, wn, wr documentation.
15383
f43245d1 15384 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
15385 registers if direct move instructions are enabled.
15386 (wn): New constraint for no registers.
15387 (wq): New constraint for quad word even GPR registers.
15388 (wr): New constraint if 64-bit instructions are enabled.
15389 (wv): New constraint if power8 vector instructions are enabled.
15390 (wQ): New constraint for quad word memory locations.
15391
f43245d1 15392 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
15393 constraint for 0..15 for crypto instructions.
15394 (gpc_reg_operand): If VSX allow registers in VSX registers as well
15395 as GPR and floating point registers.
15396 (int_reg_operand): New predicate to match only GPR registers.
15397 (base_reg_operand): New predicate to match base registers.
15398 (quad_int_reg_operand): New predicate to match even GPR registers
15399 for quad memory operations.
15400 (vsx_reg_or_cint_operand): New predicate to allow vector logical
15401 operations in both GPR and VSX registers.
15402 (quad_memory_operand): New predicate for quad memory operations.
15403 (reg_or_indexed_operand): New predicate for direct move support.
15404
f43245d1 15405 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
15406 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
15407 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
15408 (POWERPC_MASKS): Add power8 options.
15409 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
15410 various options.
15411
f43245d1 15412 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
15413 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
15414
f43245d1 15415 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
15416 (-mpower8-fusion): New power8 options.
15417 (-mpower8-fusion-sign): Likewise.
15418 (-mpower8-vector): Likewise.
15419 (-mcrypto): Likewise.
15420 (-mdirect-move): Likewise.
15421 (-mquad-memory): Likewise.
15422
f43245d1 15423 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
15424 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
15425 registers.
70cc1536 15426 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
15427 (rs6000_debug_vector_unit): Add p8_vector.
15428 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
15429 definitions. Also print fusion state.
15430 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
15431 (rs6000_builtin_mask_calculate): Add power8 builtin support.
15432 (rs6000_option_override_internal): Add support for power8.
15433 (rs6000_common_init_builtins): Add debugging for skipped builtins
15434 if -mdebug=builtin.
15435 (rs6000_adjust_cost): Add power8 support.
15436 (rs6000_issue_rate): Likewise.
15437 (insn_must_be_first_in_group): Likewise.
15438 (insn_must_be_last_in_group): Likewise.
15439 (force_new_group): Likewise.
15440 (rs6000_register_move_cost): Likewise.
15441 (rs6000_opt_masks): Likewise.
15442
15443 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
15444 power8 capable assembler, default to power7 options.
15445 (TARGET_DIRECT_MOVE): Likewise.
15446 (TARGET_CRYPTO): Likewise.
15447 (TARGET_P8_VECTOR): Likewise.
15448 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
15449 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
15450 (VECTOR_MEM_P8_VECTOR_P): Likewise.
15451 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
15452 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
15453 (TARGET_XSCVDPSPN): Likewise.
15454 (TARGET_XSCVSPDPN): Likewsie.
15455 (TARGET_SYNC_HI_QI): Likewise.
15456 (TARGET_SYNC_TI): Likewise.
15457 (MASK_CRYPTO): Likewise.
15458 (MASK_DIRECT_MOVE): Likewise.
15459 (MASK_P8_FUSION): Likewise.
15460 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
15461 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
15462 temporary used by some of the direct move instructions to get two FP
15463 temporary registers does not force creation of a stack frame.
f62511da
MM
15464 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
15465 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
15466 that any VSX registers are tieable, even if they are also an
15467 Altivec vector mode.
15468 (r6000_reg_class_enum): Add wm, wr, wv constraints.
15469 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
15470 (RS6000_BTM_CRYPTO): Likewise.
15471 (RS6000_BTM_COMMON): Likewise.
15472
15473 * config/rs6000/rs6000.md (cpu attribute): Add power8.
15474 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
15475 (enum rs6000_vector): Add power8 vector support.
15476
73a1a707
RR
154772013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15478
15479 PR target/19599
15480 PR target/57340
15481 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
15482 (any_sibcall_could_use_r3): this and handle indirect calls.
15483 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
15484
d28073d4
BS
154852013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15486
15487 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
15488
bee0b10c
RB
154892013-05-22 Richard Biener <rguenther@suse.de>
15490
15491 PR middle-end/57349
15492 * profile.c (branch_prob): Do not split blocks that are
15493 abnormally receiving from ECF_RETURNS_TWICE functions.
15494
98409b51
RS
154952013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
15496
15497 * recog.c (offsettable_address_addr_space_p): Fix calculation of
15498 address mode. Move pointer mode initialization to the same place.
15499
c0602ab8
MZ
155002013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15501
15502 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
15503 while it has any effect.
15504
4f7a634e
ER
155052013-05-21 Easwaran Raman <eraman@google.com>
15506
15507 PR tree-optimization/57322
9daf6dbb
ER
15508 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
15509 UID of the statement added to the BB to be 1.
4f7a634e 15510
a4ce1258
JJ
155112013-05-21 Jakub Jelinek <jakub@redhat.com>
15512
15513 PR tree-optimization/57331
70cc1536
UB
15514 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
15515 of conversion from pointer type to integral type with integer.
a4ce1258 15516
1b14621a
MJ
155172013-05-21 Martin Jambor <mjambor@suse.cz>
15518
15519 PR lto/57289
15520 * ipa-prop.c (ipa_read_node_info): Process param_used and
15521 controlled_uses in the same order as when writing.
15522
e60661f0
MG
155232013-05-21 Magnus Granberg <baldrick@free.fr>
15524
15525 PR plugins/56754
ee49aa34 15526 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 15527
4a61be9a
RB
155282013-05-21 Richard Biener <rguenther@suse.de>
15529
15530 PR tree-optimization/57318
15531 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
15532 estimate stmts with side-effects as likely eliminated.
15533
c52da5f7
RB
155342013-05-21 Richard Biener <rguenther@suse.de>
15535
15536 PR tree-optimization/57330
15537 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
15538 preserve the call stmts fntype.
15539
7ec67e2a
RB
155402013-05-21 Richard Biener <rguenther@suse.de>
15541
15542 PR tree-optimization/57303
15543 * tree-ssa-sink.c (statement_sink_location): Improve killing
15544 stmt detection and properly handle self-assignments.
15545
b112d513
CB
155462013-05-21 Christian Bruel <christian.bruel@st.com>
15547
55805e54
YR
15548 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
15549 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
15550 registers. Set register size out of the PARALLEL loop.
15551
14c2ec26
OE
155522013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
15553
15554 PR target/56547
15555 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
15556 (*fmasf4, *fmasf4_media): New insns.
15557
da734fa1
RS
155582013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15559
15560 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
15561 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
15562 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
15563 (mips_idiv_insns): Update the comments to say that the returned
15564 instruction counts are in units of BASE_INSN_LENGTH.
15565 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
15566 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
15567 using 2 rather than 4 as the length of indirect MIPS16 and
15568 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
15569 length of a NOP. Don't divide MIPS16 lengths by 2.
15570 (mips16_split_long_branches): Assume a branch is long if the
15571 length is greater than 4 rather than 8.
15572 * config/mips/mips.md (length): Give MIPS16 lengths directly,
15573 rather than multiplying them by 2. Multiply instruction counts
15574 by BASE_INSN_LENGTH rather than 4.
15575 (*jump_mips16, tls_get_tp_mips16_<mode>)
15576 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
15577
13719e8b
RS
155782013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15579
15580 * config/mips/mips.md (extended_mips16): Remove branch case.
15581 (length): Remove duplicated extended_mips16 test.
15582
c3850d14
RS
155832013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15584
15585 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
15586
8da2e059
RS
155872013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
15588
15589 * recog.h (Recog_data): Rename to...
15590 (recog_data_d): ...this.
15591 (recog_data): Update accordingly.
15592 * recog.c (recog_data): Likewise.
15593 * reload.c (save_recog_data): Likewise.
15594 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
15595 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
15596
2df013f3
JB
155972013-05-17 Julian Brown <julian@codesourcery.com>
15598
15599 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
15600 found in a REG_EQUAL note, invalidate it.
15601
371e77e3 156022013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
15603
15604 * tree-ssa-reassoc.c (find_insert_point): New function.
15605 (insert_stmt_after): Likewise.
15606 (get_def_stmt): Likewise.
15607 (ensure_ops_are_available): Likewise.
15608 (not_dominated_by): Likewise.
15609 (rewrite_expr_tree): Do not move statements beyond what is
15610 necessary. Remove call to swap_ops_for_binary_stmt...
15611 (reassociate_bb): ... and move it here.
15612 (build_and_add_sum): Assign UIDs for new statements.
15613 (linearize_expr): Likewise.
15614 (do_reassoc): Renumber gimple statement UIDs.
15615
e01c7cca
JH
156162013-05-17 Jan Hubicka <jh@suse.cz>
15617
15618 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
15619 weakrefs.
15620 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
15621 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
15622 weakrefs.
e01c7cca
JH
15623 (output_weakrefs): Update.
15624
c3272a92
PCC
156252013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
15626 Martin Jambor <mjambor@suse.cz>
15627
15628 PR middle-end/57276
15629 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
15630 value that corresponds to the given aggval is found in values vector.
15631
11c2aa39
UB
156322013-05-17 Uros Bizjak <ubizjak@gmail.com>
15633
15634 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
15635 sse, sse2, sse3, ssse3 and sse4a flags to options.
15636
abecc8c6
DM
156372013-05-17 David Malcolm <dmalcolm@redhat.com>
15638
15639 * gengtype-state.c: (s_expr_writer): New class, to handle
15640 prettifying of output layout of s-expressions.
15641 (state_writer): New class, to write out gtype.state.
15642 (state_written_type_count): Move this variable into member data of
15643 state_writer.
15644 (s_expr_writer::s_expr_writer): New code: constructor for new class
15645 (state_writer::state_writer(): ditto
15646 (s_expr_writer::write_new_line): New function
15647 (s_expr_writer::write_any_indent): ditto
15648 (s_expr_writer::begin_s_expr): ditto
15649 (s_expr_writer::end_s_expr): ditto
15650 (write_state_fileloc): convert to method of state_writer...
15651 (state_writer:: write_state_fileloc): ...and use methods of
15652 s_expr_writer to write indentation into the gtype.state output file
15653 to visually represent the hierarchical structure of the list
15654 structures
15655 (write_state_fields): ditto, renaming to...
15656 (state_writer::write_state_fields)
15657 (write_state_a_string): ditto, renaming to...
15658 (state_writer::write_state_a_string)
15659 (write_state_string_option): ditto, renaming to...
15660 (state_writer::write_state_string_option)
15661 (write_state_type_option): ditto, renaming to...
15662 (state_writer::write_state_type_option)
15663 (write_state_nested_option): ditto, renaming to...
15664 (state_writer::write_state_nested_option)
15665 (write_state_option): ditto, renaming to...
15666 (state_writer::write_state_option)
15667 (write_state_options): ditto, renaming to...
15668 (state_writer::write_state_options)
15669 (write_state_lang_bitmap): ditto, renaming to...
15670 (state_writer::write_state_lang_bitmap)
15671 (write_state_version): ditto, renaming to...
15672 (state_writer::write_state_version)
15673 (write_state_scalar_type): ditto, renaming to...
15674 (state_writer::write_state_scalar_type)
15675 (write_state_string_type): ditto, renaming to...
15676 (state_writer::write_state_string_type)
15677 (write_state_undefined_type): ditto, renaming to...
15678 (state_writer::write_state_undefined_type)
15679 (write_state_struct_union_type): ditto, renaming to...
15680 (state_writer::write_state_struct_union_type)
15681 (write_state_struct_type): ditto, renaming to...
15682 (state_writer::write_state_struct_type)
15683 (write_state_user_struct_type): ditto, renaming to...
15684 (state_writer::write_state_user_struct_type)
15685 (write_state_lang_struct_type): ditto, renaming to...
15686 (state_writer::write_state_lang_struct_type)
15687 (write_state_param_struct_type): ditto, renaming to...
15688 (state_writer::write_state_param_struct_type)
15689 (write_state_pointer_type): ditto, renaming to...
15690 (state_writer::write_state_pointer_type)
15691 (write_state_array_type): ditto, renaming to...
15692 (state_writer::write_state_array_type)
15693 (write_state_gc_used): ditto, renaming to...
15694 (state_writer::write_state_gc_used)
15695 (write_state_common_type_content): ditto, renaming to...
15696 (state_writer::write_state_common_type_content)
15697 (write_state_type): ditto, renaming to...
15698 (state_writer::write_state_type)
15699 (write_state_pair_list): ditto, renaming to...
15700 (state_writer::write_state_pair_list)
15701 (write_state_pair): ditto, renaming to...
15702 (state_writer::write_state_pair)
15703 (write_state_typedefs): ditto, renaming to...
15704 (state_writer::write_state_typedefs)
15705 (write_state_structures): ditto, renaming to...
15706 (state_writer::write_state_structures)
15707 (write_state_param_structs): ditto, renaming to...
15708 (state_writer::write_state_param_structs)
15709 (write_state_variables): ditto, renaming to...
15710 (state_writer::write_state_variables)
15711 (write_state_srcdir): ditto, renaming to...
15712 (state_writer::write_state_srcdir)
15713 (write_state_files_list): ditto, renaming to...
15714 (state_writer::write_state_files_list)
15715 (write_state_languages): ditto, renaming to...
15716 (state_writer::write_state_languages)
15717 (write_state): create a state_writer instance and use it when
15718 writing out the state file
15719
d6545f29
MS
157202013-05-17 Mike Stump <mikestump@comcast.net>
15721
816a3f73 15722 PR rtl-optimization/57304
d6545f29
MS
15723 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
15724 accessing DF_REF_REAL_LOC.
15725
38c821cf
JJ
157262013-05-17 Jakub Jelinek <jakub@redhat.com>
15727
15728 PR rtl-optimization/57281
15729 PR rtl-optimization/57300
15730 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
15731 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
15732 what the other splitter did if the registers are dead.
15733
2a293391
RB
157342013-05-17 Richard Biener <rguenther@suse.de>
15735
15736 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
15737 MEM_REF offsets.
15738
17042d2b
JJ
157392013-05-17 Jakub Jelinek <jakub@redhat.com>
15740
15741 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
15742 linking.
15743
5b115c1f
MP
157442013-05-17 Marek Polacek <polacek@redhat.com>
15745
11c2aa39
UB
15746 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
15747 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 15748
52d84413
JJ
157492013-05-17 Jakub Jelinek <jakub@redhat.com>
15750
68119618
JJ
15751 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
15752 vect_external_def oprnd1 with loop_vinfo, try to emit
15753 optional cast, negation and and stmts on the loop preheader
15754 edge instead of into the pattern def seq.
15755
52d84413
JJ
15756 PR tree-optimization/57051
15757 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
15758 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
15759
17b962bd
NC
157602013-05-16 Nick Clifton <nickc@redhat.com>
15761
15762 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
15763 (rl78_is_naked_func): New function.
56aefbf7
UB
15764 (rl78_expand_prologue): Skip prologue generation for naked functions.
15765 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
15766 * doc/extend.texi (naked): Add RL78 to the list of processors
15767 that supports this attribute.
15768
b1a0f84e
JL
157692013-05-16 Jeff Law <law@redhat.com>
15770
15771 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
15772
af0e415b
UB
157732013-05-16 Uros Bizjak <ubizjak@gmail.com>
15774
15775 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
15776 cache parameters using detect_caches_amd also for CYRIX,
15777 NSC and TM2 signatures.
15778
19db293a
UB
157792013-05-16 Uros Bizjak <ubizjak@gmail.com>
15780 Dzianis Kahanovich <mahatma@eu.by>
15781
15782 PR target/45359
15783 PR target/46396
15784 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15785 VIA/Centaur processors and determine their cache parameters
15786 using detect_caches_amd.
15787
251a41b9
TJ
157882013-05-16 Teresa Johnson <tejohnson@google.com>
15789
15790 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
15791 (rtl_verify_edges): New function.
15792 (rtl_verify_bb_insns): Ditto.
15793 (rtl_verify_bb_pointers): Ditto.
15794 (rtl_verify_bb_insn_chain): Ditto.
15795 (rtl_verify_fallthru): Ditto.
15796 (rtl_verify_bb_layout): Ditto.
15797 (rtl_verify_flow_info_1): Outline checks into new functions.
15798 (rtl_verify_flow_info): Ditto.
15799
f14540b6
SE
158002013-05-16 Steve Ellcey <sellcey@imgtec.com>
15801
15802 * cfghooks.c (copy_bbs): Add update_dominance argument.
15803 * cfghooks.h (copy_bbs): Update prototype.
15804 * tree-cfg.c (gimple_duplicate_sese_region):
15805 Add update_dominance argument.
15806 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
15807 * tree-ssa-loop-ch.c (copy_loop_headers): Update
15808 gimple_duplicate_sese_region call.
15809 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
15810 Update copy_bbs call.
15811 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
15812 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
15813
7e9a3abb
JJ
158142013-05-16 Jakub Jelinek <jakub@redhat.com>
15815
15816 * tree-vectorizer.h (NUM_PATTERNS): Increment.
15817 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
15818 vect_recog_rotate_pattern.
15819 (vect_recog_rotate_pattern): New function.
15820
427b248d
JM
158212013-05-16 Jason Merrill <jason@redhat.com>
15822
15823 * Makefile.in (LLINKER): New variable.
15824 (mostlyclean): Remove link mutex.
15825 * configure.ac: Handle --enable-link-mutex.
15826 * lock-and-run.sh: New script.
15827
b871e3d2
RR
158282013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15829
15830 PR target/19599
15831 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
15832 for NULL decl.
15833
ce858126
RO
158342013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15835
15836 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
15837
798d3d04
GY
158382013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
15839
15840 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
15841 * config/arm/arm.c (next_consecutive_mem): New function.
15842 (gen_movmem_ldrd_strd): Likewise.
15843 * config/arm/arm.md (movmemqi): Update condition and code.
15844 (unaligned_loaddi, unaligned_storedi): New patterns.
15845
0baddc45
RO
158462013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15847
15848 * config.gcc: Obsolete *-*-solaris2.9*.
15849 * doc/install.texi (Specific, *-*-solaris2*): Document it.
15850
aa9d5bcf
RB
158512013-05-16 Richard Biener <rguenther@suse.de>
15852
15853 * passes.c (init_optimization_passes): Move pass_parallelize_loops
15854 earlier, after GRAPHITE transforms and IV canonicalization.
15855
5a0f4dd3
JJ
158562013-05-16 Jakub Jelinek <jakub@redhat.com>
15857
15858 * omp-low.c (extract_omp_for_data): For collapsed loops,
15859 if at least one of the loops is known at compile time to
15860 iterate zero times, set count to 0.
15861 (expand_omp_regimplify_p): New function.
15862 (expand_omp_for_generic): For collapsed loops, if at least
15863 one of the loops isn't known to iterate at least once,
15864 add runtime check with setting count to 0.
15865 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
15866 For unsigned types if it isn't known at compile time that
15867 the loop will iterate at least once, add runtime check to bypass
15868 the whole loop if initial condition isn't true.
15869
e3753785
NS
158702013-05-16 Nathan Sidwell <nathan@codesourcery.com>
15871
15872 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
15873
43bb4dd1
MG
158742013-05-16 Marc Glisse <marc.glisse@inria.fr>
15875
15876 PR middle-end/57286
15877 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
15878 transformations to avoid an infinite loop.
15879
3571dde6
MP
158802013-05-16 Marek Polacek <polacek@redhat.com>
15881
15882 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
15883
b8b3f0ca
LE
158842013-05-15 Leif Ekblad <leif@rdos.net>
15885
15886 * config/i386/i386.c (ix86_decompose_address): Use
15887 DEFAULT_TLS_SEG_REG to access TLS segment register.
15888 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
15889 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
15890 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
15891
e299a383
RS
158922013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
15893
15894 PR target/57260
15895 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
15896 sibling calls to functions that would normally be lazily bound,
15897 unless $gp is call-clobbered.
15898
e7208ea3
UB
158992013-05-15 Uros Bizjak <ubizjak@gmail.com>
15900
19db293a 15901 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 15902 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
15903 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
15904 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
15905 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
15906 of TARGET_3DNOW.
15907 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
15908
e7413f3d
AS
159092013-05-15 Andreas Schwab <schwab@suse.de>
15910
15911 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
15912 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
15913 third operand.
15914
ad4db775
TJ
159152013-05-15 Teresa Johnson <tejohnson@google.com>
15916
15917 * loop-unroll.c (report_unroll_peel): Check decision before
15918 emitting unroll/peel message.
15919
af205f67
TJ
159202013-05-15 Teresa Johnson <tejohnson@google.com>
15921
15922 * function.h (has_bb_partition): New rtl_data flag.
15923 (bb_reorder_complete): Ditto.
15924 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
15925 instead of flag_reorder_blocks_and_partition.
15926 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
15927 with some enhancements.
15928 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
15929 * bb-reorder.c (connect_traces): Check for has_bb_partition
15930 instead of flag_reorder_blocks_and_partition.
15931 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
15932 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
15933 verify_hot_cold_block_grouping.
15934 (partition_hot_cold_basic_blocks): Set has_bb_partition.
15935
9adcfa3c
RR
159362013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15937
15938 PR target/19599
15939 * config/arm/predicates.md (call_insn_operand): New predicate.
15940 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
15941 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
15942 if insn is not a tail call.
15943 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
15944 registers.
15945 * config/arm/arm.h (enum reg_class): New caller save register class.
15946 (REG_CLASS_NAMES): Likewise.
15947 (REG_CLASS_CONTENTS): Likewise.
15948 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
15949 without decls.
15950
ccb3ad87
RB
159512013-05-15 Richard Biener <rguenther@suse.de>
15952
15953 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
15954 of MSG_OPTIMIZED_LOCATIONS.
15955 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
15956 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
15957 message.
15958 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
15959 of MSG_OPTIMIZED_LOCATIONS.
15960 (execute_vect_slp): Likewise.
15961 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
15962 (vect_create_cond_for_alias_checks): Likewise.
15963 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
15964 (vect_recog_widen_mult_pattern): Likewise.
15965 (vect_recog_widen_sum_pattern): Likewise.
15966 (vect_recog_over_widening_pattern): Likewise.
15967 (vect_recog_widen_shift_pattern): Likewise.
15968 (vect_recog_vector_vector_shift_pattern): Likewise.
15969 (vect_recog_divmod_pattern): Likewise.
15970 (vect_recog_mixed_size_cond_pattern): Likewise.
15971 (vect_recog_bool_pattern): Likewise.
15972 (vect_pattern_recog_1): Likewise.
15973
48b1474e
MJ
159742013-05-15 Martin Jambor <mjambor@suse.cz>
15975
15976 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
15977 non-functions to builtin_unreachable.
15978 * ipa-inline-transform.c (inline_call): Do not assert estimates were
15979 correct when new direct edges were discovered.
15980
9de04252
MJ
159812013-05-15 Martin Jambor <mjambor@suse.cz>
15982
15983 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
15984 header, print symbol order instead of node uid, print more information
15985 about indirect edge targets.
15986 (ipa_make_edge_direct_to_target): Print symbol order instead of node
15987 uids.
15988 (ipa_make_edge_direct_to_target): Likewise.
15989 (remove_described_reference): Likewise.
15990 (propagate_controlled_uses): Likewise.
15991 (ipa_print_node_params): Also print symbol order.
15992 (ipcp_transform_function): Print symbol order instead of node uids.
15993 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
15994 (cgraph_get_create_real_symbol_node): Likewise.
15995 * ipa-cp.c (print_lattice): Likewise.
15996 (print_all_lattices): Likewise.
15997 (determine_versionability): Likewise.
15998 (initialize_node_lattices): Likewise.
15999 (estimate_local_effects): Likewise.
16000 (update_profiling_info): Likewise.
16001 (create_specialized_node): Likewise.
16002 (perhaps_add_new_callers): Likewise.
16003 (decide_about_value): Likewise.
16004 (decide_whether_version_node): Likewise.
16005 (identify_dead_nodes): Likewise.
16006 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
16007 (dump_inline_summary): Likewise.
16008 (estimate_node_size_and_time): Likewise.
16009 (inline_analyze_function): Likewise.
16010 * ipa-inline.c (report_inline_failed_reason): Likewise.
16011 (want_early_inline_function_p): Likewise.
16012 (edge_badness): Likewise.
16013 (update_edge_key): Likewise.
16014 (inline_small_functions): Likewise. Add dumping of order to two other
16015 dumps.
16016 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
16017 instead of node uids.
16018 (propagate_pure_const): Likewise.
16019 (propagate_pure_const): Likewise.
16020 * ipa-utils.c (dump_cgraph_node_set): Likewise.
16021 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
16022 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
16023 of node uids.
16024 * tree-pretty-print.c (dump_function_header): Likewise.
16025 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
16026 Print symbol order instead of node uids.
16027
1dd03b91
AK
160282013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16029
16030 * config/s390/s390.c (s390_register_move_cost): Don't impose the
16031 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
16032
fdf6a7b9
RB
160332013-05-15 Richard Biener <rguenther@suse.de>
16034
16035 PR tree-optimization/57275
16036 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
16037 return value for fail to do runtime alias checks for gather loads.
16038
2d6e4603
JH
160392013-05-15 Jan Hubicka <jh@suse.cz>
16040
16041 PR lto/57038
16042 PR lto/47375
e7208ea3
UB
16043 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
16044 weakrefs are not external.
16045 (lto_symtab_merge_decls): Fix thinko when dealing with
16046 non-lto_symtab decls.
2d6e4603
JH
16047 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
16048 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
16049 * varpool.c (dump_varpool_node): Dump more flags.
16050
83f44b39
GG
160512013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16052
16053 * config/i386/i386.c (processor_alias_table): Add instruction
16054 FSGSBASE for AMD bdver3 architecture.
16055
2e55d062
JJ
160562013-05-14 Jakub Jelinek <jakub@redhat.com>
16057
16058 * tree.c (warn_deprecated_use): Print file:line using locus color.
16059 * diagnostic.c (diagnostic_report_current_module): Print file:line
16060 and file:line:column using locus color.
16061
0bfdb81e
MS
160622013-05-14 Mike Stump <mikestump@comcast.net>
16063
16064 * gdbinit.in: Add __null.
16065
a508ef22
MS
160662013-05-14 Mike Stump <mikestump@comcast.net>
16067
16068 * recog.h: Rename struct recog_data to Recog_data.
16069 * recog.c: Likewise.
16070 * reload.c (can_reload_into): Likewise.
16071 * config/picochip/picochip.c: Likewise.
16072
e7180acb
MS
160732013-05-14 Mike Stump <mikestump@comcast.net>
16074
16075 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
16076
61216c26
SB
160772013-05-14 Steven Bosscher <steven@gcc.gnu.org>
16078
fd6beed4
SB
16079 * resource.h (struct resources): Remove unch_memory member.
16080 (CLEAR_RESOURCE): Don't clear unch_memory.
16081 * resource.c (mark_referenced_resources): Don't set it.
16082 (mark_set_resources): Likewise.
16083 (mark_target_live_regs): Don't clear it.
16084 (init_resource_info): Likewise.
16085 * reorg.c (resource_conflicts_p): Don't compare it.
16086 (redundant_insn): Don't set it.
16087
61216c26
SB
16088 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
16089 Remove prototypes.
16090 * emit-rtl.c (next_label): Remove unused function.
16091 (skip_consecutive_labels, link_cc0_insns): Move to ...
16092 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
16093 only place where these functions are used, and make them static.
16094
418d1b87
MG
160952013-05-14 Marc Glisse <marc.glisse@inria.fr>
16096
16097 * fold-const.c (fold_negate_expr): Handle vectors.
16098 (fold_truth_not_expr): Make it static.
16099 (fold_invert_truthvalue): New static function.
16100 (invert_truthvalue_loc): Handle vectors. Do not call
16101 fold_truth_not_expr directly.
16102 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
16103 <TRUTH_NOT_EXPR>: Do not cast to boolean.
16104 (fold_comparison): Handle vector constants.
16105 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
16106 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
16107 * tree.h (fold_truth_not_expr): Remove declaration.
16108
fc21784d
JG
161092013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
16110
16111 * config/aarch64/aarch64-simd.md
16112 (aarch64_vcond_internal<mode>): Rename to...
16113 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
16114 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
16115 float modes. Clarify all iterator modes.
16116 (vcond<mode><mode>): Use new name for vcond expanders.
16117 (vcond<v_cmp_result><mode>): Likewise.
16118 (vcondu<mode><mode>: Likewise.
16119 * config/aarch64/iterators.md (VDQF_COND): New.
16120
d4c52634
MG
161212013-05-14 Marc Glisse <marc.glisse@inria.fr>
16122
16123 PR bootstrap/57266
16124 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
16125 variable for the shift amount. Check that we shift by non-negative
16126 amounts.
16127
2b261262
CLT
161282013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
16129
16130 PR target/42017
16131 * config/arm/arm.h (EPILOGUE_USES): Only return true
16132 for LR_REGNUM after epilogue_completed.
16133
12211b99 161342013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
16135
16136 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 16137 is error_mark_node.
6e022d7b 16138
56cf7859
RO
161392013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16140
16141 PR target/57261
16142 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
16143 and Solaris 11+/x86 with gld.
16144 * configure: Regenerate.
16145
75776c6d
JJ
161462013-05-14 Jakub Jelinek <jakub@redhat.com>
16147
16148 * expmed.c (expand_shift_1): Canonicalize rotates by
16149 constant bitsize / 2 to bitsize - 1.
7f998021 16150 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
16151 case ROTATERT>: Likewise.
16152
16153 Revert:
16154 2013-05-10 Jakub Jelinek <jakub@redhat.com>
16155
16156 * config/i386/i386.md (rotateinv): New code attr.
16157 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16158 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16159 roll $31, %eax, etc.
16160
df35498a
RB
161612013-05-14 Richard Biener <rguenther@suse.de>
16162
16163 PR middle-end/57235
16164 * tree-eh.c (sink_clobbers): Give up for successors with
16165 multiple predecessors and no virtual uses.
16166
cc6e7ece
EB
161672013-05-14 Eric Botcazou <ebotcazou@adacore.com>
16168
16169 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
16170 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
16171
f778dd4d
JJ
161722013-05-14 Jakub Jelinek <jakub@redhat.com>
16173
16174 PR middle-end/57251
16175 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
16176 the case when both op0 and op1 have VOIDmode.
16177
bad4df9b
KP
161782013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
16179
16180 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
16181 in multiply-accumulate mode.
16182
56f3e9ac
GW
161832013-05-13 Guozhi Wei <carrot@google.com>
16184
16185 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
16186
a3d7ab92
KT
161872013-05-13 Kai Tietz <ktietz@redhat.com>
16188
16189 PR target/56975
16190 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 16191 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 16192 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 16193 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
16194 (ix86_expand_prologue): Likewise.
16195 (ix86_expand_split_stack_prologue): Likewise.
16196 (legitimate_pic_address_disp_p): Likewise.
16197 (legitimize_pic_address): Likewise.
16198 (legitimize_tls_address): Likewise.
16199 (legitimize_pe_coff_symbol): Likewise.
16200 (output_pic_addr_const): Likewise.
16201 (construct_plt_address): Likewise.
16202 (ix86_expand_call): Likewise.
16203 (x86_output_mi_thunk): Likewise.
16204 (x86_function_profiler): Likewise.
16205
c59b7e28
SN
162062013-05-13 Sofiane Naci <sofiane.naci@arm.com>
16207
16208 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
16209 similar switch cases.
16210 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
16211 (aarch64_simd_mov_to_<mode>low): Delete.
16212 (aarch64_simd_mov_to_<mode>high): Delete.
16213 (move_lo_quad_<mode>): Add w<-r alternative.
16214 (aarch64_simd_move_hi_quad_<mode>): Likewise.
16215 (aarch64_simd_mov_from_*): Update type attribute.
16216 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
16217 statement.
16218
5f28524a
JH
162192013-05-13 Jan Hubicka <jh@suse.cz>
16220
16221 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
16222 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
16223 ix86_expand_epilogue, emit_i387_cw_initialization,
16224 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
16225 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 16226
ae6fa899
JJ
162272013-05-13 Jakub Jelinek <jakub@redhat.com>
16228
16229 PR tree-optimization/45216
16230 PR tree-optimization/57157
16231 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
16232 the (-Y) & (B - 1) variant if OP is |.
16233 * expmed.c (expand_shift_1): For rotations by const0_rtx just
16234 return shifted. Use (-op1) & (prec - 1) as other_amount
16235 instead of prec - op1.
16236
4502fe8d
MJ
162372013-05-13 Martin Jambor <mjambor@suse.cz>
16238
16239 PR middle-end/42371
16240 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
16241 (ipa_constant_data): New type.
16242 (ipa_jump_func): Use ipa_constant_data to hold information about
16243 constant jump functions.
16244 (ipa_get_jf_constant): Adjust to jump function type changes.
16245 (ipa_get_jf_constant_rdesc): New function.
16246 (ipa_param_descriptor): New field controlled_uses.
16247 (ipa_get_controlled_uses): New function.
16248 (ipa_set_controlled_uses): Likewise.
16249 * ipa-ref.h (ipa_find_reference): Declare.
16250 * ipa-prop.c (ipa_cst_ref_desc): New type.
16251 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
16252 changes.
16253 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
16254 New parameter cs. Adjust all callers.
16255 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
16256 (remove_described_reference): New function.
16257 (jfunc_rdesc_usable): Likewise.
16258 (try_make_edge_direct_simple_call): Decrement controlled use count,
16259 attempt to remove reference if it hits zero.
16260 (combine_controlled_uses_counters): New function.
16261 (propagate_controlled_uses): Likewise.
16262 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
16263 (ipa_edge_duplication_hook): Duplicate reference descriptions.
16264 (ipa_print_node_params): Print described use counter.
16265 (ipa_write_jump_function): Adjust to jump function type changes.
16266 (ipa_read_jump_function): New parameter CS, pass it to
16267 ipa_set_jf_constant. Adjust caller.
16268 (ipa_write_node_info): Stream controlled use count
16269 (ipa_read_node_info): Likewise.
16270 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
16271 asserting.
16272 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
16273 count. Remove cloning-added reference if it reaches zero.
16274 * ipa-ref.c (ipa_find_reference): New function.
16275
0864bfc2
GG
162762013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16277
e7208ea3 16278 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
16279 alignment values for AMD BD and BT architectures.
16280
640bfeb2
MG
162812013-05-13 Marc Glisse <marc.glisse@inria.fr>
16282
16283 * tree-vect-generic.c (uniform_vector_p): Move ...
16284 * tree.c (uniform_vector_p): ... here.
16285 * tree.h (uniform_vector_p): Declare it.
16286 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
16287 into a scalar.
16288
3a60f32b
JJ
162892013-05-13 Jakub Jelinek <jakub@redhat.com>
16290
198fe1bf
JJ
16291 PR tree-optimization/57230
16292 * tree-ssa-strlen.c (handle_char_store): Record length for
16293 array store from STRING_CST.
16294
3a60f32b
JJ
16295 PR tree-optimization/57230
16296 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
16297 check.
16298
566be57c
JR
162992013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
16300
16301 * config/epiphany/epiphany.c (epiphany_init): Check size of
16302 NUM_MODES_FOR_MODE_SWITCHING.
16303 (epiphany_expand_prologue):
16304 Remove CONFIG_REGNUM initial value handling code.
16305 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
16306 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 16307 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
16308 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
16309 Don't return 1 for FP_MODE_NONE.
16310 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
16311 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
16312 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
16313 * config/epiphany/epiphany.md (save_config): New pattern.
16314
0f2c2331
UB
163152013-05-12 Uros Bizjak <ubizjak@gmail.com>
16316
16317 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
16318
5b3f93c7
UB
163192013-05-10 Uros Bizjak <ubizjak@gmail.com>
16320
16321 * config/i386/i386.md (memory): Handle sseishft1.
16322 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
16323 (*vec_extractv2di_1): Ditto.
16324
1f873f0e
VM
163252013-05-10 Vladimir Makarov <vmakarov@redhat.com>
16326
16327 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
16328 saved registers.
16329
341427fa 163302013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
16331
16332 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
16333 Add mthumb/march=armv7-a multilib.
16334 Add mthumb/march=armv7-r multilib.
16335 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
16336
9e69bdde
RC
163372013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
16338
16339 * config/v850/t-rtems: Add more multilibs.
16340
9ff09a22
RB
163412013-05-10 Richard Biener <rguenther@suse.de>
16342
16343 PR tree-optimization/57214
16344 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
16345 not propagate from SSA names that occur in abnormal PHI nodes.
16346
a5e0cd1d
MG
163472013-05-10 Marc Glisse <marc.glisse@inria.fr>
16348
16349 * stor-layout.c (element_precision): New function.
16350 * machmode.h (element_precision): Declare it.
16351 * tree.c (build_minus_one_cst): New function.
16352 (element_precision): Likewise.
16353 * tree.h (build_minus_one_cst): Declare new function.
16354 (element_precision): Likewise.
16355 * fold-const.c (operand_equal_p): Use element_precision.
16356 (fold_binary_loc): Handle vector types.
16357 * convert.c (convert_to_integer): Use element_precision.
16358 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
16359 separately.
16360
cb2558bc
RS
163612013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
16362
16363 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
16364 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
16365 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
16366 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
16367 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
16368 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
16369 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
16370 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
16371 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
16372 (Uuw8): New constraints.
16373 (Usb4): Move into alphabetical order.
16374 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
16375 (sd8_operand, ub8_operand, uw8_operand): New predicates.
16376 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
16377 previously unnamed patterns.
16378 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
16379 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
16380 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
16381 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
16382 of set_attr_alternative/if_then_else. Use extended_mips16 instead
16383 of specific lengths.
16384
cb3b8d33
JJ
163852013-05-10 Jakub Jelinek <jakub@redhat.com>
16386
6f93c008
JJ
16387 * config/i386/i386.md (rotateinv): New code attr.
16388 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16389 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16390 roll $31, %eax, etc.
16391
cb3b8d33
JJ
16392 PR tree-optimization/45216
16393 PR tree-optimization/57157
16394 * tree-ssa-forwprop.c (simplify_rotate): New function.
16395 (ssa_forward_propagate_and_combine): Call it.
16396
afb119be
RB
163972013-05-10 Richard Biener <rguenther@suse.de>
16398
16399 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
16400 disable peeling when we version for aliasing.
16401 (vector_alignment_reachable_p): Honor explicit user alignment.
16402 (vect_supportable_dr_alignment): Likewise.
16403 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
16404 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
16405 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
16406 then peeling to arrange for the cost-model check to come first.
16407
01ae4861
AM
164082013-05-10 Alan Modra <amodra@gmail.com>
16409
16410 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
16411 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
16412 * configure: Regenerate.
16413
ebc9a431
AM
164142013-05-10 Alan Modra <amodra@gmail.com>
16415
16416 PR target/55033
16417 * varasm.c (default_elf_select_section): Move !DECL_P check..
16418 (get_named_section): ..to here before calling get_section_name.
16419 Adjust assertion.
16420 (default_section_type_flags): Add DECL_P check.
16421 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
16422 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
16423
d4bca93c
JR
164242013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
16425
16426 * config/epiphany/epiphany.c (epiphany_expand_prologue):
16427 When using gen_stack_adjust_str with a register offset, add a
16428 REG_FRAME_RELATED_EXPR note.
16429
60ca9a65
UB
164302013-05-09 Uros Bizjak <ubizjak@gmail.com>
16431
16432 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
16433 (*vec_extractv4si_zext_mem): Ditto.
16434 (*vec_extractv2di): Add 0->x and x->x alternatives.
16435 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
16436 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
16437
a3409c02
JM
164382013-05-09 Jason Merrill <jason@redhat.com>
16439
0138d6b2
JM
16440 N3639 C++1y VLA support
16441 * gimplify.c (gimplify_vla_decl): Don't touch an existing
16442 DECL_VALUE_EXPR.
16443
a3409c02
JM
16444 * tree.c (build_constructor_va): New.
16445 * tree.h: Declare it.
16446
66e6b990
MJ
164472013-05-09 Martin Jambor <mjambor@suse.cz>
16448
16449 PR lto/57084
16450 * gimple-fold.c (canonicalize_constructor_val): Call
16451 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
16452
64cfa6c0
JH
164532013-05-09 Jan Hubicka <jh@suse.cz>
16454 Richard Biener <rguenther@suse.de>
16455
16456 PR lto/54095
16457 * symtab.c (symtab_make_decl_local): Do not add private names.
16458
c3167b00
JH
164592013-05-09 Jan Hubicka <jh@suse.cz>
16460
16461 PR lto/54095
16462 * symtab.c (insert_to_assembler_name_hash): Handle clones.
16463 (unlink_from_assembler_name_hash): Likewise.
16464 (symtab_prevail_in_asm_name_hash, symtab_register_node,
16465 symtab_unregister_node, symtab_initialize_asm_name_hash,
16466 change_decl_assembler_name): Update.
16467
12dc6974
SN
164682013-05-09 Sofiane Naci <sofiane.naci@arm.com>
16469
16470 * config/aarch64/aarch64.md: New movtf split.
16471 (*movtf_aarch64): Update.
16472 (aarch64_movdi_tilow): Handle TF modes and rename to
16473 aarch64_movdi_<mode>low.
16474 (aarch64_movdi_tihigh): Handle TF modes and rename to
16475 aarch64_movdi_<mode>high
16476 (aarch64_movtihigh_di): Handle TF modes and rename to
16477 aarch64_mov<mode>high_di
16478 (aarch64_movtilow_di): Handle TF modes and rename to
16479 aarch64_mov<mode>low_di
16480 (aarch64_movtilow_tilow): Remove spurious whitespace.
16481 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
16482 splits.
16483 (aarch64_print_operand): Update.
16484
227eb343
AM
164852013-05-09 Alan Modra <amodra@gmail.com>
16486
16487 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
16488 powerpc64le.
16489 * configure: Regenerate.
16490
0b013847
UB
164912013-05-08 Uros Bizjak <ubizjak@gmail.com>
16492
16493 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
16494 splitter preparation statements.
16495 * config/i386/sse.md (*vec_extract* splitters): Ditto.
16496 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
16497 adjust_address_nv.
16498
1dc3d6e9
BS
164992013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16500
16501 * gimple-ssa-strength-reduction.c (count_candidates): Change
16502 return value to int.
16503 (analyze_candidates_and_replace): Change type of length to int.
16504
e61e7d28
UB
165052013-05-08 Uros Bizjak <ubizjak@gmail.com>
16506
16507 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
16508 (*vec_extract<mode>): Use VI12_128 mode iterator.
16509 (*vec_extract<mode>_mem): Ditto.
16510 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
16511 attribute.
16512
4fbfcf44
DN
165132013-05-08 Diego Novillo <dnovillo@google.com>
16514
16515 PR bootstrap/54659
16516
16517 Revert:
4fbfcf44
DN
16518 2012-08-17 Diego Novillo <dnovillo@google.com>
16519
e61e7d28
UB
16520 PR bootstrap/54281
16521 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
16522 * config.in: Regenerate.
16523 * configure: Regenerate.
16524 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 16525
702d8703
JH
165262013-05-08 Jan Hubicka <jh@suse.cz>
16527
16528 PR lto/54095
16529 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
16530 * cgraph.h (symtab_node_base): Add unique_name.
16531 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
16532 input_overwrite_node, input_varpool_node): Stream unique_name.
16533 * cgraphclones.c (cgraph_create_virtual_clone,
16534 cgraph_function_versioning): Set unique_name.
16535 * ipa.c (function_and_variable_visibility): Set unique_name.
16536
8b28cf47
BS
165372013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16538
16539 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
16540 (alloc_cand_and_find_basis): Restrict conditional candidate
16541 processing to CAND_MULTs.
16542
e86074fd
JH
165432013-05-08 Jan Hubicka <jh@suse.cz>
16544
16545 PR lto/54095
16546 lto-symtab.c (lto_symtab_symbol_p): New function.
16547 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
16548 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
16549 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
16550 Skip static symbols.
16551
44398cbe
PC
165522013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
16553
16554 PR tree-optimization/57200
16555 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
16556 Only call inform if the preceding warning_at returns true.
16557
f6bc1c4a
HS
165582013-05-07 Han Shen <shenhan@google.com>
16559
16560 * cfgexpand.c (record_or_union_type_has_array_p): New function.
16561 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
16562 * common.opt (fstack-protector-strong): New option.
16563 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
16564 * doc/invoke.texi (Optimization Options): Document
16565 "-fstack-protector-strong".
16566 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
16567
4ffecb1f
SB
165682013-05-06 Steven Bosscher <steven@gcc.gnu.org>
16569
16570 * config/mips/mips.c (mips_machine_reorg2): Return 0.
16571
5a107a0f
VM
165722013-05-07 Vladimir Makarov <vmakarov@redhat.com>
16573
16574 * ira.c (update_equiv_regs): Add insn having equiv memory even if
16575 it is not lhs of the insn.
16576 (setup_reg_equiv): Remove insn having equiv memory which it is not
16577 lhs of the insn.
16578 * lra-constraints.c (process_address): Try to improve generation
16579 code for address base + disp.
16580 (lra_constraints): Make correct the code for checking insn setting
16581 up backward equivalence. Remove insn only if it is in the init
16582 insn list.
16583 * lra-eliminations.c (update_reg_eliminate): Change return value.
16584 (lra_eliminate): Use the result.
16585
3f5783ea
UB
165862013-05-07 Uros Bizjak <ubizjak@gmail.com>
16587
16588 * config/i386/sse.md (ssescalarnummask): New mode attribute.
16589 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
16590 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
16591 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
16592 register target operands.
16593 (*vec_extractv8hi_sse2): New pattern.
16594 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
16595 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
16596 (*vec_extract<mode>_mem): New insn and split pattern.
16597
8a5800b8
CL
165982013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
16599
16600 * config/arm/arm.c (arm_asan_shadow_offset): New function.
16601 (TARGET_ASAN_SHADOW_OFFSET): Define.
16602 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
16603 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
16604
7bf55a70
BS
166052013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16606
16607 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
16608 (incr_vec_index): Return -1 if increment not found.
16609 (create_add_on_incoming_edge): Assert if increment not found.
16610 (record_increment): Limit number of increments recorded.
16611 (all_phi_incrs_profitable): Return false if an increment not found.
16612 (replace_profitable_candidates): Don't process increments that were
16613 not recorded.
16614 (analyze_candidates_and_replace): Limit size of incr_vec.
16615
3f8825c0
RB
166162013-05-07 Richard Biener <rguenther@suse.de>
16617
16618 * calls.c (special_function_p): setjmp-like functions are leaf.
16619 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
16620 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
16621
fd4842cd
SN
166222013-05-07 Sofiane Naci <sofiane.naci@arm.com>
16623
16624 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
16625 (aarch64_simd_mov<mode>): New expander.
16626 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
16627 (aarch64_simd_mov_to_<mode>high): Likewise.
16628 (aarch64_simd_mov_from_<mode>low): Likewise.
16629 (aarch64_simd_mov_from_<mode>high): Likewise.
16630 (aarch64_dup_lane<mode>): Update.
16631 (aarch64_dup_lanedi): New instruction pattern.
16632 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
16633 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
16634
a7a7d10e
BS
166352013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16636
16637 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
16638 (replace_mult_candidate): Remove unnecessary argument; remove
16639 unnecessary parameter from call to introduce_cast_before_cand.
16640 (replace_unconditional_candidate): Remove unnecessary parameter
16641 from call to replace_mult_candidate.
16642 (replace_conditional_candidate): Likewise.
16643 (insert_initializers): Use make_temp_ssa_name.
16644 (introduce_cast_before_cand): Remove unnecessary argument; use
16645 make_temp_ssa_name.
16646 (replace_one_candidate): Remove unnecessary argument; remove
16647 unnecessary parameter from calls to introduce_cast_before_cand.
16648 (replace_profitable_candidates): Remove unnecessary parameters
16649 from calls to replace_one_candidate.
16650
29105868
BS
166512013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16652
16653 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
16654 phi def as possibly hiding a basis for a CAND_ADD whose operands
16655 have been commuted in the analysis.
16656 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
16657
4095f9fa
N
166582013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
16659
16660 * config/aarch64/aarch64.md
16661 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
16662 shift value between 0-4.
16663
39e843e8
RB
166642013-05-07 Richard Biener <rguenther@suse.de>
16665
16666 * double-int.h (rshift): New overload.
16667 * double-int.c (rshift): New function.
16668 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
16669 (create_reference_ops_from_ref): Remove.
16670 (vn_reference_insert): Use shared ops for constructing the
16671 reference and copy it.
16672
0a1a83cb
RB
166732013-05-07 Richard Biener <rguenther@suse.de>
16674
16675 PR middle-end/57190
16676 * tree-eh.c (sink_clobbers): Properly propagate
16677 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16678
43303d6f
JJ
166792013-05-07 Jakub Jelinek <jakub@redhat.com>
16680
ba7e83f8
JJ
16681 PR tree-optimization/57149
16682 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
16683 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
16684 collect_phi_def_edges, execute_late_warn_uninitialized): Use
16685 uninit_undefined_value_p instead of ssa_undefined_value_p.
16686
43303d6f
JJ
16687 PR debug/57184
16688 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
16689 for modifier == EXPAND_INITIALIZER.
16690
14523c25
AB
166912013-05-07 Anton Blanchard <anton@samba.org>
16692
16693 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
16694 for powerpc64 little endian.
16695 * configure: Regenerate.
16696
cb7c8be9
GS
166972013-05-06 Graham Stott <grahams@btinternet.com>
16698
16699 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
16700 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
16701 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
16702 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
16703
167042013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
16705
16706 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
16707 codes which allow non-lvalues.
16708
9a0ee7b0
MG
167092013-05-06 Marc Glisse <marc.glisse@inria.fr>
16710
16711 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
16712 components are all 1s.
16713 (integer_minus_onep): New function.
16714 * tree.h (integer_minus_onep): Declare it.
16715 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
16716 integer_minus_onep instead of integer_all_onesp.
16717
f2c17ea9
OE
167182013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16719
16720 PR target/52933
16721 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
16722 variations of these patterns.
16723
f75e6a51
UB
167242013-05-06 Uros Bizjak <ubizjak@gmail.com>
16725
16726 * config/i386/i386.md (isa): Add x64_sse4 member.
16727 (enabled): Handle x64_sse4.
16728 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
16729 instruction for 64bit SSE4_1 targets. Update insn attributes.
16730 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
16731 instruction for SSE4_1 targets. Update insn attributes.
16732 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16733 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
16734 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
16735 const_1 selector.
16736 (*vec_extractv4si): Rename from *sse4_1_pextrd.
16737 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
16738 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
16739
a986d468
OE
167402013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16741
16742 PR target/57108
16743 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
16744
382522cb
MK
167452013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
16746
16747 * final.c (do_assembler_dialects): Don't handle curly braces and
16748 vertical bar escaped by % as dialect delimiters.
16749 (output_asm_insn): Print curly braces and vertical bar if escaped
16750 by % and ASSEMBLER_DIALECT defined.
16751 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
16752 * doc/tm.texi: Regenerated.
16753
fb0d5c60
SB
167542013-05-06 Steven Bosscher <steven@gcc.gnu.org>
16755
fb0d5c60
SB
16756 * config/mips/mips.c: Include tree-pass.h.
16757 (mips_reorg): Split in pre- and post-dbr_schedule parts.
16758 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
16759 (pass_mips_machine_reorg2): New machine specific pass.
16760 (insert_pass_mips_machine_reorg2): New pass plugin definition.
16761 (mips_option_override): Register the new pass.
16762 * rtl.h (cleanup_barriers): Remove prototype.
16763 (dbr_schedule): Likewise.
16764 * jump.c (cleanup_barriers): Make static.
16765 * reorg.c (dbr_schedule): Likewise.
16766
aa06a978
RB
167672013-05-06 Richard Biener <rguenther@suse.de>
16768
16769 PR tree-optimization/57185
16770 * tree-parloops.c (add_field_for_reduction): Handle anonymous
16771 SSA names properly.
16772
0b953bec
UB
167732013-05-06 Uros Bizjak <ubizjak@gmail.com>
16774
16775 PR target/57106
16776 * config/i386/i386.c (add_parameter_dependencies): Add dependence
16777 between "first_arg" and "insn", not "last" and "insn".
16778
28708525
WS
167792013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16780
16781 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
16782 (find_candidates_in_block): Re-enable slsr_process_phi.
16783 (create_phi_basis): Fix double counting of candidate adjustment.
16784
0107dca2
RB
167852013-05-06 Richard Biener <rguenther@suse.de>
16786
16787 PR middle-end/57147
16788 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
16789 the edge is also fallthru, preserve it and just clear the
16790 abnormal flag.
16791 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
16792 also complex, preserve that and just clear the fallthru flag.
16793 * tree-inline.c (update_ssa_across_abnormal_edges): Also
16794 update virtual operands.
16795
470d4d13
AM
167962013-05-06 Alan Modra <amodra@gmail.com>
16797
16798 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
16799 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
16800 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
16801 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
16802 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
16803 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
16804
8f1dbf8d
AM
168052013-05-06 Alan Modra <amodra@gmail.com>
16806
16807 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
16808 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
16809 (DEFAULT_ASM_ENDIAN): Define.
16810 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
16811 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
16812 Update -K PIC clause from sysv4.h.
16813 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
16814 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
16815
54890767
AM
168162013-05-06 Alan Modra <amodra@gmail.com>
16817
16818 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
16819 twice for little-endian.
16820 (ashrdi3_no_power, ashrdi3): Support little-endian.
16821
2353515d
OE
168222013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16823
16824 PR target/55303
16825 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
16826 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
16827 related expanders.
16828 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
16829 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
16830 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
16831 New predicates.
16832
33e67557
SB
168332013-05-05 Steven Bosscher <steven@gcc.gnu.org>
16834 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16835
16836 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
16837 * config/pa/pa.opt: Make mbig-switch a no-op.
16838 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
16839 (CASE_VECTOR_MODE): Always return SImode.
16840 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
16841 for the !TARGET_BIG_SWITCH case.
16842 * config/pa/pa-linux.h: Likewise.
16843 * config/pa/pa-openbsd.h: Likewise.
16844 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
16845 * config/pa/pa.md (short_jump): Remove define_insn.
16846 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
16847 (casesi0): Remove define_insn.
16848 (type): Remove btable_branch.
16849 (pa_combine_type): Likewise.
16850 (in_nullified_branch_delay): Likewise.
16851 (in_call_delay): Likewise.
16852 (define_delay): Likewise.
16853 (define_insn_reservation "Z3"): Likewise.
16854 (define_insn_reservation "Z4"): Likewise.
16855 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
16856 (pa_adjust_insn_length): Remove adjustment for btable branches.
16857 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
16858 and mno-big-switch
16859
3095685e
UB
168602013-05-05 Uros Bizjak <ubizjak@gmail.com>
16861
16862 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16863 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
16864 Add m->r,x alternatives.
16865 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
16866 splitters using SWI48x mode iterator.
16867 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
16868 TARGET_64BIT. Add m->x alternative.
16869 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
16870 Add o->x alternative. Enable for TARGET_SSE.
16871 (sse_storeq): Remove expander.
16872 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
16873 with memory input operand.
16874 (*vec_extractv2di_1 splitter): New.
16875 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
16876 * config/i386/i386.md (ssevecmodelower): New mode attribute.
16877
4b36ae28
SB
168782013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16879
16880 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
16881 (INT_LOWPART): Delete.
16882 (extract_MB): Adjust.
16883 (extract_ME): Adjust.
16884 (print_operand): Adjust.
16885
da226db2
SB
168862013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16887
16888 * config/rs6000/predicates.md (reg_or_add_cint_operand,
16889 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
16890 (reg_or_logical_cint_operand, easy_fp_constant,
16891 logical_const_operand): Delete "CONST_DOUBLE" case.
16892 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
16893 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 16894 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
16895 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
16896 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
16897 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
16898 test.
16899 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
16900 CONST_DOUBLE DImode/VOIDmode case.
16901 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
16902 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
16903 CONST_DOUBLE VOIDmode case.
16904 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
16905 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
16906 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
16907 Delete CONST_DOUBLE case.
16908 (splitters for mov FMOVE64 const_double): Delete
16909 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
16910 "HOST_BITS_PER_WIDE_INT >= 64" test.
16911 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
16912 case.
16913 (mov DI const_double): Delete.
16914
40de22d6
JJ
169152013-05-04 Jakub Jelinek <jakub@redhat.com>
16916
16917 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
16918 on op shows all bits zero in mode of a lowpart subreg, return zero.
16919
5ec6aff2
MM
169202013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
16921
16922 PR target/57150
16923 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
16924 to save TFmode registers and DImode to save TImode registers for
16925 caller save operations.
16926 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
16927 mark being partially clobbered since they only use the first
16928 double word.
16929
16930 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
16931 and TDmode only use the upper 64-bits of each VSX register.
16932
2cefad90
BS
169332013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16934
16935 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
16936 (find_candidates_in_block): Disable slsr_process_phi.
16937
d6d7eee1
GW
169382013-05-03 Guozhi Wei <carrot@google.com>
16939
16940 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
16941 constructor to ...
16942 (build_init_ctor): ... here.
d6d7eee1 16943
9b92d12b
BS
169442013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16945
16946 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
16947 (slsr_cand_d): Redefine def_phi.
16948 (stride_status, phi_adjust_status, count_phis_status): New enums.
16949 (find_phi_def): New.
16950 (find_basis_for_base_expr): New.
16951 (find_basis_for_candidate): Handle hidden bases.
16952 (alloc_cand_and_find_basis): Handle phi candidates.
16953 (slsr_process_phi): New.
16954 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
16955 (create_mul_imm_cand): Likewise.
16956 (create_add_ssa_cand): Exclude phi base candidates.
16957 (create_add_imm_cand): Likewise.
16958 (slsr_process_cast): Likewise.
16959 (slsr_process_copy): Likewise.
16960 (find_candidates_in_block): Handle phi candidates.
16961 (dump_candidate): Likewise.
16962 (unconditional_cands): Delete.
16963 (unconditional_cands_with_known_stride_p): Delete.
16964 (phi_dependent_cand_p): New.
16965 (cand_increment): Handle phi-dependent candidates.
16966 (replace_dependent): Delete.
16967 (replace_mult_candidate): New.
16968 (replace_unconditional_candidate): New.
16969 (incr_vec_index): Move to avoid forward reference.
16970 (create_add_on_incoming_edge): New.
16971 (create_phi_basis): New.
16972 (replace_dependents): Delete.
16973 (replace_conditional_candidate): New.
16974 (phi_add_costs): New.
16975 (replace_uncond_cands_and_profitable_phis): New.
16976 (record_increment): Handle phi adjustments.
16977 (record_phi_increments): New.
16978 (record_increments): Handle phi adjustments.
16979 (phi_incr_cost): New.
16980 (lowest_cost_path): Handle phis.
16981 (total_savings): Likewise.
16982 (analyze_increments): Likewise.
16983 (ncd_with_phi): New.
16984 (ncd_of_cand_and_phis): New.
16985 (nearest_common_dominator_for_cands): Handle phi increments.
16986 (all_phi_incrs_profitable): New.
16987 (replace_profitable_candidates): Handle phi-dependent candidates.
16988 (analyze_candidates_and_replace): Likewise.
16989
68f073d4
TJ
169902013-05-03 Teresa Johnson <tejohnson@google.com>
16991
16992 PR bootstrap/57154
16993 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
16994 do not exceed REG_BR_PROB_BASE.
16995
a4ee7cb9
JL
169962013-05-03 Jeff Law <law@redhat.com>
16997
ade67f70 16998 PR tree-optimization/57144
a4ee7cb9
JL
16999 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
17000 operand of the condition will bit into the new type when eliminating
17001 a cast feeding a condition.
17002
47954c4e
JJ
170032013-05-03 Jakub Jelinek <jakub@redhat.com>
17004
17005 PR rtl-optimization/57130
3095685e
UB
17006 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
17007 of COMPARE as in_code to the recursive call if needed.
47954c4e 17008
3c21604f
UB
170092013-05-03 Uros Bizjak <ubizjak@gmail.com>
17010
17011 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
17012 (enabled): Handle new members.
17013 * config/i386/sse.md (*vec_concatv2si): Merge from
17014 *vec_concatv2si_sse2 and vec_concatv2si_sse.
17015 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
17016
12211b99 170172013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
17018
17019 PR tree-optimization/57027
17020 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
17021 for fnms opportunity, check we got the prerequisite kind
17022 of tree / gimple before using accessor functions.
17023
07bfc9ec
RB
170242013-05-03 Richard Biener <rguenther@suse.de>
17025
17026 * double-int.h (lshift): New overload without precision
17027 and arith argument.
17028 (operator *=, operator +=, operator -=): Move ...
17029 * double-int.c (operator *=, operator +=, operator -=): ... here
17030 and implement more efficiently.
17031 (mul_double_with_sign): Remove.
17032 (lshift_double): Adjust to take unsinged shift argument, push
17033 dispatching code to callers.
17034 (mul_double_wide_with_sign): Add early out for callers that
17035 are not interested in high parts or overflow.
17036 (lshift): New function.
17037 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
17038 dispatch code here.
17039 (lrotate, rrotate): Use logical shifts.
17040 * expr.c (get_inner_reference): Use lshift.
17041 * fixed-value.c (do_fixed_divide): Likewise.
17042 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17043 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
17044 (indirect_refs_may_alias_p): Likewise.
17045 (stmt_kills_ref_p_1): Likewise.
17046
7769bb64
VP
170472013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17048
17049 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
17050
1d0c8e5c
VP
170512013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17052
17053 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
17054 scalar form of FABD instruction.
17055
f15feaf9
VM
170562013-05-02 Vladimir Makarov <vmakarov@redhat.com>
17057
17058 * lra-constraints.c (process_alt_operands): Add checking alt
17059 number to choose the best alternative.
17060
d90e76d4
RB
170612013-05-02 Richard Biener <rguenther@suse.de>
17062
17063 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
17064 bitmap and its handling.
17065 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
17066
9f8e7a96
RB
170672013-05-02 Richard Biener <rguenther@suse.de>
17068
17069 PR middle-end/57140
17070 * tree-inline.c (copy_loops): Properly handle removed loops.
17071 (copy_cfg_body): Mark destination loops for fixup if source
17072 loops needed fixup.
17073
f3a81b39
GY
170742013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
17075
17076 PR target/56732
17077 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
17078 generating simple_return for naked functions.
17079
7b920a9a
MJ
170802013-05-02 Martin Jambor <mjambor@suse.cz>
17081
17082 PR middle-end/56988
17083 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
17084 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
17085 flags match.
17086 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
17087 ipa_agg_replacement_value structures.
17088 (known_aggs_to_agg_replacement_list): Likewise.
17089 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
17090 (read_agg_replacement_chain): Likewise.
17091 (ipcp_transform_function): Also check that by_ref flags match.
17092
2c41c19d
RB
170932013-05-02 Richard Biener <rguenther@suse.de>
17094
17095 * graphds.h (struct graph): Add obstack member.
17096 * graphds.c (new_graph): Initialize obstack and allocate
17097 vertices from it.
17098 (add_edge): Allocate edge from the obstack.
3c21604f 17099 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 17100
8b47039c
TJ
171012013-05-02 Teresa Johnson <tejohnson@google.com>
17102
17103 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
17104 divides.
17105 * cfg.c (update_bb_profile_for_threading): Ditto.
17106 * tree-inline.c (copy_bb): Ditto.
17107 (copy_edges_for_bb): Ditto.
17108 (initialize_cfun): Ditto.
17109 (copy_cfg_body): Ditto.
17110 (expand_call_inline): Ditto.
17111 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
17112 (estimate_node_size_and_time): Ditto.
17113 (inline_merge_summary): Ditto.
17114 * cgraphclones.c (cgraph_clone_edge): Ditto.
17115 (cgraph_clone_node): Ditto.
17116 * sched-rgn.c (compute_dom_prob_ps): Ditto.
17117 (compute_trg_info): Ditto.
17118
da65928c
IB
171192013-05-02 Ian Bolton <ian.bolton@arm.com>
17120
17121 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
17122 S reg when fp attribute set.
17123 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
17124
add3c965
IB
171252013-05-02 Ian Bolton <ian.bolton@arm.com>
17126
17127 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
17128 New pattern.
17129 (*and_one_cmplsi3_compare0_uxtw): Likewise.
17130 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
17131 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
17132
fdd43ac4
RB
171332013-05-02 Richard Biener <rguenther@suse.de>
17134
17135 * tree-scalar-evolution.c (scev_info_hasher): Remove.
17136 (struct instantiate_cache_entry): New type.
17137 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
17138 (struct instantiate_cache_type): New type.
17139 (set_instantiated_value, get_instantiated_value): Remove.
17140 (get_instantiated_value_entry): New function.
17141 (instantiate_scev_name): Use the new cache and adjust.
17142 (instantiate_scev_poly): Adjust.
17143 (instantiate_scev_binary): Likewise.
17144 (instantiate_array_ref): Likewise.
17145 (instantiate_scev_convert): Likewise.
17146 (instantiate_scev_not): Likewise.
17147 (instantiate_scev_3): Likewise.
17148 (instantiate_scev_2): Likewise.
17149 (instantiate_scev_r): Likewise.
17150 (instantiate_scev): Likewise.
17151 (resolve_mixers): Likewise.
17152
36ff9dfb
VM
171532013-05-01 Vladimir Makarov <vmakarov@redhat.com>
17154
17155 PR target/57091
17156 * lra-constraints.c (best_small_class_operands_num): Remove.
17157 (process_alt_operands): Remove small_class_operands_num. Take
17158 small classes operands into losers and only if the operand is not
17159 matched. Modify debugging output.
17160 (curr_insn_transform): Remove best_small_class_operands_num.
17161 Print insn name.
17162
36054fab
JG
171632013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17164
17165 * config/aarch64/aarch64-builtins.c
17166 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
17167 * config/aarch64/aarch64-simd-builtins.def
17168 (reduc_splus_): Add new modes.
17169 (reduc_uplus_): New.
17170 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
17171 (reduc_uplus_v4sf): Likewise.
17172 (reduc_splus_v4sf): Likewise.
17173 (aarch64_addv<mode>): Likewise.
17174 (reduc_uplus_<mode>): Likewise.
17175 (reduc_splus_<mode>): Likewise.
17176 (aarch64_addvv2di): Likewise.
17177 (reduc_uplus_v2di): Likewise.
17178 (reduc_splus_v2di): Likewise.
17179 (aarch64_addvv2si): Likewise.
17180 (reduc_uplus_v2si): Likewise.
17181 (reduc_splus_v2si): Likewise.
17182 (reduc_<sur>plus_<mode>): New.
17183 (reduc_<sur>plus_v2di): Likewise.
17184 (reduc_<sur>plus_v2si): Likewise.
17185 (reduc_<sur>plus_v4sf): Likewise.
17186 (aarch64_addpv4sf): Likewise.
17187 * config/aarch64/arm_neon.h
17188 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
17189 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
17190 add UNSPEC_SADDV, UNSPEC_UADDV.
17191 (SUADDV): New.
17192 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
17193
6dce23a8
JG
171942013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17195
17196 * config/aarch64/arm_neon.h
17197 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
17198
1598945b
JG
171992013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17200
17201 * config/aarch64/aarch64-builtins
17202 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
17203
998eaf97
JG
172042013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17205
17206 * config/aarch64/aarch64-simd-builtins.def
17207 (reduc_smax_): New.
17208 (reduc_smin_): Likewise.
17209 (reduc_umax_): Likewise.
17210 (reduc_umin_): Likewise.
17211 (reduc_smax_nan_): Likewise.
17212 (reduc_smin_nan_): Likewise.
17213 (fmax): Remove.
17214 (fmin): Likewise.
17215 (smax): Update for V2SF, V4SF and V2DF modes.
17216 (smin): Likewise.
17217 (smax_nan): New.
17218 (smin_nan): Likewise.
17219 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
17220 (<su><maxmin><mode>3): ...This, refactor.
17221 (s<maxmin><mode>3): New.
17222 (<maxmin_uns><mode>3): Likewise.
17223 (reduc_<maxmin_uns>_<mode>): Refactor.
17224 (reduc_<maxmin_uns>_v4sf): Likewise.
17225 (reduc_<maxmin_uns>_v2si): Likewise.
17226 (aarch64_<fmaxmin><mode>: Remove.
17227 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
17228 new builtin names.
17229 (vmin<q>_f<32,64>): Likewise.
17230 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
17231 (FMAXMIN): New.
17232 (su): Add mappings for smax, smin, umax, umin.
17233 (maxmin): New.
17234 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
17235 (FMAXMIN): Rename as...
17236 (FMAXMIN_UNS): ...This.
17237 (maxminv): Remove.
17238 (fmaxminv): Likewise.
17239 (fmaxmin): Likewise.
17240 (maxmin_uns): New.
17241 (maxmin_uns_op): Likewise.
17242
bd11644e
JG
172432013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17244
17245 * config/aarch64/arm_neon.h
17246 (vac<ge, gt><sd>_f<32, 64>): Rename to...
17247 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
17248 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
17249
75dd5ace
JG
172502013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17251
17252 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
17253 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
17254
7c19979f
JG
172552013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17256
17257 * config/aarch64/aarch64-simd.md
17258 (vcond<mode>_internal): Handle special cases for constant masks.
17259 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
17260 (vcondu<mode><mode>): Likewise.
17261 (vcond<v_cmp_result><mode>): New.
17262
bb60efd9
JG
172632013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17264
17265 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
17266 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
17267 * config/aarch64/aarch64-simd-builtins.def
17268 (cmeq): Update to BUILTIN_VALLDI.
17269 (cmgt): Likewise.
17270 (cmge): Likewise.
17271 (cmle): Likewise.
17272 (cmlt): Likewise.
17273 * config/aarch64/arm_neon.h
17274 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
17275 to builtins or C as appropriate.
17276
889b9412
JG
172772013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17278
17279 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
17280 (cmgeu): ...This.
17281 (cmhi): Rename to...
17282 (cmgtu): ...This.
17283 * config/aarch64/aarch64-simd.md
17284 (simd_mode): Add SF.
17285 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
17286 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
17287 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
17288 (cstore<mode>_neg): ...This.
17289 * config/aarch64/iterators.md
17290 (VALLF): new.
17291 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
17292 (COMPARISONS): New.
17293 (UCOMPARISONS): Likewise.
17294 (optab): Add missing comparisons.
17295 (n_optab): New.
17296 (cmp_1): Likewise.
17297 (cmp_2): Likewise.
17298 (CMP): Likewise.
17299 (cmp): Remove.
17300 (VCMP_S): Likewise.
17301 (VCMP_U): Likewise.
17302 (V_cmp_result): Add DF, SF modes.
17303 (v_cmp_result): Likewise.
17304 (v): Likewise.
17305 (vmtype): Likewise.
17306 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
17307
0a7dbb76
GY
173082013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
17309
17310 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
17311 define_insn to define_insn_and_split.
17312 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
17313 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
17314 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
17315 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
17316 (thumb2_negscc): Likewise.
17317
fb614ca6
GY
173182013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
17319
17320 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
17321
9e64a0bf
GY
173222013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
17323
17324 * config/arm/thumb2.md: Remove trailing whitespaces.
17325
d6b28156
RS
173262013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
17327
17328 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
17329 Use gen_int_mode rather than GEN_INT.
17330
f91674c3
L
173312013-04-30 H.J. Lu <hongjiu.lu@intel.com>
17332
b0dec607 17333 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
17334 debug_gimple_stmt.
17335
3551257c
RB
173362013-04-30 Richard Biener <rguenther@suse.de>
17337
17338 PR middle-end/57122
3c21604f 17339 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 17340
4c1aff1c
RB
173412013-04-30 Richard Biener <rguenther@suse.de>
17342
17343 PR middle-end/57107
17344 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
17345
54b8379a
AB
173462013-04-30 Andrey Belevantsev <abel@ispras.ru>
17347
17348 PR rtl-optimization/56957
17349 PR rtl-optimization/57105
54b8379a
AB
17350 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
17351 variable. Use just INSN_UID for determining whether an insn
17352 should be only disconnected from the insn stream.
17353 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
17354
abc27962
JJ
173552013-04-30 Jakub Jelinek <jakub@redhat.com>
17356
17357 PR tree-optimization/57104
17358 * tsan.c (instrument_expr): Don't instrument accesses to
17359 DECL_HARD_REGISTER VAR_DECLs.
17360
0fc822d0
RB
173612013-04-30 Richard Biener <rguenther@suse.de>
17362
17363 * function.h (loops_for_fn): New inline function.
17364 (set_loops_for_fn): Likewise.
17365 * cfgloop.h (place_new_loop): Add struct function parameter.
17366 (get_loop): Likewise.
17367 (get_loops): Likewise.
17368 (number_of_loops): Likewise.
17369 (fel_next): Adjust.
17370 (fel_init): Likewise.
17371 * cfg.c (get_loop_copy): Adjust.
17372 * cfgloop.c (flow_loops_dump): Likewise.
17373 (record_loop_exits): Likewise.
17374 (verify_loop_structure): Likewise.
17375 * cfgloopanal.c (mark_irreducible_loops): Likewise.
17376 (estimate_reg_pressure_cost): Likewise.
17377 (mark_loop_exit_edges): Likewise.
17378 * cfgloopmanip.c (place_new_loop): Likewise.
17379 (add_loop): Likewise.
17380 (duplicate_loop): Likewise.
17381 * graph.c (draw_cfg_nodes): Likewise.
17382 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
17383 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
17384 (extract_affine_chrec): Likewise.
17385 (build_scop_iteration_domain): Likewise.
17386 * graphite.c (graphite_initialize): Likewise.
17387 * ira-build.c (create_loop_tree_nodes): Likewise.
17388 (more_one_region_p): Likewise.
17389 (rebuild_regno_allocno_maps): Likewise.
17390 (mark_loops_for_removal): Likewise.
17391 (mark_all_loops_for_removal): Likewise.
17392 (remove_unnecessary_regions): Likewise.
17393 (ira_build): Likewise.
17394 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
17395 * loop-init.c (fix_loop_structure): Likewise.
17396 (gate_rtl_move_loop_invariants): Likewise.
17397 (gate_rtl_unswitch): Likewise.
17398 (gate_rtl_unroll_and_peel_loops): Likewise.
17399 (rtl_doloop): Likewise.
17400 * lto-streamer-in.c (input_cfg): Likewise.
17401 * lto-streamer-out.c (output_cfg): Likewise.
17402 * modulo-sched.c (sms_schedule): Likewise.
17403 * predict.c (tree_estimate_probability): Likewise.
17404 (tree_estimate_probability_driver): Likewise.
17405 (estimate_loops): Likewise.
17406 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
17407 (move_sese_region_to_fn): Likewise.
17408 (debug_loop_num): Likewise.
17409 * tree-chrec.c (chrec_evaluate): Likewise.
17410 (hide_evolution_in_other_loops_than_loop): Likewise.
17411 (chrec_component_in_loop_num): Likewise.
17412 (reset_evolution_in_loop): Likewise.
17413 (evolution_function_is_invariant_rec_p): Likewise.
17414 * tree-if-conv.c (main_tree_if_conversion): Likewise.
17415 * tree-inline.c (copy_loops): Likewise.
17416 (copy_cfg_body): Likewise.
17417 (tree_function_versioning): Likewise.
17418 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
17419 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
17420 Likewise.
17421 (add_to_evolution_1): Likewise.
17422 (scev_const_prop): Likewise.
17423 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
17424 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
17425 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
17426 (tree_ssa_lim_initialize): Likewise.
17427 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
17428 (verify_loop_closed_ssa): Likewise.
17429 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
17430 (tree_ssa_loop_im): Likewise.
17431 (tree_ssa_loop_unswitch): Likewise.
17432 (tree_vectorize): Likewise.
17433 (check_data_deps): Likewise.
17434 (tree_ssa_loop_ivcanon): Likewise.
17435 (tree_ssa_loop_bounds): Likewise.
17436 (tree_complete_unroll): Likewise.
17437 (tree_complete_unroll_inner): Likewise.
17438 (tree_parallelize_loops): Likewise.
17439 (tree_ssa_loop_prefetch): Likewise.
17440 (tree_ssa_loop_ivopts): Likewise.
17441 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
17442 * tree-vectorizer.c (vectorize_loops): Likewise.
17443
37953bd3
MF
174442013-04-29 Mike Frysinger <vapier@gentoo.org>
17445
17446 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
17447 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
17448 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
17449 with EABI_LINK_SPEC.
17450
f9ed28db
UB
174512013-04-29 Uros Bizjak <ubizjak@gmail.com>
17452
17453 PR target/44578
17454 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
17455 alternative.
17456
deca73f5
VM
174572013-04-29 Vladimir Makarov <vmakarov@redhat.com>
17458
17459 PR target/57097
37953bd3 17460 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
17461 using memory for pseudos. Print cost dump for alternatives.
17462 Modify cost values for conflicts with early clobbers.
17463 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
17464
fdca7d03
UB
174652013-04-29 Uros Bizjak <ubizjak@gmail.com>
17466
17467 PR target/57098
17468 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
17469
0b064172
IB
174702013-04-29 Ian Bolton <ian.bolton@arm.com>
17471
17472 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
17473 from/to S register.
17474 (movdi_aarch64): Support LDR/STR from/to D register.
17475
473cec55
IB
174762013-04-29 Ian Bolton <ian.bolton@arm.com>
17477
17478 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
17479 or higher by default.
17480
a6f30e66
RB
174812013-04-29 Richard Biener <rguenther@suse.de>
17482
17483 PR middle-end/57075
17484 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
17485 even if not adding abnormal edges for calls that can make
17486 abnormal gotos.
17487
0c2b2040
RB
174882013-04-29 Richard Biener <rguenther@suse.de>
17489
17490 PR middle-end/57103
17491 * tree-cfg.c (move_stmt_op): Fix condition under which to update
17492 TREE_BLOCK.
17493 (move_stmt_r): Remove redundant checking.
17494
f41f80f9
TJ
174952013-04-29 Teresa Johnson <tejohnson@google.com>
17496
17497 PR bootstrap/57077
17498 * basic-block.h (apply_scale): New function.
17499 (apply_probability): Use apply_scale.
17500 * gimple-streamer-in.c (input_bb): Ditto.
17501 * lto-streamer-in.c (input_cfg): Ditto.
17502 * lto-cgraph.c (merge_profile_summaries): Ditto.
17503 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 17504 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
17505 (copy_edges_for_bb): Ditto.
17506 (copy_cfg_body): Ditto.
17507
315bbd2e
TV
175082013-04-29 Tom de Vries <tom@codesourcery.com>
17509
17510 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
17511 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
17512 (tail_merge_optimize): Handle current_loops == NULL.
17513
ebbd90d8
JL
175142013-04-26 Jeff Law <law@redhat.com>
17515
17516 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
17517 (simplify_cond_using_ranges): Generalize code to simplify
17518 COND_EXPRs where one argument is a constant and the other
17519 is an SSA_NAME created by an integral type conversion.
17520
8b9b57eb
KT
175212013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17522
17523 * config/arm/arm.md (store_minmaxsi): Use only when
17524 optimize_insn_for_size_p.
17525
9498e5dc
CB
175262013-04-29 Christian Bruel <christian.bruel@st.com>
17527
17528 PR target/57108
17529 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
17530
6093bc06
RB
175312013-04-29 Richard Biener <rguenther@suse.de>
17532
17533 PR middle-end/57089
fdca7d03
UB
17534 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
17535 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
17536 (expand_omp_for_generic): Properly add loops.
17537 (expand_omp_for_static_nochunk): Likewise.
17538 (expand_omp_for_static_chunk): Likewise.
17539 (expand_omp_for): For the degenerate case fixup loops.
17540 (expand_omp_sections): Fix default bb placement in loops.
17541 (expand_omp_atomic_pipeline): Properly add loops.
17542
84aacbfd
KT
175432013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17544
17545 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
17546
8dee4479
TV
175472013-04-29 Tom de Vries <tom@codesourcery.com>
17548
17549 * tree-ssa-tail-merge.c: Update header comment.
17550
47934dc4
JG
175512013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17552
17553 * config/aarch64/arm_neon.h
17554 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
17555 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
17556 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
17557 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
17558 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
17559 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
17560 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
17561 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
17562
384be29f
JG
175632013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17564
17565 * config/aarch64/aarch64-simd.md
17566 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
17567 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
17568 fix_trunc, fixuns_trunc.
17569 (ftrunc<VDQF:mode>2): New.
17570 * config/aarch64/iterators.md (optab): Add fix, fixuns.
17571 (fix_trunc_optab): New.
17572
0386b123
JG
175732013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17574
17575 * config/aarch64/aarch64-builtins.c
17576 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
17577 iceilf, lround, iroundf.
17578
00fcb892
UB
175792013-04-29 Uros Bizjak <ubizjak@gmail.com>
17580
17581 PR target/54349
17582 * config/i386/i386.h (enum ix86_tune_indices)
17583 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
17584 New, split from X86_TUNE_INTER_UNIT_MOVES.
17585 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
17586 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
17587 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
17588 (TARGET_INTER_UNIT_MOVES): Remove.
17589 * config/i386/i386.c (initial_ix86_tune_features): Update.
17590 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
17591 (ix86_expand_convert_uns_didf_sse): Use
17592 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
17593 (ix86_expand_vector_init_one_nonzero): Ditto.
17594 (ix86_expand_vector_init_interleave): Ditto.
17595 (inline_secondary_memory_needed): Return true for moves from SSE class
17596 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
17597 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
17598 * config/i386/constraints.md (Yi, Ym): Depend on
17599 TARGET_INTER_UNIT_MOVES_TO_VEC.
17600 (Yj, Yn): New constraints.
17601 * config/i386/i386.md (*movdi_internal): Change constraints of
17602 operand 1 from Yi to Yj and from Ym to Yn.
17603 (*movsi_internal): Ditto.
17604 (*movdf_internal): Ditto.
17605 (*movsf_internal): Ditto.
17606 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
17607 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
17608 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
17609 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
17610 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
17611 * config/i386/sse.md (movdi_to_sse): Ditto.
17612 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
17613 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
17614 TARGET_INTER_UNIT_MOVES.
17615 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
17616 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
17617 instead of TARGET_INTER_UNIT_MOVES.
17618 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
17619 operand 1 from Yi to Yj and from Ym to Yn.
17620
4c871069
JG
176212013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17622
17623 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
17624 (float_truncate_hi_): Likewise.
17625 (float_extend_lo_): Likewise.
17626 (float_truncate_lo_): Likewise.
17627 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
17628 (aarch64_float_extend_lo_v2df): Likewise.
17629 (vec_unpacks_hi_v4sf): Likewise.
17630 (aarch64_float_truncate_lo_v2sf): Likewise.
17631 (aarch64_float_truncate_hi_v4sf): Likewise.
17632 (vec_pack_trunc_v2df): Likewise.
17633 (vec_pack_trunc_df): Likewise.
17634
1709ff9b
JG
176352013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17636
17637 * config/aarch64/aarch64-builtins.c
17638 (aarch64_fold_builtin): Fold float conversions.
17639 * config/aarch64/aarch64-simd-builtins.def
17640 (floatv2si, floatv4si, floatv2di): New.
17641 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
17642 * config/aarch64/aarch64-simd.md
17643 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
17644 * config/aarch64/iterators.md (FLOATUORS): New.
17645 (optab): Add float, floatuns.
17646 (su_optab): Likewise.
17647
ce966824
JG
176482013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17649
17650 * config/aarch64/aarch64-builtins.c
17651 (aarch64_builtin_vectorized_function): Use new names for
17652 fcvt builtins.
17653 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
17654 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
17655 (fcvtzu): Split as...
17656 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
17657 (fcvtas): Split as...
17658 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
17659 (fcvtau): Split as...
17660 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
17661 (fcvtps): Split as...
17662 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
17663 (fcvtpu): Split as...
17664 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
17665 (fcvtms): Split as...
17666 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
17667 (fcvtmu): Split as...
17668 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
17669 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
17670 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
17671 (lfrintnusf, lfrintnudf): Likewise.
17672 * config/aarch64/aarch64-simd.md
17673 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
17674 define_insn.
17675 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
17676 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
17677 (fcvt_pattern): Likewise.
17678
b9de24fe
JG
176792013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17680
17681 * config/aarch64/aarch64-simd.md
17682 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
17683 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
17684
77a205be
JG
176852013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17686
17687 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
17688 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
17689 (vrnd<a,m,n,p>_f32): Implement using builtins.
17690 (vrnd<i,x><q>_f<32, 64>): New.
17691
0659ce6f
JG
176922013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17693
17694 * config/aarch64/aarch64-builtins.c
17695 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
17696 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
17697 (frintz): Rename to...
17698 (btrunc): ...this.
17699 (frintp): Rename to...
17700 (ceil): ...this.
17701 (frintm): Rename to...
17702 (floor): ...this.
17703 (frinti): Rename to...
17704 (nearbyint): ...this.
17705 (frintx): Rename to...
17706 (rint): ...this.
17707 (frinta): Rename to...
17708 (round): ...this.
17709 * config/aarch64/aarch64-simd.md
17710 (aarch64_frint<frint_suffix><mode>): Delete.
17711 (<frint_pattern><mode>2): Convert to insn.
17712 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
17713 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
17714 (frint_pattern): Likewise.
17715 (frint_suffix): Likewise.
17716
ea78906a
RB
177172013-04-29 Richard Biener <rguenther@suse.de>
17718
17719 PR tree-optimization/57081
17720 * loop-init.c: Include tree-flow.h.
17721 (loop_optimizer_finalize): Free number of iteration estimates.
17722 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
17723
baee1763
JJ
177242013-04-29 Jakub Jelinek <jakub@redhat.com>
17725
94dc5332
JJ
17726 PR tree-optimization/57083
17727 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
17728 non-singleton shift count range, zero extend low_bound for uns case.
17729
baee1763
JJ
17730 * config/i386/predicates.md (general_vector_operand): New predicate.
17731 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
17732 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
17733 if they aren't nonimmediate operands. If their original values
17734 satisfy const_vector_equal_evenodd_p, don't shift them.
17735 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
17736 predicates. For the SSE4.1 case force operands[{1,2}] into registers
17737 if not nonimmediate_operand.
17738 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
17739 instead of register_operand.
17740 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
17741
a9073727 177422013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
17743
17744 * stor-layout.c (finalize_size_functions): Allocate a structure and
17745 reset cfun before dumping the functions.
17746
ba8011e6
JJ
177472013-04-27 Jakub Jelinek <jakub@redhat.com>
17748
d6fde69e
JJ
17749 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
17750
ba8011e6
JJ
17751 PR target/56866
17752 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
17753 use xop_pmacsdqh if uns_p.
17754 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
17755 the immediate rotate count.
17756
2c62cbaa
VM
177572013-04-26 Vladimir Makarov <vmakarov@redhat.com>
17758
17759 * rtl.h (struct rtx_def): Add comment for field jump.
17760 (LRA_SUBREG_P): New macro.
17761 * recog.c (register_operand): Check LRA_SUBREG_P.
17762 * lra.c (lra): Add note at the end of RTL code. Align non-empty
17763 stack frame.
17764 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
17765 (lra_final_code_change): Skip subreg change for operators.
17766 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
17767 if there are no operand changes.
17768 * lra-constraints.c (curr_insn_set): New.
17769 (match_reload): Set LRA_SUBREG_P.
17770 (emit_spill_move): Ditto.
17771 (check_and_process_move): Use curr_insn_set. Process only single
17772 set insns. Don't initialize sec_mem_p and change_p.
17773 (simplify_operand_subreg): Use LRA_SUBREG_P.
17774 (reg_in_class_p): New function.
17775 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
17776 of #ifdef. Add code to remove cycling.
17777 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
17778 non-null disp. Reload inner instead of disp when base and index
17779 are null. Try to put lo_sum into register.
17780 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
17781 (check_and_process_move): Move code for move cost check to
17782 simple_move_p. Remove equiv_substitution.
17783 (simple_move_p): New function.
17784 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
17785 curr_insn_set. Call check_and_process_move only for single set
17786 insns. Use the new function. Move call of check_and_process_move
17787 after operand equiv substitution and address process.
17788
e7d764f3
JJ
177892013-04-26 Jakub Jelinek <jakub@redhat.com>
17790
17791 PR go/57045
17792 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
17793 with nonlocal goto receivers or returns twice calls, ignore
17794 unininitialized values from abnormal edges to nl goto receiver
17795 or returns twice call.
17796
41e10689
JJ
177972013-04-26 Jakub Jelinek <jakub@redhat.com>
17798
17799 PR tree-optimization/57051
17800 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
17801 and VEC_RSHIFT_EXPR if shift count is a multiple of element
17802 bitsize.
17803
d7ed20db
RB
178042013-04-26 Richard Biener <rguenther@suse.de>
17805
17806 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
17807 (expand_omp_taskreg): Likewise. Mark loops for fixup.
17808 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
17809 (fixup_loop_arrays_after_move): New function.
17810 (move_sese_region_to_fn): Properly outline the loop tree parts
17811 of the SESE region.
17812
df93505e
UB
178132013-04-26 Uros Bizjak <ubizjak@gmail.com>
17814
17815 * config/i386/i386.md (type, unit): Fix long lines.
17816
dd366ec3
RB
178172013-04-26 Richard Biener <rguenther@suse.de>
17818
17819 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
17820 (lto-streamer-out.o): Likewise.
17821 * cfgloop.c (init_loops_structure): Export, add struct function
17822 argument and adjust.
17823 (flow_loops_find): Adjust.
17824 * cfgloop.h (enum loop_estimation): Add EST_LAST.
17825 (init_loops_structure): Declare.
17826 * lto-streamer-in.c: Include cfgloop.h.
17827 (input_cfg): Input the loop tree.
17828 * lto-streamer-out.c: Include cfgloop.h.
17829 (output_cfg): Output the loop tree.
17830 (output_struct_function_base): Do not drop PROP_loops.
17831
a9e0d843
RB
178322013-03-26 Richard Biener <rguenther@suse.de>
17833
17834 * tree-cfg.c (execute_build_cfg): Build the loop tree.
17835 (pass_build_cfg): Provide PROP_loops.
17836 (move_sese_region_to_fn): Remove loops that are outlined into fn
17837 for now.
17838 * tree-inline.c: Include cfgloop.h.
17839 (initialize_cfun): Do not drop PROP_loops.
17840 (copy_loops): New function.
17841 (copy_cfg_body): Copy loop structure.
17842 (tree_function_versioning): Initialize destination loop tree.
17843 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
17844 (pass_parallelize_loops): Do IL verification.
17845 * loop-init.c (loop_optimizer_init): Fixup loops if required.
17846 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
17847 the CFG make sure we fixup loops as well.
17848 * tree-ssa-tail-merge.c: Include cfgloop.h.
17849 (replace_block_by): When merging loop latches mark loops for fixup.
17850 * lto-streamer-out.c (output_struct_function_base): Drop
17851 PROP_loops for now.
17852 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
17853 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
17854 * ipa-split.c: Include cfgloop.h.
17855 (split_function): Add the new return block to the loop tree root.
17856 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
17857 whether we have removed the forwarder block.
17858 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
17859 * cfgloop.h (place_new_loop): Declare.
17860 * cfgloopmanip.c (place_new_loop): Export.
17861 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
17862 (tree-switch-conversion.o): Likewise.
17863 (tree-complex.o): Likewise.
17864 (tree-inline.o): Likewise.
17865 (tree-ssa-tailmerge.o): Likewise.
17866 (ipa-split.o): Likewise.
17867 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
17868 (tree-ssa-copy.o): Likewise.
17869 * tree-switch-conversion.c: Include cfgloop.h
17870 (process_switch): If we emit a bit-test cascade, schedule loops
17871 for fixup.
17872 * tree-complex.c: Include cfgloop.h.
17873 (expand_complex_div_wide): Properly add new basic-blocks to loops.
17874 * asan.c: Include cfgloop.h.
17875 (create_cond_insert_point): Properly add new basic-blocks to
17876 loops, schedule loop fixup.
17877 * cfgloop.c (verify_loop_structure): Check that looks are not
17878 marked for fixup.
17879 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
17880 to loops.
17881 (expand_omp_for_generic): Likewise.
17882 (expand_omp_sections): Likewise.
17883 (expand_omp_atomic_pipeline): Schedule loops for fixup.
17884 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
17885 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
17886 is initialized, not when loops are present.
17887 * tree-parloops.c (parallelize_loops): Remove checking here.
17888 * passes.c (init_optimization_passes): Schedule a copy-propagation
17889 pass before complete unrolling of inner loops.
17890
e78e8a0b
JJ
178912013-04-26 Jakub Jelinek <jakub@redhat.com>
17892
a2e836b2
JJ
17893 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
17894 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
17895 (colorize_init): Add argument to _WIN32 version.
17896 * toplev.c: Include diagnostic-color.h.
17897 (process_options): Default to -fdiagnostics-color=auto if
17898 GCC_COLORS env var is in the environment.
17899 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
17900 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
17901 env var is in the environment, the default is auto rather than never.
a2e836b2 17902
e78e8a0b
JJ
17903 * diagnostic.h (file_name_as_prefix): Add context argument.
17904 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
17905 the string as locus.
17906 * langhooks.c (lhd_print_error_function): Adjust caller.
17907
013e5ef9
LC
179082013-04-25 Lawrence Crowl <crowl@google.com>
17909
17910 * var-tracking.c (shared_hash_def::htab):
17911 Change type to hash_table. Update dependent calls and types.
17912
4a8fb1a1
LC
179132013-04-25 Lawrence Crowl <crowl@google.com>
17914
17915 * Makefile.in: Update as needed below.
17916
17917 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
17918 Move declaration to after the type's method definitons.
17919
17920 * attribs.c (htab_t scoped_attributes::attribute_hash):
17921 Change type to hash_table. Update dependent calls and types.
17922
17923 * bitmap.c (htab_t bitmap_desc_hash):
17924 Change type to hash_table. Update dependent calls and types.
17925
17926 * cselib.c (htab_t cselib_hash_table):
17927 Change type to hash_table. Update dependent calls and types.
17928
17929 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
17930 (hash_string_slot_node): Move implementation into lto-streamer.h
17931 struct string_slot_hasher.
17932 (eq_string_slot_node): Likewise.
17933
17934 * data-streamer-out.c: Update output_block::string_hash_table
17935 dependent calls and types.
17936
17937 * dwarf2cfi.c (htab_t trace_index):
17938 Change type to hash_table. Update dependent calls and types.
17939
17940 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
17941 Change type to hash_table. Update dependent calls and types.
17942 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
17943 (htab_t optimize_external_refs::map): Likewise.
17944 (htab_t output_comp_unit::extern_map): Likewise.
17945 (htab_t output_comdat_type_unit::extern_map): Likewise.
17946 (htab_t output_macinfo::macinfo_htab): Likewise.
17947 (htab_t optimize_location_lists::htab): Likewise.
17948 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
17949
17950 * except.c (htab_t ehspec_hash_type):
17951 Change type to hash_table. Update dependent calls and types.
17952 (assign_filter_values::ttypes): Likewise.
17953 (assign_filter_values::ehspec): Likewise.
17954 (sjlj_assign_call_site_values::ar_hash): Likewise.
17955 (convert_to_eh_region_ranges::ar_hash): Likewise.
17956
17957 * gcse.c (htab_t pre_ldst_table):
17958 Change type to hash_table. Update dependent calls and types.
17959
17960 * ggc-common.c (htab_t saving_htab):
17961 Change type to hash_table. Update dependent calls and types.
17962 (htab_t loc_hash): Likewise.
17963 (htab_t ptr_hash): Likewise.
17964 (call_count): Rename ggc_call_count.
17965 (call_alloc): Rename ggc_call_alloc.
17966 (loc_descriptor): Rename make_loc_descriptor.
17967 (add_statistics): Rename ggc_add_statistics.
17968
17969 * ggc-common.c (saving_htab):
17970 Change type to hash_table. Update dependent calls and types.
17971
17972 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
17973 (push_gimplify_context): Likewise.
17974 (pop_gimplify_context): Likewise.
17975 (struct gimple_temp_hash_elt): Added.
17976 (struct gimplify_hasher): Likewise.
17977 (struct gimplify_ctx.temp_htab):
17978 Change type to hash_table. Update dependent calls and types.
17979
17980 * gimple-fold.c: Include gimplify-ctx.h.
17981
17982 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
17983 Change type to hash_table. Update dependent calls and types.
17984 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
17985 avoid potential global name collision.
17986
17987 * gimplify.c: Include gimplify-ctx.h.
17988 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
17989 (htab_t gimplify_ctx::temp_htab):
17990 Update dependent calls and types for new type hash_table.
17991 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
17992 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
17993
17994 * gimplify-ctx.h: New.
17995 (struct gimple_temp_hash_elt): Move from gimplify.c.
17996 (class gimplify_hasher): New.
17997 (struct gimplify_ctx): Move from gimple.h.
17998 (htab_t gimplify_ctx::temp_htab):
17999 Change type to hash_table. Update dependent calls and types.
18000
18001 * graphite-clast-to-gimple.c: Include graphite-htab.h.
18002 (htab_t ivs_params::newivs_index):
18003 Change type to hash_table. Update dependent calls and types.
18004 (htab_t ivs_params::params_index): Likewise.
18005 (htab_t print_generated_program::params_index): Likewise.
18006 (htab_t gloog::newivs_index): Likewise.
18007 (htab_t gloog::params_index): Likewise.
18008
18009 * graphite.c: Include graphite-htab.h.
18010 4htab_t graphite_transform_loops::bb_pbb_mapping):
18011 Change type to hash_table. Update dependent calls and types.
18012
18013 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
18014 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
18015 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
18016
18017 * graphite-dependences.c: Include graphite-htab.h.
18018 (loop_is_parallel_p): Change hash table type of parameter.
18019
18020 * graphite-htab.h: New.
18021 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
18022 (extern find_pbb_via_hash): Move from graphite-poly.h.
18023 (extern loop_is_parallel_p): Move from graphite-poly.h.
18024 (extern get_loop_body_pbbs): Move from graphite-poly.h.
18025
18026 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
18027 (extern loop_is_parallel_p): Move to graphite-htab.h.
18028 (extern get_loop_body_pbbs): Move to graphite-htab.h.
18029
18030 * haifa-sched.c (htab_t delay_htab):
18031 Change type to hash_table. Update dependent calls and types.
18032 (htab_t delay_htab_i2): Likewise.
18033
18034 * ira-color.c (htab_t allocno_hard_regs_htab):
18035 Change type to hash_table. Update dependent calls and types.
18036
18037 * ira-costs.c (htab_t cost_classes_htab):
18038 Change type to hash_table. Update dependent calls and types.
18039
18040 * loop-invariant.c (htab_t merge_identical_invariants::eq):
18041 Change type to hash_table. Update dependent calls and types.
18042
18043 * loop-iv.c (htab_t bivs):
18044 Change type to hash_table. Update dependent calls and types.
18045
18046 * loop-unroll.c (htab_t opt_info::insns_to_split):
18047 Change type to hash_table. Update dependent calls and types.
18048 (htab_t opt_info::insns_with_var_to_expand): Likewise.
18049
18050 * lto-streamer.h (struct string_slot): Move from data-streamer.h
18051 (struct string_slot_hasher): New.
18052 (htab_t output_block::string_hash_table):
18053 Change type to hash_table. Update dependent calls and types.
18054
18055 * lto-streamer-in.c (freeing_string_slot_hasher): New.
18056 (htab_t file_name_hash_table):
18057 Change type to hash_table. Update dependent calls and types.
18058
18059 * lto-streamer-out.c: Update output_block::string_hash_table dependent
18060 calls and types.
18061
18062 * lto-streamer.c (htab_t tree_htab):
18063 Change type to hash_table. Update dependent calls and types.
18064
18065 * omp-low.c: Include gimplify-ctx.h.
18066
18067 * passes.c (htab_t name_to_pass_map):
18068 Change type to hash_table. Update dependent calls and types.
18069 (pass_traverse): Rename to passes_pass_traverse.
18070
18071 * plugin.c (htab_t event_tab):
18072 Change type to hash_table. Update dependent calls and types.
18073
18074 * postreload-gcse.c (htab_t expr_table):
18075 Change type to hash_table. Update dependent calls and types.
18076 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
18077
18078 * sese.c (debug_rename_map_1): Make extern.
18079 (htab_t copy_bb_and_scalar_dependences::rename_map):
18080 Change type to hash_table. Update dependent calls and types.
18081
18082 * sese.h (extern debug_rename_map): Move to .c file.
18083
18084 * store-motion.c (htab_t store_motion_mems_table):
18085 Change type to hash_table. Update dependent calls and types.
18086
18087 * trans-mem.c (htab_t tm_new_mem_hash):
18088 Change type to hash_table. Update dependent calls and types.
18089
18090 * tree-browser.c (htab_t TB_up_ht):
18091 Change type to hash_table. Update dependent calls and types.
18092
18093 * tree-cfg.c (htab_t discriminator_per_locus):
18094 Change type to hash_table. Update dependent calls and types.
18095
18096 * tree-complex.c: Include tree-hasher.h
18097 (htab_t complex_variable_components):
18098 Change type to hash_table. Update dependent calls and types.
18099
18100 * tree-eh.c (htab_t finally_tree):
18101 Change type to hash_table. Update dependent calls and types.
18102
18103 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
18104 struct int_tree_hasher.
18105 (extern int_tree_map_eq): Likewise.
18106 (uid_decl_map_hash): Removed.
18107 (extern decl_tree_map_eq): Likewise.
18108
18109 * tree-hasher.h: New.
18110 (struct int_tree_hasher): New.
18111 (typedef int_tree_htab_type): New.
18112
18113 * tree-inline.c: Include gimplify-ctx.h.
18114
18115 * tree-mudflap.c: Include gimplify-ctx.h.
18116
18117 * tree-parloops.c: Include tree-hasher.h.
18118 (htab_t eliminate_local_variables_stmt::decl_address):
18119 Change type to hash_table. Update dependent calls and types.
18120 (htab_t separate_decls_in_region::decl_copies): Likewise.
18121
18122 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
18123 Change type to hash_table. Update dependent calls and types.
18124
18125 * tree-sra.c (candidates):
18126 Change type to hash_table. Update dependent calls and types.
18127
18128 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
18129 in tree-flow.h.
18130 (int_tree_map_hash): Likewise.
18131
18132 * tree-ssa-dom.c (htab_t avail_exprs):
18133 Change type to hash_table. Update dependent calls and types.
18134
18135 * tree-ssa-live.c (var_map_base_init::tree_to_index):
18136 Change type to hash_table. Update dependent calls and types.
18137
18138 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
18139 Change type to hash_table. Update dependent calls and types.
18140
18141 * tree-ssa-phiopt.c (seen_ssa_names):
18142 Change type to hash_table. Update dependent calls and types.
18143
18144 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
18145 Change type to hash_table. Update dependent calls and types.
18146
18147 * tree-ssa-uncprop.c (equiv):
18148 Change type to hash_table. Update dependent calls and types.
18149
c5a44004
JJ
181502013-04-25 Jakub Jelinek <jakub@redhat.com>
18151
18152 PR rtl-optimization/57003
18153 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
18154 call note_stores with kill_clobbered_value callback again after
18155 killing regs_invalidated_by_call.
18156
09962a4a
JG
181572013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18158
18159 * config/aarch64/aarch64-simd.md
18160 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
18161 (aarch64_simd_bsl<mode>): Likewise.
18162 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
18163
ea28bb0b
MP
181642013-04-25 Marek Polacek <polacek@redhat.com>
18165
18166 PR tree-optimization/57066
3c21604f 18167 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 18168
96659611
JG
181692013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
18170
18171 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
18172
9697e620
JG
181732013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18174
18175 * config/aarch64/aarch64-builtins.c
18176 (aarch64_fold_builtin): New.
18177 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
18178 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
18179 * config/aarch64/aarch64-simd-builtins.def (abs): New.
18180 * config/aarch64/arm_neon.h
18181 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
18182
0ac198d3
JG
181832013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18184 Tejas Belagod <tejas.belagod@arm.com>
18185
18186 * config/aarch64/aarch64-builtins.c
18187 (aarch64_gimple_fold_builtin): New.
18188 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
18189 * config/aarch64/aarch64-simd-builtins.def (addv): New.
18190 * config/aarch64/aarch64-simd.md (addpv4sf): New.
18191 (addvv4sf): Update.
18192 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
18193
58cff58c
N
181942013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18195
df93505e 18196 * config/aarch64/aarch64.md
58cff58c
N
18197 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
18198
7e0228bf
N
181992013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18200
18201 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
18202 (*ngcsi_uxtw): New pattern.
18203
5819f96f 182042013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 18205 Julian Brown <julian@codesourcery.com>
5819f96f
KT
18206
18207 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
18208 (TB_DREG): Add T_V4HF.
18209 (v4hf_UP): New macro.
18210 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 18211 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
18212 Handle initialisation of V4HF. Adjust initialisation of reinterpret
18213 built-ins.
df93505e 18214 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
18215 (arm_vector_mode_supported_p): Handle V4HF.
18216 (arm_mangle_map): Handle V4HFmode.
18217 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
18218 * config/arm/arm_neon_builtins.def: Add entries for
18219 vcvtv4hfv4sf, vcvtv4sfv4hf.
18220 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
18221 (neon_vcvtv4hfv4sf): Likewise.
18222 * config/arm/neon-gen.ml: Handle half-precision floating point
18223 features.
18224 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
18225 * config/arm/arm_neon.h: Regenerate.
18226 * config/arm/neon.ml (type elts): Add F16.
18227 (type vectype): Add T_float16x4, T_floatHF.
18228 (type vecmode): Add V4HF.
18229 (type features): Add Requires_FP_bit feature.
18230 (elt_width): Handle F16.
18231 (elt_class): Likewise.
18232 (elt_of_class_width): Likewise.
18233 (mode_of_elt): Refactor.
18234 (type_for_elt): Handle F16, fix error messages.
18235 (vectype_size): Handle T_float16x4.
18236 (vcvt_sh): New function.
18237 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
18238 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
18239 (string_of_mode): Handle V4HF.
18240 * doc/arm-neon-intrinsics.texi: Regenerate.
18241
1ef395e4
JG
182422013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18243
18244 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
18245 format specifier in 'X' case.
18246
41c34e94
AM
182472013-04-25 Alan Modra <amodra@gmail.com>
18248
18249 PR target/57052
18250 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
18251 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
18252 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
18253 Repeat for many other rotate/shift and mask patterns using subregs.
18254 Name lshiftrt insns.
18255 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
18256 on WORDS_BIG_ENDIAN.
18257
b9a7eb5d
AM
182582013-04-25 Alan Modra <amodra@gmail.com>
18259
18260 * config.gcc: Support little-endian powerpc-linux targets.
18261 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
18262 (LINK_OS_LINUX_SPEC): Define.
18263 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
18264 Preserve MASK_LITTLE_ENDIAN.
18265 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
18266 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
18267 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
18268 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
18269 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
18270 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
18271 Correct fp word order for little-endian. Don't shift toc entries
18272 smaller than a word for little-endian.
18273 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
18274 (bswapdi2 splits): Correct low-part subreg for little-endian.
18275 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
18276 low/high where such is correct only for be.
18277 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
18278 little-endian for -mcall-aixdesc.
18279
87f73374
AM
182802013-04-25 Alan Modra <amodra@gmail.com>
18281
18282 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
18283 replace_equiv_address_nv.
18284
cabf91cd
AM
182852013-04-25 Alan Modra <amodra@gmail.com>
18286
18287 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
18288
0ae24cc8
VM
182892013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18290
18291 Revert:
18292 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18293 * rtl.h (struct rtx_def): ...
cabf91cd 18294
77bce07c
VM
182952013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18296
18297 PR rtl-optimizations/57046
18298 * lra-constraints (split_reg): Set up lra_risky_transformations_p
18299 for multi-reg splits.
18300
0db63e7f
L
183012013-04-24 H.J. Lu <hongjiu.lu@intel.com>
18302
18303 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
18304
3362b6b6
SA
183052013-04-24 Sterling Augustine <saugustine@google.com>
18306
18307 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
18308 (comp_dir_string, debug_str_dwo_section): New.
18309 (DEBUG_STR_DWO_SECTION): Rename to ...
18310 (DEBUG_DWO_STR_SECTION): ... this.
18311 (DEBUG_NORM_STR_SECTION): Delete.
18312 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
18313 (DEBUG_STR_DWO_SECTION_FLAGS): New.
18314 (find_AT_string): Move most logic to ...
18315 (find_AT_string_in_table): ... here. New.
18316 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
18317 add_skeleton_AT_string. Delete logic.
18318 (output_skeleton_debug_sections): Remove call to
18319 add_top_level_skeleton_die_attrs.
18320 (add_comp_dir_attribute): Move logic to comp_dir_string.
18321 (dwarf2out_init): Initialize debug_str_dwo_section.
18322 (output_indirect_string): Call find_string_form.
18323 (output_indirect_strings): Rewrite.
18324 (prune_unused_types): Empty skeleton_debug_str_hash.
18325 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
18326 (dwarf2out_finish): Call output_indirect_strings.
18327
e93e18e9
PC
183282013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
18329
18330 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
18331
f6ce35ac
VM
183322013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18333
cabf91cd 18334 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
18335 (LRA_SUBREG_P): New macro.
18336 * recog.c (register_operand): Check LRA_SUBREG_P.
18337 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18338 stack frame.
18339 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18340 (lra_final_code_change): Skip subreg change for operators.
18341 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18342 if there are no operand changes.
18343 * lra-constraints.c (curr_insn_set): New.
18344 (match_reload): Set LRA_SUBREG_P.
18345 (emit_spill_move): Ditto.
18346 (check_and_process_move): Use curr_insn_set. Process only single
18347 set insns. Don't initialize sec_mem_p and change_p.
18348 (simplify_operand_subreg): Use LRA_SUBREG_P.
18349 (reg_in_class_p): New function.
18350 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18351 of #ifdef. Add code to remove cycling.
18352 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18353 non-null disp. Reload inner instead of disp when base and index
18354 are null. Try to put lo_sum into register.
18355 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 18356 (check_and_process_move): Move code for move cost check to
f6ce35ac 18357 simple_move_p. Remove equiv_substitution.
cabf91cd 18358 (simple_move_p): New function.
f6ce35ac
VM
18359 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18360 curr_insn_set. Call check_and_process_move only for single set
18361 insns. Use the new function. Move call of check_and_process_move
18362 after operand equiv substitution and address process.
18363
38047d90
JG
183642013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
18365
18366 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
18367 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
18368 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
18369
13f39b2e
PC
183702013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
18371
18372 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
18373
97c116dc
MP
183742013-04-24 Marek Polacek <polacek@redhat.com>
18375
18376 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
18377 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
18378 (select_loops_exit_conditions): Likewise.
18379 (number_of_iterations_for_all_loops): Likewise.
18380 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
18381 (scev_analysis): Likewise.
18382
83082391 183832013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 18384 Chao-ying Fu <fu@mips.com>
83082391 18385
cabf91cd
AM
18386 * config/mips/micromips.md (jraddiusp): New pattern.
18387 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
18388 instruction if possible.
83082391 18389
19e34aa2
AM
183902013-04-24 Alan Modra <amodra@gmail.com>
18391
18392 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
18393
fdb6603c
JB
183942013-04-24 Julian Brown <julian@codesourcery.com>
18395 Chung-Lin Tang <cltang@codesourcery.com>
18396
18397 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
18398 dependency behavior in enumeration type DIE generation. Add TODO note
18399 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 18400
bf190e8d
LC
184012013-04-23 Lawrence Crowl <crowl@google.com>
18402
18403 * Makefile.in: Update as needed below.
18404
18405 * hash-table.h (class hash_table):
18406 Correct many methods with parameter types compare_type to the correct
18407 value_type. (Correct code was unlikely to notice the change.)
18408 (hash_table::elements_with_deleted) New.
18409 (class hashtable::iterator): New.
18410 (hashtable::begin()): New.
18411 (hashtable::end()): New.
18412 (FOR_EACH_HASH_TABLE_ELEMENT): New.
18413
18414 * statistics.c (statistics_hashes):
18415 Change type to hash_table. Update dependent calls and types.
18416
18417 * tree-into-ssa.c (var_infos):
18418 Change type to hash_table. Update dependent calls and types.
18419
18420 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
18421 Change type to hash_table. Update dependent calls and types.
18422
18423 * tree-ssa-loop-im.c (struct mem_ref.refs):
18424 Change type to hash_table. Update dependent calls and types.
18425
18426 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
18427 Change type to hash_table. Update dependent calls and types.
18428
18429 * tree-ssa-sccvn.c (vn_tables_s::nary):
18430 Change type to hash_table. Update dependent calls and types.
18431 (vn_tables_s::phis): Likewise.
18432 (vn_tables_s::references): Likewise.
18433
18434 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
18435 (vn_reference_eq): Update parameter and return types.
18436
18437 * tree-ssa-structalias.c (pointer_equiv_class_table):
18438 Change type to hash_table. Update dependent calls and types.
18439 (location_equiv_class_table): Likewise.
18440
18441 * tree-vect-data-refs.c: Consequential changes for making
18442 peeling a hash_table.
18443
18444 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
18445 (destroy_loop_vec_info): Dependent hash_table update.
18446
18447 * tree-vectorizer.h (peeling_htab):
18448 Change type to hash_table. Update dependent calls and types.
18449
d70a81dd
SC
184502013-04-23 Shiva Chen <shiva0217@gmail.com>
18451
cabf91cd
AM
18452 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
18453 to check the register content is equal or not.
18454 * lra-constraints.c (match_reload): Use lra_assign_reg_val
18455 to assign register content record.
18456 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 18457 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
18458 * lra-int.h (struct lra_reg): Add offset member.
18459 (lra_reg_val_equal_p): New static inline function.
18460 (lra_update_reg_val_offset): New static inline function.
18461 (lra_assign_reg_val): New static inline function.
18462 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
18463 to assign register content record.
18464 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 18465
b894a1f3
CM
184662013-04-23 Catherine Moore <clm@codesourcery.com>
18467
18468 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
18469 operands. Record compression.
18470
ecd14de9
XDL
184712013-04-23 Xinliang David Li <davidxl@google.com>
18472
18473 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
18474
92e776e9
RB
184752013-04-23 Richard Biener <rguenther@suse.de>
18476
18477 PR middle-end/57036
18478 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
18479 parameter, only add abnormal goto edges from the copied body
18480 if the call could perform abnormal gotos.
18481 (copy_cfg_body): Adjust.
18482
a15ee567
SN
184832013-04-23 Sofiane Naci <sofiane.naci@arm.com>
18484
18485 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
18486
08c52234
AS
184872013-04-23 Andreas Schwab <schwab@linux-m68k.org>
18488
18489 * coretypes.h (gimple_stmt_iterator): Add struct to make
18490 compatible with C.
18491
999c1171
RB
184922013-04-23 Richard Biener <rguenther@suse.de>
18493
18494 PR tree-optimization/57026
18495 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
18496 from SSA names occuring in abnormal PHI nodes.
18497
53669259
AK
184982013-04-22 Andi Kleen <ak@linux.intel.com>
18499
18500 * lto/lto.c (print_lto_report_1): Fix LTO report names.
18501
1a0ad150
AK
185022013-04-22 Andi Kleen <ak@linux.intel.com>
18503
18504 * lto/lto.c (print_lto_report_1): Declare early.
18505 (read_cgraph_and_symbols): Call print_lto_report_1 early.
18506
057f8f20
AK
185072013-04-22 Andi Kleen <ak@linux.intel.com>
18508
18509 * common.opt (-flto-report-wpa): Add.
18510 * doc/invoke.texi (-flto-report-wpa): Add.
18511 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
18512 (lto_main): dito.
18513
473b1e05
XDL
185142013-04-22 Xinliang David Li <davidxl@google.com>
18515
18516 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
18517 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
18518 * Makefile.in: New dependency
18519
cabf91cd 18520 David Daney <ddaney.cavm@gmail.com>
b1485a33 18521
cabf91cd
AM
18522 * configure.ac (gcc_cv_as_micromips_support): Use the
18523 --fatal-warnings option.
18524 * configure: Regenerate.
b1485a33 18525
829d0168
MP
185262013-04-22 Marek Polacek <polacek@redhat.com>
18527
18528 PR sanitizer/56990
18529 * tsan.c (instrument_expr): Don't instrument expression
18530 in case its size is zero.
18531
6d9b7208
UB
185322013-04-22 Uros Bizjak <ubizjak@gmail.com>
18533
18534 PR target/57032
18535 Revert:
18536 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
18537
18538 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18539
ea679d55
JG
185402013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18541
18542 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
18543 (gimple_stmt_iterator): New typedef.
18544 * gimple.h (gimple_stmt_iterator): Rename to...
18545 (gimple_stmt_iterator_d): ... This.
18546 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
18547 trees be valid for GIMPLE and GENERIC.
18548 (TARGET_GIMPLE_FOLD_BUILTIN): New.
18549 * gimple-fold.c (gimple_fold_call): Call target hook
18550 gimple_fold_builtin.
18551 * hooks.c (hook_bool_gsiptr_false): New.
18552 * hooks.h (hook_bool_gsiptr_false): New.
18553 * target.def (fold_stmt): New.
18554 * doc/tm.texi: Regenerate.
18555
88a581da
VM
185562013-04-22 Vladimir Makarov <vmakarov@redhat.com>
18557
18558 PR target/57018
18559 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
18560 a set sp if no stack realignment.
18561
92be22dc
NC
185622013-04-22 Nick Clifton <nickc@redhat.com>
18563
18564 * config.gcc (tilegx-linux): Extend extra_objs rather than
18565 overwriting it.
18566 (tilepro-linux): Likewise.
18567
0ddec79f
JG
185682013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18569
18570 * config/aarch64/aarch64-builtins.c
18571 (CF): Remove.
18572 (CF0, CF1, CF2, CF3, CF4, CF10): New.
18573 (VAR<1-12>): Add MAP parameter.
18574 (BUILTIN_*): Likewise.
18575 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
18576 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
18577 (aarch64_ushl_n<mode>): Likewise.
18578 (aarch64_sshr_n<mode>): Likewise.
18579 (aarch64_ushr_n<mode>): Likewise.
18580 (aarch64_<maxmin><mode>): Likewise.
18581 (aarch64_sqrt<mode>): Likewise.
18582 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
18583 (vshr<q>_n_*): Likewise.
18584
0050faf8
JG
185852013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18586
18587 * config/aarch64/aarch64-builtins.c
18588 (aarch64_simd_builtin_type_mode): Handle SF types.
18589 (sf_UP): Define.
18590 (BUILTIN_GPF): Define.
18591 (aarch64_init_simd_builtins): Handle SF types.
18592 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
18593 (frecps): Likewise.
18594 (frecpx): Likewise.
18595 * config/aarch64/aarch64-simd.md
18596 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
18597 (aarch64_frecpe<mode>): New.
18598 (aarch64_frecps<mode>): Likewise.
18599 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
18600 (v8type): Add frecp<esx>.
18601 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
18602 (aarch64_frecps<mode>): Likewise.
18603 * config/aarch64/iterators.md (FRECP): New.
18604 (frecp_suffix): Likewise.
18605 * config/aarch64/arm_neon.h
18606 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
18607
0fad3dbc 186082013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
18609
18610 PR target/56995
18611 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
18612 (REG_CLASS_NAMES): Idem.
18613 (REG_CLASS_CONTENTS): Idem.
18614 (REGCLASS_HAS_FP_REG): Idem.
18615 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
18616 (sh_conditional_register_usage): Idem.
18617
3e8a33f9
JL
186182013-04-21 Jeff Law <law@redhat.com>
18619
18620 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
18621 (ssa_forward_propagate_and_combine): Use it.
18622
f38e1b0a
VM
186232013-04-19 Vladimir Makarov <vmakarov@redhat.com>
18624
18625 * lra.c: Update the flow chart diagram.
18626
682303da
VM
186272013-04-19 Vladimir Makarov <vmakarov@redhat.com>
18628
18629 PR rtl-optimization/56847
18630 * lra-constraints.c (process_alt_operands): Discourage alternative
18631 with non-matche doffsettable memory constraint fro memory with
18632 known offset.
18633
f6b64c35
RB
186342013-04-19 Richard Biener <rguenther@suse.de>
18635
18636 PR tree-optimization/56982
18637 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
18638 function.
18639 * gimplify.c (gimplify_call_expr): Notice special calls.
18640 (gimplify_modify_expr): Likewise.
18641 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
18642 abnormal control flow receivers.
18643 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
18644 in the same way as cfun->has_nonlocal_labels.
18645 (gimple_purge_dead_abnormal_call_edges): Likewise.
18646 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
18647 receivers start a basic-block.
18648
01d8bf07
RB
186492013-04-19 Richard Biener <rguenther@suse.de>
18650
18651 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
18652 member ...
18653 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
18654 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
18655 (SLP_TREE_LOAD_PERMUTATION): Add.
18656 (vect_transform_slp_perm_load): Adjust prototype.
18657 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
18658 (vect_free_slp_instance): Likewise.
18659 (vect_create_new_slp_node): Likewise.
18660 (vect_supported_slp_permutation_p): Remove.
18661 (vect_slp_rearrange_stmts): Adjust.
18662 (vect_supported_load_permutation_p): Likewise. Inline
18663 vect_supported_slp_permutation_p here.
18664 (vect_analyze_slp_instance): Compute load permutations per
18665 slp node instead of per instance.
18666 (vect_get_slp_defs): Adjust.
18667 (vect_transform_slp_perm_load): Likewise.
18668 (vect_schedule_slp_instance): Remove redundant code.
18669 (vect_schedule_slp): Remove hack for PR56270, add it ...
18670 * tree-vect-stmts.c (vectorizable_load): ... here, do not
18671 CSE loads for SLP. Adjust.
18672
ede22fc3
GY
186732013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
18674
18675 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
18676 spelling in two comments.
18677
67bc84fb
GY
186782013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
18679
18680 PR target/56797
18681 * config/arm/arm.c (load_multiple_sequence): Require SP
18682 as base register for loads if SP is in the register list.
18683
e248d83f
MJ
186842013-04-19 Martin Jambor <mjambor@suse.cz>
18685
18686 PR tree-optimization/56718
18687 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
18688 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
18689 and made public. Adjusted all callers.
18690 (ipa_intraprocedural_devirtualization): New function.
18691 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
18692 (ipa_intraprocedural_devirtualization): Likewise.
18693 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
18694
4891e8f8
RB
186952013-04-19 Richard Biener <rguenther@suse.de>
18696
18697 PR tree-optimization/57000
18698 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
18699
dad89f7c
TG
187002013-04-19 Terry Guo <terry.guo@arm.com>
18701
18702 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
18703 Replace with ...
18704 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
18705 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
18706 (cortex_m4_fmacs): Use new reservations.
18707 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
18708
72ea0d47
VM
187092013-04-18 Vladimir Makarov <vmakarov@redhat.com>
18710
f1e6512c 18711 PR rtl-optimization/56999
72ea0d47
VM
18712 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
18713 related code.
18714 (lra_coalesce): Remove split_origin_bitmap and related code.
18715 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
18716 ranges if necessary.
18717
780a5b71
UB
187182013-04-18 Uros Bizjak <ubizjak@gmail.com>
18719
18720 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
18721 New array.
18722 (ix86_expand_call): Remove clobbered_registers array and use
18723 x86_64_ms_sysv_extra_clobbered_registers instead.
18724 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
18725 Declare here.
18726 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
18727 predicate.
18728 * config/i386/i386.md (*call_rex64_ms_sysv): Use
18729 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
18730 (*call_value_rex64_ms_sysv): Ditto.
18731
6f5a366a
CC
187322013-04-18 Cary Coutant <ccoutant@google.com>
18733
18734 * dwarf2out.c (output_pubnames): Check die_perennial_p of
18735 parent instead of die_mark.
18736
475b8f37
DN
187372013-04-18 Diego Novillo <dnovillo@google.com>
18738
18739 * gimple.c (create_gimple_tmp): New.
18740 (get_expr_type): New.
18741 (build_assign): New.
18742 (build_type_cast): New.
18743 * gimple.h (enum ssa_mode): Define.
18744 (gimple_seq_set_location): New.
18745 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 18746 to use build_assign and build_type_cast.
475b8f37 18747
08940f33
RB
187482013-04-18 Richard Biener <rguenther@suse.de>
18749
18750 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
18751 handle negative step. Remove redundant checks.
18752 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
18753 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
18754 for negative step and grouped loads fail to vectorize.
18755
0e0f87d4
SB
187562013-04-18 Steven Bosscher <steven@gcc.gnu.org>
18757
18758 * emit-rtl.c (reset_insn_used_flags): New function.
18759 (reset_all_used_flags): Use it.
18760 (verify_insn_sharing): New function.
18761 (verify_rtl_sharing): Fix verification for SEQUENCEs.
18762
4c445590
JJ
187632013-04-18 Jakub Jelinek <jakub@redhat.com>
18764
18765 PR tree-optimization/56984
18766 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
18767 and (x >> M) >= N don't register any assertion if N << M is the
18768 minimum value.
18769
6873ecab
SB
187702013-04-18 Steven Bosscher <steven@gcc.gnu.org>
18771
18772 * lower-subreg.c (resolve_simple_move): If called self-recursive,
18773 do not delete_insn insns that have not yet been emitted, only
18774 unlink them with remove_insn.
18775 * df-scan.c (df_insn_delete): Revert r197492.
18776
3ccb989e
SB
187772013-04-17 Steven Bosscher <steven@gcc.gnu.org>
18778
18779 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
18780 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
18781
187822013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
18783
18784 * config/arm/arm.md (movsicc_insn): Convert define_insn into
18785 define_insn_and_split.
18786 (and_scc,ior_scc,negscc): Likewise.
18787 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
18788
3ccb989e 187892013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
18790
18791 * config/arm/arm.c (use_return_insn): Return 0 for targets that
18792 can benefit from using a sequence of LDRD instructions in epilogue
18793 instead of a single LDM instruction.
18794
6d10a203
MLI
187952013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
18796
18797 PR 45688
18798 * doc/extend.texi: Fix typo.
18799
6983e6b5
RB
188002013-04-17 Richard Biener <rguenther@suse.de>
18801
18802 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
18803 (vect_build_slp_tree): ... here.
18804 (vect_build_slp_tree_1): Compute which stmts of the SLP group
18805 match. Remove special-casing of mismatched complex loads.
18806 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
18807 re-try the match with swapped commutative operands.
18808 (vect_supported_load_permutation_p): Remove special-casing of
18809 mismatched complex loads.
18810 (vect_analyze_slp_instance): Adjust.
18811
ef23e6a2
RB
188122013-04-17 Richard Biener <rguenther@suse.de>
18813
18814 PR rtl-optimization/56921
18815 * cfgloop.h (struct loop): Add simple_loop_desc member.
18816 (struct niter_desc): Mark with GTY(()).
18817 (simple_loop_desc): Do not use aux field but simple_loop_desc.
18818 * loop-iv.c (get_simple_loop_desc): Likewise.
18819 (free_simple_loop_desc): Likewise.
18820
18821 Revert
18822 2013-04-16 Richard Biener <rguenther@suse.de>
18823
18824 PR rtl-optimization/56921
18825 * loop-init.c (pass_rtl_move_loop_invariants): Add
18826 TODO_do_not_ggc_collect to todo_flags_finish.
18827 (pass_rtl_unswitch): Same.
18828 (pass_rtl_unroll_and_peel_loops): Same.
18829 (pass_rtl_doloop): Same.
18830
fc6f94f5
EB
188312013-04-17 Eric Botcazou <ebotcazou@adacore.com>
18832
18833 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
18834 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
18835 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
18836 references.
18837 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
18838 * tree-streamer.c (record_common_node): Adjust reference in comment.
18839
10a88311
TG
188402013-04-17 Terry Guo <terry.guo@arm.com>
18841
18842 * config/arm/cortex-m4.md: Add a new bypass.
18843
6d9b7208 188442013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
18845
18846 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
18847 New pattern.
18848 (*subs_<optab><mode>_multp2): New pattern.
18849 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
18850 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
18851
6d9b7208 188522013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
18853
18854 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
18855 (*subs_mul_imm_<mode>): New pattern.
18856
18a6701e
DE
188572013-04-16 David Edelsohn <dje.gcc@gmail.com>
18858
18859 PR target/56948
18860 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
18861 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
18862 (vsx_movti_32bit): Change j->wa to O->wa.
18863
07c37b2f
RB
188642013-04-16 Richard Biener <rguenther@suse.de>
18865
18866 PR rtl-optimization/56921
18867 * loop-init.c (pass_rtl_move_loop_invariants): Add
18868 TODO_do_not_ggc_collect to todo_flags_finish.
18869 (pass_rtl_unswitch): Same.
18870 (pass_rtl_unroll_and_peel_loops): Same.
18871 (pass_rtl_doloop): Same.
18872
0e0f87d4 188732013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
18874
18875 * config/arm/arm.c (emit_multi_reg_push): New declaration
18876 for an existing function.
18877 (arm_emit_strd_push): New function.
18878 (arm_expand_prologue): Used here.
18879 (arm_emit_ldrd_pop): New function.
18880 (arm_expand_epilogue): Used here.
18881 (arm_get_frame_offsets): Update condition.
18882 (arm_emit_multi_reg_pop): Add a special case for load of a single
18883 register with writeback.
18884
5e8e2af4
UB
188852013-04-16 Uros Bizjak <ubizjak@gmail.com>
18886
18887 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
18888 description.
18889
9fd9ccf7
RB
188902013-04-16 Richard Biener <rguenther@suse.de>
18891
18892 PR tree-optimization/56756
18893 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
18894 (first_mem_ref_loc): New.
18895 (execute_sm): Place the load temporarily before a previous
18896 access instead of in the latch edge to ensure its SSA dependencies
18897 are defined at points dominating the load.
18898
96fba521
SB
188992013-04-16 Steven Bosscher <steven@gcc.gnu.org>
18900
4c8af858
SB
18901 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
18902 correct fix by moving header and footer insn to the footer of
18903 the merged basic block. Clear BB_END of the merged-away block.
18904
96fba521
SB
18905 PR middle-end/43631
18906 * emit-rtl.c (make_note_raw): New function.
18907 (link_insn_into_chain): New static inline function.
18908 (add_insn): Use it.
18909 (add_insn_before, add_insn_after): Factor insn chain linking code...
18910 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
18911 using link_insn_into_chain.
18912 (note_outside_basic_block_p): New helper function for emit_note_after
18913 and emit_note_before.
18914 (emit_note_after): Use nobb variant of add_insn_after if the note
18915 should not be contained in a basic block.
18916 (emit_note_before): Use nobb variant of add_insn_before if the note
18917 should not be contained in a basic block.
18918 (emit_note_copy): Use make_note_raw.
18919 (emit_note): Likewise.
18920 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
18921 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
18922 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
18923 the moved barrier the tail of the basic block it follows.
18924 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
18925
7b8265ba
JJ
189262013-04-15 Jakub Jelinek <jakub@redhat.com>
18927
18928 PR tree-optimization/56962
18929 * gimple-ssa-strength-reduction.c (record_increment): Only set
18930 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
18931 either rhs1 or rhs2 is equal to c->base_expr.
18932
5185d248
RB
189332013-04-15 Richard Biener <rguenther@suse.de>
18934
18935 PR tree-optimization/56933
18936 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
18937 member.
18938 (GROUP_READ_WRITE_DEPENDENCE): Remove.
18939 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
18940 * tree-vect-data-refs.c (vect_analyze_group_access): Move
18941 dependence check ...
18942 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
18943 ... here.
18944 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
18945 GROUP_READ_WRITE_DEPENDENCE.
18946
a24243a0
AK
189472013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18948
18949 * emit-rtl.c (reset_all_used_flags): New function.
18950 (verify_rtl_sharing): Call reset_all_used_flags before and after
18951 performing the checks.
18952
1c50eada
KT
189532013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18954
18955 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
18956 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
18957 * config/arm/constraints.md (De): New constraint.
18958 * config/arm/neon.md (anddi3_neon): Delete.
18959 (neon_vand<mode>): Expand to standard anddi3 pattern.
18960 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
18961 Move earlier in the file.
18962 (neon_inv_logic_op2): Likewise.
18963 (arm_anddi_operand_neon): New predicate.
18964
e927b6ad
RO
189652013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18966
18967 * configure.ac (gcc_cv_ld_as_needed): Set
18968 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
18969 Use -z ignore, -z record on *-*-solaris2*.
18970 (HAVE_LD_AS_NEEDED): Update comment.
18971 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
18972 * configure: Regenerate.
18973 * config.in: Regenerate.
18974 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
18975 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
18976 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
18977 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
18978 equivalents. Fix markup.
18979 * doc/tm.texi: Regenerate.
18980
e0ea8797
AH
189812013-04-15 Andrew Hsieh <andrewhsieh.google.com>
18982
18983 * config/i386/i386.opt: New option mstack-protector-guard=.
18984 * config/i386/i386-opts.h: Add enum stack_protector_guard.
18985 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
18986 TARGET_SSP_TLS_GUARD.
18987 * config/i386/i386.c (ix86_option_override_internal): Set
18988 ix86_stack_protector_guard.
18989 * config/i386/i386.md (stack_protect_set): Enable for
18990 TARGET_SSP_TLS_GUARD only.
18991 (stack_protect_set_<mode>): Ditto.
18992 (stack_protect_test): Ditto.
18993 (stack_protect_test_<mode>): Ditto.
18994 * doc/invoke.texi (i386 Option): Document.
18995
811b72f9
EB
189962013-04-15 Eric Botcazou <ebotcazou@adacore.com>
18997
18998 PR target/56890
18999 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
19000 (S_MODES): Set H_MODE bit.
19001 (SF_MODES): Set only S_MODE and SF_MODE bits.
19002 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
19003 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
19004 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
19005 <MODE_FLOAT>: Likewise.
19006
5529fdd6
JY
190072013-04-15 Joey Ye <joey.ye@arm.com>
19008
19009 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
19010
517b1da2
JY
190112013-04-15 Joey Ye <joey.ye@arm.com>
19012
19013 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
19014 for real far jump.
19015 (thumb_far_jump_used_p): Count instruction size and set
19016 far_jump_used.
19017
01007ae0
EB
190182013-04-14 Eric Botcazou <ebotcazou@adacore.com>
19019
19020 * reorg.c (fill_simple_delay_slots): Reindent block of code.
19021 * resource.c (mark_target_live_regs): Reformat conditional block.
19022
c46f6580
SB
190232013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19024
19025 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
19026 notes, they are emitted only just before final.
19027 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
19028
1f397f45
SB
190292013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19030
19031 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
19032 * cfgrtl.c (delete_insn): Call it here instead.
19033 * lra-spills.c (lra_final_code_change): Use delete_insn.
19034 * haifa-sched.c (sched_remove_insn): Likewise.
19035 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
19036 returning to the nop pool.
19037 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
19038 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
19039
58a51369
SB
190402013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19041
19042 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
19043 * doc/tm.texi: Regenerated.
19044
33159866
UB
190452013-04-12 Uros Bizjak <ubizjak@gmail.com>
19046
19047 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
19048 QImode checks.
19049
226e378f
SB
190502013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19051
19052 * df-core.c (df_find_def): Compare register numbers.
19053 (df_find_use): Likewise.
19054
fafb9b18
VM
190552013-04-12 Vladimir Makarov <vmakarov@redhat.com>
19056
19057 PR target/56903
19058 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
19059 lra_in_progress for return.
19060
9a946fd6
GY
190612013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19062
19063 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
19064 define_insn into define_insn_and_split and emit movsicc patterns.
19065
41b83758
GY
190662013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19067
19068 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
19069
d3afd9aa
RB
190702013-04-12 Richard Biener <rguenther@suse.de>
19071
19072 * tree-pass.h (TODO_do_not_ggc_collect): New.
19073 * passes.c (execute_one_ipa_transform_pass): Honor
19074 TODO_do_not_ggc_collect.
19075 (execute_one_pass): Likewise.
19076
19077 Revert
19078 2013-04-10 Richard Biener <rguenther@suse.de>
19079
19080 * passes.c (init_optimization_passes): Remove reload pass.
19081 * ira.c (do_reload): Merge into ...
19082 (ira): ... this.
19083 (rest_of_handle_reload): Remove.
19084 (pass_reload): Likewise.
19085 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19086 of reload for vzeroupper pass placement.
19087
06f9b387
JJ
190882013-04-12 Jakub Jelinek <jakub@redhat.com>
19089
19090 PR tree-optimization/56918
19091 PR tree-optimization/56920
19092 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
19093 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
19094 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
19095 use wide_mul_with_sign method.
19096
953094d2
RB
190972013-04-12 Richard Biener <rguenther@suse.de>
19098
19099 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
19100 not be considered a gimple constant.
19101
bb506982
MG
191022013-04-12 Marc Glisse <marc.glisse@inria.fr>
19103
19104 * fold-const.c (const_binop): Handle vector shifts by a scalar.
19105 (fold_binary_loc): Call const_binop also for mixed vector-scalar
19106 operations.
19107
4b84d650
JJ
191082013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
19109 Jakub Jelinek <jakub@redhat.com>
19110
19111 * opts.c: Include diagnostic-color.h.
19112 (common_handle_option): Handle OPT_fdiagnostics_color_.
19113 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
19114 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
19115 (diagnostic-color.o): New.
19116 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
19117 (diagnostic_color_rule): New enum.
19118 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
19119 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
19120 the location string.
19121 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
19122 either NULL, or color kind.
19123 * diagnostic-color.c: New file.
19124 * diagnostic-color.h: New file.
19125 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
19126 arguments.
19127 * doc/invoke.texi (-fdiagnostics-color): Document.
19128 * pretty-print.h (pp_show_color): Define.
19129 (struct pretty_print_info): Add show_color field.
19130 * diagnostic.c: Include diagnostic-color.h.
19131 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
19132 macros. Colorize error:, warning: etc. strings and also the location
19133 string.
19134 (diagnostic_show_locus): Colorize the caret line.
19135 * pretty-print.c: Include diagnostic-color.h.
19136 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
19137 inside of %< %> quotes or quoted through q format modifier.
19138
067a1e71
AK
191392013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19140
33159866 19141 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 19142
33159866 191432013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
19144
19145 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
19146 code in CC_NZ mode.
19147 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
19148 pattern.
19149
7b55f98f
MP
191502013-04-11 Marek Polacek <polacek@redhat.com>
19151
19152 PR tree-optimization/48184
33159866 19153 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 19154
966b587e
EB
191552013-04-11 Eric Botcazou <ebotcazou@adacore.com>
19156
19157 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
19158 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
19159 (skip_simple_arithmetic): Tidy up.
19160 * tree.h (skip_simple_constant_arithmetic): Declare.
19161
33159866 191622013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
19163
19164 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
19165
1d42c1ec
RB
191662013-04-11 Richard Biener <rguenther@suse.de>
19167
19168 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19169 generate vector constants.
19170
4ba5ea11
RB
191712013-04-11 Richard Biener <rguenther@suse.de>
19172
19173 PR tree-optimization/56878
19174 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
19175 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
19176 New function.
19177 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19178 Prefer to align the DR with the most invariant base address.
19179
f0defe58
SKS
191802013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19181
19182 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
19183 comment.
19184
d07458be
JG
191852013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19186
19187 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
19188 floating-point vector comparisons against 0.
19189
146b8692
JJ
191902013-04-11 Jakub Jelinek <jakub@redhat.com>
19191
19192 PR tree-optimization/56899
19193 * fold-const.c (extract_muldiv_1): Apply distributive law
19194 only if TYPE_OVERFLOW_WRAPS (ctype).
19195
b8578ff7
BC
191962013-04-11 Bin Cheng <bin.cheng@arm.com>
19197
19198 PR target/56124
19199 * ira-costs.c (scan_one_insn): Check whether the source rtx of
19200 loading has side effect.
19201
0ea8a6f9
SB
192022013-04-10 Steven Bosscher <steven@gcc.gnu.org>
19203
19204 * config/sparc/sparc.c: Include tree-pass.h.
19205 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
19206 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
19207 head of file. Change return type. Split off gate function.
19208 (sparc_gate_work_around_errata): New function.
19209 (pass_work_around_errata): New pass definition.
19210 (insert_pass_work_around_errata) New pass insert definition to
19211 insert pass_work_around_errata just after delayed-branch scheduling.
19212 (sparc_option_override): Insert the pass.
19213 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
19214
42e37616
DM
192152013-04-10 David S. Miller <davem@davemloft.net>
19216
89deeb3b
DM
19217 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
19218 or -mcpu=hypersparc.
19219
42e37616
DM
19220 * target.def (cstore_mode): New hook.
19221 * target.h: Include insn-codes.h
19222 * targhooks.c: Likewise.
19223 (default_cstore_mode): New function.
19224 * targhooks.h: Declare it.
19225 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
19226 * doc/tm.texi: Rebuild.
19227 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
19228 target hook, rather than inspecting the insn_data.
19229 * config/sparc/sparc.c (sparc_cstore_mode): New function.
19230 (TARGET_CSTORE_MODE): Redefine.
19231 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
19232 result patterns.
19233 * config/sparc/predicates.md (cstore_result_operand): New special
19234 predicate.
19235 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
19236 Use it for operand 0.
19237 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
19238 (*snesi_special): Likewise.
19239 (*snesi_zero): Likewise.
19240 (*seqsi_zero): Likewise.
19241 (*sltu_insn): Likewise.
19242 (*sgeu_insn): Likewise.
19243 (*seqdi_special): Make operand 0 and comparison operation be of
19244 DImode.
19245 (*snedi_special): Likewise.
19246 (*snedi_special_vis3): Likewise.
19247 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
19248 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
19249 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
19250 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
19251 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
19252 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
19253 (*sltu_extend_sp64): Likewise.
19254 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
19255 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
19256 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
19257 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
19258 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
19259
95ca411e
YZ
192602013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
19261
19262 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
19263 (aarch64_start_file): Use the new function.
19264
6782438d 192652013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 19266 Jason Merrill <jason@redhat.com>
6782438d
SKS
19267
19268 * common.opt: Add -gdwarf.
19269 * opts.c (common_handle_option): Handle it.
19270 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
19271
bb313b93
RB
192722013-04-10 Richard Biener <rguenther@suse.de>
19273
19274 * passes.c (execute_todo): Do not call ggc_collect conditional here.
19275 (execute_one_ipa_transform_pass): But unconditionally here.
19276 (execute_one_pass): And here.
19277 (init_optimization_passes): Remove reload pass.
19278 * tree-pass.h (TODO_ggc_collect): Remove.
19279 (pass_reload): Likewise.
19280 * ira.c (do_reload): Merge into ...
19281 (ira): ... this.
19282 (rest_of_handle_reload): Remove.
19283 (pass_reload): Likewise.
19284 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19285 of reload for vzeroupper pass placement.
19286 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
19287 and todo_flags_finish of all passes.
19288
793d9a16
RB
192892013-04-10 Richard Biener <rguenther@suse.de>
19290
19291 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
19292 first_const_oprnd field, rename first_def_type to first_op_type.
19293 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
19294 (vect_get_and_check_slp_defs): Always use the type of the
19295 operand. Allow mixed vect_external_def, vect_constant_def types.
19296 (vect_get_constant_vectors): Handle mixed vect_external_def,
19297 vect_constant_def types.
19298
12211b99 192992013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
19300
19301 PR tree-optimization/55524
19302 * tree-ssa-math-opts.c
19303 (convert_mult_to_fma): Don't use an fms construct
19304 when we don't have an fms operation, but fnma, and it looks
19305 likely that we'll be able to use the latter.
19306
12211b99 193072013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
19308
19309 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
19310 function.
19311 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
19312 inline fail caused by overwritable functions.
19313
34ab4a5b
CJW
193142013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
19315
19316 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
19317 unnecessary bits in the constant power of two case.
19318
abf9bfbc
RB
193192013-04-10 Richard Biener <rguenther@suse.de>
19320
19321 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
19322 broken code swapping operands.
19323 (vect_build_slp_tree): Do not compute load permutations here.
19324 (vect_analyze_slp_instance): Compute load permutations here,
19325 after building the SLP tree.
19326
f408477e
CB
193272013-04-09 Christian Bruel <christian.bruel@st.com>
19328
19329 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
19330 of next/prev_real_insn.
19331
5ac42672
JH
193322013-04-09 Jan Hubicka <jh@suse.cz>
19333
abf9bfbc
RB
19334 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
19335 Drop aliased parameter.
5ac42672
JH
19336 (function_and_variable_visibility): Do not handle alias pairs.
19337 * cgraph.c (varpool_externally_visible_p): Update prototype.
19338 * varpool.c (varpool_add_new_variable): Update.
19339
5017f1d2
KT
193402013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19341
19342 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
19343
48eecbee
SB
193442013-04-09 Steven Bosscher <steven@gcc.gnu.org>
19345
a949cf1c
SB
19346 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
19347
48eecbee
SB
19348 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
19349
75ef8e3d
MP
193502013-04-09 Marek Polacek <polacek@redhat.com>
19351
19352 PR tree-optimization/48762
33159866 19353 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 19354
23847df4
RB
193552013-04-09 Richard Biener <rguenther@suse.de>
19356
19357 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
19358 dealing with cost.
19359 (vect_build_slp_tree): Likewise.
19360 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
19361 calculating the cost of a SLP instance.
19362 (vect_analyze_slp_instance): Use it from here, after building
19363 the SLP tree.
19364
ea3a0fde
JJ
193652013-04-09 Jakub Jelinek <jakub@redhat.com>
19366
19367 PR middle-end/56883
19368 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
19369 expand_omp_for_static_chunk): Use simple_p = true in
19370 force_gimple_operand_gsi calls when assigning to addressable decls.
19371
a32dfe9d
JL
193722013-04-09 Jeff Law <law@redhat.com>
19373
19374 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
19375 when the boolean was created by converting a wider object which
19376 had a boolean range.
19377
d755c7ef
RB
193782013-04-09 Richard Biener <rguenther@suse.de>
19379
19380 * tree-vectorizer.h (slp_void_p): Remove.
19381 (slp_tree): Typedef before _slp_tree declaration.
19382 (struct _slp_tree): Use a vector of slp_tree as children.
19383 (vect_get_place_in_interleaving_chain): Remove.
19384 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
19385 Move ...
19386 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
19387 and make static.
19388 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
19389 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
19390 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
19391 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
19392 Use slp_node instead of slp_void_p and adjust.
19393
3d741091
RB
193942013-04-09 Richard Biener <rguenther@suse.de>
19395
19396 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
19397 work that is not necessary.
19398
39307ba7
JJ
193992013-04-09 Jakub Jelinek <jakub@redhat.com>
19400
19401 PR tree-optimization/56854
19402 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
19403 forward into clobber stmts if it would change MEM_REF lhs into
19404 non-MEM_REF.
19405
343881fd
MK
194062013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
19407
19408 * tree.c (type_hash_lookup, type_hash_add): Make static.
19409 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
19410
3922658a
RB
194112013-04-09 Richard Biener <rguenther@suse.de>
19412
19413 * tree.h (unsave_expr_now): Remove.
19414 * tree-inline.c (mark_local_for_remap_r): Remove.
19415 (unsave_expr_1): Likewise.
19416 (unsave_r): Likewise.
19417 (unsave_expr_now): Likewise.
19418 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
19419 (propagate_tree_value): Likewise.
19420
9fb6b620
SB
194212013-04-08 Steven Bosscher <steven@gcc.gnu.org>
19422
19423 * doc/rtl.texi (sequence): Rewrite documentation to match the
19424 current use of SEQUENCE rtl objects.
19425 * rtl.def (SEQUENCE): Likewise.
19426
19427 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
19428 Update documentation.
19429 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
19430 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
19431
19432 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
19433
8ddb5a29
TJ
194342013-04-08 Teresa Johnson <tejohnson@google.com>
19435
19436 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
19437 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 19438 methods.
8ddb5a29
TJ
19439 (estimate_edge_size_and_time): Add comment to suggest using rounding
19440 methods.
19441 (estimate_node_size_and_time): Ditto.
19442 (remap_edge_change_prob): Use helper rounding divide methods.
19443 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
19444 (gimple_mod_pow2_value_transform): Ditto.
19445 (gimple_mod_subtract_transform): Ditto.
19446 (gimple_ic_transform): Ditto.
19447 (gimple_stringops_transform): Ditto.
19448 * stmt.c (conditional_probability): Ditto.
19449 (emit_case_dispatch_table): Ditto.
19450 * lto-cgraph.c (merge_profile_summaries): Ditto.
19451 * tree-optimize.c (execute_fixup_cfg): Ditto.
19452 * cfgcleanup.c (try_forward_edges): Ditto.
19453 * cfgloopmanip.c (scale_loop_profile): Ditto.
19454 (loopify): Ditto.
19455 (duplicate_loop_to_header_edge): Ditto.
19456 (lv_adjust_loop_entry_edge): Ditto.
19457 * tree-vect-loop.c (vect_transform_loop): Ditto.
19458 * profile.c (compute_branch_probabilities): Ditto.
19459 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
19460 * lto-streamer-in.c (input_cfg): Ditto.
19461 * gimple-streamer-in.c (input_bb): Ditto.
19462 * ipa-cp.c (update_profiling_info): Ditto.
19463 (update_specialized_profile): Ditto.
19464 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
19465 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 19466 rounding methods.
8ddb5a29
TJ
19467 * sched-rgn.c (compute_dom_prob_ps): Ditto.
19468 (compute_trg_info): Ditto.
19469 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
19470 (purge_dead_edges): Ditto.
19471 * loop-unswitch.c (unswitch_loop): Ditto.
19472 * cgraphclones.c (cgraph_clone_edge): Ditto.
19473 (cgraph_clone_node): Ditto.
19474 * tree-inline.c (copy_bb): Ditto.
19475 (copy_edges_for_bb): Ditto.
19476 (initialize_cfun): Ditto.
19477 (copy_cfg_body): Ditto.
19478 (expand_call_inline): Ditto.
19479
661e6bd7
KT
194802013-04-08 Kai Tietz <ktietz@redhat.com>
19481
19482 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
19483 TARGET_CYGWIN64 by TARGET_64BIT.
19484
105766f3
JR
194852013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
19486
19487 * config/epiphany/epiphany.md (GPR_1): New constant.
19488 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
19489 * config/epiphany/epiphany.c (gen_compare_reg):
19490 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
19491 is already in place.
19492 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
19493 Don't require being called during rtl expansion; If y operlaps r0,
19494 return 0.
19495 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
19496 (epiphany_expand_epilogue): Likewise.
19497
8afab237
JR
19498 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
19499 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 19500 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 19501
fa7707d6
JR
19502 * config/epiphany/constraints.md (CnL): New constraint.
19503 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
19504 * config/epiphany/predicates.md (add_operand): Allow 1024.
19505
5138e18d
JR
19506 * config/epiphany/epiphany.md (logical_op): New code iterator.
19507 (op_mnc): New code attribute.
19508 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
19509 (mov_f+1, mov_f+2): New peephole2 patterns.
19510
2ccc703d
JR
19511 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
19512 (cstoresi4): Also allow re-use of zero result when doing a NE
19513 comparison to a non-zero operand.
aefb0819 19514 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 19515
093ac0a5
JR
19516 * config/epiphany/epiphany.md (<insn_opname>v2si3):
19517 Use gen_addsi3_i / gen_subsi3_i.
19518
f223bb13
JJ
195192013-04-08 Jakub Jelinek <jakub@redhat.com>
19520
19521 PR c++/34949
19522 PR c++/50243
19523 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
19524 contain anything but clobbers, at most one __builtin_stack_restore,
19525 optionally debug stmts and final resx, and if it has at least one
19526 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
19527 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
19528 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
19529 which isn't defaut definition, remove them.
19530 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
19531 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
19532 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
19533 with MEM_REF LHS with SSA_NAME address.
19534
4481581f
JL
195352013-04-08 Jeff Law <law@redhat.com>
19536
19537 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 19538
451dabda
RB
195392013-04-08 Richard Biener <rguenther@suse.de>
19540
19541 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
19542 extra newline.
19543 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
19544 determined vector type.
19545 (vect_analyze_data_refs): Likewise.
19546 (vect_get_new_vect_var): Adjust.
19547 (vect_create_destination_var): Preserve SSA name versions.
19548 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
19549 not dump anything here.
19550
3b088b47
JR
195512013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
19552
19553 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
19554 Add member lr_slot_known.
19555 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
19556 if necessary.
19557 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
19558 Remove code that sets lr_slot_offset according to what a previous
19559 version of epiphany_emit_save_restore used to do.
19560 (epiphany_emit_save_restore): When doing an lr save or restore,
19561 set/verify lr_slot_known and lr_slot_offset.
19562
d8484d41
XQ
195632013-04-08 Xinyu Qi <xyqi@marvell.com>
19564
33159866
UB
19565 PR target/54338
19566 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
19567 in ALL_REGS.
19568
481be1c4
RB
195692013-04-08 Richard Biener <rguenther@suse.de>
19570
19571 * alias.c (find_base_term): Fix thinko in previous change.
19572
401f3a81
JJ
195732013-04-08 Jakub Jelinek <jakub@redhat.com>
19574
19575 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
19576 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
19577 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
19578 if possible to compute val.
19579 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
19580 For QImode integers don't require anything about precision. Use
19581 const_with_all_bytes_same to find out if the constant doesn't have
19582 repeated bytes in it.
19583
03ed99a8
AK
195842013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19585
19586 * config/s390/s390.c (s390_expand_insv): Only accept insertions
19587 within mode size.
19588
781b2e62
MP
195892013-04-08 Marek Polacek <polacek@redhat.com>
19590
19591 PR rtl-optimization/48182
19592 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
19593 value to 1.
19594
27e430a2
JDA
195952013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19596
19597 PR target/55487
19598 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
19599 nuses, make sure we have a label.
19600
4902aa64
BS
196012013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19602
19603 PR target/56843
19604 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
19605 (rs6000_emit_swdiv_low_precision): Remove.
19606 (rs6000_emit_swdiv): Rewrite to handle between one and four
19607 iterations of Newton-Raphson generally; modify required number of
19608 iterations for some cases.
19609 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
19610
7bca81dc
SB
196112013-04-05 Steven Bosscher <steven@gcc.gnu.org>
19612
19613 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
19614 set-but-unused variable.
19615
19616 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
19617 basic blocks of released function bodies garbage-collectable.
19618
19619 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
19620 (struct rtl_opt_pass): Add TODO_df_finish.
19621
19622 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
19623
4542a38a
GY
196242013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19625
19626 * config/arm/constraints.md (q): New constraint.
19627 * config/arm/ldrdstrd.md: New file.
19628 * config/arm/arm.md (ldrdstrd.md) New include.
19629 (arm_movdi): Use "q" instead of "r" constraint
19630 for double-word memory access.
19631 (movdf_soft_insn): Likewise.
19632 * config/arm/vfp.md (movdi_vfp): Likewise.
19633 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 19634 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
19635 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
19636 (mem_ok_for_ldrd_strd): Likewise.
19637 (output_move_double): Update assertion.
19638
2385b218
GY
196392013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19640
19641 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
19642
75fe1cb5
GY
196432013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19644
19645 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
19646 define_insn_and_split.
19647 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
19648
dd660e8e
GY
196492013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19650
19651 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
19652 define_insn_and_split.
33159866 19653 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
19654 (shiftsi3_compare): New pattern.
19655 (rrx): New pattern.
19656 * config/arm/unspecs.md (UNSPEC_RRX): New.
19657
045e472c
GY
196582013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19659
19660 * config/arm/arm.md (negdi_extendsidi): New pattern.
19661 (negdi_zero_extendsidi): Likewise.
19662
3f3bf1a8
GY
196632013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19664
19665 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
19666 define_insn_and_split.
19667 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
19668 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
19669
b0b49556
GY
196702013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19671
19672 * config/arm/arm.md (arm_subdi3): Convert define_insn into
19673 define_insn_and_split.
19674 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
19675 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
19676
d633dd84
GY
196772013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19678
19679 * config/arm/arm.md (subsi3_carryin): New pattern.
19680 (subsi3_carryin_const): Likewise.
19681 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
19682 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
19683
f4499066
GY
196842013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19685
19686 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
19687
ceef6fd9
GY
196882013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19689
19690 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 19691 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 19692
ddbdd8a7
KT
196932013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19694
19695 * config/arm/arm.c (arm_expand_builtin): Change fcode
19696 type to unsigned int.
19697
8456d78a
RR
196982013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19699
19700 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
19701
526c230f
ILT
197022013-04-04 Ian Lance Taylor <iant@google.com>
19703
33159866
UB
19704 * doc/standards.texi (Standards): The Go frontend supports the Go 1
19705 language standard.
526c230f 19706
3cfbe04d
SB
197072013-04-04 Steven Bosscher <steven@gcc.gnu.org>
19708
19709 PR middle-end/56729
19710 * df-scan.c (df_insn_delete): Disable failing assert.
19711
dfa3f8d0
KT
197122013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19713
19714 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
19715 New function prototype.
19716 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
19717 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
19718 (arm_builtin_vectorized_function): New function.
19719
f7837758
KT
197202013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19721
19722 * config/arm/arm_neon_builtins.def: New file.
19723 * config/arm/arm.c (neon_builtin_data): Move contents to
19724 arm_neon_builtins.def.
19725 (enum arm_builtins): Include neon builtin definitions.
19726 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 19727 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 19728
39c1b6db
MP
197292013-04-04 Marek Polacek <polacek@redhat.com>
19730
19731 PR tree-optimization/48186
19732 * predict.c (maybe_hot_frequency_p): Return false if
19733 HOT_BB_FREQUENCY_FRACTION is 0.
19734 (cgraph_maybe_hot_edge_p): Likewise.
19735
314f64eb
RB
197362013-04-04 Richard Biener <rguenther@suse.de>
19737
19738 PR tree-optimization/56826
19739 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
19740 more accurately.
19741
51a905b2
RB
197422013-04-04 Richard Biener <rguenther@suse.de>
19743
19744 PR tree-optimization/56213
19745 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 19746 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 19747
f1bf4f3a
RB
197482013-04-04 Richard Biener <rguenther@suse.de>
19749
19750 PR tree-optimization/56837
19751 * tree-loop-distribution.c (classify_partition): For non-zero
19752 values require that the value has the same precision as its
19753 mode to be useful as memset value.
19754
0bca7ded
NC
197552013-04-03 Nick Clifton <nickc@redhat.com>
19756
33159866 19757 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
19758 (fmssf4): Use fmsf.s on E3V5 architectures.
19759 (fnmasf4): Use fnmaf.s on E3V5 architectures.
19760 (fnmssf4): Use fnmsf.s on E3V5 architectures.
19761
b4019227
JL
197622013-04-03 Jeff Law <law@redhat.com>
19763
19764 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
19765 (lra-eliminations.o): Likewise.
19766
f57ddb5b
TJ
197672013-04-03 Teresa Johnson <tejohnson@google.com>
19768
19769 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 19770 compute_working_sets here from profile.c.
f57ddb5b 19771 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
19772 (gcov_working_set_t): Moved typedef here from basic-block.h
19773 (compute_working_set): Declare.
f57ddb5b
TJ
19774 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
19775 (get_working_sets): Renamed from compute_working_set,
33159866 19776 replace most of body with call to new compute_working_sets.
f57ddb5b 19777 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
19778 to get_working_sets.
19779 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 19780 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 19781 to get_working_sets.
f57ddb5b
TJ
19782 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
19783 * gcov-dump.c (dump_working_sets): New function.
19784
12211b99 197852013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
19786
19787 * hwint.c (sext_hwi, zext_hwi): New functions.
19788 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
19789 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
19790 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
19791 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
19792 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
19793 (sext_hwi, zext_hwi): New functions.
0bca7ded 19794
be672e08
JL
197952013-04-03 Jeff Law <law@redhat.com>
19796
19797 PR tree-optimization/56799
33159866
UB
19798 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
19799 back test for widening conversion erroneously dropped in prior change.
be672e08 19800
9d821fa5
KT
198012013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19802
19803 PR target/56809
19804 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
19805 instead of next_real_insn.
19806
71c581e7
MP
198072013-04-03 Marek Polacek <polacek@redhat.com>
19808
19809 PR sanitizer/55702
33159866 19810 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 19811
4a32ef80
KT
198122013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19813
19814 PR target/56809
19815 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
19816 next_real_insn.
19817 (thumb1_output_casesi): Likewise.
19818 (thumb2_output_casesi): Likewise.
19819
1b2253d4
RB
198202013-04-03 Richard Biener <rguenther@suse.de>
19821
19822 PR tree-optimization/56817
19823 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
19824 Split out ...
19825 (tree_unroll_loops_completely_1): ... new function to manually
19826 walk the loop tree, properly defering outer loops of unrolled
19827 loops to later iterations.
19828
38000232
MG
198292013-04-03 Marc Glisse <marc.glisse@inria.fr>
19830
19831 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
19832 (vectorizable_load): Likewise.
19833 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
19834 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
19835
3fa35298
MG
198362013-04-03 Marc Glisse <marc.glisse@inria.fr>
19837
19838 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
19839 BIT_FIELD_REF.
19840
b3d45ff0
UW
198412013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19842
19843 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
19844
ec9202a8
BC
198452013-04-03 Bin Cheng <bin.cheng@arm.com>
19846
19847 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
19848
6805bd36
MG
198492013-04-03 Marc Glisse <marc.glisse@inria.fr>
19850
19851 PR tree-optimization/56790
33159866
UB
19852 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
19853 folding.
6805bd36 19854
da694a77
MG
198552013-04-03 Marc Glisse <marc.glisse@inria.fr>
19856
19857 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
19858 Handle VEC_MERGE.
19859 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
19860 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
19861 equal arguments.
19862
4e7d7b3d
JJ
198632013-04-03 Jakub Jelinek <jakub@redhat.com>
19864
19865 PR c/19449
19866 * tree.h (force_folding_builtin_constant_p): New decl.
19867 * builtins.c (force_folding_builtin_constant_p): New variable.
19868 (fold_builtin_constant_p): Fold immediately also if
19869 force_folding_builtin_constant_p.
19870
e6c9d234
RB
198712013-04-03 Richard Biener <rguenther@suse.de>
19872
19873 PR tree-optimization/56812
19874 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
19875 DRs of the same interleaving chain are independent.
19876
984d07dd
JM
198772013-04-02 Jason Merrill <jason@redhat.com>
19878
19879 * gdbinit.in (pbb): Use debug fn.
19880
622849c9
LC
198812013-04-02 Lawrence Crowl <crowl@google.com>
19882
19883 * sese.h (struct ivtype_map_elt_s): Remove unused.
19884 (extern debug_ivtype_map): Remove unused.
19885 (extern eq_ivtype_map_elts): Remove unused.
19886 * sese.c (debug_ivtype_map): Removed unused.
19887 (debug_ivtype_map_1): Removed unused.
19888 (debug_ivtype_elt): Remove unused.
19889 (eq_ivtype_map_elts): Remove unused.
19890
19891
82c0e1a0
KT
198922013-04-02 Kai Tietz <ktietz@redhat.com>
19893
19894 PR target/52790
19895 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
19896 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
19897 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
19898 function.
82c0e1a0
KT
19899 (legitimize_pe_coff_symbol): Likewise.
19900 (is_imported_p): New helper-function.
19901 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
19902 for Windows x64 targets.
19903 (ix86_expand_prologue): Optimize for pe-coff targets.
19904 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
19905 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
19906 medium/large code-model.
19907 (legitimize_pic_address): Likewise.
19908 (legitimize_tls_address): Likewise.
19909 (ix86_expand_call): Likewise.
19910 (x86_output_mi_thunk): Likewise.
19911 (get_dllimport_decl): Add new beimport argument.
19912 (construct_plt_address): Don't assert for x64 pe-coff targets.
19913 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
19914 targets.
19915 (SYMBOL_FLAG_STUBVAR): New macro.
19916 (SYMBOL_REF_STUBVAR_P): Likewise.
19917 * config/i386/winnt.c (stub_list): New structure.
19918 (stub_head): New local variable.
19919 (i386_pe_record_stub): New function.
19920 (i386_pe_file_end): Emit refptr-stubs.
19921
5d751b0c
JJ
199222013-04-02 Jakub Jelinek <jakub@redhat.com>
19923
09bb4c99
JJ
19924 PR rtl-optimization/56745
19925 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
19926 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
19927
a1d8947a
JJ
19928 PR c++/34949
19929 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
19930 and both of them are MEM_REFs, just compare first argument for
19931 equality and attempt to deal even with differing offsets.
19932
5d751b0c
JJ
19933 PR c++/34949
19934 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
19935 of gimple_clobber_p to be MEM_REF.
19936 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
19937 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
19938 after gimplification.
19939 * asan.c (get_mem_ref_of_assignment): Don't instrument
19940 gimple_clobber_p stmts.
19941 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
19942 gimple_clobber_p stmt if they have MEM_REF lhs and
19943 are dead because of another gimple_clobber_p stmt.
19944 * tree-ssa-live.c (clear_unused_block_pointer): Treat
19945 gimple_clobber_p stmts like debug stmts.
19946 (remove_unused_locals): Remove clobbers with MEM_REF lhs
19947 that refer to unused VAR_DECLs or uninitialized values.
19948 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
19949 gimple_clobber_p stmts if they refer to removed parameters.
19950 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
19951 formatting.
19952
e594716a
UB
199532013-04-02 Uros Bizjak <ubizjak@gmail.com>
19954
19955 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
19956 using SWI48 mode attribute.
19957
7a80735b
WM
199582013-04-02 Wei Mi <wmi@google.com>
19959
19960 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
19961 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
19962 *<rotate_insn><mode>3_mask in i386.md.
19963
f423a9e4
AI
199642013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
19965
19966 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
19967
90eb75f2
RB
199682013-04-02 Richard Biener <rguenther@suse.de>
19969
19970 PR tree-optimization/56778
19971 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19972 Runtime alias tests are not supported for gather loads.
19973 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
19974 stmts referenced from SSA operands before updating SSA form.
19975
d8c69a92
IC
199762013-04-02 Ian Caulfield <ian.caulfield@arm.com>
19977 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19978
19979 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
19980 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
19981 * config/arm/cortex-a53.md: New file.
19982 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
19983 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
19984 * config/arm/arm.c (arm_issue_rate): Likewise.
19985 * config/arm/arm-tune.md: Regenerate
19986 * config/arm/arm-tables.opt: Regenerate.
19987 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 19988
239eb04c
ZC
199892013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
19990
19991 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
19992 non-static link.
19993
c902d3c8
SN
199942013-04-02 Sofiane Naci <sofiane.naci@arm.com>
19995
d8c69a92
IC
19996 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
19997 scalar load/store operations using B/H registers.
c902d3c8
SN
19998 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
19999
051d0e2f
SN
200002013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20001
20002 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
20003 scalar move.
20004 * config/aarch64/aarch64.c
20005 (aarch64_simd_scalar_immediate_valid_for_move): New.
20006 * config/aarch64/aarch64-protos.h
20007 (aarch64_simd_scalar_immediate_valid_for_move): New.
20008 * config/aarch64/constraints.md (Dh, Dq): New.
20009 * config/aarch64/iterators.md (hq): New.
20010
0ee1e3d9
EB
200112013-04-02 Eric Botcazou <ebotcazou@adacore.com>
20012
20013 * reorg.c (get_branch_condition): Deal with conditional returns.
20014 (fill_simple_delay_slots): Remove dead code dealing with jumps.
20015
136fb3f7
WM
200162013-04-01 Wei Mi <wmi@google.com>
20017
20018 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
20019 Truncate operand 2 using %b asm operand modifier.
20020 (*<shift_insn><mode>3_mask): Ditto.
20021 (*<rotate_insn><mode>3_mask): Ditto.
20022
6388c738
SB
200232013-04-01 Steven Bosscher <steven@gcc.gnu.org>
20024
20025 PR middle-end/56798
20026 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
20027
f7a4d826
KK
200282013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
20029
20030 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
20031 of next_real_insn.
20032 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
20033
4b943a49
LC
200342013-03-30 Lawrence Crowl <crowl@google.com>
20035
20036 * dse.c (clear_alias_sets): Remove never set.
20037 (disqualified_clear_alias_sets): Remove never set.
20038 (clear_alias_mode_pool): Remove never set.
20039 (dse_step0): Remove condition that is never true.
20040 (canon_address): Remove condition that is never true.
20041 (dse_step7): Remove condition that is never true.
20042 (rest_of_handle_dse): Remove condition that is never true.
20043 (rest_of_handle_dse::did_global): Remove never read from above.
20044 (dse_step2_spill): Remove never called from above.
20045 (dse_step5_spill): Remove never called from above.
20046
39718607
SB
200472013-03-30 Steven Bosscher <steven@gcc.gnu.org>
20048
da5c6bde
SB
20049 * doc/md.texi (Standard Names) <casesi>: Update documentation for
20050 JUMP_TABLE_DATA changes.
20051 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
20052 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
20053 (Insns) <jump_table_data>: New entry.
20054 * doc/tm.texi: Regenerate.
20055
39718607
SB
20056 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
20057
20058 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
20059 for table jump at the end of a basic block using tablejump_p.
20060 * targhooks.c (default_invalid_within_doloop): Likewise.
20061 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
20062 target hook implementation that is identical to the default hook.
20063 (rs6000_invalid_within_doloop): Remove.
20064
20065 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
20066 unused variable from tablejump_p call.
20067
20068 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
20069 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
20070 (INSN_DELETED_P): Likewise.
20071 (emit_jump_table_data): New prototype.
20072 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
20073 after 4th as unused.
20074 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
20075 * sched-vis.c (print_insn): Likewise.
20076 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
20077 insn for compatibility with back ends that use next_active_insn to
20078 identify jump table data.
20079 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
20080 (remove_insn): Likewise.
20081 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
20082 to be emitted.
20083 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
20084 (emit_jump_table_data): New function.
20085
20086 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
20087 basic block, a JUMP_TABLE_DATA never is.
20088 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
20089 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
20090 off from code handling real insns.
20091 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
20092 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
20093 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
20094 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
20095 is not a NONDEBUG_INSN_P.
20096 * ira-costs.c (scan_one_insn): Likewise.
20097 * jump.c (mark_all_labels): Likewise.
20098 (mark_jump_label_1): Likewise.
20099 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20100 * lra.c (get_insn_freq): Expect all insns reaching here to be in
20101 a basic block.
20102 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
20103 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
20104 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
20105 JUMP_TABLE_DATA_P insns.
20106 (calculate_elim_costs_all_insns): Likewise.
20107 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
20108 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
20109 (delete_output_reload): Code style fixups.
20110 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
20111 insn flags on this non-insn.
20112 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
20113 as scheduling barriers, for pre-change compatibility.
20114 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
20115 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
20116
20117 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
20118 redundant JUMP_TABLE_DATA_P test.
20119 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
20120 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20121 (frv_for_each_packet): Likewise.
20122 * config/i386/i386.c (min_insn_size): Likewise.
20123 (ix86_avoid_jump_mispredicts): Likewise.
20124 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20125 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
20126 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20127 (mips16_insn_length): Robustify.
20128 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
20129 (mips16_split_long_branches): Likewise.
20130 * config/pa/pa.c (pa_combine_instructions): Likewise.
20131 * config/rs6000/rs6000.c (get_next_active_insn): Treat
20132 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
20133 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
20134 as contributing to pool range lengths.
20135 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
20136 Remove redundant JUMP_TABLE_DATA_P test.
20137 (sh_loop_align): Likewise.
20138 (split_branches): Likewise.
20139 (sh_insn_length_adjustment): Likewise.
20140 * config/spu/spu.c (get_branch_target): Likewise.
20141
0208f7da
JH
201422013-03-29 Jan Hubicka <jh@suse.cz>
20143
20144 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
20145 gcov streaming; stream hot bb threshold to ltrans.
20146 * predict.c (get_hot_bb_threshold): Break out from ....
20147 (maybe_hot_count_p): ... here.
20148 (set_hot_bb_threshold): New function.
20149 * lto-section-in.c (lto_section_name): Add profile.
20150 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
20151 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
20152 and data-streamer.h
20153 (histogram_entry): New structure.
20154 (histogram, histogram_pool): New global vars.
20155 (histogram_hash): New structure.
20156 (histogram_hash::hash): New method.
20157 (histogram_hash::equal): Likewise.
20158 (account_time_size): New function.
20159 (cmp_counts): New function.
20160 (dump_histogram): New function.
20161 (ipa_profile_generate_summary): New function.
20162 (ipa_profile_write_summary): New function.
20163 (ipa_profile_read_summary): New function.
20164 (ipa_profile): Decide on threshold.
e594716a
UB
20165 (pass_ipa_profile): Add ipa_profile_write_summary and
20166 ipa_profile_read_summary.
0208f7da
JH
20167 * Makefile.in (ipa.o): Update dependencies.
20168 * lto-streamer.h (LTO_section_ipa_profile): New section.
20169
5a6ccc94
GDR
201702013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
20171
20172 * tree.h (VAR_P): New.
20173
39385fa6
PC
201742013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
20175
20176 PR lto/56777
20177 * doc/invoke.texi ([-fwhole-program]): Fix typo.
20178
34f0d87a
SB
201792013-03-29 Steven Bosscher <steven@gcc.gnu.org>
20180
20181 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
20182 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
20183 (control_flow_insn_p): Likewise.
20184 * cfgrtl.c (duplicate_insn_chain): Likewise.
20185 * final.c (get_attr_length_1): Likewise.
20186 (shorten_branches): Likewise.
20187 (final_scan_insn): Likewise.
20188 * function.c (instantiate_virtual_regs): Likewise.
20189 * gcse.c (insert_insn_end_basic_block): Likewise.
20190 * ira-costs.c (scan_one_insn): Likewise.
20191 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20192 * lra.c (check_rtl): Likewise.
20193 * reload1.c (elimination_costs_in_insn): Likewise.
20194 * reorg.c (follow_jumps): Likewise.
20195
20196 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
20197 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
20198 (thumb_far_jump_used_p): Likewise.
20199 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
20200 (workaround_speculation): Likewise.
20201 (add_sched_insns_for_speculation): Likewise.
20202 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
20203 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20204 (frv_for_each_packet): Likewise.
20205 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
20206 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
20207 (final_emit_insn_group_barriers): Likewise.
20208 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20209 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20210 (mips16_insn_length): Likewise.
20211 * config/pa/pa.c (pa_reorg): Likewise.
20212 (pa_combine_instructions): Likewise.
20213 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
20214 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
20215 (sh_reorg): Likewise.
20216 (split_branches): Likewise.
20217 * config/spu/spu.c (get_branch_target): Likewise.
20218
20219 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
20220 JUMP_TABLE_DATA_P.
20221
4ac761b0
KY
202222013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
20223
39385fa6 20224 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
20225 Fix declaration name.
20226
58a49189
LC
202272013-03-28 Lawrence Crowl <crowl@google.com>
20228
20229 * graphds.h (struct graph.indicies): Remove unused.
20230 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
20231 (SCOP_ORIGINAL_PDDRS): Remove unused.
20232 * sese.h (extern insert_loop_close_phis): Removed unused.
20233 (extern insert_guard_phis): Removed unused.
20234 (extern ivtype_map_elt_info): Removed unused.
20235 (new_ivtype_map_elt): Removed unused.
20236 * sese.c (ivtype_map_elt_info): Removed unused.
20237
7b3b6ae4
LC
202382013-03-28 Lawrence Crowl <crowl@google.com>
20239
20240 * Makefile.in: Add several missing include dependences.
20241 (DUMPFILE_H): New.
20242 (test-dump.o): New. This object is not added to any executable,
20243 but is present for ad-hoc testing.
20244 * bitmap.c
20245 (debug (const bitmap_head_def &)): New.
20246 (debug (const bitmap_head_def *)): New.
20247 * bitmap.h
20248 (extern debug (const bitmap_head_def &)): New.
20249 (extern debug (const bitmap_head_def *)): New.
20250 * cfg.c
20251 (debug (edge_def &)): New.
20252 (debug (edge_def *)): New.
20253 * cfghooks.c
20254 (debug (basic_block_def &)): New.
20255 (debug (basic_block_def *)): New.
20256 * dumpfile.h
20257 (dump_node (const_tree, int, FILE *)): Correct source file.
20258 * dwarf2out.c
20259 (debug (die_struct &)): New.
20260 (debug (die_struct *)): New.
20261 * dwarf2out.h
20262 (extern debug (die_struct &)): New.
20263 (extern debug (die_struct *)): New.
20264 * gimple-pretty-print.c
20265 (debug (gimple_statement_d &)): New.
20266 (debug (gimple_statement_d *)): New.
20267 * gimple-pretty-print.h
20268 (extern debug (gimple_statement_d &)): New.
20269 (extern debug (gimple_statement_d *)): New.
20270 * ira-build.c
20271 (debug (ira_allocno_copy &)): New.
20272 (debug (ira_allocno_copy *)): New.
20273 (debug (ira_allocno &)): New.
20274 (debug (ira_allocno *)): New.
20275 * ira-int.h
20276 (extern debug (ira_allocno_copy &)): New.
20277 (extern debug (ira_allocno_copy *)): New.
20278 (extern debug (ira_allocno &)): New.
20279 (extern debug (ira_allocno *)): New.
20280 * ira-lives.c
20281 (debug (live_range &)): New.
20282 (debug (live_range *)): New.
20283 * lra-int.h
20284 (debug (lra_live_range &)): New.
20285 (debug (lra_live_range *)): New.
20286 * lra-lives.c
20287 (debug (lra_live_range &)): New.
20288 (debug (lra_live_range *)): New.
20289 * omega.c
20290 (debug (omega_pb_d &)): New.
20291 (debug (omega_pb_d *)): New.
20292 * omega.h
20293 (extern debug (omega_pb_d &)): New.
20294 (extern debug (omega_pb_d *)): New.
20295 * print-rtl.c
20296 (debug (const rtx_def &)): New.
20297 (debug (const rtx_def *)): New.
20298 * print-tree.c
20299 (debug_tree (tree): Move within file.
20300 (debug_raw (const tree_node &)): New.
20301 (debug_raw (const tree_node *)): New.
20302 (dump_tree_via_hooks (const tree_node *, int)): New.
20303 (debug (const tree_node &)): New.
20304 (debug (const tree_node *)): New.
20305 (debug_verbose (const tree_node &)): New.
20306 (debug_verbose (const tree_node *)): New.
20307 (debug_head (const tree_node &)): New.
20308 (debug_head (const tree_node *)): New.
20309 (debug_body (const tree_node &)): New.
20310 (debug_body (const tree_node *)): New.
20311 (debug_vec_tree (tree): Move and reimplement in terms of dump.
20312 (debug (vec<tree, va_gc> &)): New.
20313 (debug (vec<tree, va_gc> *)): New.
20314 * rtl.h
20315 (extern debug (const rtx_def &)): New.
20316 (extern debug (const rtx_def *)): New.
20317 * sbitmap.c
20318 (debug_raw (simple_bitmap_def &)): New.
20319 (debug_raw (simple_bitmap_def *)): New.
20320 (debug (simple_bitmap_def &)): New.
20321 (debug (simple_bitmap_def *)): New.
20322 * sbitmap.h
20323 (extern debug (simple_bitmap_def &)): New.
20324 (extern debug (simple_bitmap_def *)): New.
20325 (extern debug_raw (simple_bitmap_def &)): New.
20326 (extern debug_raw (simple_bitmap_def *)): New.
20327 * sel-sched-dump.c
20328 (debug (vinsn_def &)): New.
20329 (debug (vinsn_def *)): New.
20330 (debug_verbose (vinsn_def &)): New.
20331 (debug_verbose (vinsn_def *)): New.
20332 (debug (expr_def &)): New.
20333 (debug (expr_def *)): New.
20334 (debug_verbose (expr_def &)): New.
20335 (debug_verbose (expr_def *)): New.
20336 (debug (vec<rtx> &)): New.
20337 (debug (vec<rtx> *)): New.
20338 * sel-sched-dump.h
20339 (extern debug (vinsn_def &)): New.
20340 (extern debug (vinsn_def *)): New.
20341 (extern debug_verbose (vinsn_def &)): New.
20342 (extern debug_verbose (vinsn_def *)): New.
20343 (extern debug (expr_def &)): New.
20344 (extern debug (expr_def *)): New.
20345 (extern debug_verbose (expr_def &)): New.
20346 (extern debug_verbose (expr_def *)): New.
20347 (extern debug (vec<rtx> &)): New.
20348 (extern debug (vec<rtx> *)): New.
20349 * sel-sched-ir.h
20350 (_list_iter_cond_expr): Make inline instead of static.
20351 * sreal.c
20352 (debug (sreal &)): New.
20353 (debug (sreal *)): New.
20354 * sreal.h
20355 (extern debug (sreal &)): New.
20356 (extern debug (sreal *)): New.
20357 * tree.h
20358 (extern debug_raw (const tree_node &)): New.
20359 (extern debug_raw (const tree_node *)): New.
20360 (extern debug (const tree_node &)): New.
20361 (extern debug (const tree_node *)): New.
20362 (extern debug_verbose (const tree_node &)): New.
20363 (extern debug_verbose (const tree_node *)): New.
20364 (extern debug_head (const tree_node &)): New.
20365 (extern debug_head (const tree_node *)): New.
20366 (extern debug_body (const tree_node &)): New.
20367 (extern debug_body (const tree_node *)): New.
20368 (extern debug (vec<tree, va_gc> &)): New.
20369 (extern debug (vec<tree, va_gc> *)): New.
20370 * tree-cfg.c
20371 (debug (struct loop &)): New.
20372 (debug (struct loop *)): New.
20373 (debug_verbose (struct loop &)): New.
20374 (debug_verbose (struct loop *)): New.
20375 * tree-dump.c: Add header dependence.
20376 * tree-flow.h
20377 (extern debug (struct loop &)): New.
20378 (extern debug (struct loop *)): New.
20379 (extern debug_verbose (struct loop &)): New.
20380 (extern debug_verbose (struct loop *)): New.
20381 * tree-data-ref.c
20382 (debug (data_reference &)): New.
20383 (debug (data_reference *)): New.
20384 (debug (vec<data_reference_p> &)): New.
20385 (debug (vec<data_reference_p> *)): New.
20386 (debug (vec<ddr_p> &)): New.
20387 (debug (vec<ddr_p> *)): New.
20388 * tree-data-ref.h
20389 (extern debug (data_reference &)): New.
20390 (extern debug (data_reference *)): New.
20391 (extern debug (vec<data_reference_p> &)): New.
20392 (extern debug (vec<data_reference_p> *)): New.
20393 (extern debug (vec<ddr_p> &)): New.
20394 (extern debug (vec<ddr_p> *)): New.
20395 * tree-ssa-alias.c
20396 (debug (pt_solution &)): New.
20397 (debug (pt_solution *)): New.
20398 * tree-ssa-alias.h
20399 (extern debug (pt_solution &)): New.
20400 (extern debug (pt_solution *)): New.
20401 * tree-ssa-alias.c
20402 (debug (_var_map &)): New.
20403 (debug (_var_map *)): New.
20404 (debug (tree_live_info_d &)): New.
20405 (debug (tree_live_info_d *)): New.
20406 * tree-ssa-alias.h
20407 (extern debug (_var_map &)): New.
20408 (extern debug (_var_map *)): New.
20409 (extern debug (tree_live_info_d &)): New.
20410 (extern debug (tree_live_info_d *)): New.
20411
be77e1e5
JH
204122013-03-28 Jan Hubicka <jh@suse.cz>
20413
20414 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
20415
777e6976
IB
204162013-03-28 Ian Bolton <ian.bolton@arm.com>
20417
20418 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
20419 record only when desired or required.
20420
9cd347ae
UB
204212013-03-28 Uros Bizjak <ubizjak@gmail.com>
20422
20423 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
20424 *vec_extractv2di_1_rex64. Use x64 isa attribute.
20425
33159866 204262013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
20427
20428 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
20429 (*andsi3_compare0_uxtw): New pattern.
20430 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
20431 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
20432
89ab31c1
JH
204332013-03-28 Jan Hubicka <jh@suse.cz>
20434
20435 * data-streamer-in.c (streamer_read_gcov_count): New function.
20436 * gimple-streamer-out.c: Include value-prof.h.
20437 (output_gimple_stmt): Output histogram.
20438 (output_bb): Use streamer_write_gcov_count.
20439 * value-prof.c: Include data-streamer.h
20440 (dump_histogram_value): Add HIST_TYPE_MAX.
20441 (stream_out_histogram_value): New function.
20442 (stream_in_histogram_value): New function.
20443 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
20444 (stream_out_histogram_value, stream_in_histogram_value): Declare.
20445 * data-streamer-out.c (streamer_write_gcov_count): New function.
20446 (streamer_write_gcov_count_stream): New function.
20447 * lto-cgraph.c (lto_output_edge): Update counter streaming.
20448 (lto_output_node): Likewise.
20449 (input_node, input_edge): Likewise.
20450 * lto-streamer-out.c (output_cfg): Update streaming.
20451 * lto-streamer-in.c (input_cfg): Likewise.
20452 * data-streamer.h (streamer_write_gcov_count,
20453 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
20454 * gimple-streamer-in.c: Include value-prof.h
20455 (input_gimple_stmt): Input histograms.
20456 (input_bb): Update profile streaming.
20457
e594716a 204582013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 20459
33159866 20460 * genmodes.c (emit_max_int): New function.
8697be17 20461 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
20462 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
20463 Added doc.
8697be17 20464 * machmode.def: Fixed comment.
89ab31c1 20465
e594716a 204662013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
20467
20468 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
20469 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
20470
74946978
MP
204712013-03-28 Marek Polacek <polacek@redhat.com>
20472 Richard Biener <rguenther@suse.de>
20473
20474 PR tree-optimization/56695
20475 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
20476 build signed result of a vector comparison.
20477 * tree-cfg.c (verify_gimple_comparison): Check that a result
20478 of a vector comparison has signed type.
20479
a64b9c26
RB
204802013-03-28 Richard Biener <rguenther@suse.de>
20481
20482 PR tree-optimization/37021
20483 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
20484 do not restrict gaps between groups.
20485 * tree-vect-stmts.c (vectorizable_load): Properly account for
20486 a gap between groups.
20487
a9dc2a2f
EB
204882013-03-28 Eric Botcazou <ebotcazou@adacore.com>
20489
20490 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
20491 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
20492 is not enabled.
20493
53cb97f9
GP
204942013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
20495
20496 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
20497 * doc/extend.texi (Named Address Spaces): Ditto.
20498 (Variable Attributes): Ditto.
20499
b802ae5c
KT
205002013-03-27 Kai Tietz <ktietz@redhat.com>
20501
eddae10a
KT
20502 * config.build: Add support for cygwin x64 target.
20503 * config.gcc: Likewise.
20504 * config.host: Likewise.
20505 * configure.ac: Likewise
20506 * configure: Regenerated.
b802ae5c 20507
371e77e3 205082013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
20509
20510 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
20511 * config/i386/t-cygwin-w64: New file.
20512 * config/i386/cygwin-w64.h: New file.
20513 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
20514 and add support for x64-cygwin target.
20515 (CPP_SPEC): Likewise.
20516 (CXX_WRAP_SPEC_LIST): Undefine before define.
20517 (LIBGCJ_SONAME): Use 15 as version.
20518
f49b33cb
RB
205192013-03-27 Richard Biener <rguenther@suse.de>
20520
20521 PR tree-optimization/56716
20522 * tree-ssa-structalias.c (perform_var_substitution): Adjust
20523 dumping for ref nodes.
20524
b37a6ce5
MJ
205252013-03-27 Martin Jambor <mjambor@suse.cz>
20526
20527 PR tree-optimization/55334
20528 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
20529 restricted pointers to arrays.
20530
9469b9b2
GDR
205312013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
20532
20533 * Makefile.in (.SUFFIXES): Add .cc.
20534 (.c.o): Apply same recipe for implicit rule .cc.o.
20535
7d24f650
RB
205362013-03-27 Richard Biener <rguenther@suse.de>
20537
20538 PR tree-optimization/37021
20539 * tree-vect-data-refs.c (vect_check_strided_load): Allow
20540 REALPART/IMAGPART_EXPRs around the supported refs.
20541 * tree-ssa-structalias.c (find_func_aliases): Assume that
20542 floating-point values are not used to transfer pointers.
20543
2f251a05
AI
205442013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
20545
f43245d1
UB
20546 * target.def (TARGET_HAS_IFUNC_P): New target hook.
20547 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
20548 * doc/tm.texi: Regenerate.
20549 * targhooks.h (default_has_ifunc_p): New.
20550 * targhooks.c (default_has_ifunc_p): Ditto.
20551 * config/linux-protos.h: New file.
20552 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
20553 hook for linux which disables support of indirect functions in android.
20554 * config/linux-android.c: New file.
20555 * config/t-linux-android.c: Ditto.
20556 * config.gcc: Added new object file linux-android.o.
20557 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 20558 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 20559 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
20560 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
20561 doesn't support indirect functions.
20562 * configure: Regenerate.
20563
78b4e425
BC
205642013-03-27 Bin Cheng <bin.cheng@arm.com>
20565
20566 PR target/56102
20567 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
20568 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
20569 mult-word mode.
20570
a5ba7b92
AK
205712013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20572
20573 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
20574
be624986
TG
205752013-03-27 Terry Guo <terry.guo@arm.com>
20576
20577 * config/arm/arm-cores.def: Added core cortex-r7.
20578 * config/arm/arm-tune.md: Regenerated.
20579 * config/arm/arm-tables.opt: Regenerated.
20580 * doc/invoke.texi: Added entry for core cortex-r7.
20581
0a514f47
WL
205822013-03-27 Walter Lee <walt@tilera.com>
20583
20584 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
20585 double-decrement of next_scratch_regno.
20586
9332b0d2
WL
205872013-03-27 Walter Lee <walt@tilera.com>
20588
801d9b2a 20589 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
20590 input operands.
20591 (insn_v1mulus): Ditto.
20592 (insn_v2muls): Ditto.
20593
f54ea5dd
WL
205942013-03-27 Walter Lee <walt@tilera.com>
20595
e594716a 20596 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
20597 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
20598
bf60f4ca
WL
205992013-03-27 Walter Lee <walt@tilera.com>
20600
e594716a 20601 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
20602 (*sibcall_value): Ditto.
20603
e3b51eeb
WL
206042013-03-27 Walter Lee <walt@tilera.com>
20605
20606 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
20607 (insn_mnz_v8qi): ... this ...
20608 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
20609 vector equivalent.
20610 (insn_v<n>mnz): Replaced by ...
20611 (insn_v1mnz): ... this ...
20612 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
20613 equivalent.
20614 (insn_mz_<mode>): Replaced by ...
20615 (insn_mz_v8qi): ... this ...
20616 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
20617 vector equivalent.
20618 (insn_v<n>mz): Replaced by ...
20619 (insn_v1mz): ... this ...
20620 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
20621 equivalent.
20622
4fc7b145
EB
206232013-03-26 Eric Botcazou <ebotcazou@adacore.com>
20624
20625 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
20626
6f33817e
RM
206272013-03-26 Roland McGrath <mcgrathr@google.com>
20628
20629 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
20630 than fprintf with a non-constant, non-format string.
20631
93a4145b
UB
206322013-03-26 Uros Bizjak <ubizjak@gmail.com>
20633
20634 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
20635 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
20636 operand 0 predicate.
20637 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
20638 attribute. Use general_x64nomem_operand as operand 1 predicate.
20639 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
20640 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
20641 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
20642 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
20643 (mov<mode>_insv_1): Remove expander. Merge insn with
20644 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
20645 Use general_x64nomem_operand as operand 1 predicate.
20646 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
20647 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
20648 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
20649 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
20650 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
20651 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
20652 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
20653 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
20654 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
20655 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
20656 (general_x64nomem_operand): Ditto.
20657
c6a9ed5a 206582013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
20659
20660 * config/rtems.opt: Add -pthread option.
20661
31b0a960
RB
206622013-03-26 Richard Biener <rguenther@suse.de>
20663
93a4145b
UB
20664 * alias.c (find_base_term): Avoid redundant and not used recursion.
20665 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
20666 (true_dependence_1): Compute and pass base terms to base_alias_check.
20667 (write_dependence_p): Likewise.
20668 (may_alias_p): Likewise.
20669
79517551
SN
206702013-03-26 Sofiane Naci <sofiane.naci@arm.com>
20671
20672 * config/aarch64/aarch64.c (aarch64_classify_address): Support
20673 PC-relative load in SI modes and above only.
20674
a76213b9
XQ
206752013-03-26 Xinyu Qi <xyqi@marvell.com>
20676
20677 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
20678 * config/arm/iwmmxt.md (WCGR0): Update.
20679 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 20680
37ff9355
UB
206812013-03-26 Uros Bizjak <ubizjak@gmail.com>
20682
20683 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
20684 Use x64 and nox64 isa attributes.
20685
30b0317c
RB
206862013-03-26 Richard Biener <rguenther@suse.de>
20687
20688 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
20689 alignment computations and rely on get_object_alignment_1
20690 for the !TYPE_P case.
20691 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
20692
cbcdb140
WL
206932013-03-26 Walter Lee <walt@tilera.com>
20694
20695 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
20696 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
20697
dd884525 206982013-03-25 Jeff Law <law@redhat.com>
be672e08 20699
33159866
UB
20700 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
20701 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
20702 wrong version of prior patch.
20703
0051d3ec
WL
207042013-03-25 Walter Lee <walt@tilera.com>
20705
20706 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
20707 TILEGX_INSN_SHUFFLEBYTES1.
20708 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
20709 shufflebytes1.
20710 (tilegx_builtins): Ditto.
20711 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
20712
065a3605
WL
207132013-03-25 Walter Lee <walt@tilera.com>
20714
20715 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
20716 (floatunssisf2): New pattern.
20717 (floatsidf2): New pattern.
20718 (floatunssidf2): New pattern.
065a3605 20719
5b2a3c82
WL
207202013-03-25 Walter Lee <walt@tilera.com>
20721
20722 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
20723 tests for constraint J, K, N, P.
20724
192ea533
WL
207252013-03-25 Walter Lee <walt@tilera.com>
20726
20727 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
20728 Use indirect/pcrel encoding.
20729 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
20730 Ditto.
20731
855e0d0b
SE
207322013-03-25 Steve Ellcey <sellcey@mips.com>
20733
20734 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
20735 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
20736 * config/mips/mips.c (mips_option_override): Set IMADD default.
20737 * config/mips/mips.h (PTF_AVOID_IMADD): New.
20738 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
20739 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
20740 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
20741 * doc/invoke.texi (-mimadd/-mno-imadd): New.
20742
39e45653
JL
207432013-03-25 Jeff Law <law@redhat.com>
20744
20745 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
20746 slightly to avoid creating and folding useless trees. Simplify
20747 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
20748
7482c470
UB
207492013-03-25 Uros Bizjak <ubizjak@gmail.com>
20750
20751 * config/i386/i386.md (*zero_extendsidi2): Merge with
20752 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
20753 * config/i386/predicates.md (x86_64_zext_operand): Rename from
20754 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
20755 targets. Clarify comment.
20756
4a53743e
MJ
207572013-03-25 Martin Jambor <mjambor@suse.cz>
20758
20759 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
20760 pass-through jump functions differently.
20761 (ipa_read_jump_function): Likewise. Also use setter functions to set
20762 up jump functions.
20763
162712de
MJ
207642013-03-25 Martin Jambor <mjambor@suse.cz>
20765
20766 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
20767 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
20768 process it.
20769 (ipa_get_indirect_edge_target): New function.
20770 (devirtualization_time_bonus): New parameter known_aggs, pass it to
20771 ipa_get_indirect_edge_target. Update all callers.
20772 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
20773 ipa_get_indirect_edge_target_1 instead of calling
20774 ipa_get_indirect_edge_target.
20775 (create_specialized_node): Pass aggvlas to
20776 ipcp_discover_new_direct_edges.
20777
a5a4c20a
KT
207782013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20779
20780 * config/arm/arm.md (f_sels, f_seld): New types.
20781 (*cmov<mode>): New pattern.
20782 * config/arm/predicates.md (arm_vsel_comparison_operator): New
20783 predicate.
20784
f992b9fc
KT
207852013-03-25 Kai Tietz <ktietz@redhat.com>
20786
20787 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
20788 POSIX-printf for mingw-hosted builds.
20789
c16fd676
RB
207902013-03-25 Richard Biener <rguenther@suse.de>
20791
20792 PR middle-end/56694
20793 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
20794 must-not-throw stmt location.
20795
5ad29f12
KT
207962013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20797
20798 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
20799 Emit load-acquire versions when acq is true.
20800 (arm_emit_store_exclusive): Add rel parameter.
20801 Emit store-release versions when rel is true.
20802 (arm_split_compare_and_swap): Use acquire-release instructions
20803 instead.
20804 of barriers when appropriate.
20805 (arm_split_atomic_op): Likewise.
20806 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
20807 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
20808 (VUNSPEC_SLX): Likewise.
20809 (VUNSPEC_LDA): Likewise.
20810 (VUNSPEC_STL): Likewise.
20811 * config/arm/sync.md (atomic_load<mode>): New pattern.
20812 (atomic_store<mode>): Likewise.
20813 (arm_load_acquire_exclusive<mode>): Likewise.
20814 (arm_load_acquire_exclusivesi): Likewise.
20815 (arm_load_acquire_exclusivedi): Likewise.
20816 (arm_store_release_exclusive<mode>): Likewise.
20817
03a7dddb
CM
208182013-03-25 Catherine Moore <clm@codesourcery.com>
20819
20820 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
20821 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
20822 * config/mip/predicates.md (lwsp_swsp_operand,
20823 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
20824 sb16_operand, db4_operand, db7_operand, ib3_operand,
20825 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
20826 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
20827 andi16_operand): New predicates.
20828 * config/mips/mips.md (compression): New attribute.
20829 (enabled): New attribute.
20830 (length): Consider compression in computing length.
20831 (shift_compression): New code attribute.
20832 (*add<mode>3): New operands. Record compression.
20833 (sub<mode>3): Likewise.
20834 (one_cmpl<mode>2): Likewise.
20835 (*and<mode>3): Likewise.
20836 (*ior<mode>3): Likewise.
20837 (unnamed pattern for xor): Likewise.
20838 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
20839 (*<optab><mode>3): Likewise.
20840 (*mov<mode>_internal: Likewise.
20841 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
20842 (mips_unsigned_immediate_p): New.
20843 (umips_lwsp_swsp_address_p): New.
20844 (m16_based_address_p): New.
20845 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
20846 (mips_unsigned_immediate_p): New prototype.
20847 (lwsp_swsp_address_p): New prototype.
20848 (m16_based_address_p): New prototype.
20849 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
20850 (mips_signed_immediate_p): New function.
20851 (m16_based_address_p): New function.
20852 (lwsp_swsp_address_p): New function.
20853 (mips_print_operand_punctuation): Recognize short delay slot insns
20854 for microMIPS.add<mode>3"
20855
f35c297f 208562013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 20857
f35c297f
KT
20858 PR target/56720
20859 * config/arm/iterators.md (v_cmp_result): New mode attribute.
20860 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
20861
051b9446
RB
208622013-03-25 Richard Biener <rguenther@suse.de>
20863
20864 PR tree-optimization/56689
20865 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
20866 any edge.
20867
374001cb
RB
208682013-03-25 Richard Biener <rguenther@suse.de>
20869
20870 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
20871 of bitmap.
20872 (memory_references): Likewise.
20873 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
20874 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
20875 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
20876 (gather_mem_refs_in_loops): Fold into ...
20877 (analyze_memory_references): ... this. Move initialization
20878 to tree_ssa_lim_initialize.
20879 (fill_always_executed_in): Rename to ...
20880 (fill_always_executed_in_1): ... this.
20881 (fill_always_executed_in): Move contains_call computation to
20882 this new function from ...
20883 (tree_ssa_lim_initialize): ... here.
20884 (tree_ssa_lim): Call fill_always_executed_in.
20885
57895947
EB
208862013-03-25 Eric Botcazou <ebotcazou@adacore.com>
20887
20888 * postreload.c (reload_combine): Fix code detecting returns.
20889
1e1b18c1
EB
208902013-03-25 Eric Botcazou <ebotcazou@adacore.com>
20891
20892 * function.c (emit_use_return_register_into_block): On cc0 targets,
20893 do not emit the sequence between cc0 setter and user.
20894
9216baf1
KT
208952013-03-25 Kai Tietz <ktietz@redhat.com>
20896
1e1b18c1
EB
20897 * config/i386/predicates.md (local_symbolic_operand): Interpret
20898 dll-imported symbols as none-local.
9216baf1 20899
76421b44
RB
209002013-03-25 Richard Biener <rguenther@suse.de>
20901
20902 * tree-ssa-loop-im.c (struct depend): Remove.
20903 (struct lim_aux_data): Make depends a vec of gimples.
20904 (free_lim_aux_data): Adjust.
20905 (add_dependency): Likewise.
20906 (set_level): Likewise.
20907
d154bfa2
RB
209082013-03-25 Richard Biener <rguenther@suse.de>
20909
20910 PR middle-end/56434
20911 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
20912 the pointer returned by calls with ECF_MALLOC set.
20913
2cd9804e
UB
209142013-03-24 Uros Bizjak <ubizjak@gmail.com>
20915
acef5fe0
UB
20916 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
20917
209182013-03-24 Uros Bizjak <ubizjak@gmail.com>
20919
20920 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
20921 using MMXMODE mode iterator.
20922 (*move<mode>_internal): Merge with *movv2sf_internal and
20923 *movv2sf_internal_rex64 using MMXMODE mode iterator.
20924
225ccc68
SB
209252013-03-23 Steven Bosscher <steven@gcc.gnu.org>
20926
85c0f02d
SB
20927 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
20928 (record_last_mem_set_info): Likewise.
20929
225ccc68
SB
20930 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
20931 of XNEWVEC followed by memset.
20932 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
20933
b64925dc
SB
209342013-03-23 Steven Bosscher <steven@gcc.gnu.org>
20935
20936 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
20937 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
20938 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
20939 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
20940 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
20941 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
20942 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
20943 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
20944 BARRIER_P instead of GET_CODE.
20945
b9aaf52e
EB
209462013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20947
20948 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
20949 inaccuracy in the probing code.
20950
20951 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
20952 (ctrapdi4): Likewise.
20953
66de4d7c
EB
209542013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20955
20956 * calls.c (expand_call): Add missing guard to code handling return
20957 of non-BLKmode structures in MSB.
20958 * function.c (expand_function_end): Likewise.
20959
4f25c8fb
EB
209602013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20961
20962 * combine.c (try_combine): Adjust comment. Do not add the set of
20963 insn #0 if the destination indirectly is set or dies in insn #2.
20964 Tidy up code to distribute a new note.
20965
23b7850d
UB
209662013-03-22 Uros Bizjak <ubizjak@gmail.com>
20967
20968 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
20969 also for alternatives 16 and 17.
20970
bed852cf
UB
209712013-03-22 Uros Bizjak <ubizjak@gmail.com>
20972
20973 * config/i386/sse.md (*mov<mode>_internal): Merge with
20974 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
20975 Emit insn template depending on type attribute. Use
20976 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
20977 movd instead of movq mnemonic for interunit moves. Rewrite mode
20978 attribute calculation. Remove unit attribute calculation.
20979 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
20980 Set prefix_data16 attribute for DImode ssemov types.
20981 Use Ym instead of y for SSE-MMX conversion alternatives.
20982 Reorder operand constraints.
20983
1e8a7937
SB
209842013-03-22 Steven Bosscher <steven@gcc.gnu.org>
20985
20986 * df.h (df_insn_delete): Adjust prototype.
20987 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
20988 and let it decide whether mark the basic block dirty.
20989 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
20990 * df-scan.c (df_insn_info_delete): New helper function, split
20991 off from df_insn_delete.
20992 (df_scan_free_bb_info): Use it.
20993 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
20994 Likewise.
20995 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
20996 that the insn is actually an insn and it has a non-NULL basic block.
20997 Do not mark basic block dirty if only deleting a DEBUG_INSN.
20998
e14d094c
RB
209992013-03-22 Richard Biener <rguenther@suse.de>
21000
21001 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
21002 dep_ref members.
21003 (mem_ref_alloc): Do not allocate them.
21004 (refs_independent_p): Do not query or maintain a cache.
21005
e9cf7316
RB
210062013-03-22 Richard Biener <rguenther@suse.de>
21007
21008 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
21009 (gather_mem_refs_in_loops): Do not compute it.
21010 (analyze_memory_references): Do not allocate it.
21011 (tree_ssa_lim_finalize): Do not free it.
21012 (for_all_locs_in_loop): Do not query all_refs_in_loop.
21013
f046e81b
RB
210142013-03-22 Richard Biener <rguenther@suse.de>
21015
21016 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 21017
a05c0ddf
IB
210182013-03-22 Ian Bolton <ian.bolton@arm.com>
21019
21020 * config/aarch64/aarch64.c (aarch64_print_operand): New
21021 format specifier for printing a constant in hex.
21022 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
21023 format specifier for printing second operand.
21024
c00217fc
RB
210252013-03-22 Richard Biener <rguenther@suse.de>
21026
21027 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
21028 bitmaps.
21029 (gather_mem_refs_in_loops): Perform store accumulation here.
21030 (create_vop_ref_mapping_loop): Remove.
21031 (create_vop_ref_mapping): Likewise.
21032 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 21033 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
21034 (record_indep_loop): Remove.
21035 (record_dep_loop): New function.
21036 (ref_indep_loop_p_1): Adjust to only walk over references
21037 in the loop, not its subloops.
21038 (ref_indep_loop_p): Rename to ...
21039 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
21040 maintaining a more fine-grained cache.
21041 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
21042 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
21043
15d19bf8
RB
210442013-03-22 Richard Biener <rguenther@suse.de>
21045
21046 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
21047 (struct mem_ref): Make accesses_in_loop a vec of a vec of
21048 aggregate mem_ref_loc.
21049 (free_mem_ref_locs): Inline into ...
21050 (memref_free): ... this and adjust.
21051 (mem_ref_alloc): Adjust.
21052 (mem_ref_locs_alloc): Remove.
21053 (record_mem_ref_loc): Adjust.
21054 (get_all_locs_in_loop): Rewrite into ...
21055 (for_all_locs_in_loop): ... this iterator.
21056 (rewrite_mem_ref_loc): New functor.
21057 (rewrite_mem_refs): Use for_all_locs_in_loop.
21058 (sm_set_flag_if_changed): New functor.
21059 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
21060 (ref_always_accessed): New functor.
21061 (ref_always_accessed_p): Use for_all_locs_in_loop.
21062
6f37411d
MG
210632013-03-21 Marc Glisse <marc.glisse@inria.fr>
21064
21065 * tree-pass.h (PROP_gimple_lvec): New.
21066 * passes.c (dump_properties): Handle PROP_gimple_lvec.
21067 (init_optimization_passes): Move pass_lower_vector.
21068 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
21069 PROP_gimple_lvec.
21070 (pass_lower_vector): Provide PROP_gimple_lvec.
21071 (pass_lower_vector_ssa): Likewise.
21072 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
21073
511ef689
MW
210742013-03-21 Mark Wielaard <mjw@redhat.com>
21075
21076 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
21077
cc1df30b
UB
210782013-03-21 Uros Bizjak <ubizjak@gmail.com>
21079
21080 * config/i386/i386.md (*movdi_internal): Disparage slightly
21081 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
21082 conversion alternatives.
21083
c845cfe1
JJ
210842013-03-21 Jakub Jelinek <jakub@redhat.com>
21085
37e99116
JJ
21086 PR middle-end/48087
21087 * diagnostic.def (DK_WERROR): New kind.
21088 * diagnostic.h (werrorcount): Define.
21089 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
21090 promoted to DK_ERROR, increment DK_WERROR counter instead of
21091 DK_ERROR counter.
21092 * toplev.c (toplev_main): Call print_ignored_options even if
21093 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
21094 even if just werrorcount is non-zero.
21095
c845cfe1
JJ
21096 PR debug/55608
21097 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
21098 on failure.
21099 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
21100 (string_cst_pool_decl): New function.
21101 (optimize_one_addr_into_implicit_ptr): New function.
21102 (resolve_addr_in_expr): Optimize DWARF location expression
21103 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
21104 which doesn't live in memory, but has DW_AT_location or
21105 DW_AT_const_value, or refers to a string literal, into
21106 DW_OP_GNU_implicit_pointer.
21107 (optimize_location_into_implicit_ptr): New function.
21108 (resolve_addr): If removing DW_AT_location of a variable because
21109 it was DW_OP_addr of address of the variable, but the variable doesn't
21110 live in memory, try to emit const value attribute for the initializer.
21111
08e0cda6
MG
211122013-03-21 Marc Glisse <marc.glisse@inria.fr>
21113
21114 * tree.h (VECTOR_TYPE_P): New macro.
21115 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
21116 TYPE_MODE): Use it.
21117 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
21118 VEC_COND_EXPR cannot be lvalues.
21119 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
21120
d08633b4
MG
211212013-03-21 Marc Glisse <marc.glisse@inria.fr>
21122
21123 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
21124 Restrict the transformation to equal modes.
21125
e6647190
RB
211262013-03-21 Richard Biener <rguenther@suse.de>
21127
21128 PR tree-optimization/39326
21129 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
21130 (MEM_ANALYZABLE): Adjust.
21131 (record_mem_ref_loc): Move bitmap ops ...
21132 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
21133 unanalyzable refs, do not record locations for it.
21134 (analyze_memory_references): Allocate ref zero as shared
21135 unanalyzable ref.
21136 (refs_independent_p): Do not test for unanalyzed mems here.
21137 (ref_indep_loop_p_1): Special-case disambiguation against
21138 the unanalyzed ref.
cc1df30b 21139 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 21140
65074f54
CL
211412013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
21142
21143 * config/arm/arm-protos.h (tune_params): Add
21144 prefer_neon_for_64bits field.
21145 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
21146 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
21147 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
21148 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
21149 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
21150 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
21151 (arm_option_override): Handle -mneon-for-64bits new option.
21152 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
21153 (prefer_neon_for_64bits): Declare new variable.
21154 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 21155 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
21156 (arch_enabled): Handle new arch types. Remove support for onlya8
21157 and nota8.
21158 (one_cmpldi2): Use new arch names.
bc5faa5b 21159 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
21160 * config/arm/arm.opt (mneon-for-64bits): Add option.
21161 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
21162 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
21163 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
21164 of onlya8.
21165 * doc/invoke.texi (-mneon-for-64bits): Document.
21166
5a2d2a79
RB
211672013-03-21 Richard Biener <rguenther@suse.de>
21168
21169 PR tree-optimization/39326
21170 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
21171 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 21172 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 21173
5abe1e05
RB
211742013-03-21 Richard Biener <rguenther@suse.de>
21175
21176 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
21177 (vect_insert_into_interleaving_chain): Likewise.
21178 (vect_drs_dependent_in_basic_block): Inline ...
21179 (vect_slp_analyze_data_ref_dependence): ... here. New function,
21180 split out from ...
21181 (vect_analyze_data_ref_dependence): ... here. Simplify.
21182 (vect_check_interleaving): Simplify.
21183 (vect_analyze_data_ref_dependences): Likewise. Split out ...
21184 (vect_slp_analyze_data_ref_dependences): ... this new function.
21185 (dr_group_sort_cmp): New function.
21186 (vect_analyze_data_ref_accesses): Compute data-reference groups
21187 here instead of in vect_analyze_data_ref_dependence. Use
21188 a more efficient algorithm.
21189 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
21190 vect_slp_analyze_data_ref_dependences. Call
21191 vect_analyze_data_ref_accesses earlier.
21192 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
21193 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
21194 (vect_slp_analyze_data_ref_dependences): New prototype.
21195
cad1735b
RB
211962013-03-21 Richard Biener <rguenther@suse.de>
21197
21198 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
21199 ref is stored in the loop.
21200 (find_refs_for_sm): Walk only over all stores.
21201 (store_motion_loop): Allocate from lim_bitmap_obstack.
21202 (store_motion): Likewise.
21203
141310ef
RB
212042013-03-21 Richard Biener <rguenther@suse.de>
21205
21206 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
21207 Update virtual SSA form.
21208
5022315a
RO
212092013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21210
21211 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
21212 * configure: Regenerate.
21213 * config.in: Regenerate.
21214 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
21215 if !HAVE_LD_EH_FRAME_CIEV3.
21216
50d4421c
RB
212172013-03-21 Richard Biener <rguenther@suse.de>
21218
21219 * tree-cfg.c (verify_expr_no_block): New function.
21220 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
21221 nor DECL_VALUE_EXPR have locations with associated blocks.
21222 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
21223 (clear_unused_block_pointer): Remove code dealing with
21224 blocks in DECL_DEBUG_EXPR locations.
21225
839b422f
RB
212262013-03-21 Richard Biener <rguenther@suse.de>
21227
21228 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
21229 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
21230 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
21231 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
21232 instead of DECL_DEBUG_EXPR_IS_FROM.
21233 * gimplify.c (gimplify_modify_expr): Likewise.
21234 * tree-cfg.c (verify_expr_location_1): Likewise.
21235 * tree-complex.c (create_one_component_var): Likewise.
21236 * tree-sra.c (create_access_replacement): Likewise.
21237 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
21238 (clear_unused_block_pointer): Likewise.
21239 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
21240 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
21241 * var-tracking.c (var_debug_decl): Likewise.
21242 (track_expr_p): Likewise.
21243 * tree-inline.c (add_local_variables): Likewise. Set
21244 DECL_HAS_DEBUG_EXPR_P after copying it.
21245 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
21246 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
21247
fe04878d
UB
212482013-03-21 Uros Bizjak <ubizjak@gmail.com>
21249
21250 PR bootstrap/56656
21251 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
21252 * configure: Regenerate.
21253 * config.in: Regenerate.
21254 * config/i386/i386.md (*movdf_internal): Use
21255 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21256 movd instead of movq mnemonic for interunit moves.
21257 (*movdi_internal): Ditto.
21258
bd059b26 212592013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
21260
21261 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
21262 (abd<mode>_3): New pattern.
21263 (aba<mode>_3): New pattern.
21264 (fabd<mode>_3): New pattern.
21265
bd059b26 212662013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
21267
21268 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
21269 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
21270 occurrence of REGISTER_PREFIX as its empty string.
21271
4f1f78b9
JL
212722013-03-20 Jeff Law <law@redhat.com>
21273
21274 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
21275 addititional equivalences for equality comparisons between an SSA_NAME
21276 and a constant where the SSA_NAME was set from a widening conversion.
21277
327a1118
WL
212782013-03-20 Walter Lee <walt@tilera.com>
21279
21280 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
21281
813e0036
UB
212822013-03-20 Uros Bizjak <ubizjak@gmail.com>
21283
21284 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
21285 depending on type attribute.
21286 (*movti_internal): Ditto.
21287 (*movtf_internal): Ditto.
21288 (*movxf_internal): Ditto.
21289 (*movdf_internal): Ditto.
21290 (*movsf_internal): Ditto.
21291
7cf34aae
UB
212922013-03-20 Uros Bizjak <ubizjak@gmail.com>
21293
21294 * config/i386/i386.md (*movti_internal): Set prefix attribute to
21295 maybe_vex for sselog1 and ssemov types.
21296 (*movdi_internal): Reorder operand constraints.
21297 (*movsi_internal): Ditto. Set prefix attribute to
21298 maybe_vex for sselog1 and ssemov types.
21299 (*movtf_internal): Set prefix attribute to maybe_vex
21300 for sselog1 and ssemov types.
21301 (*movdf_internal): Ditto. Set prefix_data16 attribute for
21302 DImode ssemov types. Reorder operand constraints.
21303 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
21304 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
21305 attribute for SImode ssemov types. Reorder operand constraints.
21306
19321415
MJ
213072013-03-20 Martin Jambor <mjambor@suse.cz>
21308
21309 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
21310 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
21311
12211b99 213122013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
21313
21314 * config/rs6000/predicates.md (indexed_address, update_address_mem
21315 update_indexed_address_mem): New predicates.
21316 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
21317 attribute for load/store instructions.
21318 * config/rs6000/dfp.md (movsd_store): Likewise.
21319 (movsd_load): Likewise.
21320 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
21321 (unnamed HI->DI extend define_insn): Likewise.
21322 (unnamed SI->DI extend define_insn): Likewise.
21323 (unnamed QI->SI extend define_insn): Likewise.
21324 (unnamed QI->HI extend define_insn): Likewise.
21325 (unnamed HI->SI extend define_insn): Likewise.
21326 (unnamed HI->SI extend define_insn): Likewise.
21327 (extendsfdf2_fpr): Likewise.
21328 (movsi_internal1): Likewise.
21329 (movsi_internal1_single): Likewise.
21330 (movhi_internal): Likewise.
21331 (movqi_internal): Likewise.
21332 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
21333 attribute for load/store instructions.
21334 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
21335 instructions.
21336 (mov<mode>_softfloat): Likewise.
21337 (mov<mode>_hardfloat32): Likewise.
21338 (mov<mode>_hardfloat64): Likewise.
21339 (mov<mode>_softfloat64): Likewise.
21340 (movdi_internal32): Likewise.
21341 (movdi_internal64): Likewise.
21342 (probe_stack_<mode>): Likewise.
21343
213442013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
21345
21346 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
21347 floating point, and decimal floating point to reload iterator.
21348
21349 * config/rs6000/constraints.md (wl constraint): New constraints to
21350 return FLOAT_REGS if certain options are used to reduce the number
21351 of separate patterns that exist in the file.
21352 (wx constraint): Likewise.
21353 (wz constraint): Likewise.
21354
21355 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
21356 -mdebug=reg, print wg, wl, wx, and wz constraints.
21357 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
21358 Initialize the reload functions for 64-bit binary/decimal floating
21359 point types.
21360 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
21361 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
21362 create the buffer on the stack to overcome not having a 32-bit
21363 load and store.
21364 (rs6000_emit_move): Likewise.
21365 (rs6000_secondary_memory_needed_rtx): Likewise.
21366 (rs6000_alloc_sdmode_stack_slot): Likewise.
21367 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
21368 via xxlxor, just like DFmode 0.0.
21369
21370 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
21371 define as 1 if we are running on a power7 or newer.
21372 (enum r6000_reg_class_enum): Add new constraints.
21373
21374 * config/rs6000/dfp.md (movsd): Delete, combine with binary
21375 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
21376 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 21377 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
21378 (movsd splitter): Likewise.
21379 (movsd_hardfloat): Likewise.
21380 (movsd_softfloat): Likewise.
21381
21382 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
21383 binary and decimal floating point moves.
21384 (fmove_ok): New attributes to combine binary and decimal floating
21385 point moves, and to combine power6x (mfpgpr) moves along normal
21386 floating moves.
21387 (real_value_to_target): Likewise.
21388 (f32_lr): Likewise.
21389 (f32_lm): Likewise.
21390 (f32_li): Likewise.
21391 (f32_sr): Likewise.
21392 (f32_sm): Likewise.
21393 (f32_si): Likewise.
21394 (movsf): Combine binary and decimal floating point moves. Combine
21395 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 21396 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
21397 (mov<mode> for SFmode/SDmode); Likewise.
21398 (SFmode/SDmode splitters): Likewise.
21399 (movsf_hardfloat): Likewise.
21400 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
21401 (movsf_softfloat): Likewise.
21402 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
21403
21404 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
21405 wx and wz constraints.
21406
21407 * config/rs6000/constraints.md (wg constraint): New constraint to
21408 return FLOAT_REGS if -mmfpgpr (power6x) was used.
21409
21410 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
21411 constraint.
21412
21413 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
21414 -mdebug=reg, print wg, wl, wx, and wz constraints.
21415 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
21416 Initialize the reload functions for 64-bit binary/decimal floating
21417 point types.
21418 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
21419 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
21420 create the buffer on the stack to overcome not having a 32-bit
21421 load and store.
21422 (rs6000_emit_move): Likewise.
21423 (rs6000_secondary_memory_needed_rtx): Likewise.
21424 (rs6000_alloc_sdmode_stack_slot): Likewise.
21425 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
21426 via xxlxor, just like DFmode 0.0.
21427
c6d5ff83
MM
21428 * config/rs6000/dfp.md (movdd): Delete, combine with binary
21429 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
21430 with other moves by using conditional constraits (wg). Use LFIWZX
21431 and STFIWX for loading SDmode on power7.
21432 (movdd splitters): Likewise.
21433 (movdd_hardfloat32): Likewise.
21434 (movdd_softfloat32): Likewise.
21435 (movdd_hardfloat64_mfpgpr): Likewise.
21436 (movdd_hardfloat64): Likewise.
21437 (movdd_softfloat64): Likewise.
21438
21439 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
21440 64-bit binary and decimal floating point moves.
21441 (FMOVE64X): Likewise.
21442 (movdf): Combine 64-bit binary and decimal floating point moves.
21443 Combine power6x (mfpgpr) moves with other moves by using
21444 conditional constraits (wg).
21445 (mov<mode> for DFmode/DDmode): Likewise.
21446 (DFmode/DDmode splitters): Likewise.
21447 (movdf_hardfloat32): Likewise.
21448 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
21449 (movdf_softfloat32): Likewise.
21450 (movdf_hardfloat64_mfpgpr): Likewise.
21451 (movdf_hardfloat64): Likewise.
21452 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
21453 (movdf_softfloat64): Likewise.
21454 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
21455 (reload_<mode>_load): Move to later in the file so they aren't in
21456 the middle of the floating point move insns.
21457 (reload_<mode>_store): Likewise.
21458
21459 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
21460 constraint.
21461
21462 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
21463 constraint if -mdebug=reg.
bd059b26
UB
21464 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
21465 Enable using dd reload support if needed.
c6d5ff83
MM
21466
21467 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
21468 binary and decimal floating point moves in rs6000.md.
21469 (movtd_internal): Likewise.
21470
21471 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
21472 decimal floating point moves.
21473 (movtf): Likewise.
21474 (movtf_internal): Likewise.
21475 (mov<mode>_internal, TDmode/TFmode): Likewise.
21476 (movtf_softfloat): Likewise.
21477 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
21478
21479 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
21480 movdi_internal64, using wg constraint for move direct operations.
21481 (movdi_internal64): Likewise.
21482
21483 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
21484 MODES_TIEABLE_P for selected modes. Print the numerical value of
21485 the various virtual registers. Use GPR/FPR first/last values,
21486 instead of hard coding the register numbers. Print which modes
21487 have reload functions registered.
bd059b26
UB
21488 (rs6000_option_override_internal): If -mdebug=reg, trace the options
21489 settings before/after setting cpu, target and subtarget settings.
21490 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
21491 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
21492 (rs6000_secondary_reload_fail): Likewise.
21493 (rs6000_secondary_reload_inner): Likewise.
21494
21495 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
21496 macros for first/last GPR and FPR registers.
21497 (LAST_GPR_REGNO): Likewise.
21498 (FIRST_FPR_REGNO): Likewise.
21499 (LAST_FPR_REGNO): Likewise.
21500
21501 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
21502 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
21503 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
21504 (vcond<mode><mode>): Likewise.
21505 (vcondu<mode><mode>): Likewise.
21506 (vector_gtu<mode>): Likewise.
21507 (vector_gte<mode>): Likewise.
21508 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 21509 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
21510 (ior<mode>3): Likewise.
21511 (and<mode>3): Likewise.
21512 (one_cmpl<mode>2): Likewise.
21513 (nor<mode>3): Likewise.
21514 (andc<mode>3): Likewise.
21515
21516 * config/rs6000/constraints.md (wt constraint): New constraint
21517 that returns VSX_REGS if TImode is allowed in VSX registers.
21518
21519 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
21520 constant under VSX.
21521
21522 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
21523 similar to TImode, but it is restricted to being in the GPRs.
21524
21525 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
21526 TImode to occupy a single VSX register.
21527
21528 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
21529 -mvsx-timode for power7/power8.
21530 (power7 cpu): Likewise.
21531 (power8 cpu): Likewise.
21532
21533 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
21534 sure that TFmode/TDmode take up two registers if they are ever
21535 allowed in the upper VSX registers.
21536 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
21537 registers.
21538 (rs6000_init_hard_regno_mode_ok): Likewise.
21539 (rs6000_debug_reg_global): Add debugging for PTImode and wt
21540 constraint. Print if LRA is turned on.
21541 (rs6000_option_override_internal): Give an error if -mvsx-timode
21542 and VSX is not enabled.
21543 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
21544 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
21545 to reg+offset addressing. Use PTImode when checking offset
21546 addresses for validity.
21547 (reg_offset_addressing_ok_p): Likewise.
21548 (rs6000_legitimate_offset_address_p): Likewise.
21549 (rs6000_legitimize_address): Likewise.
21550 (rs6000_legitimize_reload_address): Likewise.
21551 (rs6000_legitimate_address_p): Likewise.
21552 (rs6000_eliminate_indexed_memrefs): Likewise.
21553 (rs6000_emit_move): Likewise.
21554 (rs6000_secondary_reload): Likewise.
21555 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
21556 reloads to fpr registers to continue to use reg+offset addressing,
21557 but 64-bit reloads to altivec registers need reg+reg addressing.
21558 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
21559 it. Treat LO_SUM like a PLUS operation.
21560 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 21561 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
21562 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
21563 registers to share a register with a smaller sized type, since VSX
21564 puts scalars in the upper 64-bits.
21565 (print_operand): Add support for PTImode.
21566 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
21567 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
21568 registers, but don't have arithmetic support.
21569 (rs6000_memory_move_cost): Add test for VSX.
21570 (rs6000_opt_masks): Add -mvsx-timode.
21571
21572 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
21573 for TImode.
21574 (VSs): Likewise.
21575 (VSr): Use wt constraint for TImode.
21576 (VSv): Drop TImode support.
21577 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
21578 (vsx_movti_64bit): Likewise.
21579 (vsx_movti_32bit): Likewise.
21580 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
21581 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
21582 one '?' on the appropriate output constraint. Do not allow TImode
21583 logical operations on 32-bit systems.
21584 (vsx_ior<mode>3): Likewise.
21585 (vsx_xor<mode>3): Likewise.
21586 (vsx_one_cmpl<mode>2): Likewise.
21587 (vsx_nor<mode>3): Likewise.
21588 (vsx_andc<mode>3): Likewise.
21589 (vsx_concat_<mode>): Likewise.
21590 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
21591
21592 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
21593 OPTION_MASK_VSX_TIMODE.
21594 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
21595 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
21596
21597 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
21598 (TI2 iterator): New iterator for TImode, PTImode.
21599 (wd mode attribute): Add values for vector types.
bd059b26
UB
21600 (movti_string): Replace TI move operations with operations for TImode
21601 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
21602 (mov<mode>_string, TImode/PTImode): Likewise.
21603 (movti_ppc64): Likewise.
21604 (mov<mode>_ppc64, TImode/PTImode): Likewise.
21605 (TI mode splitters): Likewise.
21606
21607 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
21608 constraint.
21609
1fc5eced
MG
216102013-03-20 Marc Glisse <marc.glisse@inria.fr>
21611
21612 PR tree-optimization/56355
21613 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
21614 Also handle integers with undefined overflow.
21615
22c4c869
CM
216162013-03-20 Catherine Moore <clm@codesourcery.com>
21617 Maciej W. Rozycki <macro@codesourcery.com>
21618 Tom de Vries <tom@codesourcery.com>
12211b99 21619 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
21620 Iain Sandoe <iain@codesourcery.com>
21621 Nathan Froyd <froydnj@codesourcery.com>
12211b99 21622 Chao-ying Fu <fu@mips.com>
22c4c869
CM
21623
21624 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 21625 Document new function attributes.
22c4c869
CM
21626 * doc/invoke.texi (minterlink-compressed, mmicromips,
21627 m14k, m14ke, m14kec): Document new options.
21628 (minterlink-mips16): Update documentation.
21629 * doc/md.texi (ZC, ZD): Document new constraints.
21630 * configure.ac (gcc_cv_as_micromips): Check if linker
21631 supports the .set micromips directive.
21632 * configure: Regenerate.
21633 * config.in: Regenerate.
21634 * config/mips/mips-tables.opt: Regenerate.
21635 * config/mips/micromips.md: New file.
21636 * constraints.md (ZC, ZD): New constraints.
21637 * config/mips/predicates.md (movep_src_register): New predicate.
21638 (movep_src_operand): New predicate.
21639 (non_volatile_mem_operand): New predicate.
21640 * config/mips/mips.md (multimem): New type.
21641 (length): Differentiate between 17-bit and 18-bit branch offsets.
21642 (MOVEP1, MOVEP2): New mode iterator.
33159866 21643 (mov_<load>l): Use ZC constraint.
22c4c869
CM
21644 (mov_<load>r): Likewise.
21645 (mov_<store>l): Likewise.
21646 (mov_<store>r): Likewise.
21647 (*branch_equality<mode>_inverted): Add microMIPS support.
21648 (*branch_equality<mode>): Likewise.
21649 (*jump_absolute): Likewise.
21650 (indirect_jump_<mode>): Likewise.
21651 (tablejump_<mode>): Likewise.
21652 (<optab>_internal): Likewise.
21653 (sibcall_internal): Likewise.
21654 (sibcall_value_internal): Likewise.
21655 (prefetch): Use constraint ZD.
21656 * config/mips/mips.opt (minterlink-compressed): New option.
21657 (minterlink-mips16): Now an alias for minterlink-compressed.
21658 (mmicromips): New option.
21659 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21660 (compare_and_swap_12): Likewise.
21661 (sync_add<mode>): Likewise.
21662 (sync_<optab>_12): Likewise.
21663 (sync_old_<optab>_12): Likewise.
21664 (sync_new_<optab>_12): Likewise.
21665 (sync_nand_12): Likewise.
21666 (sync_old_nand_12): Likewise.
21667 (sync_new_nand_12): Likewise.
21668 (sync_sub<mode>): Likewise.
21669 (sync_old_add<mode>): Likewise.
21670 (sync_old_sub<mode>): Likewise.
21671 (sync_new_add<mode>): Likewise.
21672 (sync_new_sub<mode>): Likewise.
21673 (sync_<optab><mode>): Likewise.
21674 (sync_old_<optab><mode>): Likewise.
21675 (sync_new_<optab><mode>): Likewise.
21676 (sync_nand<mode>): Likewise.
21677 (sync_old_nand<mode>): Likewise.
21678 (sync_new_nand<mode>): Likewise.
21679 (sync_lock_test_and_set<mode>): Likewise.
21680 (test_and_set_12): Likewise.
21681 (atomic_compare_and_swap<mode>): Likewise.
21682 (atomic_exchange<mode>_llsc): Likewise.
21683 (atomic_fetch_add<mode>_llsc): Likewise.
21684 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21685 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21686 (umips_save_restore_pattern_p): Likewise.
21687 (umips_load_store_pair_p): Likewise.
21688 (umips_output_load_store_pair): Likewise.
21689 (umips_movep_target_p): Likewise.
21690 (umips_12bit_offset_address_p): Likewise.
21691 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21692 (mips_base_mips16): Rename this...
21693 (mips_base_compression_flags): ...to this. Update all uses.
21694 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21695 (mips_mips16_decl_p): Delete.
21696 (mips_nomips16_decl_p): Delete.
33159866 21697 (mips_get_compress_on_flags): New function.
22c4c869
CM
21698 (mips_get_compress_off_flags): New function.
21699 (mips_get_compress_mode): New function.
21700 (mips_get_compress_on_name): New function.
21701 (mips_get_compress_off_name): New function.
21702 (mips_insert_attributes): Support multiple compression types.
21703 (mips_merge_decl_attributes): Likewise.
21704 (umips_12bit_offset_address_p): New function.
21705 (mips_start_function_definition): Emit .set micromips directive.
21706 (mips_call_may_need_jalx_p): New function.
21707 (mips_function_ok_for_sibcall): Add microMIPS support.
21708 (mips_print_operand_punctuation): Support short delay slots and
21709 compact jumps.
21710 (umips_swm_mask, umips_swm_encoding): New.
21711 (umips_build_save_restore): New function.
21712 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21713 (was_mips16_p): Remove.
21714 (old_compression_mode): New.
21715 (mips_set_compression_mode): New function.
21716 (mips_set_current_function): Add microMIPS support.
21717 (mips_option_override): Likewise.
21718 (umips_save_restore_pattern_p): New function.
21719 (umips_output_save_restore): New function.
21720 (umips_load_store_pair_p_1): New function.
21721 (umips_load_store_pair_p): New function.
21722 (umips_output_load_store_pair_1): New function.
21723 (umips_output_load_store_pair): New function.
21724 (umips_movep_target_p) New function.
21725 (mips_prepare_pch_save): Add microMIPS support.
21726 * config/mips/mips.h (TARGET_COMPRESSION): New.
21727 (TARGET_CPU_CPP_BUILTINS): Update macro
21728 to use new compression flags and to support microMIPS.
21729 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21730 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21731 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21732 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21733 (ASM_SPEC): Support mmicromips and mno-micromips.
21734 (M16STORE_REG_P): New macro.
21735 (MIPS_CALL): Support TARGET_MICROMIPS.
21736 (MICROMIPS_J): New macro.
21737 (mips_base_mips16): Rename this...
21738 (mips_base_compression_flags): ...to this.
21739 (UMIPS_12BIT_OFFSET_P): New macro.
21740 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21741 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
217422013-03-20 Richard Biener <rguenther@suse.de>
21743
21744 PR tree-optimization/56661
21745 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
21746 the result does not have to be distinct.
21747
54714c68
RB
217482013-03-20 Richard Biener <rguenther@suse.de>
21749
21750 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
21751 remap_gimple_op_r.
21752
cca1130d 217532013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 21754 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
21755
21756 PR rtl-optimization/56605
21757 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
21758
2a930377
UB
217592013-03-20 Uros Bizjak <ubizjak@gmail.com>
21760
21761 PR bootstrap/56656
21762 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
21763 that require movd instead of movq.
21764
d6d305fe
RB
217652013-03-20 Richard Biener <rguenther@suse.de>
21766
21767 * tree-ssa-structalias.c (struct variable_info): Add pointer
21768 to the first field of an aggregate with sub-vars. Make
21769 this and the pointer to the next subfield its ID.
21770 (vi_next): New function.
21771 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
21772 storedanything_id, integer_id): Increment by one.
21773 (new_var_info, get_call_vi, lookup_call_clobber_vi,
21774 get_call_clobber_vi): Adjust.
21775 (solution_set_expand): Simplify and speedup.
21776 (solution_set_add): Inline into ...
21777 (set_union_with_increment): ... this. Adjust accordingly.
21778 (do_sd_constraint): Likewise.
21779 (do_ds_constraint): Likewise.
21780 (do_complex_constraint): Simplify.
21781 (build_pred_graph): Adjust.
21782 (solve_graph): Likewise. Simplify and speedup.
21783 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
21784 get_constraint_for_component_ref, get_constraint_for_1,
21785 first_vi_for_offset, first_or_preceding_vi_for_offset,
21786 create_function_info_for, create_variable_info_for_1,
21787 create_variable_info_for, intra_create_variable_infos): Adjust.
21788 (init_base_vars): Push NULL for ID zero.
21789 (compute_points_to_sets): Adjust.
21790
a271b42d
RB
217912013-03-20 Richard Biener <rguenther@suse.de>
21792
21793 * cfgloop.c (verify_loop_structure): Streamline and avoid
21794 ICEing on corrupt loop tree.
21795 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
21796 loop tree.
21797
ebd65954
RB
217982013-03-20 Richard Biener <rguenther@suse.de>
21799
21800 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
21801 check whether an SSA update is needed.
21802
4547b7ee
RS
218032013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
21804
21805 * config/mips/constraints.md (T): Rename to...
21806 (Yf): ...this.
21807 (U): Rename to...
21808 (Yd): ...this.
21809 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
21810 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
21811
0b8cdc58
IB
218122013-03-19 Ian Bolton <ian.bolton@arm.com>
21813
21814 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
21815 (*subsi3_carryin_uxtw): Likewise.
21816
5977a10d
IB
218172013-03-19 Ian Bolton <ian.bolton@arm.com>
21818
21819 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
21820 (*rorsi3_insn_uxtw): Likewise.
21821
bd83ff2c
IB
218222013-03-19 Ian Bolton <ian.bolton@arm.com>
21823
21824 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
21825 (*extrsi5_insn_uxtw): Likewise.
21826
ba65123c
RB
218272013-03-19 Richard Biener <rguenther@suse.de>
21828
21829 PR tree-optimization/56273
21830 * passes.c (init_optimization_passes): Move second VRP after DOM.
21831
2eac0476
UB
218322013-03-19 Uros Bizjak <ubizjak@gmail.com>
21833
21834 * config/i386/i386.md (*movti_internal): Merge from
21835 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
21836 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
21837 nox64 isa attributes.
21838
6e55eda7
RB
218392013-03-18 Richard Biener <rguenther@suse.de>
21840
21841 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
21842 (unite): Likewise.
21843 (merge_node_constraints): Likewise.
21844 (build_succ_graph): Likewise.
21845 (valid_graph_edge): Inline into single caller.
21846 (unify_nodes): Likewise. Use bitmap_set_bit return value
21847 and cache varinfo.
21848 (scc_visit): Fix formatting and variable use.
21849 (do_sd_constraint): Use gcc_checking_assert.
21850 (do_ds_constraint): Likewise.
21851 (do_complex_constraint): Likewise.
21852 (condense_visit): Likewise. Cleanup.
21853 (dump_pred_graph): New function.
21854 (perform_var_substitution): Dump the pred-graph before
21855 variable substitution.
21856 (find_equivalent_node): Use gcc_checking_assert.
21857 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
21858
4bdd44c4
RB
218592013-03-18 Richard Biener <rguenther@suse.de>
21860
21861 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
21862 Remove cond_expr_stmt_list argument and do not gimplify the
21863 built expression.
21864 (vect_loop_versioning): Adjust.
21865 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21866 Cleanup to use less temporaries.
21867 (vect_create_data_ref_ptr): Cleanup.
21868
38c56a5b
JJ
218692013-03-18 Jakub Jelinek <jakub@redhat.com>
21870
21871 PR tree-optimization/56635
21872 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
21873 require types_compatible_p types.
21874
20b2e6a0
NC
218752013-03-18 Nick Clifton <nickc@redhat.com>
21876
a6178a25
NC
21877 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
21878 spurious backslash.
21879
20b2e6a0
NC
21880 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
21881 Add missing line to comment describing function.
21882
92608d0e
RB
218832013-03-18 Richard Biener <rguenther@suse.de>
21884
21885 PR tree-optimization/56210
21886 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21887 Handle string / character search functions.
21888 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21889
31348d52
RB
218902013-03-18 Richard Biener <rguenther@suse.de>
21891
21892 PR middle-end/56483
21893 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
21894 and implement properly.
21895 * gimple.h (gimple_cond_single_var_p): Remove.
21896
fcac74a1
RB
218972013-03-18 Richard Biener <rguenther@suse.de>
21898
21899 * tree-data-ref.h (find_data_references_in_loop): Declare.
21900 * tree-data-ref.c (get_references_in_stmt): Use a stack
21901 vector pre-allocated in the callers.
21902 (find_data_references_in_stmt): Adjust.
21903 (graphite_find_data_references_in_stmt): Likewise.
21904 (create_rdg_vertices): Likewise.
21905 (find_data_references_in_loop): Export.
21906 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
21907 Compute dependences here...
21908 (vect_analyze_data_refs): ...not here. When we encounter
21909 a non-vectorizable data reference in basic-block vectorization
21910 truncate the data reference vector. Do not bother to
21911 fixup data-dependence information for gather loads.
21912 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
21913 of data references, as reported.
21914
0d5a1b56
RB
219152013-03-18 Richard Biener <rguenther@suse.de>
21916
21917 PR tree-optimization/3713
21918 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
21919 has_constants and expr.
21920 (stmt_has_constants): Properly valueize SSA names when deciding
21921 whether the stmt has constants.
21922
789c34e3
RB
219232013-03-18 Richard Biener <rguenther@suse.de>
21924
21925 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
21926 whole function when there is nothing to do.
21927 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
21928 * tree-vectorizer.c (vectorize_loops): Update virtual and
21929 loop-closed SSA once.
21930 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
21931
076b4605
RB
219322013-03-18 Richard Biener <rguenther@suse.de>
21933
21934 PR middle-end/56113
21935 * domwalk.c (bb_postorder): New global static.
21936 (cmp_bb_postorder): New function.
21937 (walk_dominator_tree): Replace scheme imposing an order for
21938 visiting dominator sons by one sorting them at the time they
21939 are pushed on the stack.
21940
bdb01696
RB
219412013-03-18 Richard Biener <rguenther@suse.de>
21942
21943 PR tree-optimization/39326
21944 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
21945 (struct mem_ref): Replace mem member with ao_ref typed member.
21946 (MEM_ANALYZABLE): Adjust.
21947 (memref_eq): Likewise.
21948 (mem_ref_alloc): Likewise.
21949 (gather_mem_refs_stmt): Likewise.
21950 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
21951 (execute_sm_if_changed_flag_set): Adjust.
21952 (execute_sm): Likewise.
21953 (ref_always_accessed_p): Likewise.
21954 (refs_independent_p): Likewise.
21955 (can_sm_ref_p): Likewise.
21956
12d2dc5e
JJ
219572013-03-18 Jakub Jelinek <jakub@redhat.com>
21958
21959 PR c/56566
21960 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
21961 return 1 even for !unsignedp.
21962
286fb677
UB
219632013-03-17 Uros Bizjak <ubizjak@gmail.com>
21964
21965 * config/i386/i386.md (isa): Add x64 and nox64.
21966 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
21967 (*pushtf): Enable *roF alternative for x64 isa only.
21968 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
21969 mode attribute of integer alternatives to DImode for TARGET_64BIT.
21970 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
21971 (*movtf_internal): Merge from *movtf_internal_rex64 and
21972 *movtf_internal_sse. Use x64 and nox64 isa attributes.
21973 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
21974 nox64 isa attributes.
21975 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
21976 nox64 isa attributes.
21977 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
21978
88b97037
UB
219792013-03-17 Uros Bizjak <ubizjak@gmail.com>
21980
21981 * config/alpha/alpha.c (TARGET_LRA_P): New define.
21982
9f4f1735
JJ
219832013-03-17 Jakub Jelinek <jakub@redhat.com>
21984
21985 PR target/56640
21986 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
21987 class names. Remove trailing comma after "ALL_REGS".
21988
48f4a6fa
JH
219892013-03-16 Jan Hubicka <jh@suse.cz>
21990
21991 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
21992 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
21993 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
21994 of cgraph_get_create_node.
21995 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21996
98e81123
JM
219972013-03-16 Jason Merrill <jason@redhat.com>
21998
21999 PR debug/49090
22000 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
22001 with DW_AT_default_value.
22002
8a298c04
JJ
220032013-03-16 Jakub Jelinek <jakub@redhat.com>
22004
22005 * BASE-VER: Set to 4.9.0.
22006
4323afa0
AK
220072013-03-14 Andi Kleen <ak@linux.intel.com>
22008
22009 PR target/56619
22010 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
22011 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
22012 Document _x* TSX intrinsics.
22013
b3c0d469
JJ
220142013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
22015 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
22016
22017 * configure.ac: Add MicroBlaze TLS support detection.
22018 * configure: Regenerate.
88b97037
UB
22019 * config/microblaze/microblaze-protos.h
22020 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
22021 symbol_mentioned_p, label_mentioned_p): Add prototypes.
22022 * config/microblaze/microblaze.c (microblaze_address_type): Add
22023 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
22024 (microblaze_address_info): Add tls_reloc.
22025 (TARGET_HAVE_TLS): Define.
22026 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
22027 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
22028 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
22029 load_tls_operand, microblaze_call_tls_get_addr,
22030 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
22031 (microblaze_classify_unspec): Handle UNSPEC_TLS.
22032 (get_base_reg): Use microblaze_tls_symbol_p.
22033 (microblaze_classify_address): Handle TLS.
88b97037
UB
22034 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
22035 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
22036 (microblaze_legitimize_address): Handle TLS.
22037 (microblaze_address_insns): Handle ADDRESS_TLS.
22038 (pic_address_needs_scratch): Handle TLS.
22039 (print_operand_address): Handle TLS.
22040 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
22041 (microblaze_expand_move): Handle TLS.
88b97037
UB
22042 (microblaze_legitimate_constant_p): Check
22043 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
22044 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
22045 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
22046 (PIC_OFFSET_TABLE_REGNUM): Set.
22047 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
22048 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
22049 (addsi3, movsi_internal2, movdf_internal): Update constraints
22050 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
22051 (move_operand): Redefine as move_src_operand,
22052 check microblaze_tls_referenced_p.
8cc9a5a5 22053
d803a491
IB
220542013-03-14 Ian Bolton <ian.bolton@arm.com>
22055
22056 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
22057 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
22058
a8504f22
IB
220592013-03-14 Ian Bolton <ian.bolton@arm.com>
22060
22061 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
22062 CC mode for AND.
22063
df2dfaea
JJ
220642013-03-14 Jakub Jelinek <jakub@redhat.com>
22065
fbd28bc3
JJ
22066 PR tree-optimization/53265
22067 * common.opt (Waggressive-loop-optimizations): New option.
22068 * tree-ssa-loop-niter.c: Include tree-pass.h.
22069 (do_warn_aggressive_loop_optimizations): New function.
22070 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
22071 if number_of_latch_executions returned constant.
22072 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
22073 early. If number_of_latch_executions returned constant, set
22074 nb_iterations_upper_bound back to it.
22075 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
22076 field.
22077 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
22078 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
22079
df2dfaea
JJ
22080 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
22081 (MULTILIB_OSDIRNAMES): Set.
22082 * genmultilib: If defaultosdirname doesn't start with :: , set
22083 defaultosdirname2 instead, clear it and emit two . multilib_raw
22084 entries instead of just one.
22085
ee0d2b68
KK
220862013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
22087
22088 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22089 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
22090 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22091 (SUBTARGET_OVERRIDE_OPTIONS): New.
22092
decc676e
OE
220932013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
22094
22095 PR target/49880
22096 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
22097 (musermode): Convert to Var(TARGET_USERMODE).
22098 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
22099 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
22100 * config/sh/sh.c (sh_option_override): Use
22101 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
22102 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
22103 condition.
22104 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
22105 TARGET_SH4.
22106 (udivsi3_i4_single, divsi3_i4_single): Use
22107 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
22108
f4b719c7
DK
221092013-03-13 Dave Korn <dave.korn.cygwin@....>
22110
22111 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
22112 default setting.
22113
c40eced0
RB
221142013-03-13 Richard Biener <rguenther@suse.de>
22115
22116 PR tree-optimization/56608
22117 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
22118 calls when vectorizing basic-blocks.
22119
1bfa5973
JJ
221202013-03-13 Jakub Jelinek <jakub@redhat.com>
22121
22122 PR plugins/45078
22123 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
22124 tm_file.
22125
6fcf5434
JJ
221262013-03-12 Jakub Jelinek <jakub@redhat.com>
22127
22128 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
22129
4f38fa8c
JH
221302013-03-11 Jan Hubicka <jh@suse.cz>
22131
22132 PR lto/56557
22133 * lto-streamer-out.c (output_symbol_p): Skip references from
22134 constructors of external variables.
22135
c5c5ba89
JH
221362013-03-11 Jan Hubicka <jh@suse.cz>
22137
22138 PR middle-end/56571
22139 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
22140 from pseudos.
22141 * emit-rtl.c (verify_rtx_sharing): Likewise.
22142 (copy_insn_1): Likewise.
22143 * rtl.c (copy_rtx): Likewise.
22144
c2a939b1
GJL
221452013-03-11 Georg-Johann Lay <avr@gjlay.de>
22146
22147 PR target/56591
22148 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
22149 output_operand_lossage message.
88b97037 22150
3c3279fb
RE
221512013-03-11 Richard Earnshaw <rearnsha@arm.com>
22152
22153 PR target/56470
22154 * arm.c (shift_op): Validate RTL pattern on the fly.
22155 (arm_print_operand, case 'S'): Don't use shift_operator to validate
22156 the RTL.
22157
aef5ef9d
JDA
221582013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22159
22160 PR target/56347
22161 * config/pa/pa.md (call_value): Check for calls to powf and direct to
22162 new call patterns that clobber %fr12.
22163 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
22164 split and postreload patterns.
22165 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
22166 registers %fr12 and %fr12R as call used.
22167
456610d3
SB
221682013-03-09 Steven Bosscher <steven@gcc.gnu.org>
22169
22170 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
22171 (canon_address, record_store, replace_read, check_mem_read_rtx,
22172 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
22173 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
22174 rest_of_handle_dse): Likewise.
22175
4b1baac8
RS
221762013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
22177
22178 PR middle-end/56524
22179 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
22180 Add base_optabs.
22181 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
22182 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
22183 (save_optabs_if_changed): Replace with...
22184 (init_tree_optimization_optabs): ...this.
22185 * optabs.c (save_optabs_if_changed): Rename to...
22186 (init_tree_optimization_optabs): ...this. Take the optimization node
22187 as argument. Do nothing if the base optabs are already correct.
22188 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
22189 to recompute optabs.
22190 * function.h (function): Remove optabs field.
22191 * function.c (invoke_set_current_function_hook): Call
22192 init_tree_optimization_optabs. Use the result to initialize
22193 this_fn_optabs.
22194
b7a78683
AH
221952013-02-27 Aldy Hernandez <aldyh@redhat.com>
22196
22197 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
22198 if GTMA_HAS_NO_INSTRUMENTATION.
22199 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
22200 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
22201 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
22202 * gimple-pretty-print.c (dump_gimple_transaction): Handle
22203 GTMA_HAS_NO_INSTRUMENTATION.
22204
6384c29b
JJ
222052013-03-08 Jakub Jelinek <jakub@redhat.com>
22206
22207 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
22208 libasan_preinit.o.
22209
ecd4f20a
MP
222102013-03-08 Marek Polacek <polacek@redhat.com>
22211 Jakub Jelinek <jakub@redhat.com>
22212
22213 PR tree-optimization/56478
22214 * predict.c (is_comparison_with_loop_invariant_p): Change the
22215 type of loop_step to tree.
22216 (predict_loops): Adjust.
22217 (predict_iv_comparison): Perform the computations on double_ints.
22218
64366d35
RB
222192013-03-08 Richard Biener <rguenther@suse.de>
22220
22221 PR tree-optimization/56570
22222 * tree-cfg.c (verify_expr_location_1): Verify locations for
22223 DECL_DEBUG_EXPR.
22224 * tree-sra.c (create_access_replacement): Strip locations
22225 from DECL_DEBUG_EXPRs.
22226
a9d5a059
RB
222272013-03-08 Richard Biener <rguenther@suse.de>
22228
22229 * tree-inline.c (expand_call_inline): Do not associate
22230 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
22231 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
22232
b7aa4e9a
RB
222332013-03-08 Richard Biener <rguenther@suse.de>
22234
22235 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
22236 or block changes with -Og. Fix for location / block encoding
22237 changes and PHI arguments with locations.
22238
c4c2f9fa
SB
222392013-03-07 Steven Bosscher <steven@gcc.gnu.org>
22240
22241 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
22242 for all counters.
22243 (struct output_info): Likewise.
22244 (register_overhead): Remove bad gcc_assert.
22245 (bitmap_find_bit): If there is only a single bitmap element, do not
22246 count a miss as a search.
22247 (print_statistics): Update for counter type changes.
22248 (dump_bitmap_statistics): Likewise. Print headers such that they
22249 are properly lined up with the printed counters.
22250
5bf6606a
JJ
222512013-03-07 Jakub Jelinek <jakub@redhat.com>
22252
22253 PR tree-optimization/56559
22254 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
22255 check that it has only a single use.
22256
2c653d46
RB
222572013-03-07 Richard Biener <rguenther@suse.de>
22258
22259 * doc/invoke.texi (fwhole-program): Discourage use in combination
22260 with -flto.
22261
a72d8780
JJ
222622013-03-06 Jakub Jelinek <jakub@redhat.com>
22263
01a454df
JJ
22264 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
22265
c1781047
JJ
22266 PR tree-optimization/56539
22267 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
22268 instead of GSI_CONTINUE_LINKING as last argument to
22269 force_gimple_operand_gsi. Adjust function comment.
22270
9772c47a
JJ
22271 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
22272 aarch64-cores.def.
22273
a72d8780
JJ
22274 PR middle-end/56548
22275 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
22276 promoted mode, convert the result back to the original mode.
22277
fa5556de
RB
222782013-03-06 Richard Biener <rguenther@suse.de>
22279
22280 PR middle-end/56294
22281 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
22282 (insert_updated_phi_nodes_compare_uids): New function.
22283 (update_ssa): Sort symbols_to_rename after UID before
22284 traversing it to insert PHI nodes.
22285
010403d1
RB
222862013-03-06 Richard Biener <rguenther@suse.de>
22287
22288 PR middle-end/50494
22289 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
22290 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
22291
22292 Revert
22293 2013-02-13 Richard Biener <rguenther@suse.de>
22294
22295 PR lto/50494
22296 * varasm.c (output_constant_def_1): Get the decl representing
22297 the constant as argument.
22298 (output_constant_def): Wrap output_constant_def_1.
22299 (make_decl_rtl): Use output_constant_def_1 with the decl
22300 representing the constant.
22301 (build_constant_desc): Optionally re-use a decl already
22302 representing the constant.
22303 (tree_output_constant_def): Adjust.
22304
3c27ce4c
JY
223052013-03-06 Joey Ye <joey.ye@arm.com>
22306
22307 PR lto/50293
22308 * gcc.c (convert_white_space): New function.
22309 (main): Handles white space in function name.
22310
8f6d1c86
OE
223112013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
22312
22313 PR target/56529
22314 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
22315 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
22316 to SH_DIV_CALL_TABLE for TARGET_SH2.
22317 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
22318 list.
22319 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
22320 call-table options.
22321
798a209f
SA
223222013-03-05 Sterling Augustine <saugustine@google.com>
22323 Cary Coutant <ccoutant@google.com>
22324
22325 PR debug/55364
22326 * dwarf2out.c (resolve_addr): Don't call
22327 remove_loc_list_addr_table_entries a second time for the same
22328 expression.
22329
6cfa417f 223302013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 22331
6cfa417f
JJ
22332 PR debug/56510
22333 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
22334 (avoid_complex_debug_insns): New function.
22335 (expand_debug_locations): Call it.
22336
22337 PR rtl-optimization/56484
22338 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
22339 lifetimes of hard registers on small register class machines.
22340
223412013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
22342
22343 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 22344 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 22345 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
22346 fast_interrupt.
22347 (microblaze_fast_interrupt_function_p): New function.
22348 (microblaze_is_interrupt_handler): Rename to
22349 microblaze_is_interrupt_variant and add fast_interrupt check.
22350 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
22351 (save_restore_insns): Likewise.
22352 (compute_frame_size): Likewise.
22353 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
22354 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
22355 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
22356 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
22357 microblaze_is_interrupt_variant.
22358
731aefac
KT
223592013-03-05 Kai Tietz <ktietz@redhat.com>
22360
22361 * sdbout.c (sdbout_one_type): Switch to current function's section
22362 supporting cold/hot.
22363
a72d8780 223642013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
22365
22366 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
22367 -mxl-reorder.
22368
334e71e8
JJ
223692013-03-05 Jakub Jelinek <jakub@redhat.com>
22370
0b50e654
JJ
22371 PR middle-end/56461
22372 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
22373 if VALGRIND_GET_VBITS is defined, temporarily make object
22374 memory all defined, and restore previous valgrind addressability
22375 and definability afterwards. Free this_object at the end.
22376
4ccf8f43
JJ
22377 PR middle-end/56461
22378 * lra.c (lra): Call lra_clear_live_ranges if live_p,
22379 right before calling lra_create_live_ranges, also call it
22380 when clearing live_p. Only call lra_clear_live_ranges
22381 at the end if live_p.
22382
334e71e8
JJ
22383 PR middle-end/56461
22384 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
22385
9ca966ca
RB
223862013-03-05 Richard Biener <rguenther@suse.de>
22387
22388 PR tree-optimization/56521
22389 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
22390 value-id.
22391
d273b176
SB
223922013-03-05 Steven Bosscher <steven@gcc.gnu.org>
22393
22394 PR c++/55135
22395 * except.h (remove_unreachable_eh_regions): New prototype.
22396 * except.c (remove_eh_handler_splicer): New function, split out
22397 of remove_eh_handler.
22398 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
22399 warning about running it on many EH regions one at a time.
22400 (remove_unreachable_eh_regions_worker): New function, walk the
22401 EH tree in depth-first order and remove non-marked regions.
22402 (remove_unreachable_eh_regions): New function.
22403 * tree-eh.c (mark_reachable_handlers): New function, split out
22404 from remove_unreachable_handlers.
22405 (remove_unreachable_handlers): Use mark_reachable_handlers and
22406 remove_unreachable_eh_regions.
22407 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
22408 and remove_unreachable_eh_regions.
22409
5e7f1aef
RB
224102013-03-05 Richard Biener <rguenther@suse.de>
22411
22412 PR middle-end/56525
22413 * loop-init.c (fix_loop_structure): Remove loops in two stages,
22414 not freeing them until the end.
22415
f276b762
AK
224162013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22417
22418 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
22419
12a43ab8
RB
224202013-03-05 Richard Biener <rguenther@suse.de>
22421
22422 PR tree-optimization/56270
22423 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
22424 of loads after scheduling an SLP instance.
22425
93675444
JJ
224262013-03-05 Jakub Jelinek <jakub@redhat.com>
22427
db4138e3
JJ
22428 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
22429 tic6x.exp.
22430 (check_gcc_parallelize): Run guality.exp as a separate job from
22431 vect.exp with unsorted.exp and $(dg_target_exps) separately from
22432 struct-layout-1.exp with stackalign.exp.
22433
dd3d1ec0
JJ
22434 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
22435
b8d381a3
JJ
22436 PR middle-end/56461
22437 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
22438 load_index sbitmap even if some bit in it isn't set.
22439
b4f9786b
JJ
22440 PR middle-end/56461
22441 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
22442 (discover_iteration_bound_by_body_walk): Change queues to
22443 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
22444 spelling in comment. Call safe_push on queues[bound_index] directly.
22445 Release queues[queue_index] in every iteration unconditionally.
22446 Release bounds vector.
22447
93675444
JJ
22448 PR middle-end/56461
22449 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
22450 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
22451 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
22452 inner_phis vector.
22453
3e492e9c
RB
224542013-03-05 Richard Biener <rguenther@suse.de>
22455
22456 PR lto/56515
22457 * tree-inline.c (remap_blocks_to_null): New function.
22458 (expand_call_inline): When expanding a call stmt without
22459 an associated block inline remap all callee blocks to NULL.
22460
a5d1569a
JJ
224612013-03-05 Jakub Jelinek <jakub@redhat.com>
22462
86efb5cd
JJ
22463 PR rtl-optimization/56494
22464 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
22465 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
22466 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
22467
85f5dbea
JJ
22468 PR middle-end/56461
22469 * sel-sched-ir.c (free_sched_pools): Release
22470 succs_info_pool.stack[succs_info_pool.max_top] vectors too
22471 if succs_info_pool.max_top isn't -1.
22472
a5d1569a
JJ
22473 PR bootstrap/56509
22474 * opts.c (opts_obstack, opts_concat): Moved to...
22475 * opts-common.c (opts_obstack, opts_concat): ... here.
22476
4432aa6c
JJ
224772013-03-04 Jakub Jelinek <jakub@redhat.com>
22478
22479 PR middle-end/56461
22480 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
22481
f3a1fb91
MJ
224822013-03-04 Martin Jambor <mjambor@suse.cz>
22483
22484 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
22485 all appropriate places.
22486
22110e6c
EB
224872013-01-04 Eric Botcazou <ebotcazou@adacore.com>
22488
22489 PR tree-optimization/56424
22490 * ipa-split.c (split_function): Do not set the RSO flag if result is
22491 not by reference and its type is a register type.
22492
a72d8780 224932013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 22494
88b97037 22495 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 22496 (microblaze_legitimate_pic_operand): Likewise
88b97037 22497 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
22498 new function microblaze_legitimate_pic_operand
22499 * config/microblaze/microblaze-protos.h
22500 (microblaze_legitimate_pic_operand): Declare.
22501
a72d8780 225022013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 22503
a72d8780 22504 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 22505 New predicate for supported rtx code types.
a72d8780 22506 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
22507 call_insn_simple_operand predicate.
22508
541d9ac8
JJ
225092013-03-04 Jakub Jelinek <jakub@redhat.com>
22510
5eb010bc
JJ
22511 PR middle-end/56461
22512 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
22513 partitions.ordered_remove.
22514
30862efc
JJ
22515 PR middle-end/56461
22516 * tree-vect-stmts.c (vectorizable_conversion): Don't call
22517 vec_oprnds0.create (1) for modifier == NONE.
22518
8930f723
JJ
22519 PR middle-end/56461
22520 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
22521 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
22522 vec_oprnds1 right before pushing anything to it for
22523 scalar_shift_arg.
22524
541d9ac8
JJ
22525 PR middle-end/56461
22526 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
22527 set nbbs to 0 instead of having separate code path.
22528 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
22529 instead of false as last argument if returning NULL.
22530
7aa7f2e3
SL
225312013-03-03 Sandra Loosemore <sandra@codesourcery.com>
22532
22533 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
22534 the attribute is now called "target" instead of "option".
22535 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
22536 * doc/tm.texi.in (Target Attributes): Likewise document the correct
22537 attribute/pragma name for TARGET_OPTION_VALID_P and
22538 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
22539 * doc/tm.texi: Regenerated.
22540
8930f723 225412013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 22542
8930f723 22543 * config/microblaze/microblaze.c:
cb8a1637 22544 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
22545 * config/microblaze/microblaze.h: Add -mxl-reorder to
22546 DRIVER_SELF_SPECS.
22547 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
22548 instructions emitted if TARGET_REORDER.
88b97037
UB
22549 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
22550 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 22551 separately.
cb8a1637 22552
4dc1d68c
XDL
225532013-03-01 Xinliang David Li <davidxl@google.com>
22554
22555 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
22556 walk length.
22557
689eaba3
JJ
225582013-03-01 Jakub Jelinek <jakub@redhat.com>
22559
9d676bf6
JJ
22560 PR middle-end/56461
22561 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
22562 vector even when returning true. Fix up function comment formatting.
22563
caff7edf
JJ
22564 PR middle-end/56461
22565 * ira-build.c (ira_loop_nodes_count): New variable.
22566 (create_loop_tree_nodes): Initialize it.
22567 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
22568
b6b9227d
JJ
22569 PR middle-end/56461
22570 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
22571 method on dr_chain and result_chain.
22572 * tree-vect-stmts.c (vectorizable_store): Only call
22573 result_chain.create if j == 0.
22574
689eaba3
JJ
22575 PR middle-end/56461
22576 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
22577 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
22578 before overwriting it.
22579
40bf31ed
TB
225802013-03-01 Tobias Burnus <burnus@net-b.de>
22581
22582 * doc/extended.texi (C Extensions): Change order in @menu
22583 to match @node.
22584 (Other MIPS Built-in Functions): Move last MIPS entry before
22585 "picoChip Built-in Functions".
22586 (SH Built-in Functions): Move after RX Built-in Functions.
22587 * doc/gcc.texi (Introduction): Change order in @menu
22588 to match @node.
22589 * doc/md.texi (Constraints): Ditto.
22590 * gty.texi (Type Information): Ditto.
22591 (User-provided marking routines for template types): Make
22592 subsection.
22593 * doc/invoke.texi (AArch64 Options): Move before
22594 "Adapteva Epiphany Options".
22595
e664c61c
KS
225962013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
22597 Jakub Jelinek <jakub@redhat.com>
22598
22599 PR sanitizer/56454
22600 * asan.c (gate_asan): Lookup no_sanitize_address instead of
22601 no_address_safety_analysis attribute.
22602 * doc/extend.texi (no_address_safety_attribute): Rename to
22603 no_sanitize_address attribute, mention no_address_safety_analysis
22604 attribute as deprecated alias.
22605
37b5ec8f
JJ
226062013-02-28 Jakub Jelinek <jakub@redhat.com>
22607
22608 PR middle-end/56461
22609 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
22610 type to vec<vec<tree> > *.
22611 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
22612 to be vec<tree> instead of vec<tree> *, set vec_defs
22613 to vNULL and call vec_defs.create (number_of_vects), adjust other
22614 uses of vec_defs.
22615 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
22616 vectorizable_condition): Adjust vect_get_slp_defs callers.
22617
ba96cdfb
JG
226182013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22619
22620 * config/aarch64/aarch64.c
22621 (aarch64_float_const_representable): Remove unused variable.
22622
6f549691
JG
226232013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22624
22625 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
22626
af55e82d
JG
226272013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22628
22629 * config/aarch64/aarch64-builtins.c
22630 (aarch64_init_simd_builtins): Make static.
22631
1df3f464
JG
226322013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22633
22634 * config/aarch64/aarch64.c
22635 (aarch64_simd_make_constant): Make static.
22636
f8f42513
MJ
226372013-02-28 Martin Jambor <mjambor@suse.cz>
22638
22639 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
22640 with no initialization to the RHS of debug statements.
22641
b48b3fc4
MJ
226422013-02-28 Martin Jambor <mjambor@suse.cz>
22643
22644 PR tree-optimization/56294
22645 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
22646 Adjust dumping.
22647 (get_access_replacement): Do not call create_access_replacement.
22648 Assert a replacement exists.
22649 (get_repl_default_def_ssa_name): Create the replacement declaration
22650 itself.
22651
c3ae224c
RR
226522013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22653
22654 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
22655 final_end_function.
22656
45fa0eef
MP
226572013-02-28 Marek Polacek <polacek@redhat.com>
22658
22659 PR rtl-optimization/56466
22660 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
22661 if we're changing a loop.
22662 (peel_loops_completely): Likewise.
22663
502c067d
PC
226642013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
22665
22666 PR c++/55813
22667 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
22668
ff24afc8
GJL
226692013-02-28 Georg-Johann Lay <avr@gjlay.de>
22670
22671 PR target/56445
22672 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
22673 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
22674 INTX_FTYPE_FX, FX_FTYPE_INTX.
22675 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
22676
c7b1fc1b
GJL
226772013-02-28 Georg-Johann Lay <avr@gjlay.de>
22678
22679 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
22680 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
22681 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
22682 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
22683 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
22684 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
22685 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
22686 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
22687 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
22688 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
22689 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
22690 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
22691 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
22692 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
22693 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
22694 (avrxmega6): Increase max flash segments from 5 to 6.
22695 * config/avr/t-multilib: Regenerate.
22696 * config/avr/avr-tables.opt: Regenerate.
22697 * doc/avr-mmcu.texi: Regenerate.
22698
4a0e3cfe
GJL
226992013-02-28 Georg-Johann Lay <avr@gjlay.de>
22700
22701 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
22702 (avr_device_to_arch): Rename to avr_device_to_ld.
22703 (avr_device_to_as): New prototype.
22704 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
22705 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
22706 * config/avr/driver-avr.c (avr_device_to_as): New.
22707 (avr_device_to_arch): Rename to avr_device_to_ld.
22708
97785e52
JJ
227092013-02-27 Jakub Jelinek <jakub@redhat.com>
22710
3f292312
JJ
22711 PR middle-end/56461
22712 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
22713 method on dr_chain and result_chain.
22714
a344216b
JJ
22715 PR middle-end/56461
22716 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
22717 pointer_set_destroy on not_executed_last_iteration.
22718
f121ad02 22719 PR middle-end/56461
88b97037 22720 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 22721
307f83a3
JJ
22722 PR middle-end/56461
22723 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
22724 FOR_EACH_DEFINED_FUNCTION when freeing state.
22725
e19624ee
JJ
22726 PR middle-end/56461
22727 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
22728 pool_free.
22729 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
22730 overwriting it.
22731
90e709fd
JJ
22732 PR middle-end/56461
22733 * ipa-cp.c (decide_whether_version_node): Call vec_free on
22734 known_aggs[i].items and release known_aggs vector.
22735
97785e52
JJ
22736 PR middle-end/56461
22737 * ipa-reference.c (propagate): Free node_info even for alias nodes.
22738
227392013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 22740
97785e52
JJ
22741 * config/microblaze/microblaze.c (microblaze_emit_compare):
22742 Use xor for EQ/NE comparisions.
22743 * config/microblaze/microblaze.md (cstoresf4): Add constraints
22744 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 22745
6fa5e0ed
JJ
227462013-02-27 Jakub Jelinek <jakub@redhat.com>
22747
22748 PR middle-end/56461
22749 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
22750 vector.
22751 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
22752 vec_safe_push, always update *slot.
22753 (redirect_edge_var_map_clear): Use vec_free.
22754 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
22755 (free_var_map_entry): Use vec_free.
22756 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
22757 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
22758
436a956a
AB
227592013-02-27 Andrey Belevantsev <abel@ispras.ru>
22760
22761 PR middle-end/45472
436a956a
AB
22762 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
22763 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
22764 Reorder tests for speculativeness in the logical and operator.
22765
f5c2caca
JJ
227662013-02-27 Jakub Jelinek <jakub@redhat.com>
22767
0fcb564b
JJ
22768 * incpath.c (add_standard_paths): Use reconcat instead of concat
22769 where appropriate and avoid leaking memory.
22770
dc357798
JJ
22771 * opts.h: Include obstack.h.
22772 (opts_concat): New prototype.
22773 (opts_obstack): New declaration.
22774 * opts.c (opts_concat): New function.
22775 (opts_obstack): New variable.
22776 (init_options_struct): Call gcc_init_obstack on opts_obstack.
22777 (finish_options): Use opts_concat instead of concat
22778 and XOBNEWVEC instead of XNEWVEC.
22779 * opts-common.c (generate_canonical_option, decode_cmdline_option,
22780 generate_option): Likewise.
22781 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
22782 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
22783
f5c2caca
JJ
22784 PR target/56455
22785 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
22786 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
22787
d0163673
JJ
227882013-02-26 Jakub Jelinek <jakub@redhat.com>
22789
22790 PR middle-end/56461
22791 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
22792
b5ad2b8e
JR
227932013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
22794
22795 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
22796 (arm_block_move_unaligned_straight): Likewise.
22797 (arm_adjust_block_mem): Likewise.
22798
9b639e2c
JR
227992013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
22800
22801 PR target/48901
22802 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
22803 temp, cond and label.
22804 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
22805
e13a0ccb
JR
22806 PR target/52500
22807 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
22808 * config/c6x/c6x.h (dbx_register_map): Update declaration.
22809
fbe4f171
JR
22810 PR target/52501
22811 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
22812 of prologue/epilogue functions.
22813
ae006543
JR
22814 PR target/52550
22815 * config/tilegx/tilegx.c (tilegx_expand_prologue):
22816 Remove unused variable cfa_offset.
22817 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
22818
c81369fa
JR
22819 PR target/54639
22820 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
22821 type promotion to unsigned.
22822
f8a8fea7
JR
22823 PR target/54640
22824 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
22825 for HOST_WIDE_INT of 32 bit / same size as int.
22826 (arm_block_move_unaligned_straight): Likewise.
22827 (arm_adjust_block_mem): Likewise.
22828
f8be5169
JR
22829 PR target/54662
22830 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
22831 ALL_CFLAGS.
22832
f1ad3354
MP
228332013-02-26 Marek Polacek <polacek@redhat.com>
22834
22835 PR tree-optimization/56426
88b97037 22836 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 22837
a6af0f42
RB
228382013-02-26 Richard Biener <rguenther@suse.de>
22839
22840 PR target/56444
22841 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
22842 unused variable loops.
22843
aca43c6c
JJ
228442013-02-26 Jakub Jelinek <jakub@redhat.com>
22845
cecbe5d9
JJ
22846 PR tree-optimization/56448
22847 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
22848 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
22849 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
22850 later operands of the references, or even first operand for
22851 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
22852
aca43c6c
JJ
22853 PR tree-optimization/56443
22854 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
22855 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
22856 to type_for_mode langhook.
22857
53e2e141
MT
228582013-02-25 Matt Turner <mattst88@gmail.com>
22859
22860 * doc/invoke.texi: Document r4700.
22861
259ee451
RB
228622013-02-25 Richard Biener <rguenther@suse.de>
22863
22864 PR tree-optimization/56175
22865 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
22866 split out from ...
22867 (simplify_bitwise_binary): ... here. Also guard the conversion
22868 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
22869
6d65e8f1
CM
228702013-02-25 Catherine Moore <clm@codesourcery.com>
22871
22872 Revert:
22873 2013-02-24 Catherine Moore <clm@codesourcery.com>
22874 Maciej W. Rozycki <macro@codesourcery.com>
22875 Tom de Vries <tom@codesourcery.com>
a72d8780 22876 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
22877 Iain Sandoe <iain@codesourcery.com>
22878 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 22879 Chao-ying Fu <fu@mips.com>
88b97037 22880
6d65e8f1 22881 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 22882 Document new function attributes.
6d65e8f1
CM
22883 * doc/invoke.texi (minterlink-compressed, mmicromips,
22884 m14k, m14ke, m14kec): Document new options.
22885 (minterlink-mips16): Update documentation.
22886 * doc/md.texi (ZC, ZD): Document new constraints.
22887 * configure.ac (gcc_cv_as_micromips): Check if linker
22888 supports the .set micromips directive.
22889 * configure: Regenerate.
22890 * config.in: Regenerate.
22891 * config/mips/mips-tables.opt: Regenerate.
22892 * config/mips/micromips.md: New file.
22893 * constraints.md (ZC, AD): New constraints.
22894 * config/mips/predicates.md (movep_src_register): New predicate.
22895 (movep_src_operand): New predicate.
22896 (non_volatile_mem_operand): New predicate.
22897 * config/mips/mips.md (multimem): New type.
22898 (length): Differentiate between 17-bit and 18-bit branch offsets.
22899 (MOVEP1, MOVEP2): New mode iterator.
22900 (mov_<load>l): Use ZC constraint.
22901 (mov_<load>r): Likewise.
22902 (mov_<store>l): Likewise.
22903 (mov_<store>r): Likewise.
22904 (*branch_equality<mode>_inverted): Add microMIPS support.
22905 (*branch_equality<mode>): Likewise.
22906 (*jump_absolute): Likewise.
22907 (indirect_jump_<mode>): Likewise.
22908 (tablejump_<mode>): Likewise.
22909 (<optab>_internal): Likewise.
22910 (sibcall_internal): Likewise.
22911 (sibcall_value_internal): Likewise.
22912 (prefetch): Use constraint ZD.
22913 * config/mips/mips.opt (minterlink-compressed): New option.
22914 (minterlink-mips16): Now an alias for minterlink-compressed.
22915 (mmicromips): New option.
22916 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22917 (compare_and_swap_12): Likewise.
22918 (sync_add<mode>): Likewise.
22919 (sync_<optab>_12): Likewise.
22920 (sync_old_<optab>_12): Likewise.
22921 (sync_new_<optab>_12): Likewise.
22922 (sync_nand_12): Likewise.
22923 (sync_old_nand_12): Likewise.
22924 (sync_new_nand_12): Likewise.
22925 (sync_sub<mode>): Likewise.
22926 (sync_old_add<mode>): Likewise.
22927 (sync_old_sub<mode>): Likewise.
22928 (sync_new_add<mode>): Likewise.
22929 (sync_new_sub<mode>): Likewise.
22930 (sync_<optab><mode>): Likewise.
22931 (sync_old_<optab><mode>): Likewise.
22932 (sync_new_<optab><mode>): Likewise.
22933 (sync_nand<mode>): Likewise.
22934 (sync_old_nand<mode>): Likewise.
22935 (sync_new_nand<mode>): Likewise.
22936 (sync_lock_test_and_set<mode>): Likewise.
22937 (test_and_set_12): Likewise.
22938 (atomic_compare_and_swap<mode>): Likewise.
22939 (atomic_exchange<mode>_llsc): Likewise.
22940 (atomic_fetch_add<mode>_llsc): Likewise.
22941 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22942 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22943 (umips_save_restore_pattern_p): Likewise.
22944 (umips_load_store_pair_p): Likewise.
22945 (umips_output_load_store_pair): Likewise.
22946 (umips_movep_target_p): Likewise.
22947 (umips_12bit_offset_address_p): Likewise.
22948 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22949 (mips_base_mips16): Rename this...
22950 (mips_base_compression_flags): ...to this. Update all uses.
22951 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22952 (mips_mips16_decl_p): Delete.
22953 (mips_nomips16_decl_p): Delete.
22954 (mips_get_compress_on_flags): New function.
22955 (mips_get_compress_off_flags): New function.
22956 (mips_get_compress_mode): New function.
22957 (mips_get_compress_on_name): New function.
22958 (mips_get_compress_off_name): New function.
22959 (mips_insert_attributes): Support multiple compression types.
22960 (mips_merge_decl_attributes): Likewise.
22961 (umips_12bit_offset_address_p): New function.
22962 (mips_start_function_definition): Emit .set micromips directive.
22963 (mips_call_may_need_jalx_p): New function.
22964 (mips_function_ok_for_sibcall): Add microMIPS support.
22965 (mips_print_operand_punctuation): Support short delay slots and
22966 compact jumps.
22967 (umips_swm_mask, umips_swm_encoding): New.
22968 (umips_build_save_restore): New function.
22969 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22970 (was_mips16_p): Remove.
22971 (old_compression_mode): New.
22972 (mips_set_compression_mode): New function.
22973 (mips_set_current_function): Add microMIPS support.
22974 (mips_option_override): Likewise.
22975 (umips_save_restore_pattern_p): New function.
22976 (umips_output_save_restore): New function.
22977 (umips_load_store_pair_p_1): New function.
22978 (umips_load_store_pair_p): New function.
22979 (umips_output_load_store_pair_1): New function.
22980 (umips_output_load_store_pair): New function.
22981 (umips_movep_target_p) New function.
22982 (mips_prepare_pch_save): Add microMIPS support.
22983 * config/mips/mips.h (TARGET_COMPRESSION): New.
22984 (TARGET_CPU_CPP_BUILTINS): Update macro
22985 to use new compression flags and to support microMIPS.
22986 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22987 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22988 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22989 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22990 (ASM_SPEC): Support mmicromips and mno-micromips.
22991 (M16STORE_REG_P): New macro.
22992 (MIPS_CALL): Support TARGET_MICROMIPS.
22993 (MICROMIPS_J): New macro.
22994 (mips_base_mips16): Rename this...
22995 (mips_base_compression_flags): ...to this.
22996 (UMIPS_12BIT_OFFSET_P): New macro.
22997 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22998 (MULTILIB_DIRNAMES): Likewise.
22999
5e5df392
TV
230002013-02-25 Tom de Vries <tom@codesourcery.com>
23001
23002 PR rtl-optimization/56131
23003 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
23004 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
23005 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
23006
3fdb53c1
TB
230072013-02-25 Tobias Burnus <burnus@net-b.de>
23008
23009 * doc/invoke.texi (-fsanitize=): Move from optimization
23010 to debugging options.
23011
ed358aea
AB
230122013-02-25 Andrey Belevantsev <abel@ispras.ru>
23013
23014 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
23015
f45e9053
AB
230162013-02-25 Andrey Belevantsev <abel@ispras.ru>
23017 Alexander Monakov <amonakov@ispras.ru>
23018
23019 PR middle-end/56077
23020 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
23021 flush pending lists also on non-jumps. Adjust comment.
23022
6941b508
CM
230232013-02-24 Catherine Moore <clm@codesourcery.com>
23024 Maciej W. Rozycki <macro@codesourcery.com>
23025 Tom de Vries <tom@codesourcery.com>
a72d8780 23026 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
23027 Iain Sandoe <iain@codesourcery.com>
23028 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23029 Chao-ying Fu <fu@mips.com>
6941b508
CM
23030
23031 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23032 Document new function attributes.
6941b508
CM
23033 * doc/invoke.texi (minterlink-compressed, mmicromips,
23034 m14k, m14ke, m14kec): Document new options.
23035 (minterlink-mips16): Update documentation.
23036 * doc/md.texi (ZC, ZD): Document new constraints.
23037 * configure.ac (gcc_cv_as_micromips): Check if linker
23038 supports the .set micromips directive.
23039 * configure: Regenerate.
23040 * config.in: Regenerate.
23041 * config/mips/mips-tables.opt: Regenerate.
23042 * config/mips/micromips.md: New file.
23043 * constraints.md (ZC, AD): New constraints.
23044 * config/mips/predicates.md (movep_src_register): New predicate.
23045 (movep_src_operand): New predicate.
23046 (non_volatile_mem_operand): New predicate.
23047 * config/mips/mips.md (multimem): New type.
23048 (length): Differentiate between 17-bit and 18-bit branch offsets.
23049 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 23050 (mov_<load>l): Use ZC constraint.
6941b508
CM
23051 (mov_<load>r): Likewise.
23052 (mov_<store>l): Likewise.
23053 (mov_<store>r): Likewise.
23054 (*branch_equality<mode>_inverted): Add microMIPS support.
23055 (*branch_equality<mode>): Likewise.
23056 (*jump_absolute): Likewise.
23057 (indirect_jump_<mode>): Likewise.
23058 (tablejump_<mode>): Likewise.
23059 (<optab>_internal): Likewise.
23060 (sibcall_internal): Likewise.
23061 (sibcall_value_internal): Likewise.
23062 (prefetch): Use constraint ZD.
23063 * config/mips/mips.opt (minterlink-compressed): New option.
23064 (minterlink-mips16): Now an alias for minterlink-compressed.
23065 (mmicromips): New option.
23066 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23067 (compare_and_swap_12): Likewise.
23068 (sync_add<mode>): Likewise.
23069 (sync_<optab>_12): Likewise.
23070 (sync_old_<optab>_12): Likewise.
23071 (sync_new_<optab>_12): Likewise.
23072 (sync_nand_12): Likewise.
23073 (sync_old_nand_12): Likewise.
23074 (sync_new_nand_12): Likewise.
23075 (sync_sub<mode>): Likewise.
23076 (sync_old_add<mode>): Likewise.
23077 (sync_old_sub<mode>): Likewise.
23078 (sync_new_add<mode>): Likewise.
23079 (sync_new_sub<mode>): Likewise.
23080 (sync_<optab><mode>): Likewise.
23081 (sync_old_<optab><mode>): Likewise.
23082 (sync_new_<optab><mode>): Likewise.
23083 (sync_nand<mode>): Likewise.
23084 (sync_old_nand<mode>): Likewise.
23085 (sync_new_nand<mode>): Likewise.
23086 (sync_lock_test_and_set<mode>): Likewise.
23087 (test_and_set_12): Likewise.
23088 (atomic_compare_and_swap<mode>): Likewise.
23089 (atomic_exchange<mode>_llsc): Likewise.
23090 (atomic_fetch_add<mode>_llsc): Likewise.
23091 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23092 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23093 (umips_save_restore_pattern_p): Likewise.
23094 (umips_load_store_pair_p): Likewise.
23095 (umips_output_load_store_pair): Likewise.
23096 (umips_movep_target_p): Likewise.
23097 (umips_12bit_offset_address_p): Likewise.
23098 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23099 (mips_base_mips16): Rename this...
23100 (mips_base_compression_flags): ...to this. Update all uses.
23101 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23102 (mips_mips16_decl_p): Delete.
23103 (mips_nomips16_decl_p): Delete.
3fdb53c1 23104 (mips_get_compress_on_flags): New function.
6941b508
CM
23105 (mips_get_compress_off_flags): New function.
23106 (mips_get_compress_mode): New function.
23107 (mips_get_compress_on_name): New function.
23108 (mips_get_compress_off_name): New function.
23109 (mips_insert_attributes): Support multiple compression types.
23110 (mips_merge_decl_attributes): Likewise.
23111 (umips_12bit_offset_address_p): New function.
23112 (mips_start_function_definition): Emit .set micromips directive.
23113 (mips_call_may_need_jalx_p): New function.
23114 (mips_function_ok_for_sibcall): Add microMIPS support.
23115 (mips_print_operand_punctuation): Support short delay slots and
23116 compact jumps.
23117 (umips_swm_mask, umips_swm_encoding): New.
23118 (umips_build_save_restore): New function.
23119 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23120 (was_mips16_p): Remove.
23121 (old_compression_mode): New.
23122 (mips_set_compression_mode): New function.
23123 (mips_set_current_function): Add microMIPS support.
23124 (mips_option_override): Likewise.
23125 (umips_save_restore_pattern_p): New function.
23126 (umips_output_save_restore): New function.
23127 (umips_load_store_pair_p_1): New function.
23128 (umips_load_store_pair_p): New function.
23129 (umips_output_load_store_pair_1): New function.
23130 (umips_output_load_store_pair): New function.
23131 (umips_movep_target_p) New function.
23132 (mips_prepare_pch_save): Add microMIPS support.
23133 * config/mips/mips.h (TARGET_COMPRESSION): New.
23134 (TARGET_CPU_CPP_BUILTINS): Update macro
23135 to use new compression flags and to support microMIPS.
23136 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23137 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23138 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23139 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23140 (ASM_SPEC): Support mmicromips and mno-micromips.
23141 (M16STORE_REG_P): New macro.
23142 (MIPS_CALL): Support TARGET_MICROMIPS.
23143 (MICROMIPS_J): New macro.
23144 (mips_base_mips16): Rename this...
23145 (mips_base_compression_flags): ...to this.
23146 (UMIPS_12BIT_OFFSET_P): New macro.
23147 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23148 (MULTILIB_DIRNAMES): Likewise.
23149
cdebbc6d
JJ
231502013-02-24 Jakub Jelinek <jakub@redhat.com>
23151
23152 PR target/52555
23153 * target-globals.c (save_target_globals): For init_reg_sets and
23154 target_reinit remporarily set this_fn_optabs to this_target_optabs.
23155
18c63565
JG
231562013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
23157
23158 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
23159 * config/aarch64/t-aarch64
23160 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
23161
2194f7a2
VM
231622013-02-22 Vladimir Makarov <vmakarov@redhat.com>
23163
23164 PR inline-asm/56148
23165 * lra-constraints.c (process_alt_operands): Reload operand
23166 conflicting with earlier clobber only if no more other conflicting
23167 operands.
23168
7d613735
JJ
231692013-02-22 Jakub Jelinek <jakub@redhat.com>
23170
23171 PR sanitizer/56393
23172 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
23173 if not linking a shared library.
23174
ac8d93a7
SL
231752013-02-22 Seth LaForge <sethml@google.com>
23176
23177 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
23178
e0237780
GY
231792013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
23180
3fdb53c1
TB
23181 * config/arm/arm.md (split for extendsidi): Update condition.
23182 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
23183 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
23184 (qhs_zextenddi_cstr): Likewise.
e0237780 23185
d7fde18c
JJ
231862013-02-21 Jakub Jelinek <jakub@redhat.com>
23187
be63b77d
JJ
23188 PR middle-end/56420
23189 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
23190 avoid signed wrapping.
23191 (expand_mult): Handle properly multiplication by
23192 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
23193 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
23194 in the compiler if coeff is HOST_WIDE_INT_MIN.
23195 (expand_divmod): Don't make ext_op1 static, change it's type to
23196 uhwi. Avoid undefined behavior in -INTVAL (op1).
23197
d7fde18c
JJ
23198 PR rtl-optimization/50339
23199 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
23200 field.
23201 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
23202 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
23203 into splitting_ashiftrt field.
23204 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
23205 ASHIFTRT.
23206 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
23207 choices.
23208
6aad4455
AH
232092013-02-20 Aldy Hernandez <aldyh@redhat.com>
23210
23211 PR middle-end/56108
23212 * trans-mem.c (execute_tm_mark): Do not expand transactions that
23213 are sure to go irrevocable.
23214
38fe784d
HPN
232152013-02-21 Hans-Peter Nilsson <hp@axis.com>
23216
23217 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
23218 scalars are valid operands.
23219
0fd44da3
MJ
232202013-02-21 Martin Jambor <mjambor@suse.cz>
23221
23222 PR tree-optimization/56310
23223 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
23224 only matching indices and non-negative final offsets.
23225 (intersect_aggregates_with_edge): Pass src_idx to
23226 agg_replacements_to_vector. Pass src_idx insstead of index to
23227 intersect_with_agg_replacements.
23228
7a92038b
MJ
232292013-02-21 Martin Jambor <mjambor@suse.cz>
23230
23231 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
23232 instead of hard-wired defaults.
23233
c0da9c37
MR
232342013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
23235
23236 * doc/invoke.texi (MIPS Options): Update documentation of the
23237 floating-point multiply-accumulate instruction restrictions.
23238
d247ea0c 232392013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
23240
23241 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
23242 asan_shadow_offset on x86_64 linux.
23243
22deefcb
RB
232442013-02-21 Richard Biener <rguenther@suse.de>
23245
23246 PR tree-optimization/56415
23247 Revert
23248 2013-02-11 Richard Biener <rguenther@suse.de>
23249
23250 PR tree-optimization/56273
23251 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
23252 first VRP run.
23253
7bcc6e75
JJ
232542013-02-21 Jakub Jelinek <jakub@redhat.com>
23255
a0ad148f
JJ
23256 PR bootstrap/56258
23257 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
23258 instead of @itemx.
23259
7bcc6e75
JJ
23260 PR inline-asm/56405
23261 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
23262 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
23263
a0a7b611
JH
232642013-02-20 Jan Hubicka <jh@suse.cz>
23265
23266 PR tree-optimization/56265
88b97037
UB
23267 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
23268 when target is referenced for first time.
a0a7b611 23269
c0e50f72
RB
232702013-02-20 Richard Biener <rguenther@suse.de>
23271
23272 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
23273 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
23274 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
23275 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
23276 not return anything.
23277 (rename_ssa_copies): Do not remove unused locals.
23278 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 23279 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
23280 * passes.c (execute_function_todo): Do not schedule unused locals
23281 removal if cleanup_tree_cfg did something.
23282 * tree-ssa-live.c (remove_unused_locals): Dump statistics
23283 about the number of removed locals.
23284
a52ca739
RB
232852013-02-20 Richard Biener <rguenther@suse.de>
23286
23287 PR tree-optimization/56398
88b97037 23288 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 23289
ec9c9d1b
MJ
232902013-02-20 Martin Jambor <mjambor@suse.cz>
23291
23292 PR tree-optimization/55334
23293 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
23294 restricted pointers to arrays.
23295
e91c8ed6 232962013-02-20 Richard Biener <rguenther@suse.de>
88b97037 23297 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
23298
23299 PR tree-optimization/56396
23300 * tree-ssa-ccp.c (n_const_val): New static variable.
23301 (get_value): Return NULL for SSA names we don't have a lattice
23302 entry for.
23303 (ccp_initialize): Initialize n_const_val.
23304 * tree-ssa-copy.c (n_copy_of): New static variable.
23305 (init_copy_prop): Initialize n_copy_of.
23306 (get_value): Return NULL_TREE for SSA names we don't have a
23307 lattice entry for.
23308
3d916479
MJ
233092013-02-20 Martin Jambor <mjambor@suse.cz>
23310
23311 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
23312
71a86758
RB
233132013-02-20 Richard Biener <rguenther@suse.de>
23314
23315 * genpreds.c (write_lookup_constraint): Do not compare first
23316 letter of the constraint again.
23317
79836a12
RB
233182013-02-20 Richard Biener <rguenther@suse.de>
23319
23320 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
23321 and ceil_log2.
23322 (get_use_iv_cost): Terminate hashtable walk when coming across
23323 an empty entry.
23324
bbe4fb2c
IZ
233252013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
23326
23327 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
23328 reassociation for avx2 targets.
23329
a72d8780 233302012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 23331
c77f83d5
EI
23332 * config/microblaze/microblaze.c: microblaze_has_clz = 0
23333 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 23334 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
23335 version and TARGET_PATTERN_COMPARE check
23336 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 23337
a72d8780 233382012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 23339
a72d8780 23340 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
23341 function before branching.
23342
242387fa
AB
233432012-02-19 Andrey Belevantsev <abel@ispras.ru>
23344
23345 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
23346 DUMP_INSN_RTX_UID.
23347 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
23348
b4979ab9
AB
233492012-02-19 Andrey Belevantsev <abel@ispras.ru>
23350
23351 PR middle-end/55889
b4979ab9
AB
23352 * sel-sched.c: Include ira.h.
23353 (implicit_clobber_conflict_p): New function.
23354 (moveup_expr): Use it.
88b97037 23355 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 23356
24d63016
RB
233572013-02-19 Richard Biener <rguenther@suse.de>
23358
23359 PR tree-optimization/56384
23360 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
23361 (vn_hash_type): Split out from ...
23362 (vn_hash_constant_with_type): ... here.
23363 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
23364 (vn_phi_eq): Compare types from vn_phi_s structure.
23365 (vn_phi_lookup): Populate vn_phi_s type.
23366 (vn_phi_insert): Likewise.
23367
a475fd3d
JJ
233682013-02-19 Jakub Jelinek <jakub@redhat.com>
23369
47cc28f5
JJ
23370 PR tree-optimization/56350
23371 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
23372 if haven't found reduction or nested cycle operand, rather than
23373 asserting we must find it.
23374
a475fd3d
JJ
23375 PR tree-optimization/56381
23376 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
23377 to fold_build3.
23378
233792013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
23380 Jakub Jelinek <jakub@redhat.com>
23381
23382 PR target/52555
23383 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
23384 (swap_optab_enable): Same.
23385 (init_all_optabs): Use argument instead of global.
88b97037 23386 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
23387 * expr.h (init_all_optabs): Add argument to prototype.
23388 (TREE_OPTIMIZATION_OPTABS): New.
23389 (save_optabs_if_changed): Protoize.
23390 * optabs.h: Declare this_fn_optabs.
23391 * optabs.c (save_optabs_if_changed): New.
23392 Declare this_fn_optabs.
23393 (init_optabs): Add argument to init_all_optabs() call.
23394 * function.c (invoke_set_current_function_hook): Handle per
23395 function optabs.
23396 * function.h (struct function): New field optabs.
23397 * config/mips/mips.c (mips_set_mips16_mode): Handle when
23398 optimization_current_node has changed.
23399 * target-globals.h (save_target_globals_default_opts): Protoize.
23400 * target-globals.c (save_target_globals_default_opts): New.
23401
3f587ca3
JDA
234022013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23403
23404 PR target/56347
23405 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
23406 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
23407
23408 PR target/56214
23409 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
23410 and HImode, require all displacements to be an integer multiple of
23411 their mode size.
ceaca33e
JDA
23412 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
23413 only allow QImode and HImode when reload is in progress and strict is
23414 true. Likewise for symbolic addresses. Use base14_operand to check
23415 displacements in REG+BASE addresses.
23416
fe0b4796
RB
234172013-02-18 Richard Biener <rguenther@suse.de>
23418
23419 PR tree-optimization/56366
23420 * tree-vect-loop.c (get_initial_def_for_induction): Properly
23421 handle sign-conversion of outer-loop initial induction value.
23422
6aaf596b
RB
234232013-02-18 Richard Biener <rguenther@suse.de>
23424
73db8ff1 23425 PR middle-end/56349
6aaf596b
RB
23426 * cfghooks.c (merge_blocks): If we merge a latch into another
23427 block adjust references to it.
23428 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
23429 (verify_loop_structure): Verify that a recorded latch is in fact
23430 a latch.
23431
5e97dfb6
RB
234322013-02-18 Richard Biener <rguenther@suse.de>
23433
23434 PR tree-optimization/56321
23435 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
23436 order SSA name release and virtual operand unlinking.
23437
825527e8
EI
234382013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23439
23440 * config/microblaze/microblaze.md (save_stack_block): Define.
23441 (restore_stack_block): Likewise.
23442
debd11d9
EI
234432013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23444
23445 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
23446 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
23447 * config/microblaze/microblaze.c (microblaze_option_override):
23448 Bail out early for PIC modes when target does not support PIC.
23449
8ec77be0
EI
234502013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23451
88b97037 23452 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
23453 Replace with a microblaze version.
23454 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 23455 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
23456 microblaze.
23457
b41288b3
JJ
234582013-02-16 Jakub Jelinek <jakub@redhat.com>
23459 Dodji Seketeli <dodji@redhat.com>
23460
23461 PR asan/56330
88b97037 23462 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
23463 (instrument_mem_region_access): Do not forget to always put
23464 instrumentation of the of 'base' and 'base + len' in a "if (len !=
23465 0) statement, even for cases where either 'base' or 'base + len'
23466 are not instrumented -- because they have been previously
23467 instrumented. Simplify the logic by putting all the statements
23468 instrument 'base + len' inside a sequence, and then insert that
23469 sequence right before the current insertion point. Then, to
23470 instrument 'base + len', just get an iterator on that statement.
23471 And do not forget to update the pointer to iterator the function
23472 received as argument.
23473
47918951
VM
234742013-02-15 Vladimir Makarov <vmakarov@redhat.com>
23475
23476 PR rtl-optimization/56348
23477 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
23478
3fb7c699
SB
234792013-02-15 Steven Bosscher <steven@gcc.gnu.org>
23480
23481 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
23482 (clean_graph_dump_file): Pass base to start_graph_dump.
23483
576fe41a
RH
234842013-02-14 Richard Henderson <rth@redhat.com>
23485
23486 PR target/55941
23487 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
23488
bb3accfa
SB
234892013-02-14 Steven Bosscher <steven@gcc.gnu.org>
23490
23491 * collect2-aix.h: Define F_LOADONLY.
23492
03143140
RB
234932013-02-14 Richard Biener <rguenther@suse.de>
23494
23495 PR lto/50494
23496 * varasm.c (output_constant_def_1): Get the decl representing
23497 the constant as argument.
23498 (output_constant_def): Wrap output_constant_def_1.
23499 (make_decl_rtl): Use output_constant_def_1 with the decl
23500 representing the constant.
23501 (build_constant_desc): Optionally re-use a decl already
23502 representing the constant.
23503 (tree_output_constant_def): Adjust.
23504
8fb06726
DS
235052013-02-14 Dodji Seketeli <dodji@redhat.com>
23506
23507 Fix an asan crash
23508 * asan.c (instrument_builtin_call): Really put the length of the
23509 second source argument into src1_len.
23510
c4bfe8bf
JJ
235112013-02-13 Jakub Jelinek <jakub@redhat.com>
23512
23513 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
23514 argument. If it is false, don't create edge from then_bb to
23515 fallthru_bb.
23516 (insert_if_then_before_iter): Pass true to it.
23517 (build_check_stmt): Pass false to it.
23518 (transform_statements): Flush hash table only on extended basic
23519 block boundaries, rather than at the beginning of every bb.
23520 Don't flush hash table on nonfreeing_call_p calls.
23521 * tree-flow.h (nonfreeing_call_p): New prototype.
23522 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
23523
7afe2801
DM
235242013-02-13 David S. Miller <davem@davemloft.net>
23525
23526 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
23527
70cc3288
VM
235282013-02-13 Vladimir Makarov <vmakarov@redhat.com>
23529
23530 PR target/56184
23531 * ira.c (max_regno_before_ira): Move from ...
23532 (ira): ... here.
23533 (fix_reg_equiv_init): Use max_regno_before_ira instead of
23534 vec_safe_length.
23535
6422242b
JJ
235362013-02-13 Jakub Jelinek <jakub@redhat.com>
23537
23538 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
23539
976a81ee
RB
235402013-02-13 Richard Biener <rguenther@suse.de>
23541
23542 PR lto/56295
23543 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
23544 globals in MEM_REFs.
23545
c1874a87
RB
235462013-02-13 Richard Biener <rguenther@suse.de>
23547
23548 * loop-init.c (loop_optimizer_init): Clear loop state when
23549 re-initializing preserved loops.
23550 * loop-unswitch.c (unswitch_single_loop): Return whether
23551 we unswitched the loop. Do not verify loop state here.
88b97037 23552 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 23553
b4ab7d34
KS
235542013-02-13 Kostya Serebryany <kcc@google.com>
23555
88b97037
UB
23556 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
23557 on x86_64 linux.
b4ab7d34
KS
23558 * sanitizer.def: Rename __asan_init to __asan_init_v1.
23559
bdcbe80c
DS
235602013-02-12 Dodji Seketeli <dodji@redhat.com>
23561
23562 Avoid instrumenting duplicated memory access in the same basic block
23563 * Makefile.in (asan.o): Add new dependency on hash-table.h
23564 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
23565 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
23566 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
23567 (free_mem_ref_resources, has_mem_ref_been_instrumented)
23568 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
23569 (get_mem_ref_of_assignment): New functions.
23570 (get_mem_refs_of_builtin_call): Extract from
23571 instrument_builtin_call and tweak a little bit to make it fit with
23572 the new signature.
23573 (instrument_builtin_call): Use the new
23574 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
23575 of is_gimple_builtin_call.
23576 (instrument_derefs, instrument_mem_region_access): Insert the
23577 instrumented memory reference into the hash table.
23578 (maybe_instrument_assignment): Renamed instrument_assignment into
23579 this, and change it to advance the iterator when instrumentation
23580 actually happened and return true in that case. This makes it
23581 homogeneous with maybe_instrument_assignment, and thus give a
23582 chance to callers to be more 'regular'.
23583 (transform_statements): Clear the memory reference hash table
23584 whenever we enter a new BB, when we cross a function call, or when
23585 we are done transforming statements. Use
23586 maybe_instrument_assignment instead of instrumentation. No more
23587 need to special case maybe_instrument_assignment and advance the
23588 iterator after calling it; it's now handled just like
23589 maybe_instrument_call. Update comment.
23590
4861a1f7
RB
235912013-02-13 Richard Biener <rguenther@suse.de>
23592
23593 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
23594 Fix loop discovery code.
23595
1c86bd80
VM
235962013-02-12 Vladimir Makarov <vmakarov@redhat.com>
23597
23598 PR inline-asm/56148
23599 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 23600 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
23601 the operand is not reloaded. Prefer to reload conflicting operand
23602 if earlyclobber and matching operands are the same.
23603
7cbda518
RB
236042013-02-12 Richard Biener <rguenther@suse.de>
23605
23606 PR lto/56297
23607 * lto-streamer-out.c (write_symbol): Do not output symbols
23608 for hard register variables.
23609
e68a4ef6
GJL
236102013-02-12 Georg-Johann Lay <avr@gjlay.de>
23611
23612 PR target/54222
23613 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
23614 (umulsidi3_insn, mulsidi3_insn): New insns.
23615
a72d8780 236162013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
23617
23618 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
23619 (struct tune_params): Add vec_costs field.
23620 * config/arm/arm.c (arm_builtin_vectorization_cost)
23621 (arm_add_stmt_cost): New functions.
23622 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
23623 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
23624 (arm_default_vec_cost): New struct of type cpu_vec_costs.
23625 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
23626 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
23627 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
23628 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
23629
43320568
RB
236302013-02-12 Richard Biener <rguenther@suse.de>
23631
23632 PR lto/56295
23633 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
23634 decls again if possible.
23635
a011aa39
RB
236362013-02-12 Richard Biener <rguenther@suse.de>
23637
23638 PR middle-end/56288
23639 * tree-ssa.c (verify_ssa_name): Fix check, move
23640 SSA_NAME_IN_FREE_LIST check up.
23641
6da26889
JJ
236422013-02-12 Jakub Jelinek <jakub@redhat.com>
23643 Steven Bosscher <steven@gcc.gnu.org>
23644
23645 PR rtl-optimization/56151
23646 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
23647 equal to op0 or op1, and last_insn pattern is CODE operation
23648 with MEM dest and one of the operands matches that MEM.
23649
f80e0faf
ST
236502013-02-11 Sriraman Tallam <tmsriramgoogle.com>
23651
23652 * doc/extend.texi: Document Function Multiversioning and "default"
23653 parameter string to target attribute.
23654 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
23655 target attribute parameter is "default".
23656 (ix86_compare_version_priority): Remove checks for target attribute.
23657 (ix86_mangle_function_version_assembler_name): Change error to sorry.
23658 Remove check for target attribute equal to NULL. Add assert.
23659 (ix86_generate_version_dispatcher_body): Change error to sorry.
23660
6c59ffd1
IS
236612013-02-11 Iain Sandoe <iain@codesourcery.com>
23662 Jack Howarth <howarth@bromo.med.uc.edu>
23663 Patrick Marlier <patrick.marlier@gmail.com>
23664
23665 PR libitm/55693
23666 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
23667 define ENDFILE_SPEC as TM_DESTRUCTOR.
23668 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
23669
a72d8780 236702013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
23671 Jack Howarth <howarth@bromo.med.uc.edu>
23672 Jakub Jelinek <jakub@redhat.com>
23673
23674 PR sanitizer/55617
23675 * config/darwin.c (cdtor_record): Rename ctor_record.
23676 (sort_cdtor_records): Rename sort_ctor_records.
23677 (finalize_dtors): New routine to sort destructors by
23678 priority before use in assemble_integer.
23679 (machopic_asm_out_destructor): Use finalize_dtors if needed.
23680
b63fe007
UB
236812013-02-11 Uros Bizjak <ubizjak@gmail.com>
23682
23683 PR rtl-optimization/56275
23684 * simplify-rtx.c (avoid_constant_pool_reference): Check that
23685 offset is non-negative and less than cmode size before
23686 calling simplify_subreg.
23687
8e89b5b5
RB
236882013-02-11 Richard Biener <rguenther@suse.de>
23689
23690 PR tree-optimization/56264
23691 * cfgloop.h (fix_loop_structure): Adjust prototype.
23692 * loop-init.c (fix_loop_structure): Return the number of
23693 newly discovered loops.
23694 * tree-cfgcleanup.c (repair_loop_structures): When new loops
23695 are discovered, do a full loop-closed SSA rewrite.
23696
b4a4b56d
RB
236972013-02-11 Richard Biener <rguenther@suse.de>
23698
23699 PR tree-optimization/56273
23700 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
23701 first VRP run.
23702 (check_array_ref): Fix missing newline in dumps.
23703 (search_for_addr_array): Likewise.
23704
0c885229
DE
237052013-02-09 David Edelsohn <dje.gcc@gmail.com>
23706
23707 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
23708
59ac9a55
JJ
237092013-02-09 Jakub Jelinek <jakub@redhat.com>
23710
23711 PR target/56256
23712 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
23713
25bb0bb5
VM
237142013-02-08 Vladimir Makarov <vmakarov@redhat.com>
23715
23716 PR rtl-optimization/56246
0c885229 23717 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
23718 reload pseudo.
23719 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
23720 constraints are satisfied.
23721
a698cc03
JL
237222013-02-08 Jeff Law <law@redhat.com>
23723
23724 PR debug/53948
23725 * emit-rtl.c (reg_is_parm_p): New function.
23726 * regs.h (reg_is_parm_p): New prototype.
23727 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
23728 callee-clobbered registers.
23729
e1122ddd
MM
237302013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
23731
23732 PR target/56043
23733 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
23734 If there is no implicit builtin declaration, just return NULL.
23735
19c5f6e6
UB
237362013-02-08 Uros Bizjak <ubizjak@gmail.com>
23737
23738 * config/i386/sse.md (FMAMODEM): New mode iterator.
23739 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
23740 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
23741
2480f2ca 237422013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 23743
2480f2ca
UB
23744 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
23745 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
23746 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
23747
237482013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23749
23750 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
23751 (microblaze*-*-elf): Likewise.
23752 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
23753 LINK_SPEC.
23754 * config/microblaze/microblaze-c.c: Add builtin defines for
23755 _LITTLE_ENDIAN and _BIG_ENDIAN.
23756 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
23757 add to TARGET_DEFAULT flags.
76ef61fb 23758 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
23759 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
23760 * config/microblaze/microblaze.md: Update extendsidi2 and
23761 movdi_internal instructions to use low-order / high-order reg
23762 print_operands.
23763 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
23764 options and inversemask / mask of LITTLE_ENDIAN.
23765 * config/microblaze/t-microblaze: Expand multilib options to
23766 include mlittle-endian (le) and update exceptions patterns.
23767
600a5961
JJ
237682013-02-08 Jakub Jelinek <jakub@redhat.com>
23769
5df81313
JJ
23770 PR rtl-optimization/56195
23771 * lra-constraints.c (get_reload_reg): Don't reuse regs
23772 if they have smaller mode than requested, if they have
23773 wider mode than requested, try to return a SUBREG.
23774
600a5961
JJ
23775 PR tree-optimization/56250
23776 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
23777 if type is unsigned and code isn't MULT_EXPR.
23778
ff544649
GJL
237792013-02-08 Georg-Johann Lay <avr@gjlay.de>
23780
23781 PR tree-optimization/56064
23782 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
23783 bits according to mode.
23784 * fixed-value.h (fixed_from_double_int)
23785 (const_fixed_from_double_int): Adjust comments.
23786
e45cde98
RB
237872013-02-08 Richard Biener <rguenther@suse.de>
23788
23789 PR lto/56231
23790 * lto-streamer.h (struct data_in): Remove current_file, current_line
23791 and current_col members.
23792 * lto-streamer-out.c (lto_output_location): Stream changed bits
23793 en-block for efficiency.
23794 * lto-streamer-in.c (clear_line_info): Remove.
23795 (lto_input_location): Cache current file, line and column
23796 globally via local statics. Read changed bits en-block.
23797 (input_function): Do not call clear_line_info.
23798 (lto_read_body): Likewise.
23799 (lto_input_toplevel_asms): Likewise.
23800
c1ca73d8
MM
238012013-02-08 Michael Matz <matz@suse.de>
23802
23803 PR tree-optimization/52448
23804 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
23805 (nt_call_phase): New static.
23806 (add_or_mark_expr): Only mark accesses with newer phase than any
23807 call seen.
23808 (nonfreeing_call_p): New.
23809 (nt_init_block): Update nt_call_phase, mark blocks as visited.
23810 (nt_fini_block): Keep blocks marked as visited.
23811 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
23812
57548aa2
RB
238132013-02-08 Richard Biener <rguenther@suse.de>
23814
23815 * ira.c (ira): Free broken dominator information.
23816
8e10366f
UB
238172013-02-08 Uros Bizjak <ubizjak@gmail.com>
23818
23819 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
23820
f64fb0fa
MP
238212013-02-08 Marek Polacek <polacek@redhat.com>
23822
8e10366f 23823 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 23824
0375167b
RB
238252013-02-08 Richard Biener <rguenther@suse.de>
23826
23827 PR middle-end/56181
23828 * cfgloop.h (flow_loops_find): Adjust.
23829 (bb_loop_header_p): Declare.
23830 * cfgloop.c (bb_loop_header_p): New function split out from ...
23831 (flow_loops_find): ... here. Adjust function signature,
23832 support incremental loop structure update.
23833 (verify_loop_structure): Cleanup. Verify a loop is a loop.
23834 * cfgloopmanip.c (fix_loop_structure): Move ...
23835 * loop-init.c (fix_loop_structure): ... here.
23836 (apply_loop_flags): Split out from ...
23837 (loop_optimizer_init): ... here.
23838 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
23839 in incremental mode, only remove dead loops here.
23840
85d768f3
GJL
238412013-02-08 Georg-Johann Lay <avr@gjlay.de>
23842
23843 PR target/54222
23844 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
23845 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
23846 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
23847 (*round<mode>3.libgcc): New insns for fixed-modes.
23848 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
23849 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
23850 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
23851 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
23852 implementations. Define to __builtin_avr_absFX,
23853 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
23854 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
23855 __builtin_avr_countlsFX, respectively.
23856 * config/avr/avr-c.c (target.h): Include it.
23857 (enum avr_builtin_id): New enum.
23858 (avr_resolve_overloaded_builtin): New static function.
23859 (avr_register_target_pragmas): Use it to set
23860 targetm.resolve_overloaded_builtin.
23861 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
23862 tree nodes used by DEF_BUILTIN.
23863 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
23864 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
23865 <AVR_BUILTIN_xxBITS>: Same.
23866
661bc682
RB
238672013-02-08 Richard Biener <rguenther@suse.de>
23868
23869 * cfgloop.c (verify_loop_structure): Properly handle
23870 a loop exiting to another loop header.
23871 * ira-int.h (ira_loops): Remove.
23872 * ira.c (ira_loops): Remove.
23873 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
23874 (do_reload): Use loop_optimizer_finalize.
23875 * ira-build.c (create_loop_tree_nodes): Use get_loops and
23876 number_of_loops to access the loop tree.
23877 (more_one_region_p): Likewise.
23878 (finish_loop_tree_nodes): Likewise.
23879 (rebuild_regno_allocno_maps): Likewise.
23880 (mark_loops_for_removal): Likewise.
23881 (mark_all_loops_for_removal): Likewise.
23882 (remove_unnecessary_regions): Likewise.
23883 (ira_build): Likewise.
23884 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
23885
0d5049b2
RB
238862013-02-08 Richard Biener <rguenther@suse.de>
23887
23888 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
23889 * ipa-pure-const.c (analyze_function): Avoid calling
23890 mark_irreducible_loops twice.
8e10366f 23891 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 23892
499f32e8
DM
238932013-02-07 David S. Miller <davem@davemloft.net>
23894
23895 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
23896 on 'reg'.
23897 * var-tracking.c (vt_add_function_parameter): Test the presence of
23898 HAVE_window_save properly and do not remap argument registers when
23899 we have a leaf function.
23900
6edc3e32
UB
239012013-02-07 Uros Bizjak <ubizjak@gmail.com>
23902
23903 PR bootstrap/56227
23904 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
23905 instead of "ll".
23906 * config/i386/i386.c (ix86_print_operand): Ditto.
23907
5306401f
VM
239082013-02-07 Vladimir Makarov <vmakarov@redhat.com>
23909
6edc3e32 23910 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 23911
027ece11
VM
239122013-02-07 Vladimir Makarov <vmakarov@redhat.com>
23913
23914 PR rtl-optimization/56225
23915 * lra-constraints.c (process_alt_operands): Check that reload hard
23916 reg can hold value for strict_low_part.
23917
f980dfdb
JJ
239182013-02-07 Jakub Jelinek <jakub@redhat.com>
23919
23920 PR debug/56154
23921 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
23922 dwarf2out_end_function.
23923 (in_first_function_p, maybe_at_text_label_p,
23924 first_loclabel_num_not_at_text_label): New variables.
23925 (dwarf2out_var_location): In the first function find out
6edc3e32 23926 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
23927 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
23928 functions.
23929
73dd3123
EB
239302013-02-07 Eric Botcazou <ebotcazou@adacore.com>
23931
23932 PR rtl-optimization/56178
23933 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
23934 SUBREG of a register. Tidy up related block of code.
23935 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
23936 note if the source is a register or a SUBREG of a register.
23937
e3936f47
JJ
239382013-02-07 Jakub Jelinek <jakub@redhat.com>
23939
23940 PR target/56228
23941 * config/rs6000/rs6000.md (ptrm): New mode attr.
23942 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
23943 call_value_indirect_aix<pttrsize>,
23944 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
23945 m in constraints.
23946
d96d674b
MH
239472013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
23948
23949 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
23950 if -bnortl. Convert to strcmp and strncmp.
23951
921f2dee
AM
239522013-02-07 Alan Modra <amodra@gmail.com>
23953
23954 PR target/54009
23955 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
23956 addresses won't wrap when offsetting.
23957 (rs6000_secondary_reload): Provide secondary reloads needed for
23958 wrapping LO_SUM addresses.
23959
d09c7dba
TS
239602013-02-06 Thomas Schwinge <thomas@codesourcery.com>
23961
23962 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
23963 MACH, just __MACH__.
23964
a44bbd48
RB
239652013-02-06 Richard Biener <rguenther@suse.de>
23966
23967 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
23968 instead of calling fix_loop_structure.
23969
6d840d99
JJ
239702013-02-06 Jakub Jelinek <jakub@redhat.com>
23971
23972 PR middle-end/56217
23973 * omp-low.c (use_pointer_for_field): Return false if
23974 lower_send_shared_vars doesn't generate any copy-out code.
23975
0f33baa9
TV
239762013-02-06 Tom de Vries <tom@codesourcery.com>
23977
23978 PR rtl-optimization/56131
23979 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
23980 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
23981 of the label is NULL. Add comment.
23982
11f1e3ab
JJ
239832013-02-05 Jakub Jelinek <jakub@redhat.com>
23984
31502f9f
JJ
23985 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
23986
a74db9bd
JJ
23987 PR sanitizer/55374
23988 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
23989 (STATIC_LIBTSAN_LIBS): Likewise.
23990 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
23991 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
23992 is defined, don't add anything else beyond that.
23993 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
23994 (LINK_COMMAND_SPEC): Use them.
23995
11f1e3ab
JJ
23996 PR tree-optimization/56205
23997 * tree-stdarg.c (check_all_va_list_escapes): Return true if
23998 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
23999 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
24000
14ac6aa2
RB
240012013-02-05 Richard Biener <rguenther@suse.de>
24002
24003 PR tree-optimization/53342
24004 PR tree-optimization/53185
24005 * tree-vectorizer.h (vect_check_strided_load): Remove.
24006 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
24007 not disallow peeling for vectorized strided loads.
24008 (vect_check_strided_load): Make static and simplify.
24009 (vect_analyze_data_refs): Adjust.
24010 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
24011 correctly when vectorizing strided loads.
24012
6f22445a
RB
240132013-02-05 Richard Biener <rguenther@suse.de>
24014
24015 * doc/install.texi: Refer to ISL, not PPL.
24016
39f9719e
JH
240172013-02-05 Jan Hubicka <jh@suse.cz>
24018
ec4224ac
JH
24019 PR tree-optimization/55789
24020 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
24021
240222013-02-05 Jan Hubicka <jh@suse.cz>
24023
24024 PR tree-optimization/55789
39f9719e
JH
24025 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
24026 the dead call anyway.
24027
956d3b33
EB
240282013-02-05 Eric Botcazou <ebotcazou@adacore.com>
24029
24030 PR sanitizer/55374
24031 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
24032
240332013-02-04 Alexander Potapenko <glider@google.com>
24034 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
24035 Jakub Jelinek <jakub@redhat.com>
24036
24037 PR sanitizer/55617
24038 * config/darwin.c (sort_ctor_records): Stabilized qsort
24039 on constructor priority by using original position.
24040 (finalize_ctors): New routine to sort constructors by
24041 priority before use in assemble_integer.
24042 (machopic_asm_out_constructor): Use finalize_ctors if needed.
24043
7ac3af38
JJ
240442013-02-04 Jakub Jelinek <jakub@redhat.com>
24045
24046 PR libstdc++/54314
24047 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
24048 about visibility on artificial decls.
24049 * config/sol2.c (solaris_assemble_visibility): Likewise.
24050
152689dc
KT
240512013-02-04 Kai Tietz <ktietz@redhat.com>
24052
24053 PR target/56186
24054 * config/i386/i386.c (function_value_ms_64): Add additional valtype
24055 argument and improve checking of return-argument types for 16-byte
24056 modes.
24057 (ix86_function_value_1): Add additional valtype argument on call
24058 of function_value_64.
24059 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
24060 handling infunction_value_64 function.
24061
2b5987b5
MGD
240622013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
24063
7ac3af38 24064 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 24065
14597080
RB
240662013-02-04 Richard Biener <rguenther@suse.de>
24067
24068 PR tree-optimization/56188
24069 * tree-ssa-structalias.c (label_visit): Consider case with
24070 initially non-empty points-to set.
24071 (perform_var_substitution): Dump node mapping and clean up.
24072
ed73881e
RG
240732013-02-04 Richard Guenther <rguenther@suse.de>
24074
24075 PR lto/56168
24076 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
24077 node prevail as last resort.
24078 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 24079 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 24080
139a0707
RB
240812013-02-04 Richard Biener <rguenther@suse.de>
24082
24083 PR tree-optimization/56113
24084 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
24085 Merge into ...
24086 (equiv_class_lookup_or_add): ... this.
24087 (label_visit): Adjust and fix error in previous patch.
24088 (perform_var_substitution): Adjust.
24089
50fe8924
OE
240902013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
24091
24092 * config/sh/divtab.c: Fix formatting and comments throughout the file.
24093 * config/sh/sh4-300.md: Likewise.
24094 * config/sh/sh4a.md: Likewise.
24095 * config/sh/constraints.md: Likewise.
24096 * config/sh/sh.md: Likewise.
24097 * config/sh/netbsd-elf.h: Likewise.
24098 * config/sh/predicates.md: Likewise.
24099 * config/sh/sh-protos.h: Likewise.
24100 * config/sh/ushmedia.h: Likewise.
24101 * config/sh/linux.h: Likewise.
24102 * config/sh/sh.c: Likewise.
24103 * config/sh/superh.h: Likewise.
24104 * config/sh/elf.h: Likewise.
24105 * config/sh/sh4.md: Likewise.
24106 * config/sh/sh.h: Likewise.
24107
1a04ac2b
JDA
241082013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24109
24110 * config/pa/constraints.md: Adjust unused letters. Change "T"
24111 constraint to match_test floating_point_store_memory_operand().
24112 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
24113 (base14_operand): New.
24114 (floating_point_store_memory_operand): New.
24115 (integer_store_memory_operand): Revise to use base14_operand and
24116 reg_plus_base_memory_operand.
24117 (move_dest_operand): Allow symbolic_memory_operands.
24118 (symbolic_memory_operand): Check for LO_SOM.
24119 (symbolic_operand): Change default case to break.
24120 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
24121 CONST_DOUBLE values to be reloaded by putting them into memory when
24122 the destination is a floating point register.
24123 (movdf): Remove code to handle CONST_DOUBLE.
24124 (movsf): Likewise.
24125 (reload_indf_r1): New.
24126 (reload_insf_r1): New.
24127 Consistently use "Q" and "T" constraints with integer and floating
24128 point move instructions, respectively.
24129 (movdi): Remove FAIL.
24130 Change predicate for source operand unamed DImode move from
24131 general_operand to move_src_operand.
24132 (umulsidi3): Change predicate for destination operand to
24133 register_operand.
24134 Likewise for similar unamed patterns.
24135 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
24136 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
24137 (hppa_legitimize_address): Simplify mask calculation.
24138 (pa_emit_move_sequence): Revised handling of secondary reloads from
24139 REG+D addresses for floating point loads and stores. Directly handle
24140 loading CONST0_RTX (mode) to a floating point register.
24141 (pa_secondary_reload): Handle reloading DF and SFmode constant values
24142 to floating point registers. Don't restrict secondary reloads to
24143 floating point registers to integer modes. Revise some comments and
24144 cleanup some code.
24145 (TARGET_LEGITIMATE_ADDRESS_P): Define.
24146 (pa_legitimate_address_p): New.
24147 (pa_legitimize_reload_address): New.
24148 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
24149 (STRICT_REG_OK_FOR_BASE_P): New.
24150 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
24151 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
24152
3bf65591
DE
241532013-02-03 David Edelsohn <dje.gcc@gmail.com>
24154 Andrew Dixie <andrewd@gentrack.com>
24155
24156 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
24157 flag set.
24158
c0a8a3e6
RS
241592013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
24160
24161 * expmed.c (extract_bit_field_1): Pass the full width of the
24162 structure to get_best_reg_extraction_insn.
24163
99113dff
DE
241642013-02-01 David Edelsohn <dje.gcc@gmail.com>
24165
24166 PR target/54601
24167 * configure.ac (use_cxa_atexit): Add AIX.
24168 * configure: Regenerate.
24169
24170 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
24171
ddd84654
JJ
241722013-02-01 Jakub Jelinek <jakub@redhat.com>
24173
24174 PR debug/54793
24175 * final.c (need_profile_function): New variable.
24176 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
24177 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
24178 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
24179 notes, targetm.asm_out.function_prologue doesn't emit anything,
24180 HAVE_prologue and profiler should be emitted before prologue,
24181 set need_profile_function instead of emitting it.
24182 (final_scan_insn): If need_profile_function, emit
24183 profile_function on the first NOTE_INSN_BASIC_BLOCK or
24184 NOTE_INSN_FUNCTION_BEG note.
24185
241862013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
24187
24188 * config/rs6000/rs6000.md (smulditi3): New.
24189 (umulditi3): New.
24190
ff2a9d88
RH
24191 * config/alpha/alpha.md (umulditi3): New.
24192
14d52b90
DE
241932013-02-01 David Edelsohn <dje.gcc@gmail.com>
24194
24195 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
24196 (ASM_OUTPUT_ALIGNED_LOCAL): New.
24197
8c7ca45c
RB
241982013-02-01 Richard Biener <rguenther@suse.de>
24199
24200 PR tree-optimization/56113
24201 * tree-ssa-structalias.c (label_visit): Reduce work for
24202 single-predecessor nodes.
24203
9f419393
EB
242042013-02-01 Eric Botcazou <ebotcazou@adacore.com>
24205
24206 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
24207 range isn't testing for zero.
24208
c5f4be84
SB
242092013-01-31 Steven Bosscher <steven@gcc.gnu.org>
24210
24211 PR middle-end/56113
24212 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
24213
dbdbd982
NC
242142013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
24215 Nick Clifton <nickc@redhat.com>
24216
24217 * config/v850/constraints.md (Q): Define as a memory constraint.
24218 * config/v850/predicates.md (label_ref_operand): New predicate.
24219 (e3v5_shift_operand): New predicate.
24220 (ior_operator): New predicate.
24221 * config/v850/t-v850: Add e3v5 multilib.
24222 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
24223 (v850_gen_movdi): Prototype.
24224 * config/v850/v850.c: Add support for e3v5 architecture.
24225 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
24226 TARGET_V850E_UP.
24227 (construct_save_jarl): Add e3v5 long JARL support.
24228 (v850_adjust_insn_length): New function. Adjust length of call
24229 insns when using e3v5 instructions.
24230 (v850_gen_movdi): New function: Generate instructions to move a
24231 DImode value.
24232 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
24233 (CPP_SPEC): Define __v850e3v5__ as appropriate.
24234 (TARGET_USE_FPU): Enable for e3v5.
24235 (CONST_OK_FOR_W): New macro.
24236 (ADJUST_INSN_LENGTH): Define.
24237 * config/v850/v850.md (UNSPEC_LOOP): Define.
24238 (attr cpu): Add v850e3v5.
24239 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
24240 (movdi): New pattern.
24241 (movdi_internal): New pattern.
24242 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
24243 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
24244 (cstoresf4): Likewise.
24245 (cstoredf4): Likewise.
24246 (insv): New pattern.
24247 (rotlso3_a): New pattern.
24248 (rotlsi3_b): New pattern
24249 (rotlsi3_v850e3v5): New pattern.
24250 (doloop_begin): New pattern.
24251 (fix_loop_counter): New pattern.
24252 (doloop_end): New pattern.
24253 (branch_normal): Add e3v5 long branch support.
24254 (branch_invert): Likewise.
24255 (branch_z_normal): Likewise.
24256 (branch_z_invert): Likewise.
24257 (branch_nz_normal): Likewise.
24258 (branch_nz_invert): Likewise.
24259 (call_internal_short): Add e3v5 register-indirect JARL support.
24260 (call_internal_long): Likewise.
24261 (call_value_internal_short): Likewise.
24262 (call_value_internal_long): Likewise.
24263 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
24264 (mloop): New option.
24265 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 24266 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 24267
73861a41
PK
242682013-01-31 Paul Koning <ni1d@arrl.net>
24269
24270 PR debug/55059
24271 PR debug/54508
24272 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
24273 children if parent is a class.
24274 (prune_unused_types_prune): Don't add DW_AT_declaration.
24275
e44978dc
RB
242762013-01-31 Richard Biener <rguenther@suse.de>
24277
24278 PR tree-optimization/56157
24279 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
24280 match up operand with SLP child.
24281
90b10dec
JM
242822013-01-31 Jason Merrill <jason@redhat.com>
24283
04d2dadd 24284 PR debug/54410
90b10dec
JM
24285 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
24286 parameters the first time.
24287 (gen_scheduled_generic_parms_dies): Check completeness here.
24288
6e616110
RB
242892013-01-31 Richard Biener <rguenther@suse.de>
24290
24291 PR middle-end/53073
24292 * common.opt (faggressive-loop-optimizations): New flag,
24293 enabled by default.
24294 * doc/invoke.texi (faggressive-loop-optimizations): Document.
24295 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
24296 infer_loop_bounds_from_undefined by it.
24297
636f59cf
RB
242982013-01-31 Richard Biener <rguenther@suse.de>
24299
24300 PR tree-optimization/56150
24301 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
24302 visit virtual operands.
24303 (find_uses_to_rename_bb): Likewise.
24304
243052013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
24306
24307 PR tree-optimization/56150
24308 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
24309 mixed store non-store stmts.
24310
32887460
JJ
243112013-01-30 Jakub Jelinek <jakub@redhat.com>
24312
e60e09a0
JJ
24313 PR sanitizer/55374
24314 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
24315 LIBASAN_EARLY_SPEC is defined.
24316 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
24317 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
24318 before %o.
24319 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
24320
32887460
JJ
24321 PR c++/55742
24322 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
24323 invalid args instead of ICEing on it.
24324 (ix86_valid_target_attribute_tree): Return error_mark_node if
24325 ix86_valid_target_attribute_inner_p failed.
24326 (ix86_valid_target_attribute_p): Return false only if
24327 ix86_valid_target_attribute_tree returned error_mark_node. Allow
24328 target("default") attribute.
24329 (sorted_attr_string): Change argument from const char * to tree,
24330 merge in all target attribute arguments rather than just one.
24331 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
24332 instead of free. Avoid using strcat.
24333 (ix86_mangle_function_version_assembler_name): Mangle
24334 target("default") as if no target attribute is present. Adjust
24335 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
24336 instead of xmalloc and XDELETEVEC instead of free.
24337 (ix86_function_versions): Don't return true if one of the decls
24338 doesn't have target attribute. If they don't and one of the decls
24339 is DECL_FUNCTION_VERSIONED, report an error. Adjust
24340 sorted_attr_string caller. Use XDELETEVEC instead of free.
24341 (ix86_supports_function_versions): Remove.
24342 (make_name): Fix up formatting.
24343 (make_dispatcher_decl): Remove resolver_name and its initialization.
24344 Avoid leaking memory.
24345 (is_function_default_version): Return true if there is
24346 target("default") attribute rather than no target attribute at all.
24347 (make_resolver_func): Avoid leaking memory.
24348 (ix86_generate_version_dispatcher_body): Likewise.
24349 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
24350 * target.def (supports_function_versions): Remove.
24351 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
24352 * doc/tm.texi: Regenerated.
24353
73cca0cc
VM
243542013-01-30 Vladimir Makarov <vmakarov@redhat.com>
24355
24356 PR rtl-optimization/56144
24357 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
24358 for values with side effects.
24359
11452e7b
RB
243602013-01-30 Richard Biener <rguenther@suse.de>
24361
24362 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
24363 (sparseset_pop): Likewise.
24364 * cfganal.c (compute_idf): Likewise. Increase work-stack size
24365 to be able to use quick_push in the worker loop.
24366
01cb1ef5
MP
243672013-01-30 Marek Polacek <polacek@redhat.com>
24368
24369 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
24370
e892936e
RB
243712013-01-30 Richard Biener <rguenther@suse.de>
24372
24373 PR lto/56147
6edc3e32 24374 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 24375
cc06c01d
GJL
243762013-01-30 Georg-Johann Lay <avr@gjlay.de>
24377
24378 PR tree-optimization/56064
24379 * fixed-value.c (fixed_from_double_int): New function.
24380 * fixed-value.h (fixed_from_double_int): New prototype.
24381 (const_fixed_from_double_int): New static inline function.
24382 * fold-const.c (native_interpret_fixed): New static function.
24383 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
24384 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
24385 (native_encode_fixed): New static function.
24386 (native_encode_expr) <FIXED_CST>: Use it.
24387 (native_interpret_int): Move double_int worker code to...
24388 * double-int.c (double_int::from_buffer): ...this new static method.
24389 * double-int.h (double_int::from_buffer): Prototype it.
24390
d394a308
RB
243912013-01-30 Richard Biener <rguenther@suse.de>
24392
24393 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
24394 New pointer-map and obstack.
24395 (init_alias_vars): Allocate pointer-map and obstack.
24396 (delete_points_to_sets): Free them.
24397 (find_what_var_points_to): Cache result.
24398 (find_what_p_points_to): Adjust for changed interface of
24399 find_what_var_points_to.
24400 (compute_points_to_sets): Likewise.
24401 (ipa_pta_execute): Likewise.
24402
20804d96
RO
244032013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24404
24405 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
24406 * configure: Regenerate.
24407 * config.in: Regenerate.
24408 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
24409 #nobits/#progbits if supported.
24410
a7ad88a2
OE
244112013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
24412
24413 PR target/56121
24414 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
24415 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
24416 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
24417
7af79f92
GY
244182013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24419
91bfca59
OE
24420 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
24421 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 24422
753bcf7b
GY
244232013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24424
91bfca59
OE
24425 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
24426 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 24427
8cbc2ea8
GY
244282013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24429
91bfca59
OE
24430 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
24431 declaration.
24432 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
24433 * config/arm/cortex-a7.md: New bypasses using
24434 arm_mac_accumulator_is_result.
8cbc2ea8 24435
697a3325
GY
244362013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24437
91bfca59 24438 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 24439 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
24440 (cortex_a7_fpfmad): New reservation.
24441 (cortex_a7_fpmacs): Use ffmas and update required units.
24442 (cortex_a7_fpmuld): Update required units and latency.
24443 (cortex_a7_fpmacd): Likewise.
24444 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
24445 (cortex_a7_neon). Likewise.
24446 (bypass) Update participating units.
697a3325 24447
29637783
GY
244482013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24449
91bfca59
OE
24450 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
24451 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
24452 from fmac to ffma.
24453 * config/arm/vfp11.md (vfp_farith): Use ffmas.
24454 (vfp_fmul): Use ffmad.
24455 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
24456 (cortex_r4_fmacd): Use ffmad.
24457 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
24458 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
24459 (cortex_a9_fmacd): Use ffmad.
24460 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
24461 (cortex_a8_vfp_macd): Use ffmad.
24462 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
24463 (cortex_a5_fpmacd): Use ffmad.
24464 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
24465 (cortex_a15_vfp_macd): Use ffmad.
24466 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 24467
2ee8a2d5
JM
244682013-01-29 Jason Merrill <jason@redhat.com>
24469
24470 PR libstdc++/54314
24471 * varasm.c (default_assemble_visibility): Don't warn about
24472 visibility on artificial decls.
24473
78d087bc
RB
244742013-01-29 Richard Biener <rguenther@suse.de>
24475
24476 PR tree-optimization/56113
24477 * tree-ssa-structalias.c (equiv_class_lookup): Also return
24478 the bitmap leader.
24479 (label_visit): Free duplicate bitmaps and record the leader instead.
24480 (perform_var_substitution): Adjust.
24481
83ba4d6f
RB
244822013-01-29 Richard Biener <rguenther@suse.de>
24483
24484 PR tree-optimization/55270
24485 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
24486 the CFG, schedule loops for fixup.
24487
66dfe13f
NC
244882013-01-29 Nick Clifton <nickc@redhat.com>
24489
24490 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
24491 SP_REG.
24492
5a579c3b
LE
244932013-01-28 Leif Ekblad <leif@rdos.net>
24494
24495 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
24496 * config/i386/i386.h (TARGET_RDOS): New macro.
24497 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
24498 * config/i386/i386.c (ix86_option_override_internal): For 64bit
24499 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
24500 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
24501 DEFAULT_LARGE_SECTION_THRESHOLD.
24502 * config/i386/i386.md (R14_REG, R15_REG): New constants.
24503 * config/i386/rdos.h: New file.
24504 * config/i386/rdos64.h: New file.
24505
51e44392
BS
245062013-01-28 Bernd Schmidt <bernds@codesourcery.com>
24507
24508 PR other/54814
24509 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
24510 TEST_HARD_REG_BIT.
24511
db1fb332
JJ
245122013-01-28 Jakub Jelinek <jakub@redhat.com>
24513
24514 PR rtl-optimization/56117
24515 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
24516 call cselib_lookup_from_insn on the MEM before calling
24517 add_insn_mem_dependence.
24518
16917761
RB
245192013-01-28 Richard Biener <rguenther@suse.de>
24520
24521 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
24522 to a stmt that didn't have one.
24523 (copy_phis_for_bb): Likewise for PHI arguments.
24524 (copy_debug_stmt): Likewise for debug stmts.
24525
b9fc0497
RB
245262013-01-28 Richard Biener <rguenther@suse.de>
24527
24528 PR tree-optimization/56034
6edc3e32 24529 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
24530 (partition_builtin_p): Adjust.
24531 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
24532 it is the last partition.
24533 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
24534 up the vertex for the definition.
24535 (classify_partition): Classify whether a partition is a
24536 PKIND_REDUCTION, thus has uses outside of the loop.
24537 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
24538 Merge all PKIND_REDUCTION partitions into the last partition.
24539 (tree_loop_distribution): Seed partitions from reductions as well.
24540
aa710d25
JJ
245412013-01-28 Jakub Jelinek <jakub@redhat.com>
24542
0bfbca58
JJ
24543 PR tree-optimization/56125
24544 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
24545 pow(x,c) into sqrt(x) * powi(x, n/2) or
24546 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
24547 optimizing for size.
24548 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
24549 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
24550 integer.
24551
aa710d25
JJ
24552 PR tree-optimization/56094
24553 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
24554 to UNKNOWN_LOCATION while gimplifying expr.
24555
77dc5297
UB
245562013-01-27 Uros Bizjak <ubizjak@gmail.com>
24557
24558 PR target/56114
24559 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
24560 operand 0 in movabs insn template for -masm=intel asm alternative.
24561 (*movabs<mode>_2): Ditto for operand 1.
24562
0bfbca58 245632013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
24564
24565 PR target/54663
24566 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
24567 of microblaze-c.o
24568
0bfbca58 245692013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
24570
24571 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
24572 tm_file.
24573
0bfbca58 245742013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
24575
24576 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
24577 Undef to avoid warning.
24578
478f60f9
MH
245792013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24580
24581 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
24582 * configure: Regenerate.
24583
d7fa6ee2
JJ
245842013-01-25 Jakub Jelinek <jakub@redhat.com>
24585
24586 PR tree-optimization/56098
24587 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
24588 for stmts with volatile ops.
24589 (cond_store_replacement): Don't optimize if assign has volatile ops.
24590 (cond_if_else_store_replacement_1): Don't optimize if either
24591 then_assign or else_assign have volatile ops.
24592 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
24593 volatile ops.
24594
f8fe87bd
GJL
245952013-01-25 Georg-Johann Lay <avr@gjlay.de>
24596
24597 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
24598
28398d0d
GJL
245992013-01-25 Georg-Johann Lay <avr@gjlay.de>
24600
24601 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
24602 missing ':' in asm example.
24603
b7d7d917
TB
246042013-01-25 Tejas Belagod <tejas.belagod@arm.com>
24605
24606 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
24607 entries into lane and laneq entries.
77dc5297
UB
24608 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
24609 Remove AdvSIMD scalar modes.
b7d7d917
TB
24610 (aarch64_sq<r>dmulh_laneq<mode>): New.
24611 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
24612 modes.
24613 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
24614 builtin implementations to relfect changes in RTL in aarch64-simd.md.
24615 * config/aarch64/iterators.md (VCOND): New.
24616 (VCONQ): New.
24617
556f9906
GJL
246182013-01-25 Georg-Johann Lay <avr@gjlay.de>
24619
24620 PR target/54222
24621 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
24622 Add NULL LIBNAME argument to existing definitions.
24623 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
24624 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
24625 * config/avr/avr.c (DEF_BUILTIN): Same.
24626 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
24627 (avr_expand_builtin): Expand to a vanilla call if a libgcc
24628 implementation is available (DECL_ASSEMBLER_NAME is set).
24629 (avr_fold_absfx): New static function.
24630 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
24631 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
24632 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
24633 AVR_BUILTIN_ABSLLK.
24634 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
24635 (abshk, absk, abslk, absllk): Provide as static inline functions.
24636
1f546bbb
MP
246372013-01-25 Marek Polacek <polacek@redhat.com>
24638
24639 PR tree-optimization/56035
24640 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
24641
7e184bd7
UB
246422012-01-24 Uros Bizjak <ubizjak@gmail.com>
24643
24644 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
24645 (*movtf_internal_rex64): Add (!o,C) alternative
24646 (*movxf_internal_rex64): Ditto.
24647 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
24648
f5ba49ac
SM
246492013-01-24 Shenghou Ma <minux.ma@gmail.com>
24650
24651 * doc/invoke.texi: fix typo.
24652 * doc/objc.texi: fix typo.
24653
a6343728
RS
246542013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
24655
24656 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
24657 for the first two alternatives.
24658
cd030c07
DN
246592013-01-24 Diego Novillo <dnovillo@google.com>
24660
77dc5297 24661 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
24662 (ggc-zone.o): Remove.
24663 * configure.ac: Remove option --with-gc.
24664 * configure: Re-generate.
24665 * doc/install.texi: Remove documentation for --with-gc.
24666 * gengtype.c (write_enum_defn): Remove. Update all users.
24667 (write_Types_process_field): Remove generation of gt_e_* argument.
24668 (output_type_enum): Remove. Update all users.
24669 (write_enum_defn): Remove. Update all users.
24670 (enum alloc_zone): Remove. Update all users.
77dc5297 24671 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
24672 * ggc-common.c (ggc_splay_alloc): Remove first argument.
24673 Update all callers.
24674 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 24675 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
24676 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
24677 Update all users.
aaf1e810 24678 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
24679 (struct alloc_zone): Remove.
24680 (ggc_internal_alloc_zone_stat): Remove.
24681 (ggc_internal_cleared_alloc_zone_stat): Remove.
24682 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
24683 (ggc_pch_count_object): Remove last argument. Update all users.
24684 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
24685 (struct alloc_zone): Remove.
24686 * ggc-zone.c: Remove.
77dc5297 24687 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
24688 (struct alloc_zone): Remove.
24689 (ggc_alloc_typed_stat): Remove.
24690 (ggc_alloc_typed): Remove.
24691 (ggc_splay_alloc): Remove first argument.
24692 (rtl_zone): Remove. Update all users.
24693 (tree_zone): Remove. Update all users.
24694 (tree_id_zone): Remove. Update all users.
24695 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 24696 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 24697 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 24698 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 24699
a861ffa4
GJL
247002013-01-24 Georg-Johann Lay <avr@gjlay.de>
24701
24702 * config/avr/avr.c (avr_out_fract): Make register numbers that
24703 might be outside of source operand signed.
24704
593c0ddd
UB
247052013-01-24 Uros Bizjak <ubizjak@gmail.com>
24706
24707 * config/i386/constraints.md (Yf): New constraint.
24708 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
24709 of f constraint to conditionaly disable x87 register preferences.
24710 (*movdf_internal): Ditto.
24711 (*movsf_internal): Ditto.
24712
e86c0101
SB
247132013-01-24 Steven Bosscher <steven@gcc.gnu.org>
24714
24715 PR inline-asm/55934
24716 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
24717 that have operands with impossible constraints.
24718 Add a FIXME for a speed-up opportunity.
24719 * lra-constraints.c (process_alt_operands): Verify that a class
24720 selected from constraints on asms is valid for the operand mode.
24721 (curr_insn_transform): Remove incorrect comment.
24722
f6fee35f
DE
247232013-01-23 David Edelsohn <dje.gcc@gmail.com>
24724
24725 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
24726 TOC operand is a valid symbol ref in the constant pool.
24727
247282013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 24729
aaf1e810 24730 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 24731
dc62d7d1
GJL
247322013-01-23 Georg-Johann Lay <avr@gjlay.de>
24733
24734 PR target/54222
24735 * config/avr/stdfix.h: New file.
24736 * t-avr (stdfix-gcc.h): New rule to build it.
24737 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
24738
2660d12d
KS
247392013-01-23 Kostya Serebryany <kcc@google.com>
24740
77dc5297
UB
24741 * config/darwin.h: remove dependency on
24742 CoreFoundation (asan on Mac OS).
2660d12d 24743
a70418fc
JJ
247442013-01-23 Jakub Jelinek <jakub@redhat.com>
24745
24746 PR target/49069
24747 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
24748 instead of cmpdi_operand for first comparison operand.
24749 Don't assert that comparison operands aren't both constants.
24750
47876a2a
JW
247512013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
24752
24753 * doc/install.texi (Downloading the Source): Update references to
24754 downloading separate components.
24755
247562013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
24757
24758 * doc/extend.texi (__int128): Improve grammar.
24759
47876a2a 247602013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
24761
24762 PR target/56028
24763 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
24764 alternative to (o,r).
24765 (*movdi_internal_rex64): Remove (!o,n) alternative.
24766 (DImode immediate->memory splitter): Remove.
24767 (DImode immediate->memory peephole2): Remove.
24768 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
24769 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
24770 alternative to (!o,*r).
24771 (*movtf_internal_sse): New pattern.
24772 (*movxf_internal_rex64): New pattern.
24773 (*movxf_internal): Disable for TARGET_64BIT.
24774 (*movdf_internal_rex64): Remove (!o,F) alternative.
24775
3a984f10
JJ
247762013-01-22 Jakub Jelinek <jakub@redhat.com>
24777
502498d5
JJ
24778 PR middle-end/56074
24779 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
24780 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
24781 * tree-vect-loop-manip.c (find_loop_location): Also ignore
24782 stmt locations where LOCATION_LOCUS of the stmt location is
24783 UNKNOWN_LOCATION or BUILTINS_LOCATION.
24784
3a984f10
JJ
24785 PR target/55686
24786 * config/i386/i386.md (UNSPEC_STOS): New.
24787 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
24788 *strsetqi_1): Add UNSPEC_STOS.
24789
fa817f7f
PC
247902013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
24791
24792 PR c++/56067
24793 * doc/invoke.texi: Remove left over -Wsynth example.
24794
8f498c1b
JJ
247952013-01-21 Jakub Jelinek <jakub@redhat.com>
24796
24797 PR tree-optimization/56051
24798 * fold-const.c (fold_binary_loc): Don't fold
24799 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
24800 a narrowing conversion, or widening conversion from signed
24801 to unsigned.
24802
47876a2a 248032013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
24804
24805 PR rtl-optimization/56023
24806 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
24807 dependent on debug instruction.
24808
5b9db1bc
MJ
248092013-01-21 Martin Jambor <mjambor@suse.cz>
24810
24811 PR middle-end/56022
24812 * function.c (allocate_struct_function): Call
24813 invoke_set_current_function_hook earlier.
24814
e8bb7d68
JJ
248152013-01-21 Jakub Jelinek <jakub@redhat.com>
24816
24817 * reload1.c (init_reload): Only initialize reload_obstack
24818 during the first call.
24819
616a4e32
MP
248202013-01-21 Marek Polacek <polacek@redhat.com>
24821
24822 * cfgloop.c (verify_loop_structure): Fix up grammar.
24823
4401981b
YHH
248242013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
24825
24826 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
24827 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
24828
8e87740b
RR
248292013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24830
24831 PR target/56058
24832 * config/arm/marvell-pj4.md: Update copyright year.
24833 Fix up use of alu to alu_reg and simple_alu_imm.
24834
47876a2a 248352013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
24836
24837 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
24838
89d56d79
VM
248392013-01-20 Vladimir Makarov <vmakarov@redhat.com>
24840
24841 PR target/55433
24842 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 24843 insn for secondary memory move when memory mode should be different.
89d56d79 24844
fe603553
JDA
248452013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24846
24847 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
24848 atomic_storedi_1): New patterns.
24849
01284895
VK
248502013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24851
24852 btver2 pipeline descriptions.
24853 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
24854 descriptions.
24855 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 24856 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
24857 type attributes.
24858 * config/i386/btver2.md: New file describing btver2 pipelines.
24859
5630e3e1
JL
248602013-01-19 Andrew Pinski <apinski@cavium.com>
24861
24862 PR tree-optimization/52631
24863 * tree-ssa-sccvn (visit_use): Before looking up the original
24864 statement, try looking up the simplified expression.
24865
650ae806
AG
248662013-01-19 Anthony Green <green@moxielogic.com>
24867
24868 * config/moxie/moxie.c (moxie_expand_prologue): Set
24869 current_function_static_stack_size.
24870
e300ec2d
JJ
248712013-01-18 Jakub Jelinek <jakub@redhat.com>
24872
24873 PR tree-optimization/56029
24874 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
24875 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
24876
a3d7af04
SS
248772013-01-18 Sharad Singhai <singhai@google.com>
24878
24879 PR tree-optimization/55995
24880 * dumpfile.c (dump_loc): Print location only if available.
24881 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
24882
66aa7879
VM
248832013-01-18 Vladimir Makarov <vmakarov@redhat.com>
24884
24885 PR target/55433
24886 * lra-constraints.c (curr_insn_transform): Reuse original insn for
24887 secondary memory move.
24888 (inherit_reload_reg): Use rclass instead of cl for
24889 check_secondary_memory_needed_p.
24890
3f0fee7b
JJ
248912013-01-18 Jakub Jelinek <jakub@redhat.com>
24892
24893 PR middle-end/56015
24894 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 24895 the case where writing real complex part of target modifies op1.
3f0fee7b 24896
70c67693
JG
248972013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
24898
24899 * config/aarch64/aarch64-simd.md
24900 (aarch64_vcond_internal<mode>): Handle unordered cases.
24901 * config/aarch64/iterators.md (v_cmp_result): New.
24902
df8de9b3
YHH
249032013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
24904 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24905
24906 * config/arm/marvell-pj4.md: New file.
24907 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
24908 * config/arm/arm.md (generic_sched): Add marvell_pj4.
24909 (generic_vfp): Likewise.
24910 * config/arm/arm-cores.def: Add marvell-pj4.
24911 * config/arm/arm-tune.md: Regenerate.
24912 * config/arm/arm-tables.opt: Regenerate.
24913 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
24914 * doc/invoke.texi: Document marvell-pj4.
24915
be30c356
TB
249162013-01-18 Tejas Belagod <tejas.belagod@arm.com>
24917
24918 * config/aarch64/arm_neon.h: Map scalar types to standard types.
24919
0bfbca58 249202013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
24921
24922 PR debug/54114
24923 PR debug/54402
24924 PR debug/49888
24925 * var-tracking.c (negative_power_of_two_p): New.
24926 (global_get_addr_cache, local_get_addr_cache): New.
24927 (get_addr_from_global_cache, get_addr_from_local_cache): New.
24928 (vt_canonicalize_addr): Rewrite using the above. Adjust the
24929 heading comment.
24930 (vt_stack_offset_p): Remove.
24931 (vt_canon_true_dep): Always canonicalize loc's address.
24932 (clobber_overlapping_mems): Make sure we have a MEM.
24933 (local_get_addr_clear_given_value): New.
24934 (val_reset): Clear local cached entries.
24935 (compute_bb_dataflow): Create and release the local cache.
24936 Disable duplicate MEMs clobbering.
24937 (emit_notes_in_bb): Clobber MEMs likewise.
24938 (vt_emit_notes): Create and release the local cache.
24939 (vt_initialize, vt_finalize): Create and release the global
24940 cache, respectively.
1f6bc337 24941 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 24942
0bfbca58 249432013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
24944
24945 PR libmudflap/53359
24946 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
24947 not found in the symtab.
24948
0bfbca58 249492013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 24950
c350ba53 24951 PR debug/56006
3aa03517
AO
24952 PR rtl-optimization/55547
24953 PR rtl-optimization/53827
24954 PR debug/53671
24955 PR debug/49888
24956 * alias.c (offset_overlap_p): New, factored out of...
24957 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
24958 the conservative special case for symbolic constants. Don't
24959 adjust zero sizes on alignment.
24960
c664546f
JL
249612013-01-18 Bernd Schmidt <bernds@codesourcery.com>
24962
24963 PR rtl-optimization/52573
24964 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
24965 REG_UNUSED for the same register.
24966
1bd3f750
MP
249672013-01-17 Richard Biener <rguenther@suse.de>
24968 Marek Polacek <polacek@redhat.com>
24969
24970 PR rtl-optimization/55833
24971 * loop-unswitch.c (unswitch_loops): Move loop verification...
24972 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
24973 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
24974 Set it to true when we're removing a loop from hierarchy tree in
24975 an irreducible region.
24976 (fix_bb_placements): Adjust caller.
24977 (fix_loop_placements): Likewise.
24978
e52a8b71
GJL
249792013-01-17 Georg-Johann Lay <avr@gjlay.de>
24980
24981 * config/avr/builtins.def (DEF_BUILTIN): Factor out
24982 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
24983 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
24984 Remove ID. Adjust comments.
24985 * config/avr/avr-c.c (avr_builtin_name): Remove.
24986 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
24987 * config/avr/avr.c (avr_tolower): New static function.
24988 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
24989 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
24990 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
24991 default expansion.
24992
8386a7ea
JH
249932013-01-17 Jan Hubicka <jh@suse.cz>
24994
610fb637 24995 PR tree-optimization/55273
8386a7ea
JH
24996 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
24997
47876a2a 249982013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
24999
25000 PR target/55981
25001 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
25002 store through atomic_store<mode>_1.
25003 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
25004
8222c37e
MJ
250052013-01-17 Martin Jambor <mjambor@suse.cz>
25006
25007 PR tree-optimizations/55264
25008 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
25009 for virtual methods.
25010 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
25011 virtual methods before inlining is over.
25012 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
25013 virtual functions.
25014 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
25015 non-virtual.
25016
79f01c76
VM
250172013-01-16 Vladimir Makarov <vmakarov@redhat.com>
25018
25019 PR rtl-optimization/56005
25020 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
25021 pending reads for prefetch.
25022
d0b6bb1b
IB
250232013-01-16 Ian Bolton <ian.bolton@arm.com>
25024
aaf1e810 25025 * config/aarch64/aarch64.md
d0b6bb1b
IB
25026 (*cstoresi_neg_uxtw): New pattern.
25027 (*cmovsi_insn_uxtw): New pattern.
25028 (*<optab>si3_uxtw): New pattern.
25029 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
25030 (*<optab>si3_insn_uxtw): New pattern.
25031 (*bswapsi2_uxtw): New pattern.
25032
cb9cf03b
RB
250332013-01-16 Richard Biener <rguenther@suse.de>
25034
25035 * tree-inline.c (tree_function_versioning): Remove set but
25036 never used variable.
25037
2cfc56b9
RB
250382013-01-16 Richard Biener <rguenther@suse.de>
25039
25040 PR tree-optimization/55964
25041 * tree-flow.h (rename_variables_in_loop): Remove.
25042 (rename_variables_in_bb): Likewise.
25043 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
25044 (copy_loop_before): Adjust and delete update-ssa status.
25045 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 25046 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
25047 (rename_variables_in_loop): Remove.
25048 (slpeel_update_phis_for_duplicate_loop): Likewise.
25049 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
25050 use available cfg machinery instead of duplicating it.
25051 Update PHI nodes and perform poor-mans SSA update here.
25052 (slpeel_tree_peel_loop_to_edge): Adjust.
25053
c25a0c60
RB
250542013-01-16 Richard Biener <rguenther@suse.de>
25055
25056 PR tree-optimization/54767
25057 PR tree-optimization/53465
25058 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
25059 (vrp_visit_phi_node): For PHI arguments coming via backedges
25060 drop all symbolical range information.
25061 (execute_vrp): Compute backedges.
25062
04b535af
RB
250632013-01-16 Richard Biener <rguenther@suse.de>
25064
25065 * doc/install.texi: Update CLooG and ISL requirements to
25066 0.18.0 and 0.11.1.
25067
8b0a1e0b
CB
250682013-01-16 Christian Bruel <christian.bruel@st.com>
25069
25070 PR target/55301
25071 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
25072 (broken_move): Handle UNSPECV_SP_SWITCH_B.
25073 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
25074
250752013-01-16 DJ Delorie <dj@redhat.com>
25076
25077 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
25078 (UNSPECV_SP_SWITCH_E): New.
25079 (sp_switch_1): Change to an unspec.
25080 (sp_switch_2): Change to an unspec. Don't use post-inc when we
25081 replace $r15.
25082
250832013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
25084
25085 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
25086 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
25087 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
25088 (expand_mem_thread_fence): Ditto.
25089 (expand_mem_signal_fence): Ditto.
25090 (expand_atomic_load): Ditto.
25091 (expand_atomic_store): Ditto.
25092
0bfbca58 250932013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
25094
25095 PR rtl-optimization/55547
25096 PR rtl-optimization/53827
25097 PR debug/53671
25098 PR debug/49888
25099 * alias.c (memrefs_conflict_p): Set sizes to negative after
25100 AND adjustments.
25101
305e3ac1
JJ
251022013-01-15 Jakub Jelinek <jakub@redhat.com>
25103
25104 PR target/55940
25105 * function.c (thread_prologue_and_epilogue_insns): Always
25106 add crtl->drap_reg to set_up_by_prologue.set, even if
25107 stack_realign_drap is false.
25108
f78ac4f2
JBG
251092013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25110
25111 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
25112 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
25113 *call): Fix indention.
25114
a78a8cc4
TV
251152013-01-15 Tom de Vries <tom@codesourcery.com>
25116
25117 PR target/55876
25118 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
25119 Update comment.
25120
0e80383f
VM
251212013-01-15 Vladimir Makarov <vmakarov@redhat.com>
25122
305e3ac1 25123 PR rtl-optimization/55153
0e80383f
VM
25124 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
25125
207b5956
MJ
251262013-01-15 Martin Jambor <mjambor@suse.cz>
25127
25128 PR tree-optimization/55920
25129 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
25130 accesses as grp_to_be_debug_replaced.
25131
a7818b54
JJ
251322013-01-15 Jakub Jelinek <jakub@redhat.com>
25133
25134 PR tree-optimization/55920
25135 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
25136 there is non-useless type conversion needed from debug rhs to lhs,
25137 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
25138
b0fe107e
JM
251392013-01-15 Joseph Myers <joseph@codesourcery.com>
25140 Mikael Pettersson <mikpe@it.uu.se>
25141
25142 PR target/43961
25143 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
25144 Thumb.
25145 (ASM_OUTPUT_CASE_LABEL): Remove.
25146 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
25147 * final.c (shorten_branches): Update alignment of labels before
25148 jump tables if CASE_VECTOR_SHORTEN_MODE.
25149
34ab62ee
RB
251502013-01-15 Richard Biener <rguenther@suse.de>
25151
25152 PR bootstrap/55961
25153 * system.h: Do not include gmp.h for building host tools.
25154
783a3a05
RB
251552013-01-15 Richard Biener <rguenther@suse.de>
25156
25157 PR middle-end/55882
25158 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
25159 account for bitpos when computing alignment.
25160
3a579e09
VY
251612013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
25162
25163 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
25164 (ix86_target_macros_internal): Likewise.
25165
25166 * config/i386/i386.c (m_CORE2I7): Removed.
25167 (m_CORE_HASWELL): New macro.
25168 (m_CORE_ALL): Likewise.
25169 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
25170 (initial_ix86_arch_features): Likewise.
25171 (processor_target_table): Initializations for Core avx2.
25172 (cpu_names): New names "core-avx2".
25173 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
25174 PROCESSOR_CORE_HASWELL.
25175 (ix86_issue_rate): New case.
25176 (ia32_multipass_dfa_lookahead): Likewise.
25177 (ix86_sched_init_global): Likewise.
25178
25179 * config/i386/i386.h (TARGET_HASWELL): New macro.
25180 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
25181 (processor_type): New PROCESSOR_HASWELL.
25182
955f5a07
JJ
251832013-01-15 Jakub Jelinek <jakub@redhat.com>
25184
ff784829
JJ
25185 PR tree-optimization/55955
25186 * tree-vect-loop.c (vectorizable_reduction): Give up early on
25187 *SHIFT_EXPR and *ROTATE_EXPR codes.
25188
955f5a07
JJ
25189 PR tree-optimization/48766
25190 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
25191 -ftrapv disable -fwrapv.
25192
aeb8b4e9
GJL
251932013-01-14 Georg-Johann Lay <avr@gjlay.de>
25194
25195 PR target/55974
25196 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
25197 etc. to 1 and not to __flash.
25198 Use LL suffix for __INT24_MAX__ with -mint8.
25199 Use ULL suffix for __UINT24_MAX__ with -mint8.
25200
1c494c6a
GJL
252012013-01-14 Georg-Johann Lay <avr@gjlay.de>
25202
25203 * config/avr/avr-arch.h
25204 (struct base_arch_s): Use typedef avr_arch_t instead.
25205 (struct arch_info_s): Use typedef avr_arch_info_t instead.
25206 (struct mcu_type_s): Use typedef avr_mcu_t instead.
25207 * config/avr/avr.c: Same.
25208 * config/avr/avr-devices.c: Same.
25209 * config/avr/driver-avr.c: Same.
25210 * config/avr/gen-avr-mmcu-texi.c: Same.
25211 * config/avr/avr-mcus.def: Adjust comment.
25212
a50344cb
TB
252132013-01-14 Tejas Belagod <tejas.belagod@arm.com>
25214
88e784e6
UB
25215 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
25216 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 25217
47876a2a 252182013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
25219 Andi Kleen <ak@linux.intel.com>
25220
25221 PR target/55948
25222 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
25223 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
25224 memmodel flag.
25225
00892272
GJL
252262013-01-14 Georg-Johann Lay <avr@gjlay.de>
25227
25228 * config/avr/avr-stdint.h: Remove trailing blanks.
25229 * config/avr/avr-log.h: Same.
25230 * config/avr/avr-arch.h: Same.
25231 * config/avr/avr-devices.c: Same.
25232 * config/avr/avr-dimode.md: Same.
25233 * config/avr/predicates.md: Same.
25234 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 25235
00892272
GJL
25236 * config/avr/avr-protos.h: Same. And:
25237 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
25238 (init_cumulative_args): Rename to avr_init_cumulative_args.
25239 (expand_prologue): Rename to avr_expand_prologue.
25240 (expand_epilogue): Rename to avr_expand_epilogue.
25241 (adjust_insn_length): Rename to avr_adjust_insn_length.
25242 (notice_update_cc): Rename to avr_notice_update_cc.
25243 (final_prescan_insn): Rename to avr_final_prescan_insn.
25244 * config/avr/avr.c: Same.
25245 * config/avr/avr.h: Same.
25246 * config/avr/avr.md: Remove trailing blanks.
25247 (prologue): Use avr_expand_prologue.
25248 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
25249
7bb01996
RB
252502013-01-14 Richard Biener <rguenther@suse.de>
25251
25252 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
25253 verify_location, collect_subblocks): New functions.
25254 (verify_gimple_in_cfg): Verify that locations only reference
25255 BLOCKs in the functions BLOCK tree.
25256
2724573f
RB
252572013-01-14 Richard Biener <rguenther@suse.de>
25258
25259 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
25260 PHI argument.
25261 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
25262 unshare reference.
25263 (insert_out_of_ssa_copy_on_edge): Likewise.
25264 (rewrite_close_phi_out_of_ssa): Likewise.
25265 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
25266 debug expressions.
25267 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
25268 propagated constants.
25269 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
25270 can not be shared.
25271
9a0bbab6
GJL
252722013-01-14 Georg-Johann Lay <avr@gjlay.de>
25273
25274 * config/avr/avr-modes.def: Add GPL copyright notice.
25275
45805f17
UB
252762013-01-13 Uros Bizjak <ubizjak@gmail.com>
25277
25278 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
25279 MEMMODEL_MASK to determine memory model.
25280 (atomic_store<mode>): Ditto from operands[2].
25281 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
25282
9d60be38
JJ
252832013-01-13 Jakub Jelinek <jakub@redhat.com>
25284
25285 PR fortran/55935
45805f17 25286 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
25287 (fold_gimple_assign): Don't call unshare_expr here.
25288 (fold_ctor_reference): Call unshare_expr.
25289
e7f49d92
TG
252902013-01-13 Terry Guo <terry.guo@arm.com>
25291
aaf1e810
EB
25292 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
25293 * doc/fragments.texi: Document MULTILIB_REUSE.
25294 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 25295 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 25296 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
25297 (tmpmultilib4): Ditto.
25298 (multilib_reuse): New multilib argument.
25299
fbd03a27
RS
253002013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
25301
25302 * Makefile.in: Update copyright.
25303
b3681f13
TV
253042013-01-12 Tom de Vries <tom@codesourcery.com>
25305
25306 PR middle-end/55890
25307 * calls.c (expand_call): Check if arg_nr is valid.
25308
3f287e4b
MM
253092013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
25310
25311 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
25312 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
25313 documentation. Add missing '__' in front of
25314 __builtin_ia32_packssdw256.
3f287e4b 25315
1abcd5eb
AK
253162013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25317
25318 PR target/55719
25319 * config/s390/s390.c (s390_preferred_reload_class): Do not return
25320 NO_REGS for larl operands.
25321 (s390_reload_larl_operand): Use s390_load_address instead of
25322 emit_move_insn.
25323
980d0812
RB
253242013-01-11 Richard Biener <rguenther@suse.de>
25325
25326 * tree-cfg.c (verify_node_sharing_1): Split out from ...
25327 (verify_node_sharing): ... here.
25328 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
25329
7cb9fd07
EB
253302013-01-11 Eric Botcazou <ebotcazou@adacore.com>
25331
25332 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
25333 Substitute TREECHECKING.
25334 * configure: Regenerate.
25335 * Makefile.in (TREECHECKING): New.
25336
47876a2a 253372013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
25338
25339 PR tree-optimization/44061
25340 * tree-vrp.c (extract_range_basic): Compute zero as
25341 value-range for __builtin_constant_p of function parameters.
25342
d1e082c2
RS
253432013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
25344
45805f17 25345 Update copyright years.
d1e082c2 25346
f85021b0
VM
253472013-01-10 Vladimir Makarov <vmakarov@redhat.com>
25348
9d60be38 25349 PR rtl-optimization/55672
0160442c
VM
25350 * lra-eliminations.c (mark_not_eliminable): Permit addition with
25351 const to be eliminable.
f85021b0 25352
7a8b1ec4
DE
253532013-01-10 David Edelsohn <dje.gcc@gmail.com>
25354
25355 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
25356 * configure: Regenerate.
25357
ad2e5b71
RB
253582013-01-10 Richard Biener <rguenther@suse.de>
25359
ddf9322d 25360 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 25361
ffc5b2bb
RB
253622013-01-10 Richard Biener <rguenther@suse.de>
25363
25364 PR bootstrap/55792
25365 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
25366 locations for virtual PHI arguments.
25367 (rewrite_update_phi_arguments): Likewise.
25368
e1f674e4
JS
253692013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
25370
25371 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
25372 on to assembler.
25373
a57fc743
JJ
253742013-01-10 Jakub Jelinek <jakub@redhat.com>
25375
25376 PR tree-optimization/55921
25377 * tree-complex.c (expand_complex_asm): New function.
25378 (expand_complex_operations_1): Call it for GIMPLE_ASM.
25379
0ff4390d
AK
253802013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25381
25382 PR target/55718
25383 * config/s390/s390.c (s390_symref_operand_p)
25384 (s390_loadrelative_operand_p): Merge the two functions.
25385 (s390_check_qrst_address, print_operand_address): Add parameters
25386 to s390_loadrelative_operand_p invokation.
25387 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
25388 (s390_reload_larl_operand, s390_secondary_reload): Use
25389 s390_loadrelative_operand_p instead of s390_symref_operand_p.
25390 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
25391
6f557e0e
MS
253922013-01-09 Mike Stump <mikestump@comcast.net>
25393
25394 * dse.c (record_store): Remove unnecessary assert.
25395
7770c9e9
JH
253962013-01-09 Jan Hubicka <jh@suse.cz>
25397
25398 PR tree-optimization/55569
25399 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
25400 * cfgloop.h (scale_loop_profile): Likewise.
25401
a19b1432
JH
254022013-01-09 Jan Hubicka <jh@suse.cz>
25403
25404 PR lto/45375
ddf9322d
UB
25405 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
25406 functions.
a19b1432
JH
25407 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
25408
9a002da8
RS
254092013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
25410
25411 PR middle-end/55114
25412 * expr.h (maybe_emit_group_store): Declare.
25413 * expr.c (maybe_emit_group_store): New function.
25414 * builtins.c (expand_builtin_int_roundingfn): Call it.
25415 (expand_builtin_int_roundingfn_2): Likewise.
25416
511dcace
VM
254172013-01-09 Vladimir Makarov <vmakarov@redhat.com>
25418
e1f2b729 25419 PR rtl-optimization/55829
511dcace
VM
25420 * lra-constraints.c (match_reload): Add code for absent output.
25421 (curr_insn_transform): Add code for reloads of matched inputs
25422 without output.
25423
7b0fe4f4
UB
254242013-01-09 Uros Bizjak <ubizjak@gmail.com>
25425
25426 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
25427 attribute of movddup insn to DF.
25428 (*vec_interleave_lowv2df): Ditto.
25429 (vec_dupv2df): Ditto.
25430
870ca331
JH
254312013-01-09 Jan Hubicka <jh@suse.cz>
25432
25433 PR tree-optimiation/55875
25434 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
25435 EVERY_ITERATION parameter.
7b0fe4f4 25436 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
25437 (idx_infer_loop_bounds): Similarly here.
25438 (n_of_executions_at_most): Simplify
25439 to only test for cases where statement is dominated by the
7b0fe4f4 25440 particular bound; handle correctly the "postdominance" test.
870ca331
JH
25441 (scev_probably_wraps_p): Use max loop iterations info
25442 as a global bound first.
25443
6f575fe4 254442013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
25445 Nick Clifton <nickc@redhat.com>
25446
25447 * config/v850/v850.md (cbranchsf4): New pattern.
25448 (cstoresf4): New pattern.
25449 (cbranchdf4): New pattern.
25450 (cstoredf4): New pattern.
25451 (movsicc): Disallow floating point comparisons.
25452 (cmpsf_le_insn): Fix order of operators.
25453 (cmpsf_lt_insn): Likewise.
25454 (cmpsf_eq_insn): Likewise.
25455 (cmpdf_le_insn): Likewise.
25456 (cmpdf_lt_insn): Likewise.
25457 (cmpdf_eq_insn): Likewise.
25458 (cmpsf_ge_insn): Use LE comparison.
25459 (cmpdf_ge_insn): Likewise.
25460 (cmpsf_gt_insn): Use LT comparison.
25461 (cmpdf_gt_insn): Likewise.
25462 (cmpsf_ne_insn): Delete pattern.
25463 (cmpdf_ne_insn): Delete pattern.
25464 * config/v850/v850.c (v850_gen_float_compare): Use
25465 gen_cmpdf_eq_insn for NE comparison.
25466 (v850_float_z_comparison_operator)
25467 (v850_float_nz_comparison_operator): Move from here ...
25468 * config/v850/predicates.md: ... to here. Move GT and GE
25469 comparisons into v850_float_z_comparison_operator.
25470 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
25471 Delete prototype.
25472 (v850_float_nz_comparison_operator): Likewise.
25473
f0d54148
JDA
254742013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25475
25476 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
25477 with calls to gen_insvsi/gen_insvdi.
25478
8f01beca
VK
254792013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25480
25481 * config/i386/i386.c (initial_ix86_tune_features): Set up
25482 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
25483
2aa579ad
JJ
254842013-01-09 Steven Bosscher <steven@gcc.gnu.org>
25485 Jakub Jelinek <jakub@redhat.com>
25486
25487 PR tree-optimization/48189
25488 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
25489 If nitercst is 0, don't predict the exit edge.
25490
6edc3e32 254912013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
25492
25493 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
25494 in asm_fprintf with reg_names.
25495 (aarch64_print_operand_address): Likewise.
25496 (aarch64_return_addr): Likewise.
25497 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
25498
f6f94d94
JDA
254992013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25500
25501 * config/pa/pa.h (VAL_U6_BITS_P): Define.
25502 (INT_U6_BITS): Likewise.
25503 * config/pa/predicates.md (uint6_operand): New predicate.
25504 (shift5_operand, shift6_operand): Likewise.
25505 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
25506 arith32_operand.
25507 (lshrdi3): Use shift6_operand.
25508 (shrpsi4, shrpdi4): New insn patterns.
25509 (extzv): Delete expander.
25510 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
25511 predicates in unamed zero extract patterns. Tighten common constraint.
25512 (extv): Delete expander.
25513 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
25514 predicates in unamed sign extract patterns. Tighten common constraint.
25515 (insv): Delete expander.
25516 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
25517 predicates in unamed insert patterns. Tighten common constraint.
25518 Change uint32_operand predicate to uint6_operand predicate in unamed
25519 DImode pattern to insert constant values of type 1...1xxxx.
25520
36b72910
JH
255212013-01-04 Jan Hubicka <jh@suse.cz>
25522
25523 PR tree-optimization/55823
7b0fe4f4
UB
25524 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
25525 issue.
36b72910 25526
47876a2a 255272013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
25528 Uros Bizjak <ubizjak@gmail.com>
25529
25530 PR rtl-optimization/55845
25531 * df-problems.c (can_move_insns_across): Stop scanning at
25532 volatile_insn_p source instruction or give up if
25533 across_from .. across_to range contains any volatile_insn_p
25534 instructions.
25535
4369c11e
TB
255362013-01-08 Tejas Belagod <tejas.belagod@arm.com>
25537
7b0fe4f4
UB
25538 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
25539 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
25540 Declare.
4369c11e 25541 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 25542 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 25543
aeb7e7c1
JJ
255442013-01-08 Jakub Jelinek <jakub@redhat.com>
25545
25546 PR fortran/55341
25547 * asan.c (asan_clear_shadow): New function.
25548 (asan_emit_stack_protection): Use it.
25549
a02ad1aa
TB
255502013-01-08 Tejas Belagod <tejas.belagod@arm.com>
25551
25552 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
25553 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
25554 with tab instead of space.
25555
f90d87f5
NC
255562013-01-08 Nick Clifton <nickc@redhat.com>
25557
25558 * config/rl78/rl78.c (rl78_expand_prologue): Always select
25559 register bank 0 at the start of an interrupt handler.
83ffd964
NC
25560 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
25561 MDBH registers.
f90d87f5 25562
385eb93d
JG
255632013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
25564
25565 * config/aarch64/aarch64-simd.md
25566 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
25567 (aarch64_simd_bsl): Likewise.
25568 (aarch64_vcond_internal<mode>): Likewise.
25569 (vcond<mode><mode>): Likewise.
25570 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
25571 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
25572
4dcd1054
JG
255732013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
25574
25575 * config/aarch64/aarch64-builtins.c
25576 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
25577
4267a4a6
MJ
255782013-01-08 Martin Jambor <mjambor@suse.cz>
25579
25580 PR debug/55579
25581 * tree-sra.c (analyze_access_subtree): Return true also after
25582 potentially creating a debug-only replacement.
25583
5f4e6de3
JJ
255842013-01-08 Jakub Jelinek <jakub@redhat.com>
25585
3138f224
JJ
25586 PR middle-end/55890
25587 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
25588
5f4e6de3
JJ
25589 PR tree-optimization/54120
25590 * tree-vrp.c (range_fits_type_p): Don't allow
25591 src_precision < precision from signed vr to unsigned_p
25592 if vr->min or vr->max is negative.
25593 (simplify_float_conversion_using_ranges): Test can_float_p
25594 against CODE_FOR_nothing.
25595
f3ef18ff
JJ
255962013-01-08 Jakub Jelinek <jakub@redhat.com>
25597 Richard Biener <rguenther@suse.de>
25598
25599 PR middle-end/55851
25600 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
25601 types instead of just INTEGER_TYPE types.
25602
25c210f9
MK
256032013-01-07 Mark Kettenis <kettenis@openbsd.org>
25604
25605 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
25606 TF_SIZE): Define.
f90d87f5 25607
81826a7b
SE
256082013-01-07 Steve Ellcey <sellcey@mips.com>
25609
25610 PR target/42661
25611 * config/mips/mips.opt: Change mad to mmad to match documentation.
25612
35678514
GJL
256132013-01-07 Georg-Johann Lay <avr@gjlay.de>
25614
25615 PR target/55897
25616 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
25617 .progmemx.data now.
25618
e5669488
GJL
256192013-01-07 Georg-Johann Lay <avr@gjlay.de>
25620
25621 PR target/55897
25622 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
25623 (avr_addrspace_t): Add .section_name field.
25624 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
25625 array size.
25626 (avr_addrspace): Same. Initialize .section_name. Remove last
25627 NULL entry. Put __memx into .progmemx.data.
25628 (progmem_section_prefix): Remove.
25629 (avr_asm_init_sections): No need to initialize progmem_section.
25630 (avr_asm_named_section): Use avr_addrspace[].section_name to get
25631 section name prefix.
25632 (avr_asm_select_section): Ditto. And use get_unnamed_section to
25633 retrieve the progmem section.
25634 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
25635 boundary to run over avr_addrspace[].
25636 (avr_register_target_pragmas): Ditto.
25637
656e6f37
JJ
256382013-01-06 Jakub Jelinek <jakub@redhat.com>
25639
25640 * varasm.c (output_constant_def_contents): For asan_protect_global
25641 protected strings, adjust DECL_ALIGN if needed, before testing for
25642 anchored symbols.
25643 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
25644 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
25645 normal decls.
25646 (output_object_block): For asan protected decls, emit asan padding
25647 after their contents.
25648 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
25649 (asan_finish_file): Test it here instead.
25650
6edc3e32
UB
256512013-01-07 Nick Clifton <nickc@redhat.com>
25652 Matthias Klose <doko@debian.org>
25653 Doug Kwan <dougkwan@google.com>
25654 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
25655
25656 PR driver/55470
25657 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
25658
25659 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
25660
25661 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
25662
7b0fe4f4 25663 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
25664
25665 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
25666
2a095093
GJL
256672013-01-07 Georg-Johann Lay <avr@gjlay.de>
25668
f3b503f4 25669 PR target/54461
2a095093
GJL
25670 * doc/install.texi (Cross-Compiler-Specific Options): Document
25671 --with-avrlibc.
25672
383f9b34
TB
256732013-01-07 Tejas Belagod <tejas.belagod@arm.com>
25674
25675 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
25676 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
25677 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
25678 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
25679 vqmovun_high_s64): Fix source operand number and update copyright.
25680
3626621a
RB
256812013-01-07 Richard Biener <rguenther@suse.de>
25682
25683 PR middle-end/55890
25684 * gimple.h (gimple_call_builtin_p): New overload.
25685 * gimple.c (validate_call): New function.
25686 (gimple_call_builtin_p): Likewise.
25687 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25688 Use gimple_call_builtin_p.
25689 (find_func_clobbers): Likewise.
25690 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
25691 (strlen_optimize_stmt): Likewise.
25692
8b2ea410
JG
256932013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
25694
25695 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
25696 (vld1q_dup_*): Likewise.
25697 (vld1_*): Likewise.
25698 (vld1q_*): Likewise.
25699 (vld1_lane_*): Likewise.
25700 (vld1q_lane_*): Likewise.
25701
9713d329
RB
257022013-01-07 Richard Biener <rguenther@suse.de>
25703
25704 * lto-streamer.h (LTO_minor_version): Bump to 2.
25705
3520f7cc
JG
257062013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
25707
25708 * config/aarch64/aarch64-protos.h
25709 (aarch64_const_double_zero_rtx_p): Rename to...
25710 (aarch64_float_const_zero_rtx_p): ...this.
25711 (aarch64_float_const_representable_p): New.
25712 (aarch64_output_simd_mov_immediate): Likewise.
25713 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
25714 move immediate case.
25715 * config/aarch64/aarch64.c
25716 (aarch64_const_double_zero_rtx_p): Rename to...
25717 (aarch64_float_const_zero_rtx_p): ...this.
25718 (aarch64_print_operand): Allow printing of new constants.
25719 (aarch64_valid_floating_const): New.
25720 (aarch64_legitimate_constant_p): Check for valid floating-point
25721 constants.
25722 (aarch64_simd_valid_immediate): Likewise.
25723 (aarch64_vect_float_const_representable_p): New.
25724 (aarch64_float_const_representable_p): Likewise.
25725 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
25726 (aarch64_output_simd_mov_immediate): New.
25727 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
25728 (*movdf_aarch64): Likewise.
25729 * config/aarch64/constraints.md (Ufc): New.
25730 (Y): call aarch64_float_const_zero_rtx.
25731 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
25732
e167c04d
RB
257332013-01-07 Richard Biener <rguenther@suse.de>
25734
25735 PR tree-optimization/55888
25736 PR tree-optimization/55862
25737 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
25738 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
25739 not if it is contained therein.
25740
0139aaab
GJL
257412013-01-07 Georg-Johann Lay <avr@gjlay.de>
25742
25743 * config/avr/t-avr: Typo.
25744
4a176b23
GJL
257452013-01-07 Georg-Johann Lay <avr@gjlay.de>
25746
25747 PR55243
25748 * config/avr/t-avr: Don't automatically rebuild
25749 $(srcdir)/config/avr/t-multilib
25750 $(srcdir)/config/avr/avr-tables.opt
25751 $(srcdir)/doc/avr-mmcu.texi
25752 (avr-mcus): New phony target to build them on request.
25753 (s-avr-mlib, s-avr-mmcu-texi): Remove.
25754 * avr/avr-mcus.def: Adjust comments.
25755
c7afdc98
UB
257562013-01-07 Uros Bizjak <ubizjak@gmail.com>
25757
25758 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
25759
1ab05c31
RS
257602013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
25761
25762 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
25763
488e3acc
RS
257642013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
25765
25766 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
25767
a89599d2
DE
257682013-01-05 David Edelsohn <dje.gcc@gmail.com>
25769
25770 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
25771 to generate profiling.
25772 * config/rs6000/aix64.h (LIB_SPEC): Same.
25773
70f09188
AP
257742013-01-04 Andrew Pinski <apinski@cavium.com>
25775
25776 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
25777 New function.
25778 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
25779
918d445f
UB
257802013-01-04 Uros Bizjak <ubizjak@gmail.com>
25781
25782 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
25783 unconditionally.
25784 (ix86_expand_move): Ditto.
25785 (ix86_zero_extend_to_Pmode): Ditto.
25786 (ix86_expand_call): Ditto.
25787 (ix86_expand_special_args_builtin): Ditto.
25788 (ix86_expand_builtin): Ditto.
25789
361618ec
RB
257902013-01-04 Richard Biener <rguenther@suse.de>
25791
25792 PR tree-optimization/55862
25793 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
25794 translating them through PHI nodes.
25795
87eab554
MJ
257962013-01-04 Martin Jambor <mjambor@suse.cz>
25797
25798 PR tree-optimization/55755
25799 * tree-sra.c (sra_modify_assign): Do not check that an access has no
25800 children when trying to avoid producing a VIEW_CONVERT_EXPR.
25801
33879b9f
MP
258022013-01-04 Marek Polacek <polacek@redhat.com>
25803
25804 PR middle-end/55859
25805 * opts.c (default_options_optimization): Clarify error message.
25806
3068819a
RB
258072013-01-04 Richard Biener <rguenther@suse.de>
25808
25809 PR middle-end/55863
25810 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
25811 reassociation.
25812
0e4ae794
JDA
258132013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25814
25815 PR target/53789
25816 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
25817 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
25818 references.
0e4ae794 25819
65c88cef
RH
258202013-01-03 Richard Henderson <rth@redhat.com>
25821
25822 * config/i386/i386.c (ix86_expand_move): Always assign to op1
25823 after eliminating TLS symbols.
25824
8ac16127
MG
258252013-01-03 Marc Glisse <marc.glisse@inria.fr>
25826
25827 PR bootstrap/50167
25828 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
25829 * graphite-poly.c (debug_gmp_value): Likewise.
25830
bb664f09
UB
258312013-01-03 Uros Bizjak <ubizjak@gmail.com>
25832
25833 PR target/55712
25834 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
25835 selected code model, define __code_mode_small__, __code_model_medium__,
25836 __code_model_large__, __code_model_32__ or __code_model_kernel__.
25837 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
25838 xchg temporary register with %k. Declare temporary register as
25839 early clobbered.
25840 [__x86_64__]: For medium and large code models, preserve %rbx register.
25841
bcf1ef00
RB
258422013-01-03 Richard Biener <rguenther@suse.de>
25843
0506634a 25844 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
25845 (dump_subscript): Adjust.
25846 (finalize_ddr_dependent): Do not dump redundant info.
25847 (analyze_siv_subscript): Adjust.
25848 (subscript_dependence_tester): Likewise.
25849 (compute_affine_dependence): Likewise.
25850
59fd17e3
RB
258512013-01-03 Richard Biener <rguenther@suse.de>
25852
25853 Revert
25854 2013-01-03 Richard Biener <rguenther@suse.de>
25855
25856 PR tree-optimization/55857
25857 * tree-vect-stmts.c (vectorizable_load): Do not setup
25858 re-alignment for invariant loads.
25859
25860 2013-01-02 Richard Biener <rguenther@suse.de>
25861
25862 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 25863 invariant load do not generate a vector load from the scalar location.
59fd17e3 25864
595c2679
RB
258652013-01-03 Richard Biener <rguenther@suse.de>
25866
25867 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
25868 for not vectorizing.
25869 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
25870 not build INDIRECT_REFs, call get_name once only.
25871 (vect_create_data_ref_ptr): Likewise. Dump base object kind
25872 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
25873
90bb7d7a
RB
258742013-01-03 Richard Biener <rguenther@suse.de>
25875
25876 PR tree-optimization/55857
25877 * tree-vect-stmts.c (vectorizable_load): Do not setup
25878 re-alignment for invariant loads.
25879
f09b77ca
RB
258802013-01-03 Richard Biener <rguenther@suse.de>
25881
25882 PR lto/55848
25883 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
25884 prefer a built-in decl.
25885
3461a16e
JJ
258862013-01-03 Jakub Jelinek <jakub@redhat.com>
25887
df8e2b4f
JJ
25888 * gcc.c (process_command): Update copyright notice dates.
25889 * gcov.c (print_version): Likewise.
25890 * gcov-dump.c (print_version): Likewise.
25891
3461a16e
JJ
25892 PR rtl-optimization/55838
25893 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
25894 iv0.step, iv1.step and step.
25895
8b5546d6
JJ
258962013-01-03 Jakub Jelinek <jakub@redhat.com>
25897 Marc Glisse <marc.glisse@inria.fr>
25898
25899 PR tree-optimization/55832
25900 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
25901 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
25902 integer_{one,zero}_node.
25903
8ab1d2e9
JJ
259042013-01-03 Jakub Jelinek <jakub@redhat.com>
25905
25906 PR debug/54402
25907 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
25908 * var-tracking.c (reverse_op): Don't add reverse ops to
25909 VALUEs that have already
0506634a 25910 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 25911
5b9ad1d4
GP
259122013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
25913
25914 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
25915
e25a6711
TJ
259162013-01-02 Teresa Johnson <tejohnson@google.com>
25917
25918 * dumpfile.c (dump_loc): Print filename with location.
25919 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
25920 new location_t parameter to emit complete unroll message with
25921 new dump framework.
25922 (canonicalize_loop_induction_variables): Compute loops location
25923 and pass to try_unroll_loop_completely.
25924 * loop-unroll.c (report_unroll_peel): New function.
25925 (peel_loops_completely): Use new dump format with location
25926 for main dumpfile message, and invoke report_unroll_peel on success.
25927 (decide_unrolling_and_peeling): Ditto.
25928 (decide_peel_once_rolling): Remove old dumpfile message subsumed
25929 by report_unroll_peel.
25930 (decide_peel_completely): Ditto.
25931 (decide_unroll_constant_iterations): Ditto.
25932 (decide_unroll_runtime_iterations): Ditto.
25933 (decide_peel_simple): Ditto.
25934 (decide_unroll_stupid): Ditto.
25935 * cfgloop.c (get_loop_location): New function.
25936 * cfgloop.h (get_loop_location): Declare.
25937
77878621
ST
259382013-01-02 Sriraman Tallam <tmsriram@google.com>
25939
25940 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
25941 NULL.
25942
9e65d03e
JDA
259432013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25944
25945 PR middle-end/55198
25946 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
25947 BLKmode objects when EXPAND_MEMORY is specified.
25948
6a7da30f
ST
259492013-01-02 Sriraman Tallam <tmsriram@google.com>
25950
25951 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
25952 in loop predicate.
25953 (fold_builtin_cpu): Do not share cpu model decls across statements.
25954
e78167f2
JM
259552013-01-02 Jason Merrill <jason@redhat.com>
25956
25957 PR c++/55804
25958 * tree.c (build_array_type_1): Revert earlier change.
25959
8c075fb4
YZ
259602013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
25961
25962 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
25963 "cortex-a57".
25964 * config/aarch64/aarch64-tune.md: Re-generate.
25965
0682ed3e
RB
259662013-01-02 Richard Biener <rguenther@suse.de>
25967
25968 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 25969 invariant load do not generate a vector load from the scalar location.
0682ed3e 25970
b8f6a302
RB
259712013-01-02 Richard Biener <rguenther@suse.de>
25972
25973 PR bootstrap/55784
25974 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
25975 * configure: Regenerate.
25976
04b80dbb
RS
259772013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
25978
25979 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
25980 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
25981 (expand_builtin_int_roundingfn_2): Keep the original target around
25982 for the fallback case.
25983
635b0b0c
RS
259842013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
25985
25986 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
25987 to be clear for sign changes.
25988
42d57399
JH
259892013-01-01 Jan Hubicka <jh@suse.cz>
25990
25991 * ipa-inline-analysis.c: Fix formatting.
25992
5bb6669d
JJ
259932013-01-01 Jakub Jelinek <jakub@redhat.com>
25994
25995 PR tree-optimization/55831
25996 * tree-vect-loop.c (get_initial_def_for_induction): Use
25997 gsi_after_labels instead of gsi_start_bb.
ad41bd84 25998\f
86a2db33 25999Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
26000
26001Copying and distribution of this file, with or without modification,
26002are permitted in any medium without royalty provided the copyright
26003notice and this notice are preserved.