re PR target/57777 (Python module fails compilation with "-march=core-avx2 -O3")
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2013-07-03  Jakub Jelinek  <jakub@redhat.com>
2
3         PR target/57777
4         * config/i386/predicates.md (vsib_address_operand): Disallow
5         SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
6
7 2013-07-03  Hans-Peter Nilsson  <hp@bitrange.com>
8
9         PR middle-end/55030
10         * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
11         expand_builtin_setjmp_receiver.
12         (expand_label): Adjust, call expand_builtin_setjmp_receiver
13         with NULL for the label parameter.
14         * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
15         the frame-pointer.  Adjust comments.
16         [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
17         only if LABEL is non-NULL.
18
19 2013-07-03  Yufeng Zhang  <yufeng.zhang@arm.com>
20
21         * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
22         (ARM_ABI_AAPCS64): Ditto.
23         (arm_abi): Ditto.
24         (ARM_DEFAULT_ABI): Ditto.
25
26 2013-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
27
28         * config/aarch64/aarch64-builtins.c
29         (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
30         * config/aarch64/aarch64-simd-builtins.def (ld1): New.
31         (st1): Likewise.
32         * config/aarch64/aarch64-simd.md
33         (aarch64_ld1<VALL:mode>): New.
34         (aarch64_st1<VALL:mode>): Likewise.
35         * config/aarch64/arm_neon.h
36         (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
37
38 2013-07-02  Sriraman Tallam  <tmsriram@google.com>
39
40         * config/i386/i386.c (gate_insert_vzeroupper): Check if target
41         ISA is AVX.
42         (ix86_option_override_internal):Turn on all -mavx target flags by
43         default as they are dependent on AVX anyway.
44
45 2013-07-02  Cary Coutant  <ccoutant@google.com>
46
47         * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
48         deterministic hash.
49         (loc_checksum_ordered): Likewise.
50         (hash_loc_operands): Remove inline keyword.
51
52 2013-07-02  Jakub Jelinek  <jakub@redhat.com>
53
54         PR tree-optimization/57741
55         * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
56         non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
57         or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
58         Allow REAL_CST step_exprs if flag_associative_math.
59         (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
60
61 2013-07-02  Ian Bolton  <ian.bolton@arm.com>
62
63         * config/aarch64/aarch64-simd.md (absdi2): Support abs for
64         DI mode.
65
66 2013-07-02  Ian Bolton  <ian.bolton@arm.com>
67
68         * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
69
70 2013-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
71
72         * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
73         encoding.
74         (iorsi3_insn): Likewise.
75         (arm_xorsi3): Likewise.
76
77 2013-07-01  Sofiane Naci  <sofiane.naci@arm.com>
78
79         * arm.md (attribute "wtype"): Delete.  Move attribute values from here
80         to ...
81         (attribute "type"): ... here, and prefix with "wmmx_".
82         (attribute "core_cycles"): Update for attribute changes.
83         * iwmmxt.md (tbcstv8qi): Update for attribute changes.
84         (tbcstv4hi): Likewise.
85         (tbcstv2si): Likewise.
86         (iwmmxt_iordi3): Likewise.
87         (iwmmxt_xordi3): Likewise.
88         (iwmmxt_anddi3): Likewise.
89         (iwmmxt_nanddi3): Likewise.
90         (iwmmxt_arm_movdi): Likewise.
91         (iwmmxt_movsi_insn): Likewise.
92         (mov<mode>_internal): Likewise.
93         (and<mode>3_iwmmxt): Likewise.
94         (ior<mode>3_iwmmxt): Likewise.
95         (xor<mode>3_iwmmxt): Likewise.
96         (add<mode>3_iwmmxt): Likewise.
97         (ssaddv8qi3): Likewise.
98         (ssaddv4hi3): Likewise.
99         (ssaddv2si3): Likewise.
100         (usaddv8qi3): Likewise.
101         (usaddv4hi3): Likewise.
102         (usaddv2si3): Likewise.
103         (sub<mode>3_iwmmxt): Likewise.
104         (sssubv8qi3): Likewise.
105         (sssubv4hi3): Likewise.
106         (sssubv2si3): Likewise.
107         (ussubv8qi3): Likewise.
108         (ussubv4hi3): Likewise.
109         (ussubv2si3): Likewise.
110         (mulv4hi3_iwmmxt): Likewise.
111         (smulv4hi3_highpart): Likewise.
112         (umulv4hi3_highpart): Likewise.
113         (iwmmxt_wmacs): Likewise.
114         (iwmmxt_wmacsz): Likewise.
115         (iwmmxt_wmacu): Likewise.
116         (iwmmxt_wmacuz): Likewise.
117         (iwmmxt_clrdi): Likewise.
118         (iwmmxt_clrv8qi): Likewise.
119         (iwmmxt_clr4hi): Likewise.
120         (iwmmxt_clr2si): Likewise.
121         (iwmmxt_uavgrndv8qi3): Likewise.
122         (iwmmxt_uavgrndv4hi3): Likewise.
123         (iwmmxt_uavgv8qi3): Likewise.
124         (iwmmxt_uavgv4hi3): Likewise.
125         (iwmmxt_tinsrb): Likewise.
126         (iwmmxt_tinsrh): Likewise.
127         (iwmmxt_tinsrw): Likewise.
128         (iwmmxt_textrmub): Likewise.
129         (iwmmxt_textrmsb): Likewise.
130         (iwmmxt_textrmuh): Likewise.
131         (iwmmxt_textrmsh): Likewise.
132         (iwmmxt_textrmw): Likewise.
133         (iwmxxt_wshufh): Likewise.
134         (eqv8qi3): Likewise.
135         (eqv4hi3): Likewise.
136         (eqv2si3): Likewise.
137         (gtuv8qi3): Likewise.
138         (gtuv4hi3): Likewise.
139         (gtuv2si3): Likewise.
140         (gtv8qi3): Likewise.
141         (gtv4hi3): Likewise.
142         (gtv2si3): Likewise.
143         (smax<mode>3_iwmmxt): Likewise.
144         (umax<mode>3_iwmmxt): Likewise.
145         (smin<mode>3_iwmmxt): Likewise.
146         (umin<mode>3_iwmmxt): Likewise.
147         (iwmmxt_wpackhss): Likewise.
148         (iwmmxt_wpackwss): Likewise.
149         (iwmmxt_wpackdss): Likewise.
150         (iwmmxt_wpackhus): Likewise.
151         (iwmmxt_wpackwus): Likewise.
152         (iwmmxt_wpackdus): Likewise.
153         (iwmmxt_wunpckihb): Likewise.
154         (iwmmxt_wunpckihh): Likewise.
155         (iwmmxt_wunpckihw): Likewise.
156         (iwmmxt_wunpckilb): Likewise.
157         (iwmmxt_wunpckilh): Likewise.
158         (iwmmxt_wunpckilw): Likewise.
159         (iwmmxt_wunpckehub): Likewise.
160         (iwmmxt_wunpckehuh): Likewise.
161         (iwmmxt_wunpckehuw): Likewise.
162         (iwmmxt_wunpckehsb): Likewise.
163         (iwmmxt_wunpckehsh): Likewise.
164         (iwmmxt_wunpckehsw): Likewise.
165         (iwmmxt_wunpckelub): Likewise.
166         (iwmmxt_wunpckeluh): Likewise.
167         (iwmmxt_wunpckeluw): Likewise.
168         (iwmmxt_wunpckelsb): Likewise.
169         (iwmmxt_wunpckelsh): Likewise.
170         (iwmmxt_wunpckelsw): Likewise.
171         (ror<mode>3): Likewise.
172         (ashr<mode>3_iwmmxt): Likewise.
173         (lshr<mode>3_iwmmxt): Likewise.
174         (ashl<mode>3_iwmmxt): Likewise.
175         (ror<mode>3_di): Likewise.
176         (ashr<mode>3_di): Likewise.
177         (lshr<mode>3_di): Likewise.
178         (ashl<mode>3_di): Likewise.
179         (iwmmxt_wmadds): Likewise.
180         (iwmmxt_wmaddu): Likewise.
181         (iwmmxt_tmia): Likewise.
182         (iwmmxt_tmiaph): Likewise.
183         (iwmmxt_tmiabb): Likewise.
184         (iwmmxt_tmiatb): Likewise.
185         (iwmmxt_tmiabt): Likewise.
186         (iwmmxt_tmiatt): Likewise.
187         (iwmmxt_tmovmskb): Likewise.
188         (iwmmxt_tmovmskh): Likewise.
189         (iwmmxt_tmovmskw): Likewise.
190         (iwmmxt_waccb): Likewise.
191         (iwmmxt_wacch): Likewise.
192         (iwmmxt_waccw): Likewise.
193         (iwmmxt_waligni): Likewise.
194         (iwmmxt_walignr): Likewise.
195         (iwmmxt_walignr0): Likewise.
196         (iwmmxt_walignr1): Likewise.
197         (iwmmxt_walignr2): Likewise.
198         (iwmmxt_walignr3): Likewise.
199         (iwmmxt_wsadb): Likewise.
200         (iwmmxt_wsadh): Likewise.
201         (iwmmxt_wsadbz): Likewise.
202         (iwmmxt_wsadhz): Likewise.
203         * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
204         (iwmmxt_wabsdiffb): Likewise.
205         (iwmmxt_wabsdiffh): Likewise.
206         (iwmmxt_wabsdiffw): Likewise.
207         (iwmmxt_waddsubhx): Likewise
208         (iwmmxt_wsubaddhx): Likewise.
209         (addc<mode>3): Likewise.
210         (iwmmxt_avg4): Likewise.
211         (iwmmxt_avg4r): Likewise.
212         (iwmmxt_wmaddsx): Likewise.
213         (iwmmxt_wmaddux): Likewise.
214         (iwmmxt_wmaddsn): Likewise.
215         (iwmmxt_wmaddun): Likewise.
216         (iwmmxt_wmulwsm): Likewise.
217         (iwmmxt_wmulwum): Likewise.
218         (iwmmxt_wmulsmr): Likewise.
219         (iwmmxt_wmulumr): Likewise.
220         (iwmmxt_wmulwsmr): Likewise.
221         (iwmmxt_wmulwumr): Likewise.
222         (iwmmxt_wmulwl): Likewise.
223         (iwmmxt_wqmulm): Likewise.
224         (iwmmxt_wqmulwm): Likewise.
225         (iwmmxt_wqmulmr): Likewise.
226         (iwmmxt_wqmulwmr): Likewise.
227         (iwmmxt_waddbhusm): Likewise.
228         (iwmmxt_waddbhusl): Likewise.
229         (iwmmxt_wqmiabb): Likewise.
230         (iwmmxt_wqmiabt): Likewise.
231         (iwmmxt_wqmiatb): Likewise.
232         (iwmmxt_wqmiatt): Likewise.
233         (iwmmxt_wqmiabbn): Likewise.
234         (iwmmxt_wqmiabtn): Likewise.
235         (iwmmxt_wqmiatbn): Likewise.
236         (iwmmxt_wqmiattn): Likewise.
237         (iwmmxt_wmiabb): Likewise.
238         (iwmmxt_wmiabt): Likewise.
239         (iwmmxt_wmiatb): Likewise.
240         (iwmmxt_wmiatt): Likewise.
241         (iwmmxt_wmiabbn): Likewise.
242         (iwmmxt_wmiabtn): Likewise.
243         (iwmmxt_wmiatbn): Likewise.
244         (iwmmxt_wmiattn): Likewise.
245         (iwmmxt_wmiawbb): Likewise.
246         (iwmmxt_wmiawbt): Likewise.
247         (iwmmxt_wmiawtb): Likewise.
248         (iwmmxt_wmiawtt): Likewise.
249         (iwmmxt_wmiawbbn): Likewise.
250         (iwmmxt_wmiawbtn): Likewise.
251         (iwmmxt_wmiawtbn): Likewise.
252         (iwmmxt_wmiawttn): Likewise.
253         (iwmmxt_wmerge): Likewise.
254         (iwmmxt_tandc<mode>3): Likewise.
255         (iwmmxt_torc<mode>3): Likewise.
256         (iwmmxt_torvsc<mode>3): Likewise.
257         (iwmmxt_textrc<mode>3): Likewise.
258         * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
259         (wmmxt_pack): Likewise.
260         (wmmxt_mult_c1): Likewise.
261         (wmmxt_mult_c2): Likewise.
262         (wmmxt_alu_c1): Likewise.
263         (wmmxt_alu_c2): Likewise.
264         (wmmxt_alu_c3): Likewise.
265         (wmmxt_transfer_c1): Likewise.
266         (wmmxt_transfer_c2): Likewise.
267         (wmmxt_transfer_c3): Likewise.
268         (marvell_f_iwmmxt_wstr): Likewise.
269         (marvell_f_iwmmxt_wldr): Likewise.
270
271 2013-06-29  Yufeng Zhang  <yufeng.zhang@arm.com>
272
273         * config/aarch64/aarch64.c: Remove junk from the beginning of the
274         file.
275
276 2013-06-28  Vladimir Makarov  <vmakarov@redhat.com>
277
278         Revert:
279         2013-06-28  Vladimir Makarov  <vmakarov@redhat.com>
280         * lra-constraints.c (need_for_split_p): Check call used hard regs
281         living through calls.
282
283         * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
284         call used regs for call insn.
285
286 2013-06-28  Jakub Jelinek  <jakub@redhat.com>
287
288         PR target/57736
289         * config/i386/i386.c (ix86_expand_builtin): If target == NULL
290         and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
291         into.
292
293 2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
294
295         * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
296
297 2013-06-28  Vladimir Makarov  <vmakarov@redhat.com>
298
299         * lra-constraints.c (need_for_split_p): Check call used hard regs
300         living through calls.
301
302 2013-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
303
304         PR target/57744
305         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
306         to tie with any other modes.  Eliminate Altivec vector mode tests,
307         since these are a subset of ALTIVEC or VSX vector modes.  Simplify
308         code, to return 0 if testing MODE2 for a condition, if we've
309         already tested MODE1 for the same condition.
310
311 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
312
313         * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
314         layout.
315
316 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
317
318         * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
319         Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
320
321 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
322
323         * config/aarch64/aarch64-protos.h
324         aarch64_classify_symbol_expression): Define.
325         (aarch64_symbolic_constant_p): Remove.
326         * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
327         static.  Fix line length and white space.
328         (aarch64_symbolic_constant_p): Remove.
329         * config/aarch64/predicates.md (aarch64_valid_symref):
330         Use aarch64_classify_symbol_expression.
331
332 2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
333
334         * config/arm/constraints.md (Ts): New constraint.
335         * config/arm/arm.md (arm_movqi_insn): Add alternatives for
336         16-bit encodings.
337         (compare_scc): Use "Ts" constraint for operand 0.
338         (ior_scc_scc): Likewise.
339         (and_scc_scc): Likewise.
340         (and_scc_scc_nodom): Likewise.
341         (ior_scc_scc_cmp): Likewise for operand 7.
342         (and_scc_scc_cmp): Likewise.
343         * config/arm/thumb2.md (thumb2_movsi_insn):
344         Add alternatives for 16-bit encodings.
345         (thumb2_movhi_insn): Likewise.
346         (thumb2_movsicc_insn): Likewise.
347         (thumb2_and_scc): Take 'and' outside cond_exec.  Use "Ts" constraint.
348         (thumb2_negscc): Use "Ts" constraint.
349         Move mvn instruction outside cond_exec block.
350         * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
351         for 16-bit encodings.
352
353 2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
354
355         * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
356         encoding.
357         (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
358         (mulsi3subsi): Likewise.
359         (mulsidi3adddi): Likewise.
360         (mulsidi3_v6): Likewise.
361         (umulsidi3_v6): Likewise.
362         (umulsidi3adddi_v6): Likewise.
363         (smulsi3_highpart_v6): Likewise.
364         (umulsi3_highpart_v6): Likewise.
365         (mulhisi3tb): Likewise.
366         (mulhisi3bt): Likewise.
367         (mulhisi3tt): Likewise.
368         (maddhisi4): Likewise.
369         (maddhisi4tb): Likewise.
370         (maddhisi4tt): Likewise.
371         (maddhidi4): Likewise.
372         (maddhidi4tb): Likewise.
373         (maddhidi4tt): Likewise.
374         (zeroextractsi_compare0_scratch): Likewise.
375         (insv_zero): Likewise.
376         (insv_t2): Likewise.
377         (anddi_notzesidi_di): Likewise.
378         (anddi_notsesidi_di): Likewise.
379         (andsi_notsi_si): Likewise.
380         (iordi_zesidi_di): Likewise.
381         (xordi_zesidi_di): Likewise.
382         (andsi_iorsi3_notsi): Likewise.
383         (smax_0): Likewise.
384         (smax_m1): Likewise.
385         (smin_0): Likewise.
386         (not_shiftsi): Likewise.
387         (unaligned_loadsi): Likewise.
388         (unaligned_loadhis): Likewise.
389         (unaligned_loadhiu): Likewise.
390         (unaligned_storesi): Likewise.
391         (unaligned_storehi): Likewise.
392         (extv_reg): Likewise.
393         (extzv_t2): Likewise.
394         (divsi3): Likewise.
395         (udivsi3): Likewise.
396         (arm_zero_extendhisi2addsi): Likewise.
397         (arm_zero_extendqisi2addsi): Likewise.
398         (compareqi_eq0): Likewise.
399         (arm_extendhisi2_v6): Likewise.
400         (arm_extendqisi2addsi): Likewise.
401         (arm_movt): Likewise.
402         (thumb2_ldrd): Likewise.
403         (thumb2_ldrd_base): Likewise.
404         (thumb2_ldrd_base_neg): Likewise.
405         (thumb2_strd): Likewise.
406         (thumb2_strd_base): Likewise.
407         (thumb2_strd_base_neg): Likewise.
408         (arm_negsi2): Add alternative for 16-bit encoding.
409         (arm_one_cmplsi2): Likewise.
410
411 2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
412
413         * config/arm/predicates.md (arm_cond_move_operator): New predicate.
414         * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
415         (movdfcc): Likewise.
416         * config/arm/vfp.md (*thumb2_movsf_vfp):
417         Disable predication for arm_restrict_it.
418         (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
419         (*thumb2_movdfcc_vfp): Likewise.
420         (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
421         *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
422         *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
423         *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
424         *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
425         *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
426         *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
427         *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
428         *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
429         *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
430         *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
431         *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
432         Disable predication for arm_restrict_it.
433
434 2013-06-28  Kirill Yukhin  <kirill.yukhin@intel.com>
435
436         * config/i386/bmiintrin.h (_bextr_u32): New.
437         (_bextr_u64): Ditto.
438
439 2013-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
440
441         * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
442         (mips64r5900el-*-elf*): Include mips/n32-elf.h.
443         * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
444         (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
445         * config/mips/n32-elf.h: ...this new file.
446
447 2013-06-27  Marc Glisse  <marc.glisse@inria.fr>
448
449         PR target/57224
450         * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
451         IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
452
453 2013-06-27  Catherine Moore <clm@codesourcery.com>
454
455         * config/mips/mips-tables.opt: Regenerate.
456         * config/mips/mips-cpus.def: Add m14ke and m14kec.
457         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies
458         -mdspr2.
459         * doc/invoke.texi: Add -m14kc.
460
461 2013-06-27  Jakub Jelinek  <jakub@redhat.com>
462
463         PR target/57623
464         * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
465         constraints of operand 1 and 2.
466
467         PR target/57623
468         * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
469         to match RTL canonicalization.  Swap predicates and
470         constraints of operand 1 and 2.
471
472 2013-06-27  Vladimir Makarov  <vmakarov@redhat.com>
473
474         * lra-constraints.c (inherit_in_ebb): Process static hard regs
475         too.  Process OP_INOUT regs for splitting too.
476
477 2013-06-27  Jakub Jelinek  <jakub@redhat.com>
478
479         * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
480         decl before the loop, initialize to NULL.
481         (vectorizable_load): Initialize ptr_incr to NULL.
482
483 2013-06-27  Martin Jambor  <mjambor@suse.cz>
484
485         PR lto/57208
486         * ipa-ref.h (ipa_maybe_record_reference): Declare.
487         * ipa-ref.c (ipa_maybe_record_reference): New function.
488         * cgraphclones.c (cgraph_create_virtual_clone): Use it.
489         * ipa-cp.c (create_specialized_node): Record potential references from
490         aggvals.
491         * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
492
493 2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
494
495         * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
496         parameter 'mode' of type 'enum machine_mode mode'; change to pass
497         'mode' to force_reg.
498         (aarch64_add_offset): Update calls to aarch64_force_temporary.
499         (aarch64_expand_mov_immediate): Likewise.
500
501 2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
502
503         * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
504         'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
505
506 2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
507
508         * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
509         UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
510         (struct machine_function): Add tbegin_p.
511         (s390_canonicalize_comparison): Fold CC mode compares to
512         conditional jump if possible.
513         (s390_emit_jump): Return the emitted jump.
514         (s390_branch_condition_mask, s390_branch_condition_mnemonic):
515         Handle CCRAWmode compares.
516         (s390_option_override): Default to -mhtm if available.
517         (s390_reg_clobbered_rtx): Handle floating point regs as well.
518         (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
519         FPRs instead of df_regs_ever_live_p.
520         (s390_optimize_nonescaping_tx): New function.
521         (s390_init_frame_layout): Extend clobbered_regs array to cover
522         FPRs as well.
523         (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
524         (s390_expand_tbegin): New function.
525         (enum s390_builtin): New enum definition.
526         (code_for_builtin): New array definition.
527         (s390_init_builtins): New function.
528         (s390_expand_builtin): New function.
529         (TARGET_INIT_BUILTINS): Define.
530         (TARGET_EXPAND_BUILTIN): Define.
531         * common/config/s390/s390-common.c (processor_flags_table): Add
532         PF_TX.
533         * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
534         (s390_alc_comparison): Likewise.
535         * config/s390/s390-modes.def: Add CCRAWmode.
536         * config/s390/s390.h (processor_flags): Add PF_TX.
537         (TARGET_CPU_HTM): Define macro.
538         (TARGET_HTM): Define macro.
539         (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
540         * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
541         UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
542         (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
543         (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
544         values.
545         (TBEGIN_MASK, TBEGINC_MASK): New constants.
546         ("*cc_to_int"): Move up.
547         ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
548         constants other than 0.
549         ("*ccraw_to_int"): New insn and splitter definition.
550         ("tbegin", "tbegin_nofloat", "tbegin_retry")
551         ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
552         ("tx_assist"): New expander.
553         ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
554         ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
555         * config/s390/s390.opt: Add -mhtm option.
556         * config/s390/s390-protos.h (s390_emit_jump): Add return type.
557         * config/s390/htmxlintrin.h: New file.
558         * config/s390/htmintrin.h: New file.
559         * config/s390/s390intrin.h: New file.
560         * doc/extend.texi: Document htm builtins.
561         * config.gcc: Add the new header files to extra_headers.
562
563 2013-06-26  Thomas Schwinge  <thomas@codesourcery.com>
564
565         * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
566         (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET):
567         Undefine.
568
569 2013-06-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
570             Pat Haugen <pthaugen@us.ibm.com>
571             Peter Bergner <bergner@vnet.ibm.com>
572
573         * config/rs6000/power8.md: New.
574         * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
575         setting for power8 entry.
576         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
577         * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
578         test for Power4/Power5 only.
579         (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
580         support.
581         (force_new_group): Adjust comment.
582         * config/rs6000/rs6000.md: Include power8.md.
583
584 2013-06-26  Greta Yorsh  <Greta.Yorsh@arm.com>
585
586         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
587         * config/arm/arm-protos.h (arm_max_conditional_execute): New
588         declaration.
589         (tune_params): Update comment.
590         * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
591         (arm_max_conditional_execute): New function.
592         (thumb2_final_prescan_insn): Use max_insn_skipped and
593         MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
594
595 2013-06-25  Jakub Jelinek  <jakub@redhat.com>
596
597         PR tree-optimization/57705
598         * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
599         SSA_NAME step, provided that it is not defined inside the loop.
600         (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested
601         loop.
602         (get_initial_def_for_induction): Handle SSA_NAME IV step.
603
604 2013-06-25  Martin Jambor  <mjambor@suse.cz>
605
606         PR middle-end/57670
607         * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
608         * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
609         calls in the dump.
610         (ipa_note_param_call): Initialize member_ptr flag.
611         (ipa_analyze_indirect_call_uses): Set member_ptr flag.
612         (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
613         (ipa_write_indirect_edge_info): Stream member_ptr flag.
614         (ipa_read_indirect_edge_info): Likewise.
615
616 2013-06-25  Richard Biener  <rguenther@suse.de>
617
618         PR middle-end/56977
619         * passes.c (init_optimization_passes): Move pass_fold_builtins
620         and pass_dce earlier with -Og.
621
622 2013-06-25  Eric Botcazou  <ebotcazou@adacore.com>
623
624         * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
625         <BIT_FIELD_REF>: Remove trailing TAB.
626         * varasm.c (output_constructor_bitfield): Fix formatting glitch and
627         remove blank line.
628
629 2013-06-24  Martin Jambor  <mjambor@suse.cz>
630
631         PR tree-optimization/57358
632         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
633         (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
634         (ipa_analyze_params_uses): Generate pessimistic info when true.
635
636 2013-06-24  Martin Jambor  <mjambor@suse.cz>
637
638         PR tree-optimization/57539
639         * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
640         global.inlined_to of the new node to it.  All callers changed.
641         * ipa-inline-transform.c (clone_inlined_nodes): New variable
642         inlining_into, pass it to cgraph_clone_node.
643         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
644         ipa_free_edge_args_substructures.
645         (ipa_edge_duplication_hook): Only add edges from inlined nodes to
646         rdesc linked list.  Do not assert rdesc edges have inlined caller.
647         Assert we have found an rdesc in the rdesc list.
648
649 2013-06-24  Richard Biener  <rguenther@suse.de>
650
651         * pointer-set.h (struct pointer_set_t): Move here from
652         pointer-set.c.
653         (pointer_set_lookup): Declare.
654         (class pointer_map): New template class implementing a
655         generic pointer to T map.
656         (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
657         pointer_map<T>::contains, pointer_map<T>::insert,
658         pointer_map<T>::traverse): New functions.
659         * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
660         (pointer_set_lookup): New function.
661         (pointer_set_contains): Use pointer_set_lookup.
662         (pointer_set_insert): Likewise.
663         (insert_aux): Remove.
664         (struct pointer_map_t): Embed a pointer_set_t.
665         (pointer_map_create): Adjust.
666         (pointer_map_destroy): Likewise.
667         (pointer_map_contains): Likewise.
668         (pointer_map_insert): Likewise.
669         (pointer_map_traverse): Likewise.
670         * tree-streamer.h (struct streamer_tree_cache_d): Use a
671         pointer_map<unsigned> instead of a pointer_map_t.
672         * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
673         (streamer_tree_cache_lookup): Likewise.
674         (streamer_tree_cache_create): Likewise.
675         (streamer_tree_cache_delete): Likewise.
676         * lto-streamer.h (struct lto_tree_ref_encoder): Use a
677         pointer_map<unsigned> instead of a pointer_map_t.
678         (lto_init_tree_ref_encoder): Adjust.
679         (lto_destroy_tree_ref_encoder): Likewise.
680         * lto-section-out.c (lto_output_decl_index): Likewise.
681         (lto_record_function_out_decl_state): Likewise.
682         * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
683
684 2013-06-24  Richard Biener  <rguenther@suse.de>
685
686         PR tree-optimization/57488
687         * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
688
689 2013-06-24  Alan Modra  <amodra@gmail.com>
690
691         * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
692         (gen_easy_altivec_constant): Likewise.
693         * config/rs6000/predicates.md (easy_vector_constant_add_self,
694         easy_vector_constant_msb): Likewise.
695
696 2013-06-23  Jakub Jelinek  <jakub@redhat.com>
697
698         PR target/57688
699         * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
700         add missing return true.
701
702 2013-06-23  Oleg Endo <olegendo@gcc.gnu.org>
703
704         PR target/52483
705         * config/sh/predicates.md (general_extend_operand): Invoke
706         general_movsrc_operand for memory operands.
707         (general_movsrc_operand): Allow reg+reg addressing, do not use
708         general_operand for memory operands.
709
710 2013-06-23  Sriraman Tallam  <tmsriram@google.com>
711
712         * config/i386/i386.c (ix86_pragma_target_parse):  Restore target
713         when current target options does not apply.
714         * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
715         * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
716         * config/i386/bmiintrin.h: Pass appropriate target attributes to header.
717         * config/i386/mmintrin.h: Ditto.
718         * config/i386/nmmintrin.h: Ditto.
719         * config/i386/avx2intrin.h: Ditto.
720         * config/i386/fxsrintrin.h: Ditto.
721         * config/i386/tbmintrin.h: Ditto.
722         * config/i386/xsaveintrin.h: Ditto.
723         * config/i386/f16cintrin.h: Ditto.
724         * config/i386/xtestintrin.h: Ditto.
725         * config/i386/xsaveoptintrin.h: Ditto.
726         * config/i386/bmi2intrin.h: Ditto.
727         * config/i386/lzcntintrin.h: Ditto.
728         * config/i386/smmintrin.h: Ditto.
729         * config/i386/wmmintrin.h: Ditto.
730         * config/i386/x86intrin.h: Remove all header include guards.
731         * config/i386/prfchwintrin.h: Ditto.
732         * config/i386/pmmintrin.h: Ditto.
733         * config/i386/tmmintrin.h: Ditto.
734         * config/i386/xmmintrin.h: Ditto.
735         * config/i386/popcntintrin.h: Ditto.
736         * config/i386/rdseedintrin.h: Ditto.
737         * config/i386/ammintrin.h: Ditto.
738         * config/i386/emmintrin.h: Ditto.
739         * config/i386/immintrin.h: Remove all header include guards.
740         * config/i386/fma4intrin.h: Ditto.
741         * config/i386/lwpintrin.h: Ditto.
742         * config/i386/xopintrin.h: Ditto.
743         * config/i386/ia32intrin.h: Ditto.
744         * config/i386/avxintrin.h: Ditto.
745         * config/i386/rtmintrin.h: Ditto.
746         * config/i386/fmaintrin.h: Ditto.
747         * config/i386/mm3dnow.h: Ditto.
748
749 2013-06-22  Sriraman Tallam  <tmsriram@google.com>
750
751         * common/config/i386/i386-common.c: Handle LZCNT.
752
753 2013-06-22  Andi Kleen  <ak@linux.intel.com>
754
755         * doc/extend.texi: Use __atomic_store_n instead of
756         __atomic_store in HLE example.
757
758 2013-06-22  Oleg Endo <olegendo@gcc.gnu.org>
759
760         * config/sh/sh.c: Remove <cstdlib> workaround.
761
762 2013-06-21  Andi Kleen  <ak@linux.intel.com>
763
764         * doc/extend.texi: Dont use __atomic_clear in HLE
765         example.  Fix typo.
766
767 2013-06-21  Andi Kleen  <ak@linux.intel.com>
768
769         * doc/extend.texi: Document that __atomic_clear and
770           __atomic_test_and_set should only be used with bool.
771
772 2013-06-20  Jan Hubicka  <jh@suse.cz>
773
774         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
775         types_same_for_odr.
776         * tree.c (decls_same_for_odr): New function.
777         (same_for_edr): New function.
778         (types_same_for_odr): New function.
779         (get_binfo_at_offset): Use it.
780         * tree.h (types_same_for_odr): Declare.
781
782 2013-06-20  Oleg Endo <olegendo@gcc.gnu.org>
783             Jason Merrill  <jason@redhat.com>
784
785         * system.h: Include <cstdlib> as well as <stdlib.h>.
786
787 2013-06-20  Uros Bizjak  <ubizjak@gmail.com>
788
789         PR target/57655
790         * config/i386/i386.c (construct_container): Report error if
791         long double is used with disabled x87 float returns.
792
793 2013-06-20  Jan Hubicka  <jh@suse.cz>
794
795         * lto-cgraph.c (input_symtab): Do not set cgraph state.
796
797 2013-06-20  Joern Rennecke <joern.rennecke@embecosm.com>
798
799         PR rtl-optimization/57425
800         PR rtl-optimization/57569
801         * alias.c (write_dependence_p): Remove parameters mem_mode and
802         canon_mem_addr.  Add parameters x_mode, x_addr and x_canonicalized.
803         Changed all callers.
804         (canon_anti_dependence): Get comments and semantics in sync.
805         Add parameter mem_canonicalized.  Changed all callers.
806         * rtl.h (canon_anti_dependence): Update prototype.
807
808 2013-06-20  Richard Biener  <rguenther@suse.de>
809
810         * data-streamer-in.c (streamer_read_uhwi): Optimize single
811         byte case, inline streamer_read_uchar and defer section
812         overrun check.
813
814 2013-06-20  Richard Biener  <rguenther@suse.de>
815
816         PR tree-optimization/57584
817         * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
818         SSA names into the expanded expression that take part in
819         abnormal coalescing.
820
821 2013-06-19    <singhai@google.com>
822
823         * gcov.c (print_usage): Handle new option.
824         (process_args): Ditto.
825         (get_gcov_intermediate_filename): New function.
826         (output_intermediate_file): New function.
827         (output_gcov_file): New function
828         (generate_results): Handle new option.
829         (release_function): Relase demangled name.
830         (read_graph_file): Handle demangled name.
831         (output_lines): Ditto.
832         * doc/gcov.texi: Document gcov intermediate format.
833
834 2013-06-19  Vladimir Makarov  <vmakarov@redhat.com>
835
836         PR bootstrap/57604
837         * lra.c (emit_add3_insn, emit_add2_insn): New functions.
838         (lra_emit_add): Use the functions.  Add comment about Y as an
839         address segment.
840
841 2013-06-19  David Edelsohn  <dje.gcc@gmail.com>
842
843         PR driver/57652
844         * collect2.c (collect_atexit): New.
845         (collect_exit): Delete.
846         (main): Register collect_atexit with atexit.
847         (collect_wait): Change collect_exit to exit.
848         (do_wait): Same.
849         * collect2.h (collect_exit): Delete.
850         * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
851
852 2013-06-19  Wei Mi  <wmi@google.com>
853
854         PR rtl-optimization/57518
855         * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
856         if regno is used in paradoxical subreg.
857         (update_equiv_regs): Check pdx_subregs[regno] before
858         set a reg to be equivalent with a mem.
859
860 2013-06-19  Matthias Klose  <doko@ubuntu.com>
861
862         PR driver/57651
863         * file-find.h (find_a_file): Add a mode parameter.
864         * file-find.c (find_a_file): Likewise.
865         * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
866         with X_OK for the executables.
867         * collect2.c (main): Call find_a_file with X_OK.
868
869 2013-06-19  Steve Ellcey  <sellcey@mips.com>
870
871         PR target/56942
872         * config/mips/mips.md (casesi_internal_mips16_<mode>):
873         Use NEXT_INSN instead of next_real_insn.
874
875 2013-06-19  Jan Hubicka  <jh@suse.cz>
876
877         * cgraph.h (const_value_known_p): Replace by ...
878         (ctor_for_folding): .. this one.
879         * cgraphunit.c (process_function_and_variable_attributes): Use it.
880         * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
881         * expr.c (expand_expr_real_1): Likewise.
882         (string_constant): Likewise.
883         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
884         * ipa.c (process_references): Likewise.
885         (symtab_remove_unreachable_nodes): Likewise.
886         * ipa-inline-analysis.c (param_change_prob): Likewise.
887         * gimple-fold.c (canonicalize_constructor_val): Likewise.
888         (get_base_constructor): Likwise.
889         * varpool.c (varpool_remove_node): Likewise.
890         (varpool_remove_initializer): LIkewise.
891         (dump_varpool_node): LIkwise.
892         (const_value_known_p): Rewrite to ...
893         (ctor_for_folding): ... this one.
894
895 2013-06-19  Jakub Jelinek  <jakub@redhat.com>
896
897         PR driver/57651
898         * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
899         PERSONALITY in $PATH derived prefixes.
900
901 2013-06-19  Jeff Law  <law@redhat.com>
902
903         * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
904         in comment.
905
906         * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
907         (simplify_bitwise_binary): Use it to simpify certain binary ops on
908         booleans.
909
910 2013-06-19  Sofiane Naci  <sofiane.naci@arm.com>
911
912         * config/arm/vfp.md: Move VFP instruction classification documentation
913         to ...
914         * config/arm/arm.md: ... here.  Update instruction classification
915         documentation.
916
917 2013-06-19  Richard Earnshaw  <rearnsha@arm.com>
918
919         arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
920         (peepholes for eq(reg, not-0)): Ensure condition register is dead after
921         pattern.  Use more efficient sequences on ARMv5 and Thumb2.
922
923 2013-06-19  Steven Bosscher  <steven@gcc.gnu.org>
924
925         PR target/57609
926         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
927         with NEXT_INSN.  Use tablejump_p to check for jump table data
928         insns.
929
930 2013-06-19  Paolo Carlini  <paolo.carlini@oracle.com>
931
932         PR c++/56544
933         * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
934         that now in C++ the value is correct per the C++ standards.
935
936 2013-06-19  Richard Biener  <rguenther@suse.de>
937
938         * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
939         for global context.
940
941 2013-06-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
942
943         Revert:
944         2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
945
946         PR target/57609
947         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
948         with next_active_insn.
949
950 2013-06-18  Sriraman Tallam  <tmsriram@google.com>
951
952         * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
953         functions are inlined during failures to flag an error.
954         * tree-inline.c (expand_call_inline): Allow the error to be flagged
955         in early inline pass.
956
957 2013-06-18  H.J. Lu  <hongjiu.lu@intel.com>
958
959         * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
960         in comments.
961
962 2013-06-18  Julian Brown  <julian@codesourcery.com>
963
964         * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
965         Permit virtual register pre-reload if !strict.
966         (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
967         change.
968         * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
969         prototype.
970         * config/arm/neon.md (movmisalign<mode>): Use
971         neon_perm_struct_or_reg_operand instead of
972         neon_struct_or_register_operand.
973         (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
974         neon_permissive_struct_operand instead of neon_struct_operand.
975         * config/arm/constraints.md (Un, Um, Us): Adjust calls to
976         neon_vector_mem_operand.
977         * config/arm/predicates.md (neon_struct_operand): Adjust call to
978         neon_vector_mem_operand.
979         (neon_permissive_struct_operand): New.
980         (neon_struct_or_register_operand): Rename to...
981         (neon_perm_struct_or_reg_operand): This. Adjust call to
982         neon_vector_mem_operand.
983
984 2013-06-18  Richard Biener  <rguenther@suse.de>
985
986         * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
987         * lto-streamer.h: Include pointer-set.h.
988         (struct lto_decl_slot): Remove.
989         (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
990         Remove next_index entry.
991         (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
992         lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
993         (lto_init_tree_ref_encoder): Adjust.
994         (lto_destroy_tree_ref_encoder): Likewise.
995         * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
996         lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
997         (lto_output_decl_index): Adjust.
998         (lto_new_out_decl_state): Likewise.
999         (lto_record_function_out_decl_state): Likewise.
1000         * lto-streamer-out.c (copy_function): Likewise.
1001
1002 2013-06-18  Richard Biener  <rguenther@suse.de>
1003
1004         * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
1005         * cgraphunit.c: Include cfgloop.h.
1006         (init_lowered_empty_function): Initialize the loop tree.
1007         (assemble_thunk): Insert new BBs into loops.
1008
1009 2013-06-18  Richard Biener  <rguenther@suse.de>
1010
1011         * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
1012         * tree-streamer.c (streamer_tree_cache_create): Make maintaining
1013         the map from cache entry to cache index optional.
1014         (streamer_tree_cache_replace_tree): Adjust accordingly.
1015         (streamer_tree_cache_append): Likewise.
1016         (streamer_tree_cache_delete): Likewise.
1017         * lto-streamer-in.c (lto_data_in_create): Do not maintain the
1018         streamer cache map from cache entry to cache index.
1019         * lto-streamer-out.c (create_output_block): Adjust.
1020
1021 2013-06-18  Sofiane Naci  <sofiane.naci@arm.com>
1022
1023         * config/arm/arm.md (attribute "insn"): Move multiplication and
1024         division attributes to...
1025         (attribute "type"): ... here.  Remove mult.
1026         (attribute "mul32"): New attribute.
1027         (attribute "mul64"): Add umaal.
1028         (*arm_mulsi3): Update attributes.
1029         (*arm_mulsi3_v6): Likewise.
1030         (*thumb_mulsi3): Likewise.
1031         (*thumb_mulsi3_v6): Likewise.
1032         (*mulsi3_compare0): Likewise.
1033         (*mulsi3_compare0_v6): Likewise.
1034         (*mulsi_compare0_scratch): Likewise.
1035         (*mulsi_compare0_scratch_v6): Likewise.
1036         (*mulsi3addsi): Likewise.
1037         (*mulsi3addsi_v6): Likewise.
1038         (*mulsi3addsi_compare0): Likewise.
1039         (*mulsi3addsi_compare0_v6): Likewise.
1040         (*mulsi3addsi_compare0_scratch): Likewise.
1041         (*mulsi3addsi_compare0_scratch_v6): Likewise.
1042         (*mulsi3subsi): Likewise.
1043         (*mulsidi3adddi): Likewise.
1044         (*mulsi3addsi_v6): Likewise.
1045         (*mulsidi3adddi_v6): Likewise.
1046         (*mulsidi3_nov6): Likewise.
1047         (*mulsidi3_v6): Likewise.
1048         (*umulsidi3_nov6): Likewise.
1049         (*umulsidi3_v6): Likewise.
1050         (*umulsidi3adddi): Likewise.
1051         (*umulsidi3adddi_v6): Likewise.
1052         (*smulsi3_highpart_nov6): Likewise.
1053         (*smulsi3_highpart_v6): Likewise.
1054         (*umulsi3_highpart_nov6): Likewise.
1055         (*umulsi3_highpart_v6): Likewise.
1056         (mulhisi3): Likewise.
1057         (*mulhisi3tb): Likewise.
1058         (*mulhisi3bt): Likewise.
1059         (*mulhisi3tt): Likewise.
1060         (maddhisi4): Likewise.
1061         (*maddhisi4tb): Likewise.
1062         (*maddhisi4tt): Likewise.
1063         (maddhidi4): Likewise.
1064         (*maddhidi4tb): Likewise.
1065         (*maddhidi4tt): Likewise.
1066         (divsi3): Likewise.
1067         (udivsi3): Likewise.
1068         * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
1069         (thumb2_mulsi_short_compare0): Likewise.
1070         (thumb2_mulsi_short_compare0_scratch): Likewise.
1071         * config/arm/arm1020e.md (1020mult1): Update attribute change.
1072         (1020mult2): Likewise.
1073         (1020mult3): Likewise.
1074         (1020mult4): Likewise.
1075         (1020mult5): Likewise.
1076         (1020mult6): Likewise.
1077         * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
1078         change.
1079         (cortex_a15_mult64): Likewise.
1080         (cortex_a15_sdiv): Likewise.
1081         (cortex_a15_udiv): Likewise.
1082         * config/arm/arm1026ejs.md (mult1): Update attribute change.
1083         (mult2): Likewise.
1084         (mult3): Likewise.
1085         (mult4): Likewise.
1086         (mult5): Likewise.
1087         (mult6): Likewise.
1088         * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
1089         (pj4_ir_div): Likewise.
1090         * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
1091         (11_mult2): Likewise.
1092         (11_mult3): Likewise.
1093         (11_mult4): Likewise.
1094         (11_mult5): Likewise.
1095         (11_mult6): Likewise.
1096         (11_mult7): Likewise.
1097         * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
1098         (cortex_a8_mla): Likewise.
1099         (cortex_a8_mull): Likewise.
1100         (cortex_a8_smulwy): Likewise.
1101         (cortex_a8_smlald): Likewise.
1102         * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
1103         * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
1104         (cortex_r4_mul_3): Likewise.
1105         (cortex_r4_mla_4): Likewise.
1106         (cortex_r4_mla_3): Likewise.
1107         (cortex_r4_smlald): Likewise.
1108         (cortex_r4_mull): Likewise.
1109         (cortex_r4_sdiv): Likewise.
1110         (cortex_r4_udiv): Likewise.
1111         * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
1112         (cortex_a7_idiv): Likewise.
1113         * config/arm/arm926ejs.md (9_mult1): Update attribute change.
1114         (9_mult2): Likewise.
1115         (9_mult3): Likewise.
1116         (9_mult4): Likewise.
1117         (9_mult5): Likewise.
1118         (9_mult6): Likewise.
1119         * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
1120         (cortex_a53_sdiv): Likewise.
1121         (cortex_a53_udiv): Likewise.
1122         * config/arm/fa726te.md (726te_mult_op): Update attribute change.
1123         * config/arm/fmp626.md (mp626_mult1): Update attribute change.
1124         (mp626_mult2): Likewise.
1125         (mp626_mult3): Likewise.
1126         (mp626_mult4): Likewise.
1127         * config/arm/fa526.md (526_mult1): Update attribute change.
1128         (526_mult2): Likewise.
1129         * config/arm/arm-generic.md (mult): Update attribute change.
1130         (mult_ldsched_strongarm): Likewise.
1131         (mult_ldsched): Likewise.
1132         (multi_cycle): Likewise.
1133         * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
1134         * config/arm/fa606te.md (606te_mult1): Update attribute change.
1135         (606te_mult2): Likewise.
1136         (606te_mult3): Likewise.
1137         (606te_mult4): Likewise.
1138         * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
1139         (cortex_a9_mac16): Likewise.
1140         (cortex_a9_multiply): Likewise.
1141         (cortex_a9_mac): Likewise.
1142         (cortex_a9_multiply_long): Likewise.
1143         * config/arm/fa626te.md (626te_mult1): Update attribute change.
1144         (626te_mult2): Likewise.
1145         (626te_mult3): Likewise.
1146         (626te_mult4): Likewise.
1147
1148 2013-06-18  Richard Biener  <rguenther@suse.de>
1149
1150         PR lto/57334
1151         * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
1152
1153 2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1154
1155         PR target/57609
1156         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
1157         with next_active_insn.
1158
1159 2013-06-18  Alan Modra  <amodra@gmail.com>
1160
1161         * config/rs6000/rs6000.h (enum data_align): New.
1162         (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
1163         (DATA_ABI_ALIGNMENT): Define.
1164         (CONSTANT_ALIGNMENT): Correct comment.
1165         * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
1166         * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
1167
1168 2013-06-17  David Malcolm  <dmalcolm@redhat.com>
1169
1170         * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
1171         ATTRIBUTE_UNUSED marking.
1172
1173 2013-06-17  Sofiane Naci  <sofiane.naci@arm.com>
1174
1175         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
1176         alternative and update.
1177         (aarch64_dup_lanedi): Delete.
1178         * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
1179         * config/aarch64/aarch64-simd-builtins.def: Update.
1180
1181 2013-06-17  Richard Biener  <rguenther@suse.de>
1182
1183         * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
1184         (lto_input_scc): Declare.
1185         (lto_input_tree_1): Likewise.
1186         (struct lto_stats_d): Add num_tree_bodies_output and
1187         num_pickle_refs_output.
1188         * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
1189         (lto_read_tree_1): Split out from ...
1190         (lto_read_tree): ... this.
1191         (lto_input_scc): New function.
1192         (lto_input_tree_1): Split out from ...
1193         (lto_input_tree): ... this.  Handle LTO_tree_scc.
1194         (lto_data_in_create): Create the streamer cache without hashes.
1195         * lto-streamer-out.c (create_output_block): Create the streamer
1196         cache with hashes when not doing WPA.
1197         (lto_write_tree_1): Split out from ...
1198         (lto_write_tree): ... this.
1199         (get_symbol_initial_value): New function.
1200         (lto_output_tree_1): Split out from ...
1201         (lto_output_tree): ... this.  Write trees as series of SCCs
1202         using a DFS walk via DFS_write_tree.
1203         (struct sccs, struct scc_entry): New types.
1204         (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
1205         (DFS_write_tree_body): New function.
1206         (DFS_write_tree): Likewise.
1207         (hash_tree): Likewise.
1208         (scc_entry_compare): Likewise.
1209         (hash_scc): Likewise.
1210         (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
1211         * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
1212         TREE_CHAIN as regular reference.
1213         (streamer_read_integer_cst): Remove.
1214         (streamer_get_pickled_tree): Adjust.
1215         * tree-streamer-out.c (streamer_write_chain): Disable streaming
1216         of DECL_EXTERNALs in BLOCK_VARS for now.
1217         (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
1218         reference.
1219         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
1220         Add hash value argument and record that if hashes are recorded
1221         in the cache.
1222         (streamer_tree_cache_insert_1): Adjust.
1223         (streamer_tree_cache_insert): Likewise.
1224         (streamer_tree_cache_insert_at): Rename to ...
1225         (streamer_tree_cache_replace_tree): ... this and adjust.
1226         (streamer_tree_cache_append): Adjust.
1227         (record_common_node): Likewise.
1228         (streamer_tree_cache_create): Add argument whether to
1229         record hash values together with trees.
1230         (streamer_tree_cache_delete): Adjust.
1231         * tree-streamer.h (struct streamer_tree_cache_d): Add
1232         vector of hashes.
1233         (streamer_read_integer_cst): Remove.
1234         (streamer_tree_cache_insert): Adjust.
1235         (streamer_tree_cache_append): Likewise.
1236         (streamer_tree_cache_insert_at): Rename to ...
1237         (streamer_tree_cache_replace_tree): ... this and adjust.
1238         (streamer_tree_cache_create): Add argument whether to record hashes.
1239         (streamer_tree_cache_get): Rename to ...
1240         (streamer_tree_cache_get_tree): ... this.
1241         (streamer_tree_cache_get_hash): New function.
1242         * tree.c (cache_integer_cst): New function.
1243         * tree.h (cache_integer_cst): Declare.
1244         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
1245         * lto-symtab.c (lto_varpool_replace_node): Only release
1246         DECL_INITIAL of non-prevailing decls.
1247         * varpool.c (varpool_remove_initializer): Do not release
1248         DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
1249
1250 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
1251
1252         * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
1253         (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
1254         * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
1255         (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
1256         (mul<mode>3_mul3): Handle TARGET_MIPS5900.
1257         (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
1258         (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
1259         (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
1260         instead of TARGET_64BIT.
1261         (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
1262         Require ISA_HAS_<D>DIV.
1263
1264 2013-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
1265
1266         * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
1267         (mips*-*-linux*): Move default with_llsc setting to where other
1268         defaults are set.
1269         (mips*-*-vxworks*): Move with_arch default from with_cpu block to
1270         with_arch block.
1271         (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
1272         Likewise.  Remove default with_tune setting.  Move default float
1273         setting to its own block.  Handle with_llsc in the same block as above.
1274
1275 2013-06-16  Joern Rennecke <joern.rennecke@embecosm.com>
1276
1277         PR rtl-optimization/57425
1278         PR rtl-optimization/57569
1279         * alias.c (write_dependence_p): Add new parameters mem_mode,
1280         canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
1281         Changed all callers.
1282         (canon_anti_dependence): New function.
1283         * cse.c (check_dependence): Use canon_anti_dependence.
1284         * cselib.c (cselib_invalidate_mem): Likewise.
1285         * rtl.h (canon_anti_dependence): Declare.
1286
1287 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
1288
1289         * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
1290         * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
1291         ".set mips3" for 64-bit targets.
1292
1293 2013-06-15  Dehao Chen  <dehao@google.com>
1294
1295         * tree-flow.h (gimple_check_call_matching_types): Add new argument.
1296         * gimple-low.c (gimple_check_call_matching_types): Likewise.
1297         (gimple_check_call_args): Likewise.
1298         * value-prof.c (check_ic_target): Likewise.
1299         * ipa-inline.c (early_inliner): Likewise.
1300         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
1301         * cgraph.c (cgraph_create_edge_1): Likewise.
1302         (cgraph_make_edge_direct): Likewise.
1303
1304 2013-06-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1305
1306         PR target/57615
1307         * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
1308         rs6000_output_move_128bit to handle emitting quad memory
1309         operations.  Set attribute length to 8 bytes.
1310
1311 2013-06-14  Vidya Praveen <vidyapraveen@arm.com>
1312
1313         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
1314         New pattern.
1315         (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
1316         (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
1317         (aarch64_<su>mlsl<mode>): Likewise.
1318
1319 2013-06-14  Mike Stump  <mikestump@comcast.net>
1320
1321         * Makefile.in (TARGET_H): Add insn-codes.h.
1322
1323 2013-06-14  Alan Modra  <amodra@gmail.com>
1324
1325         PR middle-end/57134
1326         PR middle-end/57586
1327         * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
1328         EXPAND_MEMORY and EXPAND_WRITE to recursive call.  Don't use
1329         bitfield expansion when EXPAND_MEMORY.
1330         (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
1331
1332 2013-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1333
1334         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1335         test for clearing quad memory on 32-bit later.
1336
1337 2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
1338
1339         * fold-const.c (negate_expr_p): Handle VECTOR_CST.
1340         (fold_negate_expr): Likewise.
1341         (fold_real_zero_addition_p): Handle vectors.
1342         (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
1343
1344 2013-06-14  Alan Modra  <amodra@gmail.com>
1345
1346         * varasm.c (force_const_mem): Revert 2013-06-07 change.
1347
1348 2013-06-13  Jan Hubicka  <jh@suse.cz>
1349
1350         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
1351         Local comdats are not externally visible.
1352         * symtab.c (dump_symtab_base): Dump externally visible.
1353         (verify_symtab_base): Verify back links in the symtab hash.
1354
1355 2013-06-13  Bin Cheng  <bin.cheng@arm.com>
1356
1357         * fold-const.c (operand_equal_p): Consider NOP_EXPR and
1358         CONVERT_EXPR as equal nodes.
1359
1360 2013-06-13  Bin Cheng  <bin.cheng@arm.com>
1361
1362         * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
1363
1364 2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
1365
1366         * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
1367         Generalize to complex and vector.
1368         * tree.c (build_all_ones_cst): New function.
1369         * tree.h (build_all_ones_cst): Declare it.
1370
1371 2013-06-13  Alan Modra  <amodra@gmail.com>
1372
1373         * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
1374         * config/rs6000/rs6000.md (signbittf2): New insn.
1375         (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
1376         (abstf2_internal, cmptf_internal2): Likewise.
1377         * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
1378
1379 2013-06-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1380             Pat Haugen <pthaugen@us.ibm.com>
1381             Peter Bergner <bergner@vnet.ibm.com>
1382
1383         * config/rs6000/rs6000.c (emit_load_locked): Add support for
1384         power8 byte, half-word, and quad-word atomic instructions.
1385         (emit_store_conditional): Likewise.
1386         (rs6000_expand_atomic_compare_and_swap): Likewise.
1387         (rs6000_expand_atomic_op): Likewise.
1388
1389         * config/rs6000/sync.md (larx): Add new modes for power8.
1390         (stcx): Likewise.
1391         (AINT): New mode iterator to include TImode as well as normal
1392         integer modes on power8.
1393         (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
1394         that VSX registers are not considered.  Use AINT mode iterator
1395         instead of INT1 to allow inclusion of quad word atomic operations
1396         on power8.
1397         (load_locked<mode>): Likewise.
1398         (store_conditional<mode>): Likewise.
1399         (atomic_compare_and_swap<mode>): Likewise.
1400         (atomic_exchange<mode>): Likewise.
1401         (atomic_nand<mode>): Likewise.
1402         (atomic_fetch_<fetchop_name><mode>): Likewise.
1403         (atomic_nand_fetch<mode>): Likewise.
1404         (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
1405         each type.
1406         (ATOMIC): On power8, add QImode, HImode modes.
1407         (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
1408         modes that promote to SImode.
1409         (load_lockedti): Convert TImode arguments to PTImode, so that we
1410         get a guaranteed even/odd register pair.
1411         (load_lockedpti): Likewise.
1412         (store_conditionalti): Likewise.
1413         (store_conditionalpti): Likewise.
1414
1415         * config/rs6000/rs6000.md (QHI): New mode iterator for power8
1416         atomic load/store instructions.
1417         (HSI): Likewise.
1418
1419 2013-06-12  Richard Sandiford  <rdsandiford@googlemail.com>
1420
1421         * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
1422         loads.
1423         (insn_count): New attribute, with most cases extracted from...
1424         (length): ...here.  Redefine most cases in terms of insn_count.
1425         (single_insn): Delete.
1426         (can_delay): Use insn_count to check for single instructions.
1427         (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
1428         (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
1429         (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
1430         (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
1431         (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
1432         (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
1433         (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
1434         (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
1435         (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
1436         (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
1437         rather than "length".
1438         (tls_get_tp_<mode>): Likewise.  Remove redundant "no_delay" attribute.
1439         * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
1440         Use "insn_count" rather than "length".
1441         * config/mips/mips-dsp.md
1442         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
1443         (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
1444         length attributes.
1445
1446 2013-06-12  Marc Glisse  <marc.glisse@inria.fr>
1447
1448         PR tree-optimization/57361
1449         * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
1450
1451 2013-06-12  Sofiane Naci  <sofiane.naci@arm.com>
1452
1453         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
1454         to split.
1455         (aarch64_simd_combine<mode>): New instruction expansion.
1456         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
1457         function prototype.
1458         * config/aarch64/aarch64.c (aarch64_split_combine): New function.
1459         * config/aarch64/iterators.md (Vdbl): Add entry for DF.
1460
1461 2013-06-12  Jan Hubicka  <jh@suse.cz>
1462
1463         * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
1464         decl has when in streaming stage.
1465         * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
1466         * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
1467
1468 2013-06-12  Roland Stigge <stigge@antcom.de>
1469
1470         PR target/57578
1471         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
1472
1473 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
1474
1475         PR tree-optimization/57537
1476         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
1477         vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
1478
1479 2013-06-12  Richard Biener  <rguenther@suse.de>
1480
1481         * data-streamer.h (streamer_write_char_stream): CSE
1482         obs->current_pointer.
1483         * data-streamer-out.c (streamer_write_uhwi_stream): Inline
1484         streamer_write_char_stream manually and optimize the resulting loop.
1485         (streamer_write_hwi_stream): Likewise.
1486
1487 2013-06-12  Jan Hubicka  <jh@suse.cz>
1488
1489         * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
1490         * cgraph.h (varpool_create_empty_node): Declare.
1491         * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
1492         duplicated nodes.
1493         * symtab.c (symtab_unregister_node): Be lax about missin entries
1494         in node hash.
1495         (symtab_get_node): Update comment.
1496         * varpool.c (varpool_create_empty_node): Break out from ...
1497         (varpool_node_for_decl): ... here.
1498         * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
1499
1500 2013-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1501
1502         * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
1503         <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
1504         part.  Use straight-line flow at the end.
1505         <COMPONENT_REF>: Remove superfluous else.
1506         <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
1507
1508 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
1509
1510         PR target/56564
1511         * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
1512         target hook even for !TREE_PUBLIC decls.  If no resolution info
1513         is available, return false for common and external decls.
1514
1515 2013-06-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1516
1517         * config/rl78/constraints.md (U): New constraint.
1518         * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
1519         valloc attribute.
1520
1521 2013-06-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
1522
1523         PR target/57589
1524         * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
1525         to allow returning address to AT_PLATFORM name.
1526
1527 2013-06-11  Jan Hubicka  <jh@suse.cz>
1528
1529         * cgraph.c (cgraph_create_function_alias): Set weakref flag.
1530         * cgraph.h (symtab_node_base): Add weakref flag.
1531         * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
1532         (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
1533         (output_weakrefs): Use weakref flag.
1534         * fold-const.c (simple_operand_p): Handle WEAK.
1535         * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
1536         * ipa.c (varpool_externally_visible_p): Drop weakref.
1537         (function_and_variable_visibility): Update comment; fix weakref
1538         sanity checks; do not clear DECL_WEAK on them.
1539         * lto-cgraph.c (lto_output_node): update.
1540         (lto_output_varpool_node): Update.
1541         (input_overwrite_node): Update.
1542         (input_node): Update.
1543         (input_varpool_node): Update.
1544         * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
1545         (lto_symtab_merge_symbols): Add sanity check.
1546         (lto_symtab_prevailing_decl): Do not special case weakrefs.
1547         * passes.c (rest_of_decl_compilation): Set static flag, too.
1548         * symtab.c (dump_symtab_base): Dump weakref.
1549         (verify_symtab_base): Sanity check weakrefs.
1550         (symtab_make_decl_local): Remove duplicated code.
1551         (symtab_alias_ultimate_target): Simplify.
1552         * varpool.c (varpool_create_variable_alias): Set weakref flag.
1553
1554 2013-06-11  DJ Delorie  <dj@redhat.com>
1555
1556         * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
1557         (rl78_unwind_word_mode): New.
1558
1559 2013-06-11  David Malcolm  <dmalcolm@redhat.com>
1560
1561         * final.c (debug_prefix_maps): Make static.
1562
1563 2013-06-11  David Malcolm  <dmalcolm@redhat.com>
1564
1565         * function.c (initial_trampoline): Remove stray copy.
1566
1567 2013-06-11  Sofiane Naci  <sofiane.naci@arm.com>
1568
1569         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
1570
1571 2013-06-11  Martin Jambor  <mjambor@suse.cz>
1572
1573         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
1574         within bounds at the beginning of the function.
1575
1576 2013-06-11  Alan Modra  <amodra@gmail.com>
1577
1578         * varasm.c (get_section): Don't die on !DECL_P decl.  Tidy error
1579         reporting.
1580         (get_named_section): Don't NULL !DECL_P decl.
1581
1582 2013-06-11  Igor Zamyatin  <igor.zamyatin@intel.com>
1583
1584         * doc/invoke.texi (core-avx2): Document.
1585         (slm): Likewise.
1586         (atom): Updated with MOVBE.
1587
1588 2013-06-11  Richard Biener  <rguenther@suse.de>
1589
1590         * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
1591
1592 2013-06-11  Anton Blanchard  <anton@samba.org>
1593
1594         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
1595         correct shift value in little-endian mode.
1596
1597 2013-06-11  Jakub Jelinek  <jakub@redhat.com>
1598
1599         PR target/56564
1600         * varasm.c (get_variable_align): Move #endif to the right place.
1601
1602 2013-06-10  Cary Coutant  <ccoutant@google.com>
1603
1604         * dwarf2out.c (hash_external_ref): Use die_symbol or signature
1605         for hash so that hash table traversal order is deterministic.
1606
1607 2013-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1608             Pat Haugen <pthaugen@us.ibm.com>
1609             Peter Bergner <bergner@vnet.ibm.com>
1610
1611         * config/rs6000/vector.md (GPR move splitter): Do not split moves
1612         of vectors in GPRS if they are direct moves or quad word load or
1613         store moves.
1614
1615         * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
1616         declaration.
1617         (direct_move_p): Likewise.
1618         (quad_load_store_p): Likewise.
1619
1620         * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
1621         classes into bins based on the physical register type.
1622         (reg_class_to_reg_type): Likewise.
1623         (IS_STD_REG_TYPE): Likewise.
1624         (IS_FP_VECT_REG_TYPE): Likewise.
1625         (reload_fpr_gpr): Arrays to determine what insn to use if we can
1626         use direct move instructions.
1627         (reload_gpr_vsx): Likewise.
1628         (reload_vsx_gpr): Likewise.
1629         (rs6000_init_hard_regno_mode_ok): Precalculate the register type
1630         information that is a simplification of register classes.  Also
1631         precalculate direct move reload helpers.
1632         (direct_move_p): New function to return true if the operation can
1633         be done as a direct move instruciton.
1634         (quad_load_store_p): New function to return true if the operation
1635         is a quad memory operation.
1636         (rs6000_legitimize_address): If quad memory, only allow register
1637         indirect for TImode addresses.
1638         (rs6000_legitimate_address_p): Likewise.
1639         (enum reload_reg_type): Delete, replace with rs6000_reg_type.
1640         (rs6000_reload_register_type): Likewise.
1641         (register_to_reg_type): Return register type.
1642         (rs6000_secondary_reload_simple_move): New helper function for
1643         secondary reload and secondary memory needed to identify anything
1644         that is a simple move, and does not need reloading.
1645         (rs6000_secondary_reload_direct_move): New helper function for
1646         secondary reload to identify cases that can be done with several
1647         instructions via the direct move instructions.
1648         (rs6000_secondary_reload_move): New helper function for secondary
1649         reload to identify moves between register types that can be done.
1650         (rs6000_secondary_reload): Add support for quad memory operations
1651         and for direct move.
1652         (rs6000_secondary_memory_needed): Likewise.
1653         (rs6000_debug_secondary_memory_needed): Change argument names.
1654         (rs6000_output_move_128bit): New function to return the move to
1655         use for 128-bit moves, including knowing about the various
1656         limitations of quad memory operations.
1657
1658         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
1659         memory operations.  call rs6000_output_move_128bit for the actual
1660         instruciton(s) to generate.
1661         (vsx_movti_64bit): Likewise.
1662
1663         * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
1664         (UNSPEC_P8V_MTVSRWZ): Likewise.
1665         (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
1666         (UNSPEC_P8V_MTVSRD): Likewise.
1667         (UNSPEC_P8V_XXPERMDI): Likewise.
1668         (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
1669         (UNSPEC_FUSION_GPR): Likewise.
1670         (FMOVE128_GPR): New iterator for direct move.
1671         (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
1672         (f32_sv): Likewise.
1673         (f32_dm): Likewise.
1674         (zero_extend<mode>di2_internal1): Add support for power8 32-bit
1675         loads and direct move instructions.
1676         (zero_extendsidi2_lfiwzx): Likewise.
1677         (extendsidi2_lfiwax): Likewise.
1678         (extendsidi2_nocell): Likewise.
1679         (floatsi<mode>2_lfiwax): Likewise.
1680         (lfiwax): Likewise.
1681         (floatunssi<mode>2_lfiwzx): Likewise.
1682         (lfiwzx): Likewise.
1683         (fix_trunc<mode>_stfiwx): Likewise.
1684         (fixuns_trunc<mode>_stfiwx): Likewise.
1685         (mov<mode>_hardfloat, 32-bit floating point): Likewise.
1686         (mov<move>_hardfloat64, 64-bit floating point): Likewise.
1687         (parity<mode>2_cmpb): Set length/type attr.
1688         (unnamed shift right patterns, mov<mode>_internal2): Change type attr
1689         for 'mr.' to fast_compare.
1690         (bpermd_<mode>): Change type attr to popcnt.
1691         (p8_fmrgow_<mode>): New insns for power8 direct move support.
1692         (p8_mtvsrwz_1): Likewise.
1693         (p8_mtvsrwz_2): Likewise.
1694         (reload_fpr_from_gpr<mode>): Likewise.
1695         (p8_mtvsrd_1): Likewise.
1696         (p8_mtvsrd_2): Likewise.
1697         (p8_xxpermdi_<mode>): Likewise.
1698         (reload_vsx_from_gpr<mode>): Likewise.
1699         (reload_vsx_from_gprsf): Likewise.
1700         (p8_mfvsrd_3_<mode>): LIkewise.
1701         (reload_gpr_from_vsx<mode>): Likewise.
1702         (reload_gpr_from_vsxsf): Likewise.
1703         (p8_mfvsrd_4_disf): Likewise.
1704         (multi-word GPR splits): Do not split direct moves or quad memory
1705         operations.
1706
1707 2013-06-10  David Malcolm  <dmalcolm@redhat.com>
1708
1709         * tree-into-ssa.c (interesting_blocks): Make static.
1710
1711 2013-06-10  Jakub Jelinek  <jakub@redhat.com>
1712
1713         PR target/56564
1714         * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
1715         CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
1716         Use DATA_ABI_ALIGNMENT for that case instead if defined.
1717         (get_variable_align): New function.
1718         (get_variable_section, emit_bss, emit_common,
1719         assemble_variable_contents, place_block_symbol): Use
1720         get_variable_align instead of DECL_ALIGN.
1721         (assemble_noswitch_variable): Add align argument, use it
1722         instead of DECL_ALIGN.
1723         (assemble_variable): Adjust caller.  Use get_variable_align
1724         instead of DECL_ALIGN.
1725         * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
1726         caller.
1727         (DATA_ABI_ALIGNMENT): Define.
1728         * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
1729         * config/i386/i386.c (x86_data_alignment): Add opt argument.  If
1730         opt is false, only return the psABI mandated alignment increase.
1731         * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
1732         (DATA_ABI_ALIGNMENT): ... this.
1733         * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
1734         (DATA_ABI_ALIGNMENT): ... this.
1735         * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
1736         * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
1737         (DATA_ABI_ALIGNMENT): ... this.
1738         * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
1739         * doc/tm.texi: Regenerated.
1740
1741 2013-06-10  Uros Bizjak  <ubizjak@gmail.com>
1742
1743         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
1744         cmp_code to construct REG_EQUAL note.
1745
1746 2013-06-09  Jakub Jelinek  <jakub@redhat.com>
1747
1748         PR target/57568
1749         * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
1750         that operands[2] doesn't overlap with operands[0].
1751
1752 2013-06-09  David Edelsohn  <dje.gcc@gmail.com>
1753             Jan Hubicka  <jh@suse.cz>
1754
1755         * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
1756         hack to mark symbols as used.
1757
1758 2013-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1759
1760         PR rtl-optimization/57559
1761         * lra-constraints.c (process_alt_operands): Don't discourage
1762         memory with known offset for offsetable memory constraint.
1763         * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
1764
1765 2013-06-08  Eric Botcazou  <ebotcazou@adacore.com>
1766
1767         * varasm.c (struct oc_local_state): Reorder fields.
1768         (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
1769         and adjust accordingly.
1770         (output_constructor): Reorder initialization code and adjust call to
1771         output_constructor_bitfield.
1772
1773 2013-06-07  Jan Hubicka  <jh@suse.cz>
1774
1775         * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
1776
1777 2013-06-07  David Malcolm  <dmalcolm@redhat.com>
1778
1779         * tree-object-size.c (unknown): Make const.
1780
1781 2013-06-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1782
1783         * config/s390/s390.md (cpu_facility): Add cpu_zarch.
1784         ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
1785         for last alternative in the cpu_facility attribute.
1786
1787 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1788
1789         PR target/56315
1790         * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
1791         (xordi3): Change operand 2 constraint to arm_xordi_operand.
1792         * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
1793         * config/arm/constraints.md (Dg): New constraint.
1794         * config/arm/neon.md (xordi3_neon): Remove.
1795         (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
1796         * config/arm/predicates.md (arm_xordi_operand): New predicate.
1797
1798 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1799
1800         * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
1801         Clean up alternatives.
1802
1803 2013-06-07  Alan Modra  <amodra@gmail.com>
1804
1805         * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
1806         va_list_gpr_size.
1807
1808 2013-06-07  Alan Modra  <amodra@gmail.com>
1809
1810         * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
1811
1812 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1813
1814         * config/arm/constraints.md (Df): New constraint.
1815         * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
1816         Correct length attribute for last two alternatives.
1817
1818 2013-06-07  Alan Modra  <amodra@gmail.com>
1819
1820         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1821         override user -mfp-in-toc.
1822         (offsettable_ok_by_alignment): Consider just the current access
1823         rather than the whole object, unless BLKmode.  Handle
1824         CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
1825         (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
1826         for -mcmodel=medium.
1827         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
1828         override user -mfp-in-toc or -msum-in-toc.  Default to
1829         -mno-fp-in-toc for -mcmodel=medium.
1830
1831 2013-06-06  DJ Delorie  <dj@redhat.com>
1832
1833         * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
1834         TARGET_VALID_POINTER_MODE.
1835
1836 2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1837             Pat Haugen <pthaugen@us.ibm.com>
1838             Peter Bergner <bergner@vnet.ibm.com>
1839
1840         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1841         Document new power8 builtins.
1842
1843         * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
1844         condition code register, to allow 128-bit logical operations to be
1845         done in the VSX or GPR registers.
1846         (nor<mode>3): Use the canonical form for nor.
1847         (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
1848         vclz*, and vpopcnt* vector instructions.
1849         (nand<mode>3): Likewise.
1850         (orc<mode>3): Likewise.
1851         (clz<mode>2): LIkewise.
1852         (popcount<mode>2): Likewise.
1853
1854         * config/rs6000/predicates.md (int_reg_operand): Rework tests so
1855         that only the GPRs are recognized.
1856
1857         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1858         support for new power8 builtins.
1859
1860         * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
1861         builtin functions.
1862         (xscvdpspn): Likewise.
1863         (vclz): Likewise.
1864         (vclzb): Likewise.
1865         (vclzh): Likewise.
1866         (vclzw): Likewise.
1867         (vclzd): Likewise.
1868         (vpopcnt): Likewise.
1869         (vpopcntb): Likewise.
1870         (vpopcnth): Likewise.
1871         (vpopcntw): Likewise.
1872         (vpopcntd): Likewise.
1873         (vgbbd): Likewise.
1874         (vmrgew): Likewise.
1875         (vmrgow): Likewise.
1876         (eqv): Likewise.
1877         (eqv_v16qi3): Likewise.
1878         (eqv_v8hi3): Likewise.
1879         (eqv_v4si3): Likewise.
1880         (eqv_v2di3): Likewise.
1881         (eqv_v4sf3): Likewise.
1882         (eqv_v2df3): Likewise.
1883         (nand): Likewise.
1884         (nand_v16qi3): Likewise.
1885         (nand_v8hi3): Likewise.
1886         (nand_v4si3): Likewise.
1887         (nand_v2di3): Likewise.
1888         (nand_v4sf3): Likewise.
1889         (nand_v2df3): Likewise.
1890         (orc): Likewise.
1891         (orc_v16qi3): Likewise.
1892         (orc_v8hi3): Likewise.
1893         (orc_v4si3): Likewise.
1894         (orc_v2di3): Likewise.
1895         (orc_v4sf3): Likewise.
1896         (orc_v2df3): Likewise.
1897
1898         * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
1899         allow power8 quad mode in 64-bit.
1900         (rs6000_builtin_vectorized_function): Add support to vectorize
1901         ISA 2.07 count leading zeros, population count builtins.
1902         (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
1903         V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
1904         (builtin_function_type): Add vgbbd builtin function which takes an
1905         unsigned argument.
1906         (altivec_expand_vec_perm_const): Add support for new power8 merge
1907         instructions.
1908
1909         * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
1910         that does not include TImdoe for use with 32-bit.
1911         (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
1912         instructions.
1913         (UNSPEC_VSX_CVDPSPN): Likewise.
1914         (vsx_xscvdpspn): Likewise.
1915         (vsx_xscvspdpn): Likewise.
1916         (vsx_xscvdpspn_scalar): Likewise.
1917         (vsx_xscvspdpn_directmove): Likewise.
1918         (vsx_and<mode>3): Split logical operations into 32-bit and
1919         64-bit. Add support to do logical operations on TImode as well as
1920         VSX vector types.  Allow logical operations to be done in either
1921         VSX registers or in general purpose registers in 64-bit mode.  Add
1922         splitters if GPRs were used. For AND, add clobber of CCmode to
1923         allow use of ANDI on GPRs.  Rewrite nor to use the canonical RTL
1924         encoding.
1925         (vsx_and<mode>3_32bit): Likewise.
1926         (vsx_and<mode>3_64bit): Likewise.
1927         (vsx_ior<mode>3): Likewise.
1928         (vsx_ior<mode>3_32bit): Likewise.
1929         (vsx_ior<mode>3_64bit): Likewise.
1930         (vsx_xor<mode>3): Likewise.
1931         (vsx_xor<mode>3_32bit): Likewise.
1932         (vsx_xor<mode>3_64bit): Likewise.
1933         (vsx_one_cmpl<mode>2): Likewise.
1934         (vsx_one_cmpl<mode>2_32bit): Likewise.
1935         (vsx_one_cmpl<mode>2_64bit): Likewise.
1936         (vsx_nor<mode>3): Likewise.
1937         (vsx_nor<mode>3_32bit): Likewise.
1938         (vsx_nor<mode>3_64bit): Likewise.
1939         (vsx_andc<mode>3): Likewise.
1940         (vsx_andc<mode>3_32bit): Likewise.
1941         (vsx_andc<mode>3_64bit): Likewise.
1942         (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
1943         and xxlorc instructions.
1944         (vsx_eqv<mode>3_64bit): Likewise.
1945         (vsx_nand<mode>3_32bit): Likewise.
1946         (vsx_nand<mode>3_64bit): Likewise.
1947         (vsx_orc<mode>3_32bit): Likewise.
1948         (vsx_orc<mode>3_64bit): Likewise.
1949
1950         * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
1951
1952         * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
1953         instruction.
1954         (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
1955         (p8_vmrgow): Likewise.
1956         (altivec_and<mode>3): Add clobber of CCmode to allow AND using
1957         GPRs to be split under VSX.
1958         (p8v_clz<mode>2): Add power8 count leading zero support.
1959         (p8v_popcount<mode>2): Add power8 population count support.
1960         (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
1961         support.
1962
1963         * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
1964         instruction.
1965
1966         * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
1967         builtin functions.
1968         (vec_nand): Likewise.
1969         (vec_vclz): Likewise.
1970         (vec_vclzb): Likewise.
1971         (vec_vclzd): Likewise.
1972         (vec_vclzh): Likewise.
1973         (vec_vclzw): Likewise.
1974         (vec_vgbbd): Likewise.
1975         (vec_vmrgew): Likewise.
1976         (vec_vmrgow): Likewise.
1977         (vec_vpopcnt): Likewise.
1978         (vec_vpopcntb): Likewise.
1979         (vec_vpopcntd): Likewise.
1980         (vec_vpopcnth): Likewise.
1981         (vec_vpopcntw): Likewise.
1982
1983 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
1984
1985         PR rtl-optimization/57468
1986         * config/i386/i386.c (inline_secondary_memory_needed): Ignore
1987         spilled pseudos.
1988
1989 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
1990
1991         PR rtl-optimization/57459
1992         * lra-constraints.c (update_ebb_live_info): Fix typo for operand
1993         type when setting live regs.
1994
1995 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
1996
1997         * config/s390/s390.opt (mlra): New option.
1998         * config/s390/s390.c (s390_decompose_address): Check displacement
1999         for all registers for LRA.
2000         (s390_secondary_reload): Don't used secondary reloads for LRA.
2001         (s390_lra_p): New function.
2002         (TARGET_LRA_P): Define.
2003         * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
2004         of attribute cpu_facility to zarch for the last alternative.
2005         (*cmpmem_short): Ditto.
2006
2007 2013-06-06  Eric Botcazou  <ebotcazou@adacore.com>
2008
2009         * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
2010         (arm_compute_static_chain_stack_bytes): Use it.  Tidy up.
2011         (arm_expand_prologue): Likewise.
2012
2013 2013-06-06  Teresa Johnson  <tejohnson@google.com>
2014
2015         PR c++/53743
2016         * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
2017         as this is now done by redirect_edge_and_branch_force.
2018         * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
2019         barriers, and fix interaction with splitting.
2020         * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
2021         * cfgcleanup.c (try_forward_edges): Fix early return value to properly
2022         reflect changes made in the routine.
2023         * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
2024         (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
2025         since this is called in cfglayout mode, and replace partition fixup
2026         with assert as that is now done by force_nonfallthru_and_redirect.
2027         (add_reg_crossing_jump_notes): Handle the fact that some jumps may
2028         already be marked with region crossing note.
2029         (insert_section_boundary_note): Make non-static, gate on flag
2030         has_bb_partition, rewrite to also check for multiple partitions.
2031         (rest_of_handle_reorder_blocks): Remove call to
2032         insert_section_boundary_note, now done later during free_cfg.
2033         (duplicate_computed_gotos): Don't duplicate partition crossing edge.
2034         * bb-reorder.h (insert_section_boundary_note): Declare.
2035         * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
2036         * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
2037         invoke insert_section_boundary_note.
2038         (try_redirect_by_replacing_jump): Remove unnecessary
2039         check for region crossing note.
2040         (fixup_partition_crossing): New function.
2041         (rtl_redirect_edge_and_branch): Fixup partition boundaries.
2042         (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
2043         in non-cfglayout mode.
2044         (force_nonfallthru_and_redirect): Fixup partition boundaries,
2045         remove old code that tried to do this. Emit barrier correctly
2046         when we are in cfglayout mode.
2047         (last_bb_in_partition): New function.
2048         (rtl_split_edge): Correctly fixup partition boundaries.
2049         (commit_one_edge_insertion): Remove old code that tried to
2050         fixup region crossing edge since this is now handled in
2051         split_block, and set up insertion point correctly since
2052         block may now end in a jump.
2053         (verify_hot_cold_block_grouping): Guard against checking when not in
2054         linearized RTL mode.
2055         (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
2056         notes.
2057         (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
2058         rtl_verify_flow_info, so not called in cfglayout mode.
2059         (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
2060         (fixup_reorder_chain): Remove old code that attempted to fixup region
2061         crossing note as this is now handled in force_nonfallthru_and_redirect.
2062         (duplicate_insn_chain): Don't duplicate switch section notes.
2063         (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
2064         note.
2065         * basic-block.h (emit_barrier_after_bb): Declare.
2066
2067 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2068
2069         * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
2070         sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
2071         arm_usatsihi): Adjust alternatives for arm_restrict_it.
2072
2073 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2074
2075         * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
2076         where appropriate.
2077         * config/arm/ldmstm.md: Regenerate.
2078
2079 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2080
2081         * config/arm/sync.md (atomic_loaddi_1):
2082         Disable predication for arm_restrict_it.
2083         (arm_load_exclusive<mode>): Likewise.
2084         (arm_load_exclusivesi): Likewise.
2085         (arm_load_exclusivedi): Likewise.
2086         (arm_load_acquire_exclusive<mode>): Likewise.
2087         (arm_load_acquire_exclusivesi): Likewise.
2088         (arm_load_acquire_exclusivedi): Likewise.
2089         (arm_store_exclusive<mode>): Likewise.
2090         (arm_store_exclusive<mode>): Likewise.
2091         (arm_store_release_exclusivedi): Likewise.
2092         (arm_store_release_exclusive<mode>): Likewise.
2093
2094 2013-06-06  Richard Biener  <rguenther@suse.de>
2095
2096         * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
2097         after LTO_null.
2098         (lto_tag_is_tree_code_p): Adjust.
2099         (lto_tag_is_gimple_code_p): Likewise.
2100         (lto_gimple_code_to_tag): Likewise.
2101         (lto_tag_to_gimple_code): Likewise.
2102         (lto_tree_code_to_tag): Likewise.
2103         (lto_tag_to_tree_code): Likewise.
2104         * data-streamer.h (streamer_write_hwi_in_range): Use
2105         uhwi streaming to stream the normalized range.
2106         (streamer_read_hwi_in_range): Likewise.
2107
2108 2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2109
2110         * config/arm/arm.md (enabled_for_depr_it): New attribute.
2111         (predicable_short_it): Likewise.
2112         (predicated): Likewise.
2113         (enabled): Handle above.
2114         (define_cond_exec): Set predicated attribute to yes.
2115
2116 2013-06-05  Mike Stump  <mikestump@comcast.net>
2117
2118         * gdbinit.in (__FUNCTION__): Add.
2119
2120 2013-06-05  Uros Bizjak  <ubizjak@gmail.com>
2121
2122         * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
2123         GE, GT, GEU and GTU compares, modulo DImode compares with zero.
2124
2125 2013-06-05  Jan Hubicka  <jh@suse.cz>
2126
2127         * varasm.c (mark_decl_referenced): Revert the removal until targets
2128         are fixed.
2129
2130 2013-06-05  David Edelsohn  <dje.gcc@gmail.com>
2131
2132         * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
2133         instead of mark_decl_referenced.
2134
2135 2013-06-05  Jan Hubicka  <jh@suse.cz>
2136
2137         * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
2138         (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
2139         and symtab_used_from_object_file_p.
2140         (cgraph_make_node_local_1): Clear forced_by_abi.
2141         (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
2142         * cgraph.h (symtab_node_base): Add forced_by_abi.
2143         (decide_is_variable_needed): Remove.
2144         (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
2145         * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
2146         (decide_is_symbol_needed): ... this one; handle symbols in general;
2147         always analyze virtuals; honnor forced_by_abi.
2148         (cgraph_finalize_function): Update.
2149         (varpool_finalize_decl): Update.
2150         (symbol_defined_and_needed): Remove.
2151         (analyze_functions): Update.
2152         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
2153         output_refs, input_overwrite_node): Handle forced_by_abi.
2154         * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
2155         (address_taken_from_non_vtable_p): ... this one.
2156         (comdat_can_be_unshared_p_1): New function.
2157         (cgraph_comdat_can_be_unshared_p): Rename to ...
2158         (comdat_can_be_unshared_p): ... this one; handle symbols in general.
2159         (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
2160         (function_and_variable_visibility): Clear forced_by_abi as needed.
2161         * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
2162         (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
2163         * symtab.c (dump_symtab_base): Dump forced_by_abi.
2164         * varpool.c (decide_is_variable_needed): Remove.
2165
2166 2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2167
2168         * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
2169         (arm_option_override): Override arm_restrict_it where appropriate.
2170         (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
2171         * config/arm/arm.opt (mrestrict-it): New command-line option.
2172         * doc/invoke.texi: Document -mrestrict-it.
2173
2174 2013-06-05  David Malcolm  <dmalcolm@redhat.com>
2175
2176         * tsan.c (tsan_atomic_table): Make const.
2177
2178 2013-06-05  Richard Biener  <rguenther@suse.de>
2179
2180         * tree-streamer.c (streamer_tree_cache_insert_1): Update the
2181         index associated with the tree we are supposed to replace.
2182         * tree-streamer-out.c (pack_ts_base_value_fields): Output
2183         TREE_ASM_WRITTEN as zero for everything but SSA names.
2184
2185 2013-06-05  David Malcolm  <dmalcolm@redhat.com>
2186
2187         * tree-ssa-structalias.c (call_stmt_vars): Make static.
2188
2189 2013-06-04  Jan Hubicka  <jh@suse.cz>
2190
2191         * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
2192         (input_node, input_varpool_node): Handle correctly external same
2193         body aliases.
2194         * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
2195         nodes at ltrans stage.
2196
2197 2013-06-04  Jan Hubicka  <jh@suse.cz>
2198
2199         * ipa-inline.c (update_caller_keys): Fix availability test.
2200         (update_callee_keys): Likewise.
2201         * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
2202         to follow ELF standard.
2203
2204 2013-06-04  Jürgen Urban  <JuergenUrban@gmx.de>
2205
2206         * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
2207         (mips64r5900el-*-elf*): New configurations.
2208         * config/mips/mips-cpus.def (r5900): New processor.
2209         * config/mips/mips-tables.opt: Regenerate.
2210         * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
2211         (mips_issue_rate): Handle PROCESSOR_R5900.
2212         (mips_reorg_process_insns): Force reorder mode for the R5900.
2213         * config/mips/mips.h (TARGET_MIPS5900): Define.
2214         (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
2215         TARGET_MIPS5900.
2216         (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
2217         TARGET_MIPS5900.
2218         * config/mips/mips.md (processor): Add r5900.
2219         (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
2220
2221 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
2222
2223         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
2224         into function to generate MOVI instruction.
2225         * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
2226         (aarch64_preferred_simd_mode): Turn into wrapper.
2227         (aarch64_output_scalar_simd_mov_immediate): New function.
2228         * config/aarch64/aarch64-protos.h: Add prototype for above.
2229
2230 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
2231
2232         * config/aarch64/aarch64.c (simd_immediate_info): Remove
2233         element_char member.
2234         (sizetochar): Return signed char.
2235         (aarch64_simd_valid_immediate): Remove elchar and other
2236         unnecessary variables.
2237         (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
2238         Calculate element_char as required.
2239         * config/aarch64/aarch64-protos.h: Update and move prototype
2240         for aarch64_output_simd_mov_immediate.
2241         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
2242         Update arguments.
2243
2244 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
2245
2246         * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
2247         information completed by aarch64_simd_valid_immediate.
2248         (aarch64_legitimate_constant_p): Update arguments.
2249         (aarch64_simd_valid_immediate): Work with struct rather than many
2250         pointers.
2251         (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
2252         (aarch64_simd_make_constant): Update arguments.
2253         (aarch64_output_simd_mov_immediate): Work with struct rather than
2254         many pointers.  Output immediate directly rather than as operand.
2255         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
2256         Update prototype.
2257         * config/aarch64/constraints.md (Dn): Update arguments.
2258
2259 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
2260
2261         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
2262         longer static.
2263         (aarch64_simd_immediate_valid_for_move): Remove.
2264         (aarch64_simd_scalar_immediate_valid_for_move): Update call.
2265         (aarch64_simd_make_constant): Update call.
2266         (aarch64_output_simd_mov_immediate): Update call.
2267         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
2268         Add prototype.
2269         * config/aarch64/constraints.md (Dn): Update call.
2270
2271 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
2272
2273         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
2274         return type to bool for prototype.
2275         (aarch64_legitimate_constant_p): Check for true instead of not -1.
2276         (aarch64_simd_valid_immediate): Fix up each return to return a bool.
2277         (aarch64_simd_immediate_valid_for_move): Update retval for bool.
2278
2279 2013-06-04  Catherine Moore  <clm@codesourcery.com>
2280
2281         * config/mips/mips.opt (meva): New.
2282         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
2283         (ASM_SPEC): Handle -meva.
2284         * doc/invoke.texi (meva):  Document.
2285
2286 2013-06-04  Alan Modra  <amodra@gmail.com>
2287
2288         * config/rs6000/rs6000.c (output_toc): Correct little-endian float
2289         constant output.
2290
2291 2013-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2292
2293         * rtl.def: Add extra fourth optional field to define_cond_exec.
2294         * gensupport.c (process_one_cond_exec): Process attributes from
2295         define_cond_exec.
2296         * doc/md.texi: Document fourth field in define_cond_exec.
2297
2298 2013-06-04  Eric Botcazou  <ebotcazou@adacore.com>
2299
2300         * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
2301         out the processing order as in store_bit_field_1.
2302
2303 2013-06-04  Jan Hubicka  <jh@suse.cz>
2304
2305         PR middle-end/57500
2306         * cgraphunit.c (cgraph_process_same_body_aliases): Create
2307         non-VAR_DECL node if it does not exist yet.
2308
2309 2013-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
2310
2311         * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
2312         (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
2313         (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
2314         target_cpu_default setting.
2315
2316 2013-06-03  Teresa Johnson  <tejohnson@google.com>
2317
2318         * dumpfile.c (opt_info_switch_p): Change -fopt-info
2319         default to -fopt-info=optimized instead of all.
2320         * doc/invoke.texi: Ditto.
2321         * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
2322         success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
2323         (execute_vect_slp): Emit BB vectorization success under
2324         MSG_OPTIMIZED_LOCATIONS.
2325         * tree-vect-slp.c (vect_slp_transform_bb): Change
2326         MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
2327         * tree-vect-loop.c (vect_transform_loop): Ditto.
2328
2329 2013-06-03  Jason Merrill  <jason@redhat.com>
2330
2331         PR c++/57415
2332         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2333         Use TARGET_EXPR for C++.
2334
2335 2013-06-03  Jakub Jelinek  <jakub@redhat.com>
2336
2337         PR rtl-optimization/57268
2338         * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
2339         if DEBUG_INSN_P (insn).
2340
2341         Reapply
2342         2013-05-31  Dinar Temirbulatov  <dinar@kugelworks.com>
2343
2344         PR rtl-optimization/57268
2345         * sched-deps.c (sched_analyze_2): Flush dependence lists if
2346         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
2347
2348 2013-06-03  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
2349
2350         * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
2351         (ix86_avoid_lea_for_addr): Likewise.
2352         (exact_dependency_1): Likewise.
2353         (ix86_adjust_cost): Likewise.
2354         (swap_top_of_ready_list): Fix formatting and !reload_completed check
2355         removed.
2356         (do_reorder_for_imul): Fix typo, formatting and
2357         !reload_completed check removed.
2358         (ix86_sched_reorder): Fix typo and formatting.
2359         (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
2360         list.
2361
2362 2013-06-03  Sofiane Naci  <sofiane.naci@arm.com>
2363
2364         * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
2365
2366 2013-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2367
2368         * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
2369         <STRING_CST>: Likewise.
2370         <VECTOR_CST>: Likewise.
2371
2372 2013-06-01  Janus Weil  <janus@gcc.gnu.org>
2373             Mikael Morin  <mikael@gcc.gnu.org>
2374
2375         * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
2376         * config.in: Regenerated.
2377         * configure: Regenerated.
2378
2379 2013-06-01  Jan Hubicka  <jh@suse.cz>
2380
2381         PR middle-end/57366
2382         * cgraphunit.c (compile): When weakref is not supported,
2383         set up transparent aliases before final output pass.
2384         * varasm.c (assemble_alias): Do not try to do it here.
2385
2386 2013-06-01  Jan Hubicka  <jh@suse.cz>
2387
2388         PR middle-end/57467
2389         * passes.c (for_per_function): Skip unanalyzed functions.
2390
2391 2013-06-01  Jan Hubicka  <jh@suse.cz>
2392
2393         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
2394         (lto_symtab_merge_symbols_1): ... this one.
2395         (lto_symtab_merge_cgraph_nodes): Rename to ...
2396         (lto_symtab_merge_symbols): ... this one; simplify.
2397         * cgraph.c (same_body_aliases_done): Rename to ...
2398         (cpp_implicit_aliases_done): ... this one.
2399         (cgraph_create_function_alias): Update.
2400         (cgraph_same_body_alias): Update.
2401         (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
2402         (verify_edge_corresponds_to_fndecl): Simplify.
2403         * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
2404         (cgraph_node): Remove same_body_alias.
2405         (varpool_node): Remove alias_of and extra_name_alias.
2406         (same_body_aliases_done): Rename to ..
2407         (cpp_implicit_aliases_done): ... this one.
2408         (symtab_alias_ultimate_target): Add default parameter.
2409         (symtab_resolve_alias): New function.
2410         (fixup_same_cpp_alias_visibility): Declare.
2411         (cgraph_function_node): Add default parameter.
2412         (cgraph_node_asm_name): Likewise.
2413         (cgraph_function_or_thunk_node): Add default parameter; do
2414         not ICE when it is NULL.
2415         (varpool_variable_node): Likewise.
2416         * tree-emutls.c (create_emultls_var): Update.
2417         (ipa_lower_emutls): Update.
2418         * cgraphunit.c (cgraph_decide_is_function_needed): Update.
2419         (cgraph_reset_node): Reset alias info.
2420         (cgraph_finalize_function): Update.
2421         (fixup_same_cpp_alias_visibility): Move to symtab.c.
2422         (analyze_function): Simplify.
2423         (cgraph_process_same_body_aliases): Simplify.
2424         (analyze_functions): Fixup same body aliases.
2425         (handle_alias_pairs): Simplify.
2426         (assemble_thunk): Update.
2427         (assemble_thunks_and_aliases): Update.
2428         (output_weakrefs): Rewrite.
2429         * lto-cgraph.c (lto_output_node): Rewrite alias handling.
2430         (lto_output_varpool_node): Likewise.
2431         (compute_ltrans_boundary): Remve assert.
2432         (get_alias_symbol): New functoin.
2433         (input_node): Rewrite alias handling.
2434         (input_varpool_node): Likewise.
2435         * ipa-pure-const.c (propagate_pure_const): Fix formating.
2436         * ipa.c (process_references): Handle weakrefs correctly.
2437         (symtab_remove_unreachable_nodes): Likewise.
2438         * trans-mem.c (get_cg_data): Update.
2439         (ipa_tm_create_version_alias): Update.
2440         (ipa_tm_execute): Update.
2441         * symtab.c (dump_symtab_base): Dump aliases.
2442         (verify_symtab_base): Verify aliases.
2443         (symtab_node_availability): New function.
2444         (symtab_alias_ultimate_target): Simplify.
2445         (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
2446         handle all the fixup cases.
2447         (symtab_resolve_alias): New function.
2448         * passes.c (ipa_write_summaries): Handle weakrefs.
2449         * varpool.c (varpool_analyze_node): Simplify.
2450         (assemble_aliases): Update.
2451         (varpool_create_variable_alias): Simplify.
2452         (varpool_extra_name_alias): Simplify.
2453         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
2454         (lto_symtab_merge_symbols): ... this one.
2455
2456 2013-06-01  Dinar Temirbulatov  <dinar@kugelworks.com>
2457
2458         Revert
2459         PR rtl-optimization/57268
2460         * sched-deps.c (sched_analyze_2): Flush dependence lists if
2461         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
2462
2463 2013-06-01  Tobias Burnus  <burnus@net-b.de>
2464
2465         Partially reverted:
2466         2013-05-31  Tobias Burnus  <burnus@net-b.de>
2467
2468         PR middle-end/57073
2469         * tree-ssa-math-opts.c (execute_cse_sincos): Move check
2470         further up.
2471
2472 2013-05-31  Dinar Temirbulatov  <dinar@kugelworks.com>
2473
2474         PR rtl-optimization/57268
2475         * sched-deps.c (sched_analyze_2): Flush dependence lists if
2476         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
2477
2478 2013-05-31  Eric Botcazou  <ebotcazou@adacore.com>
2479
2480         * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
2481         unordered comparison operators when -fno-trapping-math is in effect
2482         on the e500.
2483         * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
2484         and implement unordered comparison operators properly on the e500.
2485
2486 2013-05-31  Eric Botcazou  <ebotcazou@adacore.com>
2487
2488         * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
2489         for constant scalar integers.
2490         (simplify_relational_operation_1): Likewise.
2491
2492 2013-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
2493
2494         * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
2495         * config/rs6000/rs6000.md (cpu): Reorder.  Split long line.
2496         Fix comment.
2497
2498 2013-05-31  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
2499             Igor Zamyatin  <igor.zamyatin@intel.com>
2500
2501         Silvermont (SLM) architecture performance tuning.
2502         * config/i386/i386.h (enum ix86_tune_indices): Add
2503         X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
2504         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
2505
2506         * config/i386/i386.c (initial_ix86_tune_features)
2507         <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
2508         (ix86_lea_outperforms): Handle Silvermont tuning.
2509         (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
2510         call.
2511         (ix86_use_lea_for_mov): Likewise.
2512         (ix86_avoid_lea_for_addr): Likewise.
2513         (ix86_lea_for_add_ok): Likewise.
2514         (exact_dependency_1): New function.
2515         (exact_store_load_dependency): Likewise.
2516         (ix86_adjust_cost): Handle Silvermont tuning.
2517         (do_reoder_for_imul): Likewise.
2518         (swap_top_of_ready_list): New function.
2519         (ix86_sched_reorder): Changed to handle Silvermont tuning.
2520
2521         * config/i386/i386.md (peepholes that split memory operand in fp
2522         converts): New.
2523
2524 2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2525
2526         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
2527         Remove un-necessary braces.
2528
2529 2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2530
2531         * config/aarch64/aarch64.c (aarch64_classify_symbol):
2532         Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
2533
2534 2013-05-31  Tobias Burnus  <burnus@net-b.de>
2535
2536         PR middle-end/57073
2537         * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
2538
2539 2013-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2540
2541         PR target/56315
2542         * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
2543         * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
2544         * config/arm/neon.md (iordi3_neon): Remove.
2545         (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
2546         * config/arm/predicates.md (imm_for_neon_logic_operand):
2547         Move to earlier in the file.
2548         (neon_logic_op2): Likewise.
2549         (arm_iordi_operand_neon): New predicate.
2550
2551 2013-05-31  Richard Biener  <rguenther@suse.de>
2552
2553         PR tree-optimization/57478
2554         PR tree-optimization/57453
2555         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
2556         are life as well.
2557
2558 2013-05-31  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2559
2560         * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
2561         (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
2562
2563 2013-05-30  Tobias Burnus  <burnus@net-b.de>
2564             Thomas Koenig  <tkoenig@gcc.gnu.org>
2565
2566         PR middle-end/57073
2567         * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
2568         powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
2569
2570 2013-05-30  Steven Bosscher  <steven@gcc.gnu.org>
2571
2572         * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
2573
2574 2013-05-30  Vladimir Makarov  <vmakarov@redhat.com>
2575
2576         * target.def (register_usage_leveling_p): New hook.
2577         * targhooks.c (default_register_usage_leveling_p): New.
2578         * targhooks.h (default_register_usage_leveling_p): New prototype.
2579         * lra-assigns.c (register_usage_leveling_p): Use the hook.
2580         * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
2581         * doc/tm.texi: Update.
2582         * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
2583
2584 2013-05-30  Ian Bolton  <ian.bolton@arm.com>
2585
2586         * config/aarch64/aarch64.md (insv<mode>): New define_expand.
2587         (*insv_reg<mode>): New define_insn.
2588
2589 2013-05-30  Joern Rennecke <joern.rennecke@embecosm.com>
2590
2591         PR rtl-optimization/57439
2592         * postreload.c (move2add_valid_value_p): Check that we have
2593         a zero subreg_regno_offset when accessing the register in
2594         the requested mode.
2595
2596 2013-05-30  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
2597             Igor Zamyatin  <igor.zamyatin@intel.com>
2598
2599         Silvermont (SLM) architecture pipeline model, tuning and
2600         insn selection.
2601         * config.gcc: Add slm config options and target.
2602
2603         * config/i386/slm.md: New.
2604
2605         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2606
2607         * gcc/config/i386/i386-c.c (ix86_target_macros_internal):  New case
2608         PROCESSOR_SLM.
2609         (ix86_target_macros_internal): Likewise.
2610
2611         * gcc/config/i386/i386.c (slm_cost): New cost.
2612         (m_SLM): New macro flag.
2613         (initial_ix86_tune_features): Set m_SLM.
2614         (x86_accumulate_outgoing_args): Likewise.
2615         (x86_arch_always_fancy_math_387): Likewise.
2616         (processor_target_table): Add slm cost.
2617         (cpu_names): Add slm cpu name.
2618         (x86_option_override_internal): Set SLM ISA.
2619         (ix86_issue_rate): New case PROCESSOR_SLM.
2620         (ia32_multipass_dfa_lookahead): Likewise.
2621         (fold_builtin_cpu): Add slm.
2622
2623         * config/i386/i386.h (TARGET_SLM): New target macro.
2624         (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
2625         (processor_type): Add PROCESSOR_SLM.
2626
2627         * config/i386/i386.md (cpu): Add new value "slm".
2628         (slm.md): Include slm.md.
2629
2630 2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
2631             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2632
2633         * config/arm/arm-protos.h: Add and update function protos.
2634         * config/arm/arm.c (use_simple_return_p): New added.
2635         (thumb2_expand_return): Check simple_return flag.
2636         * config/arm/arm.md: Add simple_return and conditional simple_return.
2637         * config/arm/iterators.md: Add iterator for return and simple_return.
2638
2639 2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2640
2641         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
2642         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
2643         (arm_emit_vfp_multi_reg_pop): Likewise.
2644         (thumb2_emit_ldrd_pop): Likewise.
2645         (arm_expand_epilogue): Add misc REG_CFA notes.
2646         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
2647
2648 2013-05-29  Lawrence Crowl  <crowl@google.com>
2649
2650         * config/arm/t-arm: Update for below.
2651
2652         * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
2653         Change type to hash_table.  Update dependent calls and types.
2654
2655         * config/i386/t-cygming: Update for below.
2656
2657         * config/i386/t-interix: Update for below.
2658
2659         * config/i386/winnt.c (i386_pe_section_type_flags::htab):
2660         Change type to hash_table.  Update dependent calls and types.
2661         (i386_find_on_wrapper_list::wrappers): Likewise.
2662
2663         * config/ia64/t-ia64: Update for below.
2664
2665         * config/ia64/ia64.c (bundle_state_table):
2666         Change type to hash_table.  Update dependent calls and types.
2667
2668         * config/mips/mips.c (mips_reorg_process_insns::htab):
2669         Change type to hash_table.  Update dependent calls and types.
2670
2671         * config/sol2.c (solaris_comdat_htab):
2672         Change type to hash_table.  Update dependent calls and types.
2673
2674         * config/t-sol2: Update for above.
2675
2676 2013-05-29  Teresa Johnson  <tejohnson@google.com>
2677
2678         * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
2679         functions are not yet marked as defined.
2680
2681 2013-05-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
2682             Pat Haugen <pthaugen@us.ibm.com>
2683             Peter Bergner <bergner@vnet.ibm.com>
2684
2685         * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
2686         instructions.
2687         (VEC_A): Likewise.
2688         (VEC_C): Likewise.
2689         (vrotl<mode>3): Likewise.
2690         (vashl<mode>3): Likewise.
2691         (vlshr<mode>3): Likewise.
2692         (vashr<mode>3): Likewise.
2693
2694         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2695         support for power8 V2DI builtins.
2696
2697         * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
2698         power8 V2DI builtins.
2699         (vupkhsw): Likewise.
2700         (vupklsw): Likewise.
2701         (vaddudm): Likewise.
2702         (vminsd): Likewise.
2703         (vmaxsd): Likewise.
2704         (vminud): Likewise.
2705         (vmaxud): Likewise.
2706         (vpkudum): Likewise.
2707         (vpksdss): Likewise.
2708         (vpkudus): Likewise.
2709         (vpksdus): Likewise.
2710         (vrld): Likewise.
2711         (vsld): Likewise.
2712         (vsrd): Likewise.
2713         (vsrad): Likewise.
2714         (vsubudm): Likewise.
2715         (vcmpequd): Likewise.
2716         (vcmpgtsd): Likewise.
2717         (vcmpgtud): Likewise.
2718         (vcmpequd_p): Likewise.
2719         (vcmpgtsd_p): Likewise.
2720         (vcmpgtud_p): Likewise.
2721         (vupkhsw): Likewise.
2722         (vupklsw): Likewise.
2723         (vaddudm): Likewise.
2724         (vmaxsd): Likewise.
2725         (vmaxud): Likewise.
2726         (vminsd): Likewise.
2727         (vminud): Likewise.
2728         (vpksdss): Likewise.
2729         (vpksdus): Likewise.
2730         (vpkudum): Likewise.
2731         (vpkudus): Likewise.
2732         (vrld): Likewise.
2733         (vsld): Likewise.
2734         (vsrad): Likewise.
2735         (vsrd): Likewise.
2736         (vsubudm): Likewise.
2737
2738         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2739         support for power8 V2DI instructions.
2740
2741         * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
2742         power8 V2DI instructions.  Combine pack and unpack insns to use an
2743         iterator for each mode.  Check whether a particular mode supports
2744         Altivec instructions instead of just checking TARGET_ALTIVEC.
2745         (UNSPEC_VPKUWUM): Likewise.
2746         (UNSPEC_VPKSHSS): Likewise.
2747         (UNSPEC_VPKSWSS): Likewise.
2748         (UNSPEC_VPKUHUS): Likewise.
2749         (UNSPEC_VPKSHUS): Likewise.
2750         (UNSPEC_VPKUWUS): Likewise.
2751         (UNSPEC_VPKSWUS): Likewise.
2752         (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
2753         (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
2754         (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
2755         (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
2756         (UNSPEC_VUPKHSB): Likewise.
2757         (UNSPEC_VUNPACK_HI_SIGN): Likewise.
2758         (UNSPEC_VUNPACK_LO_SIGN): Likewise.
2759         (UNSPEC_VUPKHSH): Likewise.
2760         (UNSPEC_VUPKLSB): Likewise.
2761         (UNSPEC_VUPKLSH): Likewise.
2762         (VI2): Likewise.
2763         (VI_char): Likewise.
2764         (VI_scalar): Likewise.
2765         (VI_unit): Likewise.
2766         (VP): Likewise.
2767         (VP_small): Likewise.
2768         (VP_small_lc): Likewise.
2769         (VU_char): Likewise.
2770         (add<mode>3): Likewise.
2771         (altivec_vaddcuw): Likewise.
2772         (altivec_vaddu<VI_char>s): Likewise.
2773         (altivec_vadds<VI_char>s): Likewise.
2774         (sub<mode>3): Likewise.
2775         (altivec_vsubcuw): Likewise.
2776         (altivec_vsubu<VI_char>s): Likewise.
2777         (altivec_vsubs<VI_char>s): Likewise.
2778         (altivec_vavgs<VI_char>): Likewise.
2779         (altivec_vcmpbfp): Likewise.
2780         (altivec_eq<mode>): Likewise.
2781         (altivec_gt<mode>): Likewise.
2782         (altivec_gtu<mode>): Likewise.
2783         (umax<mode>3): Likewise.
2784         (smax<mode>3): Likewise.
2785         (umin<mode>3): Likewise.
2786         (smin<mode>3): Likewise.
2787         (altivec_vpkuhum): Likewise.
2788         (altivec_vpkuwum): Likewise.
2789         (altivec_vpkshss): Likewise.
2790         (altivec_vpkswss): Likewise.
2791         (altivec_vpkuhus): Likewise.
2792         (altivec_vpkshus): Likewise.
2793         (altivec_vpkuwus): Likewise.
2794         (altivec_vpkswus): Likewise.
2795         (altivec_vpks<VI_char>ss): Likewise.
2796         (altivec_vpks<VI_char>us): Likewise.
2797         (altivec_vpku<VI_char>us): Likewise.
2798         (altivec_vpku<VI_char>um): Likewise.
2799         (altivec_vrl<VI_char>): Likewise.
2800         (altivec_vsl<VI_char>): Likewise.
2801         (altivec_vsr<VI_char>): Likewise.
2802         (altivec_vsra<VI_char>): Likewise.
2803         (altivec_vsldoi_<mode>): Likewise.
2804         (altivec_vupkhsb): Likewise.
2805         (altivec_vupkhs<VU_char>): Likewise.
2806         (altivec_vupkls<VU_char>): Likewise.
2807         (altivec_vupkhsh): Likewise.
2808         (altivec_vupklsb): Likewise.
2809         (altivec_vupklsh): Likewise.
2810         (altivec_vcmpequ<VI_char>_p): Likewise.
2811         (altivec_vcmpgts<VI_char>_p): Likewise.
2812         (altivec_vcmpgtu<VI_char>_p): Likewise.
2813         (abs<mode>2): Likewise.
2814         (vec_unpacks_hi_v16qi): Likewise.
2815         (vec_unpacks_hi_v8hi): Likewise.
2816         (vec_unpacks_lo_v16qi): Likewise.
2817         (vec_unpacks_hi_<VP_small_lc>): Likewise.
2818         (vec_unpacks_lo_v8hi): Likewise.
2819         (vec_unpacks_lo_<VP_small_lc>): Likewise.
2820         (vec_pack_trunc_v8h): Likewise.
2821         (vec_pack_trunc_v4si): Likewise.
2822         (vec_pack_trunc_<mode>): Likewise.
2823
2824         * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
2825         V2DI builtins.
2826         (vec_vmaxsd): Likewise.
2827         (vec_vmaxud): Likewise.
2828         (vec_vminsd): Likewise.
2829         (vec_vminud): Likewise.
2830         (vec_vpksdss): Likewise.
2831         (vec_vpksdus): Likewise.
2832         (vec_vpkudum): Likewise.
2833         (vec_vpkudus): Likewise.
2834         (vec_vrld): Likewise.
2835         (vec_vsld): Likewise.
2836         (vec_vsrad): Likewise.
2837         (vec_vsrd): Likewise.
2838         (vec_vsubudm): Likewise.
2839         (vec_vupkhsw): Likewise.
2840         (vec_vupklsw): Likewise.
2841
2842 2013-05-29  Jan Hubicka  <jh@suse.cz>
2843
2844         * cgraph.h (symtab_node_base): Add definition, alias and analyzed
2845         flags; reorder rest of fields in more consistent way.
2846         (varpool_node): Remove analyzed, finalized and alias.
2847         (cgraph_ndoe): Likewise.
2848         (symtab_alias_ultimate_target): New function.
2849         (cgraph_function_node): Move offline.
2850         (cgraph_reset_node): Declare.
2851         (cgraph_comdat_can_be_unshared_p): Remove.
2852         (varpool_remove_initializer): Declare.
2853         (varpool_first_defined_variable, varpool_next_defined_variable
2854         cgraph_first_defined_function, cgraph_next_defined_function): Update.
2855         (cgraph_function_with_gimple_body_p): Update.
2856         (varpool_all_refs_explicit_p): Update.
2857         (symtab_alias_target): New function.
2858         (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
2859         (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
2860         (cgraph_function_or_thunk_node): Simplify using
2861         symtab_alias_ultimate_target.
2862         (varpool_variable_node): Likewise.
2863         * cgraph.c (cgraph_create_function_alias): Update.
2864         (cgraph_add_thunk): Update.
2865         (cgraph_remove_node): Update.
2866         (dump_cgraph_node): Do not dump removed flags.
2867         (cgraph_function_body_availability): Update.
2868         (cgraph_propagate_frequency): Update.
2869         (verify_cgraph_node): Check sanity of local flag.
2870         (cgraph_function_node): Move here from cgraph.h; revamp for
2871         cgraph_function_or_thunk_node.
2872         * lto-symtab.c (lto_varpool_replace_node): Update.
2873         (lto_symtab_resolve_can_prevail_p): Update.
2874         (lto_symtab_merge_cgraph_nodes): Update.
2875         * ipa-cp.c (determine_versionability, initialize_node_lattices,
2876         propagate_constants_accross_call, devirtualization_time_bonus,
2877         ipcp_propagate_stage): Update.
2878         * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
2879         * ipa-inline-transform.c (clone_inlined_nodes,
2880         preserve_function_body_p): Update.
2881         * ipa-reference.c (propagate): Update.
2882         (write_node_summary_p): Update.
2883         * toplev.c (wrapup_global_declaration_2): Update.
2884         * cgraphunit.c (cgraph_analyze_function): Rename to ...
2885         (analyze_function) ... this one.
2886         (cgraph_process_new_functions): Update.
2887         (cgraph_reset_node): Export.
2888         (cgraph_finalize_function): Update.
2889         (cgraph_add_new_function): Update.
2890         (process_function_and_variable_attributes): Update.
2891         (varpool_finalize_decl): Update.
2892         (symbol_finalized): Remove.
2893         (symbol_finalized_and_needed): Rename to ...
2894         (symbol_defined_and_needed): ... update.
2895         (cgraph_analyze_functions): Update.
2896         (handle_alias_pairs): Update.
2897         (mark_functions_to_output): Update.
2898         (assemble_thunk): Update.
2899         (output_in_order): Update.
2900         (output_weakrefs): Update.
2901         (finalize_compilation_unit): Update.
2902         * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
2903         lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
2904         input_node, input_varpool_node): Update.
2905         * dbxout.c (dbxout_expand_expr): Update.
2906         * cgraphclones.c (cgraph_clone_node): Update.
2907         (cgraph_copy_node_for_versioning): Update.
2908         (cgraph_materialize_clone): Update.
2909         (cgraph_materialize_all_clones): Update.
2910         * ipa-pure-const.c (analyze_function, pure_const_write_summary,
2911         propagate_pure_const, propagate_nothrow): Update.
2912         * lto-streamer-out.c (lto_output, write_symbol): Update.
2913         * ipa-utils.c (ipa_reverse_postorder): Update.
2914         * ipa-inline.c (can_inline_edge_p): Update.
2915         (update_caller_keys, ipa_inline): Update.
2916         * dwarf2out.c (reference_to_unused,
2917         premark_types_used_by_global_vars_helper): Update.
2918         * tree-eh.c (tree_could_trap_p): Update.
2919         * ipa-split.c (consider_split, execute_split_functions): Update.
2920         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
2921         has_addr_references_p): Update; move ahead in file for better
2922         readability.
2923         (process_references): Simplify.
2924         (symtab_remove_unreachable_nodes): Update; cleanup way function/var
2925         bodies are removed.
2926         (cgraph_comdat_can_be_unshared_p): Make static.
2927         (cgraph_externally_visible_p): Update.
2928         (varpool_externally_visible_p): Update.
2929         (function_and_variable_visibility): Update.
2930         * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
2931         ipa_tm_mark_force_output_node): Update.
2932         * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
2933         estimate_edge_devirt_benefit, inline_generate_summary,
2934         inline_write_summary): Update.
2935         * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
2936         * ipa-prop.c (ipa_compute_jump_functions): Update.
2937         (ipa_print_node_params, ipa_prop_read_section,
2938         ipa_update_after_lto_read, read_replacements_section): Update.
2939         * varasm.c (mark_decl_referenced): Update.
2940         (assemble_alias, dump_tm_clone_pairs): Update.
2941         * tree-inline.c (copy_bb): Update.
2942         (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
2943         Update.
2944         * symtab.c (dump_symtab_base): Print new flags.
2945         (verify_symtab_base): Verify new flags.
2946         (symtab_alias_ultimate_target): New function.
2947         * tree-ssa-structalias.c (get_constraint_for_ssa_var,
2948         create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
2949         Update.
2950         * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
2951         Update.
2952         * i386.c (ix86_get_function_versions_dispatcher,
2953         ix86_generate_version_dispatcher_body): Update.
2954         (fold_builtin_cpu): Use varpool_add_new_variable.
2955         * varpool.c (varpool_remove_initializer): Break out from ...
2956         (varpool_remove_node): ... this one.
2957         (dump_varpool_node, varpool_node_for_asm,
2958         cgraph_variable_initializer_availability, varpool_analyze_node,
2959         varpool_assemble_decl, varpool_remove_unreferenced_decls,
2960         varpool_finalize_named_section_flags, varpool_create_variable_alias):
2961         Update.
2962
2963 2013-05-29  Jan Hubicka  <jh@suse.cz>
2964
2965         * passes.c (init_optimization_passes): Move OMP expansion into lowering.
2966
2967 2013-05-29  Easwaran Raman  <eraman@google.com>
2968
2969         PR tree-optimization/57442
2970         * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
2971         when control exits the main loop.
2972
2973 2013-05-29  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
2974
2975         * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
2976         and RX600.
2977         * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
2978         * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
2979         * rx/t-rx: Add rx100 under multi library matches option for nofpu
2980         option.
2981
2982 2013-05-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2983
2984         PR tree-optimization/57441
2985         * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
2986         Don't limit size of incr_vec to number of candidates.
2987
2988 2013-05-29  Steve Ellcey  <sellcey@imgtec.com>
2989
2990         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
2991         and mips16 directories.
2992         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
2993         (MULTILIB_DIRNAMES): Ditto.
2994         (MULTILIB_EXCEPTIONS): Add new exceptions.
2995         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
2996         (MULTILIB_DIRNAMES): Ditto.
2997         (MULTILIB_EXCEPTIONS): Add new exceptions.
2998
2999 2012-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
3000             Marcus Shawcroft  <marcus.shawcroft@arm.com>
3001
3002         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
3003         SYMBOL_TINY_ABSOLUTE.
3004         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
3005         SYMBOL_TINY_ABSOLUTE.
3006         (aarch64_expand_mov_immediate): Likewise.
3007         (aarch64_classify_symbol): Likewise.
3008         (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
3009         Permit SYMBOL_TINY_ABSOLUTE.
3010         * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
3011
3012 2013-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
3013             Marcus Shawcroft  <marcus.shawcroft@arm.com>
3014
3015         * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
3016         Refactor if/switch.  Replace gcc_assert with if.
3017
3018 2013-05-29  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
3019
3020         * config/i386/i386.c (initial_ix86_tune_features): Enable
3021         FP Reassociation for AMD bdver1 and bdver2.
3022
3023 2013-05-29  Martin Jambor  <mjambor@suse.cz>
3024
3025         * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
3026         and IMAGPART_EXPR do not occur within other handled_components.
3027
3028 2013-05-29  Richard Biener  <rguenther@suse.de>
3029
3030         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
3031         access on whether the use is in the BB we currently try to
3032         vectorize.
3033         (vect_bb_vectorization_profitable_p): Pass the BB we currently
3034         vectorize to vect_bb_slp_scalar_cost.
3035
3036 2013-05-29  Richard Biener  <rguenther@suse.de>
3037
3038         * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
3039         computing scalar cost offsetted by stmts that are kept live
3040         by scalar uses.
3041         (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
3042         for computation of scalar cost.
3043
3044 2013-05-28  Steve Ellcey  <sellcey@mips.com>
3045
3046         * config/mips/mips-cpus.def (mips32r2): Change processor type.
3047
3048 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3049
3050         * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
3051         array notation built-in reduction functions.
3052         * doc/passes.texi (Passes): Added documentation about changes done
3053         for Cilk Plus.
3054         * doc/invoke.texi (C Dialect Options): Added documentation about
3055         the -fcilkplus flag.
3056         * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
3057         (BUILTINS_DEF): Depend on cilkplus.def.
3058         * builtins.def: Include cilkplus.def.  Define DEF_CILKPLUS_BUILTIN.
3059         * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
3060         * cilkplus.def: New file.
3061
3062 2013-05-28  Joern Rennecke <joern.rennecke@embecosm.com>
3063
3064         PR rtl-optimization/57439
3065         * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
3066
3067 2013-05-28  Easwaran Raman  <eraman@google.com>
3068
3069         PR tree-optimization/57337
3070         * tree-ssa-reassoc.c (appears_later_in_bb): New function.
3071         (find_insert_point): Correctly identify the insertion point
3072         when two statements with the same UID is compared.
3073
3074 2013-05-28  Richard Biener  <rguenther@suse.de>
3075
3076         PR tree-optimization/56787
3077         * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
3078         from the list of data references.
3079         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
3080         clobbers.
3081         (vect_analyze_loop_operations): Likewise.
3082         (vect_transform_loop): Remove clobbers.
3083
3084 2013-05-28  Martin Jambor  <mjambor@suse.cz>
3085
3086         * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
3087         and REALPART_EXPRs have scalar type.
3088
3089 2013-05-28  Richard Biener  <rguenther@suse.de>
3090
3091         PR tree-optimization/57411
3092         * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
3093         virtual operands.
3094         * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
3095         virtual operand propagation.
3096
3097 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
3098
3099         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
3100         destination register for bmasksi_vis.
3101         (vector_init_bshuffle): Likewise.
3102         * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
3103
3104 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
3105
3106         * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
3107         * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
3108         mode if the instruction isn't available in the original mode.
3109         * config/sparc/sparc.opt (mfix-ut699): New option.
3110         * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
3111         (divdf3): Turn into expander.
3112         (divdf3_nofix): New insn.
3113         (divdf3_fix): Likewise.
3114         (divsf3): Disable if -mfix-ut699.
3115         (sqrtdf2): Turn into expander.
3116         (sqrtdf2_nofix): New insn.
3117         (sqrtdf2_fix): Likewise.
3118         (sqrtsf2): Disable if -mfix-ut699.
3119
3120 2013-05-27  Richard Biener  <rguenther@suse.de>
3121
3122         PR middle-end/57412
3123         * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
3124         block for the new loop.
3125
3126 2013-05-27  Richard Biener  <rguenther@suse.de>
3127
3128         PR tree-optimization/57343
3129         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
3130         use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
3131         (number_of_iterations_cond): Do not build the folded tree.
3132
3133 2013-05-27  Richard Biener  <rguenther@suse.de>
3134
3135         Revert
3136         PR middle-end/57381
3137         * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
3138         OEP_CONSTANT_ADDRESS_OF retained.
3139
3140         PR tree-optimization/57417
3141         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
3142         for unchanged base.
3143         (set_ssa_val_to): Compare addresses using
3144         get_addr_base_and_unit_offset.
3145
3146 2013-05-27  Joern Rennecke <joern.rennecke@embecosm.com>
3147
3148         PR rtl-optimization/56833
3149         * postreload.c (move2add_record_mode): New function.
3150         (move2add_record_sym_value, move2add_valid_value_p): Likewise.
3151         (move2add_use_add2_insn): Use move2add_record_sym_value.
3152         (move2add_use_add3_insn): Likewise.
3153         (reload_cse_move2add): Use move2add_valid_value_p and
3154         move2add_record_mode.  Invalidate call-clobbered and REG_INC
3155         affected regs by setting reg_mode to VOIDmode.
3156         (move2add_note_store): Don't pretend the inside of a SUBREG is
3157         the actual destination.  Invalidate single/leading registers by
3158         setting reg_mode to VOIDmode.
3159         Use move2add_record_sym_value, move2add_valid_value_p and
3160         move2add_record_mode.
3161
3162 2013-05-27  Richard Biener  <rguenther@suse.de>
3163
3164         PR tree-optimization/57396
3165         * tree-affine.c (double_int_constant_multiple_p): Properly
3166         return false for val == 0 and div != 0.
3167
3168 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
3169
3170         * config/mips/mips.h: Use #elif in preprocessor conditions.
3171
3172 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
3173
3174         PR target/53916
3175         * config/mips/constraints.md (kl): New constraint.
3176         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
3177         (divmod<mode>4_internal): Rename to divmod<mode>4.  Use "kl" as the
3178         constraint for operand 0.  Split after CSE for MIPS16.  Emit a move
3179         from LO for MIPS16.
3180         (udivmod<mode>4_internal): Likewise udivmod<mode>4.
3181
3182 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
3183
3184         PR target/55777
3185         * config/mips/mips.c (mips_can_inline_p): New function.
3186         (TARGET_CAN_INLINE_P): Define.
3187
3188 2013-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3189
3190         * sched-int.h (ds_t, dw_t): Make unsigned int.
3191         Fix documentation that describes how all the ds_t bits are used.
3192         Reserve the last bit for delayed-branch scheduling.
3193         (BITS_PER_DEP_STATUS): Move to ds_t typedef.
3194         (BITS_PER_DEP_WEAK): Fix definition and documentation.
3195         (gen_dep_weak_1): Remove prototype.
3196         * sched-deps.c (get_dep_weak_1): Make static.
3197         * target.def (speculate_insn, needs_block_p, gen_spec_check,
3198         get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
3199         * doc/tm.texi: Regenerate.
3200         * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
3201
3202 2013-05-24  Steven Bosscher  <steven@gcc.gnu.org>
3203
3204         PR debug/56950
3205         * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
3206
3207 2013-05-24  Nathan Sidwell  <nathan@codesourcery.com>
3208             Sandra Loosemore  <sandra@codesourcery.com>
3209
3210         * config.gcc (powerpc-*): Allow native for with-cpu.
3211
3212 2013-05-24  Jeff Law  <law@redhat.com>
3213
3214         PR tree-optimization/57124
3215         * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
3216         conversion feeding a condition if the range has an overflow
3217         if -fstrict-overflow.  Add warnings for when we do make the
3218         transformation.
3219
3220 2013-05-24  Dehao Chen  <dehao@google.com>
3221
3222         * tree-cfg.c (locus_discrim_map): Fix the typo.
3223         (locus_discrim_hasher): Likewise.
3224         (locus_discrim_hasher::hash): Likewise.
3225         (locus_discrim_hasher::equal): Likewise.
3226
3227 2013-05-24  Martin Jambor  <mjambor@suse.cz>
3228
3229         PR tree-optimization/57294
3230         * cgraph.h (ipa_record_stmt_references): Declare.
3231         * cgraphbuild.c (ipa_record_stmt_references): New function.
3232         (build_cgraph_edges): Use ipa_record_stmt_references.
3233         (rebuild_cgraph_edges): Likewise.
3234         (cgraph_rebuild_references): Likewise.
3235         * ipa-prop.c (ipa_modify_call_arguments): Discard references
3236         associated with the old statement and build references from the
3237         newly built statements.
3238         * ipa-ref.c (ipa_remove_stmt_references): New function.
3239         * ipa-ref.h (ipa_remove_stmt_references): Declare.
3240
3241 2013-05-24  Vladimir Makarov  <vmakarov@redhat.com>
3242
3243         * lra-constraints.c (emit_spill_move): Use smaller mode for
3244         mem-mem moves.
3245         (check_and_process_move): Consider mem-reg moves for secondary
3246         too.
3247         (curr_insn_transform): Don't lose insns emitted before for
3248         secondary memory moves.
3249         (inherit_in_ebb): Mark defined reg.  Add usage only if it is not a
3250         reg set up in the current insn.
3251
3252 2013-05-24  Dehao Chen  <dehao@google.com>
3253
3254         * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
3255         hash function.
3256         (locus_descrim_hasher::equal): Likewise.
3257         (build_gimple_cfg): New discriminator assignment algorithm.
3258         (make_edges): Likewise.
3259         (next_discriminator_for_locus): Likewise.
3260         (same_line_p): Likewise.
3261         (assign_discriminators): Likewise.
3262         (make_cond_expr_edges): Likewise.
3263         (make_gimple_switch_edges): Likewise.
3264         (make_goto_expr_edges): Likewise.
3265         (make_gimple_asm_edges): Likewise.
3266
3267 2013-05-24  Ian Bolton  <ian.bolton@arm.com>
3268
3269         * config/aarch64/aarch64.c (aarch64_print_operand): Change the
3270         X format specifier to only display bottom 16 bits.
3271         * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
3272         immediate to match for operand 2, since it will be masked.
3273
3274 2013-05-24  Richard Biener  <rguenther@suse.de>
3275
3276         PR tree-optimization/57287
3277         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
3278         all SSA names that occur in abnormal PHIs.
3279
3280 2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3281
3282         PR tree-ssa/57385
3283         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
3284         that index is not negative.
3285
3286 2013-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3287
3288         PR rtl-optimization/55177
3289         * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
3290         (simplify_byte_swapping_operation): New.
3291         (simplify_binary_operation_1): Call it for AND, IOR and XOR.
3292         (simplify_relational_operation_1): Deal with BSWAP.
3293
3294 2013-05-23  Richard Henderson  <rth@redhat.com>
3295
3296         PR target/56742
3297         * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
3298         (ix86_reorg): Call it.
3299
3300 2013-05-23  Uros Bizjak  <ubizjak@gmail.com>
3301
3302         PR target/57379
3303         * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
3304         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
3305         REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
3306
3307 2013-05-23  Christian Bruel  <christian.bruel@st.com>
3308
3309         PR debug/57351
3310         * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
3311
3312 2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
3313             Marcus Shawcroft  <marcus.shawcroft@arm.com>
3314
3315         * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
3316         * config/aarch64/constraints.md (Usa): Remove.
3317         * doc/md.texi (AArch64 Usa): Remove.
3318
3319 2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
3320             Marcus Shawcroft  <marcus.shawcroft@arm.com>
3321
3322         * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
3323         * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
3324         * config/aarch64/predicates.md (aarch64_const_address): Remove.
3325         (aarch64_mov_operand): Use aarch64_mov_operand_p.
3326
3327 2013-05-23  Vidya Praveen <vidyapraveen@arm.com>
3328
3329         * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
3330         instruction (AdvSIMD).
3331         * config/aarch64/aarch64-builtins.c
3332         (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
3333         * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
3334
3335 2013-05-23  Martin Jambor  <mjambor@suse.cz>
3336
3337         PR middle-end/57347
3338         * tree.h (contains_bitfld_component_ref_p): Declare.
3339         * tree-sra.c (contains_bitfld_comp_ref_p): Move...
3340         * tree.c (contains_bitfld_component_ref_p): ...here.  Adjust its
3341         caller.
3342         * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
3343         not access a bit-field.  Assert all final offsets are byte-aligned.
3344
3345 2013-05-23  Richard Biener  <rguenther@suse.de>
3346
3347         PR tree-optimization/57380
3348         * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
3349         least one invariant or re-used load.
3350         * passes.c (init_optimization_passes): Move pass_phiprop before
3351         pass_forwprop.
3352
3353 2013-05-23  James Greenhalgh  <james.greenhalgh@arm.com>
3354
3355         * config/aarch64/aarch64-simd.md
3356         (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
3357
3358 2013-05-23  Richard Biener  <rguenther@suse.de>
3359
3360         PR middle-end/57381
3361         * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
3362         OEP_CONSTANT_ADDRESS_OF retained.
3363
3364 2013-05-23  Jakub Jelinek  <jakub@redhat.com>
3365
3366         PR middle-end/57344
3367         * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
3368         don't lower unit.  Handle unit not being always BITS_PER_WORD.
3369
3370 2013-05-23  Richard Biener  <rguenther@suse.de>
3371
3372         PR rtl-optimization/57341
3373         * ira.c (validate_equiv_mem_from_store): Use anti_dependence
3374         instead of true_dependence.
3375
3376 2013-05-22  David Malcolm  <dmalcolm@redhat.com>
3377
3378         * bb-reorder.c (branch_threshold): Make const.
3379         (exec_threshold): Ditto.
3380
3381 2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3382             Pat Haugen <pthaugen@us.ibm.com>
3383             Peter Bergner <bergner@vnet.ibm.com>
3384
3385         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
3386         documentation for the power8 crypto builtins.
3387
3388         * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
3389
3390         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
3391         macros for defining power8 builtin functions.
3392         (BU_P8V_AV_2): Likewise.
3393         (BU_P8V_AV_P): Likewise.
3394         (BU_P8V_VSX_1): Likewise.
3395         (BU_P8V_OVERLOAD_1): Likewise.
3396         (BU_P8V_OVERLOAD_2): Likewise.
3397         (BU_CRYPTO_1): Likewise.
3398         (BU_CRYPTO_2): Likewise.
3399         (BU_CRYPTO_3): Likewise.
3400         (BU_CRYPTO_OVERLOAD_1): Likewise.
3401         (BU_CRYPTO_OVERLOAD_2): Likewise.
3402         (XSCVSPDP): Fix typo, point to the correct instruction.
3403         (VCIPHER): Add power8 crypto builtins.
3404         (VCIPHERLAST): Likewise.
3405         (VNCIPHER): Likewise.
3406         (VNCIPHERLAST): Likewise.
3407         (VPMSUMB): Likewise.
3408         (VPMSUMH): Likewise.
3409         (VPMSUMW): Likewise.
3410         (VPERMXOR_V2DI): Likewise.
3411         (VPERMXOR_V4SI: Likewise.
3412         (VPERMXOR_V8HI: Likewise.
3413         (VPERMXOR_V16QI: Likewise.
3414         (VSHASIGMAW): Likewise.
3415         (VSHASIGMAD): Likewise.
3416         (VPMSUM): Likewise.
3417         (VPERMXOR): Likewise.
3418         (VSHASIGMA): Likewise.
3419
3420         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3421         __CRYPTO__ if the crypto instructions are available.
3422         (altivec_overloaded_builtins): Add support for overloaded power8
3423         builtins.
3424
3425         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
3426         support for power8 crypto builtins.
3427         (builtin_function_type): Likewise.
3428         (altivec_init_builtins): Add support for builtins that take vector
3429         long long (V2DI) arguments.
3430
3431         * config/rs6000/crypto.md: New file, define power8 crypto
3432         instructions.
3433
3434 2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3435             Pat Haugen <pthaugen@us.ibm.com>
3436             Peter Bergner <bergner@vnet.ibm.com>
3437
3438         * doc/invoke.texi (Option Summary): Add power8 options.
3439         (RS/6000 and PowerPC Options): Likewise.
3440
3441         * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
3442         constraints.md instead of rs6000.h.  Reorder w* constraints.  Add
3443         wm, wn, wr documentation.
3444
3445         * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
3446         registers if direct move instructions are enabled.
3447         (wn): New constraint for no registers.
3448         (wq): New constraint for quad word even GPR registers.
3449         (wr): New constraint if 64-bit instructions are enabled.
3450         (wv): New constraint if power8 vector instructions are enabled.
3451         (wQ): New constraint for quad word memory locations.
3452
3453         * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
3454         constraint for 0..15 for crypto instructions.
3455         (gpc_reg_operand): If VSX allow registers in VSX registers as well
3456         as GPR and floating point registers.
3457         (int_reg_operand): New predicate to match only GPR registers.
3458         (base_reg_operand): New predicate to match base registers.
3459         (quad_int_reg_operand): New predicate to match even GPR registers
3460         for quad memory operations.
3461         (vsx_reg_or_cint_operand): New predicate to allow vector logical
3462         operations in both GPR and VSX registers.
3463         (quad_memory_operand): New predicate for quad memory operations.
3464         (reg_or_indexed_operand): New predicate for direct move support.
3465
3466         * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
3467         Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
3468         (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
3469         (POWERPC_MASKS): Add power8 options.
3470         (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
3471         various options.
3472
3473         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
3474         Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
3475
3476         * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
3477         (-mpower8-fusion): New power8 options.
3478         (-mpower8-fusion-sign): Likewise.
3479         (-mpower8-vector): Likewise.
3480         (-mcrypto): Likewise.
3481         (-mdirect-move): Likewise.
3482         (-mquad-memory): Likewise.
3483
3484         * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
3485         power8.
3486         (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
3487         registers.
3488         (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
3489         (rs6000_debug_vector_unit): Add p8_vector.
3490         (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
3491         definitions.  Also print fusion state.
3492         (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
3493         (rs6000_builtin_mask_calculate): Add power8 builtin support.
3494         (rs6000_option_override_internal): Add support for power8.
3495         (rs6000_common_init_builtins): Add debugging for skipped builtins
3496         if -mdebug=builtin.
3497         (rs6000_adjust_cost): Add power8 support.
3498         (rs6000_issue_rate): Likewise.
3499         (insn_must_be_first_in_group): Likewise.
3500         (insn_must_be_last_in_group): Likewise.
3501         (force_new_group): Likewise.
3502         (rs6000_register_move_cost): Likewise.
3503         (rs6000_opt_masks): Likewise.
3504
3505         * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
3506         power8 capable assembler, default to power7 options.
3507         (TARGET_DIRECT_MOVE): Likewise.
3508         (TARGET_CRYPTO): Likewise.
3509         (TARGET_P8_VECTOR): Likewise.
3510         (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
3511         (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
3512         (VECTOR_MEM_P8_VECTOR_P): Likewise.
3513         (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
3514         (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
3515         (TARGET_XSCVDPSPN): Likewise.
3516         (TARGET_XSCVSPDPN): Likewsie.
3517         (TARGET_SYNC_HI_QI): Likewise.
3518         (TARGET_SYNC_TI): Likewise.
3519         (MASK_CRYPTO): Likewise.
3520         (MASK_DIRECT_MOVE): Likewise.
3521         (MASK_P8_FUSION): Likewise.
3522         (MASK_P8_VECTOR): Likewise.
3523         (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
3524         temporary used by some of the direct move instructions to get two FP
3525         temporary registers does not force creation of a stack frame.
3526         (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
3527         (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
3528         that any VSX registers are tieable, even if they are also an
3529         Altivec vector mode.
3530         (r6000_reg_class_enum): Add wm, wr, wv constraints.
3531         (RS6000_BTM_P8_VECTOR): Power8 builtin support.
3532         (RS6000_BTM_CRYPTO): Likewise.
3533         (RS6000_BTM_COMMON): Likewise.
3534
3535         * config/rs6000/rs6000.md (cpu attribute): Add power8.
3536         * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
3537         (enum rs6000_vector): Add power8 vector support.
3538
3539 2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3540
3541         PR target/19599
3542         PR target/57340
3543         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
3544         (any_sibcall_could_use_r3): this and handle indirect calls.
3545         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
3546
3547 2013-05-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3548
3549         * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
3550
3551 2013-05-22  Richard Biener  <rguenther@suse.de>
3552
3553         PR middle-end/57349
3554         * profile.c (branch_prob): Do not split blocks that are
3555         abnormally receiving from ECF_RETURNS_TWICE functions.
3556
3557 2013-05-22  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
3558
3559         * recog.c (offsettable_address_addr_space_p): Fix calculation of
3560         address mode.  Move pointer mode initialization to the same place.
3561
3562 2013-05-22  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3563
3564         * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
3565         while it has any effect.
3566
3567 2013-05-21  Easwaran Raman  <eraman@google.com>
3568
3569         PR tree-optimization/57322
3570         * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
3571         UID of the statement added to the BB to be 1.
3572
3573 2013-05-21  Jakub Jelinek  <jakub@redhat.com>
3574
3575         PR tree-optimization/57331
3576         * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
3577         of conversion from pointer type to integral type with integer.
3578
3579 2013-05-21  Martin Jambor  <mjambor@suse.cz>
3580
3581         PR lto/57289
3582         * ipa-prop.c (ipa_read_node_info): Process param_used and
3583         controlled_uses in the same order as when writing.
3584
3585 2013-05-21  Magnus Granberg  <baldrick@free.fr>
3586
3587         PR plugins/56754
3588         * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
3589
3590 2013-05-21  Richard Biener  <rguenther@suse.de>
3591
3592         PR tree-optimization/57318
3593         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
3594         estimate stmts with side-effects as likely eliminated.
3595
3596 2013-05-21  Richard Biener  <rguenther@suse.de>
3597
3598         PR tree-optimization/57330
3599         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
3600         preserve the call stmts fntype.
3601
3602 2013-05-21  Richard Biener  <rguenther@suse.de>
3603
3604         PR tree-optimization/57303
3605         * tree-ssa-sink.c (statement_sink_location): Improve killing
3606         stmt detection and properly handle self-assignments.
3607
3608 2013-05-21  Christian Bruel  <christian.bruel@st.com>
3609
3610         * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
3611         spanning registers. LEAF_REG_REMAP is supported only for contiguous
3612         registers. Set register size out of the PARALLEL loop.
3613
3614 2013-05-20  Oleg Endo  <olegendo@gcc.gnu.org>
3615
3616         PR target/56547
3617         * config/sh/sh.md (fmasf4): Remove empty constraints strings.
3618         (*fmasf4, *fmasf4_media): New insns.
3619
3620 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3621
3622         * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
3623         * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
3624         (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
3625         (mips_idiv_insns): Update the comments to say that the returned
3626         instruction counts are in units of BASE_INSN_LENGTH.
3627         (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
3628         by BASE_INSN_LENGTH rather than 4.  Add the jump separately,
3629         using 2 rather than 4 as the length of indirect MIPS16 and
3630         microMIPS jumps.  Use NOP_INSN_LENGTH rather than 4 as the
3631         length of a NOP.  Don't divide MIPS16 lengths by 2.
3632         (mips16_split_long_branches): Assume a branch is long if the
3633         length is greater than 4 rather than 8.
3634         * config/mips/mips.md (length): Give MIPS16 lengths directly,
3635         rather than multiplying them by 2.  Multiply instruction counts
3636         by BASE_INSN_LENGTH rather than 4.
3637         (*jump_mips16, tls_get_tp_mips16_<mode>)
3638         (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
3639
3640 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3641
3642         * config/mips/mips.md (extended_mips16): Remove branch case.
3643         (length): Remove duplicated extended_mips16 test.
3644
3645 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3646
3647         * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
3648
3649 2013-05-18  Richard Sandiford  <rdsandiford@googlemail.com>
3650
3651         * recog.h (Recog_data): Rename to...
3652         (recog_data_d): ...this.
3653         (recog_data): Update accordingly.
3654         * recog.c (recog_data): Likewise.
3655         * reload.c (save_recog_data): Likewise.
3656         * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
3657         (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
3658
3659 2013-05-17  Julian Brown  <julian@codesourcery.com>
3660
3661         * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
3662         found in a REG_EQUAL note, invalidate it.
3663
3664 2013-05-17   Easwaran Raman  <eraman@google.com>
3665
3666         * tree-ssa-reassoc.c (find_insert_point): New function.
3667         (insert_stmt_after): Likewise.
3668         (get_def_stmt): Likewise.
3669         (ensure_ops_are_available): Likewise.
3670         (not_dominated_by): Likewise.
3671         (rewrite_expr_tree): Do not move statements beyond what is
3672         necessary. Remove call to swap_ops_for_binary_stmt...
3673         (reassociate_bb): ... and move it here.
3674         (build_and_add_sum): Assign UIDs for new statements.
3675         (linearize_expr): Likewise.
3676         (do_reassoc): Renumber gimple statement UIDs.
3677
3678 2013-05-17  Jan Hubicka  <jh@suse.cz>
3679
3680         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
3681         weakrefs.
3682         * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
3683         * cgraphunit.c (handle_alias_pairs): Store target of unresolved
3684         weakrefs.
3685         (output_weakrefs): Update.
3686
3687 2013-05-17  Po-Chun Chang  <pchang9@cs.wisc.edu>
3688             Martin Jambor  <mjambor@suse.cz>
3689
3690         PR middle-end/57276
3691         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
3692         value that corresponds to the given aggval is found in values vector.
3693
3694 2013-05-17  Uros Bizjak  <ubizjak@gmail.com>
3695
3696         * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
3697         sse, sse2, sse3, ssse3 and sse4a flags to options.
3698
3699 2013-05-17  David Malcolm  <dmalcolm@redhat.com>
3700
3701         * gengtype-state.c: (s_expr_writer): New class, to handle
3702         prettifying of output layout of s-expressions.
3703         (state_writer): New class, to write out gtype.state.
3704         (state_written_type_count): Move this variable into member data of
3705         state_writer.
3706         (s_expr_writer::s_expr_writer): New code: constructor for new class
3707         (state_writer::state_writer(): ditto
3708         (s_expr_writer::write_new_line): New function
3709         (s_expr_writer::write_any_indent): ditto
3710         (s_expr_writer::begin_s_expr): ditto
3711         (s_expr_writer::end_s_expr): ditto
3712         (write_state_fileloc): convert to method of state_writer...
3713         (state_writer:: write_state_fileloc): ...and use methods of
3714         s_expr_writer to write indentation into the gtype.state output file
3715         to visually represent the hierarchical structure of the list
3716         structures
3717         (write_state_fields): ditto, renaming to...
3718         (state_writer::write_state_fields)
3719         (write_state_a_string): ditto, renaming to...
3720         (state_writer::write_state_a_string)
3721         (write_state_string_option): ditto, renaming to...
3722         (state_writer::write_state_string_option)
3723         (write_state_type_option): ditto, renaming to...
3724         (state_writer::write_state_type_option)
3725         (write_state_nested_option): ditto, renaming to...
3726         (state_writer::write_state_nested_option)
3727         (write_state_option): ditto, renaming to...
3728         (state_writer::write_state_option)
3729         (write_state_options): ditto, renaming to...
3730         (state_writer::write_state_options)
3731         (write_state_lang_bitmap): ditto, renaming to...
3732         (state_writer::write_state_lang_bitmap)
3733         (write_state_version): ditto, renaming to...
3734         (state_writer::write_state_version)
3735         (write_state_scalar_type): ditto, renaming to...
3736         (state_writer::write_state_scalar_type)
3737         (write_state_string_type): ditto, renaming to...
3738         (state_writer::write_state_string_type)
3739         (write_state_undefined_type): ditto, renaming to...
3740         (state_writer::write_state_undefined_type)
3741         (write_state_struct_union_type): ditto, renaming to...
3742         (state_writer::write_state_struct_union_type)
3743         (write_state_struct_type): ditto, renaming to...
3744         (state_writer::write_state_struct_type)
3745         (write_state_user_struct_type): ditto, renaming to...
3746         (state_writer::write_state_user_struct_type)
3747         (write_state_lang_struct_type): ditto, renaming to...
3748         (state_writer::write_state_lang_struct_type)
3749         (write_state_param_struct_type): ditto, renaming to...
3750         (state_writer::write_state_param_struct_type)
3751         (write_state_pointer_type): ditto, renaming to...
3752         (state_writer::write_state_pointer_type)
3753         (write_state_array_type): ditto, renaming to...
3754         (state_writer::write_state_array_type)
3755         (write_state_gc_used): ditto, renaming to...
3756         (state_writer::write_state_gc_used)
3757         (write_state_common_type_content): ditto, renaming to...
3758         (state_writer::write_state_common_type_content)
3759         (write_state_type): ditto, renaming to...
3760         (state_writer::write_state_type)
3761         (write_state_pair_list): ditto, renaming to...
3762         (state_writer::write_state_pair_list)
3763         (write_state_pair): ditto, renaming to...
3764         (state_writer::write_state_pair)
3765         (write_state_typedefs): ditto, renaming to...
3766         (state_writer::write_state_typedefs)
3767         (write_state_structures): ditto, renaming to...
3768         (state_writer::write_state_structures)
3769         (write_state_param_structs): ditto, renaming to...
3770         (state_writer::write_state_param_structs)
3771         (write_state_variables): ditto, renaming to...
3772         (state_writer::write_state_variables)
3773         (write_state_srcdir): ditto, renaming to...
3774         (state_writer::write_state_srcdir)
3775         (write_state_files_list): ditto, renaming to...
3776         (state_writer::write_state_files_list)
3777         (write_state_languages): ditto, renaming to...
3778         (state_writer::write_state_languages)
3779         (write_state): create a state_writer instance and use it when
3780         writing out the state file
3781
3782 2013-05-17  Mike Stump  <mikestump@comcast.net>
3783
3784         PR rtl-optimization/57304
3785         * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
3786         accessing DF_REF_REAL_LOC.
3787
3788 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
3789
3790         PR rtl-optimization/57281
3791         PR rtl-optimization/57300
3792         * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
3793         (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
3794         what the other splitter did if the registers are dead.
3795
3796 2013-05-17  Richard Biener  <rguenther@suse.de>
3797
3798         * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
3799         MEM_REF offsets.
3800
3801 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
3802
3803         * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
3804         linking.
3805
3806 2013-05-17  Marek Polacek  <polacek@redhat.com>
3807
3808         * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
3809         length when doing non-zero store of storing '\0' to '\0'.
3810
3811 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
3812
3813         * tree-vect-patterns.c (vect_recog_rotate_pattern): For
3814         vect_external_def oprnd1 with loop_vinfo, try to emit
3815         optional cast, negation and and stmts on the loop preheader
3816         edge instead of into the pattern def seq.
3817
3818         PR tree-optimization/57051
3819         * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
3820         case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
3821
3822 2013-05-16  Nick Clifton  <nickc@redhat.com>
3823
3824         * config/rl78/rl78.c (rl78_attribute_table): Add naked.
3825         (rl78_is_naked_func): New function.
3826         (rl78_expand_prologue): Skip prologue generation for naked functions.
3827         (rl78_expand_epilogue): Skip epilogue generation for naked functions.
3828         * doc/extend.texi (naked): Add RL78 to the list of processors
3829         that supports this attribute.
3830
3831 2013-05-16  Jeff Law  <law@redhat.com>
3832
3833         * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
3834
3835 2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
3836
3837         * config/i386/driver-i386.c (host_detect_local_cpu): Determine
3838         cache parameters using detect_caches_amd also for CYRIX,
3839         NSC and TM2 signatures.
3840
3841 2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
3842             Dzianis Kahanovich  <mahatma@eu.by>
3843
3844         PR target/45359
3845         PR target/46396
3846         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3847         VIA/Centaur processors and determine their cache parameters
3848         using detect_caches_amd.
3849
3850 2013-05-16  Teresa Johnson  <tejohnson@google.com>
3851
3852         * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
3853         (rtl_verify_edges): New function.
3854         (rtl_verify_bb_insns): Ditto.
3855         (rtl_verify_bb_pointers): Ditto.
3856         (rtl_verify_bb_insn_chain): Ditto.
3857         (rtl_verify_fallthru): Ditto.
3858         (rtl_verify_bb_layout): Ditto.
3859         (rtl_verify_flow_info_1): Outline checks into new functions.
3860         (rtl_verify_flow_info): Ditto.
3861
3862 2013-05-16  Steve Ellcey  <sellcey@imgtec.com>
3863
3864         * cfghooks.c (copy_bbs): Add update_dominance argument.
3865         * cfghooks.h (copy_bbs): Update prototype.
3866         * tree-cfg.c (gimple_duplicate_sese_region):
3867         Add update_dominance argument.
3868         * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
3869         * tree-ssa-loop-ch.c (copy_loop_headers): Update
3870         gimple_duplicate_sese_region call.
3871         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
3872         Update copy_bbs call.
3873         * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
3874         * trans-mem.c (ipa_uninstrument_transaction): Ditto.
3875
3876 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
3877
3878         * tree-vectorizer.h (NUM_PATTERNS): Increment.
3879         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
3880         vect_recog_rotate_pattern.
3881         (vect_recog_rotate_pattern): New function.
3882
3883 2013-05-16  Jason Merrill  <jason@redhat.com>
3884
3885         * Makefile.in (LLINKER): New variable.
3886         (mostlyclean): Remove link mutex.
3887         * configure.ac: Handle --enable-link-mutex.
3888         * lock-and-run.sh: New script.
3889
3890 2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3891
3892         PR target/19599
3893         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3894         for NULL decl.
3895
3896 2013-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3897
3898         * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
3899
3900 2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>
3901
3902         * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
3903         * config/arm/arm.c (next_consecutive_mem): New function.
3904         (gen_movmem_ldrd_strd): Likewise.
3905         * config/arm/arm.md (movmemqi): Update condition and code.
3906         (unaligned_loaddi, unaligned_storedi): New patterns.
3907
3908 2013-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3909
3910         * config.gcc: Obsolete *-*-solaris2.9*.
3911         * doc/install.texi (Specific, *-*-solaris2*): Document it.
3912
3913 2013-05-16  Richard Biener  <rguenther@suse.de>
3914
3915         * passes.c (init_optimization_passes): Move pass_parallelize_loops
3916         earlier, after GRAPHITE transforms and IV canonicalization.
3917
3918 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
3919
3920         * omp-low.c (extract_omp_for_data): For collapsed loops,
3921         if at least one of the loops is known at compile time to
3922         iterate zero times, set count to 0.
3923         (expand_omp_regimplify_p): New function.
3924         (expand_omp_for_generic): For collapsed loops, if at least
3925         one of the loops isn't known to iterate at least once,
3926         add runtime check with setting count to 0.
3927         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
3928         For unsigned types if it isn't known at compile time that
3929         the loop will iterate at least once, add runtime check to bypass
3930         the whole loop if initial condition isn't true.
3931
3932 2013-05-16  Nathan Sidwell  <nathan@codesourcery.com>
3933
3934         * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
3935
3936 2013-05-16  Marc Glisse  <marc.glisse@inria.fr>
3937
3938         PR middle-end/57286
3939         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
3940         transformations to avoid an infinite loop.
3941
3942 2013-05-16  Marek Polacek  <polacek@redhat.com>
3943
3944         * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
3945
3946 2013-05-15  Leif Ekblad  <leif@rdos.net>
3947
3948         * config/i386/i386.c (ix86_decompose_address): Use
3949         DEFAULT_TLS_SEG_REG to access TLS segment register.
3950         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
3951         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
3952         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
3953
3954 2013-05-15  Richard Sandiford  <rdsandiford@googlemail.com>
3955
3956         PR target/57260
3957         * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
3958         sibling calls to functions that would normally be lazily bound,
3959         unless $gp is call-clobbered.
3960
3961 2013-05-15  Uros Bizjak  <ubizjak@gmail.com>
3962
3963         * config/i386/i386.c (ix86_option_override_internal): Update
3964         processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags.  Add
3965         PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
3966         non-SSE 3dNow! targets.  Enable TARGET_PRFCHW for TARGET_3DNOW targets.
3967         * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
3968         of TARGET_3DNOW.
3969         (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
3970
3971 2013-05-15  Andreas Schwab  <schwab@suse.de>
3972
3973         * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
3974         for rotlhi3+1 and rotlqi3+1, resp.  Fix reference to non-existing
3975         third operand.
3976
3977 2013-05-15  Teresa Johnson  <tejohnson@google.com>
3978
3979         * loop-unroll.c (report_unroll_peel): Check decision before
3980         emitting unroll/peel message.
3981
3982 2013-05-15  Teresa Johnson  <tejohnson@google.com>
3983
3984         * function.h (has_bb_partition): New rtl_data flag.
3985         (bb_reorder_complete): Ditto.
3986         * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
3987         instead of flag_reorder_blocks_and_partition.
3988         * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
3989         with some enhancements.
3990         (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
3991         * bb-reorder.c (connect_traces): Check for has_bb_partition
3992         instead of flag_reorder_blocks_and_partition.
3993         (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
3994         (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
3995         verify_hot_cold_block_grouping.
3996         (partition_hot_cold_basic_blocks): Set has_bb_partition.
3997
3998 2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3999
4000         PR target/19599
4001         * config/arm/predicates.md (call_insn_operand): New predicate.
4002         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
4003         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
4004         if insn is not a tail call.
4005         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
4006         registers.
4007         * config/arm/arm.h (enum reg_class): New caller save register class.
4008         (REG_CLASS_NAMES): Likewise.
4009         (REG_CLASS_CONTENTS): Likewise.
4010         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
4011         without decls.
4012
4013 2013-05-15  Richard Biener  <rguenther@suse.de>
4014
4015         * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
4016         of MSG_OPTIMIZED_LOCATIONS.
4017         * tree-vect-slp.c (vect_make_slp_decision): Likewise.
4018         (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
4019         message.
4020         * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
4021         of MSG_OPTIMIZED_LOCATIONS.
4022         (execute_vect_slp): Likewise.
4023         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
4024         (vect_create_cond_for_alias_checks): Likewise.
4025         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
4026         (vect_recog_widen_mult_pattern): Likewise.
4027         (vect_recog_widen_sum_pattern): Likewise.
4028         (vect_recog_over_widening_pattern): Likewise.
4029         (vect_recog_widen_shift_pattern): Likewise.
4030         (vect_recog_vector_vector_shift_pattern): Likewise.
4031         (vect_recog_divmod_pattern): Likewise.
4032         (vect_recog_mixed_size_cond_pattern): Likewise.
4033         (vect_recog_bool_pattern): Likewise.
4034         (vect_pattern_recog_1): Likewise.
4035
4036 2013-05-15  Martin Jambor  <mjambor@suse.cz>
4037
4038         * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
4039         non-functions to builtin_unreachable.
4040         * ipa-inline-transform.c (inline_call): Do not assert estimates were
4041         correct when new direct edges were discovered.
4042
4043 2013-05-15  Martin Jambor  <mjambor@suse.cz>
4044
4045         * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
4046         header, print symbol order instead of node uid, print more information
4047         about indirect edge targets.
4048         (ipa_make_edge_direct_to_target): Print symbol order instead of node
4049         uids.
4050         (ipa_make_edge_direct_to_target): Likewise.
4051         (remove_described_reference): Likewise.
4052         (propagate_controlled_uses): Likewise.
4053         (ipa_print_node_params): Also print symbol order.
4054         (ipcp_transform_function): Print symbol order instead of node uids.
4055         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
4056         (cgraph_get_create_real_symbol_node): Likewise.
4057         * ipa-cp.c (print_lattice): Likewise.
4058         (print_all_lattices): Likewise.
4059         (determine_versionability): Likewise.
4060         (initialize_node_lattices): Likewise.
4061         (estimate_local_effects): Likewise.
4062         (update_profiling_info): Likewise.
4063         (create_specialized_node): Likewise.
4064         (perhaps_add_new_callers): Likewise.
4065         (decide_about_value): Likewise.
4066         (decide_whether_version_node): Likewise.
4067         (identify_dead_nodes): Likewise.
4068         * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
4069         (dump_inline_summary): Likewise.
4070         (estimate_node_size_and_time): Likewise.
4071         (inline_analyze_function): Likewise.
4072         * ipa-inline.c (report_inline_failed_reason): Likewise.
4073         (want_early_inline_function_p): Likewise.
4074         (edge_badness): Likewise.
4075         (update_edge_key): Likewise.
4076         (inline_small_functions): Likewise.  Add dumping of order to two other
4077         dumps.
4078         * ipa-pure-const.c (pure_const_read_summary): Print symbol order
4079         instead of node uids.
4080         (propagate_pure_const): Likewise.
4081         (propagate_pure_const): Likewise.
4082         * ipa-utils.c (dump_cgraph_node_set): Likewise.
4083         * lto-cgraph.c (input_node): Explicitly specify we dump uid.
4084         * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
4085         of node uids.
4086         * tree-pretty-print.c (dump_function_header): Likewise.
4087         * tree-sra.c (convert_callers_for_node): Dump in traditional format.
4088         Print symbol order instead of node uids.
4089
4090 2013-05-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4091
4092         * config/s390/s390.c (s390_register_move_cost): Don't impose the
4093         FPR<->GPR move cost penalty if ldgr/lgdr can be used.
4094
4095 2013-05-15  Richard Biener  <rguenther@suse.de>
4096
4097         PR tree-optimization/57275
4098         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
4099         return value for fail to do runtime alias checks for gather loads.
4100
4101 2013-05-15  Jan Hubicka  <jh@suse.cz>
4102
4103         PR lto/57038
4104         PR lto/47375
4105         * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
4106         weakrefs are not external.
4107         (lto_symtab_merge_decls): Fix thinko when dealing with
4108         non-lto_symtab decls.
4109         (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
4110         (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
4111         * varpool.c (dump_varpool_node): Dump more flags.
4112
4113 2013-05-15  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
4114
4115         * config/i386/i386.c (processor_alias_table): Add instruction
4116         FSGSBASE for AMD bdver3 architecture.
4117
4118 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
4119
4120         * tree.c (warn_deprecated_use): Print file:line using locus color.
4121         * diagnostic.c (diagnostic_report_current_module): Print file:line
4122         and file:line:column using locus color.
4123
4124 2013-05-14  Mike Stump  <mikestump@comcast.net>
4125
4126         * gdbinit.in: Add __null.
4127
4128 2013-05-14  Mike Stump  <mikestump@comcast.net>
4129
4130         * recog.h: Rename struct recog_data to Recog_data.
4131         * recog.c: Likewise.
4132         * reload.c (can_reload_into): Likewise.
4133         * config/picochip/picochip.c: Likewise.
4134
4135 2013-05-14  Mike Stump  <mikestump@comcast.net>
4136
4137         * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
4138
4139 2013-05-14  Steven Bosscher  <steven@gcc.gnu.org>
4140
4141         * resource.h (struct resources): Remove unch_memory member.
4142         (CLEAR_RESOURCE): Don't clear unch_memory.
4143         * resource.c (mark_referenced_resources): Don't set it.
4144         (mark_set_resources): Likewise.
4145         (mark_target_live_regs): Don't clear it.
4146         (init_resource_info): Likewise.
4147         * reorg.c (resource_conflicts_p): Don't compare it.
4148         (redundant_insn): Don't set it.
4149
4150         * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
4151         Remove prototypes.
4152         * emit-rtl.c (next_label): Remove unused function.
4153         (skip_consecutive_labels, link_cc0_insns): Move to ...
4154         * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
4155         only place where these functions are used, and make them static.
4156
4157 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
4158
4159         * fold-const.c (fold_negate_expr): Handle vectors.
4160         (fold_truth_not_expr): Make it static.
4161         (fold_invert_truthvalue): New static function.
4162         (invert_truthvalue_loc): Handle vectors. Do not call
4163         fold_truth_not_expr directly.
4164         (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
4165         <TRUTH_NOT_EXPR>: Do not cast to boolean.
4166         (fold_comparison): Handle vector constants.
4167         (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
4168         (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
4169         * tree.h (fold_truth_not_expr): Remove declaration.
4170
4171 2013-05-14  James Greenhalgh  <james.greenhalgh@arm.com>
4172
4173         * config/aarch64/aarch64-simd.md
4174         (aarch64_vcond_internal<mode>): Rename to...
4175         (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
4176         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
4177         float modes. Clarify all iterator modes.
4178         (vcond<mode><mode>): Use new name for vcond expanders.
4179         (vcond<v_cmp_result><mode>): Likewise.
4180         (vcondu<mode><mode>: Likewise.
4181         * config/aarch64/iterators.md (VDQF_COND): New.
4182
4183 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
4184
4185         PR bootstrap/57266
4186         * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
4187         variable for the shift amount. Check that we shift by non-negative
4188         amounts.
4189
4190 2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>
4191
4192         PR target/42017
4193         * config/arm/arm.h (EPILOGUE_USES): Only return true
4194         for LR_REGNUM after epilogue_completed.
4195
4196 2013-05-14  Joern Rennecke <joern.rennecke@embecosm.com>
4197
4198         * config/avr/avr.c (avr_encode_section_info): Bail out if the type
4199         is error_mark_node.
4200
4201 2013-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4202
4203         PR target/57261
4204         * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
4205         and Solaris 11+/x86 with gld.
4206         * configure: Regenerate.
4207
4208 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
4209
4210         * expmed.c (expand_shift_1): Canonicalize rotates by
4211         constant bitsize / 2 to bitsize - 1.
4212         * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
4213         case ROTATERT>: Likewise.
4214
4215         Revert:
4216         2013-05-10  Jakub Jelinek  <jakub@redhat.com>
4217
4218         * config/i386/i386.md (rotateinv): New code attr.
4219         (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
4220         *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
4221         roll $31, %eax, etc.
4222
4223 2013-05-14  Richard Biener  <rguenther@suse.de>
4224
4225         PR middle-end/57235
4226         * tree-eh.c (sink_clobbers): Give up for successors with
4227         multiple predecessors and no virtual uses.
4228
4229 2013-05-14  Eric Botcazou  <ebotcazou@adacore.com>
4230
4231         * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
4232         * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
4233
4234 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
4235
4236         PR middle-end/57251
4237         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
4238         the case when both op0 and op1 have VOIDmode.
4239
4240 2013-05-14  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4241
4242         * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
4243         in multiply-accumulate mode.
4244
4245 2013-05-13  Guozhi Wei  <carrot@google.com>
4246
4247         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
4248
4249 2013-05-13  Kai Tietz  <ktietz@redhat.com>
4250
4251         PR target/56975
4252         * config/i386/cygming.h (TARGET_PECOFF): Define as true.
4253         * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
4254         (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
4255         * config/i386/i386.c (ix86_option_override_internal): Likewise.
4256         (ix86_expand_prologue): Likewise.
4257         (ix86_expand_split_stack_prologue): Likewise.
4258         (legitimate_pic_address_disp_p): Likewise.
4259         (legitimize_pic_address): Likewise.
4260         (legitimize_tls_address): Likewise.
4261         (legitimize_pe_coff_symbol): Likewise.
4262         (output_pic_addr_const): Likewise.
4263         (construct_plt_address): Likewise.
4264         (ix86_expand_call): Likewise.
4265         (x86_output_mi_thunk): Likewise.
4266         (x86_function_profiler): Likewise.
4267
4268 2013-05-13  Sofiane Naci  <sofiane.naci@arm.com>
4269
4270         * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
4271         similar switch cases.
4272         (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
4273         (aarch64_simd_mov_to_<mode>low): Delete.
4274         (aarch64_simd_mov_to_<mode>high): Delete.
4275         (move_lo_quad_<mode>): Add w<-r alternative.
4276         (aarch64_simd_move_hi_quad_<mode>): Likewise.
4277         (aarch64_simd_mov_from_*): Update type attribute.
4278         * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
4279         statement.
4280
4281 2013-05-13  Jan Hubicka  <jh@suse.cz>
4282
4283         * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
4284         * config/i386/i386.c (ix86_compute_frame_layout,
4285         ix86_expand_epilogue, emit_i387_cw_initialization,
4286         ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
4287         ix86_local_alignment): Fix use of size/speed predicates.
4288
4289 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
4290
4291         PR tree-optimization/45216
4292         PR tree-optimization/57157
4293         * tree-ssa-forwprop.c (simplify_rotate): Only recognize
4294         the (-Y) & (B - 1) variant if OP is |.
4295         * expmed.c (expand_shift_1): For rotations by const0_rtx just
4296         return shifted.  Use (-op1) & (prec - 1) as other_amount
4297         instead of prec - op1.
4298
4299 2013-05-13  Martin Jambor  <mjambor@suse.cz>
4300
4301         PR middle-end/42371
4302         * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
4303         (ipa_constant_data): New type.
4304         (ipa_jump_func): Use ipa_constant_data to hold information about
4305         constant jump functions.
4306         (ipa_get_jf_constant): Adjust to jump function type changes.
4307         (ipa_get_jf_constant_rdesc): New function.
4308         (ipa_param_descriptor): New field controlled_uses.
4309         (ipa_get_controlled_uses): New function.
4310         (ipa_set_controlled_uses): Likewise.
4311         * ipa-ref.h (ipa_find_reference): Declare.
4312         * ipa-prop.c (ipa_cst_ref_desc): New type.
4313         (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
4314         changes.
4315         (ipa_set_jf_constant): Likewise.  Also create reference descriptions.
4316         New parameter cs.  Adjust all callers.
4317         (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
4318         (remove_described_reference): New function.
4319         (jfunc_rdesc_usable): Likewise.
4320         (try_make_edge_direct_simple_call): Decrement controlled use count,
4321         attempt to remove reference if it hits zero.
4322         (combine_controlled_uses_counters): New function.
4323         (propagate_controlled_uses): Likewise.
4324         (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
4325         (ipa_edge_duplication_hook): Duplicate reference descriptions.
4326         (ipa_print_node_params): Print described use counter.
4327         (ipa_write_jump_function): Adjust to jump function type changes.
4328         (ipa_read_jump_function): New parameter CS, pass it to
4329         ipa_set_jf_constant.  Adjust caller.
4330         (ipa_write_node_info): Stream controlled use count
4331         (ipa_read_node_info): Likewise.
4332         * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
4333         asserting.
4334         * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
4335         count.  Remove cloning-added reference if it reaches zero.
4336         * ipa-ref.c (ipa_find_reference): New function.
4337
4338 2013-05-13  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
4339
4340         * config/i386/i386.c (processor_target_table): Modified default
4341         alignment values for AMD BD and BT architectures.
4342
4343 2013-05-13  Marc Glisse  <marc.glisse@inria.fr>
4344
4345         * tree-vect-generic.c (uniform_vector_p): Move ...
4346         * tree.c (uniform_vector_p): ... here.
4347         * tree.h (uniform_vector_p): Declare it.
4348         * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
4349         into a scalar.
4350
4351 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
4352
4353         PR tree-optimization/57230
4354         * tree-ssa-strlen.c (handle_char_store): Record length for
4355         array store from STRING_CST.
4356
4357         PR tree-optimization/57230
4358         * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
4359         check.
4360
4361 2013-05-12  Joern Rennecke  <joern.rennecke@embecosm.com>
4362
4363         * config/epiphany/epiphany.c (epiphany_init): Check size of
4364         NUM_MODES_FOR_MODE_SWITCHING.
4365         (epiphany_expand_prologue):
4366         Remove CONFIG_REGNUM initial value handling code.
4367         (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
4368         (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
4369         (emit_set_fp_mode, epiphany_mode_after): Likewise.
4370         (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
4371         Don't return 1 for FP_MODE_NONE.
4372         * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
4373         Add value for EPIPHANY_MSW_ENTITY_CONFIG.
4374         (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
4375         * config/epiphany/epiphany.md (save_config): New pattern.
4376
4377 2013-05-12  Uros Bizjak  <ubizjak@gmail.com>
4378
4379         * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
4380
4381 2013-05-10  Uros Bizjak  <ubizjak@gmail.com>
4382
4383         * config/i386/i386.md (memory): Handle sseishft1.
4384         * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
4385         (*vec_extractv2di_1): Ditto.
4386
4387 2013-05-10  Vladimir Makarov  <vmakarov@redhat.com>
4388
4389         * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
4390         saved registers.
4391
4392 2013-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4393
4394         * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
4395         Add mthumb/march=armv7-a multilib.
4396         Add mthumb/march=armv7-r multilib.
4397         Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
4398
4399 2013-05-10  Ralf Corsépius  <ralf.corsepius@rtems.org>
4400
4401         * config/v850/t-rtems: Add more multilibs.
4402
4403 2013-05-10  Richard Biener  <rguenther@suse.de>
4404
4405         PR tree-optimization/57214
4406         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
4407         not propagate from SSA names that occur in abnormal PHI nodes.
4408
4409 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
4410
4411         * stor-layout.c (element_precision): New function.
4412         * machmode.h (element_precision): Declare it.
4413         * tree.c (build_minus_one_cst): New function.
4414         (element_precision): Likewise.
4415         * tree.h (build_minus_one_cst): Declare new function.
4416         (element_precision): Likewise.
4417         * fold-const.c (operand_equal_p): Use element_precision.
4418         (fold_binary_loc): Handle vector types.
4419         * convert.c (convert_to_integer): Use element_precision.
4420         * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
4421         separately.
4422
4423 2013-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4424
4425         * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
4426         (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
4427         (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
4428         (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
4429         * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
4430         (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
4431         (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
4432         (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
4433         * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
4434         (Uuw8): New constraints.
4435         (Usb4): Move into alphabetical order.
4436         * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
4437         (sd8_operand, ub8_operand, uw8_operand): New predicates.
4438         * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
4439         previously unnamed patterns.
4440         (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
4441         (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
4442         (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
4443         (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
4444         of set_attr_alternative/if_then_else.  Use extended_mips16 instead
4445         of specific lengths.
4446
4447 2013-05-10  Jakub Jelinek  <jakub@redhat.com>
4448
4449         * config/i386/i386.md (rotateinv): New code attr.
4450         (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
4451         *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
4452         roll $31, %eax, etc.
4453
4454         PR tree-optimization/45216
4455         PR tree-optimization/57157
4456         * tree-ssa-forwprop.c (simplify_rotate): New function.
4457         (ssa_forward_propagate_and_combine): Call it.
4458
4459 2013-05-10  Richard Biener  <rguenther@suse.de>
4460
4461         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
4462         disable peeling when we version for aliasing.
4463         (vector_alignment_reachable_p): Honor explicit user alignment.
4464         (vect_supportable_dr_alignment): Likewise.
4465         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
4466         STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
4467         * tree-vect-loop.c (vect_transform_loop): First apply versioning,
4468         then peeling to arrange for the cost-model check to come first.
4469
4470 2013-05-10  Alan Modra  <amodra@gmail.com>
4471
4472         * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
4473         (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
4474         * configure: Regenerate.
4475
4476 2013-05-10  Alan Modra  <amodra@gmail.com>
4477
4478         PR target/55033
4479         * varasm.c (default_elf_select_section): Move !DECL_P check..
4480         (get_named_section): ..to here before calling get_section_name.
4481         Adjust assertion.
4482         (default_section_type_flags): Add DECL_P check.
4483         * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
4484         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
4485
4486 2013-05-09  Joern Rennecke  <joern.rennecke@embecosm.com>
4487
4488         * config/epiphany/epiphany.c (epiphany_expand_prologue):
4489         When using gen_stack_adjust_str with a register offset, add a
4490         REG_FRAME_RELATED_EXPR note.
4491
4492 2013-05-09  Uros Bizjak  <ubizjak@gmail.com>
4493
4494         * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
4495         (*vec_extractv4si_zext_mem): Ditto.
4496         (*vec_extractv2di): Add 0->x and x->x alternatives.
4497         * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
4498         * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
4499
4500 2013-05-09  Jason Merrill  <jason@redhat.com>
4501
4502         N3639 C++1y VLA support
4503         * gimplify.c (gimplify_vla_decl): Don't touch an existing
4504         DECL_VALUE_EXPR.
4505
4506         * tree.c (build_constructor_va): New.
4507         * tree.h: Declare it.
4508
4509 2013-05-09  Martin Jambor  <mjambor@suse.cz>
4510
4511         PR lto/57084
4512         * gimple-fold.c (canonicalize_constructor_val): Call
4513         cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
4514
4515 2013-05-09  Jan Hubicka  <jh@suse.cz>
4516             Richard Biener  <rguenther@suse.de>
4517
4518         PR lto/54095
4519         * symtab.c (symtab_make_decl_local): Do not add private names.
4520
4521 2013-05-09  Jan Hubicka  <jh@suse.cz>
4522
4523         PR lto/54095
4524         * symtab.c (insert_to_assembler_name_hash): Handle clones.
4525         (unlink_from_assembler_name_hash): Likewise.
4526         (symtab_prevail_in_asm_name_hash, symtab_register_node,
4527         symtab_unregister_node, symtab_initialize_asm_name_hash,
4528         change_decl_assembler_name): Update.
4529
4530 2013-05-09  Sofiane Naci  <sofiane.naci@arm.com>
4531
4532         * config/aarch64/aarch64.md: New movtf split.
4533         (*movtf_aarch64): Update.
4534         (aarch64_movdi_tilow): Handle TF modes and rename to
4535         aarch64_movdi_<mode>low.
4536         (aarch64_movdi_tihigh): Handle TF modes and rename to
4537         aarch64_movdi_<mode>high
4538         (aarch64_movtihigh_di): Handle TF modes and rename to
4539         aarch64_mov<mode>high_di
4540         (aarch64_movtilow_di): Handle TF modes and rename to
4541         aarch64_mov<mode>low_di
4542         (aarch64_movtilow_tilow): Remove spurious whitespace.
4543         * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
4544         splits.
4545         (aarch64_print_operand): Update.
4546
4547 2013-05-09  Alan Modra  <amodra@gmail.com>
4548
4549         * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
4550         powerpc64le.
4551         * configure: Regenerate.
4552
4553 2013-05-08  Uros Bizjak  <ubizjak@gmail.com>
4554
4555         * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
4556         splitter preparation statements.
4557         * config/i386/sse.md (*vec_extract* splitters): Ditto.
4558         (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
4559         adjust_address_nv.
4560
4561 2013-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4562
4563         * gimple-ssa-strength-reduction.c (count_candidates): Change
4564         return value to int.
4565         (analyze_candidates_and_replace): Change type of length to int.
4566
4567 2013-05-08  Uros Bizjak  <ubizjak@gmail.com>
4568
4569         * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
4570         (*vec_extract<mode>): Use VI12_128 mode iterator.
4571         (*vec_extract<mode>_mem): Ditto.
4572         (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
4573         attribute.
4574
4575 2013-05-08  Diego Novillo  <dnovillo@google.com>
4576
4577         PR bootstrap/54659
4578
4579         Revert:
4580         2012-08-17  Diego Novillo  <dnovillo@google.com>
4581
4582         PR bootstrap/54281
4583         * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
4584         * config.in: Regenerate.
4585         * configure: Regenerate.
4586         * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4587
4588 2013-05-08  Jan Hubicka  <jh@suse.cz>
4589
4590         PR lto/54095
4591         * cgraph.c (cgraph_make_node_local_1): Se unique_name.
4592         * cgraph.h (symtab_node_base): Add unique_name.
4593         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
4594         input_overwrite_node, input_varpool_node): Stream unique_name.
4595         * cgraphclones.c (cgraph_create_virtual_clone,
4596         cgraph_function_versioning): Set unique_name.
4597         * ipa.c (function_and_variable_visibility): Set unique_name.
4598
4599 2013-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4600
4601         * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
4602         (alloc_cand_and_find_basis): Restrict conditional candidate
4603         processing to CAND_MULTs.
4604
4605 2013-05-08  Jan Hubicka  <jh@suse.cz>
4606
4607         PR lto/54095
4608         lto-symtab.c (lto_symtab_symbol_p): New function.
4609         (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
4610         lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
4611         lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
4612         Skip static symbols.
4613
4614 2013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
4615
4616         PR tree-optimization/57200
4617         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
4618         Only call inform if the preceding warning_at returns true.
4619
4620 2013-05-07  Han Shen  <shenhan@google.com>
4621
4622         * cfgexpand.c (record_or_union_type_has_array_p): New function.
4623         (expand_used_vars): Add logic handling '-fstack-protector-strong'.
4624         * common.opt (fstack-protector-strong): New option.
4625         * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
4626         * doc/invoke.texi (Optimization Options): Document
4627         "-fstack-protector-strong".
4628         * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
4629
4630 2013-05-06  Steven Bosscher  <steven@gcc.gnu.org>
4631
4632         * config/mips/mips.c (mips_machine_reorg2): Return 0.
4633
4634 2013-05-07  Vladimir Makarov  <vmakarov@redhat.com>
4635
4636         * ira.c (update_equiv_regs): Add insn having equiv memory even if
4637         it is not lhs of the insn.
4638         (setup_reg_equiv): Remove insn having equiv memory which it is not
4639         lhs of the insn.
4640         * lra-constraints.c (process_address): Try to improve generation
4641         code for address base + disp.
4642         (lra_constraints): Make correct the code for checking insn setting
4643         up backward equivalence.  Remove insn only if it is in the init
4644         insn list.
4645         * lra-eliminations.c (update_reg_eliminate): Change return value.
4646         (lra_eliminate): Use the result.
4647
4648 2013-05-07  Uros Bizjak  <ubizjak@gmail.com>
4649
4650         * config/i386/sse.md (ssescalarnummask): New mode attribute.
4651         (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
4652         (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
4653         *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
4654         register target operands.
4655         (*vec_extractv8hi_sse2): New pattern.
4656         (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
4657         (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
4658         (*vec_extract<mode>_mem): New insn and split pattern.
4659
4660 2013-05-07  Christophe Lyon  <christophe.lyon@linaro.org>
4661
4662         * config/arm/arm.c (arm_asan_shadow_offset): New function.
4663         (TARGET_ASAN_SHADOW_OFFSET): Define.
4664         * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
4665         (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
4666
4667 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4668
4669         * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
4670         (incr_vec_index): Return -1 if increment not found.
4671         (create_add_on_incoming_edge): Assert if increment not found.
4672         (record_increment): Limit number of increments recorded.
4673         (all_phi_incrs_profitable): Return false if an increment not found.
4674         (replace_profitable_candidates): Don't process increments that were
4675         not recorded.
4676         (analyze_candidates_and_replace): Limit size of incr_vec.
4677
4678 2013-05-07  Richard Biener  <rguenther@suse.de>
4679
4680         * calls.c (special_function_p): setjmp-like functions are leaf.
4681         * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
4682         * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
4683
4684 2013-05-07  Sofiane Naci  <sofiane.naci@arm.com>
4685
4686         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
4687         (aarch64_simd_mov<mode>): New expander.
4688         (aarch64_simd_mov_to_<mode>low): New instruction pattern.
4689         (aarch64_simd_mov_to_<mode>high): Likewise.
4690         (aarch64_simd_mov_from_<mode>low): Likewise.
4691         (aarch64_simd_mov_from_<mode>high): Likewise.
4692         (aarch64_dup_lane<mode>): Update.
4693         (aarch64_dup_lanedi): New instruction pattern.
4694         * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
4695         * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
4696
4697 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4698
4699         * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
4700         (replace_mult_candidate): Remove unnecessary argument; remove
4701         unnecessary parameter from call to introduce_cast_before_cand.
4702         (replace_unconditional_candidate): Remove unnecessary parameter
4703         from call to replace_mult_candidate.
4704         (replace_conditional_candidate): Likewise.
4705         (insert_initializers): Use make_temp_ssa_name.
4706         (introduce_cast_before_cand): Remove unnecessary argument; use
4707         make_temp_ssa_name.
4708         (replace_one_candidate): Remove unnecessary argument; remove
4709         unnecessary parameter from calls to introduce_cast_before_cand.
4710         (replace_profitable_candidates): Remove unnecessary parameters
4711         from calls to replace_one_candidate.
4712
4713 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4714
4715         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
4716         phi def as possibly hiding a basis for a CAND_ADD whose operands
4717         have been commuted in the analysis.
4718         (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
4719
4720 2013-05-07  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4721
4722         * config/aarch64/aarch64.md
4723         (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
4724         shift value between 0-4.
4725
4726 2013-05-07  Richard Biener  <rguenther@suse.de>
4727
4728         * double-int.h (rshift): New overload.
4729         * double-int.c (rshift): New function.
4730         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
4731         (create_reference_ops_from_ref): Remove.
4732         (vn_reference_insert): Use shared ops for constructing the
4733         reference and copy it.
4734
4735 2013-05-07  Richard Biener  <rguenther@suse.de>
4736
4737         PR middle-end/57190
4738         * tree-eh.c (sink_clobbers): Properly propagate
4739         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
4740
4741 2013-05-07  Jakub Jelinek  <jakub@redhat.com>
4742
4743         PR tree-optimization/57149
4744         * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
4745         (can_skip_redundant_opnd, compute_uninit_opnds_pos,
4746         collect_phi_def_edges, execute_late_warn_uninitialized): Use
4747         uninit_undefined_value_p instead of ssa_undefined_value_p.
4748
4749         PR debug/57184
4750         * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
4751         for modifier == EXPAND_INITIALIZER.
4752
4753 2013-05-07  Anton Blanchard  <anton@samba.org>
4754
4755         * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
4756         for powerpc64 little endian.
4757         * configure: Regenerate.
4758
4759 2013-05-06  Graham Stott  <grahams@btinternet.com>
4760
4761         * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
4762         mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
4763         wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
4764         shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
4765
4766 2013-05-06  Graham Stott  <grahams@btinternet.com>
4767
4768         * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
4769         codes which allow non-lvalues.
4770
4771 2013-05-06  Marc Glisse  <marc.glisse@inria.fr>
4772
4773         * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
4774         components are all 1s.
4775         (integer_minus_onep): New function.
4776         * tree.h (integer_minus_onep): Declare it.
4777         * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
4778         integer_minus_onep instead of integer_all_onesp.
4779
4780 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
4781
4782         PR target/52933
4783         * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
4784         variations of these patterns.
4785
4786 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
4787
4788         * config/i386/i386.md (isa): Add x64_sse4 member.
4789         (enabled): Handle x64_sse4.
4790         (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
4791         instruction for 64bit SSE4_1 targets.  Update insn attributes.
4792         (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
4793         instruction for SSE4_1 targets.  Update insn attributes.
4794         * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
4795         with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
4796         (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
4797         const_1 selector.
4798         (*vec_extractv4si): Rename from *sse4_1_pextrd.
4799         (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
4800         (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
4801
4802 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
4803
4804         PR target/57108
4805         * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
4806
4807 2013-05-06  Maxim Kuznetsov  <maks.kuznetsov@gmail.com>
4808
4809         * final.c (do_assembler_dialects): Don't handle curly braces and
4810         vertical bar escaped by % as dialect delimiters.
4811         (output_asm_insn): Print curly braces and vertical bar if escaped
4812         by % and ASSEMBLER_DIALECT defined.
4813         * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
4814         * doc/tm.texi: Regenerated.
4815
4816 2013-05-06  Steven Bosscher  <steven@gcc.gnu.org>
4817
4818         * config/mips/mips.c: Include tree-pass.h.
4819         (mips_reorg): Split in pre- and post-dbr_schedule parts.
4820         (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
4821         (pass_mips_machine_reorg2): New machine specific pass.
4822         (insert_pass_mips_machine_reorg2): New pass plugin definition.
4823         (mips_option_override): Register the new pass.
4824         * rtl.h (cleanup_barriers): Remove prototype.
4825         (dbr_schedule): Likewise.
4826         * jump.c (cleanup_barriers): Make static.
4827         * reorg.c (dbr_schedule): Likewise.
4828
4829 2013-05-06  Richard Biener  <rguenther@suse.de>
4830
4831         PR tree-optimization/57185
4832         * tree-parloops.c (add_field_for_reduction): Handle anonymous
4833         SSA names properly.
4834
4835 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
4836
4837         PR target/57106
4838         * config/i386/i386.c (add_parameter_dependencies): Add dependence
4839         between "first_arg" and "insn", not "last" and "insn".
4840
4841 2013-05-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4842
4843         * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
4844         (find_candidates_in_block): Re-enable slsr_process_phi.
4845         (create_phi_basis): Fix double counting of candidate adjustment.
4846
4847 2013-05-06  Richard Biener  <rguenther@suse.de>
4848
4849         PR middle-end/57147
4850         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
4851         the edge is also fallthru, preserve it and just clear the
4852         abnormal flag.
4853         * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
4854         also complex, preserve that and just clear the fallthru flag.
4855         * tree-inline.c (update_ssa_across_abnormal_edges): Also
4856         update virtual operands.
4857
4858 2013-05-06  Alan Modra  <amodra@gmail.com>
4859
4860         * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
4861         (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
4862         * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
4863         * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
4864         (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
4865         * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
4866
4867 2013-05-06  Alan Modra  <amodra@gmail.com>
4868
4869         * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
4870         (ASM_SPEC): ..here.  Emit DEFAULT_ASM_ENDIAN too.
4871         (DEFAULT_ASM_ENDIAN): Define.
4872         (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
4873         * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
4874         Update -K PIC clause from sysv4.h.
4875         (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
4876         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
4877
4878 2013-05-06  Alan Modra  <amodra@gmail.com>
4879
4880         * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
4881         twice for little-endian.
4882         (ashrdi3_no_power, ashrdi3): Support little-endian.
4883
4884 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
4885
4886         PR target/55303
4887         * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
4888         * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
4889         related expanders.
4890         * config/sh/iterators.md (SMIN_SMAX): New code iterator.
4891         * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
4892         clips_min_const_int, clips_max_const_int, clipu_max_const_int):
4893         New predicates.
4894
4895 2013-05-05  Steven Bosscher  <steven@gcc.gnu.org>
4896             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4897
4898         * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
4899         * config/pa/pa.opt: Make mbig-switch a no-op.
4900         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
4901         (CASE_VECTOR_MODE): Always return SImode.
4902         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
4903         for the !TARGET_BIG_SWITCH case.
4904         * config/pa/pa-linux.h: Likewise.
4905         * config/pa/pa-openbsd.h: Likewise.
4906         * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
4907         * config/pa/pa.md (short_jump): Remove define_insn.
4908         (casesi): Remove code for the !TARGET_BIG_SWITCH case.
4909         (casesi0): Remove define_insn.
4910         (type): Remove btable_branch.
4911         (pa_combine_type): Likewise.
4912         (in_nullified_branch_delay): Likewise.
4913         (in_call_delay): Likewise.
4914         (define_delay): Likewise.
4915         (define_insn_reservation "Z3"): Likewise.
4916         (define_insn_reservation "Z4"): Likewise.
4917         * config/pa/pa.c  (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
4918         (pa_adjust_insn_length): Remove adjustment for btable branches.
4919         * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
4920         and mno-big-switch
4921
4922 2013-05-05  Uros Bizjak  <ubizjak@gmail.com>
4923
4924         * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
4925         from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
4926         Add m->r,x alternatives.
4927         (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
4928         splitters using SWI48x mode iterator.
4929         (*vec_extract_v2di_0_sse): Rename from *sse2_storeq.  Disable for
4930         TARGET_64BIT.  Add m->x alternative.
4931         (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
4932         Add o->x alternative.  Enable for TARGET_SSE.
4933         (sse_storeq): Remove expander.
4934         (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
4935         with memory input operand.
4936         (*vec_extractv2di_1 splitter): New.
4937         (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
4938         * config/i386/i386.md (ssevecmodelower): New mode attribute.
4939
4940 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
4941
4942         * config/rs6000/rs6000.c (INT_P): Reformat.  Delete obsolete comment.
4943         (INT_LOWPART): Delete.
4944         (extract_MB): Adjust.
4945         (extract_ME): Adjust.
4946         (print_operand): Adjust.
4947
4948 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
4949
4950         * config/rs6000/predicates.md (reg_or_add_cint_operand,
4951         reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
4952         (reg_or_logical_cint_operand, easy_fp_constant,
4953         logical_const_operand): Delete "CONST_DOUBLE" case.
4954         * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
4955         "HOST_BITS_PER_WIDE_INT == 64" test.
4956         (num_insns_constant): Ditto.  Delete CONST_DOUBLE DImode/VOIDmode case.
4957         (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
4958         (rs6000_emit_set_const): Delete CONST_DOUBLE case.
4959         (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
4960         test.
4961         (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
4962         CONST_DOUBLE DImode/VOIDmode case.
4963         (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
4964         (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
4965         CONST_DOUBLE VOIDmode case.
4966         (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
4967         (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
4968         * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
4969         Delete CONST_DOUBLE case.
4970         (splitters for mov FMOVE64 const_double): Delete
4971         "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
4972         "HOST_BITS_PER_WIDE_INT >= 64" test.
4973         (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
4974         case.
4975         (mov DI const_double): Delete.
4976
4977 2013-05-04  Jakub Jelinek  <jakub@redhat.com>
4978
4979         * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
4980         on op shows all bits zero in mode of a lowpart subreg, return zero.
4981
4982 2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4983
4984         PR target/57150
4985         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
4986         to save TFmode registers and DImode to save TImode registers for
4987         caller save operations.
4988         (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
4989         mark being partially clobbered since they only use the first
4990         double word.
4991
4992         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
4993         and TDmode only use the upper 64-bits of each VSX register.
4994
4995 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4996
4997         * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
4998         (find_candidates_in_block): Disable slsr_process_phi.
4999
5000 2013-05-03  Guozhi Wei  <carrot@google.com>
5001
5002         * coverage.c (coverage_obj_init): Move the construction of gcov
5003         constructor to ...
5004         (build_init_ctor): ... here.
5005
5006 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5007
5008         * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
5009         (slsr_cand_d): Redefine def_phi.
5010         (stride_status, phi_adjust_status, count_phis_status): New enums.
5011         (find_phi_def): New.
5012         (find_basis_for_base_expr): New.
5013         (find_basis_for_candidate): Handle hidden bases.
5014         (alloc_cand_and_find_basis): Handle phi candidates.
5015         (slsr_process_phi): New.
5016         (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
5017         (create_mul_imm_cand): Likewise.
5018         (create_add_ssa_cand): Exclude phi base candidates.
5019         (create_add_imm_cand): Likewise.
5020         (slsr_process_cast): Likewise.
5021         (slsr_process_copy): Likewise.
5022         (find_candidates_in_block): Handle phi candidates.
5023         (dump_candidate): Likewise.
5024         (unconditional_cands): Delete.
5025         (unconditional_cands_with_known_stride_p): Delete.
5026         (phi_dependent_cand_p): New.
5027         (cand_increment): Handle phi-dependent candidates.
5028         (replace_dependent): Delete.
5029         (replace_mult_candidate): New.
5030         (replace_unconditional_candidate): New.
5031         (incr_vec_index): Move to avoid forward reference.
5032         (create_add_on_incoming_edge): New.
5033         (create_phi_basis): New.
5034         (replace_dependents): Delete.
5035         (replace_conditional_candidate): New.
5036         (phi_add_costs): New.
5037         (replace_uncond_cands_and_profitable_phis): New.
5038         (record_increment): Handle phi adjustments.
5039         (record_phi_increments): New.
5040         (record_increments): Handle phi adjustments.
5041         (phi_incr_cost): New.
5042         (lowest_cost_path): Handle phis.
5043         (total_savings): Likewise.
5044         (analyze_increments): Likewise.
5045         (ncd_with_phi): New.
5046         (ncd_of_cand_and_phis): New.
5047         (nearest_common_dominator_for_cands): Handle phi increments.
5048         (all_phi_incrs_profitable): New.
5049         (replace_profitable_candidates): Handle phi-dependent candidates.
5050         (analyze_candidates_and_replace): Likewise.
5051
5052 2013-05-03  Teresa Johnson  <tejohnson@google.com>
5053
5054         PR bootstrap/57154
5055         * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
5056         do not exceed REG_BR_PROB_BASE.
5057
5058 2013-05-03  Jeff Law  <law@redhat.com>
5059
5060         PR tree-optimization/57144
5061         * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
5062         operand of the condition will bit into the new type when eliminating
5063         a cast feeding a condition.
5064
5065 2013-05-03  Jakub Jelinek  <jakub@redhat.com>
5066
5067         PR rtl-optimization/57130
5068         * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
5069         of COMPARE as in_code to the recursive call if needed.
5070
5071 2013-05-03  Uros Bizjak  <ubizjak@gmail.com>
5072
5073         * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
5074         (enabled): Handle new members.
5075         * config/i386/sse.md (*vec_concatv2si): Merge from
5076         *vec_concatv2si_sse2 and vec_concatv2si_sse.
5077         (vec_concatv2di): Merge with *vec_concatv2di_rex64.
5078
5079 2013-05-03  Joern Rennecke <joern.rennecke@embecosm.com>
5080
5081         PR tree-optimization/57027
5082         * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
5083         for fnms opportunity, check we got the prerequisite kind
5084         of tree / gimple before using accessor functions.
5085
5086 2013-05-03  Richard Biener  <rguenther@suse.de>
5087
5088         * double-int.h (lshift): New overload without precision
5089         and arith argument.
5090         (operator *=, operator +=, operator -=): Move ...
5091         * double-int.c (operator *=, operator +=, operator -=): ... here
5092         and implement more efficiently.
5093         (mul_double_with_sign): Remove.
5094         (lshift_double): Adjust to take unsinged shift argument, push
5095         dispatching code to callers.
5096         (mul_double_wide_with_sign): Add early out for callers that
5097         are not interested in high parts or overflow.
5098         (lshift): New function.
5099         (lshift, rshift, alshift, arshift, llshift, lrshift): Add
5100         dispatch code here.
5101         (lrotate, rrotate): Use logical shifts.
5102         * expr.c (get_inner_reference): Use lshift.
5103         * fixed-value.c (do_fixed_divide): Likewise.
5104         * tree-dfa.c (get_ref_base_and_extent): Likewise.
5105         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
5106         (indirect_refs_may_alias_p): Likewise.
5107         (stmt_kills_ref_p_1): Likewise.
5108
5109 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
5110
5111         * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
5112
5113 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
5114
5115         * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
5116         scalar form of FABD instruction.
5117
5118 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
5119
5120         * lra-constraints.c (process_alt_operands): Add checking alt
5121         number to choose the best alternative.
5122
5123 2013-05-02  Richard Biener  <rguenther@suse.de>
5124
5125         * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
5126         bitmap and its handling.
5127         (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
5128
5129 2013-05-02  Richard Biener  <rguenther@suse.de>
5130
5131         PR middle-end/57140
5132         * tree-inline.c (copy_loops): Properly handle removed loops.
5133         (copy_cfg_body): Mark destination loops for fixup if source
5134         loops needed fixup.
5135
5136 2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>
5137
5138         PR target/56732
5139         * config/arm/arm.c (arm_expand_epilogue): Check really_return before
5140         generating simple_return for naked functions.
5141
5142 2013-05-02  Martin Jambor  <mjambor@suse.cz>
5143
5144         PR middle-end/56988
5145         * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
5146         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
5147         flags match.
5148         (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
5149         ipa_agg_replacement_value structures.
5150         (known_aggs_to_agg_replacement_list): Likewise.
5151         * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
5152         (read_agg_replacement_chain): Likewise.
5153         (ipcp_transform_function): Also check that by_ref flags match.
5154
5155 2013-05-02  Richard Biener  <rguenther@suse.de>
5156
5157         * graphds.h (struct graph): Add obstack member.
5158         * graphds.c (new_graph): Initialize obstack and allocate
5159         vertices from it.
5160         (add_edge): Allocate edge from the obstack.
5161         (free_graph): Free the obstack instead of all edges and vertices.
5162
5163 2013-05-02  Teresa Johnson  <tejohnson@google.com>
5164
5165         * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
5166         divides.
5167         * cfg.c (update_bb_profile_for_threading): Ditto.
5168         * tree-inline.c (copy_bb): Ditto.
5169         (copy_edges_for_bb): Ditto.
5170         (initialize_cfun): Ditto.
5171         (copy_cfg_body): Ditto.
5172         (expand_call_inline): Ditto.
5173         * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
5174         (estimate_node_size_and_time): Ditto.
5175         (inline_merge_summary): Ditto.
5176         * cgraphclones.c (cgraph_clone_edge): Ditto.
5177         (cgraph_clone_node): Ditto.
5178         * sched-rgn.c (compute_dom_prob_ps): Ditto.
5179         (compute_trg_info): Ditto.
5180
5181 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
5182
5183         * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
5184         S reg when fp attribute set.
5185         (movdi_aarch64): Only allow to/from D reg when fp attribute set.
5186
5187 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
5188
5189         * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
5190         New pattern.
5191         (*and_one_cmplsi3_compare0_uxtw): Likewise.
5192         (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
5193         (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
5194
5195 2013-05-02  Richard Biener  <rguenther@suse.de>
5196
5197         * tree-scalar-evolution.c (scev_info_hasher): Remove.
5198         (struct instantiate_cache_entry): New type.
5199         (struct instantiate_cache_entry_hasher): New hashtable descriptor.
5200         (struct instantiate_cache_type): New type.
5201         (set_instantiated_value, get_instantiated_value): Remove.
5202         (get_instantiated_value_entry): New function.
5203         (instantiate_scev_name): Use the new cache and adjust.
5204         (instantiate_scev_poly): Adjust.
5205         (instantiate_scev_binary): Likewise.
5206         (instantiate_array_ref): Likewise.
5207         (instantiate_scev_convert): Likewise.
5208         (instantiate_scev_not): Likewise.
5209         (instantiate_scev_3): Likewise.
5210         (instantiate_scev_2): Likewise.
5211         (instantiate_scev_r): Likewise.
5212         (instantiate_scev): Likewise.
5213         (resolve_mixers): Likewise.
5214
5215 2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>
5216
5217         PR target/57091
5218         * lra-constraints.c (best_small_class_operands_num): Remove.
5219         (process_alt_operands): Remove small_class_operands_num.  Take
5220         small classes operands into losers and only if the operand is not
5221         matched.  Modify debugging output.
5222         (curr_insn_transform): Remove best_small_class_operands_num.
5223         Print insn name.
5224
5225 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5226
5227         * config/aarch64/aarch64-builtins.c
5228         (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
5229         * config/aarch64/aarch64-simd-builtins.def
5230         (reduc_splus_): Add new modes.
5231         (reduc_uplus_): New.
5232         * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
5233         (reduc_uplus_v4sf): Likewise.
5234         (reduc_splus_v4sf): Likewise.
5235         (aarch64_addv<mode>): Likewise.
5236         (reduc_uplus_<mode>): Likewise.
5237         (reduc_splus_<mode>): Likewise.
5238         (aarch64_addvv2di): Likewise.
5239         (reduc_uplus_v2di): Likewise.
5240         (reduc_splus_v2di): Likewise.
5241         (aarch64_addvv2si): Likewise.
5242         (reduc_uplus_v2si): Likewise.
5243         (reduc_splus_v2si): Likewise.
5244         (reduc_<sur>plus_<mode>): New.
5245         (reduc_<sur>plus_v2di): Likewise.
5246         (reduc_<sur>plus_v2si): Likewise.
5247         (reduc_<sur>plus_v4sf): Likewise.
5248         (aarch64_addpv4sf): Likewise.
5249         * config/aarch64/arm_neon.h
5250         (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
5251         * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
5252         add UNSPEC_SADDV, UNSPEC_UADDV.
5253         (SUADDV): New.
5254         (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
5255
5256 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5257
5258         * config/aarch64/arm_neon.h
5259         (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
5260
5261 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5262
5263         * config/aarch64/aarch64-builtins
5264         (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
5265
5266 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5267
5268         * config/aarch64/aarch64-simd-builtins.def
5269         (reduc_smax_): New.
5270         (reduc_smin_): Likewise.
5271         (reduc_umax_): Likewise.
5272         (reduc_umin_): Likewise.
5273         (reduc_smax_nan_): Likewise.
5274         (reduc_smin_nan_): Likewise.
5275         (fmax): Remove.
5276         (fmin): Likewise.
5277         (smax): Update for V2SF, V4SF and V2DF modes.
5278         (smin): Likewise.
5279         (smax_nan): New.
5280         (smin_nan): Likewise.
5281         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
5282         (<su><maxmin><mode>3): ...This, refactor.
5283         (s<maxmin><mode>3): New.
5284         (<maxmin_uns><mode>3): Likewise.
5285         (reduc_<maxmin_uns>_<mode>): Refactor.
5286         (reduc_<maxmin_uns>_v4sf): Likewise.
5287         (reduc_<maxmin_uns>_v2si): Likewise.
5288         (aarch64_<fmaxmin><mode>: Remove.
5289         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
5290         new builtin names.
5291         (vmin<q>_f<32,64>): Likewise.
5292         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
5293         (FMAXMIN): New.
5294         (su): Add mappings for smax, smin, umax, umin.
5295         (maxmin): New.
5296         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
5297         (FMAXMIN): Rename as...
5298         (FMAXMIN_UNS): ...This.
5299         (maxminv): Remove.
5300         (fmaxminv): Likewise.
5301         (fmaxmin): Likewise.
5302         (maxmin_uns): New.
5303         (maxmin_uns_op): Likewise.
5304
5305 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5306
5307         * config/aarch64/arm_neon.h
5308         (vac<ge, gt><sd>_f<32, 64>): Rename to...
5309         (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
5310         (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
5311
5312 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5313
5314         * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
5315         * config/aarch64/iterators.md (FAC_COMPARISONS): New.
5316
5317 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5318
5319         * config/aarch64/aarch64-simd.md
5320         (vcond<mode>_internal): Handle special cases for constant masks.
5321         (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
5322         (vcondu<mode><mode>): Likewise.
5323         (vcond<v_cmp_result><mode>): New.
5324
5325 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5326
5327         * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
5328         (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
5329         * config/aarch64/aarch64-simd-builtins.def
5330         (cmeq): Update to BUILTIN_VALLDI.
5331         (cmgt): Likewise.
5332         (cmge): Likewise.
5333         (cmle): Likewise.
5334         (cmlt): Likewise.
5335         * config/aarch64/arm_neon.h
5336         (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
5337         to builtins or C as appropriate.
5338
5339 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
5340
5341         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
5342         (cmgeu): ...This.
5343         (cmhi): Rename to...
5344         (cmgtu): ...This.
5345         * config/aarch64/aarch64-simd.md
5346         (simd_mode): Add SF.
5347         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
5348         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
5349         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
5350         (cstore<mode>_neg): ...This.
5351         * config/aarch64/iterators.md
5352         (VALLF): new.
5353         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
5354         (COMPARISONS): New.
5355         (UCOMPARISONS): Likewise.
5356         (optab): Add missing comparisons.
5357         (n_optab): New.
5358         (cmp_1): Likewise.
5359         (cmp_2): Likewise.
5360         (CMP): Likewise.
5361         (cmp): Remove.
5362         (VCMP_S): Likewise.
5363         (VCMP_U): Likewise.
5364         (V_cmp_result): Add DF, SF modes.
5365         (v_cmp_result): Likewise.
5366         (v): Likewise.
5367         (vmtype): Likewise.
5368         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
5369
5370 2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>
5371
5372         * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
5373         define_insn to define_insn_and_split.
5374         (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
5375         (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
5376         (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
5377         (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
5378         (thumb2_negscc): Likewise.
5379
5380 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
5381
5382         * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
5383
5384 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
5385
5386         * config/arm/thumb2.md: Remove trailing whitespaces.
5387
5388 2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
5389
5390         * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
5391         Use gen_int_mode rather than GEN_INT.
5392
5393 2013-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5394
5395         * value-prof.c (stream_in_histogram_value): Remove the strayed
5396         debug_gimple_stmt.
5397
5398 2013-04-30  Richard Biener  <rguenther@suse.de>
5399
5400         PR middle-end/57122
5401         * cfghooks.c (split_edge): Properly check for the loop latch edge.
5402
5403 2013-04-30  Richard Biener  <rguenther@suse.de>
5404
5405         PR middle-end/57107
5406         * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
5407
5408 2013-04-30  Andrey Belevantsev  <abel@ispras.ru>
5409
5410         PR rtl-optimization/56957
5411         PR rtl-optimization/57105
5412         * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
5413         variable.  Use just INSN_UID for determining whether an insn
5414         should be only disconnected from the insn stream.
5415         * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
5416
5417 2013-04-30  Jakub Jelinek  <jakub@redhat.com>
5418
5419         PR tree-optimization/57104
5420         * tsan.c (instrument_expr): Don't instrument accesses to
5421         DECL_HARD_REGISTER VAR_DECLs.
5422
5423 2013-04-30  Richard Biener  <rguenther@suse.de>
5424
5425         * function.h (loops_for_fn): New inline function.
5426         (set_loops_for_fn): Likewise.
5427         * cfgloop.h (place_new_loop): Add struct function parameter.
5428         (get_loop): Likewise.
5429         (get_loops): Likewise.
5430         (number_of_loops): Likewise.
5431         (fel_next): Adjust.
5432         (fel_init): Likewise.
5433         * cfg.c (get_loop_copy): Adjust.
5434         * cfgloop.c (flow_loops_dump): Likewise.
5435         (record_loop_exits): Likewise.
5436         (verify_loop_structure): Likewise.
5437         * cfgloopanal.c (mark_irreducible_loops): Likewise.
5438         (estimate_reg_pressure_cost): Likewise.
5439         (mark_loop_exit_edges): Likewise.
5440         * cfgloopmanip.c (place_new_loop): Likewise.
5441         (add_loop): Likewise.
5442         (duplicate_loop): Likewise.
5443         * graph.c (draw_cfg_nodes): Likewise.
5444         * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
5445         * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
5446         (extract_affine_chrec): Likewise.
5447         (build_scop_iteration_domain): Likewise.
5448         * graphite.c (graphite_initialize): Likewise.
5449         * ira-build.c (create_loop_tree_nodes): Likewise.
5450         (more_one_region_p): Likewise.
5451         (rebuild_regno_allocno_maps): Likewise.
5452         (mark_loops_for_removal): Likewise.
5453         (mark_all_loops_for_removal): Likewise.
5454         (remove_unnecessary_regions): Likewise.
5455         (ira_build): Likewise.
5456         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
5457         * loop-init.c (fix_loop_structure): Likewise.
5458         (gate_rtl_move_loop_invariants): Likewise.
5459         (gate_rtl_unswitch): Likewise.
5460         (gate_rtl_unroll_and_peel_loops): Likewise.
5461         (rtl_doloop): Likewise.
5462         * lto-streamer-in.c (input_cfg): Likewise.
5463         * lto-streamer-out.c (output_cfg): Likewise.
5464         * modulo-sched.c (sms_schedule): Likewise.
5465         * predict.c (tree_estimate_probability): Likewise.
5466         (tree_estimate_probability_driver): Likewise.
5467         (estimate_loops): Likewise.
5468         * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
5469         (move_sese_region_to_fn): Likewise.
5470         (debug_loop_num): Likewise.
5471         * tree-chrec.c (chrec_evaluate): Likewise.
5472         (hide_evolution_in_other_loops_than_loop): Likewise.
5473         (chrec_component_in_loop_num): Likewise.
5474         (reset_evolution_in_loop): Likewise.
5475         (evolution_function_is_invariant_rec_p): Likewise.
5476         * tree-if-conv.c (main_tree_if_conversion): Likewise.
5477         * tree-inline.c (copy_loops): Likewise.
5478         (copy_cfg_body): Likewise.
5479         (tree_function_versioning): Likewise.
5480         * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
5481         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
5482         Likewise.
5483         (add_to_evolution_1): Likewise.
5484         (scev_const_prop): Likewise.
5485         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
5486         * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
5487         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
5488         (tree_ssa_lim_initialize): Likewise.
5489         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
5490         (verify_loop_closed_ssa): Likewise.
5491         * tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
5492         (tree_ssa_loop_im): Likewise.
5493         (tree_ssa_loop_unswitch): Likewise.
5494         (tree_vectorize): Likewise.
5495         (check_data_deps): Likewise.
5496         (tree_ssa_loop_ivcanon): Likewise.
5497         (tree_ssa_loop_bounds): Likewise.
5498         (tree_complete_unroll): Likewise.
5499         (tree_complete_unroll_inner): Likewise.
5500         (tree_parallelize_loops): Likewise.
5501         (tree_ssa_loop_prefetch): Likewise.
5502         (tree_ssa_loop_ivopts): Likewise.
5503         * tree-ssa.c (execute_update_addresses_taken): Liekwise.
5504         * tree-vectorizer.c (vectorize_loops): Likewise.
5505
5506 2013-04-29  Mike Frysinger  <vapier@gentoo.org>
5507
5508         * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
5509         (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
5510         * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
5511         with EABI_LINK_SPEC.
5512
5513 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
5514
5515         PR target/44578
5516         * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
5517         alternative.
5518
5519 2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>
5520
5521         PR target/57097
5522         * lra-constraints.c (process_alt_operands): Discourage a bit more
5523         using memory for pseudos.  Print cost dump for alternatives.
5524         Modify cost values for conflicts with early clobbers.
5525         (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
5526
5527 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
5528
5529         PR target/57098
5530         * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
5531
5532 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
5533
5534         * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
5535         from/to S register.
5536         (movdi_aarch64): Support LDR/STR from/to D register.
5537
5538 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
5539
5540         * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
5541         or higher by default.
5542
5543 2013-04-29  Richard Biener  <rguenther@suse.de>
5544
5545         PR middle-end/57075
5546         * tree-inline.c (copy_edges_for_bb): Still split the bbs,
5547         even if not adding abnormal edges for calls that can make
5548         abnormal gotos.
5549
5550 2013-04-29  Richard Biener  <rguenther@suse.de>
5551
5552         PR middle-end/57103
5553         * tree-cfg.c (move_stmt_op): Fix condition under which to update
5554         TREE_BLOCK.
5555         (move_stmt_r): Remove redundant checking.
5556
5557 2013-04-29  Teresa Johnson  <tejohnson@google.com>
5558
5559         PR bootstrap/57077
5560         * basic-block.h (apply_scale): New function.
5561         (apply_probability): Use apply_scale.
5562         * gimple-streamer-in.c (input_bb): Ditto.
5563         * lto-streamer-in.c (input_cfg): Ditto.
5564         * lto-cgraph.c (merge_profile_summaries): Ditto.
5565         * tree-optimize.c (execute_fixup_cfg): Ditto.
5566         * tree-inline.c (copy_bb): Update comment to use apply_scale.
5567         (copy_edges_for_bb): Ditto.
5568         (copy_cfg_body): Ditto.
5569
5570 2013-04-29  Tom de Vries  <tom@codesourcery.com>
5571
5572         * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
5573         (replace_block_by): Don't set LOOPS_NEED_FIXUP.
5574         (tail_merge_optimize): Handle current_loops == NULL.
5575
5576 2013-04-26  Jeff Law  <law@redhat.com>
5577
5578         * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
5579         (simplify_cond_using_ranges): Generalize code to simplify
5580         COND_EXPRs where one argument is a constant and the other
5581         is an SSA_NAME created by an integral type conversion.
5582
5583 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5584
5585         * config/arm/arm.md (store_minmaxsi): Use only when
5586         optimize_insn_for_size_p.
5587
5588 2013-04-29  Christian Bruel  <christian.bruel@st.com>
5589
5590         PR target/57108
5591         * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
5592
5593 2013-04-29  Richard Biener  <rguenther@suse.de>
5594
5595         PR middle-end/57089
5596         * omp-low.c (expand_omp_taskreg): If the parent function had a broken
5597         loop tree make sure to schedule a fixup for the child as well.
5598         (expand_omp_for_generic): Properly add loops.
5599         (expand_omp_for_static_nochunk): Likewise.
5600         (expand_omp_for_static_chunk): Likewise.
5601         (expand_omp_for): For the degenerate case fixup loops.
5602         (expand_omp_sections): Fix default bb placement in loops.
5603         (expand_omp_atomic_pipeline): Properly add loops.
5604
5605 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5606
5607         * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
5608
5609 2013-04-29  Tom de Vries  <tom@codesourcery.com>
5610
5611         * tree-ssa-tail-merge.c: Update header comment.
5612
5613 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5614
5615         * config/aarch64/arm_neon.h
5616         (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
5617         (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
5618         (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
5619         (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
5620         (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
5621         (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
5622         (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
5623         (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
5624
5625 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5626
5627         * config/aarch64/aarch64-simd.md
5628         (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
5629         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
5630         fix_trunc, fixuns_trunc.
5631         (ftrunc<VDQF:mode>2): New.
5632         * config/aarch64/iterators.md (optab): Add fix, fixuns.
5633         (fix_trunc_optab): New.
5634
5635 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5636
5637         * config/aarch64/aarch64-builtins.c
5638         (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
5639         iceilf, lround, iroundf.
5640
5641 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
5642
5643         PR target/54349
5644         * config/i386/i386.h (enum ix86_tune_indices)
5645         <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
5646         New, split from X86_TUNE_INTER_UNIT_MOVES.
5647         <X86_TUNE_INTER_UNIT_MOVES>: Remove.
5648         (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
5649         (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
5650         (TARGET_INTER_UNIT_MOVES): Remove.
5651         * config/i386/i386.c (initial_ix86_tune_features): Update.
5652         Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
5653         (ix86_expand_convert_uns_didf_sse): Use
5654         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
5655         (ix86_expand_vector_init_one_nonzero): Ditto.
5656         (ix86_expand_vector_init_interleave): Ditto.
5657         (inline_secondary_memory_needed): Return true for moves from SSE class
5658         registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
5659         to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
5660         * config/i386/constraints.md (Yi, Ym): Depend on
5661         TARGET_INTER_UNIT_MOVES_TO_VEC.
5662         (Yj, Yn): New constraints.
5663         * config/i386/i386.md (*movdi_internal): Change constraints of
5664         operand 1 from Yi to Yj and from Ym to Yn.
5665         (*movsi_internal): Ditto.
5666         (*movdf_internal): Ditto.
5667         (*movsf_internal): Ditto.
5668         (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
5669         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
5670         (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
5671         (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
5672         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
5673         * config/i386/sse.md (movdi_to_sse): Ditto.
5674         (sse2_stored): Change constraint of operand 1 from Yi to Yj.
5675         Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
5676         TARGET_INTER_UNIT_MOVES.
5677         (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
5678         (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
5679         instead of TARGET_INTER_UNIT_MOVES.
5680         * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
5681         operand 1 from Yi to Yj and from Ym to Yn.
5682
5683 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5684
5685         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
5686         (float_truncate_hi_): Likewise.
5687         (float_extend_lo_): Likewise.
5688         (float_truncate_lo_): Likewise.
5689         * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
5690         (aarch64_float_extend_lo_v2df): Likewise.
5691         (vec_unpacks_hi_v4sf): Likewise.
5692         (aarch64_float_truncate_lo_v2sf): Likewise.
5693         (aarch64_float_truncate_hi_v4sf): Likewise.
5694         (vec_pack_trunc_v2df): Likewise.
5695         (vec_pack_trunc_df): Likewise.
5696
5697 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5698
5699         * config/aarch64/aarch64-builtins.c
5700         (aarch64_fold_builtin): Fold float conversions.
5701         * config/aarch64/aarch64-simd-builtins.def
5702         (floatv2si, floatv4si, floatv2di): New.
5703         (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
5704         * config/aarch64/aarch64-simd.md
5705         (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
5706         * config/aarch64/iterators.md (FLOATUORS): New.
5707         (optab): Add float, floatuns.
5708         (su_optab): Likewise.
5709
5710 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5711
5712         * config/aarch64/aarch64-builtins.c
5713         (aarch64_builtin_vectorized_function): Use new names for
5714         fcvt builtins.
5715         * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
5716         (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
5717         (fcvtzu): Split as...
5718         (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
5719         (fcvtas): Split as...
5720         (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
5721         (fcvtau): Split as...
5722         (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
5723         (fcvtps): Split as...
5724         (lceilv2sf, lceilv4sf, lceilv2df): ...This.
5725         (fcvtpu): Split as...
5726         (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
5727         (fcvtms): Split as...
5728         (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
5729         (fcvtmu): Split as...
5730         (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
5731         (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
5732         (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
5733         (lfrintnusf, lfrintnudf): Likewise.
5734         * config/aarch64/aarch64-simd.md
5735         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
5736         define_insn.
5737         (aarch64_fcvt<frint_suffix><su><mode>): Remove.
5738         * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
5739         (fcvt_pattern): Likewise.
5740
5741 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5742
5743         * config/aarch64/aarch64-simd.md
5744         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
5745         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
5746
5747 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5748
5749         * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
5750         (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
5751         (vrnd<a,m,n,p>_f32): Implement using builtins.
5752         (vrnd<i,x><q>_f<32, 64>): New.
5753
5754 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5755
5756         * config/aarch64/aarch64-builtins.c
5757         (aarch64_builtin_vectorized_function): Fold to standard pattern names.
5758         * config/aarch64/aarch64-simd-builtins.def (frintn): New.
5759         (frintz): Rename to...
5760         (btrunc): ...this.
5761         (frintp): Rename to...
5762         (ceil): ...this.
5763         (frintm): Rename to...
5764         (floor): ...this.
5765         (frinti): Rename to...
5766         (nearbyint): ...this.
5767         (frintx): Rename to...
5768         (rint): ...this.
5769         (frinta): Rename to...
5770         (round): ...this.
5771         * config/aarch64/aarch64-simd.md
5772         (aarch64_frint<frint_suffix><mode>): Delete.
5773         (<frint_pattern><mode>2): Convert to insn.
5774         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
5775         * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
5776         (frint_pattern): Likewise.
5777         (frint_suffix): Likewise.
5778
5779 2013-04-29  Richard Biener  <rguenther@suse.de>
5780
5781         PR tree-optimization/57081
5782         * loop-init.c: Include tree-flow.h.
5783         (loop_optimizer_finalize): Free number of iteration estimates.
5784         * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
5785
5786 2013-04-29  Jakub Jelinek  <jakub@redhat.com>
5787
5788         PR tree-optimization/57083
5789         * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
5790         non-singleton shift count range, zero extend low_bound for uns case.
5791
5792         * config/i386/predicates.md (general_vector_operand): New predicate.
5793         * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
5794         (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
5795         if they aren't nonimmediate operands.  If their original values
5796         satisfy const_vector_equal_evenodd_p, don't shift them.
5797         * config/i386/sse.md (mul<mode>3): Use general_vector_operand
5798         predicates.  For the SSE4.1 case force operands[{1,2}] into registers
5799         if not nonimmediate_operand.
5800         (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
5801         instead of register_operand.
5802         (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
5803
5804 2013-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5805
5806         * stor-layout.c (finalize_size_functions): Allocate a structure and
5807         reset cfun before dumping the functions.
5808
5809 2013-04-27  Jakub Jelinek  <jakub@redhat.com>
5810
5811         * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
5812
5813         PR target/56866
5814         * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
5815         use xop_pmacsdqh if uns_p.
5816         * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
5817         the immediate rotate count.
5818
5819 2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>
5820
5821         * rtl.h (struct rtx_def): Add comment for field jump.
5822         (LRA_SUBREG_P): New macro.
5823         * recog.c (register_operand): Check LRA_SUBREG_P.
5824         * lra.c (lra): Add note at the end of RTL code. Align non-empty
5825         stack frame.
5826         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5827         (lra_final_code_change): Skip subreg change for operators.
5828         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5829         if there are no operand changes.
5830         * lra-constraints.c (curr_insn_set): New.
5831         (match_reload): Set LRA_SUBREG_P.
5832         (emit_spill_move): Ditto.
5833         (check_and_process_move): Use curr_insn_set. Process only single
5834         set insns.  Don't initialize sec_mem_p and change_p.
5835         (simplify_operand_subreg): Use LRA_SUBREG_P.
5836         (reg_in_class_p): New function.
5837         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
5838         of #ifdef.  Add code to remove cycling.
5839         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5840         non-null disp.  Reload inner instead of disp when base and index
5841         are null.  Try to put lo_sum into register.
5842         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
5843         (check_and_process_move): Move code for move cost check to
5844         simple_move_p.  Remove equiv_substitution.
5845         (simple_move_p): New function.
5846         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
5847         curr_insn_set.  Call check_and_process_move only for single set
5848         insns.  Use the new function.  Move call of check_and_process_move
5849         after operand equiv substitution and address process.
5850
5851 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
5852
5853         PR go/57045
5854         * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
5855         with nonlocal goto receivers or returns twice calls, ignore
5856         unininitialized values from abnormal edges to nl goto receiver
5857         or returns twice call.
5858
5859 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
5860
5861         PR tree-optimization/57051
5862         * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
5863         and VEC_RSHIFT_EXPR if shift count is a multiple of element
5864         bitsize.
5865
5866 2013-04-26  Richard Biener  <rguenther@suse.de>
5867
5868         * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
5869         (expand_omp_taskreg): Likewise.  Mark loops for fixup.
5870         * tree-cfg.c (move_block_to_fn): Remap loop fathers.
5871         (fixup_loop_arrays_after_move): New function.
5872         (move_sese_region_to_fn): Properly outline the loop tree parts
5873         of the SESE region.
5874
5875 2013-04-26  Uros Bizjak  <ubizjak@gmail.com>
5876
5877         * config/i386/i386.md (type, unit): Fix long lines.
5878
5879 2013-04-26  Richard Biener  <rguenther@suse.de>
5880
5881         * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
5882         (lto-streamer-out.o): Likewise.
5883         * cfgloop.c (init_loops_structure): Export, add struct function
5884         argument and adjust.
5885         (flow_loops_find): Adjust.
5886         * cfgloop.h (enum loop_estimation): Add EST_LAST.
5887         (init_loops_structure): Declare.
5888         * lto-streamer-in.c: Include cfgloop.h.
5889         (input_cfg): Input the loop tree.
5890         * lto-streamer-out.c: Include cfgloop.h.
5891         (output_cfg): Output the loop tree.
5892         (output_struct_function_base): Do not drop PROP_loops.
5893
5894 2013-03-26  Richard Biener  <rguenther@suse.de>
5895
5896         * tree-cfg.c (execute_build_cfg): Build the loop tree.
5897         (pass_build_cfg): Provide PROP_loops.
5898         (move_sese_region_to_fn): Remove loops that are outlined into fn
5899         for now.
5900         * tree-inline.c: Include cfgloop.h.
5901         (initialize_cfun): Do not drop PROP_loops.
5902         (copy_loops): New function.
5903         (copy_cfg_body): Copy loop structure.
5904         (tree_function_versioning): Initialize destination loop tree.
5905         * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
5906         (pass_parallelize_loops): Do IL verification.
5907         * loop-init.c (loop_optimizer_init): Fixup loops if required.
5908         * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
5909         the CFG make sure we fixup loops as well.
5910         * tree-ssa-tail-merge.c: Include cfgloop.h.
5911         (replace_block_by): When merging loop latches mark loops for fixup.
5912         * lto-streamer-out.c (output_struct_function_base): Drop
5913         PROP_loops for now.
5914         * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
5915         (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
5916         * ipa-split.c: Include cfgloop.h.
5917         (split_function): Add the new return block to the loop tree root.
5918         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
5919         whether we have removed the forwarder block.
5920         (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
5921         * cfgloop.h (place_new_loop): Declare.
5922         * cfgloopmanip.c (place_new_loop): Export.
5923         * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
5924         (tree-switch-conversion.o): Likewise.
5925         (tree-complex.o): Likewise.
5926         (tree-inline.o): Likewise.
5927         (tree-ssa-tailmerge.o): Likewise.
5928         (ipa-split.o): Likewise.
5929         (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
5930         (tree-ssa-copy.o): Likewise.
5931         * tree-switch-conversion.c: Include cfgloop.h
5932         (process_switch): If we emit a bit-test cascade, schedule loops
5933         for fixup.
5934         * tree-complex.c: Include cfgloop.h.
5935         (expand_complex_div_wide): Properly add new basic-blocks to loops.
5936         * asan.c: Include cfgloop.h.
5937         (create_cond_insert_point): Properly add new basic-blocks to
5938         loops, schedule loop fixup.
5939         * cfgloop.c (verify_loop_structure): Check that looks are not
5940         marked for fixup.
5941         * omp-low.c (expand_parallel_call): Properly add new basic-blocks
5942         to loops.
5943         (expand_omp_for_generic): Likewise.
5944         (expand_omp_sections): Likewise.
5945         (expand_omp_atomic_pipeline): Schedule loops for fixup.
5946         * tree-ssa-copy.c: Include tree-scalar-evolution.h.
5947         (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
5948         is initialized, not when loops are present.
5949         * tree-parloops.c (parallelize_loops): Remove checking here.
5950         * passes.c (init_optimization_passes): Schedule a copy-propagation
5951         pass before complete unrolling of inner loops.
5952
5953 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
5954
5955         * Makefile.in (toplev.o): Depend on diagnostic-color.h.
5956         * diagnostic-color.c (should_colorize): Remove _WIN32 version.
5957         (colorize_init): Add argument to _WIN32 version.
5958         * toplev.c: Include diagnostic-color.h.
5959         (process_options): Default to -fdiagnostics-color=auto if
5960         GCC_COLORS env var is in the environment.
5961         * common.opt (fdiagnostics-color=): Add Var and Init.
5962         * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
5963         env var is in the environment, the default is auto rather than never.
5964
5965         * diagnostic.h (file_name_as_prefix): Add context argument.
5966         * diagnostic.c (file_name_as_prefix): Likewise.  Colorize
5967         the string as locus.
5968         * langhooks.c (lhd_print_error_function): Adjust caller.
5969
5970 2013-04-25  Lawrence Crowl  <crowl@google.com>
5971
5972         * var-tracking.c (shared_hash_def::htab):
5973         Change type to hash_table.  Update dependent calls and types.
5974
5975 2013-04-25  Lawrence Crowl  <crowl@google.com>
5976
5977         * Makefile.in: Update as needed below.
5978
5979         * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
5980         Move declaration to after the type's method definitons.
5981
5982         * attribs.c (htab_t scoped_attributes::attribute_hash):
5983         Change type to hash_table.  Update dependent calls and types.
5984
5985         * bitmap.c (htab_t bitmap_desc_hash):
5986         Change type to hash_table.  Update dependent calls and types.
5987
5988         * cselib.c (htab_t cselib_hash_table):
5989         Change type to hash_table.  Update dependent calls and types.
5990
5991         * data-streamer.h (struct string_slot): Move to lto-streamer.h.
5992         (hash_string_slot_node): Move implementation into lto-streamer.h
5993         struct string_slot_hasher.
5994         (eq_string_slot_node): Likewise.
5995
5996         * data-streamer-out.c: Update output_block::string_hash_table
5997         dependent calls and types.
5998
5999         * dwarf2cfi.c (htab_t trace_index):
6000         Change type to hash_table.  Update dependent calls and types.
6001
6002         * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
6003         Change type to hash_table.  Update dependent calls and types.
6004         (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
6005         (htab_t optimize_external_refs::map): Likewise.
6006         (htab_t output_comp_unit::extern_map): Likewise.
6007         (htab_t output_comdat_type_unit::extern_map): Likewise.
6008         (htab_t output_macinfo::macinfo_htab): Likewise.
6009         (htab_t optimize_location_lists::htab): Likewise.
6010         (htab_t dwarf2out_finish::comdat_type_table): Likewise.
6011
6012         * except.c (htab_t ehspec_hash_type):
6013         Change type to hash_table.  Update dependent calls and types.
6014         (assign_filter_values::ttypes): Likewise.
6015         (assign_filter_values::ehspec): Likewise.
6016         (sjlj_assign_call_site_values::ar_hash): Likewise.
6017         (convert_to_eh_region_ranges::ar_hash): Likewise.
6018
6019         * gcse.c (htab_t pre_ldst_table):
6020         Change type to hash_table.  Update dependent calls and types.
6021
6022         * ggc-common.c (htab_t saving_htab):
6023         Change type to hash_table.  Update dependent calls and types.
6024         (htab_t loc_hash): Likewise.
6025         (htab_t ptr_hash): Likewise.
6026         (call_count): Rename ggc_call_count.
6027         (call_alloc): Rename ggc_call_alloc.
6028         (loc_descriptor): Rename make_loc_descriptor.
6029         (add_statistics): Rename ggc_add_statistics.
6030
6031         * ggc-common.c (saving_htab):
6032         Change type to hash_table.  Update dependent calls and types.
6033
6034         * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
6035         (push_gimplify_context): Likewise.
6036         (pop_gimplify_context): Likewise.
6037         (struct gimple_temp_hash_elt): Added.
6038         (struct gimplify_hasher): Likewise.
6039         (struct gimplify_ctx.temp_htab):
6040         Change type to hash_table.  Update dependent calls and types.
6041
6042         * gimple-fold.c: Include gimplify-ctx.h.
6043
6044         * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
6045         Change type to hash_table.  Update dependent calls and types.
6046         (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
6047         avoid potential global name collision.
6048
6049         * gimplify.c: Include gimplify-ctx.h.
6050         (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
6051         (htab_t gimplify_ctx::temp_htab):
6052         Update dependent calls and types for new type hash_table.
6053         (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
6054         (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
6055
6056         * gimplify-ctx.h: New.
6057         (struct gimple_temp_hash_elt): Move from gimplify.c.
6058         (class gimplify_hasher): New.
6059         (struct gimplify_ctx): Move from gimple.h.
6060         (htab_t gimplify_ctx::temp_htab):
6061         Change type to hash_table.  Update dependent calls and types.
6062
6063         * graphite-clast-to-gimple.c: Include graphite-htab.h.
6064         (htab_t ivs_params::newivs_index):
6065         Change type to hash_table.  Update dependent calls and types.
6066         (htab_t ivs_params::params_index): Likewise.
6067         (htab_t print_generated_program::params_index): Likewise.
6068         (htab_t gloog::newivs_index): Likewise.
6069         (htab_t gloog::params_index): Likewise.
6070
6071         * graphite.c: Include graphite-htab.h.
6072         4htab_t graphite_transform_loops::bb_pbb_mapping):
6073         Change type to hash_table.  Update dependent calls and types.
6074
6075         * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
6076         (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
6077         (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
6078
6079         * graphite-dependences.c: Include graphite-htab.h.
6080         (loop_is_parallel_p): Change hash table type of parameter.
6081
6082         * graphite-htab.h: New.
6083         (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
6084         (extern find_pbb_via_hash): Move from graphite-poly.h.
6085         (extern loop_is_parallel_p): Move from graphite-poly.h.
6086         (extern get_loop_body_pbbs): Move from graphite-poly.h.
6087
6088         * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
6089         (extern loop_is_parallel_p): Move to graphite-htab.h.
6090         (extern get_loop_body_pbbs): Move to graphite-htab.h.
6091
6092         * haifa-sched.c (htab_t delay_htab):
6093         Change type to hash_table.  Update dependent calls and types.
6094         (htab_t delay_htab_i2): Likewise.
6095
6096         * ira-color.c (htab_t allocno_hard_regs_htab):
6097         Change type to hash_table.  Update dependent calls and types.
6098
6099         * ira-costs.c (htab_t cost_classes_htab):
6100         Change type to hash_table.  Update dependent calls and types.
6101
6102         * loop-invariant.c (htab_t merge_identical_invariants::eq):
6103         Change type to hash_table.  Update dependent calls and types.
6104
6105         * loop-iv.c (htab_t bivs):
6106         Change type to hash_table.  Update dependent calls and types.
6107
6108         * loop-unroll.c (htab_t opt_info::insns_to_split):
6109         Change type to hash_table.  Update dependent calls and types.
6110         (htab_t opt_info::insns_with_var_to_expand): Likewise.
6111
6112         * lto-streamer.h (struct string_slot): Move from data-streamer.h
6113         (struct string_slot_hasher): New.
6114         (htab_t output_block::string_hash_table):
6115         Change type to hash_table.  Update dependent calls and types.
6116
6117         * lto-streamer-in.c (freeing_string_slot_hasher): New.
6118         (htab_t file_name_hash_table):
6119         Change type to hash_table.  Update dependent calls and types.
6120
6121         * lto-streamer-out.c: Update output_block::string_hash_table dependent
6122         calls and types.
6123
6124         * lto-streamer.c (htab_t tree_htab):
6125         Change type to hash_table.  Update dependent calls and types.
6126
6127         * omp-low.c: Include gimplify-ctx.h.
6128
6129         * passes.c (htab_t name_to_pass_map):
6130         Change type to hash_table.  Update dependent calls and types.
6131         (pass_traverse): Rename to passes_pass_traverse.
6132
6133         * plugin.c (htab_t event_tab):
6134         Change type to hash_table.  Update dependent calls and types.
6135
6136         * postreload-gcse.c (htab_t expr_table):
6137         Change type to hash_table.  Update dependent calls and types.
6138         (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
6139
6140         * sese.c (debug_rename_map_1): Make extern.
6141         (htab_t copy_bb_and_scalar_dependences::rename_map):
6142         Change type to hash_table.  Update dependent calls and types.
6143
6144         * sese.h (extern debug_rename_map): Move to .c file.
6145
6146         * store-motion.c (htab_t store_motion_mems_table):
6147         Change type to hash_table.  Update dependent calls and types.
6148
6149         * trans-mem.c (htab_t tm_new_mem_hash):
6150         Change type to hash_table.  Update dependent calls and types.
6151
6152         * tree-browser.c (htab_t TB_up_ht):
6153         Change type to hash_table.  Update dependent calls and types.
6154
6155         * tree-cfg.c (htab_t discriminator_per_locus):
6156         Change type to hash_table.  Update dependent calls and types.
6157
6158         * tree-complex.c: Include tree-hasher.h
6159         (htab_t complex_variable_components):
6160         Change type to hash_table.  Update dependent calls and types.
6161
6162         * tree-eh.c (htab_t finally_tree):
6163         Change type to hash_table.  Update dependent calls and types.
6164
6165         * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
6166         struct int_tree_hasher.
6167         (extern int_tree_map_eq): Likewise.
6168         (uid_decl_map_hash): Removed.
6169         (extern decl_tree_map_eq): Likewise.
6170
6171         * tree-hasher.h: New.
6172         (struct int_tree_hasher): New.
6173         (typedef int_tree_htab_type): New.
6174
6175         * tree-inline.c: Include gimplify-ctx.h.
6176
6177         * tree-mudflap.c: Include gimplify-ctx.h.
6178
6179         * tree-parloops.c: Include tree-hasher.h.
6180         (htab_t eliminate_local_variables_stmt::decl_address):
6181         Change type to hash_table.  Update dependent calls and types.
6182         (htab_t separate_decls_in_region::decl_copies): Likewise.
6183
6184         * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
6185         Change type to hash_table.  Update dependent calls and types.
6186
6187         * tree-sra.c (candidates):
6188         Change type to hash_table.  Update dependent calls and types.
6189
6190         * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
6191         in tree-flow.h.
6192         (int_tree_map_hash): Likewise.
6193
6194         * tree-ssa-dom.c (htab_t avail_exprs):
6195         Change type to hash_table.  Update dependent calls and types.
6196
6197         * tree-ssa-live.c (var_map_base_init::tree_to_index):
6198         Change type to hash_table.  Update dependent calls and types.
6199
6200         * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
6201         Change type to hash_table.  Update dependent calls and types.
6202
6203         * tree-ssa-phiopt.c (seen_ssa_names):
6204         Change type to hash_table.  Update dependent calls and types.
6205
6206         * tree-ssa-strlen.c (decl_to_stridxlist_htab):
6207         Change type to hash_table.  Update dependent calls and types.
6208
6209         * tree-ssa-uncprop.c (equiv):
6210         Change type to hash_table.  Update dependent calls and types.
6211
6212 2013-04-25  Jakub Jelinek  <jakub@redhat.com>
6213
6214         PR rtl-optimization/57003
6215         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
6216         call note_stores with kill_clobbered_value callback again after
6217         killing regs_invalidated_by_call.
6218
6219 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
6220
6221         * config/aarch64/aarch64-simd.md
6222         (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
6223         (aarch64_simd_bsl<mode>): Likewise.
6224         * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
6225
6226 2013-04-25  Marek Polacek  <polacek@redhat.com>
6227
6228         PR tree-optimization/57066
6229         * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
6230
6231 2013-04-25  James Greenhalgh  <jame.greenhalgh@arm.com>
6232
6233         * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
6234
6235 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
6236
6237         * config/aarch64/aarch64-builtins.c
6238         (aarch64_fold_builtin): New.
6239         * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
6240         * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
6241         * config/aarch64/aarch64-simd-builtins.def (abs): New.
6242         * config/aarch64/arm_neon.h
6243         (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
6244
6245 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
6246             Tejas Belagod  <tejas.belagod@arm.com>
6247
6248         * config/aarch64/aarch64-builtins.c
6249         (aarch64_gimple_fold_builtin): New.
6250         * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
6251         * config/aarch64/aarch64-simd-builtins.def (addv): New.
6252         * config/aarch64/aarch64-simd.md (addpv4sf): New.
6253         (addvv4sf): Update.
6254         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
6255
6256 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6257
6258         * config/aarch64/aarch64.md
6259         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
6260
6261 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6262
6263         * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
6264         (*ngcsi_uxtw): New pattern.
6265
6266 2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6267             Julian Brown  <julian@codesourcery.com>
6268
6269         * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
6270         (TB_DREG): Add T_V4HF.
6271         (v4hf_UP): New macro.
6272         (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
6273         (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
6274         Handle initialisation of V4HF. Adjust initialisation of reinterpret
6275         built-ins.
6276         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
6277         (arm_vector_mode_supported_p): Handle V4HF.
6278         (arm_mangle_map): Handle V4HFmode.
6279         * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
6280         * config/arm/arm_neon_builtins.def: Add entries for
6281         vcvtv4hfv4sf, vcvtv4sfv4hf.
6282         * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
6283         (neon_vcvtv4hfv4sf): Likewise.
6284         * config/arm/neon-gen.ml: Handle half-precision floating point
6285         features.
6286         * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
6287         * config/arm/arm_neon.h: Regenerate.
6288         * config/arm/neon.ml (type elts): Add F16.
6289         (type vectype): Add T_float16x4, T_floatHF.
6290         (type vecmode): Add V4HF.
6291         (type features): Add Requires_FP_bit feature.
6292         (elt_width): Handle F16.
6293         (elt_class): Likewise.
6294         (elt_of_class_width): Likewise.
6295         (mode_of_elt): Refactor.
6296         (type_for_elt): Handle F16, fix error messages.
6297         (vectype_size): Handle T_float16x4.
6298         (vcvt_sh): New function.
6299         (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
6300         (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
6301         (string_of_mode): Handle V4HF.
6302         * doc/arm-neon-intrinsics.texi: Regenerate.
6303
6304 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
6305
6306         * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
6307         format specifier in 'X' case.
6308
6309 2013-04-25  Alan Modra  <amodra@gmail.com>
6310
6311         PR target/57052
6312         * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
6313         rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
6314         (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
6315         Repeat for many other rotate/shift and mask patterns using subregs.
6316         Name lshiftrt insns.
6317         (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
6318         on WORDS_BIG_ENDIAN.
6319
6320 2013-04-25  Alan Modra  <amodra@gmail.com>
6321
6322         * config.gcc: Support little-endian powerpc-linux targets.
6323         * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
6324         (LINK_OS_LINUX_SPEC): Define.
6325         * config/rs6000/linuxspe.h (TARGET_DEFAULT):
6326         Preserve MASK_LITTLE_ENDIAN.
6327         * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
6328         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
6329         * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
6330         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
6331         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
6332         * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
6333         Correct fp word order for little-endian.  Don't shift toc entries
6334         smaller than a word for little-endian.
6335         * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
6336         (bswapdi2 splits): Correct low-part subreg for little-endian.
6337         Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
6338         low/high where such is correct only for be.
6339         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
6340         little-endian for -mcall-aixdesc.
6341
6342 2013-04-25  Alan Modra  <amodra@gmail.com>
6343
6344         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
6345         replace_equiv_address_nv.
6346
6347 2013-04-25  Alan Modra  <amodra@gmail.com>
6348
6349         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
6350
6351 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6352
6353         Revert:
6354         2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6355         * rtl.h (struct rtx_def): ...
6356
6357 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6358
6359         PR rtl-optimizations/57046
6360         * lra-constraints (split_reg): Set up lra_risky_transformations_p
6361         for multi-reg splits.
6362
6363 2013-04-24  H.J. Lu  <hongjiu.lu@intel.com>
6364
6365         * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
6366
6367 2013-04-24  Sterling Augustine  <saugustine@google.com>
6368
6369         * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
6370         (comp_dir_string, debug_str_dwo_section): New.
6371         (DEBUG_STR_DWO_SECTION): Rename to ...
6372         (DEBUG_DWO_STR_SECTION): ... this.
6373         (DEBUG_NORM_STR_SECTION): Delete.
6374         (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
6375         (DEBUG_STR_DWO_SECTION_FLAGS): New.
6376         (find_AT_string): Move most logic to ...
6377         (find_AT_string_in_table): ... here.  New.
6378         (add_top_level_skeleton_die_attrs): Call comp_dir_string and
6379         add_skeleton_AT_string.  Delete logic.
6380         (output_skeleton_debug_sections): Remove call to
6381         add_top_level_skeleton_die_attrs.
6382         (add_comp_dir_attribute): Move logic to comp_dir_string.
6383         (dwarf2out_init): Initialize debug_str_dwo_section.
6384         (output_indirect_string): Call find_string_form.
6385         (output_indirect_strings): Rewrite.
6386         (prune_unused_types): Empty skeleton_debug_str_hash.
6387         Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
6388         (dwarf2out_finish):  Call output_indirect_strings.
6389
6390 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
6391
6392         * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
6393
6394 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6395
6396         * rtl.h (struct rtx_def): Add comment for field jump.
6397         (LRA_SUBREG_P): New macro.
6398         * recog.c (register_operand): Check LRA_SUBREG_P.
6399         * lra.c (lra): Add note at the end of RTL code. Align non-empty
6400         stack frame.
6401         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
6402         (lra_final_code_change): Skip subreg change for operators.
6403         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
6404         if there are no operand changes.
6405         * lra-constraints.c (curr_insn_set): New.
6406         (match_reload): Set LRA_SUBREG_P.
6407         (emit_spill_move): Ditto.
6408         (check_and_process_move): Use curr_insn_set. Process only single
6409         set insns.  Don't initialize sec_mem_p and change_p.
6410         (simplify_operand_subreg): Use LRA_SUBREG_P.
6411         (reg_in_class_p): New function.
6412         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
6413         of #ifdef.  Add code to remove cycling.
6414         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
6415         non-null disp.  Reload inner instead of disp when base and index
6416         are null.  Try to put lo_sum into register.
6417         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
6418         (check_and_process_move): Move code for move cost check to
6419         simple_move_p.  Remove equiv_substitution.
6420         (simple_move_p): New function.
6421         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
6422         curr_insn_set.  Call check_and_process_move only for single set
6423         insns.  Use the new function.  Move call of check_and_process_move
6424         after operand equiv substitution and address process.
6425
6426 2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
6427
6428         * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
6429         (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
6430         (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
6431
6432 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
6433
6434         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
6435
6436 2013-04-24  Marek Polacek  <polacek@redhat.com>
6437
6438         * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
6439         * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
6440         (select_loops_exit_conditions): Likewise.
6441         (number_of_iterations_for_all_loops): Likewise.
6442         (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
6443         (scev_analysis): Likewise.
6444
6445 2013-04-02  Catherine Moore  <clm@codesourcery.com>
6446             Chao-ying Fu <fu@mips.com>
6447
6448         * config/mips/micromips.md (jraddiusp): New pattern.
6449         * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
6450         instruction if possible.
6451
6452 2013-04-24  Alan Modra  <amodra@gmail.com>
6453
6454         * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
6455
6456 2013-04-24  Julian Brown  <julian@codesourcery.com>
6457             Chung-Lin Tang  <cltang@codesourcery.com>
6458
6459         * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
6460         dependency behavior in enumeration type DIE generation. Add TODO note
6461         to comments about future DW_FORM_sdata/udata re-work of related code.
6462
6463 2013-04-23  Lawrence Crowl  <crowl@google.com>
6464
6465         * Makefile.in: Update as needed below.
6466
6467         * hash-table.h (class hash_table):
6468         Correct many methods with parameter types compare_type to the correct
6469         value_type.  (Correct code was unlikely to notice the change.)
6470         (hash_table::elements_with_deleted) New.
6471         (class hashtable::iterator): New.
6472         (hashtable::begin()): New.
6473         (hashtable::end()): New.
6474         (FOR_EACH_HASH_TABLE_ELEMENT): New.
6475
6476         * statistics.c (statistics_hashes):
6477         Change type to hash_table.  Update dependent calls and types.
6478
6479         * tree-into-ssa.c (var_infos):
6480         Change type to hash_table.  Update dependent calls and types.
6481
6482         * tree-ssa-coalesce.c (struct coalesce_list_d.list):
6483         Change type to hash_table.  Update dependent calls and types.
6484
6485         * tree-ssa-loop-im.c (struct mem_ref.refs):
6486         Change type to hash_table.  Update dependent calls and types.
6487
6488         * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
6489         Change type to hash_table.  Update dependent calls and types.
6490
6491         * tree-ssa-sccvn.c (vn_tables_s::nary):
6492         Change type to hash_table.  Update dependent calls and types.
6493         (vn_tables_s::phis): Likewise.
6494         (vn_tables_s::references): Likewise.
6495
6496         * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
6497         (vn_reference_eq): Update parameter and return types.
6498
6499         * tree-ssa-structalias.c (pointer_equiv_class_table):
6500         Change type to hash_table.  Update dependent calls and types.
6501         (location_equiv_class_table): Likewise.
6502
6503         * tree-vect-data-refs.c: Consequential changes for making
6504         peeling a hash_table.
6505
6506         * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
6507         (destroy_loop_vec_info): Dependent hash_table update.
6508
6509         * tree-vectorizer.h (peeling_htab):
6510         Change type to hash_table.  Update dependent calls and types.
6511
6512 2013-04-23  Shiva Chen  <shiva0217@gmail.com>
6513
6514         * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
6515         to check the register content is equal or not.
6516         * lra-constraints.c (match_reload): Use lra_assign_reg_val
6517         to assign register content record.
6518         * lra-eliminations.c (update_reg_eliminate): Use
6519         lra_update_reg_val_offset to update register content offset.
6520         * lra-int.h (struct lra_reg): Add offset member.
6521         (lra_reg_val_equal_p): New static inline function.
6522         (lra_update_reg_val_offset): New static inline function.
6523         (lra_assign_reg_val): New static inline function.
6524         * lra.c (lra_create_new_reg): Use lra_assign_reg_val
6525         to assign register content record.
6526         (initialize_lra_reg_info_element): Initial offset to zero.
6527
6528 2013-04-23  Catherine Moore  <clm@codesourcery.com>
6529
6530         * config/mips/mips.md (*movhi_internal, *movqi_internal): New
6531         operands.  Record compression.
6532
6533 2013-04-23  Xinliang David Li  <davidxl@google.com>
6534
6535         * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
6536
6537 2013-04-23  Richard Biener  <rguenther@suse.de>
6538
6539         PR middle-end/57036
6540         * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
6541         parameter, only add abnormal goto edges from the copied body
6542         if the call could perform abnormal gotos.
6543         (copy_cfg_body): Adjust.
6544
6545 2013-04-23  Sofiane Naci  <sofiane.naci@arm.com>
6546
6547         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
6548
6549 2013-04-23  Andreas Schwab  <schwab@linux-m68k.org>
6550
6551         * coretypes.h (gimple_stmt_iterator): Add struct to make
6552         compatible with C.
6553
6554 2013-04-23  Richard Biener  <rguenther@suse.de>
6555
6556         PR tree-optimization/57026
6557         * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
6558         from SSA names occuring in abnormal PHI nodes.
6559
6560 2013-04-22  Andi Kleen  <ak@linux.intel.com>
6561
6562         * lto/lto.c (print_lto_report_1): Fix LTO report names.
6563
6564 2013-04-22  Andi Kleen  <ak@linux.intel.com>
6565
6566         * lto/lto.c (print_lto_report_1): Declare early.
6567         (read_cgraph_and_symbols): Call print_lto_report_1 early.
6568
6569 2013-04-22  Andi Kleen  <ak@linux.intel.com>
6570
6571         * common.opt (-flto-report-wpa): Add.
6572         * doc/invoke.texi (-flto-report-wpa): Add.
6573         * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
6574         (lto_main): dito.
6575
6576 2013-04-22  Xinliang David Li  <davidxl@google.com>
6577
6578         * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
6579         * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
6580         * Makefile.in: New dependency
6581
6582             David Daney <ddaney.cavm@gmail.com>
6583
6584         * configure.ac (gcc_cv_as_micromips_support):  Use the
6585         --fatal-warnings option.
6586         * configure: Regenerate.
6587
6588 2013-04-22  Marek Polacek  <polacek@redhat.com>
6589
6590         PR sanitizer/56990
6591         * tsan.c (instrument_expr): Don't instrument expression
6592         in case its size is zero.
6593
6594 2013-04-22  Uros Bizjak  <ubizjak@gmail.com>
6595
6596         PR target/57032
6597         Revert:
6598         2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
6599
6600         * config/alpha/alpha.c (TARGET_LRA_P): New define.
6601
6602 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
6603
6604         * coretypes.h (gimple_stmt_iterator_d): Forward declare.
6605         (gimple_stmt_iterator): New typedef.
6606         * gimple.h (gimple_stmt_iterator): Rename to...
6607         (gimple_stmt_iterator_d): ... This.
6608         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
6609         trees be valid for GIMPLE and GENERIC.
6610         (TARGET_GIMPLE_FOLD_BUILTIN): New.
6611         * gimple-fold.c (gimple_fold_call): Call target hook
6612         gimple_fold_builtin.
6613         * hooks.c (hook_bool_gsiptr_false): New.
6614         * hooks.h (hook_bool_gsiptr_false): New.
6615         * target.def (fold_stmt): New.
6616         * doc/tm.texi: Regenerate.
6617
6618 2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
6619
6620         PR target/57018
6621         * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
6622         a set sp if no stack realignment.
6623
6624 2013-04-22  Nick Clifton  <nickc@redhat.com>
6625
6626         * config.gcc (tilegx-linux): Extend extra_objs rather than
6627         overwriting it.
6628         (tilepro-linux): Likewise.
6629
6630 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
6631
6632         * config/aarch64/aarch64-builtins.c
6633         (CF): Remove.
6634         (CF0, CF1, CF2, CF3, CF4, CF10): New.
6635         (VAR<1-12>): Add MAP parameter.
6636         (BUILTIN_*): Likewise.
6637         * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
6638         * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
6639         (aarch64_ushl_n<mode>): Likewise.
6640         (aarch64_sshr_n<mode>): Likewise.
6641         (aarch64_ushr_n<mode>): Likewise.
6642         (aarch64_<maxmin><mode>): Likewise.
6643         (aarch64_sqrt<mode>): Likewise.
6644         * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
6645         (vshr<q>_n_*): Likewise.
6646
6647 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
6648
6649         * config/aarch64/aarch64-builtins.c
6650         (aarch64_simd_builtin_type_mode): Handle SF types.
6651         (sf_UP): Define.
6652         (BUILTIN_GPF): Define.
6653         (aarch64_init_simd_builtins): Handle SF types.
6654         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
6655         (frecps): Likewise.
6656         (frecpx): Likewise.
6657         * config/aarch64/aarch64-simd.md
6658         (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
6659         (aarch64_frecpe<mode>): New.
6660         (aarch64_frecps<mode>): Likewise.
6661         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
6662         (v8type): Add frecp<esx>.
6663         (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
6664         (aarch64_frecps<mode>): Likewise.
6665         * config/aarch64/iterators.md (FRECP): New.
6666         (frecp_suffix): Likewise.
6667         * config/aarch64/arm_neon.h
6668         (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
6669
6670 2013-04-22  Christian Bruel  <christian.bruel@st.com>
6671
6672         PR target/56995
6673         * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
6674         (REG_CLASS_NAMES): Idem.
6675         (REG_CLASS_CONTENTS): Idem.
6676         (REGCLASS_HAS_FP_REG): Idem.
6677         * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
6678         (sh_conditional_register_usage): Idem.
6679
6680 2013-04-21  Jeff Law  <law@redhat.com>
6681
6682         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
6683         (ssa_forward_propagate_and_combine): Use it.
6684
6685 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
6686
6687         * lra.c: Update the flow chart diagram.
6688
6689 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
6690
6691         PR rtl-optimization/56847
6692         * lra-constraints.c (process_alt_operands): Discourage alternative
6693         with non-matche doffsettable memory constraint fro memory with
6694         known offset.
6695
6696 2013-04-19  Richard Biener  <rguenther@suse.de>
6697
6698         PR tree-optimization/56982
6699         * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
6700         function.
6701         * gimplify.c (gimplify_call_expr): Notice special calls.
6702         (gimplify_modify_expr): Likewise.
6703         * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
6704         abnormal control flow receivers.
6705         (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
6706         in the same way as cfun->has_nonlocal_labels.
6707         (gimple_purge_dead_abnormal_call_edges): Likewise.
6708         (stmt_starts_bb_p): Make setjmp-like abnormal control flow
6709         receivers start a basic-block.
6710
6711 2013-04-19  Richard Biener  <rguenther@suse.de>
6712
6713         * tree-vectorizer.h (struct _slp_instance): Move load_permutation
6714         member ...
6715         (struct _slp_tree): ... here.  Make it a vector of unsigned ints.
6716         (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
6717         (SLP_TREE_LOAD_PERMUTATION): Add.
6718         (vect_transform_slp_perm_load): Adjust prototype.
6719         * tree-vect-slp.c (vect_free_slp_tree): Adjust.
6720         (vect_free_slp_instance): Likewise.
6721         (vect_create_new_slp_node): Likewise.
6722         (vect_supported_slp_permutation_p): Remove.
6723         (vect_slp_rearrange_stmts): Adjust.
6724         (vect_supported_load_permutation_p): Likewise.  Inline
6725         vect_supported_slp_permutation_p here.
6726         (vect_analyze_slp_instance): Compute load permutations per
6727         slp node instead of per instance.
6728         (vect_get_slp_defs): Adjust.
6729         (vect_transform_slp_perm_load): Likewise.
6730         (vect_schedule_slp_instance): Remove redundant code.
6731         (vect_schedule_slp): Remove hack for PR56270, add it ...
6732         * tree-vect-stmts.c (vectorizable_load): ... here, do not
6733         CSE loads for SLP.  Adjust.
6734
6735 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
6736
6737         * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
6738         spelling in two comments.
6739
6740 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
6741
6742         PR target/56797
6743         * config/arm/arm.c (load_multiple_sequence): Require SP
6744         as base register for loads if SP is in the register list.
6745
6746 2013-04-19  Martin Jambor  <mjambor@suse.cz>
6747
6748         PR tree-optimization/56718
6749         * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
6750         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
6751         and made public.  Adjusted all callers.
6752         (ipa_intraprocedural_devirtualization): New function.
6753         * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
6754         (ipa_intraprocedural_devirtualization): Likewise.
6755         * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
6756
6757 2013-04-19  Richard Biener  <rguenther@suse.de>
6758
6759         PR tree-optimization/57000
6760         * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
6761
6762 2013-04-19  Terry Guo  <terry.guo@arm.com>
6763
6764         * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
6765         Replace with ...
6766         (cortex_m4_v_a,  cortex_m4_v_b): ... new cpu units.
6767         (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
6768         (cortex_m4_fmacs): Use new reservations.
6769         (cortex_m4_f_load, cortex_m4_f_store): Likewise.
6770
6771 2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>
6772
6773         PR rtl-optimization/56999
6774         * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
6775         related code.
6776         (lra_coalesce): Remove split_origin_bitmap and related code.
6777         * lra.c (lra): Coalesce after undoing inheritance.  Recreate live
6778         ranges if necessary.
6779
6780 2013-04-18  Uros Bizjak  <ubizjak@gmail.com>
6781
6782         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
6783         New array.
6784         (ix86_expand_call): Remove clobbered_registers array and use
6785         x86_64_ms_sysv_extra_clobbered_registers instead.
6786         * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
6787         Declare here.
6788         * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
6789         predicate.
6790         * config/i386/i386.md (*call_rex64_ms_sysv): Use
6791         call_rex64_ms_sysv_operation predicate.  Remove explicit clobbers.
6792         (*call_value_rex64_ms_sysv): Ditto.
6793
6794 2013-04-18  Cary Coutant  <ccoutant@google.com>
6795
6796         * dwarf2out.c (output_pubnames): Check die_perennial_p of
6797         parent instead of die_mark.
6798
6799 2013-04-18  Diego Novillo  <dnovillo@google.com>
6800
6801         * gimple.c (create_gimple_tmp): New.
6802         (get_expr_type): New.
6803         (build_assign): New.
6804         (build_type_cast): New.
6805         * gimple.h (enum ssa_mode): Define.
6806         (gimple_seq_set_location): New.
6807         * asan.c (build_check_stmt): Change some gimple_build_* calls
6808         to use build_assign and build_type_cast.
6809
6810 2013-04-18  Richard Biener  <rguenther@suse.de>
6811
6812         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
6813         handle negative step.  Remove redundant checks.
6814         (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
6815         * tree-vect-stmts.c (vectorizable_load): Instead of asserting
6816         for negative step and grouped loads fail to vectorize.
6817
6818 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
6819
6820         * emit-rtl.c (reset_insn_used_flags): New function.
6821         (reset_all_used_flags): Use it.
6822         (verify_insn_sharing): New function.
6823         (verify_rtl_sharing): Fix verification for SEQUENCEs.
6824
6825 2013-04-18  Jakub Jelinek  <jakub@redhat.com>
6826
6827         PR tree-optimization/56984
6828         * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
6829         and (x >> M) >= N don't register any assertion if N << M is the
6830         minimum value.
6831
6832 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
6833
6834         * lower-subreg.c (resolve_simple_move): If called self-recursive,
6835         do not delete_insn insns that have not yet been emitted, only
6836         unlink them with remove_insn.
6837         * df-scan.c (df_insn_delete): Revert r197492.
6838
6839 2013-04-17  Steven Bosscher  <steven@gcc.gnu.org>
6840
6841         * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
6842         * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
6843
6844 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
6845
6846         * config/arm/arm.md (movsicc_insn): Convert define_insn into
6847         define_insn_and_split.
6848         (and_scc,ior_scc,negscc): Likewise.
6849         (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
6850
6851 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
6852
6853         * config/arm/arm.c (use_return_insn): Return 0 for targets that
6854         can benefit from using a sequence of LDRD instructions in epilogue
6855         instead of a single LDM instruction.
6856
6857 2013-04-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6858
6859         PR 45688
6860         * doc/extend.texi: Fix typo.
6861
6862 2013-04-17  Richard Biener  <rguenther@suse.de>
6863
6864         * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
6865         (vect_build_slp_tree): ... here.
6866         (vect_build_slp_tree_1): Compute which stmts of the SLP group
6867         match.  Remove special-casing of mismatched complex loads.
6868         (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
6869         re-try the match with swapped commutative operands.
6870         (vect_supported_load_permutation_p): Remove special-casing of
6871         mismatched complex loads.
6872         (vect_analyze_slp_instance): Adjust.
6873
6874 2013-04-17  Richard Biener  <rguenther@suse.de>
6875
6876         PR rtl-optimization/56921
6877         * cfgloop.h (struct loop): Add simple_loop_desc member.
6878         (struct niter_desc): Mark with GTY(()).
6879         (simple_loop_desc): Do not use aux field but simple_loop_desc.
6880         * loop-iv.c (get_simple_loop_desc): Likewise.
6881         (free_simple_loop_desc): Likewise.
6882
6883         Revert
6884         2013-04-16  Richard Biener  <rguenther@suse.de>
6885
6886         PR rtl-optimization/56921
6887         * loop-init.c (pass_rtl_move_loop_invariants): Add
6888         TODO_do_not_ggc_collect to todo_flags_finish.
6889         (pass_rtl_unswitch): Same.
6890         (pass_rtl_unroll_and_peel_loops): Same.
6891         (pass_rtl_doloop): Same.
6892
6893 2013-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6894
6895         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
6896         (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
6897         Use nonoverlapping_component_refs_of_decl_p to disambiguate component
6898         references.
6899         (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
6900         * tree-streamer.c (record_common_node): Adjust reference in comment.
6901
6902 2013-04-17  Terry Guo  <terry.guo@arm.com>
6903
6904         * config/arm/cortex-m4.md: Add a new bypass.
6905
6906 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6907
6908         * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
6909         New pattern.
6910         (*subs_<optab><mode>_multp2): New pattern.
6911         (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
6912         (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
6913
6914 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6915
6916         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
6917         (*subs_mul_imm_<mode>): New pattern.
6918
6919 2013-04-16  David Edelsohn  <dje.gcc@gmail.com>
6920
6921         PR target/56948
6922         * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
6923         (vsx_movti_64bit): Change j->wa to O->wa.  Add n->r alternative.
6924         (vsx_movti_32bit): Change j->wa to O->wa.
6925
6926 2013-04-16  Richard Biener  <rguenther@suse.de>
6927
6928         PR rtl-optimization/56921
6929         * loop-init.c (pass_rtl_move_loop_invariants): Add
6930         TODO_do_not_ggc_collect to todo_flags_finish.
6931         (pass_rtl_unswitch): Same.
6932         (pass_rtl_unroll_and_peel_loops): Same.
6933         (pass_rtl_doloop): Same.
6934
6935 2013-04-16  Greta Yorsh  <Greta.Yorsh@arm.com>
6936
6937         * config/arm/arm.c (emit_multi_reg_push): New declaration
6938         for an existing function.
6939         (arm_emit_strd_push): New function.
6940         (arm_expand_prologue): Used here.
6941         (arm_emit_ldrd_pop): New function.
6942         (arm_expand_epilogue): Used here.
6943         (arm_get_frame_offsets): Update condition.
6944         (arm_emit_multi_reg_pop): Add a special case for load of a single
6945         register with writeback.
6946
6947 2013-04-16  Uros Bizjak  <ubizjak@gmail.com>
6948
6949         * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
6950         description.
6951
6952 2013-04-16  Richard Biener  <rguenther@suse.de>
6953
6954         PR tree-optimization/56756
6955         * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
6956         (first_mem_ref_loc): New.
6957         (execute_sm): Place the load temporarily before a previous
6958         access instead of in the latch edge to ensure its SSA dependencies
6959         are defined at points dominating the load.
6960
6961 2013-04-16  Steven Bosscher  <steven@gcc.gnu.org>
6962
6963         * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
6964         correct fix by moving header and footer insn to the footer of
6965         the merged basic block.  Clear BB_END of the merged-away block.
6966
6967         PR middle-end/43631
6968         * emit-rtl.c (make_note_raw): New function.
6969         (link_insn_into_chain): New static inline function.
6970         (add_insn): Use it.
6971         (add_insn_before, add_insn_after): Factor insn chain linking code...
6972         (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
6973         using link_insn_into_chain.
6974         (note_outside_basic_block_p): New helper function for emit_note_after
6975         and emit_note_before.
6976         (emit_note_after): Use nobb variant of add_insn_after if the note
6977         should not be contained in a basic block.
6978         (emit_note_before): Use nobb variant of add_insn_before if the note
6979         should not be contained in a basic block.
6980         (emit_note_copy): Use make_note_raw.
6981         (emit_note): Likewise.
6982         * bb-reorder.c (insert_section_boundary_note): Remove hack to set
6983         BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
6984         * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
6985         the moved barrier the tail of the basic block it follows.
6986         * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
6987
6988 2013-04-15  Jakub Jelinek  <jakub@redhat.com>
6989
6990         PR tree-optimization/56962
6991         * gimple-ssa-strength-reduction.c (record_increment): Only set
6992         initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
6993         either rhs1 or rhs2 is equal to c->base_expr.
6994
6995 2013-04-15  Richard Biener  <rguenther@suse.de>
6996
6997         PR tree-optimization/56933
6998         * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
6999         member.
7000         (GROUP_READ_WRITE_DEPENDENCE): Remove.
7001         (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
7002         * tree-vect-data-refs.c (vect_analyze_group_access): Move
7003         dependence check ...
7004         vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
7005         ... here.
7006         * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
7007         GROUP_READ_WRITE_DEPENDENCE.
7008
7009 2013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7010
7011         * emit-rtl.c (reset_all_used_flags): New function.
7012         (verify_rtl_sharing): Call reset_all_used_flags before and after
7013         performing the checks.
7014
7015 2013-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7016
7017         * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
7018         * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
7019         * config/arm/constraints.md (De): New constraint.
7020         * config/arm/neon.md (anddi3_neon): Delete.
7021         (neon_vand<mode>): Expand to standard anddi3 pattern.
7022         * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
7023         Move earlier in the file.
7024         (neon_inv_logic_op2): Likewise.
7025         (arm_anddi_operand_neon): New predicate.
7026
7027 2013-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7028
7029         * configure.ac (gcc_cv_ld_as_needed): Set
7030         gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
7031         Use -z ignore, -z record on *-*-solaris2*.
7032         (HAVE_LD_AS_NEEDED): Update comment.
7033         (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
7034         * configure: Regenerate.
7035         * config.in: Regenerate.
7036         * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
7037         LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
7038         * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
7039         * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
7040         equivalents.  Fix markup.
7041         * doc/tm.texi: Regenerate.
7042
7043 2013-04-15  Andrew Hsieh  <andrewhsieh.google.com>
7044
7045         * config/i386/i386.opt: New option mstack-protector-guard=.
7046         * config/i386/i386-opts.h: Add enum stack_protector_guard.
7047         * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
7048         TARGET_SSP_TLS_GUARD.
7049         * config/i386/i386.c (ix86_option_override_internal): Set
7050         ix86_stack_protector_guard.
7051         * config/i386/i386.md (stack_protect_set): Enable for
7052         TARGET_SSP_TLS_GUARD only.
7053         (stack_protect_set_<mode>): Ditto.
7054         (stack_protect_test): Ditto.
7055         (stack_protect_test_<mode>): Ditto.
7056         * doc/invoke.texi (i386 Option): Document.
7057
7058 2013-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7059
7060         PR target/56890
7061         * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
7062         (S_MODES): Set H_MODE bit.
7063         (SF_MODES): Set only S_MODE and SF_MODE bits.
7064         (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
7065         (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
7066         <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
7067         <MODE_FLOAT>: Likewise.
7068
7069 2013-04-15  Joey Ye  <joey.ye@arm.com>
7070
7071         * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
7072
7073 2013-04-15  Joey Ye  <joey.ye@arm.com>
7074
7075         * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
7076         for real far jump.
7077         (thumb_far_jump_used_p): Count instruction size and set
7078         far_jump_used.
7079
7080 2013-04-14  Eric Botcazou  <ebotcazou@adacore.com>
7081
7082         * reorg.c (fill_simple_delay_slots): Reindent block of code.
7083         * resource.c (mark_target_live_regs): Reformat conditional block.
7084
7085 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
7086
7087         * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
7088         notes, they are emitted only just before final.
7089         * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
7090
7091 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
7092
7093         * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
7094         * cfgrtl.c (delete_insn): Call it here instead.
7095         * lra-spills.c (lra_final_code_change): Use delete_insn.
7096         * haifa-sched.c (sched_remove_insn): Likewise.
7097         * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
7098         returning to the nop pool.
7099         (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
7100         use delete_insn for definitive removal.  Clear BLOCK_FOR_INSN.
7101
7102 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
7103
7104         * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
7105         * doc/tm.texi: Regenerated.
7106
7107 2013-04-12  Uros Bizjak  <ubizjak@gmail.com>
7108
7109         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
7110         QImode checks.
7111
7112 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
7113
7114         * df-core.c (df_find_def): Compare register numbers.
7115         (df_find_use): Likewise.
7116
7117 2013-04-12  Vladimir Makarov  <vmakarov@redhat.com>
7118
7119         PR target/56903
7120         * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
7121         lra_in_progress for return.
7122
7123 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
7124
7125         * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
7126         define_insn into define_insn_and_split and emit movsicc patterns.
7127
7128 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
7129
7130         * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
7131
7132 2013-04-12  Richard Biener  <rguenther@suse.de>
7133
7134         * tree-pass.h (TODO_do_not_ggc_collect): New.
7135         * passes.c (execute_one_ipa_transform_pass): Honor
7136         TODO_do_not_ggc_collect.
7137         (execute_one_pass): Likewise.
7138
7139         Revert
7140         2013-04-10  Richard Biener  <rguenther@suse.de>
7141
7142         * passes.c (init_optimization_passes): Remove reload pass.
7143         * ira.c (do_reload): Merge into ...
7144         (ira): ... this.
7145         (rest_of_handle_reload): Remove.
7146         (pass_reload): Likewise.
7147         * config/i386/i386.c (ix86_option_override): Refer to ira instead
7148         of reload for vzeroupper pass placement.
7149
7150 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
7151
7152         PR tree-optimization/56918
7153         PR tree-optimization/56920
7154         * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
7155         instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
7156         argument to rshift method.  For 2 * HOST_BITS_PER_WIDE_INT precision
7157         use wide_mul_with_sign method.
7158
7159 2013-04-12  Richard Biener  <rguenther@suse.de>
7160
7161         * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
7162         not be considered a gimple constant.
7163
7164 2013-04-12  Marc Glisse  <marc.glisse@inria.fr>
7165
7166         * fold-const.c (const_binop): Handle vector shifts by a scalar.
7167         (fold_binary_loc): Call const_binop also for mixed vector-scalar
7168         operations.
7169
7170 2013-04-12  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7171             Jakub Jelinek  <jakub@redhat.com>
7172
7173         * opts.c: Include diagnostic-color.h.
7174         (common_handle_option): Handle OPT_fdiagnostics_color_.
7175         * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
7176         (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
7177         (diagnostic-color.o): New.
7178         * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
7179         (diagnostic_color_rule): New enum.
7180         * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
7181         * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
7182         the location string.
7183         * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
7184         either NULL, or color kind.
7185         * diagnostic-color.c: New file.
7186         * diagnostic-color.h: New file.
7187         * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
7188         arguments.
7189         * doc/invoke.texi (-fdiagnostics-color): Document.
7190         * pretty-print.h (pp_show_color): Define.
7191         (struct pretty_print_info): Add show_color field.
7192         * diagnostic.c: Include diagnostic-color.h.
7193         (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
7194         macros.  Colorize error:, warning: etc. strings and also the location
7195         string.
7196         (diagnostic_show_locus): Colorize the caret line.
7197         * pretty-print.c: Include diagnostic-color.h.
7198         (pp_base_format): Handle %r and %R format specifiers.  Colorize strings
7199         inside of %< %> quotes or quoted through q format modifier.
7200
7201 2013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7202
7203         * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
7204
7205 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7206
7207         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
7208         code in CC_NZ mode.
7209         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
7210         pattern.
7211
7212 2013-04-11  Marek Polacek  <polacek@redhat.com>
7213
7214         PR tree-optimization/48184
7215         * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7216
7217 2013-04-11  Eric Botcazou  <ebotcazou@adacore.com>
7218
7219         * stor-layout.c (skip_simple_constant_arithmetic): Move to...
7220         * tree.c (skip_simple_constant_arithmetic): ...here and make public.
7221         (skip_simple_arithmetic): Tidy up.
7222         * tree.h (skip_simple_constant_arithmetic): Declare.
7223
7224 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7225
7226         * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
7227
7228 2013-04-11  Richard Biener  <rguenther@suse.de>
7229
7230         * tree-vect-loop.c (get_initial_def_for_induction): Properly
7231         generate vector constants.
7232
7233 2013-04-11  Richard Biener  <rguenther@suse.de>
7234
7235         PR tree-optimization/56878
7236         * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
7237         * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
7238         New function.
7239         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7240         Prefer to align the DR with the most invariant base address.
7241
7242 2013-04-11  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7243
7244         * opts.c (common_handle_option): Fix formatting and add FALLTHRU
7245         comment.
7246
7247 2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
7248
7249         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
7250         floating-point vector comparisons against 0.
7251
7252 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
7253
7254         PR tree-optimization/56899
7255         * fold-const.c (extract_muldiv_1): Apply distributive law
7256         only if TYPE_OVERFLOW_WRAPS (ctype).
7257
7258 2013-04-11  Bin Cheng  <bin.cheng@arm.com>
7259
7260         PR target/56124
7261         * ira-costs.c (scan_one_insn): Check whether the source rtx of
7262         loading has side effect.
7263
7264 2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
7265
7266         * config/sparc/sparc.c: Include tree-pass.h.
7267         (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
7268         (sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
7269         head of file.  Change return type.  Split off gate function.
7270         (sparc_gate_work_around_errata): New function.
7271         (pass_work_around_errata): New pass definition.
7272         (insert_pass_work_around_errata) New pass insert definition to
7273         insert pass_work_around_errata just after delayed-branch scheduling.
7274         (sparc_option_override): Insert the pass.
7275         * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
7276
7277 2013-04-10  David S. Miller  <davem@davemloft.net>
7278
7279         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
7280         or -mcpu=hypersparc.
7281
7282         * target.def (cstore_mode): New hook.
7283         * target.h: Include insn-codes.h
7284         * targhooks.c: Likewise.
7285         (default_cstore_mode): New function.
7286         * targhooks.h: Declare it.
7287         * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
7288         * doc/tm.texi: Rebuild.
7289         * expmed.c (emit_cstore): Obtain cstore boolean result mode using
7290         target hook, rather than inspecting the insn_data.
7291         * config/sparc/sparc.c (sparc_cstore_mode): New function.
7292         (TARGET_CSTORE_MODE): Redefine.
7293         (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
7294         result patterns.
7295         * config/sparc/predicates.md (cstore_result_operand): New special
7296         predicate.
7297         * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
7298         Use it for operand 0.
7299         (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
7300         (*snesi_special): Likewise.
7301         (*snesi_zero): Likewise.
7302         (*seqsi_zero): Likewise.
7303         (*sltu_insn): Likewise.
7304         (*sgeu_insn): Likewise.
7305         (*seqdi_special): Make operand 0 and comparison operation be of
7306         DImode.
7307         (*snedi_special): Likewise.
7308         (*snedi_special_vis3): Likewise.
7309         (*neg_snesi_zero): Rename to *neg_snesisi_zero.
7310         (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
7311         (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
7312         (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
7313         (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
7314         (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
7315         (*sltu_extend_sp64): Likewise.
7316         (*neg_sltu_insn): Rename to *neg_sltusi_insn.
7317         (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
7318         (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
7319         (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
7320         (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
7321
7322 2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
7323
7324         * config/aarch64/aarch64.c (aarch64_print_extension): New function.
7325         (aarch64_start_file): Use the new function.
7326
7327 2013-04-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7328             Jason Merrill  <jason@redhat.com>
7329
7330         * common.opt: Add -gdwarf.
7331         * opts.c (common_handle_option): Handle it.
7332         * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
7333
7334 2013-04-10  Richard Biener  <rguenther@suse.de>
7335
7336         * passes.c (execute_todo): Do not call ggc_collect conditional here.
7337         (execute_one_ipa_transform_pass): But unconditionally here.
7338         (execute_one_pass): And here.
7339         (init_optimization_passes): Remove reload pass.
7340         * tree-pass.h (TODO_ggc_collect): Remove.
7341         (pass_reload): Likewise.
7342         * ira.c (do_reload): Merge into ...
7343         (ira): ... this.
7344         (rest_of_handle_reload): Remove.
7345         (pass_reload): Likewise.
7346         * config/i386/i386.c (ix86_option_override): Refer to ira instead
7347         of reload for vzeroupper pass placement.
7348         * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
7349         and todo_flags_finish of all passes.
7350
7351 2013-04-10  Richard Biener  <rguenther@suse.de>
7352
7353         * tree-vectorizer.h (struct _slp_oprnd_info): Remove
7354         first_const_oprnd field, rename first_def_type to first_op_type.
7355         * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
7356         (vect_get_and_check_slp_defs): Always use the type of the
7357         operand.  Allow mixed vect_external_def, vect_constant_def types.
7358         (vect_get_constant_vectors): Handle mixed vect_external_def,
7359         vect_constant_def types.
7360
7361 2013-04-10  Joern Rennecke <joern.rennecke@embecosm.com>
7362
7363         PR tree-optimization/55524
7364         * tree-ssa-math-opts.c
7365         (convert_mult_to_fma): Don't use an fms construct
7366         when we don't have an fms operation, but fnma, and it looks
7367         likely that we'll be able to use the latter.
7368
7369 2013-04-10  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
7370
7371         * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
7372         function.
7373         * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
7374         inline fail caused by overwritable functions.
7375
7376 2013-04-10  Chung-Ju Wu  <jasonwucj@gmail.com>
7377
7378         * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
7379         unnecessary bits in the constant power of two case.
7380
7381 2013-04-10  Richard Biener  <rguenther@suse.de>
7382
7383         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
7384         broken code swapping operands.
7385         (vect_build_slp_tree): Do not compute load permutations here.
7386         (vect_analyze_slp_instance): Compute load permutations here,
7387         after building the SLP tree.
7388
7389 2013-04-09  Christian Bruel  <christian.bruel@st.com>
7390
7391         * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
7392         of next/prev_real_insn.
7393
7394 2013-04-09  Jan Hubicka  <jh@suse.cz>
7395
7396         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
7397         Drop aliased parameter.
7398         (function_and_variable_visibility): Do not handle alias pairs.
7399         * cgraph.c (varpool_externally_visible_p): Update prototype.
7400         * varpool.c (varpool_add_new_variable): Update.
7401
7402 2013-04-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7403
7404         * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
7405
7406 2013-04-09  Steven Bosscher  <steven@gcc.gnu.org>
7407
7408         * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
7409
7410         * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
7411
7412 2013-04-09  Marek Polacek  <polacek@redhat.com>
7413
7414         PR tree-optimization/48762
7415         * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
7416
7417 2013-04-09  Richard Biener  <rguenther@suse.de>
7418
7419         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
7420         dealing with cost.
7421         (vect_build_slp_tree): Likewise.
7422         (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
7423         calculating the cost of a SLP instance.
7424         (vect_analyze_slp_instance): Use it from here, after building
7425         the SLP tree.
7426
7427 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
7428
7429         PR middle-end/56883
7430         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
7431         expand_omp_for_static_chunk): Use simple_p = true in
7432         force_gimple_operand_gsi calls when assigning to addressable decls.
7433
7434 2013-04-09  Jeff Law  <law@redhat.com>
7435
7436         * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
7437         when the boolean was created by converting a wider object which
7438         had a boolean range.
7439
7440 2013-04-09  Richard Biener  <rguenther@suse.de>
7441
7442         * tree-vectorizer.h (slp_void_p): Remove.
7443         (slp_tree): Typedef before _slp_tree declaration.
7444         (struct _slp_tree): Use a vector of slp_tree as children.
7445         (vect_get_place_in_interleaving_chain): Remove.
7446         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
7447         Move ...
7448         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
7449         and make static.
7450         (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
7451         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
7452         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
7453         vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
7454         Use slp_node instead of slp_void_p and adjust.
7455
7456 2013-04-09  Richard Biener  <rguenther@suse.de>
7457
7458         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
7459         work that is not necessary.
7460
7461 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
7462
7463         PR tree-optimization/56854
7464         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
7465         forward into clobber stmts if it would change MEM_REF lhs into
7466         non-MEM_REF.
7467
7468 2013-04-09  Maxim Kuvyrkov  <maxim@kugelworks.com>
7469
7470         * tree.c (type_hash_lookup, type_hash_add): Make static.
7471         * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
7472
7473 2013-04-09  Richard Biener  <rguenther@suse.de>
7474
7475         * tree.h (unsave_expr_now): Remove.
7476         * tree-inline.c (mark_local_for_remap_r): Remove.
7477         (unsave_expr_1): Likewise.
7478         (unsave_r): Likewise.
7479         (unsave_expr_now): Likewise.
7480         * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
7481         (propagate_tree_value): Likewise.
7482
7483 2013-04-08  Steven Bosscher  <steven@gcc.gnu.org>
7484
7485         * doc/rtl.texi (sequence): Rewrite documentation to match the
7486         current use of SEQUENCE rtl objects.
7487         * rtl.def (SEQUENCE): Likewise.
7488
7489         * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
7490         Update documentation.
7491         (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
7492         NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
7493
7494         * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
7495
7496 2013-04-08  Teresa Johnson  <tejohnson@google.com>
7497
7498         * basic-block.h (GCOV_COMPUTE_SCALE): Define.
7499         * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
7500         methods.
7501         (estimate_edge_size_and_time): Add comment to suggest using rounding
7502         methods.
7503         (estimate_node_size_and_time): Ditto.
7504         (remap_edge_change_prob): Use helper rounding divide methods.
7505         * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
7506         (gimple_mod_pow2_value_transform): Ditto.
7507         (gimple_mod_subtract_transform): Ditto.
7508         (gimple_ic_transform): Ditto.
7509         (gimple_stringops_transform): Ditto.
7510         * stmt.c (conditional_probability): Ditto.
7511         (emit_case_dispatch_table): Ditto.
7512         * lto-cgraph.c (merge_profile_summaries): Ditto.
7513         * tree-optimize.c (execute_fixup_cfg): Ditto.
7514         * cfgcleanup.c (try_forward_edges): Ditto.
7515         * cfgloopmanip.c (scale_loop_profile): Ditto.
7516         (loopify): Ditto.
7517         (duplicate_loop_to_header_edge): Ditto.
7518         (lv_adjust_loop_entry_edge): Ditto.
7519         * tree-vect-loop.c (vect_transform_loop): Ditto.
7520         * profile.c (compute_branch_probabilities): Ditto.
7521         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
7522         * lto-streamer-in.c (input_cfg): Ditto.
7523         * gimple-streamer-in.c (input_bb): Ditto.
7524         * ipa-cp.c (update_profiling_info): Ditto.
7525         (update_specialized_profile): Ditto.
7526         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
7527         * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
7528         rounding methods.
7529         * sched-rgn.c (compute_dom_prob_ps): Ditto.
7530         (compute_trg_info): Ditto.
7531         * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
7532         (purge_dead_edges): Ditto.
7533         * loop-unswitch.c (unswitch_loop): Ditto.
7534         * cgraphclones.c (cgraph_clone_edge): Ditto.
7535         (cgraph_clone_node): Ditto.
7536         * tree-inline.c (copy_bb): Ditto.
7537         (copy_edges_for_bb): Ditto.
7538         (initialize_cfun): Ditto.
7539         (copy_cfg_body): Ditto.
7540         (expand_call_inline): Ditto.
7541
7542 2013-04-08  Kai Tietz  <ktietz@redhat.com>
7543
7544         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
7545         TARGET_CYGWIN64 by TARGET_64BIT.
7546
7547 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
7548
7549         * config/epiphany/epiphany.md (GPR_1): New constant.
7550         (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
7551         * config/epiphany/epiphany.c (gen_compare_reg):
7552         For flag_finite_math_only, avoid swapping operands when r0 and/or r1
7553         is already in place.
7554         Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
7555         Don't require being called during rtl expansion; If y operlaps r0,
7556         return 0.
7557         (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
7558         (epiphany_expand_epilogue): Likewise.
7559
7560         * config/epiphany/epiphany.c (epiphany_select_cc_mode):
7561         Don't use CC_FPmode for ORDERED / UNORDERED.
7562         * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
7563
7564         * config/epiphany/constraints.md (CnL): New constraint.
7565         * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
7566         * config/epiphany/predicates.md (add_operand): Allow 1024.
7567
7568         * config/epiphany/epiphany.md (logical_op): New code iterator.
7569         (op_mnc): New code attribute.
7570         (<op_mnc>_f, mov_f, cstoresi4): New patterns.
7571         (mov_f+1, mov_f+2): New peephole2 patterns.
7572
7573         * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
7574         (cstoresi4): Also allow re-use of zero result when doing a NE
7575         comparison to a non-zero operand.
7576         Use (clobber (scratch)) for first insn if the gpr output is not needed.
7577
7578         * config/epiphany/epiphany.md (<insn_opname>v2si3):
7579         Use gen_addsi3_i / gen_subsi3_i.
7580
7581 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
7582
7583         PR c++/34949
7584         PR c++/50243
7585         * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
7586         contain anything but clobbers, at most one __builtin_stack_restore,
7587         optionally debug stmts and final resx, and if it has at least one
7588         incoming EH edge.  Don't check for SSA_NAME on LHS of a clobber.
7589         (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
7590         Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
7591         which isn't defaut definition, remove them.
7592         (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
7593         instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
7594         * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
7595         with MEM_REF LHS with SSA_NAME address.
7596
7597 2013-04-08  Jeff Law  <law@redhat.com>
7598
7599         * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
7600
7601 2013-04-08  Richard Biener  <rguenther@suse.de>
7602
7603         * gimple-pretty-print.c (debug_gimple_stmt): Do not print
7604         extra newline.
7605         * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
7606         determined vector type.
7607         (vect_analyze_data_refs): Likewise.
7608         (vect_get_new_vect_var): Adjust.
7609         (vect_create_destination_var): Preserve SSA name versions.
7610         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
7611         not dump anything here.
7612
7613 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
7614
7615         * config/epiphany/epiphany.h (struct GTY (()) machine_function):
7616         Add member lr_slot_known.
7617         * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
7618         if necessary.
7619         * config/epiphany/epiphany.c (epiphany_compute_frame_size):
7620         Remove code that sets lr_slot_offset according to what a previous
7621         version of epiphany_emit_save_restore used to do.
7622         (epiphany_emit_save_restore): When doing an lr save or restore,
7623         set/verify lr_slot_known and lr_slot_offset.
7624
7625 2013-04-08  Xinyu Qi  <xyqi@marvell.com>
7626
7627         PR target/54338
7628         * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
7629         in ALL_REGS.
7630
7631 2013-04-08  Richard Biener  <rguenther@suse.de>
7632
7633         * alias.c (find_base_term): Fix thinko in previous change.
7634
7635 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
7636
7637         * tree-loop-distribution.c (const_with_all_bytes_same): New function.
7638         (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
7639         TYPE_PRECISION is equal to mode bitsize.  Use const_with_all_bytes_same
7640         if possible to compute val.
7641         (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
7642         For QImode integers don't require anything about precision.  Use
7643         const_with_all_bytes_same to find out if the constant doesn't have
7644         repeated bytes in it.
7645
7646 2013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7647
7648         * config/s390/s390.c (s390_expand_insv): Only accept insertions
7649         within mode size.
7650
7651 2013-04-08  Marek Polacek  <polacek@redhat.com>
7652
7653         PR rtl-optimization/48182
7654         * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
7655         value to 1.
7656
7657 2013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7658
7659         PR target/55487
7660         * config/pa/pa.c (legitimize_pic_address): Before incrementing label
7661         nuses, make sure we have a label.
7662
7663 2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7664
7665         PR target/56843
7666         * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
7667         (rs6000_emit_swdiv_low_precision): Remove.
7668         (rs6000_emit_swdiv): Rewrite to handle between one and four
7669         iterations of Newton-Raphson generally; modify required number of
7670         iterations for some cases.
7671         * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
7672
7673 2013-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7674
7675         * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
7676         set-but-unused variable.
7677
7678         * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
7679         basic blocks of released function bodies garbage-collectable.
7680
7681         * ree.c (find_and_remove_re): Do not call df_finish_pass here.
7682         (struct rtl_opt_pass): Add TODO_df_finish.
7683
7684         * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
7685
7686 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7687
7688         * config/arm/constraints.md (q): New constraint.
7689         * config/arm/ldrdstrd.md: New file.
7690         * config/arm/arm.md (ldrdstrd.md) New include.
7691         (arm_movdi): Use "q" instead of "r" constraint
7692         for double-word memory access.
7693         (movdf_soft_insn): Likewise.
7694         * config/arm/vfp.md (movdi_vfp): Likewise.
7695         * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
7696         * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
7697         * config/arm/arm.c (gen_operands_ldrd_strd): New function.
7698         (mem_ok_for_ldrd_strd): Likewise.
7699         (output_move_double): Update assertion.
7700
7701 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7702
7703         * config/arm/arm.md: Comment on splitting Thumb1 patterns.
7704
7705 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7706
7707         * config/arm/arm.md (arm_smax_insn): Convert define_insn into
7708         define_insn_and_split.
7709         (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
7710
7711 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7712
7713         * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
7714         define_insn_and_split.
7715         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
7716         (shiftsi3_compare): New pattern.
7717         (rrx): New pattern.
7718         * config/arm/unspecs.md (UNSPEC_RRX): New.
7719
7720 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7721
7722         * config/arm/arm.md (negdi_extendsidi): New pattern.
7723         (negdi_zero_extendsidi): Likewise.
7724
7725 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7726
7727         * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
7728         define_insn_and_split.
7729         (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
7730         (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
7731
7732 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7733
7734         * config/arm/arm.md (arm_subdi3): Convert define_insn into
7735         define_insn_and_split.
7736         (subdi_di_zesidi,subdi_di_sesidi): Likewise.
7737         (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
7738
7739 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7740
7741         * config/arm/arm.md (subsi3_carryin): New pattern.
7742         (subsi3_carryin_const): Likewise.
7743         (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
7744         (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
7745
7746 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7747
7748         * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
7749
7750 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7751
7752         * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
7753         (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
7754
7755 2013-04-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7756
7757         * config/arm/arm.c (arm_expand_builtin): Change fcode
7758         type to unsigned int.
7759
7760 2013-04-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7761
7762         * doc/invoke.texi (ARM Options): Document cortex-a53 support.
7763
7764 2013-04-04  Ian Lance Taylor  <iant@google.com>
7765
7766         * doc/standards.texi (Standards): The Go frontend supports the Go 1
7767         language standard.
7768
7769 2013-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7770
7771         PR middle-end/56729
7772         * df-scan.c (df_insn_delete): Disable failing assert.
7773
7774 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7775
7776         * config/arm/arm-protos.h (arm_builtin_vectorized_function):
7777         New function prototype.
7778         * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
7779         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
7780         (arm_builtin_vectorized_function): New function.
7781
7782 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7783
7784         * config/arm/arm_neon_builtins.def: New file.
7785         * config/arm/arm.c (neon_builtin_data): Move contents to
7786         arm_neon_builtins.def.
7787         (enum arm_builtins): Include neon builtin definitions.
7788         (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
7789         * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
7790
7791 2013-04-04  Marek Polacek  <polacek@redhat.com>
7792
7793         PR tree-optimization/48186
7794         * predict.c (maybe_hot_frequency_p): Return false if
7795         HOT_BB_FREQUENCY_FRACTION is 0.
7796         (cgraph_maybe_hot_edge_p): Likewise.
7797
7798 2013-04-04  Richard Biener  <rguenther@suse.de>
7799
7800         PR tree-optimization/56826
7801         * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
7802         more accurately.
7803
7804 2013-04-04  Richard Biener  <rguenther@suse.de>
7805
7806         PR tree-optimization/56213
7807         * tree-vect-data-refs.c (vect_check_strided_load): Remove.
7808         (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
7809
7810 2013-04-04  Richard Biener  <rguenther@suse.de>
7811
7812         PR tree-optimization/56837
7813         * tree-loop-distribution.c (classify_partition): For non-zero
7814         values require that the value has the same precision as its
7815         mode to be useful as memset value.
7816
7817 2013-04-03  Nick Clifton  <nickc@redhat.com>
7818
7819         * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
7820         (fmssf4): Use fmsf.s on E3V5 architectures.
7821         (fnmasf4): Use fnmaf.s on E3V5 architectures.
7822         (fnmssf4): Use fnmsf.s on E3V5 architectures.
7823
7824 2013-04-03  Jeff Law  <law@redhat.com>
7825
7826         * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
7827         (lra-eliminations.o): Likewise.
7828
7829 2013-04-03  Teresa Johnson  <tejohnson@google.com>
7830
7831         * gcov-io.c (compute_working_sets): Moved most of body of old
7832         compute_working_sets here from profile.c.
7833         * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
7834         (gcov_working_set_t): Moved typedef here from basic-block.h
7835         (compute_working_set): Declare.
7836         * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
7837         (get_working_sets): Renamed from compute_working_set,
7838         replace most of body with call to new compute_working_sets.
7839         (get_exec_counts): Replace call to compute_working_sets
7840         to get_working_sets.
7841         * profile.h (get_working_sets): Renamed from compute_working_set.
7842         * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
7843         to get_working_sets.
7844         * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
7845         * gcov-dump.c (dump_working_sets): New function.
7846
7847 2013-04-03  Kenneth Zadeck <zadeck@naturalbridge.com>
7848
7849         * hwint.c (sext_hwi, zext_hwi): New functions.
7850         * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
7851         HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
7852         HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
7853         HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
7854         HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
7855         (sext_hwi, zext_hwi): New functions.
7856
7857 2013-04-03  Jeff Law  <law@redhat.com>
7858
7859         PR tree-optimization/56799
7860         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
7861         back test for widening conversion erroneously dropped in prior change.
7862
7863 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7864
7865         PR target/56809
7866         * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
7867         instead of next_real_insn.
7868
7869 2013-04-03  Marek Polacek  <polacek@redhat.com>
7870
7871         PR sanitizer/55702
7872         * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
7873
7874 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7875
7876         PR target/56809
7877         * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
7878         next_real_insn.
7879         (thumb1_output_casesi): Likewise.
7880         (thumb2_output_casesi): Likewise.
7881
7882 2013-04-03  Richard Biener  <rguenther@suse.de>
7883
7884         PR tree-optimization/56817
7885         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7886         Split out ...
7887         (tree_unroll_loops_completely_1): ... new function to manually
7888         walk the loop tree, properly defering outer loops of unrolled
7889         loops to later iterations.
7890
7891 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7892
7893         * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
7894         (vectorizable_load): Likewise.
7895         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
7896         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
7897
7898 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7899
7900         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
7901         BIT_FIELD_REF.
7902
7903 2013-04-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7904
7905         * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
7906
7907 2013-04-03  Bin Cheng  <bin.cheng@arm.com>
7908
7909         * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
7910
7911 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7912
7913         PR tree-optimization/56790
7914         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
7915         folding.
7916
7917 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7918
7919         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
7920         Handle VEC_MERGE.
7921         (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
7922         for masks. Test for side effects. Handle nested VEC_MERGE. Handle
7923         equal arguments.
7924
7925 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
7926
7927         PR c/19449
7928         * tree.h (force_folding_builtin_constant_p): New decl.
7929         * builtins.c (force_folding_builtin_constant_p): New variable.
7930         (fold_builtin_constant_p): Fold immediately also if
7931         force_folding_builtin_constant_p.
7932
7933 2013-04-03  Richard Biener  <rguenther@suse.de>
7934
7935         PR tree-optimization/56812
7936         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
7937         DRs of the same interleaving chain are independent.
7938
7939 2013-04-02  Jason Merrill  <jason@redhat.com>
7940
7941         * gdbinit.in (pbb): Use debug fn.
7942
7943 2013-04-02  Lawrence Crowl  <crowl@google.com>
7944
7945         * sese.h (struct ivtype_map_elt_s): Remove unused.
7946         (extern debug_ivtype_map): Remove unused.
7947         (extern eq_ivtype_map_elts): Remove unused.
7948         * sese.c (debug_ivtype_map): Removed unused.
7949         (debug_ivtype_map_1): Removed unused.
7950         (debug_ivtype_elt): Remove unused.
7951         (eq_ivtype_map_elts): Remove unused.
7952
7953
7954 2013-04-02  Kai Tietz  <ktietz@redhat.com>
7955
7956         PR target/52790
7957         * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
7958         * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
7959         * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
7960         function.
7961         (legitimize_pe_coff_symbol): Likewise.
7962         (is_imported_p): New helper-function.
7963         (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
7964         for Windows x64 targets.
7965         (ix86_expand_prologue): Optimize for pe-coff targets.
7966         (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
7967         (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
7968         medium/large code-model.
7969         (legitimize_pic_address): Likewise.
7970         (legitimize_tls_address): Likewise.
7971         (ix86_expand_call): Likewise.
7972         (x86_output_mi_thunk): Likewise.
7973         (get_dllimport_decl): Add new beimport argument.
7974         (construct_plt_address): Don't assert for x64 pe-coff targets.
7975         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
7976         targets.
7977         (SYMBOL_FLAG_STUBVAR): New macro.
7978         (SYMBOL_REF_STUBVAR_P): Likewise.
7979         * config/i386/winnt.c (stub_list): New structure.
7980         (stub_head): New local variable.
7981         (i386_pe_record_stub): New function.
7982         (i386_pe_file_end): Emit refptr-stubs.
7983
7984 2013-04-02  Jakub Jelinek  <jakub@redhat.com>
7985
7986         PR rtl-optimization/56745
7987         * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
7988         if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
7989
7990         PR c++/34949
7991         * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
7992         and both of them are MEM_REFs, just compare first argument for
7993         equality and attempt to deal even with differing offsets.
7994
7995         PR c++/34949
7996         * tree-cfg.c (verify_gimple_assign_single): Allow lhs
7997         of gimple_clobber_p to be MEM_REF.
7998         * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
7999         an assignment from TREE_CLOBBER_P.  Allow it to be MEM_REF
8000         after gimplification.
8001         * asan.c (get_mem_ref_of_assignment): Don't instrument
8002         gimple_clobber_p stmts.
8003         * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
8004         gimple_clobber_p stmt if they have MEM_REF lhs and
8005         are dead because of another gimple_clobber_p stmt.
8006         * tree-ssa-live.c (clear_unused_block_pointer): Treat
8007         gimple_clobber_p stmts like debug stmts.
8008         (remove_unused_locals): Remove clobbers with MEM_REF lhs
8009         that refer to unused VAR_DECLs or uninitialized values.
8010         * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
8011         gimple_clobber_p stmts if they refer to removed parameters.
8012         (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
8013         formatting.
8014
8015 2013-04-02  Uros Bizjak  <ubizjak@gmail.com>
8016
8017         * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
8018         using SWI48 mode attribute.
8019
8020 2013-04-02  Wei Mi  <wmi@google.com>
8021
8022         * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
8023         ashl<mode>3_mask, *<shift_insn><mode>3_mask and
8024         *<rotate_insn><mode>3_mask in i386.md.
8025
8026 2013-04-02  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8027
8028         * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
8029
8030 2013-04-02  Richard Biener  <rguenther@suse.de>
8031
8032         PR tree-optimization/56778
8033         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8034         Runtime alias tests are not supported for gather loads.
8035         * tree-vect-loop-manip.c (vect_loop_versioning): Insert
8036         stmts referenced from SSA operands before updating SSA form.
8037
8038 2013-04-02  Ian Caulfield  <ian.caulfield@arm.com>
8039             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8040
8041         * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
8042         * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
8043         * config/arm/cortex-a53.md: New file.
8044         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
8045         * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
8046         * config/arm/arm.c (arm_issue_rate): Likewise.
8047         * config/arm/arm-tune.md: Regenerate
8048         * config/arm/arm-tables.opt: Regenerate.
8049         * config/arm/arm-cores.def: Add cortex-a53.
8050
8051 2013-04-02  Zhenqiang Chen  <zhenqiang.chen@arm.com>
8052
8053         * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
8054         non-static link.
8055
8056 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
8057
8058         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
8059         scalar load/store operations using B/H registers.
8060         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
8061
8062 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
8063
8064         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
8065         scalar move.
8066         * config/aarch64/aarch64.c
8067         (aarch64_simd_scalar_immediate_valid_for_move): New.
8068         * config/aarch64/aarch64-protos.h
8069         (aarch64_simd_scalar_immediate_valid_for_move): New.
8070         * config/aarch64/constraints.md (Dh, Dq): New.
8071         * config/aarch64/iterators.md (hq): New.
8072
8073 2013-04-02  Eric Botcazou  <ebotcazou@adacore.com>
8074
8075         * reorg.c (get_branch_condition): Deal with conditional returns.
8076         (fill_simple_delay_slots): Remove dead code dealing with jumps.
8077
8078 2013-04-01  Wei Mi  <wmi@google.com>
8079
8080         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
8081         Truncate operand 2 using %b asm operand modifier.
8082         (*<shift_insn><mode>3_mask): Ditto.
8083         (*<rotate_insn><mode>3_mask): Ditto.
8084
8085 2013-04-01  Steven Bosscher  <steven@gcc.gnu.org>
8086
8087         PR middle-end/56798
8088         * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
8089
8090 2013-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8091
8092         * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
8093         of next_real_insn.
8094         (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
8095
8096 2013-03-30  Lawrence Crowl  <crowl@google.com>
8097
8098         * dse.c (clear_alias_sets): Remove never set.
8099         (disqualified_clear_alias_sets): Remove never set.
8100         (clear_alias_mode_pool): Remove never set.
8101         (dse_step0): Remove condition that is never true.
8102         (canon_address): Remove condition that is never true.
8103         (dse_step7): Remove condition that is never true.
8104         (rest_of_handle_dse): Remove condition that is never true.
8105         (rest_of_handle_dse::did_global): Remove never read from above.
8106         (dse_step2_spill): Remove never called from above.
8107         (dse_step5_spill): Remove never called from above.
8108
8109 2013-03-30  Steven Bosscher  <steven@gcc.gnu.org>
8110
8111         * doc/md.texi (Standard Names) <casesi>: Update documentation for
8112         JUMP_TABLE_DATA changes.
8113         * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
8114         * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
8115         (Insns) <jump_table_data>: New entry.
8116         * doc/tm.texi: Regenerate.
8117
8118         * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
8119
8120         * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
8121         for table jump at the end of a basic block using tablejump_p.
8122         * targhooks.c (default_invalid_within_doloop): Likewise.
8123         * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
8124         target hook implementation that is identical to the default hook.
8125         (rs6000_invalid_within_doloop): Remove.
8126
8127         * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
8128         unused variable from tablejump_p call.
8129
8130         * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
8131         * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
8132         (INSN_DELETED_P): Likewise.
8133         (emit_jump_table_data): New prototype.
8134         * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
8135         after 4th as unused.
8136         * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
8137         * sched-vis.c (print_insn): Likewise.
8138         * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
8139         insn for compatibility with back ends that use next_active_insn to
8140         identify jump table data.
8141         (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
8142         (remove_insn): Likewise.
8143         (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
8144         to be emitted.
8145         (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
8146         (emit_jump_table_data): New function.
8147
8148         * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
8149         basic block, a JUMP_TABLE_DATA never is.
8150         (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
8151         * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
8152         off from code handling real insns.
8153         * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
8154         * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
8155         test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
8156         * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
8157         is not a NONDEBUG_INSN_P.
8158         * ira-costs.c (scan_one_insn): Likewise.
8159         * jump.c (mark_all_labels): Likewise.
8160         (mark_jump_label_1): Likewise.
8161         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
8162         * lra.c (get_insn_freq): Expect all insns reaching here to be in
8163         a basic block.
8164         (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
8165         * predict.c (expensive_function_p): Use FOR_BB_INSNS.
8166         * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
8167         JUMP_TABLE_DATA_P insns.
8168         (calculate_elim_costs_all_insns): Likewise.
8169         (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
8170         (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
8171         (delete_output_reload): Code style fixups.
8172         * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
8173         insn flags on this non-insn.
8174         * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
8175         as scheduling barriers, for pre-change compatibility.
8176         * stmt.c (emit_case_dispatch_table): Emit jump table data not as
8177         JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
8178
8179         * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
8180         redundant JUMP_TABLE_DATA_P test.
8181         * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
8182         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
8183         (frv_for_each_packet): Likewise.
8184         * config/i386/i386.c (min_insn_size): Likewise.
8185         (ix86_avoid_jump_mispredicts): Likewise.
8186         * config/m32r/m32r.c (m32r_is_insn): Likewise.
8187         * config/mep/mep.c (mep_reorg_erepeat): Likewise.
8188         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
8189         (mips16_insn_length): Robustify.
8190         (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
8191         (mips16_split_long_branches): Likewise.
8192         * config/pa/pa.c (pa_combine_instructions): Likewise.
8193         * config/rs6000/rs6000.c (get_next_active_insn): Treat
8194         JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
8195         * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
8196         as contributing to pool range lengths.
8197         * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
8198         Remove redundant JUMP_TABLE_DATA_P test.
8199         (sh_loop_align): Likewise.
8200         (split_branches): Likewise.
8201         (sh_insn_length_adjustment): Likewise.
8202         * config/spu/spu.c (get_branch_target): Likewise.
8203
8204 2013-03-29  Jan Hubicka  <jh@suse.cz>
8205
8206         * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
8207         gcov streaming; stream hot bb threshold to ltrans.
8208         * predict.c (get_hot_bb_threshold): Break out from ....
8209         (maybe_hot_count_p): ... here.
8210         (set_hot_bb_threshold): New function.
8211         * lto-section-in.c (lto_section_name): Add profile.
8212         * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
8213         * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
8214         and data-streamer.h
8215         (histogram_entry): New structure.
8216         (histogram, histogram_pool): New global vars.
8217         (histogram_hash): New structure.
8218         (histogram_hash::hash): New method.
8219         (histogram_hash::equal): Likewise.
8220         (account_time_size): New function.
8221         (cmp_counts): New function.
8222         (dump_histogram): New function.
8223         (ipa_profile_generate_summary): New function.
8224         (ipa_profile_write_summary): New function.
8225         (ipa_profile_read_summary): New function.
8226         (ipa_profile): Decide on threshold.
8227         (pass_ipa_profile): Add ipa_profile_write_summary and
8228         ipa_profile_read_summary.
8229         * Makefile.in (ipa.o): Update dependencies.
8230         * lto-streamer.h (LTO_section_ipa_profile): New section.
8231
8232 2013-03-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8233
8234         * tree.h (VAR_P): New.
8235
8236 2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
8237
8238         PR lto/56777
8239         * doc/invoke.texi ([-fwhole-program]): Fix typo.
8240
8241 2013-03-29  Steven Bosscher  <steven@gcc.gnu.org>
8242
8243         * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
8244         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
8245         (control_flow_insn_p): Likewise.
8246         * cfgrtl.c (duplicate_insn_chain): Likewise.
8247         * final.c (get_attr_length_1): Likewise.
8248         (shorten_branches): Likewise.
8249         (final_scan_insn): Likewise.
8250         * function.c (instantiate_virtual_regs): Likewise.
8251         * gcse.c (insert_insn_end_basic_block): Likewise.
8252         * ira-costs.c (scan_one_insn): Likewise.
8253         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
8254         * lra.c (check_rtl): Likewise.
8255         * reload1.c (elimination_costs_in_insn): Likewise.
8256         * reorg.c (follow_jumps): Likewise.
8257
8258         * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
8259         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
8260         (thumb_far_jump_used_p): Likewise.
8261         * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
8262         (workaround_speculation): Likewise.
8263         (add_sched_insns_for_speculation): Likewise.
8264         * config/c6x/c6x.c (reorg_emit_nops): Likewise.
8265         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
8266         (frv_for_each_packet): Likewise.
8267         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
8268         * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
8269         (final_emit_insn_group_barriers): Likewise.
8270         * config/m32r/m32r.c (m32r_is_insn): Likewise.
8271         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
8272         (mips16_insn_length): Likewise.
8273         * config/pa/pa.c (pa_reorg): Likewise.
8274         (pa_combine_instructions): Likewise.
8275         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
8276         * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
8277         (sh_reorg): Likewise.
8278         (split_branches): Likewise.
8279         * config/spu/spu.c (get_branch_target): Likewise.
8280
8281         * config/s390/s390.c (s390_chunkify_start): Simplify logic using
8282         JUMP_TABLE_DATA_P.
8283
8284 2013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>
8285
8286         * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
8287         Fix declaration name.
8288
8289 2013-03-28  Lawrence Crowl  <crowl@google.com>
8290
8291         * graphds.h (struct graph.indicies): Remove unused.
8292         * graphite-poly.h (struct graph.original_pddrs): Remove unused.
8293         (SCOP_ORIGINAL_PDDRS): Remove unused.
8294         * sese.h (extern insert_loop_close_phis): Removed unused.
8295         (extern insert_guard_phis): Removed unused.
8296         (extern ivtype_map_elt_info): Removed unused.
8297         (new_ivtype_map_elt): Removed unused.
8298         * sese.c (ivtype_map_elt_info): Removed unused.
8299
8300 2013-03-28  Lawrence Crowl  <crowl@google.com>
8301
8302         * Makefile.in: Add several missing include dependences.
8303         (DUMPFILE_H): New.
8304         (test-dump.o): New.  This object is not added to any executable,
8305         but is present for ad-hoc testing.
8306         * bitmap.c
8307         (debug (const bitmap_head_def &)): New.
8308         (debug (const bitmap_head_def *)): New.
8309         * bitmap.h
8310         (extern debug (const bitmap_head_def &)): New.
8311         (extern debug (const bitmap_head_def *)): New.
8312         * cfg.c
8313         (debug (edge_def &)): New.
8314         (debug (edge_def *)): New.
8315         * cfghooks.c
8316         (debug (basic_block_def &)): New.
8317         (debug (basic_block_def *)): New.
8318         * dumpfile.h
8319         (dump_node (const_tree, int, FILE *)): Correct source file.
8320         * dwarf2out.c
8321         (debug (die_struct &)): New.
8322         (debug (die_struct *)): New.
8323         * dwarf2out.h
8324         (extern debug (die_struct &)): New.
8325         (extern debug (die_struct *)): New.
8326         * gimple-pretty-print.c
8327         (debug (gimple_statement_d &)): New.
8328         (debug (gimple_statement_d *)): New.
8329         * gimple-pretty-print.h
8330         (extern debug (gimple_statement_d &)): New.
8331         (extern debug (gimple_statement_d *)): New.
8332         * ira-build.c
8333         (debug (ira_allocno_copy &)): New.
8334         (debug (ira_allocno_copy *)): New.
8335         (debug (ira_allocno &)): New.
8336         (debug (ira_allocno *)): New.
8337         * ira-int.h
8338         (extern debug (ira_allocno_copy &)): New.
8339         (extern debug (ira_allocno_copy *)): New.
8340         (extern debug (ira_allocno &)): New.
8341         (extern debug (ira_allocno *)): New.
8342         * ira-lives.c
8343         (debug (live_range &)): New.
8344         (debug (live_range *)): New.
8345         * lra-int.h
8346         (debug (lra_live_range &)): New.
8347         (debug (lra_live_range *)): New.
8348         * lra-lives.c
8349         (debug (lra_live_range &)): New.
8350         (debug (lra_live_range *)): New.
8351         * omega.c
8352         (debug (omega_pb_d &)): New.
8353         (debug (omega_pb_d *)): New.
8354         * omega.h
8355         (extern debug (omega_pb_d &)): New.
8356         (extern debug (omega_pb_d *)): New.
8357         * print-rtl.c
8358         (debug (const rtx_def &)): New.
8359         (debug (const rtx_def *)): New.
8360         * print-tree.c
8361         (debug_tree (tree): Move within file.
8362         (debug_raw (const tree_node &)): New.
8363         (debug_raw (const tree_node *)): New.
8364         (dump_tree_via_hooks (const tree_node *, int)): New.
8365         (debug (const tree_node &)): New.
8366         (debug (const tree_node *)): New.
8367         (debug_verbose (const tree_node &)): New.
8368         (debug_verbose (const tree_node *)): New.
8369         (debug_head (const tree_node &)): New.
8370         (debug_head (const tree_node *)): New.
8371         (debug_body (const tree_node &)): New.
8372         (debug_body (const tree_node *)): New.
8373         (debug_vec_tree (tree): Move and reimplement in terms of dump.
8374         (debug (vec<tree, va_gc> &)): New.
8375         (debug (vec<tree, va_gc> *)): New.
8376         * rtl.h
8377         (extern debug (const rtx_def &)): New.
8378         (extern debug (const rtx_def *)): New.
8379         * sbitmap.c
8380         (debug_raw (simple_bitmap_def &)): New.
8381         (debug_raw (simple_bitmap_def *)): New.
8382         (debug (simple_bitmap_def &)): New.
8383         (debug (simple_bitmap_def *)): New.
8384         * sbitmap.h
8385         (extern debug (simple_bitmap_def &)): New.
8386         (extern debug (simple_bitmap_def *)): New.
8387         (extern debug_raw (simple_bitmap_def &)): New.
8388         (extern debug_raw (simple_bitmap_def *)): New.
8389         * sel-sched-dump.c
8390         (debug (vinsn_def &)): New.
8391         (debug (vinsn_def *)): New.
8392         (debug_verbose (vinsn_def &)): New.
8393         (debug_verbose (vinsn_def *)): New.
8394         (debug (expr_def &)): New.
8395         (debug (expr_def *)): New.
8396         (debug_verbose (expr_def &)): New.
8397         (debug_verbose (expr_def *)): New.
8398         (debug (vec<rtx> &)): New.
8399         (debug (vec<rtx> *)): New.
8400         * sel-sched-dump.h
8401         (extern debug (vinsn_def &)): New.
8402         (extern debug (vinsn_def *)): New.
8403         (extern debug_verbose (vinsn_def &)): New.
8404         (extern debug_verbose (vinsn_def *)): New.
8405         (extern debug (expr_def &)): New.
8406         (extern debug (expr_def *)): New.
8407         (extern debug_verbose (expr_def &)): New.
8408         (extern debug_verbose (expr_def *)): New.
8409         (extern debug (vec<rtx> &)): New.
8410         (extern debug (vec<rtx> *)): New.
8411         * sel-sched-ir.h
8412         (_list_iter_cond_expr): Make inline instead of static.
8413         * sreal.c
8414         (debug (sreal &)): New.
8415         (debug (sreal *)): New.
8416         * sreal.h
8417         (extern debug (sreal &)): New.
8418         (extern debug (sreal *)): New.
8419         * tree.h
8420         (extern debug_raw (const tree_node &)): New.
8421         (extern debug_raw (const tree_node *)): New.
8422         (extern debug (const tree_node &)): New.
8423         (extern debug (const tree_node *)): New.
8424         (extern debug_verbose (const tree_node &)): New.
8425         (extern debug_verbose (const tree_node *)): New.
8426         (extern debug_head (const tree_node &)): New.
8427         (extern debug_head (const tree_node *)): New.
8428         (extern debug_body (const tree_node &)): New.
8429         (extern debug_body (const tree_node *)): New.
8430         (extern debug (vec<tree, va_gc> &)): New.
8431         (extern debug (vec<tree, va_gc> *)): New.
8432         * tree-cfg.c
8433         (debug (struct loop &)): New.
8434         (debug (struct loop *)): New.
8435         (debug_verbose (struct loop &)): New.
8436         (debug_verbose (struct loop *)): New.
8437         * tree-dump.c: Add header dependence.
8438         * tree-flow.h
8439         (extern debug (struct loop &)): New.
8440         (extern debug (struct loop *)): New.
8441         (extern debug_verbose (struct loop &)): New.
8442         (extern debug_verbose (struct loop *)): New.
8443         * tree-data-ref.c
8444         (debug (data_reference &)): New.
8445         (debug (data_reference *)): New.
8446         (debug (vec<data_reference_p> &)): New.
8447         (debug (vec<data_reference_p> *)): New.
8448         (debug (vec<ddr_p> &)): New.
8449         (debug (vec<ddr_p> *)): New.
8450         * tree-data-ref.h
8451         (extern debug (data_reference &)): New.
8452         (extern debug (data_reference *)): New.
8453         (extern debug (vec<data_reference_p> &)): New.
8454         (extern debug (vec<data_reference_p> *)): New.
8455         (extern debug (vec<ddr_p> &)): New.
8456         (extern debug (vec<ddr_p> *)): New.
8457         * tree-ssa-alias.c
8458         (debug (pt_solution &)): New.
8459         (debug (pt_solution *)): New.
8460         * tree-ssa-alias.h
8461         (extern debug (pt_solution &)): New.
8462         (extern debug (pt_solution *)): New.
8463         * tree-ssa-alias.c
8464         (debug (_var_map &)): New.
8465         (debug (_var_map *)): New.
8466         (debug (tree_live_info_d &)): New.
8467         (debug (tree_live_info_d *)): New.
8468         * tree-ssa-alias.h
8469         (extern debug (_var_map &)): New.
8470         (extern debug (_var_map *)): New.
8471         (extern debug (tree_live_info_d &)): New.
8472         (extern debug (tree_live_info_d *)): New.
8473
8474 2013-03-28  Jan Hubicka  <jh@suse.cz>
8475
8476         * lto-cgraph.c (merge_profile_summaries): Fix overflows.
8477
8478 2013-03-28  Ian Bolton  <ian.bolton@arm.com>
8479
8480         * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
8481         record only when desired or required.
8482
8483 2013-03-28  Uros Bizjak  <ubizjak@gmail.com>
8484
8485         * config/i386/i386.md (*vec_extract2vdi_1): Merge with
8486         *vec_extractv2di_1_rex64.  Use x64 isa attribute.
8487
8488 2013-03-28  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8489
8490         * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
8491         (*andsi3_compare0_uxtw): New pattern.
8492         (*and_<SHIFT:optab><mode>3_compare0): New pattern.
8493         (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
8494
8495 2013-03-28  Jan Hubicka  <jh@suse.cz>
8496
8497         * data-streamer-in.c (streamer_read_gcov_count): New function.
8498         * gimple-streamer-out.c: Include value-prof.h.
8499         (output_gimple_stmt): Output histogram.
8500         (output_bb): Use streamer_write_gcov_count.
8501         * value-prof.c: Include data-streamer.h
8502         (dump_histogram_value): Add HIST_TYPE_MAX.
8503         (stream_out_histogram_value): New function.
8504         (stream_in_histogram_value): New function.
8505         * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
8506         (stream_out_histogram_value, stream_in_histogram_value): Declare.
8507         * data-streamer-out.c (streamer_write_gcov_count): New function.
8508         (streamer_write_gcov_count_stream): New function.
8509         * lto-cgraph.c (lto_output_edge): Update counter streaming.
8510         (lto_output_node): Likewise.
8511         (input_node, input_edge): Likewise.
8512         * lto-streamer-out.c (output_cfg): Update streaming.
8513         * lto-streamer-in.c (input_cfg): Likewise.
8514         * data-streamer.h (streamer_write_gcov_count,
8515         streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
8516         * gimple-streamer-in.c: Include value-prof.h
8517         (input_gimple_stmt): Input histograms.
8518         (input_bb): Update profile streaming.
8519
8520 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
8521
8522         * genmodes.c (emit_max_int): New function.
8523         (emit_insn_modes_h): Added call to emit_max_function.
8524         * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
8525         Added doc.
8526         * machmode.def: Fixed comment.
8527
8528 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
8529
8530         * combine.c (try_combine): Removed useless assert.
8531         * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
8532
8533 2013-03-28  Marek Polacek  <polacek@redhat.com>
8534             Richard Biener  <rguenther@suse.de>
8535
8536         PR tree-optimization/56695
8537         * tree-vect-stmts.c (vectorizable_condition): Unconditionally
8538         build signed result of a vector comparison.
8539         * tree-cfg.c (verify_gimple_comparison): Check that a result
8540         of a vector comparison has signed type.
8541
8542 2013-03-28  Richard Biener  <rguenther@suse.de>
8543
8544         PR tree-optimization/37021
8545         * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
8546         do not restrict gaps between groups.
8547         * tree-vect-stmts.c (vectorizable_load): Properly account for
8548         a gap between groups.
8549
8550 2013-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8551
8552         * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
8553         general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
8554         is not enabled.
8555
8556 2013-03-27  Gerald Pfeifer  <gerald@pfeifer.com>
8557
8558         * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
8559         * doc/extend.texi (Named Address Spaces): Ditto.
8560         (Variable Attributes): Ditto.
8561
8562 2013-03-27  Kai Tietz  <ktietz@redhat.com>
8563
8564         * config.build: Add support for cygwin x64 target.
8565         * config.gcc: Likewise.
8566         * config.host: Likewise.
8567         * configure.ac: Likewise
8568         * configure: Regenerated.
8569
8570 2013-03-27 Kai Tietz  <ktietz@redhat.com>
8571
8572         * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
8573         * config/i386/t-cygwin-w64: New file.
8574         * config/i386/cygwin-w64.h: New file.
8575         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
8576         and add support for x64-cygwin target.
8577         (CPP_SPEC): Likewise.
8578         (CXX_WRAP_SPEC_LIST): Undefine before define.
8579         (LIBGCJ_SONAME): Use 15 as version.
8580
8581 2013-03-27  Richard Biener  <rguenther@suse.de>
8582
8583         PR tree-optimization/56716
8584         * tree-ssa-structalias.c (perform_var_substitution): Adjust
8585         dumping for ref nodes.
8586
8587 2013-03-27  Martin Jambor  <mjambor@suse.cz>
8588
8589         PR tree-optimization/55334
8590         * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
8591         restricted pointers to arrays.
8592
8593 2013-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8594
8595         * Makefile.in (.SUFFIXES): Add .cc.
8596         (.c.o): Apply same recipe for implicit rule .cc.o.
8597
8598 2013-03-27  Richard Biener  <rguenther@suse.de>
8599
8600         PR tree-optimization/37021
8601         * tree-vect-data-refs.c (vect_check_strided_load): Allow
8602         REALPART/IMAGPART_EXPRs around the supported refs.
8603         * tree-ssa-structalias.c (find_func_aliases): Assume that
8604         floating-point values are not used to transfer pointers.
8605
8606 2013-03-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8607
8608         * target.def (TARGET_HAS_IFUNC_P): New target hook.
8609         * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
8610         * doc/tm.texi: Regenerate.
8611         * targhooks.h (default_has_ifunc_p): New.
8612         * targhooks.c (default_has_ifunc_p): Ditto.
8613         * config/linux-protos.h: New file.
8614         * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
8615         this hook for linux which disables support of indirect functions in
8616         android.
8617         * config/linux-android.c: New file.
8618         * config/t-linux-android.c: Ditto.
8619         * config.gcc: Added new object file linux-android.o.
8620         * config/i386/i386.c (ix86_get_function_versions_dispatcher):
8621         Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
8622         * varasm.c (do_assemble_alias): Likewise.
8623         * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
8624         doesn't support indirect functions.
8625         * configure: Regenerate.
8626
8627 2013-03-27  Bin Cheng  <bin.cheng@arm.com>
8628
8629         PR target/56102
8630         * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
8631         rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
8632         mult-word mode.
8633
8634 2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8635
8636         * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
8637
8638 2013-03-27  Terry Guo  <terry.guo@arm.com>
8639
8640         * config/arm/arm-cores.def: Added core cortex-r7.
8641         * config/arm/arm-tune.md: Regenerated.
8642         * config/arm/arm-tables.opt: Regenerated.
8643         * doc/invoke.texi: Added entry for core cortex-r7.
8644
8645 2013-03-27  Walter Lee  <walt@tilera.com>
8646
8647         * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
8648         double-decrement of next_scratch_regno.
8649
8650 2013-03-27  Walter Lee  <walt@tilera.com>
8651
8652         * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
8653         input operands.
8654         (insn_v1mulus): Ditto.
8655         (insn_v2muls): Ditto.
8656
8657 2013-03-27  Walter Lee  <walt@tilera.com>
8658
8659         * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
8660         (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
8661
8662 2013-03-27  Walter Lee  <walt@tilera.com>
8663
8664         * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
8665         (*sibcall_value): Ditto.
8666
8667 2013-03-27  Walter Lee  <walt@tilera.com>
8668
8669         * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
8670         (insn_mnz_v8qi): ... this ...
8671         (insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
8672         vector equivalent.
8673         (insn_v<n>mnz): Replaced by ...
8674         (insn_v1mnz): ... this ...
8675         (insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
8676         equivalent.
8677         (insn_mz_<mode>): Replaced by ...
8678         (insn_mz_v8qi): ... this ...
8679         (insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
8680         vector equivalent.
8681         (insn_v<n>mz): Replaced by ...
8682         (insn_v1mz): ... this ...
8683         (insn_v2mz): ... and this.  Replace (const_int 0) with the vector
8684         equivalent.
8685
8686 2013-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8687
8688         * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
8689
8690 2013-03-26  Roland McGrath  <mcgrathr@google.com>
8691
8692         * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
8693         than fprintf with a non-constant, non-format string.
8694
8695 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
8696
8697         * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
8698         using nox64 isa attribute.  Use nonimmediate_x86nomem_operand as
8699         operand 0 predicate.
8700         (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
8701         attribute.  Use general_x64nomem_operand as operand 1 predicate.
8702         (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
8703         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
8704         (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
8705         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
8706         (mov<mode>_insv_1): Remove expander.  Merge insn with
8707         movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
8708         Use general_x64nomem_operand as operand 1 predicate.
8709         (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
8710         (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
8711         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
8712         (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
8713         attribute.  Use nonimmediate_x64nomem_operand as operand 2 predicate.
8714         (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
8715         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
8716         (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
8717         isa attribute.  Use general_x64nomem_operand as operand 2 predicate.
8718         * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
8719         (general_x64nomem_operand): Ditto.
8720
8721 2013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8722
8723         * config/rtems.opt: Add -pthread option.
8724
8725 2013-03-26  Richard Biener  <rguenther@suse.de>
8726
8727         * alias.c (find_base_term): Avoid redundant and not used recursion.
8728         (base_alias_check): Get the initial base term from the caller.
8729         (true_dependence_1): Compute and pass base terms to base_alias_check.
8730         (write_dependence_p): Likewise.
8731         (may_alias_p): Likewise.
8732
8733 2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
8734
8735         * config/aarch64/aarch64.c (aarch64_classify_address): Support
8736         PC-relative load in SI modes and above only.
8737
8738 2013-03-26  Xinyu Qi  <xyqi@marvell.com>
8739
8740         * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
8741         * config/arm/iwmmxt.md (WCGR0): Update.
8742         (WCGR1, WCGR2, WCGR3): Likewise.
8743
8744 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
8745
8746         * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
8747         Use x64 and nox64 isa attributes.
8748
8749 2013-03-26  Richard Biener  <rguenther@suse.de>
8750
8751         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
8752         alignment computations and rely on get_object_alignment_1
8753         for the !TYPE_P case.
8754         Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
8755
8756 2013-03-26  Walter Lee  <walt@tilera.com>
8757
8758         * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
8759         * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
8760
8761 2013-03-25  Jeff Law  <law@redhat.com>
8762
8763         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
8764         check for INTEGRAL_TYPE_P that was missing due to checking in
8765         wrong version of prior patch.
8766
8767 2013-03-25  Walter Lee  <walt@tilera.com>
8768
8769         * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
8770         TILEGX_INSN_SHUFFLEBYTES1.
8771         * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
8772         shufflebytes1.
8773         (tilegx_builtins): Ditto.
8774         * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
8775
8776 2013-03-25  Walter Lee  <walt@tilera.com>
8777
8778         * config/tilegx/tilegx.md (floatsisf2): New pattern.
8779         (floatunssisf2): New pattern.
8780         (floatsidf2): New pattern.
8781         (floatunssidf2): New pattern.
8782
8783 2013-03-25  Walter Lee  <walt@tilera.com>
8784
8785         * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
8786         tests for constraint J, K, N, P.
8787
8788 2013-03-25  Walter Lee  <walt@tilera.com>
8789
8790         * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
8791         Use indirect/pcrel encoding.
8792         * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
8793         Ditto.
8794
8795 2013-03-25  Steve Ellcey  <sellcey@mips.com>
8796
8797         * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
8798         74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
8799         * config/mips/mips.c (mips_option_override): Set IMADD default.
8800         * config/mips/mips.h (PTF_AVOID_IMADD): New.
8801         (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
8802         (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
8803         * config/mips/mips.md (mimadd): New flag for integer madd/msub.
8804         * doc/invoke.texi (-mimadd/-mno-imadd): New.
8805
8806 2013-03-25  Jeff Law  <law@redhat.com>
8807
8808         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
8809         slightly to avoid creating and folding useless trees.  Simplify
8810         slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
8811
8812 2013-03-25  Uros Bizjak  <ubizjak@gmail.com>
8813
8814         * config/i386/i386.md (*zero_extendsidi2): Merge with
8815         *zero_extendsidi2_rex64.  Use x64 and nox64 isa attributes.
8816         * config/i386/predicates.md (x86_64_zext_operand): Rename from
8817         x86_64_zext_general_operand.  Use nonimmediate_operand on 32bit
8818         targets.  Clarify comment.
8819
8820 2013-03-25  Martin Jambor  <mjambor@suse.cz>
8821
8822         * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
8823         pass-through jump functions differently.
8824         (ipa_read_jump_function): Likewise.  Also use setter functions to set
8825         up jump functions.
8826
8827 2013-03-25  Martin Jambor  <mjambor@suse.cz>
8828
8829         * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
8830         ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
8831         process it.
8832         (ipa_get_indirect_edge_target): New function.
8833         (devirtualization_time_bonus): New parameter known_aggs, pass it to
8834         ipa_get_indirect_edge_target.  Update all callers.
8835         (ipcp_discover_new_direct_edges): New parameter aggvals.  Pass it to
8836         ipa_get_indirect_edge_target_1 instead of calling
8837         ipa_get_indirect_edge_target.
8838         (create_specialized_node): Pass aggvlas to
8839         ipcp_discover_new_direct_edges.
8840
8841 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8842
8843         * config/arm/arm.md (f_sels, f_seld): New types.
8844         (*cmov<mode>): New pattern.
8845         * config/arm/predicates.md (arm_vsel_comparison_operator): New
8846         predicate.
8847
8848 2013-03-25  Kai Tietz  <ktietz@redhat.com>
8849
8850         * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
8851         POSIX-printf for mingw-hosted  builds.
8852
8853 2013-03-25  Richard Biener  <rguenther@suse.de>
8854
8855         PR middle-end/56694
8856         * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
8857         must-not-throw stmt location.
8858
8859 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8860
8861         * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
8862         Emit load-acquire versions when acq is true.
8863         (arm_emit_store_exclusive): Add rel parameter.
8864         Emit store-release versions when rel is true.
8865         (arm_split_compare_and_swap): Use acquire-release instructions
8866         instead.
8867         of barriers when appropriate.
8868         (arm_split_atomic_op): Likewise.
8869         * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
8870         * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
8871         (VUNSPEC_SLX): Likewise.
8872         (VUNSPEC_LDA): Likewise.
8873         (VUNSPEC_STL): Likewise.
8874         * config/arm/sync.md (atomic_load<mode>): New pattern.
8875         (atomic_store<mode>): Likewise.
8876         (arm_load_acquire_exclusive<mode>): Likewise.
8877         (arm_load_acquire_exclusivesi): Likewise.
8878         (arm_load_acquire_exclusivedi): Likewise.
8879         (arm_store_release_exclusive<mode>): Likewise.
8880
8881 2013-03-25  Catherine Moore  <clm@codesourcery.com>
8882
8883         * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
8884         Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
8885         * config/mip/predicates.md (lwsp_swsp_operand,
8886         lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
8887         sb16_operand, db4_operand, db7_operand, ib3_operand,
8888         sb4_operand, ub4_operand, uh4_operand, uw4_operand,
8889         uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
8890         andi16_operand): New predicates.
8891         * config/mips/mips.md (compression): New attribute.
8892         (enabled): New attribute.
8893         (length): Consider compression in computing length.
8894         (shift_compression): New code attribute.
8895         (*add<mode>3): New operands. Record compression.
8896         (sub<mode>3): Likewise.
8897         (one_cmpl<mode>2): Likewise.
8898         (*and<mode>3): Likewise.
8899         (*ior<mode>3): Likewise.
8900         (unnamed pattern for xor): Likewise.
8901         (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
8902         (*<optab><mode>3): Likewise.
8903         (*mov<mode>_internal: Likewise.
8904         * config/mips/mips-protos.h (mips_signed_immediate_p): New.
8905         (mips_unsigned_immediate_p): New.
8906         (umips_lwsp_swsp_address_p): New.
8907         (m16_based_address_p): New.
8908         * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
8909         (mips_unsigned_immediate_p): New prototype.
8910         (lwsp_swsp_address_p): New prototype.
8911         (m16_based_address_p): New prototype.
8912         * config/mips/mips.c (mips_unsigned_immediate_p): New function.
8913         (mips_signed_immediate_p): New function.
8914         (m16_based_address_p): New function.
8915         (lwsp_swsp_address_p): New function.
8916         (mips_print_operand_punctuation): Recognize short delay slot insns
8917         for microMIPS.add<mode>3"
8918
8919 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8920
8921         PR target/56720
8922         * config/arm/iterators.md (v_cmp_result): New mode attribute.
8923         * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
8924
8925 2013-03-25  Richard Biener  <rguenther@suse.de>
8926
8927         PR tree-optimization/56689
8928         * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
8929         any edge.
8930
8931 2013-03-25  Richard Biener  <rguenther@suse.de>
8932
8933         * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
8934         of bitmap.
8935         (memory_references): Likewise.
8936         (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
8937         gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
8938         ref_indep_loop_p_2, find_refs_for_sm): Adjust.
8939         (gather_mem_refs_in_loops): Fold into ...
8940         (analyze_memory_references): ... this.  Move initialization
8941         to tree_ssa_lim_initialize.
8942         (fill_always_executed_in): Rename to ...
8943         (fill_always_executed_in_1): ... this.
8944         (fill_always_executed_in): Move contains_call computation to
8945         this new function from ...
8946         (tree_ssa_lim_initialize): ... here.
8947         (tree_ssa_lim): Call fill_always_executed_in.
8948
8949 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
8950
8951         * postreload.c (reload_combine): Fix code detecting returns.
8952
8953 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
8954
8955         * function.c (emit_use_return_register_into_block): On cc0 targets,
8956         do not emit the sequence between cc0 setter and user.
8957
8958 2013-03-25  Kai Tietz  <ktietz@redhat.com>
8959
8960         * config/i386/predicates.md (local_symbolic_operand): Interpret
8961         dll-imported symbols as none-local.
8962
8963 2013-03-25  Richard Biener  <rguenther@suse.de>
8964
8965         * tree-ssa-loop-im.c (struct depend): Remove.
8966         (struct lim_aux_data): Make depends a vec of gimples.
8967         (free_lim_aux_data): Adjust.
8968         (add_dependency): Likewise.
8969         (set_level): Likewise.
8970
8971 2013-03-25  Richard Biener  <rguenther@suse.de>
8972
8973         PR middle-end/56434
8974         * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
8975         the pointer returned by calls with ECF_MALLOC set.
8976
8977 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
8978
8979         * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
8980
8981 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
8982
8983         * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
8984         using MMXMODE mode iterator.
8985         (*move<mode>_internal): Merge with *movv2sf_internal and
8986         *movv2sf_internal_rex64 using MMXMODE mode iterator.
8987
8988 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
8989
8990         * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
8991         (record_last_mem_set_info): Likewise.
8992
8993         * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
8994         of XNEWVEC followed by memset.
8995         (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
8996
8997 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
8998
8999         * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
9000         config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
9001         config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
9002         config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
9003         config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
9004         config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
9005         dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
9006         the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
9007         BARRIER_P instead of GET_CODE.
9008
9009 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
9010
9011         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
9012         inaccuracy in the probing code.
9013
9014         * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
9015         (ctrapdi4): Likewise.
9016
9017 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
9018
9019         * calls.c (expand_call): Add missing guard to code handling return
9020         of non-BLKmode structures in MSB.
9021         * function.c (expand_function_end): Likewise.
9022
9023 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
9024
9025         * combine.c (try_combine): Adjust comment.  Do not add the set of
9026         insn #0 if the destination indirectly is set or dies in insn #2.
9027         Tidy up code to distribute a new note.
9028
9029 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
9030
9031         * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
9032         also for alternatives 16 and 17.
9033
9034 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
9035
9036         * config/i386/sse.md (*mov<mode>_internal): Merge with
9037         *mov<mode>_internal_rex64.  Use x64 and nox64 isa attributes.
9038         Emit insn template depending on type attribute.  Use
9039         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
9040         movd instead of movq mnemonic for interunit moves.  Rewrite mode
9041         attribute calculation.  Remove unit attribute calculation.
9042         Set prefix attribute to maybe_vex for sselog1 and ssemov types.
9043         Set prefix_data16 attribute for DImode ssemov types.
9044         Use Ym instead of y for SSE-MMX conversion alternatives.
9045         Reorder operand constraints.
9046
9047 2013-03-22  Steven Bosscher  <steven@gcc.gnu.org>
9048
9049         * df.h (df_insn_delete): Adjust prototype.
9050         * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
9051         and let it decide whether mark the basic block dirty.
9052         (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
9053         * df-scan.c (df_insn_info_delete): New helper function, split
9054         off from df_insn_delete.
9055         (df_scan_free_bb_info): Use it.
9056         (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
9057         Likewise.
9058         (df_insn_delete): Likewise.  Take insn rtx as argument.  Verify
9059         that the insn is actually an insn and it has a non-NULL basic block.
9060         Do not mark basic block dirty if only deleting a DEBUG_INSN.
9061
9062 2013-03-22  Richard Biener  <rguenther@suse.de>
9063
9064         * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
9065         dep_ref members.
9066         (mem_ref_alloc): Do not allocate them.
9067         (refs_independent_p): Do not query or maintain a cache.
9068
9069 2013-03-22  Richard Biener  <rguenther@suse.de>
9070
9071         * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
9072         (gather_mem_refs_in_loops): Do not compute it.
9073         (analyze_memory_references): Do not allocate it.
9074         (tree_ssa_lim_finalize): Do not free it.
9075         (for_all_locs_in_loop): Do not query all_refs_in_loop.
9076
9077 2013-03-22  Richard Biener  <rguenther@suse.de>
9078
9079         * is-a.h (as_a): Use gcc_checking_assert.
9080
9081 2013-03-22  Ian Bolton  <ian.bolton@arm.com>
9082
9083         * config/aarch64/aarch64.c (aarch64_print_operand): New
9084         format specifier for printing a constant in hex.
9085         * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
9086         format specifier for printing second operand.
9087
9088 2013-03-22  Richard Biener  <rguenther@suse.de>
9089
9090         * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
9091         bitmaps.
9092         (gather_mem_refs_in_loops): Perform store accumulation here.
9093         (create_vop_ref_mapping_loop): Remove.
9094         (create_vop_ref_mapping): Likewise.
9095         (analyze_memory_references): Initialize refs_stored_in_loop.
9096         (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
9097         (record_indep_loop): Remove.
9098         (record_dep_loop): New function.
9099         (ref_indep_loop_p_1): Adjust to only walk over references
9100         in the loop, not its subloops.
9101         (ref_indep_loop_p): Rename to ...
9102         (ref_indep_loop_p_2): ... this and recurse over the loop tree,
9103         maintaining a more fine-grained cache.
9104         (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
9105         (tree_ssa_lim_finalize): Free refs_stored_in_loop.
9106
9107 2013-03-22  Richard Biener  <rguenther@suse.de>
9108
9109         * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
9110         (struct mem_ref): Make accesses_in_loop a vec of a vec of
9111         aggregate mem_ref_loc.
9112         (free_mem_ref_locs): Inline into ...
9113         (memref_free): ... this and adjust.
9114         (mem_ref_alloc): Adjust.
9115         (mem_ref_locs_alloc): Remove.
9116         (record_mem_ref_loc): Adjust.
9117         (get_all_locs_in_loop): Rewrite into ...
9118         (for_all_locs_in_loop): ... this iterator.
9119         (rewrite_mem_ref_loc): New functor.
9120         (rewrite_mem_refs): Use for_all_locs_in_loop.
9121         (sm_set_flag_if_changed): New functor.
9122         (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
9123         (ref_always_accessed): New functor.
9124         (ref_always_accessed_p): Use for_all_locs_in_loop.
9125
9126 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
9127
9128         * tree-pass.h (PROP_gimple_lvec): New.
9129         * passes.c (dump_properties): Handle PROP_gimple_lvec.
9130         (init_optimization_passes): Move pass_lower_vector.
9131         * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
9132         PROP_gimple_lvec.
9133         (pass_lower_vector): Provide PROP_gimple_lvec.
9134         (pass_lower_vector_ssa): Likewise.
9135         * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
9136
9137 2013-03-21  Mark Wielaard  <mjw@redhat.com>
9138
9139         * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
9140
9141 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
9142
9143         * config/i386/i386.md (*movdi_internal): Disparage slightly
9144         all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
9145         conversion alternatives.
9146
9147 2013-03-21  Jakub Jelinek  <jakub@redhat.com>
9148
9149         PR middle-end/48087
9150         * diagnostic.def (DK_WERROR): New kind.
9151         * diagnostic.h (werrorcount): Define.
9152         * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
9153         promoted to DK_ERROR, increment DK_WERROR counter instead of
9154         DK_ERROR counter.
9155         * toplev.c (toplev_main): Call print_ignored_options even if
9156         just werrorcount is non-zero.  Exit with FATAL_EXIT_CODE
9157         even if just werrorcount is non-zero.
9158
9159         PR debug/55608
9160         * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
9161         on failure.
9162         (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
9163         (string_cst_pool_decl): New function.
9164         (optimize_one_addr_into_implicit_ptr): New function.
9165         (resolve_addr_in_expr): Optimize DWARF location expression
9166         DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
9167         which doesn't live in memory, but has DW_AT_location or
9168         DW_AT_const_value, or refers to a string literal, into
9169         DW_OP_GNU_implicit_pointer.
9170         (optimize_location_into_implicit_ptr): New function.
9171         (resolve_addr): If removing DW_AT_location of a variable because
9172         it was DW_OP_addr of address of the variable, but the variable doesn't
9173         live in memory, try to emit const value attribute for the initializer.
9174
9175 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
9176
9177         * tree.h (VECTOR_TYPE_P): New macro.
9178         (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
9179         TYPE_MODE): Use it.
9180         * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
9181         VEC_COND_EXPR cannot be lvalues.
9182         (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
9183
9184 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
9185
9186         * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
9187         Restrict the transformation to equal modes.
9188
9189 2013-03-21  Richard Biener  <rguenther@suse.de>
9190
9191         PR tree-optimization/39326
9192         * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
9193         (MEM_ANALYZABLE): Adjust.
9194         (record_mem_ref_loc): Move bitmap ops ...
9195         (gather_mem_refs_stmt): ... here.  Use the shared mem-ref for
9196         unanalyzable refs, do not record locations for it.
9197         (analyze_memory_references): Allocate ref zero as shared
9198         unanalyzable ref.
9199         (refs_independent_p): Do not test for unanalyzed mems here.
9200         (ref_indep_loop_p_1): Special-case disambiguation against
9201         the unanalyzed ref.
9202         (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
9203
9204 2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>
9205
9206         * config/arm/arm-protos.h (tune_params): Add
9207         prefer_neon_for_64bits field.
9208         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
9209         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
9210         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
9211         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
9212         (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
9213         (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
9214         (arm_option_override): Handle -mneon-for-64bits new option.
9215         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
9216         (prefer_neon_for_64bits): Declare new variable.
9217         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
9218         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
9219         (arch_enabled): Handle new arch types. Remove support for onlya8
9220         and nota8.
9221         (one_cmpldi2): Use new arch names.
9222         (zero_extend<mode>di2, extend<mode>di2): Ditto.
9223         * config/arm/arm.opt (mneon-for-64bits): Add option.
9224         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
9225         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
9226         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
9227         of onlya8.
9228         * doc/invoke.texi (-mneon-for-64bits): Document.
9229
9230 2013-03-21  Richard Biener  <rguenther@suse.de>
9231
9232         PR tree-optimization/39326
9233         * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
9234         (sort_bbs_in_loop_postorder_cmp): New function.
9235         (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
9236
9237 2013-03-21  Richard Biener  <rguenther@suse.de>
9238
9239         * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
9240         (vect_insert_into_interleaving_chain): Likewise.
9241         (vect_drs_dependent_in_basic_block): Inline ...
9242         (vect_slp_analyze_data_ref_dependence): ... here.  New function,
9243         split out from ...
9244         (vect_analyze_data_ref_dependence): ... here.  Simplify.
9245         (vect_check_interleaving): Simplify.
9246         (vect_analyze_data_ref_dependences): Likewise.  Split out ...
9247         (vect_slp_analyze_data_ref_dependences): ... this new function.
9248         (dr_group_sort_cmp): New function.
9249         (vect_analyze_data_ref_accesses): Compute data-reference groups
9250         here instead of in vect_analyze_data_ref_dependence.  Use
9251         a more efficient algorithm.
9252         * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
9253         vect_slp_analyze_data_ref_dependences.  Call
9254         vect_analyze_data_ref_accesses earlier.
9255         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9256         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
9257         (vect_slp_analyze_data_ref_dependences): New prototype.
9258
9259 2013-03-21  Richard Biener  <rguenther@suse.de>
9260
9261         * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
9262         ref is stored in the loop.
9263         (find_refs_for_sm): Walk only over all stores.
9264         (store_motion_loop): Allocate from lim_bitmap_obstack.
9265         (store_motion): Likewise.
9266
9267 2013-03-21  Richard Biener  <rguenther@suse.de>
9268
9269         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
9270         Update virtual SSA form.
9271
9272 2013-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9273
9274         * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
9275         * configure: Regenerate.
9276         * config.in: Regenerate.
9277         * config/sol2.c (solaris_override_options): Only enforce DWARF 2
9278         if !HAVE_LD_EH_FRAME_CIEV3.
9279
9280 2013-03-21  Richard Biener  <rguenther@suse.de>
9281
9282         * tree-cfg.c (verify_expr_no_block): New function.
9283         (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
9284         nor DECL_VALUE_EXPR have locations with associated blocks.
9285         * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
9286         (clear_unused_block_pointer): Remove code dealing with
9287         blocks in DECL_DEBUG_EXPR locations.
9288
9289 2013-03-21  Richard Biener  <rguenther@suse.de>
9290
9291         * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
9292         (DECL_HAS_DEBUG_EXPR_P): ... this.  Guard properly.
9293         * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
9294         * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
9295         instead of DECL_DEBUG_EXPR_IS_FROM.
9296         * gimplify.c (gimplify_modify_expr): Likewise.
9297         * tree-cfg.c (verify_expr_location_1): Likewise.
9298         * tree-complex.c (create_one_component_var): Likewise.
9299         * tree-sra.c (create_access_replacement): Likewise.
9300         * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
9301         (clear_unused_block_pointer): Likewise.
9302         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
9303         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
9304         * var-tracking.c (var_debug_decl): Likewise.
9305         (track_expr_p): Likewise.
9306         * tree-inline.c (add_local_variables): Likewise.  Set
9307         DECL_HAS_DEBUG_EXPR_P after copying it.
9308         * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
9309         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
9310
9311 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
9312
9313         PR bootstrap/56656
9314         * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
9315         * configure: Regenerate.
9316         * config.in: Regenerate.
9317         * config/i386/i386.md (*movdf_internal): Use
9318         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
9319         movd instead of movq mnemonic for interunit moves.
9320         (*movdi_internal): Ditto.
9321
9322 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
9323
9324         * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
9325         (abd<mode>_3): New pattern.
9326         (aba<mode>_3): New pattern.
9327         (fabd<mode>_3): New pattern.
9328
9329 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
9330
9331         * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
9332         * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
9333         occurrence of REGISTER_PREFIX as its empty string.
9334
9335 2013-03-20  Jeff Law  <law@redhat.com>
9336
9337         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
9338         addititional equivalences for equality comparisons between an SSA_NAME
9339         and a constant where the SSA_NAME was set from a widening conversion.
9340
9341 2013-03-20  Walter Lee  <walt@tilera.com>
9342
9343         * config/tilegx/sync.md (atomic_test_and_set): New pattern.
9344
9345 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
9346
9347         * config/i386/i386.md (*movoi_internal_avx): Emit insn template
9348         depending on type attribute.
9349         (*movti_internal): Ditto.
9350         (*movtf_internal): Ditto.
9351         (*movxf_internal): Ditto.
9352         (*movdf_internal): Ditto.
9353         (*movsf_internal): Ditto.
9354
9355 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
9356
9357         * config/i386/i386.md (*movti_internal): Set prefix attribute to
9358         maybe_vex for sselog1 and ssemov types.
9359         (*movdi_internal): Reorder operand constraints.
9360         (*movsi_internal): Ditto.  Set prefix attribute to
9361         maybe_vex for sselog1 and ssemov types.
9362         (*movtf_internal): Set prefix attribute to maybe_vex
9363         for sselog1 and ssemov types.
9364         (*movdf_internal): Ditto.  Set prefix_data16 attribute for
9365         DImode ssemov types.  Reorder operand constraints.
9366         (*movsf_internal): Set type of alternatives 3,4 to imov.  Set prefix
9367         attribute to maybe_vex for sselog1 and ssemov types.  Set prefix_data16
9368         attribute for SImode ssemov types.  Reorder operand constraints.
9369
9370 2013-03-20  Martin Jambor  <mjambor@suse.cz>
9371
9372         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
9373         * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
9374
9375 2013-03-20  Pat Haugen <pthaugen@us.ibm.com>
9376
9377         * config/rs6000/predicates.md (indexed_address, update_address_mem
9378         update_indexed_address_mem): New predicates.
9379         * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
9380         attribute for load/store instructions.
9381         * config/rs6000/dfp.md (movsd_store): Likewise.
9382         (movsd_load): Likewise.
9383         * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
9384         (unnamed HI->DI extend define_insn): Likewise.
9385         (unnamed SI->DI extend define_insn): Likewise.
9386         (unnamed QI->SI extend define_insn): Likewise.
9387         (unnamed QI->HI extend define_insn): Likewise.
9388         (unnamed HI->SI extend define_insn): Likewise.
9389         (unnamed HI->SI extend define_insn): Likewise.
9390         (extendsfdf2_fpr): Likewise.
9391         (movsi_internal1): Likewise.
9392         (movsi_internal1_single): Likewise.
9393         (movhi_internal): Likewise.
9394         (movqi_internal): Likewise.
9395         (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
9396         attribute for load/store instructions.
9397         (mov<mode>_hardfloat): Set correct "type" attribute for load/store
9398         instructions.
9399         (mov<mode>_softfloat): Likewise.
9400         (mov<mode>_hardfloat32): Likewise.
9401         (mov<mode>_hardfloat64): Likewise.
9402         (mov<mode>_softfloat64): Likewise.
9403         (movdi_internal32): Likewise.
9404         (movdi_internal64): Likewise.
9405         (probe_stack_<mode>): Likewise.
9406
9407 2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
9408
9409         * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
9410         floating point, and decimal floating point to reload iterator.
9411
9412         * config/rs6000/constraints.md (wl constraint): New constraints to
9413         return FLOAT_REGS if certain options are used to reduce the number
9414         of separate patterns that exist in the file.
9415         (wx constraint): Likewise.
9416         (wz constraint): Likewise.
9417
9418         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
9419         -mdebug=reg, print wg, wl, wx, and wz constraints.
9420         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
9421         Initialize the reload functions for 64-bit binary/decimal floating
9422         point types.
9423         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
9424         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
9425         create the buffer on the stack to overcome not having a 32-bit
9426         load and store.
9427         (rs6000_emit_move): Likewise.
9428         (rs6000_secondary_memory_needed_rtx): Likewise.
9429         (rs6000_alloc_sdmode_stack_slot): Likewise.
9430         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
9431         via xxlxor, just like DFmode 0.0.
9432
9433         * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
9434         define as 1 if we are running on a power7 or newer.
9435         (enum r6000_reg_class_enum): Add new constraints.
9436
9437         * config/rs6000/dfp.md (movsd): Delete, combine with binary
9438         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
9439         with other moves by using conditional constraits (wg).  Use LFIWZX
9440         and STFIWX for loading SDmode on power7.  Use xxlxor to create 0.0f.
9441         (movsd splitter): Likewise.
9442         (movsd_hardfloat): Likewise.
9443         (movsd_softfloat): Likewise.
9444
9445         * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
9446         binary and decimal floating point moves.
9447         (fmove_ok): New attributes to combine binary and decimal floating
9448         point moves, and to combine power6x (mfpgpr) moves along normal
9449         floating moves.
9450         (real_value_to_target): Likewise.
9451         (f32_lr): Likewise.
9452         (f32_lm): Likewise.
9453         (f32_li): Likewise.
9454         (f32_sr): Likewise.
9455         (f32_sm): Likewise.
9456         (f32_si): Likewise.
9457         (movsf): Combine binary and decimal floating point moves.  Combine
9458         power6x (mfpgpr) moves with other moves by using conditional
9459         constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on power7.
9460         (mov<mode> for SFmode/SDmode); Likewise.
9461         (SFmode/SDmode splitters): Likewise.
9462         (movsf_hardfloat): Likewise.
9463         (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
9464         (movsf_softfloat): Likewise.
9465         (mov<mode>_softfloat for SFmode/SDmode): Likewise.
9466
9467         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
9468         wx and wz constraints.
9469
9470         * config/rs6000/constraints.md (wg constraint): New constraint to
9471         return FLOAT_REGS if -mmfpgpr (power6x) was used.
9472
9473         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
9474         constraint.
9475
9476         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
9477         -mdebug=reg, print wg, wl, wx, and wz constraints.
9478         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
9479         Initialize the reload functions for 64-bit binary/decimal floating
9480         point types.
9481         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
9482         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
9483         create the buffer on the stack to overcome not having a 32-bit
9484         load and store.
9485         (rs6000_emit_move): Likewise.
9486         (rs6000_secondary_memory_needed_rtx): Likewise.
9487         (rs6000_alloc_sdmode_stack_slot): Likewise.
9488         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
9489         via xxlxor, just like DFmode 0.0.
9490
9491         * config/rs6000/dfp.md (movdd): Delete, combine with binary
9492         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
9493         with other moves by using conditional constraits (wg).  Use LFIWZX
9494         and STFIWX for loading SDmode on power7.
9495         (movdd splitters): Likewise.
9496         (movdd_hardfloat32): Likewise.
9497         (movdd_softfloat32): Likewise.
9498         (movdd_hardfloat64_mfpgpr): Likewise.
9499         (movdd_hardfloat64): Likewise.
9500         (movdd_softfloat64): Likewise.
9501
9502         * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
9503         64-bit binary and decimal floating point moves.
9504         (FMOVE64X): Likewise.
9505         (movdf): Combine 64-bit binary and decimal floating point moves.
9506         Combine power6x (mfpgpr) moves with other moves by using
9507         conditional constraits (wg).
9508         (mov<mode> for DFmode/DDmode): Likewise.
9509         (DFmode/DDmode splitters): Likewise.
9510         (movdf_hardfloat32): Likewise.
9511         (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
9512         (movdf_softfloat32): Likewise.
9513         (movdf_hardfloat64_mfpgpr): Likewise.
9514         (movdf_hardfloat64): Likewise.
9515         (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
9516         (movdf_softfloat64): Likewise.
9517         (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
9518         (reload_<mode>_load): Move to later in the file so they aren't in
9519         the middle of the floating point move insns.
9520         (reload_<mode>_store): Likewise.
9521
9522         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
9523         constraint.
9524
9525         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
9526         constraint if -mdebug=reg.
9527         (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
9528         Enable using dd reload support if needed.
9529
9530         * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
9531         binary and decimal floating point moves in rs6000.md.
9532         (movtd_internal): Likewise.
9533
9534         * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
9535         decimal floating point moves.
9536         (movtf): Likewise.
9537         (movtf_internal): Likewise.
9538         (mov<mode>_internal, TDmode/TFmode): Likewise.
9539         (movtf_softfloat): Likewise.
9540         (mov<mode>_softfloat, TDmode/TFmode): Likewise.
9541
9542         * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
9543         movdi_internal64, using wg constraint for move direct operations.
9544         (movdi_internal64): Likewise.
9545
9546         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
9547         MODES_TIEABLE_P for selected modes.  Print the numerical value of
9548         the various virtual registers. Use GPR/FPR first/last values,
9549         instead of hard coding the register numbers.  Print which modes
9550         have reload functions registered.
9551         (rs6000_option_override_internal): If -mdebug=reg, trace the options
9552         settings before/after setting cpu, target and subtarget settings.
9553         (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
9554         and for secondary reload failures in rs6000_secondary_reload_inner.
9555         (rs6000_secondary_reload_fail): Likewise.
9556         (rs6000_secondary_reload_inner): Likewise.
9557
9558         * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
9559         macros for first/last GPR and FPR registers.
9560         (LAST_GPR_REGNO): Likewise.
9561         (FIRST_FPR_REGNO): Likewise.
9562         (LAST_FPR_REGNO): Likewise.
9563
9564         * config/rs6000/vector.md (mul<mode>3): Use the combined macro
9565         VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
9566         VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
9567         (vcond<mode><mode>): Likewise.
9568         (vcondu<mode><mode>): Likewise.
9569         (vector_gtu<mode>): Likewise.
9570         (vector_gte<mode>): Likewise.
9571         (xor<mode>3): Don't allow logical operations on TImode in 32-bit
9572         to prevent the compiler from converting DImode operations to TImode.
9573         (ior<mode>3): Likewise.
9574         (and<mode>3): Likewise.
9575         (one_cmpl<mode>2): Likewise.
9576         (nor<mode>3): Likewise.
9577         (andc<mode>3): Likewise.
9578
9579         * config/rs6000/constraints.md (wt constraint): New constraint
9580         that returns VSX_REGS if TImode is allowed in VSX registers.
9581
9582         * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
9583         constant under VSX.
9584
9585         * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
9586         similar to TImode, but it is restricted to being in the GPRs.
9587
9588         * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
9589         TImode to occupy a single VSX register.
9590
9591         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
9592         -mvsx-timode for power7/power8.
9593         (power7 cpu): Likewise.
9594         (power8 cpu): Likewise.
9595
9596         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
9597         sure that TFmode/TDmode take up two registers if they are ever
9598         allowed in the upper VSX registers.
9599         (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
9600         registers.
9601         (rs6000_init_hard_regno_mode_ok): Likewise.
9602         (rs6000_debug_reg_global): Add debugging for PTImode and wt
9603         constraint.  Print if LRA is turned on.
9604         (rs6000_option_override_internal): Give an error if -mvsx-timode
9605         and VSX is not enabled.
9606         (invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
9607         -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
9608         to reg+offset addressing.  Use PTImode when checking offset
9609         addresses for validity.
9610         (reg_offset_addressing_ok_p): Likewise.
9611         (rs6000_legitimate_offset_address_p): Likewise.
9612         (rs6000_legitimize_address): Likewise.
9613         (rs6000_legitimize_reload_address): Likewise.
9614         (rs6000_legitimate_address_p): Likewise.
9615         (rs6000_eliminate_indexed_memrefs): Likewise.
9616         (rs6000_emit_move): Likewise.
9617         (rs6000_secondary_reload): Likewise.
9618         (rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
9619         reloads to fpr registers to continue to use reg+offset addressing,
9620         but 64-bit reloads to altivec registers need reg+reg addressing.
9621         Drop test for PRE_MODIFY, since VSX loads/stores no longer support
9622         it.  Treat LO_SUM like a PLUS operation.
9623         (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
9624         FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
9625         (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
9626         registers to share a register with a smaller sized type, since VSX
9627         puts scalars in the upper 64-bits.
9628         (print_operand): Add support for PTImode.
9629         (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
9630         VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
9631         registers, but don't have arithmetic support.
9632         (rs6000_memory_move_cost): Add test for VSX.
9633         (rs6000_opt_masks): Add -mvsx-timode.
9634
9635         * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
9636         for TImode.
9637         (VSs): Likewise.
9638         (VSr): Use wt constraint for TImode.
9639         (VSv): Drop TImode support.
9640         (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
9641         (vsx_movti_64bit): Likewise.
9642         (vsx_movti_32bit): Likewise.
9643         (vec_store_<mode>): Use VSX iterator instead of vector iterator.
9644         (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
9645         one '?' on the appropriate output constraint.  Do not allow TImode
9646         logical operations on 32-bit systems.
9647         (vsx_ior<mode>3): Likewise.
9648         (vsx_xor<mode>3): Likewise.
9649         (vsx_one_cmpl<mode>2): Likewise.
9650         (vsx_nor<mode>3): Likewise.
9651         (vsx_andc<mode>3): Likewise.
9652         (vsx_concat_<mode>): Likewise.
9653         (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
9654
9655         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
9656         OPTION_MASK_VSX_TIMODE.
9657         (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
9658         (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
9659
9660         * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
9661         (TI2 iterator): New iterator for TImode, PTImode.
9662         (wd mode attribute): Add values for vector types.
9663         (movti_string): Replace TI move operations with operations for TImode
9664         and PTImode.  Add support for TImode being allowed in VSX registers.
9665         (mov<mode>_string, TImode/PTImode): Likewise.
9666         (movti_ppc64): Likewise.
9667         (mov<mode>_ppc64, TImode/PTImode): Likewise.
9668         (TI mode splitters): Likewise.
9669
9670         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
9671         constraint.
9672
9673 2013-03-20  Marc Glisse  <marc.glisse@inria.fr>
9674
9675         PR tree-optimization/56355
9676         * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
9677         Also handle integers with undefined overflow.
9678
9679 2013-03-20  Catherine Moore  <clm@codesourcery.com>
9680             Maciej W. Rozycki  <macro@codesourcery.com>
9681             Tom de Vries  <tom@codesourcery.com>
9682             Nathan Sidwell <nathan@codesourcery.com>
9683             Iain Sandoe  <iain@codesourcery.com>
9684             Nathan Froyd  <froydnj@codesourcery.com>
9685             Chao-ying Fu <fu@mips.com>
9686
9687         * doc/extend.texi: (micromips, nomicromips, nocompression):
9688         Document new function attributes.
9689         * doc/invoke.texi (minterlink-compressed, mmicromips,
9690         m14k, m14ke, m14kec): Document new options.
9691         (minterlink-mips16): Update documentation.
9692         * doc/md.texi (ZC, ZD): Document new constraints.
9693         * configure.ac (gcc_cv_as_micromips): Check if linker
9694         supports the .set micromips directive.
9695         * configure: Regenerate.
9696         * config.in: Regenerate.
9697         * config/mips/mips-tables.opt: Regenerate.
9698         * config/mips/micromips.md: New file.
9699         * constraints.md (ZC, ZD): New constraints.
9700         * config/mips/predicates.md (movep_src_register): New predicate.
9701         (movep_src_operand): New predicate.
9702         (non_volatile_mem_operand): New predicate.
9703         * config/mips/mips.md (multimem): New type.
9704         (length): Differentiate between 17-bit and 18-bit branch offsets.
9705         (MOVEP1, MOVEP2): New mode iterator.
9706         (mov_<load>l): Use ZC constraint.
9707         (mov_<load>r): Likewise.
9708         (mov_<store>l): Likewise.
9709         (mov_<store>r): Likewise.
9710         (*branch_equality<mode>_inverted): Add microMIPS support.
9711         (*branch_equality<mode>): Likewise.
9712         (*jump_absolute): Likewise.
9713         (indirect_jump_<mode>): Likewise.
9714         (tablejump_<mode>): Likewise.
9715         (<optab>_internal): Likewise.
9716         (sibcall_internal): Likewise.
9717         (sibcall_value_internal): Likewise.
9718         (prefetch): Use constraint ZD.
9719         * config/mips/mips.opt (minterlink-compressed): New option.
9720         (minterlink-mips16): Now an alias for minterlink-compressed.
9721         (mmicromips): New option.
9722         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9723         (compare_and_swap_12): Likewise.
9724         (sync_add<mode>): Likewise.
9725         (sync_<optab>_12): Likewise.
9726         (sync_old_<optab>_12): Likewise.
9727         (sync_new_<optab>_12): Likewise.
9728         (sync_nand_12): Likewise.
9729         (sync_old_nand_12): Likewise.
9730         (sync_new_nand_12): Likewise.
9731         (sync_sub<mode>): Likewise.
9732         (sync_old_add<mode>): Likewise.
9733         (sync_old_sub<mode>): Likewise.
9734         (sync_new_add<mode>): Likewise.
9735         (sync_new_sub<mode>): Likewise.
9736         (sync_<optab><mode>): Likewise.
9737         (sync_old_<optab><mode>): Likewise.
9738         (sync_new_<optab><mode>): Likewise.
9739         (sync_nand<mode>): Likewise.
9740         (sync_old_nand<mode>): Likewise.
9741         (sync_new_nand<mode>): Likewise.
9742         (sync_lock_test_and_set<mode>): Likewise.
9743         (test_and_set_12): Likewise.
9744         (atomic_compare_and_swap<mode>): Likewise.
9745         (atomic_exchange<mode>_llsc): Likewise.
9746         (atomic_fetch_add<mode>_llsc): Likewise.
9747         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9748         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9749         (umips_save_restore_pattern_p): Likewise.
9750         (umips_load_store_pair_p): Likewise.
9751         (umips_output_load_store_pair): Likewise.
9752         (umips_movep_target_p): Likewise.
9753         (umips_12bit_offset_address_p): Likewise.
9754         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9755         (mips_base_mips16): Rename this...
9756         (mips_base_compression_flags): ...to this. Update all uses.
9757         (mips_attribute_table): Add micromips, nomicromips and nocompression.
9758         (mips_mips16_decl_p): Delete.
9759         (mips_nomips16_decl_p): Delete.
9760         (mips_get_compress_on_flags): New function.
9761         (mips_get_compress_off_flags): New function.
9762         (mips_get_compress_mode): New function.
9763         (mips_get_compress_on_name): New function.
9764         (mips_get_compress_off_name): New function.
9765         (mips_insert_attributes): Support multiple compression types.
9766         (mips_merge_decl_attributes): Likewise.
9767         (umips_12bit_offset_address_p): New function.
9768         (mips_start_function_definition): Emit .set micromips directive.
9769         (mips_call_may_need_jalx_p): New function.
9770         (mips_function_ok_for_sibcall): Add microMIPS support.
9771         (mips_print_operand_punctuation): Support short delay slots and
9772         compact jumps.
9773         (umips_swm_mask, umips_swm_encoding): New.
9774         (umips_build_save_restore): New function.
9775         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9776         (was_mips16_p): Remove.
9777         (old_compression_mode): New.
9778         (mips_set_compression_mode): New function.
9779         (mips_set_current_function): Add microMIPS support.
9780         (mips_option_override): Likewise.
9781         (umips_save_restore_pattern_p): New function.
9782         (umips_output_save_restore): New function.
9783         (umips_load_store_pair_p_1): New function.
9784         (umips_load_store_pair_p): New function.
9785         (umips_output_load_store_pair_1): New function.
9786         (umips_output_load_store_pair): New function.
9787         (umips_movep_target_p) New function.
9788         (mips_prepare_pch_save): Add microMIPS support.
9789         * config/mips/mips.h (TARGET_COMPRESSION): New.
9790         (TARGET_CPU_CPP_BUILTINS): Update macro
9791         to use new compression flags and to support microMIPS.
9792         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9793         (MIPS_ARCH_FLOAT_SPEC): Likewise.
9794         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9795         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9796         (ASM_SPEC): Support mmicromips and mno-micromips.
9797         (M16STORE_REG_P): New macro.
9798         (MIPS_CALL): Support TARGET_MICROMIPS.
9799         (MICROMIPS_J): New macro.
9800         (mips_base_mips16): Rename this...
9801         (mips_base_compression_flags): ...to this.
9802         (UMIPS_12BIT_OFFSET_P): New macro.
9803         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9804         (MULTILIB_DIRNAMES): Likewise.
9805 2013-03-20  Richard Biener  <rguenther@suse.de>
9806
9807         PR tree-optimization/56661
9808         * tree-ssa-sccvn.c (visit_use): Only value-number calls if
9809         the result does not have to be distinct.
9810
9811 2013-03-20  Richard Biener  <rguenther@suse.de>
9812
9813         * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
9814         remap_gimple_op_r.
9815
9816 2013-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9817             Steven Bosscher <steven@gcc.gnu.org>
9818
9819         PR rtl-optimization/56605
9820         * loop-iv.c (implies_p): Handle equal RTXs and subregs.
9821
9822 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
9823
9824         PR bootstrap/56656
9825         * config/i386/i386.md (*movdi_internal): Handle broken assemblers
9826         that require movd instead of movq.
9827
9828 2013-03-20  Richard Biener  <rguenther@suse.de>
9829
9830         * tree-ssa-structalias.c (struct variable_info): Add pointer
9831         to the first field of an aggregate with sub-vars.  Make
9832         this and the pointer to the next subfield its ID.
9833         (vi_next): New function.
9834         (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
9835         storedanything_id, integer_id): Increment by one.
9836         (new_var_info, get_call_vi, lookup_call_clobber_vi,
9837         get_call_clobber_vi): Adjust.
9838         (solution_set_expand): Simplify and speedup.
9839         (solution_set_add): Inline into ...
9840         (set_union_with_increment): ... this.  Adjust accordingly.
9841         (do_sd_constraint): Likewise.
9842         (do_ds_constraint): Likewise.
9843         (do_complex_constraint): Simplify.
9844         (build_pred_graph): Adjust.
9845         (solve_graph): Likewise.  Simplify and speedup.
9846         (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
9847         get_constraint_for_component_ref, get_constraint_for_1,
9848         first_vi_for_offset, first_or_preceding_vi_for_offset,
9849         create_function_info_for, create_variable_info_for_1,
9850         create_variable_info_for, intra_create_variable_infos): Adjust.
9851         (init_base_vars): Push NULL for ID zero.
9852         (compute_points_to_sets): Adjust.
9853
9854 2013-03-20  Richard Biener  <rguenther@suse.de>
9855
9856         * cfgloop.c (verify_loop_structure): Streamline and avoid
9857         ICEing on corrupt loop tree.
9858         * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
9859         loop tree.
9860
9861 2013-03-20  Richard Biener  <rguenther@suse.de>
9862
9863         * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
9864         check whether an SSA update is needed.
9865
9866 2013-03-20  Richard Sandiford  <rdsandiford@googlemail.com>
9867
9868         * config/mips/constraints.md (T): Rename to...
9869         (Yf): ...this.
9870         (U): Rename to...
9871         (Yd): ...this.
9872         * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
9873         (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
9874
9875 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
9876
9877         * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
9878         (*subsi3_carryin_uxtw): Likewise.
9879
9880 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
9881
9882         * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
9883         (*rorsi3_insn_uxtw): Likewise.
9884
9885 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
9886
9887         * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
9888         (*extrsi5_insn_uxtw): Likewise.
9889
9890 2013-03-19  Richard Biener  <rguenther@suse.de>
9891
9892         PR tree-optimization/56273
9893         * passes.c (init_optimization_passes): Move second VRP after DOM.
9894
9895 2013-03-19  Uros Bizjak  <ubizjak@gmail.com>
9896
9897         * config/i386/i386.md (*movti_internal): Merge from
9898         *movti_internal_rex64 and *movti_internal_sse.  Use x64 isa attribute.
9899         (*movdi_internal): Merge with *movdi_internal_rex64.  Use x64 and
9900         nox64 isa attributes.
9901
9902 2013-03-18  Richard Biener  <rguenther@suse.de>
9903
9904         * tree-ssa-structalias.c (find): Use gcc_checking_assert.
9905         (unite): Likewise.
9906         (merge_node_constraints): Likewise.
9907         (build_succ_graph): Likewise.
9908         (valid_graph_edge): Inline into single caller.
9909         (unify_nodes): Likewise.  Use bitmap_set_bit return value
9910         and cache varinfo.
9911         (scc_visit): Fix formatting and variable use.
9912         (do_sd_constraint): Use gcc_checking_assert.
9913         (do_ds_constraint): Likewise.
9914         (do_complex_constraint): Likewise.
9915         (condense_visit): Likewise.  Cleanup.
9916         (dump_pred_graph): New function.
9917         (perform_var_substitution): Dump the pred-graph before
9918         variable substitution.
9919         (find_equivalent_node): Use gcc_checking_assert.
9920         (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
9921
9922 2013-03-18  Richard Biener  <rguenther@suse.de>
9923
9924         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9925         Remove cond_expr_stmt_list argument and do not gimplify the
9926         built expression.
9927         (vect_loop_versioning): Adjust.
9928         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9929         Cleanup to use less temporaries.
9930         (vect_create_data_ref_ptr): Cleanup.
9931
9932 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
9933
9934         PR tree-optimization/56635
9935         * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
9936         require types_compatible_p types.
9937
9938 2013-03-18  Nick Clifton  <nickc@redhat.com>
9939
9940         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
9941         spurious backslash.
9942
9943         * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
9944         Add missing line to comment describing function.
9945
9946 2013-03-18  Richard Biener  <rguenther@suse.de>
9947
9948         PR tree-optimization/56210
9949         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9950         Handle string / character search functions.
9951         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
9952
9953 2013-03-18  Richard Biener  <rguenther@suse.de>
9954
9955         PR middle-end/56483
9956         * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
9957         and implement properly.
9958         * gimple.h (gimple_cond_single_var_p): Remove.
9959
9960 2013-03-18  Richard Biener  <rguenther@suse.de>
9961
9962         * tree-data-ref.h (find_data_references_in_loop): Declare.
9963         * tree-data-ref.c (get_references_in_stmt): Use a stack
9964         vector pre-allocated in the callers.
9965         (find_data_references_in_stmt): Adjust.
9966         (graphite_find_data_references_in_stmt): Likewise.
9967         (create_rdg_vertices): Likewise.
9968         (find_data_references_in_loop): Export.
9969         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
9970         Compute dependences here...
9971         (vect_analyze_data_refs): ...not here.  When we encounter
9972         a non-vectorizable data reference in basic-block vectorization
9973         truncate the data reference vector.  Do not bother to
9974         fixup data-dependence information for gather loads.
9975         * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
9976         of data references, as reported.
9977
9978 2013-03-18  Richard Biener  <rguenther@suse.de>
9979
9980         PR tree-optimization/3713
9981         * tree-ssa-sccvn.c (visit_copy): Simplify.  Always propagate
9982         has_constants and expr.
9983         (stmt_has_constants): Properly valueize SSA names when deciding
9984         whether the stmt has constants.
9985
9986 2013-03-18  Richard Biener  <rguenther@suse.de>
9987
9988         * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
9989         whole function when there is nothing to do.
9990         * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
9991         * tree-vectorizer.c (vectorize_loops): Update virtual and
9992         loop-closed SSA once.
9993         * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
9994
9995 2013-03-18  Richard Biener  <rguenther@suse.de>
9996
9997         PR middle-end/56113
9998         * domwalk.c (bb_postorder): New global static.
9999         (cmp_bb_postorder): New function.
10000         (walk_dominator_tree): Replace scheme imposing an order for
10001         visiting dominator sons by one sorting them at the time they
10002         are pushed on the stack.
10003
10004 2013-03-18  Richard Biener  <rguenther@suse.de>
10005
10006         PR tree-optimization/39326
10007         * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
10008         (struct mem_ref): Replace mem member with ao_ref typed member.
10009         (MEM_ANALYZABLE): Adjust.
10010         (memref_eq): Likewise.
10011         (mem_ref_alloc): Likewise.
10012         (gather_mem_refs_stmt): Likewise.
10013         (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
10014         (execute_sm_if_changed_flag_set): Adjust.
10015         (execute_sm): Likewise.
10016         (ref_always_accessed_p): Likewise.
10017         (refs_independent_p): Likewise.
10018         (can_sm_ref_p): Likewise.
10019
10020 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
10021
10022         PR c/56566
10023         * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
10024         return 1 even for !unsignedp.
10025
10026 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
10027
10028         * config/i386/i386.md (isa): Add x64 and nox64.
10029         (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
10030         (*pushtf): Enable *roF alternative for x64 isa only.
10031         (*pushxf): Merge with *pushxf_nointeger.  Use Yx*r constraint. Set
10032         mode attribute of integer alternatives to DImode for TARGET_64BIT.
10033         (*pushdf): Merge with *pushdf_rex64.  Use x64 and nox64 isa attributes.
10034         (*movtf_internal): Merge from *movtf_internal_rex64 and
10035         *movtf_internal_sse.  Use x64 and nox64 isa attributes.
10036         (*movxf_internal): Merge with *movxf_internal_rex64.  Use x64 and
10037         nox64 isa attributes.
10038         (*movdf_internal): Merge with *movdf_internal_rex64.  Use x64 and
10039         nox64 isa attributes.
10040         * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
10041
10042 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
10043
10044         * config/alpha/alpha.c (TARGET_LRA_P): New define.
10045
10046 2013-03-17  Jakub Jelinek  <jakub@redhat.com>
10047
10048         PR target/56640
10049         * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
10050         class names.  Remove trailing comma after "ALL_REGS".
10051
10052 2013-03-16  Jan Hubicka  <jh@suse.cz>
10053
10054         * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
10055         * cgraph.c (cgraph_get_create_real_symbol_node): New function.
10056         * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
10057         of cgraph_get_create_node.
10058         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
10059
10060 2013-03-16  Jason Merrill  <jason@redhat.com>
10061
10062         PR debug/49090
10063         * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
10064         with DW_AT_default_value.
10065
10066 2013-03-16  Jakub Jelinek  <jakub@redhat.com>
10067
10068         * BASE-VER: Set to 4.9.0.
10069
10070 2013-03-14  Andi Kleen  <ak@linux.intel.com>
10071
10072         PR target/56619
10073         * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
10074         __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
10075         Document _x* TSX intrinsics.
10076
10077 2013-03-14  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
10078             David Holsgrove  <david.holsgrove@xilinx.com>
10079
10080         * configure.ac: Add MicroBlaze TLS support detection.
10081         * configure: Regenerate.
10082         * config/microblaze/microblaze-protos.h
10083         (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
10084         symbol_mentioned_p, label_mentioned_p): Add prototypes.
10085         * config/microblaze/microblaze.c (microblaze_address_type): Add
10086         ADDRESS_TLS and tls_reloc address types.
10087         (microblaze_address_info): Add tls_reloc.
10088         (TARGET_HAVE_TLS): Define.
10089         (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
10090          microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
10091          symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
10092         load_tls_operand,  microblaze_call_tls_get_addr,
10093         microblaze_legitimize_tls_address): New functions.
10094         (microblaze_classify_unspec): Handle UNSPEC_TLS.
10095         (get_base_reg): Use microblaze_tls_symbol_p.
10096         (microblaze_classify_address): Handle TLS.
10097         (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
10098         label_mentioned_p and microblaze_tls_referenced_p.
10099         (microblaze_legitimize_address): Handle TLS.
10100         (microblaze_address_insns): Handle ADDRESS_TLS.
10101         (pic_address_needs_scratch): Handle TLS.
10102         (print_operand_address): Handle TLS.
10103         (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
10104         (microblaze_expand_move): Handle TLS.
10105         (microblaze_legitimate_constant_p): Check
10106         microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
10107         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
10108         * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
10109         (PIC_OFFSET_TABLE_REGNUM): Set.
10110         * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
10111         * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
10112         (addsi3, movsi_internal2, movdf_internal): Update constraints
10113         * config/microblaze/predicates.md (arith_plus_operand): Define
10114         (move_operand): Redefine as move_src_operand,
10115         check microblaze_tls_referenced_p.
10116
10117 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
10118
10119         * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
10120         (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
10121
10122 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
10123
10124         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
10125         CC mode for AND.
10126
10127 2013-03-14  Jakub Jelinek  <jakub@redhat.com>
10128
10129         PR tree-optimization/53265
10130         * common.opt (Waggressive-loop-optimizations): New option.
10131         * tree-ssa-loop-niter.c: Include tree-pass.h.
10132         (do_warn_aggressive_loop_optimizations): New function.
10133         (record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
10134         if number_of_latch_executions returned constant.
10135         (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
10136         early.  If number_of_latch_executions returned constant, set
10137         nb_iterations_upper_bound back to it.
10138         * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
10139         field.
10140         * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
10141         * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
10142
10143         * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
10144         (MULTILIB_OSDIRNAMES): Set.
10145         * genmultilib: If defaultosdirname doesn't start with :: , set
10146         defaultosdirname2 instead, clear it and emit two . multilib_raw
10147         entries instead of just one.
10148
10149 2013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>
10150
10151         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
10152         (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
10153         * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
10154         (SUBTARGET_OVERRIDE_OPTIONS): New.
10155
10156 2013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>
10157
10158         PR target/49880
10159         * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
10160         (musermode): Convert to Var(TARGET_USERMODE).
10161         * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
10162         MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
10163         * config/sh/sh.c (sh_option_override): Use
10164         TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
10165         * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
10166         condition.
10167         (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
10168         TARGET_SH4.
10169         (udivsi3_i4_single, divsi3_i4_single): Use
10170         TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
10171
10172 2013-03-13  Dave Korn  <dave.korn.cygwin@....>
10173
10174         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
10175         default setting.
10176
10177 2013-03-13  Richard Biener  <rguenther@suse.de>
10178
10179         PR tree-optimization/56608
10180         * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
10181         calls when vectorizing basic-blocks.
10182
10183 2013-03-13  Jakub Jelinek  <jakub@redhat.com>
10184
10185         PR plugins/45078
10186         * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
10187         tm_file.
10188
10189 2013-03-12  Jakub Jelinek  <jakub@redhat.com>
10190
10191         * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
10192
10193 2013-03-11  Jan Hubicka  <jh@suse.cz>
10194
10195         PR lto/56557
10196         * lto-streamer-out.c (output_symbol_p): Skip references from
10197         constructors of external variables.
10198
10199 2013-03-11  Jan Hubicka  <jh@suse.cz>
10200
10201         PR middle-end/56571
10202         * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
10203         from pseudos.
10204         * emit-rtl.c (verify_rtx_sharing): Likewise.
10205         (copy_insn_1): Likewise.
10206         * rtl.c (copy_rtx): Likewise.
10207
10208 2013-03-11  Georg-Johann Lay  <avr@gjlay.de>
10209
10210         PR target/56591
10211         * config/avr/avr.c (avr_print_operand): Add space after '%c' in
10212         output_operand_lossage message.
10213
10214 2013-03-11  Richard Earnshaw  <rearnsha@arm.com>
10215
10216         PR target/56470
10217         * arm.c (shift_op): Validate RTL pattern on the fly.
10218         (arm_print_operand, case 'S'): Don't use shift_operator to validate
10219         the RTL.
10220
10221 2013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10222
10223         PR target/56347
10224         * config/pa/pa.md (call_value): Check for calls to powf and direct to
10225         new call patterns that clobber %fr12.
10226         (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
10227         split and postreload patterns.
10228         * config/pa/pa.c (pa_conditional_register_usage): Revert marking
10229         registers %fr12 and %fr12R as call used.
10230
10231 2013-03-09  Steven Bosscher  <steven@gcc.gnu.org>
10232
10233         * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
10234         (canon_address, record_store, replace_read, check_mem_read_rtx,
10235         scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
10236         dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
10237         rest_of_handle_dse): Likewise.
10238
10239 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
10240
10241         PR middle-end/56524
10242         * tree.h (tree_optimization_option): Rename target_optabs to optabs.
10243         Add base_optabs.
10244         (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
10245         (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
10246         (save_optabs_if_changed): Replace with...
10247         (init_tree_optimization_optabs): ...this.
10248         * optabs.c (save_optabs_if_changed): Rename to...
10249         (init_tree_optimization_optabs): ...this.  Take the optimization node
10250         as argument.  Do nothing if the base optabs are already correct.
10251         Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
10252         to recompute optabs.
10253         * function.h (function): Remove optabs field.
10254         * function.c (invoke_set_current_function_hook): Call
10255         init_tree_optimization_optabs.  Use the result to initialize
10256         this_fn_optabs.
10257
10258 2013-02-27  Aldy Hernandez  <aldyh@redhat.com>
10259
10260         * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
10261         if GTMA_HAS_NO_INSTRUMENTATION.
10262         (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
10263         (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
10264         * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
10265         * gimple-pretty-print.c (dump_gimple_transaction): Handle
10266         GTMA_HAS_NO_INSTRUMENTATION.
10267
10268 2013-03-08  Jakub Jelinek  <jakub@redhat.com>
10269
10270         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
10271         libasan_preinit.o.
10272
10273 2013-03-08  Marek Polacek  <polacek@redhat.com>
10274             Jakub Jelinek  <jakub@redhat.com>
10275
10276         PR tree-optimization/56478
10277         * predict.c (is_comparison_with_loop_invariant_p): Change the
10278         type of loop_step to tree.
10279         (predict_loops): Adjust.
10280         (predict_iv_comparison): Perform the computations on double_ints.
10281
10282 2013-03-08  Richard Biener  <rguenther@suse.de>
10283
10284         PR tree-optimization/56570
10285         * tree-cfg.c (verify_expr_location_1): Verify locations for
10286         DECL_DEBUG_EXPR.
10287         * tree-sra.c (create_access_replacement): Strip locations
10288         from DECL_DEBUG_EXPRs.
10289
10290 2013-03-08  Richard Biener  <rguenther@suse.de>
10291
10292         * tree-inline.c (expand_call_inline): Do not associate
10293         a BLOCK with the location in BLOCK_SOURCE_LOCATION.
10294         * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
10295
10296 2013-03-08  Richard Biener  <rguenther@suse.de>
10297
10298         * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
10299         or block changes with -Og.  Fix for location / block encoding
10300         changes and PHI arguments with locations.
10301
10302 2013-03-07  Steven Bosscher  <steven@gcc.gnu.org>
10303
10304         * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
10305         for all counters.
10306         (struct output_info): Likewise.
10307         (register_overhead): Remove bad gcc_assert.
10308         (bitmap_find_bit): If there is only a single bitmap element, do not
10309         count a miss as a search.
10310         (print_statistics): Update for counter type changes.
10311         (dump_bitmap_statistics): Likewise.  Print headers such that they
10312         are properly lined up with the printed counters.
10313
10314 2013-03-07  Jakub Jelinek  <jakub@redhat.com>
10315
10316         PR tree-optimization/56559
10317         * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
10318         check that it has only a single use.
10319
10320 2013-03-07  Richard Biener  <rguenther@suse.de>
10321
10322         * doc/invoke.texi (fwhole-program): Discourage use in combination
10323         with -flto.
10324
10325 2013-03-06  Jakub Jelinek  <jakub@redhat.com>
10326
10327         * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
10328
10329         PR tree-optimization/56539
10330         * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
10331         instead of GSI_CONTINUE_LINKING as last argument to
10332         force_gimple_operand_gsi.  Adjust function comment.
10333
10334         * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
10335         aarch64-cores.def.
10336
10337         PR middle-end/56548
10338         * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
10339         promoted mode, convert the result back to the original mode.
10340
10341 2013-03-06  Richard Biener  <rguenther@suse.de>
10342
10343         PR middle-end/56294
10344         * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
10345         (insert_updated_phi_nodes_compare_uids): New function.
10346         (update_ssa): Sort symbols_to_rename after UID before
10347         traversing it to insert PHI nodes.
10348
10349 2013-03-06  Richard Biener  <rguenther@suse.de>
10350
10351         PR middle-end/50494
10352         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
10353         Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
10354
10355         Revert
10356         2013-02-13  Richard Biener  <rguenther@suse.de>
10357
10358         PR lto/50494
10359         * varasm.c (output_constant_def_1): Get the decl representing
10360         the constant as argument.
10361         (output_constant_def): Wrap output_constant_def_1.
10362         (make_decl_rtl): Use output_constant_def_1 with the decl
10363         representing the constant.
10364         (build_constant_desc): Optionally re-use a decl already
10365         representing the constant.
10366         (tree_output_constant_def): Adjust.
10367
10368 2013-03-06  Joey Ye  <joey.ye@arm.com>
10369
10370         PR lto/50293
10371         * gcc.c (convert_white_space): New function.
10372         (main): Handles white space in function name.
10373
10374 2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
10375
10376         PR target/56529
10377         * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
10378         instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
10379         to SH_DIV_CALL_TABLE for TARGET_SH2.
10380         * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
10381         list.
10382         * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
10383         call-table options.
10384
10385 2013-03-05  Sterling Augustine  <saugustine@google.com>
10386             Cary Coutant  <ccoutant@google.com>
10387
10388         PR debug/55364
10389         * dwarf2out.c (resolve_addr): Don't call
10390         remove_loc_list_addr_table_entries a second time for the same
10391         expression.
10392
10393 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
10394
10395         PR debug/56510
10396         * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
10397         (avoid_complex_debug_insns): New function.
10398         (expand_debug_locations): Call it.
10399
10400         PR rtl-optimization/56484
10401         * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
10402         lifetimes of hard registers on small register class machines.
10403
10404 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
10405
10406         * config/microblaze/microblaze-protos.h: Rename
10407         microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
10408         * config/microblaze/microblaze.c (microblaze_attribute_table): Add
10409         fast_interrupt.
10410         (microblaze_fast_interrupt_function_p): New function.
10411         (microblaze_is_interrupt_handler): Rename to
10412         microblaze_is_interrupt_variant and add fast_interrupt check.
10413         (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
10414         (save_restore_insns): Likewise.
10415         (compute_frame_size): Likewise.
10416         (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
10417         (microblaze_globalize_label): Likewise.
10418         * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
10419         * config/microblaze/microblaze.md: Use wrapper
10420         microblaze_is_interrupt_variant.
10421
10422 2013-03-05  Kai Tietz  <ktietz@redhat.com>
10423
10424         * sdbout.c (sdbout_one_type): Switch to current function's section
10425         supporting cold/hot.
10426
10427 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
10428
10429         * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
10430         -mxl-reorder.
10431
10432 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
10433
10434         PR middle-end/56461
10435         * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
10436         if VALGRIND_GET_VBITS is defined, temporarily make object
10437         memory all defined, and restore previous valgrind addressability
10438         and definability afterwards.  Free this_object at the end.
10439
10440         PR middle-end/56461
10441         * lra.c (lra): Call lra_clear_live_ranges if live_p,
10442         right before calling lra_create_live_ranges, also call it
10443         when clearing live_p.  Only call lra_clear_live_ranges
10444         at the end if live_p.
10445
10446         PR middle-end/56461
10447         * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
10448
10449 2013-03-05  Richard Biener  <rguenther@suse.de>
10450
10451         PR tree-optimization/56521
10452         * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
10453         value-id.
10454
10455 2013-03-05  Steven Bosscher  <steven@gcc.gnu.org>
10456
10457         PR c++/55135
10458         * except.h (remove_unreachable_eh_regions): New prototype.
10459         * except.c (remove_eh_handler_splicer): New function, split out
10460         of remove_eh_handler.
10461         (remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
10462         warning about running it on many EH regions one at a time.
10463         (remove_unreachable_eh_regions_worker): New function, walk the
10464         EH tree in depth-first order and remove non-marked regions.
10465         (remove_unreachable_eh_regions): New function.
10466         * tree-eh.c (mark_reachable_handlers): New function, split out
10467         from remove_unreachable_handlers.
10468         (remove_unreachable_handlers): Use mark_reachable_handlers and
10469         remove_unreachable_eh_regions.
10470         (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
10471         and remove_unreachable_eh_regions.
10472
10473 2013-03-05  Richard Biener  <rguenther@suse.de>
10474
10475         PR middle-end/56525
10476         * loop-init.c (fix_loop_structure): Remove loops in two stages,
10477         not freeing them until the end.
10478
10479 2013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10480
10481         * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
10482
10483 2013-03-05  Richard Biener  <rguenther@suse.de>
10484
10485         PR tree-optimization/56270
10486         * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
10487         of loads after scheduling an SLP instance.
10488
10489 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
10490
10491         * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
10492         tic6x.exp.
10493         (check_gcc_parallelize): Run guality.exp as a separate job from
10494         vect.exp with unsorted.exp and $(dg_target_exps) separately from
10495         struct-layout-1.exp with stackalign.exp.
10496
10497         * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
10498
10499         PR middle-end/56461
10500         * tree-vect-slp.c (vect_supported_load_permutation_p): Free
10501         load_index sbitmap even if some bit in it isn't set.
10502
10503         PR middle-end/56461
10504         * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
10505         (discover_iteration_bound_by_body_walk): Change queues to
10506         vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
10507         spelling in comment.  Call safe_push on queues[bound_index] directly.
10508         Release queues[queue_index] in every iteration unconditionally.
10509         Release bounds vector.
10510
10511         PR middle-end/56461
10512         * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
10513         free_stmt_vec_info on any left-over stmt_vec_info in the vector.
10514         * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
10515         inner_phis vector.
10516
10517 2013-03-05  Richard Biener  <rguenther@suse.de>
10518
10519         PR lto/56515
10520         * tree-inline.c (remap_blocks_to_null): New function.
10521         (expand_call_inline): When expanding a call stmt without
10522         an associated block inline remap all callee blocks to NULL.
10523
10524 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
10525
10526         PR rtl-optimization/56494
10527         * simplify-rtx.c (simplify_truncation): If C is narrower than A,
10528         optimize (truncate:A (subreg:B (truncate:C X) 0)) into
10529         (subreg:A (truncate:C X) 0) instead of (truncate:A X).
10530
10531         PR middle-end/56461
10532         * sel-sched-ir.c (free_sched_pools): Release
10533         succs_info_pool.stack[succs_info_pool.max_top] vectors too
10534         if succs_info_pool.max_top isn't -1.
10535
10536         PR bootstrap/56509
10537         * opts.c (opts_obstack, opts_concat): Moved to...
10538         * opts-common.c (opts_obstack, opts_concat): ... here.
10539
10540 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
10541
10542         PR middle-end/56461
10543         * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
10544
10545 2013-03-04  Martin Jambor  <mjambor@suse.cz>
10546
10547         * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
10548         all appropriate places.
10549
10550 2013-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10551
10552         PR tree-optimization/56424
10553         * ipa-split.c (split_function): Do not set the RSO flag if result is
10554         not by reference and its type is a register type.
10555
10556 2013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>
10557
10558         * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
10559         (microblaze_legitimate_pic_operand): Likewise
10560         * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
10561         new function microblaze_legitimate_pic_operand
10562         * config/microblaze/microblaze-protos.h
10563         (microblaze_legitimate_pic_operand): Declare.
10564
10565 2013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10566
10567         * config/microblaze/predicates.md (call_insn_simple_operand):
10568         New predicate for supported rtx code types.
10569         * config/microblaze/microblaze.md (call_internal1): Use
10570         call_insn_simple_operand predicate.
10571
10572 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
10573
10574         PR middle-end/56461
10575         * tree-loop-distribution.c (ldist_gen): Call partition_free after each
10576         partitions.ordered_remove.
10577
10578         PR middle-end/56461
10579         * tree-vect-stmts.c (vectorizable_conversion): Don't call
10580         vec_oprnds0.create (1) for modifier == NONE.
10581
10582         PR middle-end/56461
10583         * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
10584         on vec_oprnds0 or vec_oprnds1 before loop, only call it on
10585         vec_oprnds1 right before pushing anything to it for
10586         scalar_shift_arg.
10587
10588         PR middle-end/56461
10589         * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
10590         set nbbs to 0 instead of having separate code path.
10591         (vect_analyze_loop_form): Call destroy_loop_vec_info with true
10592         instead of false as last argument if returning NULL.
10593
10594 2013-03-03  Sandra Loosemore  <sandra@codesourcery.com>
10595
10596         * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
10597         the attribute is now called "target" instead of "option".
10598         (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
10599         * doc/tm.texi.in (Target Attributes):  Likewise document the correct
10600         attribute/pragma name for TARGET_OPTION_VALID_P and
10601         TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
10602         * doc/tm.texi: Regenerated.
10603
10604 2013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>
10605
10606         * config/microblaze/microblaze.c:
10607         Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
10608         * config/microblaze/microblaze.h: Add -mxl-reorder to
10609         DRIVER_SELF_SPECS.
10610         * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
10611         instructions emitted if TARGET_REORDER.
10612         * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
10613         or 0 for -m/-mno case, but initialises as 2 to detect default use case
10614         separately.
10615
10616 2013-03-01  Xinliang David Li  <davidxl@google.com>
10617
10618         * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
10619         walk length.
10620
10621 2013-03-01  Jakub Jelinek  <jakub@redhat.com>
10622
10623         PR middle-end/56461
10624         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
10625         vector even when returning true.  Fix up function comment formatting.
10626
10627         PR middle-end/56461
10628         * ira-build.c (ira_loop_nodes_count): New variable.
10629         (create_loop_tree_nodes): Initialize it.
10630         (finish_loop_tree_nodes): Use it instead of looking at current_loops.
10631
10632         PR middle-end/56461
10633         * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
10634         method on dr_chain and result_chain.
10635         * tree-vect-stmts.c (vectorizable_store): Only call
10636         result_chain.create if j == 0.
10637
10638         PR middle-end/56461
10639         * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
10640         vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
10641         before overwriting it.
10642
10643 2013-03-01  Tobias Burnus  <burnus@net-b.de>
10644
10645         * doc/extended.texi (C Extensions): Change order in @menu
10646         to match @node.
10647         (Other MIPS Built-in Functions): Move last MIPS entry before
10648         "picoChip Built-in Functions".
10649         (SH Built-in Functions): Move after RX Built-in Functions.
10650         * doc/gcc.texi (Introduction): Change order in @menu
10651         to match @node.
10652         * doc/md.texi (Constraints): Ditto.
10653         * gty.texi (Type Information): Ditto.
10654         (User-provided marking routines for template types): Make
10655         subsection.
10656         * doc/invoke.texi (AArch64 Options): Move before
10657         "Adapteva Epiphany Options".
10658
10659 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
10660             Jakub Jelinek  <jakub@redhat.com>
10661
10662         PR sanitizer/56454
10663         * asan.c (gate_asan): Lookup no_sanitize_address instead of
10664         no_address_safety_analysis attribute.
10665         * doc/extend.texi (no_address_safety_attribute): Rename to
10666         no_sanitize_address attribute, mention no_address_safety_analysis
10667         attribute as deprecated alias.
10668
10669 2013-02-28  Jakub Jelinek  <jakub@redhat.com>
10670
10671         PR middle-end/56461
10672         * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
10673         type to vec<vec<tree> > *.
10674         * tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
10675         to be vec<tree> instead of vec<tree> *, set vec_defs
10676         to vNULL and call vec_defs.create (number_of_vects), adjust other
10677         uses of vec_defs.
10678         * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
10679         vectorizable_condition): Adjust vect_get_slp_defs callers.
10680
10681 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10682
10683         * config/aarch64/aarch64.c
10684         (aarch64_float_const_representable): Remove unused variable.
10685
10686 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10687
10688         * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
10689
10690 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10691
10692         * config/aarch64/aarch64-builtins.c
10693         (aarch64_init_simd_builtins): Make static.
10694
10695 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10696
10697         * config/aarch64/aarch64.c
10698         (aarch64_simd_make_constant): Make static.
10699
10700 2013-02-28  Martin Jambor  <mjambor@suse.cz>
10701
10702         * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
10703         with no initialization to the RHS of debug statements.
10704
10705 2013-02-28  Martin Jambor  <mjambor@suse.cz>
10706
10707         PR tree-optimization/56294
10708         * tree-sra.c (analyze_access_subtree): Create replacement declarations.
10709         Adjust dumping.
10710         (get_access_replacement): Do not call create_access_replacement.
10711         Assert a replacement exists.
10712         (get_repl_default_def_ssa_name): Create the replacement declaration
10713         itself.
10714
10715 2013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10716
10717         * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
10718         final_end_function.
10719
10720 2013-02-28  Marek Polacek  <polacek@redhat.com>
10721
10722         PR rtl-optimization/56466
10723         * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
10724         if we're changing a loop.
10725         (peel_loops_completely): Likewise.
10726
10727 2013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
10728
10729         PR c++/55813
10730         * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
10731
10732 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
10733
10734         PR target/56445
10735         * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
10736         macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
10737         INTX_FTYPE_FX, FX_FTYPE_INTX.
10738         * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
10739
10740 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
10741
10742         * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
10743         (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
10744         (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
10745         (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
10746         (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
10747         (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
10748         (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
10749         (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
10750         (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
10751         (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
10752         (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
10753         (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
10754         (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
10755         (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
10756         (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
10757         (avrxmega6): Increase max flash segments from 5 to 6.
10758         * config/avr/t-multilib: Regenerate.
10759         * config/avr/avr-tables.opt: Regenerate.
10760         * doc/avr-mmcu.texi: Regenerate.
10761
10762 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
10763
10764         * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
10765         (avr_device_to_arch): Rename to avr_device_to_ld.
10766         (avr_device_to_as): New prototype.
10767         (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
10768         (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
10769         * config/avr/driver-avr.c (avr_device_to_as): New.
10770         (avr_device_to_arch): Rename to avr_device_to_ld.
10771
10772 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
10773
10774         PR middle-end/56461
10775         * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
10776         method on dr_chain and result_chain.
10777
10778         PR middle-end/56461
10779         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
10780         pointer_set_destroy on not_executed_last_iteration.
10781
10782         PR middle-end/56461
10783         * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
10784
10785         PR middle-end/56461
10786         * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
10787         FOR_EACH_DEFINED_FUNCTION when freeing state.
10788
10789         PR middle-end/56461
10790         * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
10791         pool_free.
10792         (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
10793         overwriting it.
10794
10795         PR middle-end/56461
10796         * ipa-cp.c (decide_whether_version_node): Call vec_free on
10797         known_aggs[i].items and release known_aggs vector.
10798
10799         PR middle-end/56461
10800         * ipa-reference.c (propagate): Free node_info even for alias nodes.
10801
10802 2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10803
10804         * config/microblaze/microblaze.c (microblaze_emit_compare):
10805         Use xor for EQ/NE comparisions.
10806         * config/microblaze/microblaze.md (cstoresf4): Add constraints
10807         (cbranchsf4): Adjust operator to comparison_operator.
10808
10809 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
10810
10811         PR middle-end/56461
10812         * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
10813         vector.
10814         * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
10815         vec_safe_push, always update *slot.
10816         (redirect_edge_var_map_clear): Use vec_free.
10817         (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
10818         (free_var_map_entry): Use vec_free.
10819         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
10820         FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
10821
10822 2013-02-27  Andrey Belevantsev  <abel@ispras.ru>
10823
10824         PR middle-end/45472
10825         * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
10826         when the may_trap_p bit of the exprs being merged differs.
10827         Reorder tests for speculativeness in the logical and operator.
10828
10829 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
10830
10831         * incpath.c (add_standard_paths): Use reconcat instead of concat
10832         where appropriate and avoid leaking memory.
10833
10834         * opts.h: Include obstack.h.
10835         (opts_concat): New prototype.
10836         (opts_obstack): New declaration.
10837         * opts.c (opts_concat): New function.
10838         (opts_obstack): New variable.
10839         (init_options_struct): Call gcc_init_obstack on opts_obstack.
10840         (finish_options): Use opts_concat instead of concat
10841         and XOBNEWVEC instead of XNEWVEC.
10842         * opts-common.c (generate_canonical_option, decode_cmdline_option,
10843         generate_option): Likewise.
10844         * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
10845         * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
10846
10847         PR target/56455
10848         * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
10849         and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
10850
10851 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
10852
10853         PR middle-end/56461
10854         * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
10855
10856 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
10857
10858         * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
10859         (arm_block_move_unaligned_straight): Likewise.
10860         (arm_adjust_block_mem): Likewise.
10861
10862 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
10863
10864         PR target/48901
10865         * config/lm32/lm32.c (gen_int_relational): Remove unused variables
10866         temp, cond and label.
10867         * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
10868
10869         PR target/52500
10870         * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
10871         * config/c6x/c6x.h (dbx_register_map): Update declaration.
10872
10873         PR target/52501
10874         * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
10875         of prologue/epilogue functions.
10876
10877         PR target/52550
10878         * config/tilegx/tilegx.c (tilegx_expand_prologue):
10879         Remove unused variable cfa_offset.
10880         * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
10881
10882         PR target/54639
10883         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
10884         type promotion to unsigned.
10885
10886         PR target/54640
10887         * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
10888         for HOST_WIDE_INT of 32 bit / same size as int.
10889         (arm_block_move_unaligned_straight): Likewise.
10890         (arm_adjust_block_mem): Likewise.
10891
10892         PR target/54662
10893         * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
10894         ALL_CFLAGS.
10895
10896 2013-02-26  Marek Polacek  <polacek@redhat.com>
10897
10898         PR tree-optimization/56426
10899         * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
10900
10901 2013-02-26  Richard Biener  <rguenther@suse.de>
10902
10903         PR target/56444
10904         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
10905         unused variable loops.
10906
10907 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
10908
10909         PR tree-optimization/56448
10910         * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
10911         TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
10912         Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
10913         later operands of the references, or even first operand for
10914         INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
10915
10916         PR tree-optimization/56443
10917         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
10918         overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
10919         to type_for_mode langhook.
10920
10921 2013-02-25  Matt Turner  <mattst88@gmail.com>
10922
10923         * doc/invoke.texi: Document r4700.
10924
10925 2013-02-25  Richard Biener  <rguenther@suse.de>
10926
10927         PR tree-optimization/56175
10928         * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
10929         split out from ...
10930         (simplify_bitwise_binary): ... here.  Also guard the conversion
10931         of (type) X op CST to (type) (X op ((type-x) CST)) with it.
10932
10933 2013-02-25  Catherine Moore  <clm@codesourcery.com>
10934
10935         Revert:
10936         2013-02-24  Catherine Moore  <clm@codesourcery.com>
10937             Maciej W. Rozycki  <macro@codesourcery.com>
10938             Tom de Vries  <tom@codesourcery.com>
10939             Nathan Sidwell  <nathan@codesourcery.com>
10940             Iain Sandoe  <iain@codesourcery.com>
10941             Nathan Froyd  <froydnj@codesourcery.com>
10942             Chao-ying Fu  <fu@mips.com>
10943
10944         * doc/extend.texi: (micromips, nomicromips, nocompression):
10945         Document new function attributes.
10946         * doc/invoke.texi (minterlink-compressed, mmicromips,
10947         m14k, m14ke, m14kec): Document new options.
10948         (minterlink-mips16): Update documentation.
10949         * doc/md.texi (ZC, ZD): Document new constraints.
10950         * configure.ac (gcc_cv_as_micromips): Check if linker
10951         supports the .set micromips directive.
10952         * configure: Regenerate.
10953         * config.in: Regenerate.
10954         * config/mips/mips-tables.opt: Regenerate.
10955         * config/mips/micromips.md: New file.
10956         * constraints.md (ZC, AD): New constraints.
10957         * config/mips/predicates.md (movep_src_register): New predicate.
10958         (movep_src_operand): New predicate.
10959         (non_volatile_mem_operand): New predicate.
10960         * config/mips/mips.md (multimem): New type.
10961         (length): Differentiate between 17-bit and 18-bit branch offsets.
10962         (MOVEP1, MOVEP2): New mode iterator.
10963         (mov_<load>l): Use ZC constraint.
10964         (mov_<load>r): Likewise.
10965         (mov_<store>l): Likewise.
10966         (mov_<store>r): Likewise.
10967         (*branch_equality<mode>_inverted): Add microMIPS support.
10968         (*branch_equality<mode>): Likewise.
10969         (*jump_absolute): Likewise.
10970         (indirect_jump_<mode>): Likewise.
10971         (tablejump_<mode>): Likewise.
10972         (<optab>_internal): Likewise.
10973         (sibcall_internal): Likewise.
10974         (sibcall_value_internal): Likewise.
10975         (prefetch): Use constraint ZD.
10976         * config/mips/mips.opt (minterlink-compressed): New option.
10977         (minterlink-mips16): Now an alias for minterlink-compressed.
10978         (mmicromips): New option.
10979         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
10980         (compare_and_swap_12): Likewise.
10981         (sync_add<mode>): Likewise.
10982         (sync_<optab>_12): Likewise.
10983         (sync_old_<optab>_12): Likewise.
10984         (sync_new_<optab>_12): Likewise.
10985         (sync_nand_12): Likewise.
10986         (sync_old_nand_12): Likewise.
10987         (sync_new_nand_12): Likewise.
10988         (sync_sub<mode>): Likewise.
10989         (sync_old_add<mode>): Likewise.
10990         (sync_old_sub<mode>): Likewise.
10991         (sync_new_add<mode>): Likewise.
10992         (sync_new_sub<mode>): Likewise.
10993         (sync_<optab><mode>): Likewise.
10994         (sync_old_<optab><mode>): Likewise.
10995         (sync_new_<optab><mode>): Likewise.
10996         (sync_nand<mode>): Likewise.
10997         (sync_old_nand<mode>): Likewise.
10998         (sync_new_nand<mode>): Likewise.
10999         (sync_lock_test_and_set<mode>): Likewise.
11000         (test_and_set_12): Likewise.
11001         (atomic_compare_and_swap<mode>): Likewise.
11002         (atomic_exchange<mode>_llsc): Likewise.
11003         (atomic_fetch_add<mode>_llsc): Likewise.
11004         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
11005         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
11006         (umips_save_restore_pattern_p): Likewise.
11007         (umips_load_store_pair_p): Likewise.
11008         (umips_output_load_store_pair): Likewise.
11009         (umips_movep_target_p): Likewise.
11010         (umips_12bit_offset_address_p): Likewise.
11011         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
11012         (mips_base_mips16): Rename this...
11013         (mips_base_compression_flags): ...to this. Update all uses.
11014         (mips_attribute_table): Add micromips, nomicromips and nocompression.
11015         (mips_mips16_decl_p): Delete.
11016         (mips_nomips16_decl_p): Delete.
11017         (mips_get_compress_on_flags): New function.
11018         (mips_get_compress_off_flags): New function.
11019         (mips_get_compress_mode): New function.
11020         (mips_get_compress_on_name): New function.
11021         (mips_get_compress_off_name): New function.
11022         (mips_insert_attributes): Support multiple compression types.
11023         (mips_merge_decl_attributes): Likewise.
11024         (umips_12bit_offset_address_p): New function.
11025         (mips_start_function_definition): Emit .set micromips directive.
11026         (mips_call_may_need_jalx_p): New function.
11027         (mips_function_ok_for_sibcall): Add microMIPS support.
11028         (mips_print_operand_punctuation): Support short delay slots and
11029         compact jumps.
11030         (umips_swm_mask, umips_swm_encoding): New.
11031         (umips_build_save_restore): New function.
11032         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
11033         (was_mips16_p): Remove.
11034         (old_compression_mode): New.
11035         (mips_set_compression_mode): New function.
11036         (mips_set_current_function): Add microMIPS support.
11037         (mips_option_override): Likewise.
11038         (umips_save_restore_pattern_p): New function.
11039         (umips_output_save_restore): New function.
11040         (umips_load_store_pair_p_1): New function.
11041         (umips_load_store_pair_p): New function.
11042         (umips_output_load_store_pair_1): New function.
11043         (umips_output_load_store_pair): New function.
11044         (umips_movep_target_p) New function.
11045         (mips_prepare_pch_save): Add microMIPS support.
11046         * config/mips/mips.h (TARGET_COMPRESSION): New.
11047         (TARGET_CPU_CPP_BUILTINS): Update macro
11048         to use new compression flags and to support microMIPS.
11049         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
11050         (MIPS_ARCH_FLOAT_SPEC): Likewise.
11051         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
11052         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
11053         (ASM_SPEC): Support mmicromips and mno-micromips.
11054         (M16STORE_REG_P): New macro.
11055         (MIPS_CALL): Support TARGET_MICROMIPS.
11056         (MICROMIPS_J): New macro.
11057         (mips_base_mips16): Rename this...
11058         (mips_base_compression_flags): ...to this.
11059         (UMIPS_12BIT_OFFSET_P): New macro.
11060         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
11061         (MULTILIB_DIRNAMES): Likewise.
11062
11063 2013-02-25  Tom de Vries  <tom@codesourcery.com>
11064
11065         PR rtl-optimization/56131
11066         * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
11067         * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
11068         NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
11069
11070 2013-02-25  Tobias Burnus  <burnus@net-b.de>
11071
11072         * doc/invoke.texi (-fsanitize=): Move from optimization
11073         to debugging options.
11074
11075 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
11076
11077         * sched-deps.c (sched_analyze_insn): Fix typo in comment.
11078
11079 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
11080             Alexander Monakov  <amonakov@ispras.ru>
11081
11082         PR middle-end/56077
11083         * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
11084         flush pending lists also on non-jumps.  Adjust comment.
11085
11086 2013-02-24  Catherine Moore  <clm@codesourcery.com>
11087             Maciej W. Rozycki  <macro@codesourcery.com>
11088             Tom de Vries  <tom@codesourcery.com>
11089             Nathan Sidwell  <nathan@codesourcery.com>
11090             Iain Sandoe  <iain@codesourcery.com>
11091             Nathan Froyd  <froydnj@codesourcery.com>
11092             Chao-ying Fu  <fu@mips.com>
11093
11094         * doc/extend.texi: (micromips, nomicromips, nocompression):
11095         Document new function attributes.
11096         * doc/invoke.texi (minterlink-compressed, mmicromips,
11097         m14k, m14ke, m14kec): Document new options.
11098         (minterlink-mips16): Update documentation.
11099         * doc/md.texi (ZC, ZD): Document new constraints.
11100         * configure.ac (gcc_cv_as_micromips): Check if linker
11101         supports the .set micromips directive.
11102         * configure: Regenerate.
11103         * config.in: Regenerate.
11104         * config/mips/mips-tables.opt: Regenerate.
11105         * config/mips/micromips.md: New file.
11106         * constraints.md (ZC, AD): New constraints.
11107         * config/mips/predicates.md (movep_src_register): New predicate.
11108         (movep_src_operand): New predicate.
11109         (non_volatile_mem_operand): New predicate.
11110         * config/mips/mips.md (multimem): New type.
11111         (length): Differentiate between 17-bit and 18-bit branch offsets.
11112         (MOVEP1, MOVEP2): New mode iterator.
11113         (mov_<load>l): Use ZC constraint.
11114         (mov_<load>r): Likewise.
11115         (mov_<store>l): Likewise.
11116         (mov_<store>r): Likewise.
11117         (*branch_equality<mode>_inverted): Add microMIPS support.
11118         (*branch_equality<mode>): Likewise.
11119         (*jump_absolute): Likewise.
11120         (indirect_jump_<mode>): Likewise.
11121         (tablejump_<mode>): Likewise.
11122         (<optab>_internal): Likewise.
11123         (sibcall_internal): Likewise.
11124         (sibcall_value_internal): Likewise.
11125         (prefetch): Use constraint ZD.
11126         * config/mips/mips.opt (minterlink-compressed): New option.
11127         (minterlink-mips16): Now an alias for minterlink-compressed.
11128         (mmicromips): New option.
11129         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
11130         (compare_and_swap_12): Likewise.
11131         (sync_add<mode>): Likewise.
11132         (sync_<optab>_12): Likewise.
11133         (sync_old_<optab>_12): Likewise.
11134         (sync_new_<optab>_12): Likewise.
11135         (sync_nand_12): Likewise.
11136         (sync_old_nand_12): Likewise.
11137         (sync_new_nand_12): Likewise.
11138         (sync_sub<mode>): Likewise.
11139         (sync_old_add<mode>): Likewise.
11140         (sync_old_sub<mode>): Likewise.
11141         (sync_new_add<mode>): Likewise.
11142         (sync_new_sub<mode>): Likewise.
11143         (sync_<optab><mode>): Likewise.
11144         (sync_old_<optab><mode>): Likewise.
11145         (sync_new_<optab><mode>): Likewise.
11146         (sync_nand<mode>): Likewise.
11147         (sync_old_nand<mode>): Likewise.
11148         (sync_new_nand<mode>): Likewise.
11149         (sync_lock_test_and_set<mode>): Likewise.
11150         (test_and_set_12): Likewise.
11151         (atomic_compare_and_swap<mode>): Likewise.
11152         (atomic_exchange<mode>_llsc): Likewise.
11153         (atomic_fetch_add<mode>_llsc): Likewise.
11154         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
11155         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
11156         (umips_save_restore_pattern_p): Likewise.
11157         (umips_load_store_pair_p): Likewise.
11158         (umips_output_load_store_pair): Likewise.
11159         (umips_movep_target_p): Likewise.
11160         (umips_12bit_offset_address_p): Likewise.
11161         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
11162         (mips_base_mips16): Rename this...
11163         (mips_base_compression_flags): ...to this. Update all uses.
11164         (mips_attribute_table): Add micromips, nomicromips and nocompression.
11165         (mips_mips16_decl_p): Delete.
11166         (mips_nomips16_decl_p): Delete.
11167         (mips_get_compress_on_flags): New function.
11168         (mips_get_compress_off_flags): New function.
11169         (mips_get_compress_mode): New function.
11170         (mips_get_compress_on_name): New function.
11171         (mips_get_compress_off_name): New function.
11172         (mips_insert_attributes): Support multiple compression types.
11173         (mips_merge_decl_attributes): Likewise.
11174         (umips_12bit_offset_address_p): New function.
11175         (mips_start_function_definition): Emit .set micromips directive.
11176         (mips_call_may_need_jalx_p): New function.
11177         (mips_function_ok_for_sibcall): Add microMIPS support.
11178         (mips_print_operand_punctuation): Support short delay slots and
11179         compact jumps.
11180         (umips_swm_mask, umips_swm_encoding): New.
11181         (umips_build_save_restore): New function.
11182         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
11183         (was_mips16_p): Remove.
11184         (old_compression_mode): New.
11185         (mips_set_compression_mode): New function.
11186         (mips_set_current_function): Add microMIPS support.
11187         (mips_option_override): Likewise.
11188         (umips_save_restore_pattern_p): New function.
11189         (umips_output_save_restore): New function.
11190         (umips_load_store_pair_p_1): New function.
11191         (umips_load_store_pair_p): New function.
11192         (umips_output_load_store_pair_1): New function.
11193         (umips_output_load_store_pair): New function.
11194         (umips_movep_target_p) New function.
11195         (mips_prepare_pch_save): Add microMIPS support.
11196         * config/mips/mips.h (TARGET_COMPRESSION): New.
11197         (TARGET_CPU_CPP_BUILTINS): Update macro
11198         to use new compression flags and to support microMIPS.
11199         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
11200         (MIPS_ARCH_FLOAT_SPEC): Likewise.
11201         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
11202         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
11203         (ASM_SPEC): Support mmicromips and mno-micromips.
11204         (M16STORE_REG_P): New macro.
11205         (MIPS_CALL): Support TARGET_MICROMIPS.
11206         (MICROMIPS_J): New macro.
11207         (mips_base_mips16): Rename this...
11208         (mips_base_compression_flags): ...to this.
11209         (UMIPS_12BIT_OFFSET_P): New macro.
11210         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
11211         (MULTILIB_DIRNAMES): Likewise.
11212
11213 2013-02-24  Jakub Jelinek  <jakub@redhat.com>
11214
11215         PR target/52555
11216         * target-globals.c (save_target_globals): For init_reg_sets and
11217         target_reinit remporarily set this_fn_optabs to this_target_optabs.
11218
11219 2013-02-22  James Grennahlgh  <james.greenhalgh@arm.com>
11220
11221         * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
11222         * config/aarch64/t-aarch64
11223         (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
11224
11225 2013-02-22  Vladimir Makarov  <vmakarov@redhat.com>
11226
11227         PR inline-asm/56148
11228         * lra-constraints.c (process_alt_operands): Reload operand
11229         conflicting with earlier clobber only if no more other conflicting
11230         operands.
11231
11232 2013-02-22  Jakub Jelinek  <jakub@redhat.com>
11233
11234         PR sanitizer/56393
11235         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
11236         if not linking a shared library.
11237
11238 2013-02-22  Seth LaForge  <sethml@google.com>
11239
11240         * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
11241
11242 2013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>
11243
11244         * config/arm/arm.md (split for extendsidi): Update condition.
11245         (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
11246         * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
11247         (qhs_zextenddi_cstr): Likewise.
11248
11249 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
11250
11251         PR middle-end/56420
11252         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
11253         avoid signed wrapping.
11254         (expand_mult): Handle properly multiplication by
11255         ((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
11256         ((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
11257         in the compiler if coeff is HOST_WIDE_INT_MIN.
11258         (expand_divmod): Don't make ext_op1 static, change it's type to
11259         uhwi.  Avoid undefined behavior in -INTVAL (op1).
11260
11261         PR rtl-optimization/50339
11262         * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
11263         field.
11264         * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
11265         (compute_costs): Call compute_splitting_shift also for ASHIFTRT
11266         into splitting_ashiftrt field.
11267         (find_decomposable_shift_zext, resolve_shift_zext): Handle also
11268         ASHIFTRT.
11269         (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
11270         choices.
11271
11272 2013-02-20  Aldy Hernandez  <aldyh@redhat.com>
11273
11274         PR middle-end/56108
11275         * trans-mem.c (execute_tm_mark): Do not expand transactions that
11276         are sure to go irrevocable.
11277
11278 2013-02-21  Hans-Peter Nilsson  <hp@axis.com>
11279
11280         * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
11281         scalars are valid operands.
11282
11283 2013-02-21  Martin Jambor  <mjambor@suse.cz>
11284
11285         PR tree-optimization/56310
11286         * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
11287         only matching indices and non-negative final offsets.
11288         (intersect_aggregates_with_edge): Pass src_idx to
11289         agg_replacements_to_vector.  Pass src_idx insstead of index to
11290         intersect_with_agg_replacements.
11291
11292 2013-02-21  Martin Jambor  <mjambor@suse.cz>
11293
11294         * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
11295         instead of hard-wired defaults.
11296
11297 2013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>
11298
11299         * doc/invoke.texi (MIPS Options): Update documentation of the
11300         floating-point multiply-accumulate instruction restrictions.
11301
11302 2013-02-21  Kostya Serebryany  <kcc@google.com>
11303
11304         * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
11305         asan_shadow_offset on x86_64 linux.
11306
11307 2013-02-21  Richard Biener  <rguenther@suse.de>
11308
11309         PR tree-optimization/56415
11310         Revert
11311         2013-02-11  Richard Biener  <rguenther@suse.de>
11312
11313         PR tree-optimization/56273
11314         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
11315         first VRP run.
11316
11317 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
11318
11319         PR bootstrap/56258
11320         * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
11321         instead of @itemx.
11322
11323         PR inline-asm/56405
11324         * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
11325         use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
11326
11327 2013-02-20  Jan Hubicka  <jh@suse.cz>
11328
11329         PR tree-optimization/56265
11330         * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
11331         when target is referenced for first time.
11332
11333 2013-02-20  Richard Biener  <rguenther@suse.de>
11334
11335         * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
11336         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
11337         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
11338         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
11339         not return anything.
11340         (rename_ssa_copies): Do not remove unused locals.
11341         * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
11342         * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
11343         * passes.c (execute_function_todo): Do not schedule unused locals
11344         removal if cleanup_tree_cfg did something.
11345         * tree-ssa-live.c (remove_unused_locals): Dump statistics
11346         about the number of removed locals.
11347
11348 2013-02-20  Richard Biener  <rguenther@suse.de>
11349
11350         PR tree-optimization/56398
11351         * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
11352
11353 2013-02-20  Martin Jambor  <mjambor@suse.cz>
11354
11355         PR tree-optimization/55334
11356         * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
11357         restricted pointers to arrays.
11358
11359 2013-02-20  Richard Biener  <rguenther@suse.de>
11360             Jakub Jelinek  <jakub@redhat.com>
11361
11362         PR tree-optimization/56396
11363         * tree-ssa-ccp.c (n_const_val): New static variable.
11364         (get_value): Return NULL for SSA names we don't have a lattice
11365         entry for.
11366         (ccp_initialize): Initialize n_const_val.
11367         * tree-ssa-copy.c (n_copy_of): New static variable.
11368         (init_copy_prop): Initialize n_copy_of.
11369         (get_value): Return NULL_TREE for SSA names we don't have a
11370         lattice entry for.
11371
11372 2013-02-20  Martin Jambor  <mjambor@suse.cz>
11373
11374         * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
11375
11376 2013-02-20  Richard Biener  <rguenther@suse.de>
11377
11378         * genpreds.c (write_lookup_constraint): Do not compare first
11379         letter of the constraint again.
11380
11381 2013-02-20  Richard Biener  <rguenther@suse.de>
11382
11383         * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
11384         and ceil_log2.
11385         (get_use_iv_cost): Terminate hashtable walk when coming across
11386         an empty entry.
11387
11388 2013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>
11389
11390         * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
11391         reassociation for avx2 targets.
11392
11393 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11394
11395         * config/microblaze/microblaze.c: microblaze_has_clz = 0
11396         Add version check for v8.10.a to enable microblaze_has_clz
11397         * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
11398         version and TARGET_PATTERN_COMPARE check
11399         * config/microblaze/microblaze.md: New clzsi2 instruction
11400
11401 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11402
11403         * config/microblaze/microblaze.md (call_value_intern): Check symbol is
11404         function before branching.
11405
11406 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
11407
11408         * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
11409         DUMP_INSN_RTX_UID.
11410         (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
11411
11412 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
11413
11414         PR middle-end/55889
11415         * sel-sched.c: Include ira.h.
11416         (implicit_clobber_conflict_p): New function.
11417         (moveup_expr): Use it.
11418         * Makefile.in (sel-sched.o): Depend on ira.h.
11419
11420 2013-02-19  Richard Biener  <rguenther@suse.de>
11421
11422         PR tree-optimization/56384
11423         * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
11424         (vn_hash_type): Split out from ...
11425         (vn_hash_constant_with_type): ... here.
11426         * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
11427         (vn_phi_eq): Compare types from vn_phi_s structure.
11428         (vn_phi_lookup): Populate vn_phi_s type.
11429         (vn_phi_insert): Likewise.
11430
11431 2013-02-19  Jakub Jelinek  <jakub@redhat.com>
11432
11433         PR tree-optimization/56350
11434         * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
11435         if haven't found reduction or nested cycle operand, rather than
11436         asserting we must find it.
11437
11438         PR tree-optimization/56381
11439         * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
11440         to fold_build3.
11441
11442 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
11443             Jakub Jelinek  <jakub@redhat.com>
11444
11445         PR target/52555
11446         * genopinit.c (raw_optab_handler): Use this_fn_optabs.
11447         (swap_optab_enable): Same.
11448         (init_all_optabs): Use argument instead of global.
11449         * tree.h (struct tree_optimization_option): New field target_optabs.
11450         * expr.h (init_all_optabs): Add argument to prototype.
11451         (TREE_OPTIMIZATION_OPTABS): New.
11452         (save_optabs_if_changed): Protoize.
11453         * optabs.h: Declare this_fn_optabs.
11454         * optabs.c (save_optabs_if_changed): New.
11455         Declare this_fn_optabs.
11456         (init_optabs): Add argument to init_all_optabs() call.
11457         * function.c (invoke_set_current_function_hook): Handle per
11458         function optabs.
11459         * function.h (struct function): New field optabs.
11460         * config/mips/mips.c (mips_set_mips16_mode): Handle when
11461         optimization_current_node has changed.
11462         * target-globals.h (save_target_globals_default_opts): Protoize.
11463         * target-globals.c (save_target_globals_default_opts): New.
11464
11465 2013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11466
11467         PR target/56347
11468         * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
11469         registers %fr12 and %fr12R as call used.
11470
11471         PR target/56214
11472         * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
11473         and HImode, require all displacements to be an integer multiple of
11474         their mode size.
11475         * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
11476         only allow QImode and HImode when reload is in progress and strict is
11477         true.  Likewise for symbolic addresses.  Use base14_operand to check
11478         displacements in REG+BASE addresses.
11479
11480 2013-02-18  Richard Biener  <rguenther@suse.de>
11481
11482         PR tree-optimization/56366
11483         * tree-vect-loop.c (get_initial_def_for_induction): Properly
11484         handle sign-conversion of outer-loop initial induction value.
11485
11486 2013-02-18  Richard Biener  <rguenther@suse.de>
11487
11488         PR middle-end/56349
11489         * cfghooks.c (merge_blocks): If we merge a latch into another
11490         block adjust references to it.
11491         * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
11492         (verify_loop_structure): Verify that a recorded latch is in fact
11493         a latch.
11494
11495 2013-02-18  Richard Biener  <rguenther@suse.de>
11496
11497         PR tree-optimization/56321
11498         * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
11499         order SSA name release and virtual operand unlinking.
11500
11501 2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11502
11503         * config/microblaze/microblaze.md (save_stack_block): Define.
11504         (restore_stack_block): Likewise.
11505
11506 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11507
11508         * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
11509         * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
11510         * config/microblaze/microblaze.c (microblaze_option_override):
11511         Bail out early for PIC modes when target does not support PIC.
11512
11513 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11514
11515         * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
11516         Replace with a microblaze version.
11517         (microblaze_trampoline_init): Adapt for microblaze.
11518         * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
11519         microblaze.
11520
11521 2013-02-16  Jakub Jelinek  <jakub@redhat.com>
11522             Dodji Seketeli  <dodji@redhat.com>
11523
11524         PR asan/56330
11525         * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
11526         (instrument_mem_region_access): Do not forget to always put
11527         instrumentation of the of 'base' and 'base + len' in a "if (len !=
11528         0) statement, even for cases where either 'base' or 'base + len'
11529         are not instrumented -- because they have been previously
11530         instrumented.  Simplify the logic by putting all the statements
11531         instrument 'base + len' inside a sequence, and then insert that
11532         sequence right before the current insertion point.  Then, to
11533         instrument 'base + len', just get an iterator on that statement.
11534         And do not forget to update the pointer to iterator the function
11535         received as argument.
11536
11537 2013-02-15  Vladimir Makarov  <vmakarov@redhat.com>
11538
11539         PR rtl-optimization/56348
11540         * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
11541
11542 2013-02-15  Steven Bosscher  <steven@gcc.gnu.org>
11543
11544         * graph.c (start_graph_dump): Print dumpfile base as digraph label.
11545         (clean_graph_dump_file): Pass base to start_graph_dump.
11546
11547 2013-02-14  Richard Henderson  <rth@redhat.com>
11548
11549         PR target/55941
11550         * lower-subreg.c (simple_move): Check dest mode instead of src mode.
11551
11552 2013-02-14  Steven Bosscher  <steven@gcc.gnu.org>
11553
11554         * collect2-aix.h: Define F_LOADONLY.
11555
11556 2013-02-14  Richard Biener  <rguenther@suse.de>
11557
11558         PR lto/50494
11559         * varasm.c (output_constant_def_1): Get the decl representing
11560         the constant as argument.
11561         (output_constant_def): Wrap output_constant_def_1.
11562         (make_decl_rtl): Use output_constant_def_1 with the decl
11563         representing the constant.
11564         (build_constant_desc): Optionally re-use a decl already
11565         representing the constant.
11566         (tree_output_constant_def): Adjust.
11567
11568 2013-02-14  Dodji Seketeli  <dodji@redhat.com>
11569
11570         Fix an asan crash
11571         * asan.c (instrument_builtin_call):  Really put the length of the
11572         second source argument into src1_len.
11573
11574 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
11575
11576         * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
11577         argument.  If it is false, don't create edge from then_bb to
11578         fallthru_bb.
11579         (insert_if_then_before_iter): Pass true to it.
11580         (build_check_stmt): Pass false to it.
11581         (transform_statements): Flush hash table only on extended basic
11582         block boundaries, rather than at the beginning of every bb.
11583         Don't flush hash table on nonfreeing_call_p calls.
11584         * tree-flow.h (nonfreeing_call_p): New prototype.
11585         * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
11586
11587 2013-02-13  David S. Miller  <davem@davemloft.net>
11588
11589         * expmed.c (expand_shift_1): Only strip scalar integer subregs.
11590
11591 2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>
11592
11593         PR target/56184
11594         * ira.c (max_regno_before_ira): Move from ...
11595         (ira): ... here.
11596         (fix_reg_equiv_init): Use max_regno_before_ira instead of
11597         vec_safe_length.
11598
11599 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
11600
11601         * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
11602
11603 2013-02-13  Richard Biener  <rguenther@suse.de>
11604
11605         PR lto/56295
11606         * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
11607         globals in MEM_REFs.
11608
11609 2013-02-13  Richard Biener  <rguenther@suse.de>
11610
11611         * loop-init.c (loop_optimizer_init): Clear loop state when
11612         re-initializing preserved loops.
11613         * loop-unswitch.c (unswitch_single_loop): Return whether
11614         we unswitched the loop.  Do not verify loop state here.
11615         (unswitch_loops): When we unswitched a loop discover new loops.
11616
11617 2013-02-13  Kostya Serebryany  <kcc@google.com>
11618
11619         * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
11620         on x86_64 linux.
11621         * sanitizer.def: Rename __asan_init to __asan_init_v1.
11622
11623 2013-02-12  Dodji Seketeli  <dodji@redhat.com>
11624
11625         Avoid instrumenting duplicated memory access in the same basic block
11626         * Makefile.in (asan.o): Add new dependency on hash-table.h
11627         * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
11628         (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
11629         (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
11630         (free_mem_ref_resources, has_mem_ref_been_instrumented)
11631         (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
11632         (get_mem_ref_of_assignment): New functions.
11633         (get_mem_refs_of_builtin_call): Extract from
11634         instrument_builtin_call and tweak a little bit to make it fit with
11635         the new signature.
11636         (instrument_builtin_call): Use the new
11637         get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
11638         of is_gimple_builtin_call.
11639         (instrument_derefs, instrument_mem_region_access): Insert the
11640         instrumented memory reference into the hash table.
11641         (maybe_instrument_assignment): Renamed instrument_assignment into
11642         this, and change it to advance the iterator when instrumentation
11643         actually happened and return true in that case.  This makes it
11644         homogeneous with maybe_instrument_assignment, and thus give a
11645         chance to callers to be more 'regular'.
11646         (transform_statements): Clear the memory reference hash table
11647         whenever we enter a new BB, when we cross a function call, or when
11648         we are done transforming statements.  Use
11649         maybe_instrument_assignment instead of instrumentation.  No more
11650         need to special case maybe_instrument_assignment and advance the
11651         iterator after calling it; it's now handled just like
11652         maybe_instrument_call.  Update comment.
11653
11654 2013-02-13  Richard Biener  <rguenther@suse.de>
11655
11656         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
11657         Fix loop discovery code.
11658
11659 2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
11660
11661         PR inline-asm/56148
11662         * lra-constraints.c (process_alt_operands): Match early clobber
11663         operand with itself.  Check conflicts with earlyclobber only if
11664         the operand is not reloaded.  Prefer to reload conflicting operand
11665         if earlyclobber and matching operands are the same.
11666
11667 2013-02-12  Richard Biener  <rguenther@suse.de>
11668
11669         PR lto/56297
11670         * lto-streamer-out.c (write_symbol): Do not output symbols
11671         for hard register variables.
11672
11673 2013-02-12  Georg-Johann Lay  <avr@gjlay.de>
11674
11675         PR target/54222
11676         * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
11677         (umulsidi3_insn, mulsidi3_insn): New insns.
11678
11679 2013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
11680
11681         * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
11682         (struct tune_params): Add vec_costs field.
11683         * config/arm/arm.c (arm_builtin_vectorization_cost)
11684         (arm_add_stmt_cost): New functions.
11685         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
11686         (TARGET_VECTORIZE_ADD_STMT_COST): Define.
11687         (arm_default_vec_cost): New struct of type cpu_vec_costs.
11688         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11689         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
11690         (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
11691         (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
11692
11693 2013-02-12  Richard Biener  <rguenther@suse.de>
11694
11695         PR lto/56295
11696         * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
11697         decls again if possible.
11698
11699 2013-02-12  Richard Biener  <rguenther@suse.de>
11700
11701         PR middle-end/56288
11702         * tree-ssa.c (verify_ssa_name): Fix check, move
11703         SSA_NAME_IN_FREE_LIST check up.
11704
11705 2013-02-12  Jakub Jelinek  <jakub@redhat.com>
11706             Steven Bosscher   <steven@gcc.gnu.org>
11707
11708         PR rtl-optimization/56151
11709         * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
11710         equal to op0 or op1, and last_insn pattern is CODE operation
11711         with MEM dest and one of the operands matches that MEM.
11712
11713 2013-02-11  Sriraman Tallam  <tmsriramgoogle.com>
11714
11715         * doc/extend.texi: Document Function Multiversioning and "default"
11716         parameter string to target attribute.
11717         * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
11718         target attribute parameter is "default".
11719         (ix86_compare_version_priority): Remove checks for target attribute.
11720         (ix86_mangle_function_version_assembler_name): Change error to sorry.
11721         Remove check for target attribute equal to NULL. Add assert.
11722         (ix86_generate_version_dispatcher_body): Change error to sorry.
11723
11724 2013-02-11  Iain Sandoe  <iain@codesourcery.com>
11725             Jack Howarth  <howarth@bromo.med.uc.edu>
11726             Patrick Marlier  <patrick.marlier@gmail.com>
11727
11728         PR libitm/55693
11729         * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
11730         define ENDFILE_SPEC as TM_DESTRUCTOR.
11731         * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
11732
11733 2013-02-11  Alexander Potapenko  <glider@google.com>
11734             Jack Howarth  <howarth@bromo.med.uc.edu>
11735             Jakub Jelinek  <jakub@redhat.com>
11736
11737         PR sanitizer/55617
11738         * config/darwin.c (cdtor_record): Rename ctor_record.
11739         (sort_cdtor_records): Rename sort_ctor_records.
11740         (finalize_dtors): New routine to sort destructors by
11741         priority before use in assemble_integer.
11742         (machopic_asm_out_destructor): Use finalize_dtors if needed.
11743
11744 2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
11745
11746         PR rtl-optimization/56275
11747         * simplify-rtx.c (avoid_constant_pool_reference): Check that
11748         offset is non-negative and less than cmode size before
11749         calling simplify_subreg.
11750
11751 2013-02-11  Richard Biener  <rguenther@suse.de>
11752
11753         PR tree-optimization/56264
11754         * cfgloop.h (fix_loop_structure): Adjust prototype.
11755         * loop-init.c (fix_loop_structure): Return the number of
11756         newly discovered loops.
11757         * tree-cfgcleanup.c (repair_loop_structures): When new loops
11758         are discovered, do a full loop-closed SSA rewrite.
11759
11760 2013-02-11  Richard Biener  <rguenther@suse.de>
11761
11762         PR tree-optimization/56273
11763         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
11764         first VRP run.
11765         (check_array_ref): Fix missing newline in dumps.
11766         (search_for_addr_array): Likewise.
11767
11768 2013-02-09  David Edelsohn  <dje.gcc@gmail.com>
11769
11770         * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
11771
11772 2013-02-09  Jakub Jelinek  <jakub@redhat.com>
11773
11774         PR target/56256
11775         * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
11776
11777 2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
11778
11779         PR rtl-optimization/56246
11780         * lra-constraints.c (simplify_operand_subreg): Try to reuse
11781         reload pseudo.
11782         * lra.c (lra): Clear lra_optional_reload_pseudos only when all
11783         constraints are satisfied.
11784
11785 2013-02-08  Jeff Law  <law@redhat.com>
11786
11787         PR debug/53948
11788         * emit-rtl.c (reg_is_parm_p): New function.
11789         * regs.h (reg_is_parm_p): New prototype.
11790         * ira-conflicts.c (ira_build_conflicts): Allow parameters in
11791         callee-clobbered registers.
11792
11793 2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11794
11795         PR target/56043
11796         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
11797         If there is no implicit builtin declaration, just return NULL.
11798
11799 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
11800
11801         * config/i386/sse.md (FMAMODEM): New mode iterator.
11802         (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
11803         mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
11804
11805 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
11806
11807         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
11808         when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
11809         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
11810
11811 2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11812
11813         * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
11814         (microblaze*-*-elf): Likewise.
11815         * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
11816         LINK_SPEC.
11817         * config/microblaze/microblaze-c.c: Add builtin defines for
11818         _LITTLE_ENDIAN and _BIG_ENDIAN.
11819         * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
11820         add to TARGET_DEFAULT flags.
11821         Expand ASM_SPEC and LINK_SPEC.
11822         Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
11823         * config/microblaze/microblaze.md: Update extendsidi2 and
11824         movdi_internal instructions to use low-order / high-order reg
11825         print_operands.
11826         * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
11827         options and inversemask / mask of LITTLE_ENDIAN.
11828         * config/microblaze/t-microblaze: Expand multilib options to
11829         include mlittle-endian (le) and update exceptions patterns.
11830
11831 2013-02-08  Jakub Jelinek  <jakub@redhat.com>
11832
11833         PR rtl-optimization/56195
11834         * lra-constraints.c (get_reload_reg): Don't reuse regs
11835         if they have smaller mode than requested, if they have
11836         wider mode than requested, try to return a SUBREG.
11837
11838         PR tree-optimization/56250
11839         * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
11840         if type is unsigned and code isn't MULT_EXPR.
11841
11842 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
11843
11844         PR tree-optimization/56064
11845         * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
11846         bits according to mode.
11847         * fixed-value.h (fixed_from_double_int)
11848         (const_fixed_from_double_int): Adjust comments.
11849
11850 2013-02-08  Richard Biener  <rguenther@suse.de>
11851
11852         PR lto/56231
11853         * lto-streamer.h (struct data_in): Remove current_file, current_line
11854         and current_col members.
11855         * lto-streamer-out.c (lto_output_location): Stream changed bits
11856         en-block for efficiency.
11857         * lto-streamer-in.c (clear_line_info): Remove.
11858         (lto_input_location): Cache current file, line and column
11859         globally via local statics.  Read changed bits en-block.
11860         (input_function): Do not call clear_line_info.
11861         (lto_read_body): Likewise.
11862         (lto_input_toplevel_asms): Likewise.
11863
11864 2013-02-08  Michael Matz  <matz@suse.de>
11865
11866         PR tree-optimization/52448
11867         * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
11868         (nt_call_phase): New static.
11869         (add_or_mark_expr): Only mark accesses with newer phase than any
11870         call seen.
11871         (nonfreeing_call_p): New.
11872         (nt_init_block): Update nt_call_phase, mark blocks as visited.
11873         (nt_fini_block): Keep blocks marked as visited.
11874         (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
11875
11876 2013-02-08  Richard Biener  <rguenther@suse.de>
11877
11878         * ira.c (ira): Free broken dominator information.
11879
11880 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
11881
11882         * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
11883
11884 2013-02-08  Marek Polacek  <polacek@redhat.com>
11885
11886         * cfgloop.c (verify_loop_structure): Add more checking of headers.
11887
11888 2013-02-08  Richard Biener  <rguenther@suse.de>
11889
11890         PR middle-end/56181
11891         * cfgloop.h (flow_loops_find): Adjust.
11892         (bb_loop_header_p): Declare.
11893         * cfgloop.c (bb_loop_header_p): New function split out from ...
11894         (flow_loops_find): ... here.  Adjust function signature,
11895         support incremental loop structure update.
11896         (verify_loop_structure): Cleanup.  Verify a loop is a loop.
11897         * cfgloopmanip.c (fix_loop_structure): Move ...
11898         * loop-init.c (fix_loop_structure): ... here.
11899         (apply_loop_flags): Split out from ...
11900         (loop_optimizer_init): ... here.
11901         (fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
11902         in incremental mode, only remove dead loops here.
11903
11904 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
11905
11906         PR target/54222
11907         * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
11908         * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
11909         (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
11910         (*round<mode>3.libgcc): New insns for fixed-modes.
11911         * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
11912         (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
11913         (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
11914         * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
11915         implementations.  Define to __builtin_avr_absFX,
11916         __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
11917         (roundFX, countlsFX): Define to __builtin_avr_roundFX,
11918         __builtin_avr_countlsFX, respectively.
11919         * config/avr/avr-c.c (target.h): Include it.
11920         (enum avr_builtin_id): New enum.
11921         (avr_resolve_overloaded_builtin): New static function.
11922         (avr_register_target_pragmas): Use it to set
11923         targetm.resolve_overloaded_builtin.
11924         * config/avr/avr.c (avr_init_builtins): Supply myriads of local
11925         tree nodes used by DEF_BUILTIN.
11926         (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
11927         (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
11928         <AVR_BUILTIN_xxBITS>: Same.
11929
11930 2013-02-08  Richard Biener  <rguenther@suse.de>
11931
11932         * cfgloop.c (verify_loop_structure): Properly handle
11933         a loop exiting to another loop header.
11934         * ira-int.h (ira_loops): Remove.
11935         * ira.c (ira_loops): Remove.
11936         (ira): Use loop_optimizer_init and loop_optimizer_finalize.
11937         (do_reload): Use loop_optimizer_finalize.
11938         * ira-build.c (create_loop_tree_nodes): Use get_loops and
11939         number_of_loops to access the loop tree.
11940         (more_one_region_p): Likewise.
11941         (finish_loop_tree_nodes): Likewise.
11942         (rebuild_regno_allocno_maps): Likewise.
11943         (mark_loops_for_removal): Likewise.
11944         (mark_all_loops_for_removal): Likewise.
11945         (remove_unnecessary_regions): Likewise.
11946         (ira_build): Likewise.
11947         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
11948
11949 2013-02-08  Richard Biener  <rguenther@suse.de>
11950
11951         * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
11952         * ipa-pure-const.c (analyze_function): Avoid calling
11953         mark_irreducible_loops twice.
11954         * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
11955
11956 2013-02-07  David S. Miller  <davem@davemloft.net>
11957
11958         * dwarf2out.c (based_loc_descr): Perform leaf register remapping
11959         on 'reg'.
11960         * var-tracking.c (vt_add_function_parameter): Test the presence of
11961         HAVE_window_save properly and do not remap argument registers when
11962         we have a leaf function.
11963
11964 2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
11965
11966         PR bootstrap/56227
11967         * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
11968         instead of "ll".
11969         * config/i386/i386.c (ix86_print_operand): Ditto.
11970
11971 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
11972
11973         * lra-constraints.c (process_alt_operands): Fix recently added comment.
11974
11975 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
11976
11977         PR rtl-optimization/56225
11978         * lra-constraints.c (process_alt_operands): Check that reload hard
11979         reg can hold value for strict_low_part.
11980
11981 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
11982
11983         PR debug/56154
11984         * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
11985         dwarf2out_end_function.
11986         (in_first_function_p, maybe_at_text_label_p,
11987         first_loclabel_num_not_at_text_label): New variables.
11988         (dwarf2out_var_location): In the first function find out
11989         lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
11990         (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
11991         functions.
11992
11993 2013-02-07  Eric Botcazou  <ebotcazou@adacore.com>
11994
11995         PR rtl-optimization/56178
11996         * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
11997         SUBREG of a register.  Tidy up related block of code.
11998         * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
11999         note if the source is a register or a SUBREG of a register.
12000
12001 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
12002
12003         PR target/56228
12004         * config/rs6000/rs6000.md (ptrm): New mode attr.
12005         (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
12006         call_value_indirect_aix<pttrsize>,
12007         call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
12008         m in constraints.
12009
12010 2013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
12011
12012         * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
12013         if -bnortl. Convert to strcmp and strncmp.
12014
12015 2013-02-07  Alan Modra  <amodra@gmail.com>
12016
12017         PR target/54009
12018         * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
12019         addresses won't wrap when offsetting.
12020         (rs6000_secondary_reload): Provide secondary reloads needed for
12021         wrapping LO_SUM addresses.
12022
12023 2013-02-06  Thomas Schwinge  <thomas@codesourcery.com>
12024
12025         * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
12026         MACH, just __MACH__.
12027
12028 2013-02-06  Richard Biener  <rguenther@suse.de>
12029
12030         * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
12031         instead of calling fix_loop_structure.
12032
12033 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
12034
12035         PR middle-end/56217
12036         * omp-low.c (use_pointer_for_field): Return false if
12037         lower_send_shared_vars doesn't generate any copy-out code.
12038
12039 2013-02-06  Tom de Vries  <tom@codesourcery.com>
12040
12041         PR rtl-optimization/56131
12042         * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
12043         to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
12044         of the label is NULL.  Add comment.
12045
12046 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
12047
12048         * tree.h (struct tree_decl_with_vis): Remove thread_local field.
12049
12050         PR sanitizer/55374
12051         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
12052         (STATIC_LIBTSAN_LIBS): Likewise.
12053         * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
12054         (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
12055         is defined, don't add anything else beyond that.
12056         (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
12057         (LINK_COMMAND_SPEC): Use them.
12058
12059         PR tree-optimization/56205
12060         * tree-stdarg.c (check_all_va_list_escapes): Return true if
12061         there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
12062         and some va_list_escape_vars SSA_NAME appears in some PHI argument.
12063
12064 2013-02-05  Richard Biener  <rguenther@suse.de>
12065
12066         PR tree-optimization/53342
12067         PR tree-optimization/53185
12068         * tree-vectorizer.h (vect_check_strided_load): Remove.
12069         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
12070         not disallow peeling for vectorized strided loads.
12071         (vect_check_strided_load): Make static and simplify.
12072         (vect_analyze_data_refs): Adjust.
12073         * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
12074         correctly when vectorizing strided loads.
12075
12076 2013-02-05  Richard Biener  <rguenther@suse.de>
12077
12078         * doc/install.texi: Refer to ISL, not PPL.
12079
12080 2013-02-05  Jan Hubicka  <jh@suse.cz>
12081
12082         PR tree-optimization/55789
12083         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
12084
12085 2013-02-05  Jan Hubicka  <jh@suse.cz>
12086
12087         PR tree-optimization/55789
12088         * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
12089         the dead call anyway.
12090
12091 2013-02-05  Eric Botcazou  <ebotcazou@adacore.com>
12092
12093         PR sanitizer/55374
12094         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
12095
12096 2013-02-04  Alexander Potapenko  <glider@google.com>
12097             Jack Howarth  <howarth@bromo.med.uc.edu>
12098             Jakub Jelinek  <jakub@redhat.com>
12099
12100         PR sanitizer/55617
12101         * config/darwin.c (sort_ctor_records): Stabilized qsort
12102         on constructor priority by using original position.
12103         (finalize_ctors): New routine to sort constructors by
12104         priority before use in assemble_integer.
12105         (machopic_asm_out_constructor): Use finalize_ctors if needed.
12106
12107 2013-02-04  Jakub Jelinek  <jakub@redhat.com>
12108
12109         PR libstdc++/54314
12110         * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
12111         about visibility on artificial decls.
12112         * config/sol2.c (solaris_assemble_visibility): Likewise.
12113
12114 2013-02-04  Kai Tietz  <ktietz@redhat.com>
12115
12116         PR target/56186
12117         * config/i386/i386.c (function_value_ms_64): Add additional valtype
12118         argument and improve checking of return-argument types for 16-byte
12119         modes.
12120         (ix86_function_value_1): Add additional valtype argument on call
12121         of function_value_64.
12122         (return_in_memory_ms_64): Sync 16-byte sized mode handling with
12123         handling infunction_value_64 function.
12124
12125 2013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
12126
12127         * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
12128
12129 2013-02-04  Richard Biener  <rguenther@suse.de>
12130
12131         PR tree-optimization/56188
12132         * tree-ssa-structalias.c (label_visit): Consider case with
12133         initially non-empty points-to set.
12134         (perform_var_substitution): Dump node mapping and clean up.
12135
12136 2013-02-04  Richard Guenther  <rguenther@suse.de>
12137
12138         PR lto/56168
12139         * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
12140         node prevail as last resort.
12141         (lto_symtab_merge_decls): Remove guard on LTRANS here.
12142         (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
12143
12144 2013-02-04  Richard Biener  <rguenther@suse.de>
12145
12146         PR tree-optimization/56113
12147         * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
12148         Merge into ...
12149         (equiv_class_lookup_or_add): ... this.
12150         (label_visit): Adjust and fix error in previous patch.
12151         (perform_var_substitution): Adjust.
12152
12153 2013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
12154
12155         * config/sh/divtab.c: Fix formatting and comments throughout the file.
12156         * config/sh/sh4-300.md: Likewise.
12157         * config/sh/sh4a.md: Likewise.
12158         * config/sh/constraints.md: Likewise.
12159         * config/sh/sh.md: Likewise.
12160         * config/sh/netbsd-elf.h: Likewise.
12161         * config/sh/predicates.md: Likewise.
12162         * config/sh/sh-protos.h: Likewise.
12163         * config/sh/ushmedia.h: Likewise.
12164         * config/sh/linux.h: Likewise.
12165         * config/sh/sh.c: Likewise.
12166         * config/sh/superh.h: Likewise.
12167         * config/sh/elf.h: Likewise.
12168         * config/sh/sh4.md: Likewise.
12169         * config/sh/sh.h: Likewise.
12170
12171 2013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12172
12173         * config/pa/constraints.md: Adjust unused letters.  Change "T"
12174         constraint to match_test floating_point_store_memory_operand().
12175         * config/pa/predicates.md (reg_plus_base_memory_operand): New.
12176         (base14_operand): New.
12177         (floating_point_store_memory_operand): New.
12178         (integer_store_memory_operand): Revise to use base14_operand and
12179         reg_plus_base_memory_operand.
12180         (move_dest_operand): Allow symbolic_memory_operands.
12181         (symbolic_memory_operand): Check for LO_SOM.
12182         (symbolic_operand): Change default case to break.
12183         * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
12184         CONST_DOUBLE values to be reloaded by putting them into memory when
12185         the destination is a floating point register.
12186         (movdf): Remove code to handle CONST_DOUBLE.
12187         (movsf): Likewise.
12188         (reload_indf_r1): New.
12189         (reload_insf_r1): New.
12190         Consistently use "Q" and "T" constraints with integer and floating
12191         point move instructions, respectively.
12192         (movdi): Remove FAIL.
12193         Change predicate for source operand unamed DImode move from
12194         general_operand to move_src_operand.
12195         (umulsidi3): Change predicate for destination operand to
12196         register_operand.
12197         Likewise for similar unamed patterns.
12198         * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
12199         * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
12200         (hppa_legitimize_address): Simplify mask calculation.
12201         (pa_emit_move_sequence): Revised handling of secondary reloads from
12202         REG+D addresses for floating point loads and stores.  Directly handle
12203         loading CONST0_RTX (mode) to a floating point register.
12204         (pa_secondary_reload): Handle reloading DF and SFmode constant values
12205         to floating point registers.  Don't restrict secondary reloads to
12206         floating point registers to integer modes.  Revise some comments and
12207         cleanup some code.
12208         (TARGET_LEGITIMATE_ADDRESS_P): Define.
12209         (pa_legitimate_address_p): New.
12210         (pa_legitimize_reload_address): New.
12211         * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
12212         (STRICT_REG_OK_FOR_BASE_P): New.
12213         (GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
12214         (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
12215
12216 2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
12217             Andrew Dixie  <andrewd@gentrack.com>
12218
12219         * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
12220         flag set.
12221
12222 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
12223
12224         * expmed.c (extract_bit_field_1): Pass the full width of the
12225         structure to get_best_reg_extraction_insn.
12226
12227 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
12228
12229         PR target/54601
12230         * configure.ac (use_cxa_atexit): Add AIX.
12231         * configure: Regenerate.
12232
12233         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
12234
12235 2013-02-01  Jakub Jelinek  <jakub@redhat.com>
12236
12237         PR debug/54793
12238         * final.c (need_profile_function): New variable.
12239         (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
12240         If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
12241         is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
12242         notes, targetm.asm_out.function_prologue doesn't emit anything,
12243         HAVE_prologue and profiler should be emitted before prologue,
12244         set need_profile_function instead of emitting it.
12245         (final_scan_insn): If need_profile_function, emit
12246         profile_function on the first NOTE_INSN_BASIC_BLOCK or
12247         NOTE_INSN_FUNCTION_BEG note.
12248
12249 2013-02-01  Richard Henderson  <rth@redhat.com>
12250
12251         * config/rs6000/rs6000.md (smulditi3): New.
12252         (umulditi3): New.
12253
12254         * config/alpha/alpha.md (umulditi3): New.
12255
12256 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
12257
12258         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
12259         (ASM_OUTPUT_ALIGNED_LOCAL): New.
12260
12261 2013-02-01  Richard Biener  <rguenther@suse.de>
12262
12263         PR tree-optimization/56113
12264         * tree-ssa-structalias.c (label_visit): Reduce work for
12265         single-predecessor nodes.
12266
12267 2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
12268
12269         * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
12270         range isn't testing for zero.
12271
12272 2013-01-31  Steven Bosscher  <steven@gcc.gnu.org>
12273
12274         PR middle-end/56113
12275         * fwprop.c (fwprop_init): Set up loops without CFG modifications.
12276
12277 2013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
12278             Nick Clifton  <nickc@redhat.com>
12279
12280         * config/v850/constraints.md (Q): Define as a memory constraint.
12281         * config/v850/predicates.md (label_ref_operand): New predicate.
12282         (e3v5_shift_operand): New predicate.
12283         (ior_operator): New predicate.
12284         * config/v850/t-v850: Add e3v5 multilib.
12285         * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
12286         (v850_gen_movdi): Prototype.
12287         * config/v850/v850.c: Add support for e3v5 architecture.
12288         Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
12289         TARGET_V850E_UP.
12290         (construct_save_jarl): Add e3v5 long JARL support.
12291         (v850_adjust_insn_length): New function.  Adjust length of call
12292         insns when using e3v5 instructions.
12293         (v850_gen_movdi): New function: Generate instructions to move a
12294         DImode value.
12295         * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
12296         (CPP_SPEC): Define __v850e3v5__ as appropriate.
12297         (TARGET_USE_FPU): Enable for e3v5.
12298         (CONST_OK_FOR_W): New macro.
12299         (ADJUST_INSN_LENGTH): Define.
12300         * config/v850/v850.md (UNSPEC_LOOP): Define.
12301         (attr cpu): Add v850e3v5.
12302         Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
12303         (movdi): New pattern.
12304         (movdi_internal): New pattern.
12305         (cbranchsf4): Conditionalize on TARGET_USE_FPU.
12306         (cbranchdf4): Conditionalize on TARGET_USE_FPU.
12307         (cstoresf4): Likewise.
12308         (cstoredf4): Likewise.
12309         (insv): New pattern.
12310         (rotlso3_a): New pattern.
12311         (rotlsi3_b): New pattern
12312         (rotlsi3_v850e3v5): New pattern.
12313         (doloop_begin): New pattern.
12314         (fix_loop_counter): New pattern.
12315         (doloop_end): New pattern.
12316         (branch_normal): Add e3v5 long branch support.
12317         (branch_invert): Likewise.
12318         (branch_z_normal): Likewise.
12319         (branch_z_invert): Likewise.
12320         (branch_nz_normal): Likewise.
12321         (branch_nz_invert): Likewise.
12322         (call_internal_short): Add e3v5 register-indirect JARL support.
12323         (call_internal_long): Likewise.
12324         (call_value_internal_short): Likewise.
12325         (call_value_internal_long): Likewise.
12326         * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
12327         (mloop): New option.
12328         * config.gcc: Add support for configuring v840e3v5 target.
12329         * doc/invoke.texi: Document new v850 specific command line options.
12330
12331 2013-01-31  Paul Koning  <ni1d@arrl.net>
12332
12333         PR debug/55059
12334         PR debug/54508
12335         * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
12336         children if parent is a class.
12337         (prune_unused_types_prune): Don't add DW_AT_declaration.
12338
12339 2013-01-31  Richard Biener  <rguenther@suse.de>
12340
12341         PR tree-optimization/56157
12342         * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
12343         match up operand with SLP child.
12344
12345 2013-01-31  Jason Merrill  <jason@redhat.com>
12346
12347         PR debug/54410
12348         * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
12349         parameters the first time.
12350         (gen_scheduled_generic_parms_dies): Check completeness here.
12351
12352 2013-01-31  Richard Biener  <rguenther@suse.de>
12353
12354         PR middle-end/53073
12355         * common.opt (faggressive-loop-optimizations): New flag,
12356         enabled by default.
12357         * doc/invoke.texi (faggressive-loop-optimizations): Document.
12358         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
12359         infer_loop_bounds_from_undefined by it.
12360
12361 2013-01-31  Richard Biener  <rguenther@suse.de>
12362
12363         PR tree-optimization/56150
12364         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
12365         visit virtual operands.
12366         (find_uses_to_rename_bb): Likewise.
12367
12368 2013-01-31  Richard Biener  <rguenther@suse.de>
12369
12370         PR tree-optimization/56150
12371         * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
12372         mixed store non-store stmts.
12373
12374 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
12375
12376         PR sanitizer/55374
12377         * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
12378         LIBASAN_EARLY_SPEC is defined.
12379         (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
12380         (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
12381         before %o.
12382         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
12383
12384         PR c++/55742
12385         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
12386         invalid args instead of ICEing on it.
12387         (ix86_valid_target_attribute_tree): Return error_mark_node if
12388         ix86_valid_target_attribute_inner_p failed.
12389         (ix86_valid_target_attribute_p): Return false only if
12390         ix86_valid_target_attribute_tree returned error_mark_node.  Allow
12391         target("default") attribute.
12392         (sorted_attr_string): Change argument from const char * to tree,
12393         merge in all target attribute arguments rather than just one.
12394         Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
12395         instead of free.  Avoid using strcat.
12396         (ix86_mangle_function_version_assembler_name): Mangle
12397         target("default") as if no target attribute is present.  Adjust
12398         sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
12399         instead of xmalloc and XDELETEVEC instead of free.
12400         (ix86_function_versions): Don't return true if one of the decls
12401         doesn't have target attribute.  If they don't and one of the decls
12402         is DECL_FUNCTION_VERSIONED, report an error.  Adjust
12403         sorted_attr_string caller.  Use XDELETEVEC instead of free.
12404         (ix86_supports_function_versions): Remove.
12405         (make_name): Fix up formatting.
12406         (make_dispatcher_decl): Remove resolver_name and its initialization.
12407         Avoid leaking memory.
12408         (is_function_default_version): Return true if there is
12409         target("default") attribute rather than no target attribute at all.
12410         (make_resolver_func): Avoid leaking memory.
12411         (ix86_generate_version_dispatcher_body): Likewise.
12412         (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
12413         * target.def (supports_function_versions): Remove.
12414         * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
12415         * doc/tm.texi: Regenerated.
12416
12417 2013-01-30  Vladimir Makarov  <vmakarov@redhat.com>
12418
12419         PR rtl-optimization/56144
12420         * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
12421         for values with side effects.
12422
12423 2013-01-30  Richard Biener  <rguenther@suse.de>
12424
12425         * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
12426         (sparseset_pop): Likewise.
12427         * cfganal.c (compute_idf): Likewise.  Increase work-stack size
12428         to be able to use quick_push in the worker loop.
12429
12430 2013-01-30  Marek Polacek  <polacek@redhat.com>
12431
12432         * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
12433
12434 2013-01-30  Richard Biener  <rguenther@suse.de>
12435
12436         PR lto/56147
12437         * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
12438
12439 2013-01-30  Georg-Johann Lay  <avr@gjlay.de>
12440
12441         PR tree-optimization/56064
12442         * fixed-value.c (fixed_from_double_int): New function.
12443         * fixed-value.h (fixed_from_double_int): New prototype.
12444         (const_fixed_from_double_int): New static inline function.
12445         * fold-const.c (native_interpret_fixed): New static function.
12446         (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
12447         (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
12448         (native_encode_fixed): New static function.
12449         (native_encode_expr) <FIXED_CST>: Use it.
12450         (native_interpret_int): Move double_int worker code to...
12451         * double-int.c (double_int::from_buffer): ...this new static method.
12452         * double-int.h (double_int::from_buffer): Prototype it.
12453
12454 2013-01-30  Richard Biener  <rguenther@suse.de>
12455
12456         * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
12457         New pointer-map and obstack.
12458         (init_alias_vars): Allocate pointer-map and obstack.
12459         (delete_points_to_sets): Free them.
12460         (find_what_var_points_to): Cache result.
12461         (find_what_p_points_to): Adjust for changed interface of
12462         find_what_var_points_to.
12463         (compute_points_to_sets): Likewise.
12464         (ipa_pta_execute): Likewise.
12465
12466 2013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12467
12468         * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
12469         * configure: Regenerate.
12470         * config.in: Regenerate.
12471         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
12472         #nobits/#progbits if supported.
12473
12474 2013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>
12475
12476         PR target/56121
12477         * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
12478         bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
12479         bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
12480
12481 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
12482
12483         * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
12484         (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
12485
12486 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
12487
12488         * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
12489         * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
12490
12491 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
12492
12493         * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
12494         declaration.
12495         * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
12496         * config/arm/cortex-a7.md: New bypasses using
12497         arm_mac_accumulator_is_result.
12498
12499 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
12500
12501         * config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
12502         (cortex_a7_neon_mla): Likewise.
12503         (cortex_a7_fpfmad): New reservation.
12504         (cortex_a7_fpmacs): Use ffmas and update required units.
12505         (cortex_a7_fpmuld): Update required units and latency.
12506         (cortex_a7_fpmacd): Likewise.
12507         (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
12508         (cortex_a7_neon). Likewise.
12509         (bypass) Update participating units.
12510
12511 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
12512
12513         * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
12514         * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
12515         from fmac to ffma.
12516         * config/arm/vfp11.md (vfp_farith): Use ffmas.
12517         (vfp_fmul): Use ffmad.
12518         * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
12519         (cortex_r4_fmacd): Use ffmad.
12520         * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
12521         * config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
12522         (cortex_a9_fmacd): Use ffmad.
12523         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
12524         (cortex_a8_vfp_macd): Use ffmad.
12525         * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
12526         (cortex_a5_fpmacd): Use ffmad.
12527         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
12528         (cortex_a15_vfp_macd): Use ffmad.
12529         * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
12530
12531 2013-01-29  Jason Merrill  <jason@redhat.com>
12532
12533         PR libstdc++/54314
12534         * varasm.c (default_assemble_visibility): Don't warn about
12535         visibility on artificial decls.
12536
12537 2013-01-29  Richard Biener  <rguenther@suse.de>
12538
12539         PR tree-optimization/56113
12540         * tree-ssa-structalias.c (equiv_class_lookup): Also return
12541         the bitmap leader.
12542         (label_visit): Free duplicate bitmaps and record the leader instead.
12543         (perform_var_substitution): Adjust.
12544
12545 2013-01-29  Richard Biener  <rguenther@suse.de>
12546
12547         PR tree-optimization/55270
12548         * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
12549         the CFG, schedule loops for fixup.
12550
12551 2013-01-29  Nick Clifton  <nickc@redhat.com>
12552
12553         * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
12554         SP_REG.
12555
12556 2013-01-28  Leif Ekblad  <leif@rdos.net>
12557
12558         * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
12559         * config/i386/i386.h (TARGET_RDOS): New macro.
12560         (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
12561         * config/i386/i386.c (ix86_option_override_internal): For 64bit
12562         TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
12563         * config/i386/i386.opt (mlarge-data-threshold): Initialize to
12564         DEFAULT_LARGE_SECTION_THRESHOLD.
12565         * config/i386/i386.md (R14_REG, R15_REG): New constants.
12566         * config/i386/rdos.h: New file.
12567         * config/i386/rdos64.h: New file.
12568
12569 2013-01-28  Bernd Schmidt  <bernds@codesourcery.com>
12570
12571         PR other/54814
12572         * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
12573         TEST_HARD_REG_BIT.
12574
12575 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
12576
12577         PR rtl-optimization/56117
12578         * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
12579         call cselib_lookup_from_insn on the MEM before calling
12580         add_insn_mem_dependence.
12581
12582 2013-01-28  Richard Biener  <rguenther@suse.de>
12583
12584         * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
12585         to a stmt that didn't have one.
12586         (copy_phis_for_bb): Likewise for PHI arguments.
12587         (copy_debug_stmt): Likewise for debug stmts.
12588
12589 2013-01-28  Richard Biener  <rguenther@suse.de>
12590
12591         PR tree-optimization/56034
12592         * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
12593         (partition_builtin_p): Adjust.
12594         (generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
12595         it is the last partition.
12596         (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
12597         up the vertex for the definition.
12598         (classify_partition): Classify whether a partition is a
12599         PKIND_REDUCTION, thus has uses outside of the loop.
12600         (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
12601         Merge all PKIND_REDUCTION partitions into the last partition.
12602         (tree_loop_distribution): Seed partitions from reductions as well.
12603
12604 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
12605
12606         PR tree-optimization/56125
12607         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
12608         pow(x,c) into sqrt(x) * powi(x, n/2) or
12609         1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
12610         optimizing for size.
12611         Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
12612         1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
12613         integer.
12614
12615         PR tree-optimization/56094
12616         * gimplify.c (force_gimple_operand_1): Temporarily set input_location
12617         to UNKNOWN_LOCATION while gimplifying expr.
12618
12619 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
12620
12621         PR target/56114
12622         * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
12623         operand 0 in movabs insn template for -masm=intel asm alternative.
12624         (*movabs<mode>_2): Ditto for operand 1.
12625
12626 2013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>
12627
12628         PR target/54663
12629         * config.gcc (microblaze*-linux*): Add tmake_file to allow building
12630         of microblaze-c.o
12631
12632 2013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
12633
12634         * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
12635         tm_file.
12636
12637 2013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
12638
12639         * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
12640         Undef to avoid warning.
12641
12642 2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
12643
12644         * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
12645         * configure: Regenerate.
12646
12647 2013-01-25  Jakub Jelinek  <jakub@redhat.com>
12648
12649         PR tree-optimization/56098
12650         * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
12651         for stmts with volatile ops.
12652         (cond_store_replacement): Don't optimize if assign has volatile ops.
12653         (cond_if_else_store_replacement_1): Don't optimize if either
12654         then_assign or else_assign have volatile ops.
12655         (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
12656         volatile ops.
12657
12658 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
12659
12660         * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
12661
12662 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
12663
12664         * doc/extend.texi (Example of asm with clobbered asm reg): Fix
12665         missing ':' in asm example.
12666
12667 2013-01-25  Tejas Belagod  <tejas.belagod@arm.com>
12668
12669         * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
12670         entries into lane and laneq entries.
12671         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
12672         Remove AdvSIMD scalar modes.
12673         (aarch64_sq<r>dmulh_laneq<mode>): New.
12674         (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
12675         modes.
12676         * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
12677         builtin implementations to relfect changes in RTL in aarch64-simd.md.
12678         * config/aarch64/iterators.md (VCOND): New.
12679         (VCONQ): New.
12680
12681 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
12682
12683         PR target/54222
12684         * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
12685         Add NULL LIBNAME argument to existing definitions.
12686         (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
12687         * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
12688         * config/avr/avr.c (DEF_BUILTIN): Same.
12689         (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
12690         (avr_expand_builtin): Expand to a vanilla call if a libgcc
12691         implementation is available (DECL_ASSEMBLER_NAME is set).
12692         (avr_fold_absfx): New static function.
12693         (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
12694         AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
12695         AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
12696         AVR_BUILTIN_ABSLLK.
12697         * config/avr/stdfix.h (abshr, absr, abslr, absllr)
12698         (abshk, absk, abslk, absllk): Provide as static inline functions.
12699
12700 2013-01-25  Marek Polacek  <polacek@redhat.com>
12701
12702         PR tree-optimization/56035
12703         * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
12704
12705 2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
12706
12707         * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
12708         (*movtf_internal_rex64): Add (!o,C) alternative
12709         (*movxf_internal_rex64): Ditto.
12710         (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
12711
12712 2013-01-24  Shenghou Ma  <minux.ma@gmail.com>
12713
12714         * doc/invoke.texi: fix typo.
12715         * doc/objc.texi: fix typo.
12716
12717 2013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
12718
12719         * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
12720         for the first two alternatives.
12721
12722 2013-01-24  Diego Novillo  <dnovillo@google.com>
12723
12724         * Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
12725         (ggc-zone.o): Remove.
12726         * configure.ac: Remove option --with-gc.
12727         * configure: Re-generate.
12728         * doc/install.texi: Remove documentation for --with-gc.
12729         * gengtype.c (write_enum_defn): Remove.  Update all users.
12730         (write_Types_process_field): Remove generation of gt_e_* argument.
12731         (output_type_enum): Remove.  Update all users.
12732         (write_enum_defn): Remove.  Update all users.
12733         (enum alloc_zone): Remove.  Update all users.
12734         (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
12735         * ggc-common.c (ggc_splay_alloc): Remove first argument.
12736         Update all callers.
12737         (struct ptr_data): Remove field TYPE.  Update all users.
12738         (gt_pch_note_object): Remove argument TYPE.  Update all users.
12739         * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
12740         Update all users.
12741         * ggc-none.c (ggc_alloc_typed_stat): Remove.
12742         (struct alloc_zone): Remove.
12743         (ggc_internal_alloc_zone_stat): Remove.
12744         (ggc_internal_cleared_alloc_zone_stat): Remove.
12745         * ggc-page.c (ggc_alloc_typed_stat): Remove.
12746         (ggc_pch_count_object): Remove last argument.  Update all users.
12747         (ggc_pch_alloc_object): Remove last argument.  Update all users.
12748         (struct alloc_zone): Remove.
12749         * ggc-zone.c: Remove.
12750         * ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
12751         (struct alloc_zone): Remove.
12752         (ggc_alloc_typed_stat): Remove.
12753         (ggc_alloc_typed): Remove.
12754         (ggc_splay_alloc): Remove first argument.
12755         (rtl_zone): Remove.  Update all users.
12756         (tree_zone): Remove.  Update all users.
12757         (tree_id_zone): Remove.  Update all users.
12758         (ggc_internal_zone_alloc_stat): Remove.  Update all users.
12759         (ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
12760         (ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
12761         * tree-ssanames.c: Remove references to zone allocator in comments.
12762
12763 2013-01-24  Georg-Johann Lay  <avr@gjlay.de>
12764
12765         * config/avr/avr.c (avr_out_fract): Make register numbers that
12766         might be outside of source operand signed.
12767
12768 2013-01-24  Uros Bizjak  <ubizjak@gmail.com>
12769
12770         * config/i386/constraints.md (Yf): New constraint.
12771         * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
12772         of f constraint to conditionaly disable x87 register preferences.
12773         (*movdf_internal): Ditto.
12774         (*movsf_internal): Ditto.
12775
12776 2013-01-24  Steven Bosscher  <steven@gcc.gnu.org>
12777
12778         PR inline-asm/55934
12779         * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
12780         that have operands with impossible constraints.
12781         Add a FIXME for a speed-up opportunity.
12782         * lra-constraints.c (process_alt_operands): Verify that a class
12783         selected from constraints on asms is valid for the operand mode.
12784         (curr_insn_transform): Remove incorrect comment.
12785
12786 2013-01-23  David Edelsohn  <dje.gcc@gmail.com>
12787
12788         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
12789         TOC operand is a valid symbol ref in the constant pool.
12790
12791 2013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
12792
12793         * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
12794
12795 2013-01-23  Georg-Johann Lay  <avr@gjlay.de>
12796
12797         PR target/54222
12798         * config/avr/stdfix.h: New file.
12799         * t-avr (stdfix-gcc.h): New rule to build it.
12800         (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
12801
12802 2013-01-23  Kostya Serebryany  <kcc@google.com>
12803
12804         * config/darwin.h: remove dependency on
12805         CoreFoundation (asan on Mac OS).
12806
12807 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
12808
12809         PR target/49069
12810         * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
12811         instead of cmpdi_operand for first comparison operand.
12812         Don't assert that comparison operands aren't both constants.
12813
12814 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
12815
12816         * doc/install.texi (Downloading the Source): Update references to
12817         downloading separate components.
12818
12819 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
12820
12821         * doc/extend.texi (__int128): Improve grammar.
12822
12823 2013-01-22  Uros Bizjak  <ubizjak@gmail.com>
12824
12825         PR target/56028
12826         * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
12827         alternative to (o,r).
12828         (*movdi_internal_rex64): Remove (!o,n) alternative.
12829         (DImode immediate->memory splitter): Remove.
12830         (DImode immediate->memory peephole2): Remove.
12831         (movtf): Enable for TARGET_64BIT || TARGET_SSE.
12832         (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
12833         alternative to (!o,*r).
12834         (*movtf_internal_sse): New pattern.
12835         (*movxf_internal_rex64): New pattern.
12836         (*movxf_internal): Disable for TARGET_64BIT.
12837         (*movdf_internal_rex64): Remove (!o,F) alternative.
12838
12839 2013-01-22  Jakub Jelinek  <jakub@redhat.com>
12840
12841         PR middle-end/56074
12842         * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
12843         isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
12844         * tree-vect-loop-manip.c (find_loop_location): Also ignore
12845         stmt locations where LOCATION_LOCUS of the stmt location is
12846         UNKNOWN_LOCATION or BUILTINS_LOCATION.
12847
12848         PR target/55686
12849         * config/i386/i386.md (UNSPEC_STOS): New.
12850         (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
12851         *strsetqi_1): Add UNSPEC_STOS.
12852
12853 2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
12854
12855         PR c++/56067
12856         * doc/invoke.texi: Remove left over -Wsynth example.
12857
12858 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
12859
12860         PR tree-optimization/56051
12861         * fold-const.c (fold_binary_loc): Don't fold
12862         X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
12863         a narrowing conversion, or widening conversion from signed
12864         to unsigned.
12865
12866 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
12867
12868         PR rtl-optimization/56023
12869         * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
12870         dependent on debug instruction.
12871
12872 2013-01-21  Martin Jambor  <mjambor@suse.cz>
12873
12874         PR middle-end/56022
12875         * function.c (allocate_struct_function): Call
12876         invoke_set_current_function_hook earlier.
12877
12878 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
12879
12880         * reload1.c (init_reload): Only initialize reload_obstack
12881         during the first call.
12882
12883 2013-01-21  Marek Polacek  <polacek@redhat.com>
12884
12885         * cfgloop.c (verify_loop_structure): Fix up grammar.
12886
12887 2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>
12888
12889         * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
12890         pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
12891
12892 2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12893
12894         PR target/56058
12895         * config/arm/marvell-pj4.md: Update copyright year.
12896         Fix up use of alu to alu_reg and simple_alu_imm.
12897
12898 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
12899
12900         * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
12901
12902 2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>
12903
12904         PR target/55433
12905         * lra-constraints.c (curr_insn_transform): Don't reuse original
12906         insn for secondary memory move when memory mode should be different.
12907
12908 2013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12909
12910         * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
12911         atomic_storedi_1): New patterns.
12912
12913 2013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12914
12915         btver2 pipeline descriptions.
12916         * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
12917         descriptions.
12918         * config/i386/i386.md (btver2_decode): New type attributes.
12919         * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
12920         type attributes.
12921         * config/i386/btver2.md: New file describing btver2 pipelines.
12922
12923 2013-01-19  Andrew Pinski  <apinski@cavium.com>
12924
12925         PR tree-optimization/52631
12926         * tree-ssa-sccvn (visit_use): Before looking up the original
12927         statement, try looking up the simplified expression.
12928
12929 2013-01-19  Anthony Green  <green@moxielogic.com>
12930
12931         * config/moxie/moxie.c (moxie_expand_prologue): Set
12932         current_function_static_stack_size.
12933
12934 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
12935
12936         PR tree-optimization/56029
12937         * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
12938         gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
12939
12940 2013-01-18  Sharad Singhai  <singhai@google.com>
12941
12942         PR tree-optimization/55995
12943         * dumpfile.c (dump_loc): Print location only if available.
12944         * tree-vectorizer.c (increase_alignment): Intialize vect_location.
12945
12946 2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>
12947
12948         PR target/55433
12949         * lra-constraints.c (curr_insn_transform): Reuse original insn for
12950         secondary memory move.
12951         (inherit_reload_reg): Use rclass instead of cl for
12952         check_secondary_memory_needed_p.
12953
12954 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
12955
12956         PR middle-end/56015
12957         * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
12958         the case where writing real complex part of target modifies op1.
12959
12960 2013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>
12961
12962         * config/aarch64/aarch64-simd.md
12963         (aarch64_vcond_internal<mode>): Handle unordered cases.
12964         * config/aarch64/iterators.md (v_cmp_result): New.
12965
12966 2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
12967             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12968
12969         * config/arm/marvell-pj4.md: New file.
12970         * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
12971         * config/arm/arm.md (generic_sched): Add marvell_pj4.
12972         (generic_vfp): Likewise.
12973         * config/arm/arm-cores.def: Add marvell-pj4.
12974         * config/arm/arm-tune.md: Regenerate.
12975         * config/arm/arm-tables.opt: Regenerate.
12976         * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
12977         * doc/invoke.texi: Document marvell-pj4.
12978
12979 2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>
12980
12981         * config/aarch64/arm_neon.h: Map scalar types to standard types.
12982
12983 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
12984
12985         PR debug/54114
12986         PR debug/54402
12987         PR debug/49888
12988         * var-tracking.c (negative_power_of_two_p): New.
12989         (global_get_addr_cache, local_get_addr_cache): New.
12990         (get_addr_from_global_cache, get_addr_from_local_cache): New.
12991         (vt_canonicalize_addr): Rewrite using the above.  Adjust the
12992         heading comment.
12993         (vt_stack_offset_p): Remove.
12994         (vt_canon_true_dep): Always canonicalize loc's address.
12995         (clobber_overlapping_mems): Make sure we have a MEM.
12996         (local_get_addr_clear_given_value): New.
12997         (val_reset): Clear local cached entries.
12998         (compute_bb_dataflow): Create and release the local cache.
12999         Disable duplicate MEMs clobbering.
13000         (emit_notes_in_bb): Clobber MEMs likewise.
13001         (vt_emit_notes): Create and release the local cache.
13002         (vt_initialize, vt_finalize): Create and release the global
13003         cache, respectively.
13004         * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
13005
13006 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
13007
13008         PR libmudflap/53359
13009         * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
13010         not found in the symtab.
13011
13012 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
13013
13014         PR debug/56006
13015         PR rtl-optimization/55547
13016         PR rtl-optimization/53827
13017         PR debug/53671
13018         PR debug/49888
13019         * alias.c (offset_overlap_p): New, factored out of...
13020         (memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
13021         the conservative special case for symbolic constants.  Don't
13022         adjust zero sizes on alignment.
13023
13024 2013-01-18  Bernd Schmidt  <bernds@codesourcery.com>
13025
13026         PR rtl-optimization/52573
13027         * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
13028         REG_UNUSED for the same register.
13029
13030 2013-01-17  Richard Biener  <rguenther@suse.de>
13031             Marek Polacek  <polacek@redhat.com>
13032
13033         PR rtl-optimization/55833
13034         * loop-unswitch.c (unswitch_loops): Move loop verification...
13035         (unswitch_single_loop): ...here.  Call mark_irreducible_loops.
13036         * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
13037         Set it to true when we're removing a loop from hierarchy tree in
13038         an irreducible region.
13039         (fix_bb_placements): Adjust caller.
13040         (fix_loop_placements): Likewise.
13041
13042 2013-01-17  Georg-Johann Lay  <avr@gjlay.de>
13043
13044         * config/avr/builtins.def (DEF_BUILTIN): Factor out
13045         "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
13046         Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
13047         Remove ID.  Adjust comments.
13048         * config/avr/avr-c.c (avr_builtin_name): Remove.
13049         (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
13050         * config/avr/avr.c (avr_tolower): New static function.
13051         (DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
13052         Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
13053         (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
13054         default expansion.
13055
13056 2013-01-17  Jan Hubicka  <jh@suse.cz>
13057
13058         PR tree-optimization/55273
13059         * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
13060
13061 2013-01-17  Uros Bizjak  <ubizjak@gmail.com>
13062
13063         PR target/55981
13064         * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
13065         store through atomic_store<mode>_1.
13066         (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
13067
13068 2013-01-17  Martin Jambor  <mjambor@suse.cz>
13069
13070         PR tree-optimizations/55264
13071         * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
13072         for virtual methods.
13073         * ipa.c (symtab_remove_unreachable_nodes): Never return true for
13074         virtual methods before inlining is over.
13075         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
13076         virtual functions.
13077         * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
13078         non-virtual.
13079
13080 2013-01-16  Vladimir Makarov  <vmakarov@redhat.com>
13081
13082         PR rtl-optimization/56005
13083         * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
13084         pending reads for prefetch.
13085
13086 2013-01-16  Ian Bolton  <ian.bolton@arm.com>
13087
13088         * config/aarch64/aarch64.md
13089         (*cstoresi_neg_uxtw): New pattern.
13090         (*cmovsi_insn_uxtw): New pattern.
13091         (*<optab>si3_uxtw): New pattern.
13092         (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
13093         (*<optab>si3_insn_uxtw): New pattern.
13094         (*bswapsi2_uxtw): New pattern.
13095
13096 2013-01-16  Richard Biener  <rguenther@suse.de>
13097
13098         * tree-inline.c (tree_function_versioning): Remove set but
13099         never used variable.
13100
13101 2013-01-16  Richard Biener  <rguenther@suse.de>
13102
13103         PR tree-optimization/55964
13104         * tree-flow.h (rename_variables_in_loop): Remove.
13105         (rename_variables_in_bb): Likewise.
13106         * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
13107         (copy_loop_before): Adjust and delete update-ssa status.
13108         * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
13109         (rename_variables_in_bb): Likewise.  Properly walk over predecessors.
13110         (rename_variables_in_loop): Remove.
13111         (slpeel_update_phis_for_duplicate_loop): Likewise.
13112         (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
13113         use available cfg machinery instead of duplicating it.
13114         Update PHI nodes and perform poor-mans SSA update here.
13115         (slpeel_tree_peel_loop_to_edge): Adjust.
13116
13117 2013-01-16  Richard Biener  <rguenther@suse.de>
13118
13119         PR tree-optimization/54767
13120         PR tree-optimization/53465
13121         * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
13122         (vrp_visit_phi_node): For PHI arguments coming via backedges
13123         drop all symbolical range information.
13124         (execute_vrp): Compute backedges.
13125
13126 2013-01-16  Richard Biener  <rguenther@suse.de>
13127
13128         * doc/install.texi: Update CLooG and ISL requirements to
13129         0.18.0 and 0.11.1.
13130
13131 2013-01-16  Christian Bruel  <christian.bruel@st.com>
13132
13133         PR target/55301
13134         * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
13135         (broken_move): Handle UNSPECV_SP_SWITCH_B.
13136         * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
13137
13138 2013-01-16  DJ Delorie  <dj@redhat.com>
13139
13140         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
13141         (UNSPECV_SP_SWITCH_E): New.
13142         (sp_switch_1): Change to an unspec.
13143         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
13144         replace $r15.
13145
13146 2013-01-16  Uros Bizjak  <ubizjak@gmail.com>
13147
13148         * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
13149         with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
13150         * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
13151         (expand_mem_thread_fence): Ditto.
13152         (expand_mem_signal_fence): Ditto.
13153         (expand_atomic_load): Ditto.
13154         (expand_atomic_store): Ditto.
13155
13156 2013-01-16  Alexandre Oliva  <aoliva@redhat.com>
13157
13158         PR rtl-optimization/55547
13159         PR rtl-optimization/53827
13160         PR debug/53671
13161         PR debug/49888
13162         * alias.c (memrefs_conflict_p): Set sizes to negative after
13163         AND adjustments.
13164
13165 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
13166
13167         PR target/55940
13168         * function.c (thread_prologue_and_epilogue_insns): Always
13169         add crtl->drap_reg to set_up_by_prologue.set, even if
13170         stack_realign_drap is false.
13171
13172 2013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13173
13174         * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
13175         and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
13176         *call): Fix indention.
13177
13178 2013-01-15  Tom de Vries  <tom@codesourcery.com>
13179
13180         PR target/55876
13181         * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
13182         Update comment.
13183
13184 2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>
13185
13186         PR rtl-optimization/55153
13187         * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
13188
13189 2013-01-15  Martin Jambor  <mjambor@suse.cz>
13190
13191         PR tree-optimization/55920
13192         * tree-sra.c (analyze_access_subtree): Do not mark non-removable
13193         accesses as grp_to_be_debug_replaced.
13194
13195 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
13196
13197         PR tree-optimization/55920
13198         * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
13199         there is non-useless type conversion needed from debug rhs to lhs,
13200         use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
13201
13202 2013-01-15  Joseph Myers  <joseph@codesourcery.com>
13203             Mikael Pettersson  <mikpe@it.uu.se>
13204
13205         PR target/43961
13206         * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
13207         Thumb.
13208         (ASM_OUTPUT_CASE_LABEL): Remove.
13209         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
13210         * final.c (shorten_branches): Update alignment of labels before
13211         jump tables if CASE_VECTOR_SHORTEN_MODE.
13212
13213 2013-01-15  Richard Biener  <rguenther@suse.de>
13214
13215         PR bootstrap/55961
13216         * system.h: Do not include gmp.h for building host tools.
13217
13218 2013-01-15  Richard Biener  <rguenther@suse.de>
13219
13220         PR middle-end/55882
13221         * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
13222         account for bitpos when computing alignment.
13223
13224 2013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>
13225
13226         * config/i386/i386-c.c (ix86_target_macros_internal): New case.
13227         (ix86_target_macros_internal): Likewise.
13228
13229         * config/i386/i386.c (m_CORE2I7): Removed.
13230         (m_CORE_HASWELL): New macro.
13231         (m_CORE_ALL): Likewise.
13232         (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
13233         (initial_ix86_arch_features): Likewise.
13234         (processor_target_table): Initializations for Core avx2.
13235         (cpu_names): New names "core-avx2".
13236         (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
13237         PROCESSOR_CORE_HASWELL.
13238         (ix86_issue_rate): New case.
13239         (ia32_multipass_dfa_lookahead): Likewise.
13240         (ix86_sched_init_global): Likewise.
13241
13242         * config/i386/i386.h (TARGET_HASWELL): New macro.
13243         (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
13244         (processor_type): New PROCESSOR_HASWELL.
13245
13246 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
13247
13248         PR tree-optimization/55955
13249         * tree-vect-loop.c (vectorizable_reduction): Give up early on
13250         *SHIFT_EXPR and *ROTATE_EXPR codes.
13251
13252         PR tree-optimization/48766
13253         * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
13254         -ftrapv disable -fwrapv.
13255
13256 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
13257
13258         PR target/55974
13259         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
13260         etc. to 1 and not to __flash.
13261         Use LL suffix for __INT24_MAX__ with -mint8.
13262         Use ULL suffix for __UINT24_MAX__ with -mint8.
13263
13264 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
13265
13266         * config/avr/avr-arch.h
13267         (struct base_arch_s): Use typedef avr_arch_t instead.
13268         (struct arch_info_s): Use typedef avr_arch_info_t instead.
13269         (struct mcu_type_s): Use typedef avr_mcu_t instead.
13270         * config/avr/avr.c: Same.
13271         * config/avr/avr-devices.c: Same.
13272         * config/avr/driver-avr.c: Same.
13273         * config/avr/gen-avr-mmcu-texi.c: Same.
13274         * config/avr/avr-mcus.def: Adjust comment.
13275
13276 2013-01-14  Tejas Belagod  <tejas.belagod@arm.com>
13277
13278         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
13279         * config/aarch64/iterators.md (VALLDI): New.
13280
13281 2013-01-14  Uros Bizjak  <ubizjak@gmail.com>
13282             Andi Kleen  <ak@linux.intel.com>
13283
13284         PR target/55948
13285         * config/i386/sync.md (atomic_store<mode>_1): New pattern.
13286         (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
13287         memmodel flag.
13288
13289 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
13290
13291         * config/avr/avr-stdint.h: Remove trailing blanks.
13292         * config/avr/avr-log.h: Same.
13293         * config/avr/avr-arch.h: Same.
13294         * config/avr/avr-devices.c: Same.
13295         * config/avr/avr-dimode.md: Same.
13296         * config/avr/predicates.md: Same.
13297         * config/avr/avr-c.c: Same.  And fix typo.
13298
13299         * config/avr/avr-protos.h: Same.  And:
13300         (function_arg_regno_p): Rename to avr_function_arg_regno_p.
13301         (init_cumulative_args): Rename to avr_init_cumulative_args.
13302         (expand_prologue): Rename to avr_expand_prologue.
13303         (expand_epilogue): Rename to avr_expand_epilogue.
13304         (adjust_insn_length): Rename to avr_adjust_insn_length.
13305         (notice_update_cc): Rename to avr_notice_update_cc.
13306         (final_prescan_insn): Rename to avr_final_prescan_insn.
13307         * config/avr/avr.c: Same.
13308         * config/avr/avr.h: Same.
13309         * config/avr/avr.md: Remove trailing blanks.
13310         (prologue): Use avr_expand_prologue.
13311         (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
13312
13313 2013-01-14  Richard Biener  <rguenther@suse.de>
13314
13315         * tree-cfg.c (verify_expr_location, verify_expr_location_1,
13316         verify_location, collect_subblocks): New functions.
13317         (verify_gimple_in_cfg): Verify that locations only reference
13318         BLOCKs in the functions BLOCK tree.
13319
13320 2013-01-14  Richard Biener  <rguenther@suse.de>
13321
13322         * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
13323         PHI argument.
13324         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
13325         unshare reference.
13326         (insert_out_of_ssa_copy_on_edge): Likewise.
13327         (rewrite_close_phi_out_of_ssa): Likewise.
13328         * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
13329         debug expressions.
13330         * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
13331         propagated constants.
13332         * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
13333         can not be shared.
13334
13335 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
13336
13337         * config/avr/avr-modes.def: Add GPL copyright notice.
13338
13339 2013-01-13  Uros Bizjak  <ubizjak@gmail.com>
13340
13341         * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
13342         MEMMODEL_MASK to determine memory model.
13343         (atomic_store<mode>): Ditto from operands[2].
13344         * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
13345
13346 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
13347
13348         PR fortran/55935
13349         * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
13350         (fold_gimple_assign): Don't call unshare_expr here.
13351         (fold_ctor_reference): Call unshare_expr.
13352
13353 2013-01-13  Terry Guo  <terry.guo@arm.com>
13354
13355         * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
13356         * doc/fragments.texi: Document MULTILIB_REUSE.
13357         * gcc.c (multilib_reuse): New internal spec.
13358         (set_multilib_dir): Also search multilib from multilib_reuse.
13359         * genmultilib (tmpmultilib3): Refactor code.
13360         (tmpmultilib4): Ditto.
13361         (multilib_reuse): New multilib argument.
13362
13363 2013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>
13364
13365         * Makefile.in: Update copyright.
13366
13367 2013-01-12  Tom de Vries  <tom@codesourcery.com>
13368
13369         PR middle-end/55890
13370         * calls.c (expand_call): Check if arg_nr is valid.
13371
13372 2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
13373
13374         * doc/extend.texi (X86 Built-in Functions): Add whitespace in
13375         __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
13376         documentation.  Add missing '__' in front of
13377         __builtin_ia32_packssdw256.
13378
13379 2013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13380
13381         PR target/55719
13382         * config/s390/s390.c (s390_preferred_reload_class): Do not return
13383         NO_REGS for larl operands.
13384         (s390_reload_larl_operand): Use s390_load_address instead of
13385         emit_move_insn.
13386
13387 2013-01-11  Richard Biener  <rguenther@suse.de>
13388
13389         * tree-cfg.c (verify_node_sharing_1): Split out from ...
13390         (verify_node_sharing): ... here.
13391         (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
13392
13393 2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13394
13395         * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
13396         Substitute TREECHECKING.
13397         * configure: Regenerate.
13398         * Makefile.in (TREECHECKING): New.
13399
13400 2013-01-11  Richard Guenther  <rguenther@suse.de>
13401
13402         PR tree-optimization/44061
13403         * tree-vrp.c (extract_range_basic): Compute zero as
13404         value-range for __builtin_constant_p of function parameters.
13405
13406 2013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>
13407
13408         Update copyright years.
13409
13410 2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>
13411
13412         PR rtl-optimization/55672
13413         * lra-eliminations.c (mark_not_eliminable): Permit addition with
13414         const to be eliminable.
13415
13416 2013-01-10  David Edelsohn  <dje.gcc@gmail.com>
13417
13418         * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
13419         * configure: Regenerate.
13420
13421 2013-01-10  Richard Biener  <rguenther@suse.de>
13422
13423         * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
13424
13425 2013-01-10  Richard Biener  <rguenther@suse.de>
13426
13427         PR bootstrap/55792
13428         * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
13429         locations for virtual PHI arguments.
13430         (rewrite_update_phi_arguments): Likewise.
13431
13432 2013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>
13433
13434         * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
13435         on to assembler.
13436
13437 2013-01-10  Jakub Jelinek  <jakub@redhat.com>
13438
13439         PR tree-optimization/55921
13440         * tree-complex.c (expand_complex_asm): New function.
13441         (expand_complex_operations_1): Call it for GIMPLE_ASM.
13442
13443 2013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13444
13445         PR target/55718
13446         * config/s390/s390.c (s390_symref_operand_p)
13447         (s390_loadrelative_operand_p): Merge the two functions.
13448         (s390_check_qrst_address, print_operand_address): Add parameters
13449         to s390_loadrelative_operand_p invokation.
13450         (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
13451         (s390_reload_larl_operand, s390_secondary_reload): Use
13452         s390_loadrelative_operand_p instead of s390_symref_operand_p.
13453         (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
13454
13455 2013-01-09  Mike Stump  <mikestump@comcast.net>
13456
13457         * dse.c (record_store): Remove unnecessary assert.
13458
13459 2013-01-09  Jan Hubicka  <jh@suse.cz>
13460
13461         PR tree-optimization/55569
13462         * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
13463         * cfgloop.h (scale_loop_profile): Likewise.
13464
13465 2013-01-09  Jan Hubicka  <jh@suse.cz>
13466
13467         PR lto/45375
13468         * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
13469         functions.
13470         * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
13471
13472 2013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
13473
13474         PR middle-end/55114
13475         * expr.h (maybe_emit_group_store): Declare.
13476         * expr.c (maybe_emit_group_store): New function.
13477         * builtins.c (expand_builtin_int_roundingfn): Call it.
13478         (expand_builtin_int_roundingfn_2): Likewise.
13479
13480 2013-01-09  Vladimir Makarov  <vmakarov@redhat.com>
13481
13482         PR rtl-optimization/55829
13483         * lra-constraints.c (match_reload): Add code for absent output.
13484         (curr_insn_transform): Add code for reloads of matched inputs
13485         without output.
13486
13487 2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
13488
13489         * config/i386/sse.md (*vec_interleave_highv2df): Change mode
13490         attribute of movddup insn to DF.
13491         (*vec_interleave_lowv2df): Ditto.
13492         (vec_dupv2df): Ditto.
13493
13494 2013-01-09  Jan Hubicka  <jh@suse.cz>
13495
13496         PR tree-optimiation/55875
13497         * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
13498         EVERY_ITERATION parameter.
13499         (number_of_iterations_exit): Check if exit is executed every iteration.
13500         (idx_infer_loop_bounds): Similarly here.
13501         (n_of_executions_at_most): Simplify
13502         to only test for cases where statement is dominated by the
13503         particular bound; handle correctly the "postdominance" test.
13504         (scev_probably_wraps_p): Use max loop iterations info
13505         as a global bound first.
13506
13507 2013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
13508             Nick Clifton  <nickc@redhat.com>
13509
13510         * config/v850/v850.md (cbranchsf4): New pattern.
13511         (cstoresf4): New pattern.
13512         (cbranchdf4): New pattern.
13513         (cstoredf4): New pattern.
13514         (movsicc): Disallow floating point comparisons.
13515         (cmpsf_le_insn): Fix order of operators.
13516         (cmpsf_lt_insn): Likewise.
13517         (cmpsf_eq_insn): Likewise.
13518         (cmpdf_le_insn): Likewise.
13519         (cmpdf_lt_insn): Likewise.
13520         (cmpdf_eq_insn): Likewise.
13521         (cmpsf_ge_insn): Use LE comparison.
13522         (cmpdf_ge_insn): Likewise.
13523         (cmpsf_gt_insn): Use LT comparison.
13524         (cmpdf_gt_insn): Likewise.
13525         (cmpsf_ne_insn): Delete pattern.
13526         (cmpdf_ne_insn): Delete pattern.
13527         * config/v850/v850.c (v850_gen_float_compare): Use
13528         gen_cmpdf_eq_insn for NE comparison.
13529         (v850_float_z_comparison_operator)
13530         (v850_float_nz_comparison_operator): Move from here ...
13531         * config/v850/predicates.md: ... to here.  Move GT and GE
13532         comparisons into v850_float_z_comparison_operator.
13533         * config/v850/v850-protos.h (v850_float_z_comparison_operator):
13534         Delete prototype.
13535         (v850_float_nz_comparison_operator): Likewise.
13536
13537 2013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13538
13539         * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
13540         with calls to gen_insvsi/gen_insvdi.
13541
13542 2013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13543
13544         * config/i386/i386.c (initial_ix86_tune_features): Set up
13545         X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
13546
13547 2013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
13548             Jakub Jelinek  <jakub@redhat.com>
13549
13550         PR tree-optimization/48189
13551         * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
13552         If nitercst is 0, don't predict the exit edge.
13553
13554 2013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13555
13556         * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
13557         in asm_fprintf with reg_names.
13558         (aarch64_print_operand_address): Likewise.
13559         (aarch64_return_addr): Likewise.
13560         * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
13561
13562 2013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13563
13564         * config/pa/pa.h (VAL_U6_BITS_P): Define.
13565         (INT_U6_BITS): Likewise.
13566         * config/pa/predicates.md (uint6_operand): New predicate.
13567         (shift5_operand, shift6_operand): Likewise.
13568         * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
13569         arith32_operand.
13570         (lshrdi3): Use shift6_operand.
13571         (shrpsi4, shrpdi4): New insn patterns.
13572         (extzv): Delete expander.
13573         (extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
13574         predicates in unamed zero extract patterns.  Tighten common constraint.
13575         (extv): Delete expander.
13576         (extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
13577         predicates in unamed sign extract patterns.  Tighten common constraint.
13578         (insv): Delete expander.
13579         (insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
13580         predicates in unamed insert patterns.  Tighten common constraint.
13581         Change uint32_operand predicate to uint6_operand predicate in unamed
13582         DImode pattern to insert constant values of type 1...1xxxx.
13583
13584 2013-01-04  Jan Hubicka  <jh@suse.cz>
13585
13586         PR tree-optimization/55823
13587         * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
13588         issue.
13589
13590 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
13591             Uros Bizjak  <ubizjak@gmail.com>
13592
13593         PR rtl-optimization/55845
13594         * df-problems.c (can_move_insns_across): Stop scanning at
13595         volatile_insn_p source instruction or give up if
13596         across_from .. across_to range contains any volatile_insn_p
13597         instructions.
13598
13599 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
13600
13601         * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
13602         * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
13603         Declare.
13604         * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
13605         aarch64_simd_make_constant, aarch64_expand_vector_init): New.
13606
13607 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
13608
13609         PR fortran/55341
13610         * asan.c (asan_clear_shadow): New function.
13611         (asan_emit_stack_protection): Use it.
13612
13613 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
13614
13615         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
13616         aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
13617         with tab instead of space.
13618
13619 2013-01-08  Nick Clifton  <nickc@redhat.com>
13620
13621         * config/rl78/rl78.c (rl78_expand_prologue): Always select
13622         register bank 0 at the start of an interrupt handler.
13623         * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
13624         MDBH registers.
13625
13626 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
13627
13628         * config/aarch64/aarch64-simd.md
13629         (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
13630         (aarch64_simd_bsl): Likewise.
13631         (aarch64_vcond_internal<mode>): Likewise.
13632         (vcond<mode><mode>): Likewise.
13633         (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
13634         * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
13635
13636 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
13637
13638         * config/aarch64/aarch64-builtins.c
13639         (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
13640
13641 2013-01-08  Martin Jambor  <mjambor@suse.cz>
13642
13643         PR debug/55579
13644         * tree-sra.c (analyze_access_subtree): Return true also after
13645         potentially creating a debug-only replacement.
13646
13647 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
13648
13649         PR middle-end/55890
13650         * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
13651
13652         PR tree-optimization/54120
13653         * tree-vrp.c (range_fits_type_p): Don't allow
13654         src_precision < precision from signed vr to unsigned_p
13655         if vr->min or vr->max is negative.
13656         (simplify_float_conversion_using_ranges): Test can_float_p
13657         against CODE_FOR_nothing.
13658
13659 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
13660             Richard Biener  <rguenther@suse.de>
13661
13662         PR middle-end/55851
13663         * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
13664         types instead of just INTEGER_TYPE types.
13665
13666 2013-01-07  Mark Kettenis  <kettenis@openbsd.org>
13667
13668         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
13669         TF_SIZE): Define.
13670
13671 2013-01-07  Steve Ellcey  <sellcey@mips.com>
13672
13673         PR target/42661
13674         * config/mips/mips.opt: Change mad to mmad to match documentation.
13675
13676 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13677
13678         PR target/55897
13679         * doc/extend.texi (AVR Named Address Spaces): __memx goes into
13680         .progmemx.data now.
13681
13682 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13683
13684         PR target/55897
13685         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
13686         (avr_addrspace_t): Add .section_name field.
13687         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
13688         array size.
13689         (avr_addrspace): Same.  Initialize .section_name.  Remove last
13690         NULL entry.  Put __memx into .progmemx.data.
13691         (progmem_section_prefix): Remove.
13692         (avr_asm_init_sections): No need to initialize progmem_section.
13693         (avr_asm_named_section): Use avr_addrspace[].section_name to get
13694         section name prefix.
13695         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
13696         retrieve the progmem section.
13697         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
13698         boundary to run over avr_addrspace[].
13699         (avr_register_target_pragmas): Ditto.
13700
13701 2013-01-06  Jakub Jelinek  <jakub@redhat.com>
13702
13703         * varasm.c (output_constant_def_contents): For asan_protect_global
13704         protected strings, adjust DECL_ALIGN if needed, before testing for
13705         anchored symbols.
13706         (place_block_symbol): Adjust size for asan protected STRING_CSTs if
13707         TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
13708         normal decls.
13709         (output_object_block): For asan protected decls, emit asan padding
13710         after their contents.
13711         * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
13712         (asan_finish_file): Test it here instead.
13713
13714 2013-01-07  Nick Clifton  <nickc@redhat.com>
13715             Matthias Klose  <doko@debian.org>
13716             Doug Kwan  <dougkwan@google.com>
13717             H.J. Lu  <hongjiu.lu@intel.com>
13718
13719         PR driver/55470
13720         * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
13721
13722         * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
13723
13724         * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
13725
13726         * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
13727
13728         * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
13729
13730 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13731
13732         PR target/54461
13733         * doc/install.texi (Cross-Compiler-Specific Options): Document
13734         --with-avrlibc.
13735
13736 2013-01-07  Tejas Belagod  <tejas.belagod@arm.com>
13737
13738         * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
13739         vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
13740         vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
13741         vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
13742         vqmovun_high_s64): Fix source operand number and update copyright.
13743
13744 2013-01-07  Richard Biener  <rguenther@suse.de>
13745
13746         PR middle-end/55890
13747         * gimple.h (gimple_call_builtin_p): New overload.
13748         * gimple.c (validate_call): New function.
13749         (gimple_call_builtin_p): Likewise.
13750         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13751         Use gimple_call_builtin_p.
13752         (find_func_clobbers): Likewise.
13753         * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
13754         (strlen_optimize_stmt): Likewise.
13755
13756 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
13757
13758         * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
13759         (vld1q_dup_*): Likewise.
13760         (vld1_*): Likewise.
13761         (vld1q_*): Likewise.
13762         (vld1_lane_*): Likewise.
13763         (vld1q_lane_*): Likewise.
13764
13765 2013-01-07  Richard Biener  <rguenther@suse.de>
13766
13767         * lto-streamer.h (LTO_minor_version): Bump to 2.
13768
13769 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
13770
13771         * config/aarch64/aarch64-protos.h
13772         (aarch64_const_double_zero_rtx_p): Rename to...
13773         (aarch64_float_const_zero_rtx_p): ...this.
13774         (aarch64_float_const_representable_p): New.
13775         (aarch64_output_simd_mov_immediate): Likewise.
13776         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
13777         move immediate case.
13778         * config/aarch64/aarch64.c
13779         (aarch64_const_double_zero_rtx_p): Rename to...
13780         (aarch64_float_const_zero_rtx_p): ...this.
13781         (aarch64_print_operand): Allow printing of new constants.
13782         (aarch64_valid_floating_const): New.
13783         (aarch64_legitimate_constant_p): Check for valid floating-point
13784         constants.
13785         (aarch64_simd_valid_immediate): Likewise.
13786         (aarch64_vect_float_const_representable_p): New.
13787         (aarch64_float_const_representable_p): Likewise.
13788         (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
13789         (aarch64_output_simd_mov_immediate): New.
13790         * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
13791         (*movdf_aarch64): Likewise.
13792         * config/aarch64/constraints.md (Ufc): New.
13793         (Y): call aarch64_float_const_zero_rtx.
13794         * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
13795
13796 2013-01-07  Richard Biener  <rguenther@suse.de>
13797
13798         PR tree-optimization/55888
13799         PR tree-optimization/55862
13800         * tree-ssa-pre.c (phi_translate_1): Revert previous change.
13801         (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
13802         not if it is contained therein.
13803
13804 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13805
13806         * config/avr/t-avr: Typo.
13807
13808 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13809
13810         PR55243
13811         * config/avr/t-avr: Don't automatically rebuild
13812         $(srcdir)/config/avr/t-multilib
13813         $(srcdir)/config/avr/avr-tables.opt
13814         $(srcdir)/doc/avr-mmcu.texi
13815         (avr-mcus): New phony target to build them on request.
13816         (s-avr-mlib, s-avr-mmcu-texi): Remove.
13817         * avr/avr-mcus.def: Adjust comments.
13818
13819 2013-01-07  Uros Bizjak  <ubizjak@gmail.com>
13820
13821         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
13822
13823 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13824
13825         * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
13826
13827 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13828
13829         * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
13830
13831 2013-01-05  David Edelsohn  <dje.gcc@gmail.com>
13832
13833         * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
13834         to generate profiling.
13835         * config/rs6000/aix64.h (LIB_SPEC): Same.
13836
13837 2013-01-04  Andrew Pinski  <apinski@cavium.com>
13838
13839         * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
13840         New function.
13841         (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13842
13843 2013-01-04  Uros Bizjak  <ubizjak@gmail.com>
13844
13845         * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
13846         unconditionally.
13847         (ix86_expand_move): Ditto.
13848         (ix86_zero_extend_to_Pmode): Ditto.
13849         (ix86_expand_call): Ditto.
13850         (ix86_expand_special_args_builtin): Ditto.
13851         (ix86_expand_builtin): Ditto.
13852
13853 2013-01-04  Richard Biener  <rguenther@suse.de>
13854
13855         PR tree-optimization/55862
13856         * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
13857         translating them through PHI nodes.
13858
13859 2013-01-04  Martin Jambor  <mjambor@suse.cz>
13860
13861         PR tree-optimization/55755
13862         * tree-sra.c (sra_modify_assign): Do not check that an access has no
13863         children when trying to avoid producing a VIEW_CONVERT_EXPR.
13864
13865 2013-01-04  Marek Polacek  <polacek@redhat.com>
13866
13867         PR middle-end/55859
13868         * opts.c (default_options_optimization): Clarify error message.
13869
13870 2013-01-04  Richard Biener  <rguenther@suse.de>
13871
13872         PR middle-end/55863
13873         * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
13874         reassociation.
13875
13876 2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13877
13878         PR target/53789
13879         * config/pa/pa.md (movsi): Revert previous change.
13880         * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
13881         references.
13882
13883 2013-01-03  Richard Henderson  <rth@redhat.com>
13884
13885         * config/i386/i386.c (ix86_expand_move): Always assign to op1
13886         after eliminating TLS symbols.
13887
13888 2013-01-03  Marc Glisse  <marc.glisse@inria.fr>
13889
13890         PR bootstrap/50167
13891         * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
13892         * graphite-poly.c (debug_gmp_value): Likewise.
13893
13894 2013-01-03  Uros Bizjak  <ubizjak@gmail.com>
13895
13896         PR target/55712
13897         * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
13898         selected code model, define __code_mode_small__, __code_model_medium__,
13899         __code_model_large__, __code_model_32__ or __code_model_kernel__.
13900         * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
13901         xchg temporary register with %k.  Declare temporary register as
13902         early clobbered.
13903         [__x86_64__]: For medium and large code models, preserve %rbx register.
13904
13905 2013-01-03  Richard Biener  <rguenther@suse.de>
13906
13907         * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
13908         (dump_subscript): Adjust.
13909         (finalize_ddr_dependent): Do not dump redundant info.
13910         (analyze_siv_subscript): Adjust.
13911         (subscript_dependence_tester): Likewise.
13912         (compute_affine_dependence): Likewise.
13913
13914 2013-01-03  Richard Biener  <rguenther@suse.de>
13915
13916         Revert
13917         2013-01-03  Richard Biener  <rguenther@suse.de>
13918
13919         PR tree-optimization/55857
13920         * tree-vect-stmts.c (vectorizable_load): Do not setup
13921         re-alignment for invariant loads.
13922
13923         2013-01-02  Richard Biener  <rguenther@suse.de>
13924
13925         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
13926         invariant load do not generate a vector load from the scalar location.
13927
13928 2013-01-03  Richard Biener  <rguenther@suse.de>
13929
13930         * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
13931         for not vectorizing.
13932         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
13933         not build INDIRECT_REFs, call get_name once only.
13934         (vect_create_data_ref_ptr): Likewise.  Dump base object kind
13935         based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
13936
13937 2013-01-03  Richard Biener  <rguenther@suse.de>
13938
13939         PR tree-optimization/55857
13940         * tree-vect-stmts.c (vectorizable_load): Do not setup
13941         re-alignment for invariant loads.
13942
13943 2013-01-03  Richard Biener  <rguenther@suse.de>
13944
13945         PR lto/55848
13946         * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
13947         prefer a built-in decl.
13948
13949 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
13950
13951         * gcc.c (process_command): Update copyright notice dates.
13952         * gcov.c (print_version): Likewise.
13953         * gcov-dump.c (print_version): Likewise.
13954
13955         PR rtl-optimization/55838
13956         * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
13957         iv0.step, iv1.step and step.
13958
13959 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
13960             Marc Glisse  <marc.glisse@inria.fr>
13961
13962         PR tree-optimization/55832
13963         * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
13964         ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
13965         integer_{one,zero}_node.
13966
13967 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
13968
13969         PR debug/54402
13970         * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
13971         * var-tracking.c (reverse_op): Don't add reverse ops to
13972         VALUEs that have already
13973         PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
13974
13975 2013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
13976
13977         * doc/contrib.texi: Note years as release manager for Mark Mitchell.
13978
13979 2013-01-02  Teresa Johnson  <tejohnson@google.com>
13980
13981         * dumpfile.c (dump_loc): Print filename with location.
13982         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
13983         new location_t parameter to emit complete unroll message with
13984         new dump framework.
13985         (canonicalize_loop_induction_variables): Compute loops location
13986         and pass to try_unroll_loop_completely.
13987         * loop-unroll.c (report_unroll_peel): New function.
13988         (peel_loops_completely): Use new dump format with location
13989         for main dumpfile message, and invoke report_unroll_peel on success.
13990         (decide_unrolling_and_peeling): Ditto.
13991         (decide_peel_once_rolling): Remove old dumpfile message subsumed
13992         by report_unroll_peel.
13993         (decide_peel_completely): Ditto.
13994         (decide_unroll_constant_iterations): Ditto.
13995         (decide_unroll_runtime_iterations): Ditto.
13996         (decide_peel_simple): Ditto.
13997         (decide_unroll_stupid): Ditto.
13998         * cfgloop.c (get_loop_location): New function.
13999         * cfgloop.h (get_loop_location): Declare.
14000
14001 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
14002
14003         * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
14004         NULL.
14005
14006 2013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14007
14008         PR middle-end/55198
14009         * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
14010         BLKmode objects when EXPAND_MEMORY is specified.
14011
14012 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
14013
14014         * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
14015         in loop predicate.
14016         (fold_builtin_cpu): Do not share cpu model decls across statements.
14017
14018 2013-01-02  Jason Merrill  <jason@redhat.com>
14019
14020         PR c++/55804
14021         * tree.c (build_array_type_1): Revert earlier change.
14022
14023 2013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>
14024
14025         * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
14026         "cortex-a57".
14027         * config/aarch64/aarch64-tune.md: Re-generate.
14028
14029 2013-01-02  Richard Biener  <rguenther@suse.de>
14030
14031         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
14032         invariant load do not generate a vector load from the scalar location.
14033
14034 2013-01-02  Richard Biener  <rguenther@suse.de>
14035
14036         PR bootstrap/55784
14037         * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
14038         * configure: Regenerate.
14039
14040 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
14041
14042         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
14043         (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
14044         (expand_builtin_int_roundingfn_2): Keep the original target around
14045         for the fallback case.
14046
14047 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
14048
14049         * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
14050         to be clear for sign changes.
14051
14052 2013-01-01  Jan Hubicka  <jh@suse.cz>
14053
14054         * ipa-inline-analysis.c: Fix formatting.
14055
14056 2013-01-01  Jakub Jelinek  <jakub@redhat.com>
14057
14058         PR tree-optimization/55831
14059         * tree-vect-loop.c (get_initial_def_for_induction): Use
14060         gsi_after_labels instead of gsi_start_bb.
14061 \f
14062 Copyright (C) 2013 Free Software Foundation, Inc.
14063
14064 Copying and distribution of this file, with or without modification,
14065 are permitted in any medium without royalty provided the copyright
14066 notice and this notice are preserved.