re PR tree-optimization/57539 (ice in ipa_edge_duplication_hook)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2013-06-24  Martin Jambor  <mjambor@suse.cz>
2
3         PR tree-optimization/57539
4         * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
5         global.inlined_to of the new node to it.  All callers changed.
6         * ipa-inline-transform.c (clone_inlined_nodes): New variable
7         inlining_into, pass it to cgraph_clone_node.
8         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
9         ipa_free_edge_args_substructures.
10         (ipa_edge_duplication_hook): Only add edges from inlined nodes to
11         rdesc linked list.  Do not assert rdesc edges have inlined caller.
12         Assert we have found an rdesc in the rdesc list.
13
14 2013-06-24  Richard Biener  <rguenther@suse.de>
15
16         * pointer-set.h (struct pointer_set_t): Move here from
17         pointer-set.c.
18         (pointer_set_lookup): Declare.
19         (class pointer_map): New template class implementing a
20         generic pointer to T map.
21         (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
22         pointer_map<T>::contains, pointer_map<T>::insert,
23         pointer_map<T>::traverse): New functions.
24         * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
25         (pointer_set_lookup): New function.
26         (pointer_set_contains): Use pointer_set_lookup.
27         (pointer_set_insert): Likewise.
28         (insert_aux): Remove.
29         (struct pointer_map_t): Embed a pointer_set_t.
30         (pointer_map_create): Adjust.
31         (pointer_map_destroy): Likewise.
32         (pointer_map_contains): Likewise.
33         (pointer_map_insert): Likewise.
34         (pointer_map_traverse): Likewise.
35         * tree-streamer.h (struct streamer_tree_cache_d): Use a
36         pointer_map<unsigned> instead of a pointer_map_t.
37         * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
38         (streamer_tree_cache_lookup): Likewise.
39         (streamer_tree_cache_create): Likewise.
40         (streamer_tree_cache_delete): Likewise.
41         * lto-streamer.h (struct lto_tree_ref_encoder): Use a
42         pointer_map<unsigned> instead of a pointer_map_t.
43         (lto_init_tree_ref_encoder): Adjust.
44         (lto_destroy_tree_ref_encoder): Likewise.
45         * lto-section-out.c (lto_output_decl_index): Likewise.
46         (lto_record_function_out_decl_state): Likewise.
47         * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
48
49 2013-06-24  Richard Biener  <rguenther@suse.de>
50
51         PR tree-optimization/57488
52         * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
53
54 2013-06-24  Alan Modra  <amodra@gmail.com>
55
56         * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
57         (gen_easy_altivec_constant): Likewise.
58         * config/rs6000/predicates.md (easy_vector_constant_add_self,
59         easy_vector_constant_msb): Likewise.
60
61 2013-06-23  Jakub Jelinek  <jakub@redhat.com>
62
63         PR target/57688
64         * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
65         add missing return true.
66
67 2013-06-23  Oleg Endo <olegendo@gcc.gnu.org>
68
69         PR target/52483
70         * config/sh/predicates.md (general_extend_operand): Invoke
71         general_movsrc_operand for memory operands.
72         (general_movsrc_operand): Allow reg+reg addressing, do not use
73         general_operand for memory operands.
74
75 2013-06-23  Sriraman Tallam  <tmsriram@google.com>
76
77         * config/i386/i386.c (ix86_pragma_target_parse):  Restore target
78         when current target options does not apply.
79         * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
80         * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
81         * config/i386/bmiintrin.h: Pass appropriate target attributes to header.
82         * config/i386/mmintrin.h: Ditto.
83         * config/i386/nmmintrin.h: Ditto.
84         * config/i386/avx2intrin.h: Ditto.
85         * config/i386/fxsrintrin.h: Ditto.
86         * config/i386/tbmintrin.h: Ditto.
87         * config/i386/xsaveintrin.h: Ditto.
88         * config/i386/f16cintrin.h: Ditto.
89         * config/i386/xtestintrin.h: Ditto.
90         * config/i386/xsaveoptintrin.h: Ditto.
91         * config/i386/bmi2intrin.h: Ditto.
92         * config/i386/lzcntintrin.h: Ditto.
93         * config/i386/smmintrin.h: Ditto.
94         * config/i386/wmmintrin.h: Ditto.
95         * config/i386/x86intrin.h: Remove all header include guards.
96         * config/i386/prfchwintrin.h: Ditto.
97         * config/i386/pmmintrin.h: Ditto.
98         * config/i386/tmmintrin.h: Ditto.
99         * config/i386/xmmintrin.h: Ditto.
100         * config/i386/popcntintrin.h: Ditto.
101         * config/i386/rdseedintrin.h: Ditto.
102         * config/i386/ammintrin.h: Ditto.
103         * config/i386/emmintrin.h: Ditto.
104         * config/i386/immintrin.h: Remove all header include guards.
105         * config/i386/fma4intrin.h: Ditto.
106         * config/i386/lwpintrin.h: Ditto.
107         * config/i386/xopintrin.h: Ditto.
108         * config/i386/ia32intrin.h: Ditto.
109         * config/i386/avxintrin.h: Ditto.
110         * config/i386/rtmintrin.h: Ditto.
111         * config/i386/fmaintrin.h: Ditto.
112         * config/i386/mm3dnow.h: Ditto.
113
114 2013-06-22  Sriraman Tallam  <tmsriram@google.com>
115
116         * common/config/i386/i386-common.c: Handle LZCNT.
117
118 2013-06-22  Andi Kleen  <ak@linux.intel.com>
119
120         * doc/extend.texi: Use __atomic_store_n instead of
121         __atomic_store in HLE example.
122
123 2013-06-22  Oleg Endo <olegendo@gcc.gnu.org>
124
125         * config/sh/sh.c: Remove <cstdlib> workaround.
126
127 2013-06-21  Andi Kleen  <ak@linux.intel.com>
128
129         * doc/extend.texi: Dont use __atomic_clear in HLE
130         example.  Fix typo.
131
132 2013-06-21  Andi Kleen  <ak@linux.intel.com>
133
134         * doc/extend.texi: Document that __atomic_clear and
135           __atomic_test_and_set should only be used with bool.
136
137 2013-06-20  Jan Hubicka  <jh@suse.cz>
138
139         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
140         types_same_for_odr.
141         * tree.c (decls_same_for_odr): New function.
142         (same_for_edr): New function.
143         (types_same_for_odr): New function.
144         (get_binfo_at_offset): Use it.
145         * tree.h (types_same_for_odr): Declare.
146
147 2013-06-20  Oleg Endo <olegendo@gcc.gnu.org>
148             Jason Merrill  <jason@redhat.com>
149
150         * system.h: Include <cstdlib> as well as <stdlib.h>.
151
152 2013-06-20  Uros Bizjak  <ubizjak@gmail.com>
153
154         PR target/57655
155         * config/i386/i386.c (construct_container): Report error if
156         long double is used with disabled x87 float returns.
157
158 2013-06-20  Jan Hubicka  <jh@suse.cz>
159
160         * lto-cgraph.c (input_symtab): Do not set cgraph state.
161
162 2013-06-20  Joern Rennecke <joern.rennecke@embecosm.com>
163
164         PR rtl-optimization/57425
165         PR rtl-optimization/57569
166         * alias.c (write_dependence_p): Remove parameters mem_mode and
167         canon_mem_addr.  Add parameters x_mode, x_addr and x_canonicalized.
168         Changed all callers.
169         (canon_anti_dependence): Get comments and semantics in sync.
170         Add parameter mem_canonicalized.  Changed all callers.
171         * rtl.h (canon_anti_dependence): Update prototype.
172
173 2013-06-20  Richard Biener  <rguenther@suse.de>
174
175         * data-streamer-in.c (streamer_read_uhwi): Optimize single
176         byte case, inline streamer_read_uchar and defer section
177         overrun check.
178
179 2013-06-20  Richard Biener  <rguenther@suse.de>
180
181         PR tree-optimization/57584
182         * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
183         SSA names into the expanded expression that take part in
184         abnormal coalescing.
185
186 2013-06-19    <singhai@google.com>
187
188         * gcov.c (print_usage): Handle new option.
189         (process_args): Ditto.
190         (get_gcov_intermediate_filename): New function.
191         (output_intermediate_file): New function.
192         (output_gcov_file): New function
193         (generate_results): Handle new option.
194         (release_function): Relase demangled name.
195         (read_graph_file): Handle demangled name.
196         (output_lines): Ditto.
197         * doc/gcov.texi: Document gcov intermediate format.
198
199 2013-06-19  Vladimir Makarov  <vmakarov@redhat.com>
200
201         PR bootstrap/57604
202         * lra.c (emit_add3_insn, emit_add2_insn): New functions.
203         (lra_emit_add): Use the functions.  Add comment about Y as an
204         address segment.
205
206 2013-06-19  David Edelsohn  <dje.gcc@gmail.com>
207
208         PR driver/57652
209         * collect2.c (collect_atexit): New.
210         (collect_exit): Delete.
211         (main): Register collect_atexit with atexit.
212         (collect_wait): Change collect_exit to exit.
213         (do_wait): Same.
214         * collect2.h (collect_exit): Delete.
215         * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
216
217 2013-06-19  Wei Mi  <wmi@google.com>
218
219         PR rtl-optimization/57518
220         * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
221         if regno is used in paradoxical subreg.
222         (update_equiv_regs): Check pdx_subregs[regno] before
223         set a reg to be equivalent with a mem.
224
225 2013-06-19  Matthias Klose  <doko@ubuntu.com>
226
227         PR driver/57651
228         * file-find.h (find_a_file): Add a mode parameter.
229         * file-find.c (find_a_file): Likewise.
230         * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
231         with X_OK for the executables.
232         * collect2.c (main): Call find_a_file with X_OK.
233
234 2013-06-19  Steve Ellcey  <sellcey@mips.com>
235
236         PR target/56942
237         * config/mips/mips.md (casesi_internal_mips16_<mode>):
238         Use NEXT_INSN instead of next_real_insn.
239
240 2013-06-19  Jan Hubicka  <jh@suse.cz>
241
242         * cgraph.h (const_value_known_p): Replace by ...
243         (ctor_for_folding): .. this one.
244         * cgraphunit.c (process_function_and_variable_attributes): Use it.
245         * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
246         * expr.c (expand_expr_real_1): Likewise.
247         (string_constant): Likewise.
248         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
249         * ipa.c (process_references): Likewise.
250         (symtab_remove_unreachable_nodes): Likewise.
251         * ipa-inline-analysis.c (param_change_prob): Likewise.
252         * gimple-fold.c (canonicalize_constructor_val): Likewise.
253         (get_base_constructor): Likwise.
254         * varpool.c (varpool_remove_node): Likewise.
255         (varpool_remove_initializer): LIkewise.
256         (dump_varpool_node): LIkwise.
257         (const_value_known_p): Rewrite to ...
258         (ctor_for_folding): ... this one.
259
260 2013-06-19  Jakub Jelinek  <jakub@redhat.com>
261
262         PR driver/57651
263         * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
264         PERSONALITY in $PATH derived prefixes.
265
266 2013-06-19  Jeff Law  <law@redhat.com>
267
268         * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
269         in comment.
270
271         * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
272         (simplify_bitwise_binary): Use it to simpify certain binary ops on
273         booleans.
274
275 2013-06-19  Sofiane Naci  <sofiane.naci@arm.com>
276
277         * config/arm/vfp.md: Move VFP instruction classification documentation
278         to ...
279         * config/arm/arm.md: ... here.  Update instruction classification
280         documentation.
281
282 2013-06-19  Richard Earnshaw  <rearnsha@arm.com>
283
284         arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
285         (peepholes for eq(reg, not-0)): Ensure condition register is dead after
286         pattern.  Use more efficient sequences on ARMv5 and Thumb2.
287
288 2013-06-19  Steven Bosscher  <steven@gcc.gnu.org>
289
290         PR target/57609
291         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
292         with NEXT_INSN.  Use tablejump_p to check for jump table data
293         insns.
294
295 2013-06-19  Paolo Carlini  <paolo.carlini@oracle.com>
296
297         PR c++/56544
298         * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
299         that now in C++ the value is correct per the C++ standards.
300
301 2013-06-19  Richard Biener  <rguenther@suse.de>
302
303         * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
304         for global context.
305
306 2013-06-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
307
308         Revert:
309         2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
310
311         PR target/57609
312         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
313         with next_active_insn.
314
315 2013-06-18  Sriraman Tallam  <tmsriram@google.com>
316
317         * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
318         functions are inlined during failures to flag an error.
319         * tree-inline.c (expand_call_inline): Allow the error to be flagged
320         in early inline pass.
321
322 2013-06-18  H.J. Lu  <hongjiu.lu@intel.com>
323
324         * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
325         in comments.
326
327 2013-06-18  Julian Brown  <julian@codesourcery.com>
328
329         * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
330         Permit virtual register pre-reload if !strict.
331         (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
332         change.
333         * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
334         prototype.
335         * config/arm/neon.md (movmisalign<mode>): Use
336         neon_perm_struct_or_reg_operand instead of
337         neon_struct_or_register_operand.
338         (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
339         neon_permissive_struct_operand instead of neon_struct_operand.
340         * config/arm/constraints.md (Un, Um, Us): Adjust calls to
341         neon_vector_mem_operand.
342         * config/arm/predicates.md (neon_struct_operand): Adjust call to
343         neon_vector_mem_operand.
344         (neon_permissive_struct_operand): New.
345         (neon_struct_or_register_operand): Rename to...
346         (neon_perm_struct_or_reg_operand): This. Adjust call to
347         neon_vector_mem_operand.
348
349 2013-06-18  Richard Biener  <rguenther@suse.de>
350
351         * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
352         * lto-streamer.h: Include pointer-set.h.
353         (struct lto_decl_slot): Remove.
354         (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
355         Remove next_index entry.
356         (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
357         lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
358         (lto_init_tree_ref_encoder): Adjust.
359         (lto_destroy_tree_ref_encoder): Likewise.
360         * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
361         lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
362         (lto_output_decl_index): Adjust.
363         (lto_new_out_decl_state): Likewise.
364         (lto_record_function_out_decl_state): Likewise.
365         * lto-streamer-out.c (copy_function): Likewise.
366
367 2013-06-18  Richard Biener  <rguenther@suse.de>
368
369         * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
370         * cgraphunit.c: Include cfgloop.h.
371         (init_lowered_empty_function): Initialize the loop tree.
372         (assemble_thunk): Insert new BBs into loops.
373
374 2013-06-18  Richard Biener  <rguenther@suse.de>
375
376         * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
377         * tree-streamer.c (streamer_tree_cache_create): Make maintaining
378         the map from cache entry to cache index optional.
379         (streamer_tree_cache_replace_tree): Adjust accordingly.
380         (streamer_tree_cache_append): Likewise.
381         (streamer_tree_cache_delete): Likewise.
382         * lto-streamer-in.c (lto_data_in_create): Do not maintain the
383         streamer cache map from cache entry to cache index.
384         * lto-streamer-out.c (create_output_block): Adjust.
385
386 2013-06-18  Sofiane Naci  <sofiane.naci@arm.com>
387
388         * config/arm/arm.md (attribute "insn"): Move multiplication and
389         division attributes to...
390         (attribute "type"): ... here.  Remove mult.
391         (attribute "mul32"): New attribute.
392         (attribute "mul64"): Add umaal.
393         (*arm_mulsi3): Update attributes.
394         (*arm_mulsi3_v6): Likewise.
395         (*thumb_mulsi3): Likewise.
396         (*thumb_mulsi3_v6): Likewise.
397         (*mulsi3_compare0): Likewise.
398         (*mulsi3_compare0_v6): Likewise.
399         (*mulsi_compare0_scratch): Likewise.
400         (*mulsi_compare0_scratch_v6): Likewise.
401         (*mulsi3addsi): Likewise.
402         (*mulsi3addsi_v6): Likewise.
403         (*mulsi3addsi_compare0): Likewise.
404         (*mulsi3addsi_compare0_v6): Likewise.
405         (*mulsi3addsi_compare0_scratch): Likewise.
406         (*mulsi3addsi_compare0_scratch_v6): Likewise.
407         (*mulsi3subsi): Likewise.
408         (*mulsidi3adddi): Likewise.
409         (*mulsi3addsi_v6): Likewise.
410         (*mulsidi3adddi_v6): Likewise.
411         (*mulsidi3_nov6): Likewise.
412         (*mulsidi3_v6): Likewise.
413         (*umulsidi3_nov6): Likewise.
414         (*umulsidi3_v6): Likewise.
415         (*umulsidi3adddi): Likewise.
416         (*umulsidi3adddi_v6): Likewise.
417         (*smulsi3_highpart_nov6): Likewise.
418         (*smulsi3_highpart_v6): Likewise.
419         (*umulsi3_highpart_nov6): Likewise.
420         (*umulsi3_highpart_v6): Likewise.
421         (mulhisi3): Likewise.
422         (*mulhisi3tb): Likewise.
423         (*mulhisi3bt): Likewise.
424         (*mulhisi3tt): Likewise.
425         (maddhisi4): Likewise.
426         (*maddhisi4tb): Likewise.
427         (*maddhisi4tt): Likewise.
428         (maddhidi4): Likewise.
429         (*maddhidi4tb): Likewise.
430         (*maddhidi4tt): Likewise.
431         (divsi3): Likewise.
432         (udivsi3): Likewise.
433         * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
434         (thumb2_mulsi_short_compare0): Likewise.
435         (thumb2_mulsi_short_compare0_scratch): Likewise.
436         * config/arm/arm1020e.md (1020mult1): Update attribute change.
437         (1020mult2): Likewise.
438         (1020mult3): Likewise.
439         (1020mult4): Likewise.
440         (1020mult5): Likewise.
441         (1020mult6): Likewise.
442         * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
443         change.
444         (cortex_a15_mult64): Likewise.
445         (cortex_a15_sdiv): Likewise.
446         (cortex_a15_udiv): Likewise.
447         * config/arm/arm1026ejs.md (mult1): Update attribute change.
448         (mult2): Likewise.
449         (mult3): Likewise.
450         (mult4): Likewise.
451         (mult5): Likewise.
452         (mult6): Likewise.
453         * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
454         (pj4_ir_div): Likewise.
455         * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
456         (11_mult2): Likewise.
457         (11_mult3): Likewise.
458         (11_mult4): Likewise.
459         (11_mult5): Likewise.
460         (11_mult6): Likewise.
461         (11_mult7): Likewise.
462         * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
463         (cortex_a8_mla): Likewise.
464         (cortex_a8_mull): Likewise.
465         (cortex_a8_smulwy): Likewise.
466         (cortex_a8_smlald): Likewise.
467         * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
468         * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
469         (cortex_r4_mul_3): Likewise.
470         (cortex_r4_mla_4): Likewise.
471         (cortex_r4_mla_3): Likewise.
472         (cortex_r4_smlald): Likewise.
473         (cortex_r4_mull): Likewise.
474         (cortex_r4_sdiv): Likewise.
475         (cortex_r4_udiv): Likewise.
476         * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
477         (cortex_a7_idiv): Likewise.
478         * config/arm/arm926ejs.md (9_mult1): Update attribute change.
479         (9_mult2): Likewise.
480         (9_mult3): Likewise.
481         (9_mult4): Likewise.
482         (9_mult5): Likewise.
483         (9_mult6): Likewise.
484         * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
485         (cortex_a53_sdiv): Likewise.
486         (cortex_a53_udiv): Likewise.
487         * config/arm/fa726te.md (726te_mult_op): Update attribute change.
488         * config/arm/fmp626.md (mp626_mult1): Update attribute change.
489         (mp626_mult2): Likewise.
490         (mp626_mult3): Likewise.
491         (mp626_mult4): Likewise.
492         * config/arm/fa526.md (526_mult1): Update attribute change.
493         (526_mult2): Likewise.
494         * config/arm/arm-generic.md (mult): Update attribute change.
495         (mult_ldsched_strongarm): Likewise.
496         (mult_ldsched): Likewise.
497         (multi_cycle): Likewise.
498         * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
499         * config/arm/fa606te.md (606te_mult1): Update attribute change.
500         (606te_mult2): Likewise.
501         (606te_mult3): Likewise.
502         (606te_mult4): Likewise.
503         * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
504         (cortex_a9_mac16): Likewise.
505         (cortex_a9_multiply): Likewise.
506         (cortex_a9_mac): Likewise.
507         (cortex_a9_multiply_long): Likewise.
508         * config/arm/fa626te.md (626te_mult1): Update attribute change.
509         (626te_mult2): Likewise.
510         (626te_mult3): Likewise.
511         (626te_mult4): Likewise.
512
513 2013-06-18  Richard Biener  <rguenther@suse.de>
514
515         PR lto/57334
516         * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
517
518 2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
519
520         PR target/57609
521         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
522         with next_active_insn.
523
524 2013-06-18  Alan Modra  <amodra@gmail.com>
525
526         * config/rs6000/rs6000.h (enum data_align): New.
527         (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
528         (DATA_ABI_ALIGNMENT): Define.
529         (CONSTANT_ALIGNMENT): Correct comment.
530         * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
531         * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
532
533 2013-06-17  David Malcolm  <dmalcolm@redhat.com>
534
535         * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
536         ATTRIBUTE_UNUSED marking.
537
538 2013-06-17  Sofiane Naci  <sofiane.naci@arm.com>
539
540         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
541         alternative and update.
542         (aarch64_dup_lanedi): Delete.
543         * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
544         * config/aarch64/aarch64-simd-builtins.def: Update.
545
546 2013-06-17  Richard Biener  <rguenther@suse.de>
547
548         * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
549         (lto_input_scc): Declare.
550         (lto_input_tree_1): Likewise.
551         (struct lto_stats_d): Add num_tree_bodies_output and
552         num_pickle_refs_output.
553         * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
554         (lto_read_tree_1): Split out from ...
555         (lto_read_tree): ... this.
556         (lto_input_scc): New function.
557         (lto_input_tree_1): Split out from ...
558         (lto_input_tree): ... this.  Handle LTO_tree_scc.
559         (lto_data_in_create): Create the streamer cache without hashes.
560         * lto-streamer-out.c (create_output_block): Create the streamer
561         cache with hashes when not doing WPA.
562         (lto_write_tree_1): Split out from ...
563         (lto_write_tree): ... this.
564         (get_symbol_initial_value): New function.
565         (lto_output_tree_1): Split out from ...
566         (lto_output_tree): ... this.  Write trees as series of SCCs
567         using a DFS walk via DFS_write_tree.
568         (struct sccs, struct scc_entry): New types.
569         (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
570         (DFS_write_tree_body): New function.
571         (DFS_write_tree): Likewise.
572         (hash_tree): Likewise.
573         (scc_entry_compare): Likewise.
574         (hash_scc): Likewise.
575         (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
576         * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
577         TREE_CHAIN as regular reference.
578         (streamer_read_integer_cst): Remove.
579         (streamer_get_pickled_tree): Adjust.
580         * tree-streamer-out.c (streamer_write_chain): Disable streaming
581         of DECL_EXTERNALs in BLOCK_VARS for now.
582         (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
583         reference.
584         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
585         Add hash value argument and record that if hashes are recorded
586         in the cache.
587         (streamer_tree_cache_insert_1): Adjust.
588         (streamer_tree_cache_insert): Likewise.
589         (streamer_tree_cache_insert_at): Rename to ...
590         (streamer_tree_cache_replace_tree): ... this and adjust.
591         (streamer_tree_cache_append): Adjust.
592         (record_common_node): Likewise.
593         (streamer_tree_cache_create): Add argument whether to
594         record hash values together with trees.
595         (streamer_tree_cache_delete): Adjust.
596         * tree-streamer.h (struct streamer_tree_cache_d): Add
597         vector of hashes.
598         (streamer_read_integer_cst): Remove.
599         (streamer_tree_cache_insert): Adjust.
600         (streamer_tree_cache_append): Likewise.
601         (streamer_tree_cache_insert_at): Rename to ...
602         (streamer_tree_cache_replace_tree): ... this and adjust.
603         (streamer_tree_cache_create): Add argument whether to record hashes.
604         (streamer_tree_cache_get): Rename to ...
605         (streamer_tree_cache_get_tree): ... this.
606         (streamer_tree_cache_get_hash): New function.
607         * tree.c (cache_integer_cst): New function.
608         * tree.h (cache_integer_cst): Declare.
609         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
610         * lto-symtab.c (lto_varpool_replace_node): Only release
611         DECL_INITIAL of non-prevailing decls.
612         * varpool.c (varpool_remove_initializer): Do not release
613         DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
614
615 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
616
617         * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
618         (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
619         * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
620         (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
621         (mul<mode>3_mul3): Handle TARGET_MIPS5900.
622         (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
623         (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
624         (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
625         instead of TARGET_64BIT.
626         (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
627         Require ISA_HAS_<D>DIV.
628
629 2013-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
630
631         * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
632         (mips*-*-linux*): Move default with_llsc setting to where other
633         defaults are set.
634         (mips*-*-vxworks*): Move with_arch default from with_cpu block to
635         with_arch block.
636         (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
637         Likewise.  Remove default with_tune setting.  Move default float
638         setting to its own block.  Handle with_llsc in the same block as above.
639
640 2013-06-16  Joern Rennecke <joern.rennecke@embecosm.com>
641
642         PR rtl-optimization/57425
643         PR rtl-optimization/57569
644         * alias.c (write_dependence_p): Add new parameters mem_mode,
645         canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
646         Changed all callers.
647         (canon_anti_dependence): New function.
648         * cse.c (check_dependence): Use canon_anti_dependence.
649         * cselib.c (cselib_invalidate_mem): Likewise.
650         * rtl.h (canon_anti_dependence): Declare.
651
652 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
653
654         * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
655         * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
656         ".set mips3" for 64-bit targets.
657
658 2013-06-15  Dehao Chen  <dehao@google.com>
659
660         * tree-flow.h (gimple_check_call_matching_types): Add new argument.
661         * gimple-low.c (gimple_check_call_matching_types): Likewise.
662         (gimple_check_call_args): Likewise.
663         * value-prof.c (check_ic_target): Likewise.
664         * ipa-inline.c (early_inliner): Likewise.
665         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
666         * cgraph.c (cgraph_create_edge_1): Likewise.
667         (cgraph_make_edge_direct): Likewise.
668
669 2013-06-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
670
671         PR target/57615
672         * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
673         rs6000_output_move_128bit to handle emitting quad memory
674         operations.  Set attribute length to 8 bytes.
675
676 2013-06-14  Vidya Praveen <vidyapraveen@arm.com>
677
678         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
679         New pattern.
680         (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
681         (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
682         (aarch64_<su>mlsl<mode>): Likewise.
683
684 2013-06-14  Mike Stump  <mikestump@comcast.net>
685
686         * Makefile.in (TARGET_H): Add insn-codes.h.
687
688 2013-06-14  Alan Modra  <amodra@gmail.com>
689
690         PR middle-end/57134
691         PR middle-end/57586
692         * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
693         EXPAND_MEMORY and EXPAND_WRITE to recursive call.  Don't use
694         bitfield expansion when EXPAND_MEMORY.
695         (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
696
697 2013-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
698
699         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
700         test for clearing quad memory on 32-bit later.
701
702 2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
703
704         * fold-const.c (negate_expr_p): Handle VECTOR_CST.
705         (fold_negate_expr): Likewise.
706         (fold_real_zero_addition_p): Handle vectors.
707         (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
708
709 2013-06-14  Alan Modra  <amodra@gmail.com>
710
711         * varasm.c (force_const_mem): Revert 2013-06-07 change.
712
713 2013-06-13  Jan Hubicka  <jh@suse.cz>
714
715         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
716         Local comdats are not externally visible.
717         * symtab.c (dump_symtab_base): Dump externally visible.
718         (verify_symtab_base): Verify back links in the symtab hash.
719
720 2013-06-13  Bin Cheng  <bin.cheng@arm.com>
721
722         * fold-const.c (operand_equal_p): Consider NOP_EXPR and
723         CONVERT_EXPR as equal nodes.
724
725 2013-06-13  Bin Cheng  <bin.cheng@arm.com>
726
727         * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
728
729 2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
730
731         * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
732         Generalize to complex and vector.
733         * tree.c (build_all_ones_cst): New function.
734         * tree.h (build_all_ones_cst): Declare it.
735
736 2013-06-13  Alan Modra  <amodra@gmail.com>
737
738         * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
739         * config/rs6000/rs6000.md (signbittf2): New insn.
740         (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
741         (abstf2_internal, cmptf_internal2): Likewise.
742         * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
743
744 2013-06-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
745             Pat Haugen <pthaugen@us.ibm.com>
746             Peter Bergner <bergner@vnet.ibm.com>
747
748         * config/rs6000/rs6000.c (emit_load_locked): Add support for
749         power8 byte, half-word, and quad-word atomic instructions.
750         (emit_store_conditional): Likewise.
751         (rs6000_expand_atomic_compare_and_swap): Likewise.
752         (rs6000_expand_atomic_op): Likewise.
753
754         * config/rs6000/sync.md (larx): Add new modes for power8.
755         (stcx): Likewise.
756         (AINT): New mode iterator to include TImode as well as normal
757         integer modes on power8.
758         (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
759         that VSX registers are not considered.  Use AINT mode iterator
760         instead of INT1 to allow inclusion of quad word atomic operations
761         on power8.
762         (load_locked<mode>): Likewise.
763         (store_conditional<mode>): Likewise.
764         (atomic_compare_and_swap<mode>): Likewise.
765         (atomic_exchange<mode>): Likewise.
766         (atomic_nand<mode>): Likewise.
767         (atomic_fetch_<fetchop_name><mode>): Likewise.
768         (atomic_nand_fetch<mode>): Likewise.
769         (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
770         each type.
771         (ATOMIC): On power8, add QImode, HImode modes.
772         (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
773         modes that promote to SImode.
774         (load_lockedti): Convert TImode arguments to PTImode, so that we
775         get a guaranteed even/odd register pair.
776         (load_lockedpti): Likewise.
777         (store_conditionalti): Likewise.
778         (store_conditionalpti): Likewise.
779
780         * config/rs6000/rs6000.md (QHI): New mode iterator for power8
781         atomic load/store instructions.
782         (HSI): Likewise.
783
784 2013-06-12  Richard Sandiford  <rdsandiford@googlemail.com>
785
786         * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
787         loads.
788         (insn_count): New attribute, with most cases extracted from...
789         (length): ...here.  Redefine most cases in terms of insn_count.
790         (single_insn): Delete.
791         (can_delay): Use insn_count to check for single instructions.
792         (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
793         (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
794         (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
795         (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
796         (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
797         (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
798         (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
799         (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
800         (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
801         (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
802         rather than "length".
803         (tls_get_tp_<mode>): Likewise.  Remove redundant "no_delay" attribute.
804         * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
805         Use "insn_count" rather than "length".
806         * config/mips/mips-dsp.md
807         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
808         (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
809         length attributes.
810
811 2013-06-12  Marc Glisse  <marc.glisse@inria.fr>
812
813         PR tree-optimization/57361
814         * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
815
816 2013-06-12  Sofiane Naci  <sofiane.naci@arm.com>
817
818         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
819         to split.
820         (aarch64_simd_combine<mode>): New instruction expansion.
821         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
822         function prototype.
823         * config/aarch64/aarch64.c (aarch64_split_combine): New function.
824         * config/aarch64/iterators.md (Vdbl): Add entry for DF.
825
826 2013-06-12  Jan Hubicka  <jh@suse.cz>
827
828         * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
829         decl has when in streaming stage.
830         * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
831         * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
832
833 2013-06-12  Roland Stigge <stigge@antcom.de>
834
835         PR target/57578
836         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
837
838 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
839
840         PR tree-optimization/57537
841         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
842         vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
843
844 2013-06-12  Richard Biener  <rguenther@suse.de>
845
846         * data-streamer.h (streamer_write_char_stream): CSE
847         obs->current_pointer.
848         * data-streamer-out.c (streamer_write_uhwi_stream): Inline
849         streamer_write_char_stream manually and optimize the resulting loop.
850         (streamer_write_hwi_stream): Likewise.
851
852 2013-06-12  Jan Hubicka  <jh@suse.cz>
853
854         * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
855         * cgraph.h (varpool_create_empty_node): Declare.
856         * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
857         duplicated nodes.
858         * symtab.c (symtab_unregister_node): Be lax about missin entries
859         in node hash.
860         (symtab_get_node): Update comment.
861         * varpool.c (varpool_create_empty_node): Break out from ...
862         (varpool_node_for_decl): ... here.
863         * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
864
865 2013-06-12  Eric Botcazou  <ebotcazou@adacore.com>
866
867         * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
868         <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
869         part.  Use straight-line flow at the end.
870         <COMPONENT_REF>: Remove superfluous else.
871         <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
872
873 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
874
875         PR target/56564
876         * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
877         target hook even for !TREE_PUBLIC decls.  If no resolution info
878         is available, return false for common and external decls.
879
880 2013-06-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
881
882         * config/rl78/constraints.md (U): New constraint.
883         * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
884         valloc attribute.
885
886 2013-06-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
887
888         PR target/57589
889         * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
890         to allow returning address to AT_PLATFORM name.
891
892 2013-06-11  Jan Hubicka  <jh@suse.cz>
893
894         * cgraph.c (cgraph_create_function_alias): Set weakref flag.
895         * cgraph.h (symtab_node_base): Add weakref flag.
896         * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
897         (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
898         (output_weakrefs): Use weakref flag.
899         * fold-const.c (simple_operand_p): Handle WEAK.
900         * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
901         * ipa.c (varpool_externally_visible_p): Drop weakref.
902         (function_and_variable_visibility): Update comment; fix weakref
903         sanity checks; do not clear DECL_WEAK on them.
904         * lto-cgraph.c (lto_output_node): update.
905         (lto_output_varpool_node): Update.
906         (input_overwrite_node): Update.
907         (input_node): Update.
908         (input_varpool_node): Update.
909         * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
910         (lto_symtab_merge_symbols): Add sanity check.
911         (lto_symtab_prevailing_decl): Do not special case weakrefs.
912         * passes.c (rest_of_decl_compilation): Set static flag, too.
913         * symtab.c (dump_symtab_base): Dump weakref.
914         (verify_symtab_base): Sanity check weakrefs.
915         (symtab_make_decl_local): Remove duplicated code.
916         (symtab_alias_ultimate_target): Simplify.
917         * varpool.c (varpool_create_variable_alias): Set weakref flag.
918
919 2013-06-11  DJ Delorie  <dj@redhat.com>
920
921         * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
922         (rl78_unwind_word_mode): New.
923
924 2013-06-11  David Malcolm  <dmalcolm@redhat.com>
925
926         * final.c (debug_prefix_maps): Make static.
927
928 2013-06-11  David Malcolm  <dmalcolm@redhat.com>
929
930         * function.c (initial_trampoline): Remove stray copy.
931
932 2013-06-11  Sofiane Naci  <sofiane.naci@arm.com>
933
934         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
935
936 2013-06-11  Martin Jambor  <mjambor@suse.cz>
937
938         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
939         within bounds at the beginning of the function.
940
941 2013-06-11  Alan Modra  <amodra@gmail.com>
942
943         * varasm.c (get_section): Don't die on !DECL_P decl.  Tidy error
944         reporting.
945         (get_named_section): Don't NULL !DECL_P decl.
946
947 2013-06-11  Igor Zamyatin  <igor.zamyatin@intel.com>
948
949         * doc/invoke.texi (core-avx2): Document.
950         (slm): Likewise.
951         (atom): Updated with MOVBE.
952
953 2013-06-11  Richard Biener  <rguenther@suse.de>
954
955         * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
956
957 2013-06-11  Anton Blanchard  <anton@samba.org>
958
959         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
960         correct shift value in little-endian mode.
961
962 2013-06-11  Jakub Jelinek  <jakub@redhat.com>
963
964         PR target/56564
965         * varasm.c (get_variable_align): Move #endif to the right place.
966
967 2013-06-10  Cary Coutant  <ccoutant@google.com>
968
969         * dwarf2out.c (hash_external_ref): Use die_symbol or signature
970         for hash so that hash table traversal order is deterministic.
971
972 2013-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
973             Pat Haugen <pthaugen@us.ibm.com>
974             Peter Bergner <bergner@vnet.ibm.com>
975
976         * config/rs6000/vector.md (GPR move splitter): Do not split moves
977         of vectors in GPRS if they are direct moves or quad word load or
978         store moves.
979
980         * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
981         declaration.
982         (direct_move_p): Likewise.
983         (quad_load_store_p): Likewise.
984
985         * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
986         classes into bins based on the physical register type.
987         (reg_class_to_reg_type): Likewise.
988         (IS_STD_REG_TYPE): Likewise.
989         (IS_FP_VECT_REG_TYPE): Likewise.
990         (reload_fpr_gpr): Arrays to determine what insn to use if we can
991         use direct move instructions.
992         (reload_gpr_vsx): Likewise.
993         (reload_vsx_gpr): Likewise.
994         (rs6000_init_hard_regno_mode_ok): Precalculate the register type
995         information that is a simplification of register classes.  Also
996         precalculate direct move reload helpers.
997         (direct_move_p): New function to return true if the operation can
998         be done as a direct move instruciton.
999         (quad_load_store_p): New function to return true if the operation
1000         is a quad memory operation.
1001         (rs6000_legitimize_address): If quad memory, only allow register
1002         indirect for TImode addresses.
1003         (rs6000_legitimate_address_p): Likewise.
1004         (enum reload_reg_type): Delete, replace with rs6000_reg_type.
1005         (rs6000_reload_register_type): Likewise.
1006         (register_to_reg_type): Return register type.
1007         (rs6000_secondary_reload_simple_move): New helper function for
1008         secondary reload and secondary memory needed to identify anything
1009         that is a simple move, and does not need reloading.
1010         (rs6000_secondary_reload_direct_move): New helper function for
1011         secondary reload to identify cases that can be done with several
1012         instructions via the direct move instructions.
1013         (rs6000_secondary_reload_move): New helper function for secondary
1014         reload to identify moves between register types that can be done.
1015         (rs6000_secondary_reload): Add support for quad memory operations
1016         and for direct move.
1017         (rs6000_secondary_memory_needed): Likewise.
1018         (rs6000_debug_secondary_memory_needed): Change argument names.
1019         (rs6000_output_move_128bit): New function to return the move to
1020         use for 128-bit moves, including knowing about the various
1021         limitations of quad memory operations.
1022
1023         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
1024         memory operations.  call rs6000_output_move_128bit for the actual
1025         instruciton(s) to generate.
1026         (vsx_movti_64bit): Likewise.
1027
1028         * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
1029         (UNSPEC_P8V_MTVSRWZ): Likewise.
1030         (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
1031         (UNSPEC_P8V_MTVSRD): Likewise.
1032         (UNSPEC_P8V_XXPERMDI): Likewise.
1033         (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
1034         (UNSPEC_FUSION_GPR): Likewise.
1035         (FMOVE128_GPR): New iterator for direct move.
1036         (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
1037         (f32_sv): Likewise.
1038         (f32_dm): Likewise.
1039         (zero_extend<mode>di2_internal1): Add support for power8 32-bit
1040         loads and direct move instructions.
1041         (zero_extendsidi2_lfiwzx): Likewise.
1042         (extendsidi2_lfiwax): Likewise.
1043         (extendsidi2_nocell): Likewise.
1044         (floatsi<mode>2_lfiwax): Likewise.
1045         (lfiwax): Likewise.
1046         (floatunssi<mode>2_lfiwzx): Likewise.
1047         (lfiwzx): Likewise.
1048         (fix_trunc<mode>_stfiwx): Likewise.
1049         (fixuns_trunc<mode>_stfiwx): Likewise.
1050         (mov<mode>_hardfloat, 32-bit floating point): Likewise.
1051         (mov<move>_hardfloat64, 64-bit floating point): Likewise.
1052         (parity<mode>2_cmpb): Set length/type attr.
1053         (unnamed shift right patterns, mov<mode>_internal2): Change type attr
1054         for 'mr.' to fast_compare.
1055         (bpermd_<mode>): Change type attr to popcnt.
1056         (p8_fmrgow_<mode>): New insns for power8 direct move support.
1057         (p8_mtvsrwz_1): Likewise.
1058         (p8_mtvsrwz_2): Likewise.
1059         (reload_fpr_from_gpr<mode>): Likewise.
1060         (p8_mtvsrd_1): Likewise.
1061         (p8_mtvsrd_2): Likewise.
1062         (p8_xxpermdi_<mode>): Likewise.
1063         (reload_vsx_from_gpr<mode>): Likewise.
1064         (reload_vsx_from_gprsf): Likewise.
1065         (p8_mfvsrd_3_<mode>): LIkewise.
1066         (reload_gpr_from_vsx<mode>): Likewise.
1067         (reload_gpr_from_vsxsf): Likewise.
1068         (p8_mfvsrd_4_disf): Likewise.
1069         (multi-word GPR splits): Do not split direct moves or quad memory
1070         operations.
1071
1072 2013-06-10  David Malcolm  <dmalcolm@redhat.com>
1073
1074         * tree-into-ssa.c (interesting_blocks): Make static.
1075
1076 2013-06-10  Jakub Jelinek  <jakub@redhat.com>
1077
1078         PR target/56564
1079         * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
1080         CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
1081         Use DATA_ABI_ALIGNMENT for that case instead if defined.
1082         (get_variable_align): New function.
1083         (get_variable_section, emit_bss, emit_common,
1084         assemble_variable_contents, place_block_symbol): Use
1085         get_variable_align instead of DECL_ALIGN.
1086         (assemble_noswitch_variable): Add align argument, use it
1087         instead of DECL_ALIGN.
1088         (assemble_variable): Adjust caller.  Use get_variable_align
1089         instead of DECL_ALIGN.
1090         * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
1091         caller.
1092         (DATA_ABI_ALIGNMENT): Define.
1093         * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
1094         * config/i386/i386.c (x86_data_alignment): Add opt argument.  If
1095         opt is false, only return the psABI mandated alignment increase.
1096         * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
1097         (DATA_ABI_ALIGNMENT): ... this.
1098         * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
1099         (DATA_ABI_ALIGNMENT): ... this.
1100         * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
1101         * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
1102         (DATA_ABI_ALIGNMENT): ... this.
1103         * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
1104         * doc/tm.texi: Regenerated.
1105
1106 2013-06-10  Uros Bizjak  <ubizjak@gmail.com>
1107
1108         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
1109         cmp_code to construct REG_EQUAL note.
1110
1111 2013-06-09  Jakub Jelinek  <jakub@redhat.com>
1112
1113         PR target/57568
1114         * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
1115         that operands[2] doesn't overlap with operands[0].
1116
1117 2013-06-09  David Edelsohn  <dje.gcc@gmail.com>
1118             Jan Hubicka  <jh@suse.cz>
1119
1120         * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
1121         hack to mark symbols as used.
1122
1123 2013-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1124
1125         PR rtl-optimization/57559
1126         * lra-constraints.c (process_alt_operands): Don't discourage
1127         memory with known offset for offsetable memory constraint.
1128         * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
1129
1130 2013-06-08  Eric Botcazou  <ebotcazou@adacore.com>
1131
1132         * varasm.c (struct oc_local_state): Reorder fields.
1133         (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
1134         and adjust accordingly.
1135         (output_constructor): Reorder initialization code and adjust call to
1136         output_constructor_bitfield.
1137
1138 2013-06-07  Jan Hubicka  <jh@suse.cz>
1139
1140         * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
1141
1142 2013-06-07  David Malcolm  <dmalcolm@redhat.com>
1143
1144         * tree-object-size.c (unknown): Make const.
1145
1146 2013-06-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1147
1148         * config/s390/s390.md (cpu_facility): Add cpu_zarch.
1149         ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
1150         for last alternative in the cpu_facility attribute.
1151
1152 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1153
1154         PR target/56315
1155         * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
1156         (xordi3): Change operand 2 constraint to arm_xordi_operand.
1157         * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
1158         * config/arm/constraints.md (Dg): New constraint.
1159         * config/arm/neon.md (xordi3_neon): Remove.
1160         (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
1161         * config/arm/predicates.md (arm_xordi_operand): New predicate.
1162
1163 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1164
1165         * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
1166         Clean up alternatives.
1167
1168 2013-06-07  Alan Modra  <amodra@gmail.com>
1169
1170         * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
1171         va_list_gpr_size.
1172
1173 2013-06-07  Alan Modra  <amodra@gmail.com>
1174
1175         * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
1176
1177 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1178
1179         * config/arm/constraints.md (Df): New constraint.
1180         * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
1181         Correct length attribute for last two alternatives.
1182
1183 2013-06-07  Alan Modra  <amodra@gmail.com>
1184
1185         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1186         override user -mfp-in-toc.
1187         (offsettable_ok_by_alignment): Consider just the current access
1188         rather than the whole object, unless BLKmode.  Handle
1189         CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
1190         (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
1191         for -mcmodel=medium.
1192         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
1193         override user -mfp-in-toc or -msum-in-toc.  Default to
1194         -mno-fp-in-toc for -mcmodel=medium.
1195
1196 2013-06-06  DJ Delorie  <dj@redhat.com>
1197
1198         * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
1199         TARGET_VALID_POINTER_MODE.
1200
1201 2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1202             Pat Haugen <pthaugen@us.ibm.com>
1203             Peter Bergner <bergner@vnet.ibm.com>
1204
1205         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1206         Document new power8 builtins.
1207
1208         * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
1209         condition code register, to allow 128-bit logical operations to be
1210         done in the VSX or GPR registers.
1211         (nor<mode>3): Use the canonical form for nor.
1212         (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
1213         vclz*, and vpopcnt* vector instructions.
1214         (nand<mode>3): Likewise.
1215         (orc<mode>3): Likewise.
1216         (clz<mode>2): LIkewise.
1217         (popcount<mode>2): Likewise.
1218
1219         * config/rs6000/predicates.md (int_reg_operand): Rework tests so
1220         that only the GPRs are recognized.
1221
1222         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1223         support for new power8 builtins.
1224
1225         * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
1226         builtin functions.
1227         (xscvdpspn): Likewise.
1228         (vclz): Likewise.
1229         (vclzb): Likewise.
1230         (vclzh): Likewise.
1231         (vclzw): Likewise.
1232         (vclzd): Likewise.
1233         (vpopcnt): Likewise.
1234         (vpopcntb): Likewise.
1235         (vpopcnth): Likewise.
1236         (vpopcntw): Likewise.
1237         (vpopcntd): Likewise.
1238         (vgbbd): Likewise.
1239         (vmrgew): Likewise.
1240         (vmrgow): Likewise.
1241         (eqv): Likewise.
1242         (eqv_v16qi3): Likewise.
1243         (eqv_v8hi3): Likewise.
1244         (eqv_v4si3): Likewise.
1245         (eqv_v2di3): Likewise.
1246         (eqv_v4sf3): Likewise.
1247         (eqv_v2df3): Likewise.
1248         (nand): Likewise.
1249         (nand_v16qi3): Likewise.
1250         (nand_v8hi3): Likewise.
1251         (nand_v4si3): Likewise.
1252         (nand_v2di3): Likewise.
1253         (nand_v4sf3): Likewise.
1254         (nand_v2df3): Likewise.
1255         (orc): Likewise.
1256         (orc_v16qi3): Likewise.
1257         (orc_v8hi3): Likewise.
1258         (orc_v4si3): Likewise.
1259         (orc_v2di3): Likewise.
1260         (orc_v4sf3): Likewise.
1261         (orc_v2df3): Likewise.
1262
1263         * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
1264         allow power8 quad mode in 64-bit.
1265         (rs6000_builtin_vectorized_function): Add support to vectorize
1266         ISA 2.07 count leading zeros, population count builtins.
1267         (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
1268         V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
1269         (builtin_function_type): Add vgbbd builtin function which takes an
1270         unsigned argument.
1271         (altivec_expand_vec_perm_const): Add support for new power8 merge
1272         instructions.
1273
1274         * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
1275         that does not include TImdoe for use with 32-bit.
1276         (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
1277         instructions.
1278         (UNSPEC_VSX_CVDPSPN): Likewise.
1279         (vsx_xscvdpspn): Likewise.
1280         (vsx_xscvspdpn): Likewise.
1281         (vsx_xscvdpspn_scalar): Likewise.
1282         (vsx_xscvspdpn_directmove): Likewise.
1283         (vsx_and<mode>3): Split logical operations into 32-bit and
1284         64-bit. Add support to do logical operations on TImode as well as
1285         VSX vector types.  Allow logical operations to be done in either
1286         VSX registers or in general purpose registers in 64-bit mode.  Add
1287         splitters if GPRs were used. For AND, add clobber of CCmode to
1288         allow use of ANDI on GPRs.  Rewrite nor to use the canonical RTL
1289         encoding.
1290         (vsx_and<mode>3_32bit): Likewise.
1291         (vsx_and<mode>3_64bit): Likewise.
1292         (vsx_ior<mode>3): Likewise.
1293         (vsx_ior<mode>3_32bit): Likewise.
1294         (vsx_ior<mode>3_64bit): Likewise.
1295         (vsx_xor<mode>3): Likewise.
1296         (vsx_xor<mode>3_32bit): Likewise.
1297         (vsx_xor<mode>3_64bit): Likewise.
1298         (vsx_one_cmpl<mode>2): Likewise.
1299         (vsx_one_cmpl<mode>2_32bit): Likewise.
1300         (vsx_one_cmpl<mode>2_64bit): Likewise.
1301         (vsx_nor<mode>3): Likewise.
1302         (vsx_nor<mode>3_32bit): Likewise.
1303         (vsx_nor<mode>3_64bit): Likewise.
1304         (vsx_andc<mode>3): Likewise.
1305         (vsx_andc<mode>3_32bit): Likewise.
1306         (vsx_andc<mode>3_64bit): Likewise.
1307         (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
1308         and xxlorc instructions.
1309         (vsx_eqv<mode>3_64bit): Likewise.
1310         (vsx_nand<mode>3_32bit): Likewise.
1311         (vsx_nand<mode>3_64bit): Likewise.
1312         (vsx_orc<mode>3_32bit): Likewise.
1313         (vsx_orc<mode>3_64bit): Likewise.
1314
1315         * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
1316
1317         * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
1318         instruction.
1319         (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
1320         (p8_vmrgow): Likewise.
1321         (altivec_and<mode>3): Add clobber of CCmode to allow AND using
1322         GPRs to be split under VSX.
1323         (p8v_clz<mode>2): Add power8 count leading zero support.
1324         (p8v_popcount<mode>2): Add power8 population count support.
1325         (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
1326         support.
1327
1328         * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
1329         instruction.
1330
1331         * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
1332         builtin functions.
1333         (vec_nand): Likewise.
1334         (vec_vclz): Likewise.
1335         (vec_vclzb): Likewise.
1336         (vec_vclzd): Likewise.
1337         (vec_vclzh): Likewise.
1338         (vec_vclzw): Likewise.
1339         (vec_vgbbd): Likewise.
1340         (vec_vmrgew): Likewise.
1341         (vec_vmrgow): Likewise.
1342         (vec_vpopcnt): Likewise.
1343         (vec_vpopcntb): Likewise.
1344         (vec_vpopcntd): Likewise.
1345         (vec_vpopcnth): Likewise.
1346         (vec_vpopcntw): Likewise.
1347
1348 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
1349
1350         PR rtl-optimization/57468
1351         * config/i386/i386.c (inline_secondary_memory_needed): Ignore
1352         spilled pseudos.
1353
1354 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
1355
1356         PR rtl-optimization/57459
1357         * lra-constraints.c (update_ebb_live_info): Fix typo for operand
1358         type when setting live regs.
1359
1360 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
1361
1362         * config/s390/s390.opt (mlra): New option.
1363         * config/s390/s390.c (s390_decompose_address): Check displacement
1364         for all registers for LRA.
1365         (s390_secondary_reload): Don't used secondary reloads for LRA.
1366         (s390_lra_p): New function.
1367         (TARGET_LRA_P): Define.
1368         * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
1369         of attribute cpu_facility to zarch for the last alternative.
1370         (*cmpmem_short): Ditto.
1371
1372 2013-06-06  Eric Botcazou  <ebotcazou@adacore.com>
1373
1374         * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
1375         (arm_compute_static_chain_stack_bytes): Use it.  Tidy up.
1376         (arm_expand_prologue): Likewise.
1377
1378 2013-06-06  Teresa Johnson  <tejohnson@google.com>
1379
1380         PR c++/53743
1381         * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
1382         as this is now done by redirect_edge_and_branch_force.
1383         * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
1384         barriers, and fix interaction with splitting.
1385         * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
1386         * cfgcleanup.c (try_forward_edges): Fix early return value to properly
1387         reflect changes made in the routine.
1388         * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
1389         (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
1390         since this is called in cfglayout mode, and replace partition fixup
1391         with assert as that is now done by force_nonfallthru_and_redirect.
1392         (add_reg_crossing_jump_notes): Handle the fact that some jumps may
1393         already be marked with region crossing note.
1394         (insert_section_boundary_note): Make non-static, gate on flag
1395         has_bb_partition, rewrite to also check for multiple partitions.
1396         (rest_of_handle_reorder_blocks): Remove call to
1397         insert_section_boundary_note, now done later during free_cfg.
1398         (duplicate_computed_gotos): Don't duplicate partition crossing edge.
1399         * bb-reorder.h (insert_section_boundary_note): Declare.
1400         * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
1401         * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
1402         invoke insert_section_boundary_note.
1403         (try_redirect_by_replacing_jump): Remove unnecessary
1404         check for region crossing note.
1405         (fixup_partition_crossing): New function.
1406         (rtl_redirect_edge_and_branch): Fixup partition boundaries.
1407         (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
1408         in non-cfglayout mode.
1409         (force_nonfallthru_and_redirect): Fixup partition boundaries,
1410         remove old code that tried to do this. Emit barrier correctly
1411         when we are in cfglayout mode.
1412         (last_bb_in_partition): New function.
1413         (rtl_split_edge): Correctly fixup partition boundaries.
1414         (commit_one_edge_insertion): Remove old code that tried to
1415         fixup region crossing edge since this is now handled in
1416         split_block, and set up insertion point correctly since
1417         block may now end in a jump.
1418         (verify_hot_cold_block_grouping): Guard against checking when not in
1419         linearized RTL mode.
1420         (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
1421         notes.
1422         (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
1423         rtl_verify_flow_info, so not called in cfglayout mode.
1424         (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
1425         (fixup_reorder_chain): Remove old code that attempted to fixup region
1426         crossing note as this is now handled in force_nonfallthru_and_redirect.
1427         (duplicate_insn_chain): Don't duplicate switch section notes.
1428         (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
1429         note.
1430         * basic-block.h (emit_barrier_after_bb): Declare.
1431
1432 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1433
1434         * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
1435         sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
1436         arm_usatsihi): Adjust alternatives for arm_restrict_it.
1437
1438 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1439
1440         * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
1441         where appropriate.
1442         * config/arm/ldmstm.md: Regenerate.
1443
1444 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1445
1446         * config/arm/sync.md (atomic_loaddi_1):
1447         Disable predication for arm_restrict_it.
1448         (arm_load_exclusive<mode>): Likewise.
1449         (arm_load_exclusivesi): Likewise.
1450         (arm_load_exclusivedi): Likewise.
1451         (arm_load_acquire_exclusive<mode>): Likewise.
1452         (arm_load_acquire_exclusivesi): Likewise.
1453         (arm_load_acquire_exclusivedi): Likewise.
1454         (arm_store_exclusive<mode>): Likewise.
1455         (arm_store_exclusive<mode>): Likewise.
1456         (arm_store_release_exclusivedi): Likewise.
1457         (arm_store_release_exclusive<mode>): Likewise.
1458
1459 2013-06-06  Richard Biener  <rguenther@suse.de>
1460
1461         * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
1462         after LTO_null.
1463         (lto_tag_is_tree_code_p): Adjust.
1464         (lto_tag_is_gimple_code_p): Likewise.
1465         (lto_gimple_code_to_tag): Likewise.
1466         (lto_tag_to_gimple_code): Likewise.
1467         (lto_tree_code_to_tag): Likewise.
1468         (lto_tag_to_tree_code): Likewise.
1469         * data-streamer.h (streamer_write_hwi_in_range): Use
1470         uhwi streaming to stream the normalized range.
1471         (streamer_read_hwi_in_range): Likewise.
1472
1473 2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1474
1475         * config/arm/arm.md (enabled_for_depr_it): New attribute.
1476         (predicable_short_it): Likewise.
1477         (predicated): Likewise.
1478         (enabled): Handle above.
1479         (define_cond_exec): Set predicated attribute to yes.
1480
1481 2013-06-05  Mike Stump  <mikestump@comcast.net>
1482
1483         * gdbinit.in (__FUNCTION__): Add.
1484
1485 2013-06-05  Uros Bizjak  <ubizjak@gmail.com>
1486
1487         * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
1488         GE, GT, GEU and GTU compares, modulo DImode compares with zero.
1489
1490 2013-06-05  Jan Hubicka  <jh@suse.cz>
1491
1492         * varasm.c (mark_decl_referenced): Revert the removal until targets
1493         are fixed.
1494
1495 2013-06-05  David Edelsohn  <dje.gcc@gmail.com>
1496
1497         * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
1498         instead of mark_decl_referenced.
1499
1500 2013-06-05  Jan Hubicka  <jh@suse.cz>
1501
1502         * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
1503         (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
1504         and symtab_used_from_object_file_p.
1505         (cgraph_make_node_local_1): Clear forced_by_abi.
1506         (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
1507         * cgraph.h (symtab_node_base): Add forced_by_abi.
1508         (decide_is_variable_needed): Remove.
1509         (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
1510         * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
1511         (decide_is_symbol_needed): ... this one; handle symbols in general;
1512         always analyze virtuals; honnor forced_by_abi.
1513         (cgraph_finalize_function): Update.
1514         (varpool_finalize_decl): Update.
1515         (symbol_defined_and_needed): Remove.
1516         (analyze_functions): Update.
1517         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1518         output_refs, input_overwrite_node): Handle forced_by_abi.
1519         * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
1520         (address_taken_from_non_vtable_p): ... this one.
1521         (comdat_can_be_unshared_p_1): New function.
1522         (cgraph_comdat_can_be_unshared_p): Rename to ...
1523         (comdat_can_be_unshared_p): ... this one; handle symbols in general.
1524         (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
1525         (function_and_variable_visibility): Clear forced_by_abi as needed.
1526         * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
1527         (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
1528         * symtab.c (dump_symtab_base): Dump forced_by_abi.
1529         * varpool.c (decide_is_variable_needed): Remove.
1530
1531 2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1532
1533         * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
1534         (arm_option_override): Override arm_restrict_it where appropriate.
1535         (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
1536         * config/arm/arm.opt (mrestrict-it): New command-line option.
1537         * doc/invoke.texi: Document -mrestrict-it.
1538
1539 2013-06-05  David Malcolm  <dmalcolm@redhat.com>
1540
1541         * tsan.c (tsan_atomic_table): Make const.
1542
1543 2013-06-05  Richard Biener  <rguenther@suse.de>
1544
1545         * tree-streamer.c (streamer_tree_cache_insert_1): Update the
1546         index associated with the tree we are supposed to replace.
1547         * tree-streamer-out.c (pack_ts_base_value_fields): Output
1548         TREE_ASM_WRITTEN as zero for everything but SSA names.
1549
1550 2013-06-05  David Malcolm  <dmalcolm@redhat.com>
1551
1552         * tree-ssa-structalias.c (call_stmt_vars): Make static.
1553
1554 2013-06-04  Jan Hubicka  <jh@suse.cz>
1555
1556         * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
1557         (input_node, input_varpool_node): Handle correctly external same
1558         body aliases.
1559         * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
1560         nodes at ltrans stage.
1561
1562 2013-06-04  Jan Hubicka  <jh@suse.cz>
1563
1564         * ipa-inline.c (update_caller_keys): Fix availability test.
1565         (update_callee_keys): Likewise.
1566         * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
1567         to follow ELF standard.
1568
1569 2013-06-04  Jürgen Urban  <JuergenUrban@gmx.de>
1570
1571         * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
1572         (mips64r5900el-*-elf*): New configurations.
1573         * config/mips/mips-cpus.def (r5900): New processor.
1574         * config/mips/mips-tables.opt: Regenerate.
1575         * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
1576         (mips_issue_rate): Handle PROCESSOR_R5900.
1577         (mips_reorg_process_insns): Force reorder mode for the R5900.
1578         * config/mips/mips.h (TARGET_MIPS5900): Define.
1579         (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
1580         TARGET_MIPS5900.
1581         (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
1582         TARGET_MIPS5900.
1583         * config/mips/mips.md (processor): Add r5900.
1584         (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
1585
1586 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1587
1588         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
1589         into function to generate MOVI instruction.
1590         * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
1591         (aarch64_preferred_simd_mode): Turn into wrapper.
1592         (aarch64_output_scalar_simd_mov_immediate): New function.
1593         * config/aarch64/aarch64-protos.h: Add prototype for above.
1594
1595 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1596
1597         * config/aarch64/aarch64.c (simd_immediate_info): Remove
1598         element_char member.
1599         (sizetochar): Return signed char.
1600         (aarch64_simd_valid_immediate): Remove elchar and other
1601         unnecessary variables.
1602         (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
1603         Calculate element_char as required.
1604         * config/aarch64/aarch64-protos.h: Update and move prototype
1605         for aarch64_output_simd_mov_immediate.
1606         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
1607         Update arguments.
1608
1609 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1610
1611         * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
1612         information completed by aarch64_simd_valid_immediate.
1613         (aarch64_legitimate_constant_p): Update arguments.
1614         (aarch64_simd_valid_immediate): Work with struct rather than many
1615         pointers.
1616         (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
1617         (aarch64_simd_make_constant): Update arguments.
1618         (aarch64_output_simd_mov_immediate): Work with struct rather than
1619         many pointers.  Output immediate directly rather than as operand.
1620         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1621         Update prototype.
1622         * config/aarch64/constraints.md (Dn): Update arguments.
1623
1624 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1625
1626         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
1627         longer static.
1628         (aarch64_simd_immediate_valid_for_move): Remove.
1629         (aarch64_simd_scalar_immediate_valid_for_move): Update call.
1630         (aarch64_simd_make_constant): Update call.
1631         (aarch64_output_simd_mov_immediate): Update call.
1632         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1633         Add prototype.
1634         * config/aarch64/constraints.md (Dn): Update call.
1635
1636 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1637
1638         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
1639         return type to bool for prototype.
1640         (aarch64_legitimate_constant_p): Check for true instead of not -1.
1641         (aarch64_simd_valid_immediate): Fix up each return to return a bool.
1642         (aarch64_simd_immediate_valid_for_move): Update retval for bool.
1643
1644 2013-06-04  Catherine Moore  <clm@codesourcery.com>
1645
1646         * config/mips/mips.opt (meva): New.
1647         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
1648         (ASM_SPEC): Handle -meva.
1649         * doc/invoke.texi (meva):  Document.
1650
1651 2013-06-04  Alan Modra  <amodra@gmail.com>
1652
1653         * config/rs6000/rs6000.c (output_toc): Correct little-endian float
1654         constant output.
1655
1656 2013-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1657
1658         * rtl.def: Add extra fourth optional field to define_cond_exec.
1659         * gensupport.c (process_one_cond_exec): Process attributes from
1660         define_cond_exec.
1661         * doc/md.texi: Document fourth field in define_cond_exec.
1662
1663 2013-06-04  Eric Botcazou  <ebotcazou@adacore.com>
1664
1665         * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
1666         out the processing order as in store_bit_field_1.
1667
1668 2013-06-04  Jan Hubicka  <jh@suse.cz>
1669
1670         PR middle-end/57500
1671         * cgraphunit.c (cgraph_process_same_body_aliases): Create
1672         non-VAR_DECL node if it does not exist yet.
1673
1674 2013-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
1675
1676         * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
1677         (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
1678         (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
1679         target_cpu_default setting.
1680
1681 2013-06-03  Teresa Johnson  <tejohnson@google.com>
1682
1683         * dumpfile.c (opt_info_switch_p): Change -fopt-info
1684         default to -fopt-info=optimized instead of all.
1685         * doc/invoke.texi: Ditto.
1686         * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
1687         success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
1688         (execute_vect_slp): Emit BB vectorization success under
1689         MSG_OPTIMIZED_LOCATIONS.
1690         * tree-vect-slp.c (vect_slp_transform_bb): Change
1691         MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
1692         * tree-vect-loop.c (vect_transform_loop): Ditto.
1693
1694 2013-06-03  Jason Merrill  <jason@redhat.com>
1695
1696         PR c++/57415
1697         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1698         Use TARGET_EXPR for C++.
1699
1700 2013-06-03  Jakub Jelinek  <jakub@redhat.com>
1701
1702         PR rtl-optimization/57268
1703         * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1704         if DEBUG_INSN_P (insn).
1705
1706         Reapply
1707         2013-05-31  Dinar Temirbulatov  <dinar@kugelworks.com>
1708
1709         PR rtl-optimization/57268
1710         * sched-deps.c (sched_analyze_2): Flush dependence lists if
1711         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1712
1713 2013-06-03  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
1714
1715         * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
1716         (ix86_avoid_lea_for_addr): Likewise.
1717         (exact_dependency_1): Likewise.
1718         (ix86_adjust_cost): Likewise.
1719         (swap_top_of_ready_list): Fix formatting and !reload_completed check
1720         removed.
1721         (do_reorder_for_imul): Fix typo, formatting and
1722         !reload_completed check removed.
1723         (ix86_sched_reorder): Fix typo and formatting.
1724         (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
1725         list.
1726
1727 2013-06-03  Sofiane Naci  <sofiane.naci@arm.com>
1728
1729         * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
1730
1731 2013-06-03  Eric Botcazou  <ebotcazou@adacore.com>
1732
1733         * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
1734         <STRING_CST>: Likewise.
1735         <VECTOR_CST>: Likewise.
1736
1737 2013-06-01  Janus Weil  <janus@gcc.gnu.org>
1738             Mikael Morin  <mikael@gcc.gnu.org>
1739
1740         * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
1741         * config.in: Regenerated.
1742         * configure: Regenerated.
1743
1744 2013-06-01  Jan Hubicka  <jh@suse.cz>
1745
1746         PR middle-end/57366
1747         * cgraphunit.c (compile): When weakref is not supported,
1748         set up transparent aliases before final output pass.
1749         * varasm.c (assemble_alias): Do not try to do it here.
1750
1751 2013-06-01  Jan Hubicka  <jh@suse.cz>
1752
1753         PR middle-end/57467
1754         * passes.c (for_per_function): Skip unanalyzed functions.
1755
1756 2013-06-01  Jan Hubicka  <jh@suse.cz>
1757
1758         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
1759         (lto_symtab_merge_symbols_1): ... this one.
1760         (lto_symtab_merge_cgraph_nodes): Rename to ...
1761         (lto_symtab_merge_symbols): ... this one; simplify.
1762         * cgraph.c (same_body_aliases_done): Rename to ...
1763         (cpp_implicit_aliases_done): ... this one.
1764         (cgraph_create_function_alias): Update.
1765         (cgraph_same_body_alias): Update.
1766         (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
1767         (verify_edge_corresponds_to_fndecl): Simplify.
1768         * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
1769         (cgraph_node): Remove same_body_alias.
1770         (varpool_node): Remove alias_of and extra_name_alias.
1771         (same_body_aliases_done): Rename to ..
1772         (cpp_implicit_aliases_done): ... this one.
1773         (symtab_alias_ultimate_target): Add default parameter.
1774         (symtab_resolve_alias): New function.
1775         (fixup_same_cpp_alias_visibility): Declare.
1776         (cgraph_function_node): Add default parameter.
1777         (cgraph_node_asm_name): Likewise.
1778         (cgraph_function_or_thunk_node): Add default parameter; do
1779         not ICE when it is NULL.
1780         (varpool_variable_node): Likewise.
1781         * tree-emutls.c (create_emultls_var): Update.
1782         (ipa_lower_emutls): Update.
1783         * cgraphunit.c (cgraph_decide_is_function_needed): Update.
1784         (cgraph_reset_node): Reset alias info.
1785         (cgraph_finalize_function): Update.
1786         (fixup_same_cpp_alias_visibility): Move to symtab.c.
1787         (analyze_function): Simplify.
1788         (cgraph_process_same_body_aliases): Simplify.
1789         (analyze_functions): Fixup same body aliases.
1790         (handle_alias_pairs): Simplify.
1791         (assemble_thunk): Update.
1792         (assemble_thunks_and_aliases): Update.
1793         (output_weakrefs): Rewrite.
1794         * lto-cgraph.c (lto_output_node): Rewrite alias handling.
1795         (lto_output_varpool_node): Likewise.
1796         (compute_ltrans_boundary): Remve assert.
1797         (get_alias_symbol): New functoin.
1798         (input_node): Rewrite alias handling.
1799         (input_varpool_node): Likewise.
1800         * ipa-pure-const.c (propagate_pure_const): Fix formating.
1801         * ipa.c (process_references): Handle weakrefs correctly.
1802         (symtab_remove_unreachable_nodes): Likewise.
1803         * trans-mem.c (get_cg_data): Update.
1804         (ipa_tm_create_version_alias): Update.
1805         (ipa_tm_execute): Update.
1806         * symtab.c (dump_symtab_base): Dump aliases.
1807         (verify_symtab_base): Verify aliases.
1808         (symtab_node_availability): New function.
1809         (symtab_alias_ultimate_target): Simplify.
1810         (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
1811         handle all the fixup cases.
1812         (symtab_resolve_alias): New function.
1813         * passes.c (ipa_write_summaries): Handle weakrefs.
1814         * varpool.c (varpool_analyze_node): Simplify.
1815         (assemble_aliases): Update.
1816         (varpool_create_variable_alias): Simplify.
1817         (varpool_extra_name_alias): Simplify.
1818         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
1819         (lto_symtab_merge_symbols): ... this one.
1820
1821 2013-06-01  Dinar Temirbulatov  <dinar@kugelworks.com>
1822
1823         Revert
1824         PR rtl-optimization/57268
1825         * sched-deps.c (sched_analyze_2): Flush dependence lists if
1826         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1827
1828 2013-06-01  Tobias Burnus  <burnus@net-b.de>
1829
1830         Partially reverted:
1831         2013-05-31  Tobias Burnus  <burnus@net-b.de>
1832
1833         PR middle-end/57073
1834         * tree-ssa-math-opts.c (execute_cse_sincos): Move check
1835         further up.
1836
1837 2013-05-31  Dinar Temirbulatov  <dinar@kugelworks.com>
1838
1839         PR rtl-optimization/57268
1840         * sched-deps.c (sched_analyze_2): Flush dependence lists if
1841         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1842
1843 2013-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1844
1845         * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
1846         unordered comparison operators when -fno-trapping-math is in effect
1847         on the e500.
1848         * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
1849         and implement unordered comparison operators properly on the e500.
1850
1851 2013-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1852
1853         * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
1854         for constant scalar integers.
1855         (simplify_relational_operation_1): Likewise.
1856
1857 2013-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
1858
1859         * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
1860         * config/rs6000/rs6000.md (cpu): Reorder.  Split long line.
1861         Fix comment.
1862
1863 2013-05-31  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
1864             Igor Zamyatin  <igor.zamyatin@intel.com>
1865
1866         Silvermont (SLM) architecture performance tuning.
1867         * config/i386/i386.h (enum ix86_tune_indices): Add
1868         X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
1869         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
1870
1871         * config/i386/i386.c (initial_ix86_tune_features)
1872         <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
1873         (ix86_lea_outperforms): Handle Silvermont tuning.
1874         (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
1875         call.
1876         (ix86_use_lea_for_mov): Likewise.
1877         (ix86_avoid_lea_for_addr): Likewise.
1878         (ix86_lea_for_add_ok): Likewise.
1879         (exact_dependency_1): New function.
1880         (exact_store_load_dependency): Likewise.
1881         (ix86_adjust_cost): Handle Silvermont tuning.
1882         (do_reoder_for_imul): Likewise.
1883         (swap_top_of_ready_list): New function.
1884         (ix86_sched_reorder): Changed to handle Silvermont tuning.
1885
1886         * config/i386/i386.md (peepholes that split memory operand in fp
1887         converts): New.
1888
1889 2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1890
1891         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1892         Remove un-necessary braces.
1893
1894 2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1895
1896         * config/aarch64/aarch64.c (aarch64_classify_symbol):
1897         Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
1898
1899 2013-05-31  Tobias Burnus  <burnus@net-b.de>
1900
1901         PR middle-end/57073
1902         * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
1903
1904 2013-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1905
1906         PR target/56315
1907         * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
1908         * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
1909         * config/arm/neon.md (iordi3_neon): Remove.
1910         (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
1911         * config/arm/predicates.md (imm_for_neon_logic_operand):
1912         Move to earlier in the file.
1913         (neon_logic_op2): Likewise.
1914         (arm_iordi_operand_neon): New predicate.
1915
1916 2013-05-31  Richard Biener  <rguenther@suse.de>
1917
1918         PR tree-optimization/57478
1919         PR tree-optimization/57453
1920         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
1921         are life as well.
1922
1923 2013-05-31  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1924
1925         * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
1926         (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
1927
1928 2013-05-30  Tobias Burnus  <burnus@net-b.de>
1929             Thomas Koenig  <tkoenig@gcc.gnu.org>
1930
1931         PR middle-end/57073
1932         * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
1933         powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
1934
1935 2013-05-30  Steven Bosscher  <steven@gcc.gnu.org>
1936
1937         * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
1938
1939 2013-05-30  Vladimir Makarov  <vmakarov@redhat.com>
1940
1941         * target.def (register_usage_leveling_p): New hook.
1942         * targhooks.c (default_register_usage_leveling_p): New.
1943         * targhooks.h (default_register_usage_leveling_p): New prototype.
1944         * lra-assigns.c (register_usage_leveling_p): Use the hook.
1945         * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
1946         * doc/tm.texi: Update.
1947         * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
1948
1949 2013-05-30  Ian Bolton  <ian.bolton@arm.com>
1950
1951         * config/aarch64/aarch64.md (insv<mode>): New define_expand.
1952         (*insv_reg<mode>): New define_insn.
1953
1954 2013-05-30  Joern Rennecke <joern.rennecke@embecosm.com>
1955
1956         PR rtl-optimization/57439
1957         * postreload.c (move2add_valid_value_p): Check that we have
1958         a zero subreg_regno_offset when accessing the register in
1959         the requested mode.
1960
1961 2013-05-30  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
1962             Igor Zamyatin  <igor.zamyatin@intel.com>
1963
1964         Silvermont (SLM) architecture pipeline model, tuning and
1965         insn selection.
1966         * config.gcc: Add slm config options and target.
1967
1968         * config/i386/slm.md: New.
1969
1970         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1971
1972         * gcc/config/i386/i386-c.c (ix86_target_macros_internal):  New case
1973         PROCESSOR_SLM.
1974         (ix86_target_macros_internal): Likewise.
1975
1976         * gcc/config/i386/i386.c (slm_cost): New cost.
1977         (m_SLM): New macro flag.
1978         (initial_ix86_tune_features): Set m_SLM.
1979         (x86_accumulate_outgoing_args): Likewise.
1980         (x86_arch_always_fancy_math_387): Likewise.
1981         (processor_target_table): Add slm cost.
1982         (cpu_names): Add slm cpu name.
1983         (x86_option_override_internal): Set SLM ISA.
1984         (ix86_issue_rate): New case PROCESSOR_SLM.
1985         (ia32_multipass_dfa_lookahead): Likewise.
1986         (fold_builtin_cpu): Add slm.
1987
1988         * config/i386/i386.h (TARGET_SLM): New target macro.
1989         (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
1990         (processor_type): Add PROCESSOR_SLM.
1991
1992         * config/i386/i386.md (cpu): Add new value "slm".
1993         (slm.md): Include slm.md.
1994
1995 2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
1996             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1997
1998         * config/arm/arm-protos.h: Add and update function protos.
1999         * config/arm/arm.c (use_simple_return_p): New added.
2000         (thumb2_expand_return): Check simple_return flag.
2001         * config/arm/arm.md: Add simple_return and conditional simple_return.
2002         * config/arm/iterators.md: Add iterator for return and simple_return.
2003
2004 2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2005
2006         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
2007         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
2008         (arm_emit_vfp_multi_reg_pop): Likewise.
2009         (thumb2_emit_ldrd_pop): Likewise.
2010         (arm_expand_epilogue): Add misc REG_CFA notes.
2011         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
2012
2013 2013-05-29  Lawrence Crowl  <crowl@google.com>
2014
2015         * config/arm/t-arm: Update for below.
2016
2017         * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
2018         Change type to hash_table.  Update dependent calls and types.
2019
2020         * config/i386/t-cygming: Update for below.
2021
2022         * config/i386/t-interix: Update for below.
2023
2024         * config/i386/winnt.c (i386_pe_section_type_flags::htab):
2025         Change type to hash_table.  Update dependent calls and types.
2026         (i386_find_on_wrapper_list::wrappers): Likewise.
2027
2028         * config/ia64/t-ia64: Update for below.
2029
2030         * config/ia64/ia64.c (bundle_state_table):
2031         Change type to hash_table.  Update dependent calls and types.
2032
2033         * config/mips/mips.c (mips_reorg_process_insns::htab):
2034         Change type to hash_table.  Update dependent calls and types.
2035
2036         * config/sol2.c (solaris_comdat_htab):
2037         Change type to hash_table.  Update dependent calls and types.
2038
2039         * config/t-sol2: Update for above.
2040
2041 2013-05-29  Teresa Johnson  <tejohnson@google.com>
2042
2043         * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
2044         functions are not yet marked as defined.
2045
2046 2013-05-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
2047             Pat Haugen <pthaugen@us.ibm.com>
2048             Peter Bergner <bergner@vnet.ibm.com>
2049
2050         * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
2051         instructions.
2052         (VEC_A): Likewise.
2053         (VEC_C): Likewise.
2054         (vrotl<mode>3): Likewise.
2055         (vashl<mode>3): Likewise.
2056         (vlshr<mode>3): Likewise.
2057         (vashr<mode>3): Likewise.
2058
2059         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2060         support for power8 V2DI builtins.
2061
2062         * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
2063         power8 V2DI builtins.
2064         (vupkhsw): Likewise.
2065         (vupklsw): Likewise.
2066         (vaddudm): Likewise.
2067         (vminsd): Likewise.
2068         (vmaxsd): Likewise.
2069         (vminud): Likewise.
2070         (vmaxud): Likewise.
2071         (vpkudum): Likewise.
2072         (vpksdss): Likewise.
2073         (vpkudus): Likewise.
2074         (vpksdus): Likewise.
2075         (vrld): Likewise.
2076         (vsld): Likewise.
2077         (vsrd): Likewise.
2078         (vsrad): Likewise.
2079         (vsubudm): Likewise.
2080         (vcmpequd): Likewise.
2081         (vcmpgtsd): Likewise.
2082         (vcmpgtud): Likewise.
2083         (vcmpequd_p): Likewise.
2084         (vcmpgtsd_p): Likewise.
2085         (vcmpgtud_p): Likewise.
2086         (vupkhsw): Likewise.
2087         (vupklsw): Likewise.
2088         (vaddudm): Likewise.
2089         (vmaxsd): Likewise.
2090         (vmaxud): Likewise.
2091         (vminsd): Likewise.
2092         (vminud): Likewise.
2093         (vpksdss): Likewise.
2094         (vpksdus): Likewise.
2095         (vpkudum): Likewise.
2096         (vpkudus): Likewise.
2097         (vrld): Likewise.
2098         (vsld): Likewise.
2099         (vsrad): Likewise.
2100         (vsrd): Likewise.
2101         (vsubudm): Likewise.
2102
2103         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2104         support for power8 V2DI instructions.
2105
2106         * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
2107         power8 V2DI instructions.  Combine pack and unpack insns to use an
2108         iterator for each mode.  Check whether a particular mode supports
2109         Altivec instructions instead of just checking TARGET_ALTIVEC.
2110         (UNSPEC_VPKUWUM): Likewise.
2111         (UNSPEC_VPKSHSS): Likewise.
2112         (UNSPEC_VPKSWSS): Likewise.
2113         (UNSPEC_VPKUHUS): Likewise.
2114         (UNSPEC_VPKSHUS): Likewise.
2115         (UNSPEC_VPKUWUS): Likewise.
2116         (UNSPEC_VPKSWUS): Likewise.
2117         (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
2118         (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
2119         (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
2120         (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
2121         (UNSPEC_VUPKHSB): Likewise.
2122         (UNSPEC_VUNPACK_HI_SIGN): Likewise.
2123         (UNSPEC_VUNPACK_LO_SIGN): Likewise.
2124         (UNSPEC_VUPKHSH): Likewise.
2125         (UNSPEC_VUPKLSB): Likewise.
2126         (UNSPEC_VUPKLSH): Likewise.
2127         (VI2): Likewise.
2128         (VI_char): Likewise.
2129         (VI_scalar): Likewise.
2130         (VI_unit): Likewise.
2131         (VP): Likewise.
2132         (VP_small): Likewise.
2133         (VP_small_lc): Likewise.
2134         (VU_char): Likewise.
2135         (add<mode>3): Likewise.
2136         (altivec_vaddcuw): Likewise.
2137         (altivec_vaddu<VI_char>s): Likewise.
2138         (altivec_vadds<VI_char>s): Likewise.
2139         (sub<mode>3): Likewise.
2140         (altivec_vsubcuw): Likewise.
2141         (altivec_vsubu<VI_char>s): Likewise.
2142         (altivec_vsubs<VI_char>s): Likewise.
2143         (altivec_vavgs<VI_char>): Likewise.
2144         (altivec_vcmpbfp): Likewise.
2145         (altivec_eq<mode>): Likewise.
2146         (altivec_gt<mode>): Likewise.
2147         (altivec_gtu<mode>): Likewise.
2148         (umax<mode>3): Likewise.
2149         (smax<mode>3): Likewise.
2150         (umin<mode>3): Likewise.
2151         (smin<mode>3): Likewise.
2152         (altivec_vpkuhum): Likewise.
2153         (altivec_vpkuwum): Likewise.
2154         (altivec_vpkshss): Likewise.
2155         (altivec_vpkswss): Likewise.
2156         (altivec_vpkuhus): Likewise.
2157         (altivec_vpkshus): Likewise.
2158         (altivec_vpkuwus): Likewise.
2159         (altivec_vpkswus): Likewise.
2160         (altivec_vpks<VI_char>ss): Likewise.
2161         (altivec_vpks<VI_char>us): Likewise.
2162         (altivec_vpku<VI_char>us): Likewise.
2163         (altivec_vpku<VI_char>um): Likewise.
2164         (altivec_vrl<VI_char>): Likewise.
2165         (altivec_vsl<VI_char>): Likewise.
2166         (altivec_vsr<VI_char>): Likewise.
2167         (altivec_vsra<VI_char>): Likewise.
2168         (altivec_vsldoi_<mode>): Likewise.
2169         (altivec_vupkhsb): Likewise.
2170         (altivec_vupkhs<VU_char>): Likewise.
2171         (altivec_vupkls<VU_char>): Likewise.
2172         (altivec_vupkhsh): Likewise.
2173         (altivec_vupklsb): Likewise.
2174         (altivec_vupklsh): Likewise.
2175         (altivec_vcmpequ<VI_char>_p): Likewise.
2176         (altivec_vcmpgts<VI_char>_p): Likewise.
2177         (altivec_vcmpgtu<VI_char>_p): Likewise.
2178         (abs<mode>2): Likewise.
2179         (vec_unpacks_hi_v16qi): Likewise.
2180         (vec_unpacks_hi_v8hi): Likewise.
2181         (vec_unpacks_lo_v16qi): Likewise.
2182         (vec_unpacks_hi_<VP_small_lc>): Likewise.
2183         (vec_unpacks_lo_v8hi): Likewise.
2184         (vec_unpacks_lo_<VP_small_lc>): Likewise.
2185         (vec_pack_trunc_v8h): Likewise.
2186         (vec_pack_trunc_v4si): Likewise.
2187         (vec_pack_trunc_<mode>): Likewise.
2188
2189         * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
2190         V2DI builtins.
2191         (vec_vmaxsd): Likewise.
2192         (vec_vmaxud): Likewise.
2193         (vec_vminsd): Likewise.
2194         (vec_vminud): Likewise.
2195         (vec_vpksdss): Likewise.
2196         (vec_vpksdus): Likewise.
2197         (vec_vpkudum): Likewise.
2198         (vec_vpkudus): Likewise.
2199         (vec_vrld): Likewise.
2200         (vec_vsld): Likewise.
2201         (vec_vsrad): Likewise.
2202         (vec_vsrd): Likewise.
2203         (vec_vsubudm): Likewise.
2204         (vec_vupkhsw): Likewise.
2205         (vec_vupklsw): Likewise.
2206
2207 2013-05-29  Jan Hubicka  <jh@suse.cz>
2208
2209         * cgraph.h (symtab_node_base): Add definition, alias and analyzed
2210         flags; reorder rest of fields in more consistent way.
2211         (varpool_node): Remove analyzed, finalized and alias.
2212         (cgraph_ndoe): Likewise.
2213         (symtab_alias_ultimate_target): New function.
2214         (cgraph_function_node): Move offline.
2215         (cgraph_reset_node): Declare.
2216         (cgraph_comdat_can_be_unshared_p): Remove.
2217         (varpool_remove_initializer): Declare.
2218         (varpool_first_defined_variable, varpool_next_defined_variable
2219         cgraph_first_defined_function, cgraph_next_defined_function): Update.
2220         (cgraph_function_with_gimple_body_p): Update.
2221         (varpool_all_refs_explicit_p): Update.
2222         (symtab_alias_target): New function.
2223         (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
2224         (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
2225         (cgraph_function_or_thunk_node): Simplify using
2226         symtab_alias_ultimate_target.
2227         (varpool_variable_node): Likewise.
2228         * cgraph.c (cgraph_create_function_alias): Update.
2229         (cgraph_add_thunk): Update.
2230         (cgraph_remove_node): Update.
2231         (dump_cgraph_node): Do not dump removed flags.
2232         (cgraph_function_body_availability): Update.
2233         (cgraph_propagate_frequency): Update.
2234         (verify_cgraph_node): Check sanity of local flag.
2235         (cgraph_function_node): Move here from cgraph.h; revamp for
2236         cgraph_function_or_thunk_node.
2237         * lto-symtab.c (lto_varpool_replace_node): Update.
2238         (lto_symtab_resolve_can_prevail_p): Update.
2239         (lto_symtab_merge_cgraph_nodes): Update.
2240         * ipa-cp.c (determine_versionability, initialize_node_lattices,
2241         propagate_constants_accross_call, devirtualization_time_bonus,
2242         ipcp_propagate_stage): Update.
2243         * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
2244         * ipa-inline-transform.c (clone_inlined_nodes,
2245         preserve_function_body_p): Update.
2246         * ipa-reference.c (propagate): Update.
2247         (write_node_summary_p): Update.
2248         * toplev.c (wrapup_global_declaration_2): Update.
2249         * cgraphunit.c (cgraph_analyze_function): Rename to ...
2250         (analyze_function) ... this one.
2251         (cgraph_process_new_functions): Update.
2252         (cgraph_reset_node): Export.
2253         (cgraph_finalize_function): Update.
2254         (cgraph_add_new_function): Update.
2255         (process_function_and_variable_attributes): Update.
2256         (varpool_finalize_decl): Update.
2257         (symbol_finalized): Remove.
2258         (symbol_finalized_and_needed): Rename to ...
2259         (symbol_defined_and_needed): ... update.
2260         (cgraph_analyze_functions): Update.
2261         (handle_alias_pairs): Update.
2262         (mark_functions_to_output): Update.
2263         (assemble_thunk): Update.
2264         (output_in_order): Update.
2265         (output_weakrefs): Update.
2266         (finalize_compilation_unit): Update.
2267         * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
2268         lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
2269         input_node, input_varpool_node): Update.
2270         * dbxout.c (dbxout_expand_expr): Update.
2271         * cgraphclones.c (cgraph_clone_node): Update.
2272         (cgraph_copy_node_for_versioning): Update.
2273         (cgraph_materialize_clone): Update.
2274         (cgraph_materialize_all_clones): Update.
2275         * ipa-pure-const.c (analyze_function, pure_const_write_summary,
2276         propagate_pure_const, propagate_nothrow): Update.
2277         * lto-streamer-out.c (lto_output, write_symbol): Update.
2278         * ipa-utils.c (ipa_reverse_postorder): Update.
2279         * ipa-inline.c (can_inline_edge_p): Update.
2280         (update_caller_keys, ipa_inline): Update.
2281         * dwarf2out.c (reference_to_unused,
2282         premark_types_used_by_global_vars_helper): Update.
2283         * tree-eh.c (tree_could_trap_p): Update.
2284         * ipa-split.c (consider_split, execute_split_functions): Update.
2285         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
2286         has_addr_references_p): Update; move ahead in file for better
2287         readability.
2288         (process_references): Simplify.
2289         (symtab_remove_unreachable_nodes): Update; cleanup way function/var
2290         bodies are removed.
2291         (cgraph_comdat_can_be_unshared_p): Make static.
2292         (cgraph_externally_visible_p): Update.
2293         (varpool_externally_visible_p): Update.
2294         (function_and_variable_visibility): Update.
2295         * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
2296         ipa_tm_mark_force_output_node): Update.
2297         * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
2298         estimate_edge_devirt_benefit, inline_generate_summary,
2299         inline_write_summary): Update.
2300         * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
2301         * ipa-prop.c (ipa_compute_jump_functions): Update.
2302         (ipa_print_node_params, ipa_prop_read_section,
2303         ipa_update_after_lto_read, read_replacements_section): Update.
2304         * varasm.c (mark_decl_referenced): Update.
2305         (assemble_alias, dump_tm_clone_pairs): Update.
2306         * tree-inline.c (copy_bb): Update.
2307         (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
2308         Update.
2309         * symtab.c (dump_symtab_base): Print new flags.
2310         (verify_symtab_base): Verify new flags.
2311         (symtab_alias_ultimate_target): New function.
2312         * tree-ssa-structalias.c (get_constraint_for_ssa_var,
2313         create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
2314         Update.
2315         * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
2316         Update.
2317         * i386.c (ix86_get_function_versions_dispatcher,
2318         ix86_generate_version_dispatcher_body): Update.
2319         (fold_builtin_cpu): Use varpool_add_new_variable.
2320         * varpool.c (varpool_remove_initializer): Break out from ...
2321         (varpool_remove_node): ... this one.
2322         (dump_varpool_node, varpool_node_for_asm,
2323         cgraph_variable_initializer_availability, varpool_analyze_node,
2324         varpool_assemble_decl, varpool_remove_unreferenced_decls,
2325         varpool_finalize_named_section_flags, varpool_create_variable_alias):
2326         Update.
2327
2328 2013-05-29  Jan Hubicka  <jh@suse.cz>
2329
2330         * passes.c (init_optimization_passes): Move OMP expansion into lowering.
2331
2332 2013-05-29  Easwaran Raman  <eraman@google.com>
2333
2334         PR tree-optimization/57442
2335         * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
2336         when control exits the main loop.
2337
2338 2013-05-29  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
2339
2340         * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
2341         and RX600.
2342         * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
2343         * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
2344         * rx/t-rx: Add rx100 under multi library matches option for nofpu
2345         option.
2346
2347 2013-05-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2348
2349         PR tree-optimization/57441
2350         * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
2351         Don't limit size of incr_vec to number of candidates.
2352
2353 2013-05-29  Steve Ellcey  <sellcey@imgtec.com>
2354
2355         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
2356         and mips16 directories.
2357         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
2358         (MULTILIB_DIRNAMES): Ditto.
2359         (MULTILIB_EXCEPTIONS): Add new exceptions.
2360         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
2361         (MULTILIB_DIRNAMES): Ditto.
2362         (MULTILIB_EXCEPTIONS): Add new exceptions.
2363
2364 2012-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2365             Marcus Shawcroft  <marcus.shawcroft@arm.com>
2366
2367         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
2368         SYMBOL_TINY_ABSOLUTE.
2369         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
2370         SYMBOL_TINY_ABSOLUTE.
2371         (aarch64_expand_mov_immediate): Likewise.
2372         (aarch64_classify_symbol): Likewise.
2373         (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
2374         Permit SYMBOL_TINY_ABSOLUTE.
2375         * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
2376
2377 2013-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2378             Marcus Shawcroft  <marcus.shawcroft@arm.com>
2379
2380         * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
2381         Refactor if/switch.  Replace gcc_assert with if.
2382
2383 2013-05-29  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
2384
2385         * config/i386/i386.c (initial_ix86_tune_features): Enable
2386         FP Reassociation for AMD bdver1 and bdver2.
2387
2388 2013-05-29  Martin Jambor  <mjambor@suse.cz>
2389
2390         * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
2391         and IMAGPART_EXPR do not occur within other handled_components.
2392
2393 2013-05-29  Richard Biener  <rguenther@suse.de>
2394
2395         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
2396         access on whether the use is in the BB we currently try to
2397         vectorize.
2398         (vect_bb_vectorization_profitable_p): Pass the BB we currently
2399         vectorize to vect_bb_slp_scalar_cost.
2400
2401 2013-05-29  Richard Biener  <rguenther@suse.de>
2402
2403         * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
2404         computing scalar cost offsetted by stmts that are kept live
2405         by scalar uses.
2406         (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
2407         for computation of scalar cost.
2408
2409 2013-05-28  Steve Ellcey  <sellcey@mips.com>
2410
2411         * config/mips/mips-cpus.def (mips32r2): Change processor type.
2412
2413 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2414
2415         * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
2416         array notation built-in reduction functions.
2417         * doc/passes.texi (Passes): Added documentation about changes done
2418         for Cilk Plus.
2419         * doc/invoke.texi (C Dialect Options): Added documentation about
2420         the -fcilkplus flag.
2421         * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
2422         (BUILTINS_DEF): Depend on cilkplus.def.
2423         * builtins.def: Include cilkplus.def.  Define DEF_CILKPLUS_BUILTIN.
2424         * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
2425         * cilkplus.def: New file.
2426
2427 2013-05-28  Joern Rennecke <joern.rennecke@embecosm.com>
2428
2429         PR rtl-optimization/57439
2430         * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
2431
2432 2013-05-28  Easwaran Raman  <eraman@google.com>
2433
2434         PR tree-optimization/57337
2435         * tree-ssa-reassoc.c (appears_later_in_bb): New function.
2436         (find_insert_point): Correctly identify the insertion point
2437         when two statements with the same UID is compared.
2438
2439 2013-05-28  Richard Biener  <rguenther@suse.de>
2440
2441         PR tree-optimization/56787
2442         * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
2443         from the list of data references.
2444         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
2445         clobbers.
2446         (vect_analyze_loop_operations): Likewise.
2447         (vect_transform_loop): Remove clobbers.
2448
2449 2013-05-28  Martin Jambor  <mjambor@suse.cz>
2450
2451         * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
2452         and REALPART_EXPRs have scalar type.
2453
2454 2013-05-28  Richard Biener  <rguenther@suse.de>
2455
2456         PR tree-optimization/57411
2457         * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
2458         virtual operands.
2459         * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
2460         virtual operand propagation.
2461
2462 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2463
2464         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
2465         destination register for bmasksi_vis.
2466         (vector_init_bshuffle): Likewise.
2467         * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
2468
2469 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2470
2471         * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
2472         * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
2473         mode if the instruction isn't available in the original mode.
2474         * config/sparc/sparc.opt (mfix-ut699): New option.
2475         * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
2476         (divdf3): Turn into expander.
2477         (divdf3_nofix): New insn.
2478         (divdf3_fix): Likewise.
2479         (divsf3): Disable if -mfix-ut699.
2480         (sqrtdf2): Turn into expander.
2481         (sqrtdf2_nofix): New insn.
2482         (sqrtdf2_fix): Likewise.
2483         (sqrtsf2): Disable if -mfix-ut699.
2484
2485 2013-05-27  Richard Biener  <rguenther@suse.de>
2486
2487         PR middle-end/57412
2488         * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
2489         block for the new loop.
2490
2491 2013-05-27  Richard Biener  <rguenther@suse.de>
2492
2493         PR tree-optimization/57343
2494         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
2495         use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
2496         (number_of_iterations_cond): Do not build the folded tree.
2497
2498 2013-05-27  Richard Biener  <rguenther@suse.de>
2499
2500         Revert
2501         PR middle-end/57381
2502         * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
2503         OEP_CONSTANT_ADDRESS_OF retained.
2504
2505         PR tree-optimization/57417
2506         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
2507         for unchanged base.
2508         (set_ssa_val_to): Compare addresses using
2509         get_addr_base_and_unit_offset.
2510
2511 2013-05-27  Joern Rennecke <joern.rennecke@embecosm.com>
2512
2513         PR rtl-optimization/56833
2514         * postreload.c (move2add_record_mode): New function.
2515         (move2add_record_sym_value, move2add_valid_value_p): Likewise.
2516         (move2add_use_add2_insn): Use move2add_record_sym_value.
2517         (move2add_use_add3_insn): Likewise.
2518         (reload_cse_move2add): Use move2add_valid_value_p and
2519         move2add_record_mode.  Invalidate call-clobbered and REG_INC
2520         affected regs by setting reg_mode to VOIDmode.
2521         (move2add_note_store): Don't pretend the inside of a SUBREG is
2522         the actual destination.  Invalidate single/leading registers by
2523         setting reg_mode to VOIDmode.
2524         Use move2add_record_sym_value, move2add_valid_value_p and
2525         move2add_record_mode.
2526
2527 2013-05-27  Richard Biener  <rguenther@suse.de>
2528
2529         PR tree-optimization/57396
2530         * tree-affine.c (double_int_constant_multiple_p): Properly
2531         return false for val == 0 and div != 0.
2532
2533 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
2534
2535         * config/mips/mips.h: Use #elif in preprocessor conditions.
2536
2537 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
2538
2539         PR target/53916
2540         * config/mips/constraints.md (kl): New constraint.
2541         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
2542         (divmod<mode>4_internal): Rename to divmod<mode>4.  Use "kl" as the
2543         constraint for operand 0.  Split after CSE for MIPS16.  Emit a move
2544         from LO for MIPS16.
2545         (udivmod<mode>4_internal): Likewise udivmod<mode>4.
2546
2547 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
2548
2549         PR target/55777
2550         * config/mips/mips.c (mips_can_inline_p): New function.
2551         (TARGET_CAN_INLINE_P): Define.
2552
2553 2013-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2554
2555         * sched-int.h (ds_t, dw_t): Make unsigned int.
2556         Fix documentation that describes how all the ds_t bits are used.
2557         Reserve the last bit for delayed-branch scheduling.
2558         (BITS_PER_DEP_STATUS): Move to ds_t typedef.
2559         (BITS_PER_DEP_WEAK): Fix definition and documentation.
2560         (gen_dep_weak_1): Remove prototype.
2561         * sched-deps.c (get_dep_weak_1): Make static.
2562         * target.def (speculate_insn, needs_block_p, gen_spec_check,
2563         get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
2564         * doc/tm.texi: Regenerate.
2565         * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
2566
2567 2013-05-24  Steven Bosscher  <steven@gcc.gnu.org>
2568
2569         PR debug/56950
2570         * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
2571
2572 2013-05-24  Nathan Sidwell  <nathan@codesourcery.com>
2573             Sandra Loosemore  <sandra@codesourcery.com>
2574
2575         * config.gcc (powerpc-*): Allow native for with-cpu.
2576
2577 2013-05-24  Jeff Law  <law@redhat.com>
2578
2579         PR tree-optimization/57124
2580         * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
2581         conversion feeding a condition if the range has an overflow
2582         if -fstrict-overflow.  Add warnings for when we do make the
2583         transformation.
2584
2585 2013-05-24  Dehao Chen  <dehao@google.com>
2586
2587         * tree-cfg.c (locus_discrim_map): Fix the typo.
2588         (locus_discrim_hasher): Likewise.
2589         (locus_discrim_hasher::hash): Likewise.
2590         (locus_discrim_hasher::equal): Likewise.
2591
2592 2013-05-24  Martin Jambor  <mjambor@suse.cz>
2593
2594         PR tree-optimization/57294
2595         * cgraph.h (ipa_record_stmt_references): Declare.
2596         * cgraphbuild.c (ipa_record_stmt_references): New function.
2597         (build_cgraph_edges): Use ipa_record_stmt_references.
2598         (rebuild_cgraph_edges): Likewise.
2599         (cgraph_rebuild_references): Likewise.
2600         * ipa-prop.c (ipa_modify_call_arguments): Discard references
2601         associated with the old statement and build references from the
2602         newly built statements.
2603         * ipa-ref.c (ipa_remove_stmt_references): New function.
2604         * ipa-ref.h (ipa_remove_stmt_references): Declare.
2605
2606 2013-05-24  Vladimir Makarov  <vmakarov@redhat.com>
2607
2608         * lra-constraints.c (emit_spill_move): Use smaller mode for
2609         mem-mem moves.
2610         (check_and_process_move): Consider mem-reg moves for secondary
2611         too.
2612         (curr_insn_transform): Don't lose insns emitted before for
2613         secondary memory moves.
2614         (inherit_in_ebb): Mark defined reg.  Add usage only if it is not a
2615         reg set up in the current insn.
2616
2617 2013-05-24  Dehao Chen  <dehao@google.com>
2618
2619         * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
2620         hash function.
2621         (locus_descrim_hasher::equal): Likewise.
2622         (build_gimple_cfg): New discriminator assignment algorithm.
2623         (make_edges): Likewise.
2624         (next_discriminator_for_locus): Likewise.
2625         (same_line_p): Likewise.
2626         (assign_discriminators): Likewise.
2627         (make_cond_expr_edges): Likewise.
2628         (make_gimple_switch_edges): Likewise.
2629         (make_goto_expr_edges): Likewise.
2630         (make_gimple_asm_edges): Likewise.
2631
2632 2013-05-24  Ian Bolton  <ian.bolton@arm.com>
2633
2634         * config/aarch64/aarch64.c (aarch64_print_operand): Change the
2635         X format specifier to only display bottom 16 bits.
2636         * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
2637         immediate to match for operand 2, since it will be masked.
2638
2639 2013-05-24  Richard Biener  <rguenther@suse.de>
2640
2641         PR tree-optimization/57287
2642         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
2643         all SSA names that occur in abnormal PHIs.
2644
2645 2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2646
2647         PR tree-ssa/57385
2648         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
2649         that index is not negative.
2650
2651 2013-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2652
2653         PR rtl-optimization/55177
2654         * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
2655         (simplify_byte_swapping_operation): New.
2656         (simplify_binary_operation_1): Call it for AND, IOR and XOR.
2657         (simplify_relational_operation_1): Deal with BSWAP.
2658
2659 2013-05-23  Richard Henderson  <rth@redhat.com>
2660
2661         PR target/56742
2662         * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
2663         (ix86_reorg): Call it.
2664
2665 2013-05-23  Uros Bizjak  <ubizjak@gmail.com>
2666
2667         PR target/57379
2668         * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
2669         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
2670         REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
2671
2672 2013-05-23  Christian Bruel  <christian.bruel@st.com>
2673
2674         PR debug/57351
2675         * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
2676
2677 2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2678             Marcus Shawcroft  <marcus.shawcroft@arm.com>
2679
2680         * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
2681         * config/aarch64/constraints.md (Usa): Remove.
2682         * doc/md.texi (AArch64 Usa): Remove.
2683
2684 2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2685             Marcus Shawcroft  <marcus.shawcroft@arm.com>
2686
2687         * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
2688         * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
2689         * config/aarch64/predicates.md (aarch64_const_address): Remove.
2690         (aarch64_mov_operand): Use aarch64_mov_operand_p.
2691
2692 2013-05-23  Vidya Praveen <vidyapraveen@arm.com>
2693
2694         * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
2695         instruction (AdvSIMD).
2696         * config/aarch64/aarch64-builtins.c
2697         (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
2698         * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
2699
2700 2013-05-23  Martin Jambor  <mjambor@suse.cz>
2701
2702         PR middle-end/57347
2703         * tree.h (contains_bitfld_component_ref_p): Declare.
2704         * tree-sra.c (contains_bitfld_comp_ref_p): Move...
2705         * tree.c (contains_bitfld_component_ref_p): ...here.  Adjust its
2706         caller.
2707         * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
2708         not access a bit-field.  Assert all final offsets are byte-aligned.
2709
2710 2013-05-23  Richard Biener  <rguenther@suse.de>
2711
2712         PR tree-optimization/57380
2713         * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
2714         least one invariant or re-used load.
2715         * passes.c (init_optimization_passes): Move pass_phiprop before
2716         pass_forwprop.
2717
2718 2013-05-23  James Greenhalgh  <james.greenhalgh@arm.com>
2719
2720         * config/aarch64/aarch64-simd.md
2721         (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
2722
2723 2013-05-23  Richard Biener  <rguenther@suse.de>
2724
2725         PR middle-end/57381
2726         * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
2727         OEP_CONSTANT_ADDRESS_OF retained.
2728
2729 2013-05-23  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR middle-end/57344
2732         * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
2733         don't lower unit.  Handle unit not being always BITS_PER_WORD.
2734
2735 2013-05-23  Richard Biener  <rguenther@suse.de>
2736
2737         PR rtl-optimization/57341
2738         * ira.c (validate_equiv_mem_from_store): Use anti_dependence
2739         instead of true_dependence.
2740
2741 2013-05-22  David Malcolm  <dmalcolm@redhat.com>
2742
2743         * bb-reorder.c (branch_threshold): Make const.
2744         (exec_threshold): Ditto.
2745
2746 2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2747             Pat Haugen <pthaugen@us.ibm.com>
2748             Peter Bergner <bergner@vnet.ibm.com>
2749
2750         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
2751         documentation for the power8 crypto builtins.
2752
2753         * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
2754
2755         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
2756         macros for defining power8 builtin functions.
2757         (BU_P8V_AV_2): Likewise.
2758         (BU_P8V_AV_P): Likewise.
2759         (BU_P8V_VSX_1): Likewise.
2760         (BU_P8V_OVERLOAD_1): Likewise.
2761         (BU_P8V_OVERLOAD_2): Likewise.
2762         (BU_CRYPTO_1): Likewise.
2763         (BU_CRYPTO_2): Likewise.
2764         (BU_CRYPTO_3): Likewise.
2765         (BU_CRYPTO_OVERLOAD_1): Likewise.
2766         (BU_CRYPTO_OVERLOAD_2): Likewise.
2767         (XSCVSPDP): Fix typo, point to the correct instruction.
2768         (VCIPHER): Add power8 crypto builtins.
2769         (VCIPHERLAST): Likewise.
2770         (VNCIPHER): Likewise.
2771         (VNCIPHERLAST): Likewise.
2772         (VPMSUMB): Likewise.
2773         (VPMSUMH): Likewise.
2774         (VPMSUMW): Likewise.
2775         (VPERMXOR_V2DI): Likewise.
2776         (VPERMXOR_V4SI: Likewise.
2777         (VPERMXOR_V8HI: Likewise.
2778         (VPERMXOR_V16QI: Likewise.
2779         (VSHASIGMAW): Likewise.
2780         (VSHASIGMAD): Likewise.
2781         (VPMSUM): Likewise.
2782         (VPERMXOR): Likewise.
2783         (VSHASIGMA): Likewise.
2784
2785         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2786         __CRYPTO__ if the crypto instructions are available.
2787         (altivec_overloaded_builtins): Add support for overloaded power8
2788         builtins.
2789
2790         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
2791         support for power8 crypto builtins.
2792         (builtin_function_type): Likewise.
2793         (altivec_init_builtins): Add support for builtins that take vector
2794         long long (V2DI) arguments.
2795
2796         * config/rs6000/crypto.md: New file, define power8 crypto
2797         instructions.
2798
2799 2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2800             Pat Haugen <pthaugen@us.ibm.com>
2801             Peter Bergner <bergner@vnet.ibm.com>
2802
2803         * doc/invoke.texi (Option Summary): Add power8 options.
2804         (RS/6000 and PowerPC Options): Likewise.
2805
2806         * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
2807         constraints.md instead of rs6000.h.  Reorder w* constraints.  Add
2808         wm, wn, wr documentation.
2809
2810         * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
2811         registers if direct move instructions are enabled.
2812         (wn): New constraint for no registers.
2813         (wq): New constraint for quad word even GPR registers.
2814         (wr): New constraint if 64-bit instructions are enabled.
2815         (wv): New constraint if power8 vector instructions are enabled.
2816         (wQ): New constraint for quad word memory locations.
2817
2818         * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
2819         constraint for 0..15 for crypto instructions.
2820         (gpc_reg_operand): If VSX allow registers in VSX registers as well
2821         as GPR and floating point registers.
2822         (int_reg_operand): New predicate to match only GPR registers.
2823         (base_reg_operand): New predicate to match base registers.
2824         (quad_int_reg_operand): New predicate to match even GPR registers
2825         for quad memory operations.
2826         (vsx_reg_or_cint_operand): New predicate to allow vector logical
2827         operations in both GPR and VSX registers.
2828         (quad_memory_operand): New predicate for quad memory operations.
2829         (reg_or_indexed_operand): New predicate for direct move support.
2830
2831         * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
2832         Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
2833         (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
2834         (POWERPC_MASKS): Add power8 options.
2835         (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
2836         various options.
2837
2838         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2839         Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
2840
2841         * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
2842         (-mpower8-fusion): New power8 options.
2843         (-mpower8-fusion-sign): Likewise.
2844         (-mpower8-vector): Likewise.
2845         (-mcrypto): Likewise.
2846         (-mdirect-move): Likewise.
2847         (-mquad-memory): Likewise.
2848
2849         * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
2850         power8.
2851         (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
2852         registers.
2853         (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
2854         (rs6000_debug_vector_unit): Add p8_vector.
2855         (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
2856         definitions.  Also print fusion state.
2857         (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
2858         (rs6000_builtin_mask_calculate): Add power8 builtin support.
2859         (rs6000_option_override_internal): Add support for power8.
2860         (rs6000_common_init_builtins): Add debugging for skipped builtins
2861         if -mdebug=builtin.
2862         (rs6000_adjust_cost): Add power8 support.
2863         (rs6000_issue_rate): Likewise.
2864         (insn_must_be_first_in_group): Likewise.
2865         (insn_must_be_last_in_group): Likewise.
2866         (force_new_group): Likewise.
2867         (rs6000_register_move_cost): Likewise.
2868         (rs6000_opt_masks): Likewise.
2869
2870         * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
2871         power8 capable assembler, default to power7 options.
2872         (TARGET_DIRECT_MOVE): Likewise.
2873         (TARGET_CRYPTO): Likewise.
2874         (TARGET_P8_VECTOR): Likewise.
2875         (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
2876         (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
2877         (VECTOR_MEM_P8_VECTOR_P): Likewise.
2878         (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
2879         (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
2880         (TARGET_XSCVDPSPN): Likewise.
2881         (TARGET_XSCVSPDPN): Likewsie.
2882         (TARGET_SYNC_HI_QI): Likewise.
2883         (TARGET_SYNC_TI): Likewise.
2884         (MASK_CRYPTO): Likewise.
2885         (MASK_DIRECT_MOVE): Likewise.
2886         (MASK_P8_FUSION): Likewise.
2887         (MASK_P8_VECTOR): Likewise.
2888         (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
2889         temporary used by some of the direct move instructions to get two FP
2890         temporary registers does not force creation of a stack frame.
2891         (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
2892         (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
2893         that any VSX registers are tieable, even if they are also an
2894         Altivec vector mode.
2895         (r6000_reg_class_enum): Add wm, wr, wv constraints.
2896         (RS6000_BTM_P8_VECTOR): Power8 builtin support.
2897         (RS6000_BTM_CRYPTO): Likewise.
2898         (RS6000_BTM_COMMON): Likewise.
2899
2900         * config/rs6000/rs6000.md (cpu attribute): Add power8.
2901         * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
2902         (enum rs6000_vector): Add power8 vector support.
2903
2904 2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2905
2906         PR target/19599
2907         PR target/57340
2908         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
2909         (any_sibcall_could_use_r3): this and handle indirect calls.
2910         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
2911
2912 2013-05-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2913
2914         * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
2915
2916 2013-05-22  Richard Biener  <rguenther@suse.de>
2917
2918         PR middle-end/57349
2919         * profile.c (branch_prob): Do not split blocks that are
2920         abnormally receiving from ECF_RETURNS_TWICE functions.
2921
2922 2013-05-22  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
2923
2924         * recog.c (offsettable_address_addr_space_p): Fix calculation of
2925         address mode.  Move pointer mode initialization to the same place.
2926
2927 2013-05-22  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2928
2929         * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
2930         while it has any effect.
2931
2932 2013-05-21  Easwaran Raman  <eraman@google.com>
2933
2934         PR tree-optimization/57322
2935         * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
2936         UID of the statement added to the BB to be 1.
2937
2938 2013-05-21  Jakub Jelinek  <jakub@redhat.com>
2939
2940         PR tree-optimization/57331
2941         * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
2942         of conversion from pointer type to integral type with integer.
2943
2944 2013-05-21  Martin Jambor  <mjambor@suse.cz>
2945
2946         PR lto/57289
2947         * ipa-prop.c (ipa_read_node_info): Process param_used and
2948         controlled_uses in the same order as when writing.
2949
2950 2013-05-21  Magnus Granberg  <baldrick@free.fr>
2951
2952         PR plugins/56754
2953         * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
2954
2955 2013-05-21  Richard Biener  <rguenther@suse.de>
2956
2957         PR tree-optimization/57318
2958         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
2959         estimate stmts with side-effects as likely eliminated.
2960
2961 2013-05-21  Richard Biener  <rguenther@suse.de>
2962
2963         PR tree-optimization/57330
2964         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
2965         preserve the call stmts fntype.
2966
2967 2013-05-21  Richard Biener  <rguenther@suse.de>
2968
2969         PR tree-optimization/57303
2970         * tree-ssa-sink.c (statement_sink_location): Improve killing
2971         stmt detection and properly handle self-assignments.
2972
2973 2013-05-21  Christian Bruel  <christian.bruel@st.com>
2974
2975         * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
2976         spanning registers. LEAF_REG_REMAP is supported only for contiguous
2977         registers. Set register size out of the PARALLEL loop.
2978
2979 2013-05-20  Oleg Endo  <olegendo@gcc.gnu.org>
2980
2981         PR target/56547
2982         * config/sh/sh.md (fmasf4): Remove empty constraints strings.
2983         (*fmasf4, *fmasf4_media): New insns.
2984
2985 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
2986
2987         * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
2988         * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
2989         (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
2990         (mips_idiv_insns): Update the comments to say that the returned
2991         instruction counts are in units of BASE_INSN_LENGTH.
2992         (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
2993         by BASE_INSN_LENGTH rather than 4.  Add the jump separately,
2994         using 2 rather than 4 as the length of indirect MIPS16 and
2995         microMIPS jumps.  Use NOP_INSN_LENGTH rather than 4 as the
2996         length of a NOP.  Don't divide MIPS16 lengths by 2.
2997         (mips16_split_long_branches): Assume a branch is long if the
2998         length is greater than 4 rather than 8.
2999         * config/mips/mips.md (length): Give MIPS16 lengths directly,
3000         rather than multiplying them by 2.  Multiply instruction counts
3001         by BASE_INSN_LENGTH rather than 4.
3002         (*jump_mips16, tls_get_tp_mips16_<mode>)
3003         (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
3004
3005 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3006
3007         * config/mips/mips.md (extended_mips16): Remove branch case.
3008         (length): Remove duplicated extended_mips16 test.
3009
3010 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3011
3012         * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
3013
3014 2013-05-18  Richard Sandiford  <rdsandiford@googlemail.com>
3015
3016         * recog.h (Recog_data): Rename to...
3017         (recog_data_d): ...this.
3018         (recog_data): Update accordingly.
3019         * recog.c (recog_data): Likewise.
3020         * reload.c (save_recog_data): Likewise.
3021         * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
3022         (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
3023
3024 2013-05-17  Julian Brown  <julian@codesourcery.com>
3025
3026         * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
3027         found in a REG_EQUAL note, invalidate it.
3028
3029 2013-05-17   Easwaran Raman  <eraman@google.com>
3030
3031         * tree-ssa-reassoc.c (find_insert_point): New function.
3032         (insert_stmt_after): Likewise.
3033         (get_def_stmt): Likewise.
3034         (ensure_ops_are_available): Likewise.
3035         (not_dominated_by): Likewise.
3036         (rewrite_expr_tree): Do not move statements beyond what is
3037         necessary. Remove call to swap_ops_for_binary_stmt...
3038         (reassociate_bb): ... and move it here.
3039         (build_and_add_sum): Assign UIDs for new statements.
3040         (linearize_expr): Likewise.
3041         (do_reassoc): Renumber gimple statement UIDs.
3042
3043 2013-05-17  Jan Hubicka  <jh@suse.cz>
3044
3045         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
3046         weakrefs.
3047         * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
3048         * cgraphunit.c (handle_alias_pairs): Store target of unresolved
3049         weakrefs.
3050         (output_weakrefs): Update.
3051
3052 2013-05-17  Po-Chun Chang  <pchang9@cs.wisc.edu>
3053             Martin Jambor  <mjambor@suse.cz>
3054
3055         PR middle-end/57276
3056         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
3057         value that corresponds to the given aggval is found in values vector.
3058
3059 2013-05-17  Uros Bizjak  <ubizjak@gmail.com>
3060
3061         * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
3062         sse, sse2, sse3, ssse3 and sse4a flags to options.
3063
3064 2013-05-17  David Malcolm  <dmalcolm@redhat.com>
3065
3066         * gengtype-state.c: (s_expr_writer): New class, to handle
3067         prettifying of output layout of s-expressions.
3068         (state_writer): New class, to write out gtype.state.
3069         (state_written_type_count): Move this variable into member data of
3070         state_writer.
3071         (s_expr_writer::s_expr_writer): New code: constructor for new class
3072         (state_writer::state_writer(): ditto
3073         (s_expr_writer::write_new_line): New function
3074         (s_expr_writer::write_any_indent): ditto
3075         (s_expr_writer::begin_s_expr): ditto
3076         (s_expr_writer::end_s_expr): ditto
3077         (write_state_fileloc): convert to method of state_writer...
3078         (state_writer:: write_state_fileloc): ...and use methods of
3079         s_expr_writer to write indentation into the gtype.state output file
3080         to visually represent the hierarchical structure of the list
3081         structures
3082         (write_state_fields): ditto, renaming to...
3083         (state_writer::write_state_fields)
3084         (write_state_a_string): ditto, renaming to...
3085         (state_writer::write_state_a_string)
3086         (write_state_string_option): ditto, renaming to...
3087         (state_writer::write_state_string_option)
3088         (write_state_type_option): ditto, renaming to...
3089         (state_writer::write_state_type_option)
3090         (write_state_nested_option): ditto, renaming to...
3091         (state_writer::write_state_nested_option)
3092         (write_state_option): ditto, renaming to...
3093         (state_writer::write_state_option)
3094         (write_state_options): ditto, renaming to...
3095         (state_writer::write_state_options)
3096         (write_state_lang_bitmap): ditto, renaming to...
3097         (state_writer::write_state_lang_bitmap)
3098         (write_state_version): ditto, renaming to...
3099         (state_writer::write_state_version)
3100         (write_state_scalar_type): ditto, renaming to...
3101         (state_writer::write_state_scalar_type)
3102         (write_state_string_type): ditto, renaming to...
3103         (state_writer::write_state_string_type)
3104         (write_state_undefined_type): ditto, renaming to...
3105         (state_writer::write_state_undefined_type)
3106         (write_state_struct_union_type): ditto, renaming to...
3107         (state_writer::write_state_struct_union_type)
3108         (write_state_struct_type): ditto, renaming to...
3109         (state_writer::write_state_struct_type)
3110         (write_state_user_struct_type): ditto, renaming to...
3111         (state_writer::write_state_user_struct_type)
3112         (write_state_lang_struct_type): ditto, renaming to...
3113         (state_writer::write_state_lang_struct_type)
3114         (write_state_param_struct_type): ditto, renaming to...
3115         (state_writer::write_state_param_struct_type)
3116         (write_state_pointer_type): ditto, renaming to...
3117         (state_writer::write_state_pointer_type)
3118         (write_state_array_type): ditto, renaming to...
3119         (state_writer::write_state_array_type)
3120         (write_state_gc_used): ditto, renaming to...
3121         (state_writer::write_state_gc_used)
3122         (write_state_common_type_content): ditto, renaming to...
3123         (state_writer::write_state_common_type_content)
3124         (write_state_type): ditto, renaming to...
3125         (state_writer::write_state_type)
3126         (write_state_pair_list): ditto, renaming to...
3127         (state_writer::write_state_pair_list)
3128         (write_state_pair): ditto, renaming to...
3129         (state_writer::write_state_pair)
3130         (write_state_typedefs): ditto, renaming to...
3131         (state_writer::write_state_typedefs)
3132         (write_state_structures): ditto, renaming to...
3133         (state_writer::write_state_structures)
3134         (write_state_param_structs): ditto, renaming to...
3135         (state_writer::write_state_param_structs)
3136         (write_state_variables): ditto, renaming to...
3137         (state_writer::write_state_variables)
3138         (write_state_srcdir): ditto, renaming to...
3139         (state_writer::write_state_srcdir)
3140         (write_state_files_list): ditto, renaming to...
3141         (state_writer::write_state_files_list)
3142         (write_state_languages): ditto, renaming to...
3143         (state_writer::write_state_languages)
3144         (write_state): create a state_writer instance and use it when
3145         writing out the state file
3146
3147 2013-05-17  Mike Stump  <mikestump@comcast.net>
3148
3149         PR rtl-optimization/57304
3150         * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
3151         accessing DF_REF_REAL_LOC.
3152
3153 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
3154
3155         PR rtl-optimization/57281
3156         PR rtl-optimization/57300
3157         * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
3158         (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
3159         what the other splitter did if the registers are dead.
3160
3161 2013-05-17  Richard Biener  <rguenther@suse.de>
3162
3163         * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
3164         MEM_REF offsets.
3165
3166 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
3167
3168         * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
3169         linking.
3170
3171 2013-05-17  Marek Polacek  <polacek@redhat.com>
3172
3173         * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
3174         length when doing non-zero store of storing '\0' to '\0'.
3175
3176 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
3177
3178         * tree-vect-patterns.c (vect_recog_rotate_pattern): For
3179         vect_external_def oprnd1 with loop_vinfo, try to emit
3180         optional cast, negation and and stmts on the loop preheader
3181         edge instead of into the pattern def seq.
3182
3183         PR tree-optimization/57051
3184         * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
3185         case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
3186
3187 2013-05-16  Nick Clifton  <nickc@redhat.com>
3188
3189         * config/rl78/rl78.c (rl78_attribute_table): Add naked.
3190         (rl78_is_naked_func): New function.
3191         (rl78_expand_prologue): Skip prologue generation for naked functions.
3192         (rl78_expand_epilogue): Skip epilogue generation for naked functions.
3193         * doc/extend.texi (naked): Add RL78 to the list of processors
3194         that supports this attribute.
3195
3196 2013-05-16  Jeff Law  <law@redhat.com>
3197
3198         * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
3199
3200 2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
3201
3202         * config/i386/driver-i386.c (host_detect_local_cpu): Determine
3203         cache parameters using detect_caches_amd also for CYRIX,
3204         NSC and TM2 signatures.
3205
3206 2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
3207             Dzianis Kahanovich  <mahatma@eu.by>
3208
3209         PR target/45359
3210         PR target/46396
3211         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3212         VIA/Centaur processors and determine their cache parameters
3213         using detect_caches_amd.
3214
3215 2013-05-16  Teresa Johnson  <tejohnson@google.com>
3216
3217         * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
3218         (rtl_verify_edges): New function.
3219         (rtl_verify_bb_insns): Ditto.
3220         (rtl_verify_bb_pointers): Ditto.
3221         (rtl_verify_bb_insn_chain): Ditto.
3222         (rtl_verify_fallthru): Ditto.
3223         (rtl_verify_bb_layout): Ditto.
3224         (rtl_verify_flow_info_1): Outline checks into new functions.
3225         (rtl_verify_flow_info): Ditto.
3226
3227 2013-05-16  Steve Ellcey  <sellcey@imgtec.com>
3228
3229         * cfghooks.c (copy_bbs): Add update_dominance argument.
3230         * cfghooks.h (copy_bbs): Update prototype.
3231         * tree-cfg.c (gimple_duplicate_sese_region):
3232         Add update_dominance argument.
3233         * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
3234         * tree-ssa-loop-ch.c (copy_loop_headers): Update
3235         gimple_duplicate_sese_region call.
3236         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
3237         Update copy_bbs call.
3238         * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
3239         * trans-mem.c (ipa_uninstrument_transaction): Ditto.
3240
3241 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
3242
3243         * tree-vectorizer.h (NUM_PATTERNS): Increment.
3244         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
3245         vect_recog_rotate_pattern.
3246         (vect_recog_rotate_pattern): New function.
3247
3248 2013-05-16  Jason Merrill  <jason@redhat.com>
3249
3250         * Makefile.in (LLINKER): New variable.
3251         (mostlyclean): Remove link mutex.
3252         * configure.ac: Handle --enable-link-mutex.
3253         * lock-and-run.sh: New script.
3254
3255 2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3256
3257         PR target/19599
3258         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3259         for NULL decl.
3260
3261 2013-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3262
3263         * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
3264
3265 2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>
3266
3267         * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
3268         * config/arm/arm.c (next_consecutive_mem): New function.
3269         (gen_movmem_ldrd_strd): Likewise.
3270         * config/arm/arm.md (movmemqi): Update condition and code.
3271         (unaligned_loaddi, unaligned_storedi): New patterns.
3272
3273 2013-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3274
3275         * config.gcc: Obsolete *-*-solaris2.9*.
3276         * doc/install.texi (Specific, *-*-solaris2*): Document it.
3277
3278 2013-05-16  Richard Biener  <rguenther@suse.de>
3279
3280         * passes.c (init_optimization_passes): Move pass_parallelize_loops
3281         earlier, after GRAPHITE transforms and IV canonicalization.
3282
3283 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
3284
3285         * omp-low.c (extract_omp_for_data): For collapsed loops,
3286         if at least one of the loops is known at compile time to
3287         iterate zero times, set count to 0.
3288         (expand_omp_regimplify_p): New function.
3289         (expand_omp_for_generic): For collapsed loops, if at least
3290         one of the loops isn't known to iterate at least once,
3291         add runtime check with setting count to 0.
3292         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
3293         For unsigned types if it isn't known at compile time that
3294         the loop will iterate at least once, add runtime check to bypass
3295         the whole loop if initial condition isn't true.
3296
3297 2013-05-16  Nathan Sidwell  <nathan@codesourcery.com>
3298
3299         * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
3300
3301 2013-05-16  Marc Glisse  <marc.glisse@inria.fr>
3302
3303         PR middle-end/57286
3304         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
3305         transformations to avoid an infinite loop.
3306
3307 2013-05-16  Marek Polacek  <polacek@redhat.com>
3308
3309         * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
3310
3311 2013-05-15  Leif Ekblad  <leif@rdos.net>
3312
3313         * config/i386/i386.c (ix86_decompose_address): Use
3314         DEFAULT_TLS_SEG_REG to access TLS segment register.
3315         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
3316         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
3317         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
3318
3319 2013-05-15  Richard Sandiford  <rdsandiford@googlemail.com>
3320
3321         PR target/57260
3322         * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
3323         sibling calls to functions that would normally be lazily bound,
3324         unless $gp is call-clobbered.
3325
3326 2013-05-15  Uros Bizjak  <ubizjak@gmail.com>
3327
3328         * config/i386/i386.c (ix86_option_override_internal): Update
3329         processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags.  Add
3330         PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
3331         non-SSE 3dNow! targets.  Enable TARGET_PRFCHW for TARGET_3DNOW targets.
3332         * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
3333         of TARGET_3DNOW.
3334         (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
3335
3336 2013-05-15  Andreas Schwab  <schwab@suse.de>
3337
3338         * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
3339         for rotlhi3+1 and rotlqi3+1, resp.  Fix reference to non-existing
3340         third operand.
3341
3342 2013-05-15  Teresa Johnson  <tejohnson@google.com>
3343
3344         * loop-unroll.c (report_unroll_peel): Check decision before
3345         emitting unroll/peel message.
3346
3347 2013-05-15  Teresa Johnson  <tejohnson@google.com>
3348
3349         * function.h (has_bb_partition): New rtl_data flag.
3350         (bb_reorder_complete): Ditto.
3351         * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
3352         instead of flag_reorder_blocks_and_partition.
3353         * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
3354         with some enhancements.
3355         (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
3356         * bb-reorder.c (connect_traces): Check for has_bb_partition
3357         instead of flag_reorder_blocks_and_partition.
3358         (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
3359         (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
3360         verify_hot_cold_block_grouping.
3361         (partition_hot_cold_basic_blocks): Set has_bb_partition.
3362
3363 2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3364
3365         PR target/19599
3366         * config/arm/predicates.md (call_insn_operand): New predicate.
3367         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
3368         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
3369         if insn is not a tail call.
3370         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
3371         registers.
3372         * config/arm/arm.h (enum reg_class): New caller save register class.
3373         (REG_CLASS_NAMES): Likewise.
3374         (REG_CLASS_CONTENTS): Likewise.
3375         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
3376         without decls.
3377
3378 2013-05-15  Richard Biener  <rguenther@suse.de>
3379
3380         * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
3381         of MSG_OPTIMIZED_LOCATIONS.
3382         * tree-vect-slp.c (vect_make_slp_decision): Likewise.
3383         (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
3384         message.
3385         * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
3386         of MSG_OPTIMIZED_LOCATIONS.
3387         (execute_vect_slp): Likewise.
3388         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
3389         (vect_create_cond_for_alias_checks): Likewise.
3390         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
3391         (vect_recog_widen_mult_pattern): Likewise.
3392         (vect_recog_widen_sum_pattern): Likewise.
3393         (vect_recog_over_widening_pattern): Likewise.
3394         (vect_recog_widen_shift_pattern): Likewise.
3395         (vect_recog_vector_vector_shift_pattern): Likewise.
3396         (vect_recog_divmod_pattern): Likewise.
3397         (vect_recog_mixed_size_cond_pattern): Likewise.
3398         (vect_recog_bool_pattern): Likewise.
3399         (vect_pattern_recog_1): Likewise.
3400
3401 2013-05-15  Martin Jambor  <mjambor@suse.cz>
3402
3403         * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
3404         non-functions to builtin_unreachable.
3405         * ipa-inline-transform.c (inline_call): Do not assert estimates were
3406         correct when new direct edges were discovered.
3407
3408 2013-05-15  Martin Jambor  <mjambor@suse.cz>
3409
3410         * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
3411         header, print symbol order instead of node uid, print more information
3412         about indirect edge targets.
3413         (ipa_make_edge_direct_to_target): Print symbol order instead of node
3414         uids.
3415         (ipa_make_edge_direct_to_target): Likewise.
3416         (remove_described_reference): Likewise.
3417         (propagate_controlled_uses): Likewise.
3418         (ipa_print_node_params): Also print symbol order.
3419         (ipcp_transform_function): Print symbol order instead of node uids.
3420         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
3421         (cgraph_get_create_real_symbol_node): Likewise.
3422         * ipa-cp.c (print_lattice): Likewise.
3423         (print_all_lattices): Likewise.
3424         (determine_versionability): Likewise.
3425         (initialize_node_lattices): Likewise.
3426         (estimate_local_effects): Likewise.
3427         (update_profiling_info): Likewise.
3428         (create_specialized_node): Likewise.
3429         (perhaps_add_new_callers): Likewise.
3430         (decide_about_value): Likewise.
3431         (decide_whether_version_node): Likewise.
3432         (identify_dead_nodes): Likewise.
3433         * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
3434         (dump_inline_summary): Likewise.
3435         (estimate_node_size_and_time): Likewise.
3436         (inline_analyze_function): Likewise.
3437         * ipa-inline.c (report_inline_failed_reason): Likewise.
3438         (want_early_inline_function_p): Likewise.
3439         (edge_badness): Likewise.
3440         (update_edge_key): Likewise.
3441         (inline_small_functions): Likewise.  Add dumping of order to two other
3442         dumps.
3443         * ipa-pure-const.c (pure_const_read_summary): Print symbol order
3444         instead of node uids.
3445         (propagate_pure_const): Likewise.
3446         (propagate_pure_const): Likewise.
3447         * ipa-utils.c (dump_cgraph_node_set): Likewise.
3448         * lto-cgraph.c (input_node): Explicitly specify we dump uid.
3449         * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
3450         of node uids.
3451         * tree-pretty-print.c (dump_function_header): Likewise.
3452         * tree-sra.c (convert_callers_for_node): Dump in traditional format.
3453         Print symbol order instead of node uids.
3454
3455 2013-05-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3456
3457         * config/s390/s390.c (s390_register_move_cost): Don't impose the
3458         FPR<->GPR move cost penalty if ldgr/lgdr can be used.
3459
3460 2013-05-15  Richard Biener  <rguenther@suse.de>
3461
3462         PR tree-optimization/57275
3463         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
3464         return value for fail to do runtime alias checks for gather loads.
3465
3466 2013-05-15  Jan Hubicka  <jh@suse.cz>
3467
3468         PR lto/57038
3469         PR lto/47375
3470         * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
3471         weakrefs are not external.
3472         (lto_symtab_merge_decls): Fix thinko when dealing with
3473         non-lto_symtab decls.
3474         (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
3475         (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
3476         * varpool.c (dump_varpool_node): Dump more flags.
3477
3478 2013-05-15  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
3479
3480         * config/i386/i386.c (processor_alias_table): Add instruction
3481         FSGSBASE for AMD bdver3 architecture.
3482
3483 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
3484
3485         * tree.c (warn_deprecated_use): Print file:line using locus color.
3486         * diagnostic.c (diagnostic_report_current_module): Print file:line
3487         and file:line:column using locus color.
3488
3489 2013-05-14  Mike Stump  <mikestump@comcast.net>
3490
3491         * gdbinit.in: Add __null.
3492
3493 2013-05-14  Mike Stump  <mikestump@comcast.net>
3494
3495         * recog.h: Rename struct recog_data to Recog_data.
3496         * recog.c: Likewise.
3497         * reload.c (can_reload_into): Likewise.
3498         * config/picochip/picochip.c: Likewise.
3499
3500 2013-05-14  Mike Stump  <mikestump@comcast.net>
3501
3502         * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
3503
3504 2013-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3505
3506         * resource.h (struct resources): Remove unch_memory member.
3507         (CLEAR_RESOURCE): Don't clear unch_memory.
3508         * resource.c (mark_referenced_resources): Don't set it.
3509         (mark_set_resources): Likewise.
3510         (mark_target_live_regs): Don't clear it.
3511         (init_resource_info): Likewise.
3512         * reorg.c (resource_conflicts_p): Don't compare it.
3513         (redundant_insn): Don't set it.
3514
3515         * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
3516         Remove prototypes.
3517         * emit-rtl.c (next_label): Remove unused function.
3518         (skip_consecutive_labels, link_cc0_insns): Move to ...
3519         * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
3520         only place where these functions are used, and make them static.
3521
3522 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
3523
3524         * fold-const.c (fold_negate_expr): Handle vectors.
3525         (fold_truth_not_expr): Make it static.
3526         (fold_invert_truthvalue): New static function.
3527         (invert_truthvalue_loc): Handle vectors. Do not call
3528         fold_truth_not_expr directly.
3529         (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
3530         <TRUTH_NOT_EXPR>: Do not cast to boolean.
3531         (fold_comparison): Handle vector constants.
3532         (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
3533         (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
3534         * tree.h (fold_truth_not_expr): Remove declaration.
3535
3536 2013-05-14  James Greenhalgh  <james.greenhalgh@arm.com>
3537
3538         * config/aarch64/aarch64-simd.md
3539         (aarch64_vcond_internal<mode>): Rename to...
3540         (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
3541         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
3542         float modes. Clarify all iterator modes.
3543         (vcond<mode><mode>): Use new name for vcond expanders.
3544         (vcond<v_cmp_result><mode>): Likewise.
3545         (vcondu<mode><mode>: Likewise.
3546         * config/aarch64/iterators.md (VDQF_COND): New.
3547
3548 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
3549
3550         PR bootstrap/57266
3551         * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
3552         variable for the shift amount. Check that we shift by non-negative
3553         amounts.
3554
3555 2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>
3556
3557         PR target/42017
3558         * config/arm/arm.h (EPILOGUE_USES): Only return true
3559         for LR_REGNUM after epilogue_completed.
3560
3561 2013-05-14  Joern Rennecke <joern.rennecke@embecosm.com>
3562
3563         * config/avr/avr.c (avr_encode_section_info): Bail out if the type
3564         is error_mark_node.
3565
3566 2013-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3567
3568         PR target/57261
3569         * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
3570         and Solaris 11+/x86 with gld.
3571         * configure: Regenerate.
3572
3573 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
3574
3575         * expmed.c (expand_shift_1): Canonicalize rotates by
3576         constant bitsize / 2 to bitsize - 1.
3577         * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
3578         case ROTATERT>: Likewise.
3579
3580         Revert:
3581         2013-05-10  Jakub Jelinek  <jakub@redhat.com>
3582
3583         * config/i386/i386.md (rotateinv): New code attr.
3584         (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
3585         *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
3586         roll $31, %eax, etc.
3587
3588 2013-05-14  Richard Biener  <rguenther@suse.de>
3589
3590         PR middle-end/57235
3591         * tree-eh.c (sink_clobbers): Give up for successors with
3592         multiple predecessors and no virtual uses.
3593
3594 2013-05-14  Eric Botcazou  <ebotcazou@adacore.com>
3595
3596         * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
3597         * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
3598
3599 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
3600
3601         PR middle-end/57251
3602         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
3603         the case when both op0 and op1 have VOIDmode.
3604
3605 2013-05-14  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3606
3607         * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
3608         in multiply-accumulate mode.
3609
3610 2013-05-13  Guozhi Wei  <carrot@google.com>
3611
3612         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
3613
3614 2013-05-13  Kai Tietz  <ktietz@redhat.com>
3615
3616         PR target/56975
3617         * config/i386/cygming.h (TARGET_PECOFF): Define as true.
3618         * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
3619         (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
3620         * config/i386/i386.c (ix86_option_override_internal): Likewise.
3621         (ix86_expand_prologue): Likewise.
3622         (ix86_expand_split_stack_prologue): Likewise.
3623         (legitimate_pic_address_disp_p): Likewise.
3624         (legitimize_pic_address): Likewise.
3625         (legitimize_tls_address): Likewise.
3626         (legitimize_pe_coff_symbol): Likewise.
3627         (output_pic_addr_const): Likewise.
3628         (construct_plt_address): Likewise.
3629         (ix86_expand_call): Likewise.
3630         (x86_output_mi_thunk): Likewise.
3631         (x86_function_profiler): Likewise.
3632
3633 2013-05-13  Sofiane Naci  <sofiane.naci@arm.com>
3634
3635         * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
3636         similar switch cases.
3637         (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
3638         (aarch64_simd_mov_to_<mode>low): Delete.
3639         (aarch64_simd_mov_to_<mode>high): Delete.
3640         (move_lo_quad_<mode>): Add w<-r alternative.
3641         (aarch64_simd_move_hi_quad_<mode>): Likewise.
3642         (aarch64_simd_mov_from_*): Update type attribute.
3643         * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
3644         statement.
3645
3646 2013-05-13  Jan Hubicka  <jh@suse.cz>
3647
3648         * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
3649         * config/i386/i386.c (ix86_compute_frame_layout,
3650         ix86_expand_epilogue, emit_i387_cw_initialization,
3651         ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
3652         ix86_local_alignment): Fix use of size/speed predicates.
3653
3654 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
3655
3656         PR tree-optimization/45216
3657         PR tree-optimization/57157
3658         * tree-ssa-forwprop.c (simplify_rotate): Only recognize
3659         the (-Y) & (B - 1) variant if OP is |.
3660         * expmed.c (expand_shift_1): For rotations by const0_rtx just
3661         return shifted.  Use (-op1) & (prec - 1) as other_amount
3662         instead of prec - op1.
3663
3664 2013-05-13  Martin Jambor  <mjambor@suse.cz>
3665
3666         PR middle-end/42371
3667         * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
3668         (ipa_constant_data): New type.
3669         (ipa_jump_func): Use ipa_constant_data to hold information about
3670         constant jump functions.
3671         (ipa_get_jf_constant): Adjust to jump function type changes.
3672         (ipa_get_jf_constant_rdesc): New function.
3673         (ipa_param_descriptor): New field controlled_uses.
3674         (ipa_get_controlled_uses): New function.
3675         (ipa_set_controlled_uses): Likewise.
3676         * ipa-ref.h (ipa_find_reference): Declare.
3677         * ipa-prop.c (ipa_cst_ref_desc): New type.
3678         (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
3679         changes.
3680         (ipa_set_jf_constant): Likewise.  Also create reference descriptions.
3681         New parameter cs.  Adjust all callers.
3682         (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
3683         (remove_described_reference): New function.
3684         (jfunc_rdesc_usable): Likewise.
3685         (try_make_edge_direct_simple_call): Decrement controlled use count,
3686         attempt to remove reference if it hits zero.
3687         (combine_controlled_uses_counters): New function.
3688         (propagate_controlled_uses): Likewise.
3689         (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
3690         (ipa_edge_duplication_hook): Duplicate reference descriptions.
3691         (ipa_print_node_params): Print described use counter.
3692         (ipa_write_jump_function): Adjust to jump function type changes.
3693         (ipa_read_jump_function): New parameter CS, pass it to
3694         ipa_set_jf_constant.  Adjust caller.
3695         (ipa_write_node_info): Stream controlled use count
3696         (ipa_read_node_info): Likewise.
3697         * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
3698         asserting.
3699         * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
3700         count.  Remove cloning-added reference if it reaches zero.
3701         * ipa-ref.c (ipa_find_reference): New function.
3702
3703 2013-05-13  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
3704
3705         * config/i386/i386.c (processor_target_table): Modified default
3706         alignment values for AMD BD and BT architectures.
3707
3708 2013-05-13  Marc Glisse  <marc.glisse@inria.fr>
3709
3710         * tree-vect-generic.c (uniform_vector_p): Move ...
3711         * tree.c (uniform_vector_p): ... here.
3712         * tree.h (uniform_vector_p): Declare it.
3713         * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
3714         into a scalar.
3715
3716 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
3717
3718         PR tree-optimization/57230
3719         * tree-ssa-strlen.c (handle_char_store): Record length for
3720         array store from STRING_CST.
3721
3722         PR tree-optimization/57230
3723         * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
3724         check.
3725
3726 2013-05-12  Joern Rennecke  <joern.rennecke@embecosm.com>
3727
3728         * config/epiphany/epiphany.c (epiphany_init): Check size of
3729         NUM_MODES_FOR_MODE_SWITCHING.
3730         (epiphany_expand_prologue):
3731         Remove CONFIG_REGNUM initial value handling code.
3732         (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
3733         (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
3734         (emit_set_fp_mode, epiphany_mode_after): Likewise.
3735         (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
3736         Don't return 1 for FP_MODE_NONE.
3737         * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
3738         Add value for EPIPHANY_MSW_ENTITY_CONFIG.
3739         (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
3740         * config/epiphany/epiphany.md (save_config): New pattern.
3741
3742 2013-05-12  Uros Bizjak  <ubizjak@gmail.com>
3743
3744         * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
3745
3746 2013-05-10  Uros Bizjak  <ubizjak@gmail.com>
3747
3748         * config/i386/i386.md (memory): Handle sseishft1.
3749         * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
3750         (*vec_extractv2di_1): Ditto.
3751
3752 2013-05-10  Vladimir Makarov  <vmakarov@redhat.com>
3753
3754         * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
3755         saved registers.
3756
3757 2013-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3758
3759         * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
3760         Add mthumb/march=armv7-a multilib.
3761         Add mthumb/march=armv7-r multilib.
3762         Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
3763
3764 2013-05-10  Ralf Corsépius  <ralf.corsepius@rtems.org>
3765
3766         * config/v850/t-rtems: Add more multilibs.
3767
3768 2013-05-10  Richard Biener  <rguenther@suse.de>
3769
3770         PR tree-optimization/57214
3771         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
3772         not propagate from SSA names that occur in abnormal PHI nodes.
3773
3774 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
3775
3776         * stor-layout.c (element_precision): New function.
3777         * machmode.h (element_precision): Declare it.
3778         * tree.c (build_minus_one_cst): New function.
3779         (element_precision): Likewise.
3780         * tree.h (build_minus_one_cst): Declare new function.
3781         (element_precision): Likewise.
3782         * fold-const.c (operand_equal_p): Use element_precision.
3783         (fold_binary_loc): Handle vector types.
3784         * convert.c (convert_to_integer): Use element_precision.
3785         * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
3786         separately.
3787
3788 2013-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3789
3790         * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
3791         (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
3792         (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
3793         (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3794         * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
3795         (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
3796         (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
3797         (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3798         * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
3799         (Uuw8): New constraints.
3800         (Usb4): Move into alphabetical order.
3801         * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
3802         (sd8_operand, ub8_operand, uw8_operand): New predicates.
3803         * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
3804         previously unnamed patterns.
3805         (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
3806         (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
3807         (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
3808         (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
3809         of set_attr_alternative/if_then_else.  Use extended_mips16 instead
3810         of specific lengths.
3811
3812 2013-05-10  Jakub Jelinek  <jakub@redhat.com>
3813
3814         * config/i386/i386.md (rotateinv): New code attr.
3815         (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
3816         *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
3817         roll $31, %eax, etc.
3818
3819         PR tree-optimization/45216
3820         PR tree-optimization/57157
3821         * tree-ssa-forwprop.c (simplify_rotate): New function.
3822         (ssa_forward_propagate_and_combine): Call it.
3823
3824 2013-05-10  Richard Biener  <rguenther@suse.de>
3825
3826         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
3827         disable peeling when we version for aliasing.
3828         (vector_alignment_reachable_p): Honor explicit user alignment.
3829         (vect_supportable_dr_alignment): Likewise.
3830         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
3831         STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
3832         * tree-vect-loop.c (vect_transform_loop): First apply versioning,
3833         then peeling to arrange for the cost-model check to come first.
3834
3835 2013-05-10  Alan Modra  <amodra@gmail.com>
3836
3837         * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
3838         (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
3839         * configure: Regenerate.
3840
3841 2013-05-10  Alan Modra  <amodra@gmail.com>
3842
3843         PR target/55033
3844         * varasm.c (default_elf_select_section): Move !DECL_P check..
3845         (get_named_section): ..to here before calling get_section_name.
3846         Adjust assertion.
3847         (default_section_type_flags): Add DECL_P check.
3848         * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
3849         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
3850
3851 2013-05-09  Joern Rennecke  <joern.rennecke@embecosm.com>
3852
3853         * config/epiphany/epiphany.c (epiphany_expand_prologue):
3854         When using gen_stack_adjust_str with a register offset, add a
3855         REG_FRAME_RELATED_EXPR note.
3856
3857 2013-05-09  Uros Bizjak  <ubizjak@gmail.com>
3858
3859         * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
3860         (*vec_extractv4si_zext_mem): Ditto.
3861         (*vec_extractv2di): Add 0->x and x->x alternatives.
3862         * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
3863         * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
3864
3865 2013-05-09  Jason Merrill  <jason@redhat.com>
3866
3867         N3639 C++1y VLA support
3868         * gimplify.c (gimplify_vla_decl): Don't touch an existing
3869         DECL_VALUE_EXPR.
3870
3871         * tree.c (build_constructor_va): New.
3872         * tree.h: Declare it.
3873
3874 2013-05-09  Martin Jambor  <mjambor@suse.cz>
3875
3876         PR lto/57084
3877         * gimple-fold.c (canonicalize_constructor_val): Call
3878         cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
3879
3880 2013-05-09  Jan Hubicka  <jh@suse.cz>
3881             Richard Biener  <rguenther@suse.de>
3882
3883         PR lto/54095
3884         * symtab.c (symtab_make_decl_local): Do not add private names.
3885
3886 2013-05-09  Jan Hubicka  <jh@suse.cz>
3887
3888         PR lto/54095
3889         * symtab.c (insert_to_assembler_name_hash): Handle clones.
3890         (unlink_from_assembler_name_hash): Likewise.
3891         (symtab_prevail_in_asm_name_hash, symtab_register_node,
3892         symtab_unregister_node, symtab_initialize_asm_name_hash,
3893         change_decl_assembler_name): Update.
3894
3895 2013-05-09  Sofiane Naci  <sofiane.naci@arm.com>
3896
3897         * config/aarch64/aarch64.md: New movtf split.
3898         (*movtf_aarch64): Update.
3899         (aarch64_movdi_tilow): Handle TF modes and rename to
3900         aarch64_movdi_<mode>low.
3901         (aarch64_movdi_tihigh): Handle TF modes and rename to
3902         aarch64_movdi_<mode>high
3903         (aarch64_movtihigh_di): Handle TF modes and rename to
3904         aarch64_mov<mode>high_di
3905         (aarch64_movtilow_di): Handle TF modes and rename to
3906         aarch64_mov<mode>low_di
3907         (aarch64_movtilow_tilow): Remove spurious whitespace.
3908         * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
3909         splits.
3910         (aarch64_print_operand): Update.
3911
3912 2013-05-09  Alan Modra  <amodra@gmail.com>
3913
3914         * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
3915         powerpc64le.
3916         * configure: Regenerate.
3917
3918 2013-05-08  Uros Bizjak  <ubizjak@gmail.com>
3919
3920         * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
3921         splitter preparation statements.
3922         * config/i386/sse.md (*vec_extract* splitters): Ditto.
3923         (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
3924         adjust_address_nv.
3925
3926 2013-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3927
3928         * gimple-ssa-strength-reduction.c (count_candidates): Change
3929         return value to int.
3930         (analyze_candidates_and_replace): Change type of length to int.
3931
3932 2013-05-08  Uros Bizjak  <ubizjak@gmail.com>
3933
3934         * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
3935         (*vec_extract<mode>): Use VI12_128 mode iterator.
3936         (*vec_extract<mode>_mem): Ditto.
3937         (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
3938         attribute.
3939
3940 2013-05-08  Diego Novillo  <dnovillo@google.com>
3941
3942         PR bootstrap/54659
3943
3944         Revert:
3945         2012-08-17  Diego Novillo  <dnovillo@google.com>
3946
3947         PR bootstrap/54281
3948         * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
3949         * config.in: Regenerate.
3950         * configure: Regenerate.
3951         * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
3952
3953 2013-05-08  Jan Hubicka  <jh@suse.cz>
3954
3955         PR lto/54095
3956         * cgraph.c (cgraph_make_node_local_1): Se unique_name.
3957         * cgraph.h (symtab_node_base): Add unique_name.
3958         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3959         input_overwrite_node, input_varpool_node): Stream unique_name.
3960         * cgraphclones.c (cgraph_create_virtual_clone,
3961         cgraph_function_versioning): Set unique_name.
3962         * ipa.c (function_and_variable_visibility): Set unique_name.
3963
3964 2013-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3965
3966         * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
3967         (alloc_cand_and_find_basis): Restrict conditional candidate
3968         processing to CAND_MULTs.
3969
3970 2013-05-08  Jan Hubicka  <jh@suse.cz>
3971
3972         PR lto/54095
3973         lto-symtab.c (lto_symtab_symbol_p): New function.
3974         (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
3975         lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
3976         lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
3977         Skip static symbols.
3978
3979 2013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
3980
3981         PR tree-optimization/57200
3982         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
3983         Only call inform if the preceding warning_at returns true.
3984
3985 2013-05-07  Han Shen  <shenhan@google.com>
3986
3987         * cfgexpand.c (record_or_union_type_has_array_p): New function.
3988         (expand_used_vars): Add logic handling '-fstack-protector-strong'.
3989         * common.opt (fstack-protector-strong): New option.
3990         * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
3991         * doc/invoke.texi (Optimization Options): Document
3992         "-fstack-protector-strong".
3993         * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
3994
3995 2013-05-06  Steven Bosscher  <steven@gcc.gnu.org>
3996
3997         * config/mips/mips.c (mips_machine_reorg2): Return 0.
3998
3999 2013-05-07  Vladimir Makarov  <vmakarov@redhat.com>
4000
4001         * ira.c (update_equiv_regs): Add insn having equiv memory even if
4002         it is not lhs of the insn.
4003         (setup_reg_equiv): Remove insn having equiv memory which it is not
4004         lhs of the insn.
4005         * lra-constraints.c (process_address): Try to improve generation
4006         code for address base + disp.
4007         (lra_constraints): Make correct the code for checking insn setting
4008         up backward equivalence.  Remove insn only if it is in the init
4009         insn list.
4010         * lra-eliminations.c (update_reg_eliminate): Change return value.
4011         (lra_eliminate): Use the result.
4012
4013 2013-05-07  Uros Bizjak  <ubizjak@gmail.com>
4014
4015         * config/i386/sse.md (ssescalarnummask): New mode attribute.
4016         (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
4017         (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
4018         *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
4019         register target operands.
4020         (*vec_extractv8hi_sse2): New pattern.
4021         (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
4022         (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
4023         (*vec_extract<mode>_mem): New insn and split pattern.
4024
4025 2013-05-07  Christophe Lyon  <christophe.lyon@linaro.org>
4026
4027         * config/arm/arm.c (arm_asan_shadow_offset): New function.
4028         (TARGET_ASAN_SHADOW_OFFSET): Define.
4029         * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
4030         (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
4031
4032 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4033
4034         * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
4035         (incr_vec_index): Return -1 if increment not found.
4036         (create_add_on_incoming_edge): Assert if increment not found.
4037         (record_increment): Limit number of increments recorded.
4038         (all_phi_incrs_profitable): Return false if an increment not found.
4039         (replace_profitable_candidates): Don't process increments that were
4040         not recorded.
4041         (analyze_candidates_and_replace): Limit size of incr_vec.
4042
4043 2013-05-07  Richard Biener  <rguenther@suse.de>
4044
4045         * calls.c (special_function_p): setjmp-like functions are leaf.
4046         * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
4047         * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
4048
4049 2013-05-07  Sofiane Naci  <sofiane.naci@arm.com>
4050
4051         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
4052         (aarch64_simd_mov<mode>): New expander.
4053         (aarch64_simd_mov_to_<mode>low): New instruction pattern.
4054         (aarch64_simd_mov_to_<mode>high): Likewise.
4055         (aarch64_simd_mov_from_<mode>low): Likewise.
4056         (aarch64_simd_mov_from_<mode>high): Likewise.
4057         (aarch64_dup_lane<mode>): Update.
4058         (aarch64_dup_lanedi): New instruction pattern.
4059         * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
4060         * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
4061
4062 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4063
4064         * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
4065         (replace_mult_candidate): Remove unnecessary argument; remove
4066         unnecessary parameter from call to introduce_cast_before_cand.
4067         (replace_unconditional_candidate): Remove unnecessary parameter
4068         from call to replace_mult_candidate.
4069         (replace_conditional_candidate): Likewise.
4070         (insert_initializers): Use make_temp_ssa_name.
4071         (introduce_cast_before_cand): Remove unnecessary argument; use
4072         make_temp_ssa_name.
4073         (replace_one_candidate): Remove unnecessary argument; remove
4074         unnecessary parameter from calls to introduce_cast_before_cand.
4075         (replace_profitable_candidates): Remove unnecessary parameters
4076         from calls to replace_one_candidate.
4077
4078 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4079
4080         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
4081         phi def as possibly hiding a basis for a CAND_ADD whose operands
4082         have been commuted in the analysis.
4083         (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
4084
4085 2013-05-07  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4086
4087         * config/aarch64/aarch64.md
4088         (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
4089         shift value between 0-4.
4090
4091 2013-05-07  Richard Biener  <rguenther@suse.de>
4092
4093         * double-int.h (rshift): New overload.
4094         * double-int.c (rshift): New function.
4095         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
4096         (create_reference_ops_from_ref): Remove.
4097         (vn_reference_insert): Use shared ops for constructing the
4098         reference and copy it.
4099
4100 2013-05-07  Richard Biener  <rguenther@suse.de>
4101
4102         PR middle-end/57190
4103         * tree-eh.c (sink_clobbers): Properly propagate
4104         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
4105
4106 2013-05-07  Jakub Jelinek  <jakub@redhat.com>
4107
4108         PR tree-optimization/57149
4109         * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
4110         (can_skip_redundant_opnd, compute_uninit_opnds_pos,
4111         collect_phi_def_edges, execute_late_warn_uninitialized): Use
4112         uninit_undefined_value_p instead of ssa_undefined_value_p.
4113
4114         PR debug/57184
4115         * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
4116         for modifier == EXPAND_INITIALIZER.
4117
4118 2013-05-07  Anton Blanchard  <anton@samba.org>
4119
4120         * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
4121         for powerpc64 little endian.
4122         * configure: Regenerate.
4123
4124 2013-05-06  Graham Stott  <grahams@btinternet.com>
4125
4126         * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
4127         mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
4128         wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
4129         shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
4130
4131 2013-05-06  Graham Stott  <grahams@btinternet.com>
4132
4133         * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
4134         codes which allow non-lvalues.
4135
4136 2013-05-06  Marc Glisse  <marc.glisse@inria.fr>
4137
4138         * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
4139         components are all 1s.
4140         (integer_minus_onep): New function.
4141         * tree.h (integer_minus_onep): Declare it.
4142         * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
4143         integer_minus_onep instead of integer_all_onesp.
4144
4145 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
4146
4147         PR target/52933
4148         * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
4149         variations of these patterns.
4150
4151 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
4152
4153         * config/i386/i386.md (isa): Add x64_sse4 member.
4154         (enabled): Handle x64_sse4.
4155         (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
4156         instruction for 64bit SSE4_1 targets.  Update insn attributes.
4157         (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
4158         instruction for SSE4_1 targets.  Update insn attributes.
4159         * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
4160         with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
4161         (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
4162         const_1 selector.
4163         (*vec_extractv4si): Rename from *sse4_1_pextrd.
4164         (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
4165         (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
4166
4167 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
4168
4169         PR target/57108
4170         * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
4171
4172 2013-05-06  Maxim Kuznetsov  <maks.kuznetsov@gmail.com>
4173
4174         * final.c (do_assembler_dialects): Don't handle curly braces and
4175         vertical bar escaped by % as dialect delimiters.
4176         (output_asm_insn): Print curly braces and vertical bar if escaped
4177         by % and ASSEMBLER_DIALECT defined.
4178         * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
4179         * doc/tm.texi: Regenerated.
4180
4181 2013-05-06  Steven Bosscher  <steven@gcc.gnu.org>
4182
4183         * config/mips/mips.c: Include tree-pass.h.
4184         (mips_reorg): Split in pre- and post-dbr_schedule parts.
4185         (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
4186         (pass_mips_machine_reorg2): New machine specific pass.
4187         (insert_pass_mips_machine_reorg2): New pass plugin definition.
4188         (mips_option_override): Register the new pass.
4189         * rtl.h (cleanup_barriers): Remove prototype.
4190         (dbr_schedule): Likewise.
4191         * jump.c (cleanup_barriers): Make static.
4192         * reorg.c (dbr_schedule): Likewise.
4193
4194 2013-05-06  Richard Biener  <rguenther@suse.de>
4195
4196         PR tree-optimization/57185
4197         * tree-parloops.c (add_field_for_reduction): Handle anonymous
4198         SSA names properly.
4199
4200 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
4201
4202         PR target/57106
4203         * config/i386/i386.c (add_parameter_dependencies): Add dependence
4204         between "first_arg" and "insn", not "last" and "insn".
4205
4206 2013-05-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4207
4208         * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
4209         (find_candidates_in_block): Re-enable slsr_process_phi.
4210         (create_phi_basis): Fix double counting of candidate adjustment.
4211
4212 2013-05-06  Richard Biener  <rguenther@suse.de>
4213
4214         PR middle-end/57147
4215         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
4216         the edge is also fallthru, preserve it and just clear the
4217         abnormal flag.
4218         * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
4219         also complex, preserve that and just clear the fallthru flag.
4220         * tree-inline.c (update_ssa_across_abnormal_edges): Also
4221         update virtual operands.
4222
4223 2013-05-06  Alan Modra  <amodra@gmail.com>
4224
4225         * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
4226         (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
4227         * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
4228         * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
4229         (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
4230         * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
4231
4232 2013-05-06  Alan Modra  <amodra@gmail.com>
4233
4234         * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
4235         (ASM_SPEC): ..here.  Emit DEFAULT_ASM_ENDIAN too.
4236         (DEFAULT_ASM_ENDIAN): Define.
4237         (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
4238         * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
4239         Update -K PIC clause from sysv4.h.
4240         (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
4241         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
4242
4243 2013-05-06  Alan Modra  <amodra@gmail.com>
4244
4245         * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
4246         twice for little-endian.
4247         (ashrdi3_no_power, ashrdi3): Support little-endian.
4248
4249 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
4250
4251         PR target/55303
4252         * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
4253         * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
4254         related expanders.
4255         * config/sh/iterators.md (SMIN_SMAX): New code iterator.
4256         * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
4257         clips_min_const_int, clips_max_const_int, clipu_max_const_int):
4258         New predicates.
4259
4260 2013-05-05  Steven Bosscher  <steven@gcc.gnu.org>
4261             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4262
4263         * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
4264         * config/pa/pa.opt: Make mbig-switch a no-op.
4265         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
4266         (CASE_VECTOR_MODE): Always return SImode.
4267         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
4268         for the !TARGET_BIG_SWITCH case.
4269         * config/pa/pa-linux.h: Likewise.
4270         * config/pa/pa-openbsd.h: Likewise.
4271         * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
4272         * config/pa/pa.md (short_jump): Remove define_insn.
4273         (casesi): Remove code for the !TARGET_BIG_SWITCH case.
4274         (casesi0): Remove define_insn.
4275         (type): Remove btable_branch.
4276         (pa_combine_type): Likewise.
4277         (in_nullified_branch_delay): Likewise.
4278         (in_call_delay): Likewise.
4279         (define_delay): Likewise.
4280         (define_insn_reservation "Z3"): Likewise.
4281         (define_insn_reservation "Z4"): Likewise.
4282         * config/pa/pa.c  (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
4283         (pa_adjust_insn_length): Remove adjustment for btable branches.
4284         * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
4285         and mno-big-switch
4286
4287 2013-05-05  Uros Bizjak  <ubizjak@gmail.com>
4288
4289         * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
4290         from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
4291         Add m->r,x alternatives.
4292         (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
4293         splitters using SWI48x mode iterator.
4294         (*vec_extract_v2di_0_sse): Rename from *sse2_storeq.  Disable for
4295         TARGET_64BIT.  Add m->x alternative.
4296         (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
4297         Add o->x alternative.  Enable for TARGET_SSE.
4298         (sse_storeq): Remove expander.
4299         (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
4300         with memory input operand.
4301         (*vec_extractv2di_1 splitter): New.
4302         (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
4303         * config/i386/i386.md (ssevecmodelower): New mode attribute.
4304
4305 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
4306
4307         * config/rs6000/rs6000.c (INT_P): Reformat.  Delete obsolete comment.
4308         (INT_LOWPART): Delete.
4309         (extract_MB): Adjust.
4310         (extract_ME): Adjust.
4311         (print_operand): Adjust.
4312
4313 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
4314
4315         * config/rs6000/predicates.md (reg_or_add_cint_operand,
4316         reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
4317         (reg_or_logical_cint_operand, easy_fp_constant,
4318         logical_const_operand): Delete "CONST_DOUBLE" case.
4319         * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
4320         "HOST_BITS_PER_WIDE_INT == 64" test.
4321         (num_insns_constant): Ditto.  Delete CONST_DOUBLE DImode/VOIDmode case.
4322         (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
4323         (rs6000_emit_set_const): Delete CONST_DOUBLE case.
4324         (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
4325         test.
4326         (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
4327         CONST_DOUBLE DImode/VOIDmode case.
4328         (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
4329         (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
4330         CONST_DOUBLE VOIDmode case.
4331         (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
4332         (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
4333         * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
4334         Delete CONST_DOUBLE case.
4335         (splitters for mov FMOVE64 const_double): Delete
4336         "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
4337         "HOST_BITS_PER_WIDE_INT >= 64" test.
4338         (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
4339         case.
4340         (mov DI const_double): Delete.
4341
4342 2013-05-04  Jakub Jelinek  <jakub@redhat.com>
4343
4344         * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
4345         on op shows all bits zero in mode of a lowpart subreg, return zero.
4346
4347 2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4348
4349         PR target/57150
4350         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
4351         to save TFmode registers and DImode to save TImode registers for
4352         caller save operations.
4353         (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
4354         mark being partially clobbered since they only use the first
4355         double word.
4356
4357         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
4358         and TDmode only use the upper 64-bits of each VSX register.
4359
4360 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4361
4362         * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
4363         (find_candidates_in_block): Disable slsr_process_phi.
4364
4365 2013-05-03  Guozhi Wei  <carrot@google.com>
4366
4367         * coverage.c (coverage_obj_init): Move the construction of gcov
4368         constructor to ...
4369         (build_init_ctor): ... here.
4370
4371 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4372
4373         * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
4374         (slsr_cand_d): Redefine def_phi.
4375         (stride_status, phi_adjust_status, count_phis_status): New enums.
4376         (find_phi_def): New.
4377         (find_basis_for_base_expr): New.
4378         (find_basis_for_candidate): Handle hidden bases.
4379         (alloc_cand_and_find_basis): Handle phi candidates.
4380         (slsr_process_phi): New.
4381         (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
4382         (create_mul_imm_cand): Likewise.
4383         (create_add_ssa_cand): Exclude phi base candidates.
4384         (create_add_imm_cand): Likewise.
4385         (slsr_process_cast): Likewise.
4386         (slsr_process_copy): Likewise.
4387         (find_candidates_in_block): Handle phi candidates.
4388         (dump_candidate): Likewise.
4389         (unconditional_cands): Delete.
4390         (unconditional_cands_with_known_stride_p): Delete.
4391         (phi_dependent_cand_p): New.
4392         (cand_increment): Handle phi-dependent candidates.
4393         (replace_dependent): Delete.
4394         (replace_mult_candidate): New.
4395         (replace_unconditional_candidate): New.
4396         (incr_vec_index): Move to avoid forward reference.
4397         (create_add_on_incoming_edge): New.
4398         (create_phi_basis): New.
4399         (replace_dependents): Delete.
4400         (replace_conditional_candidate): New.
4401         (phi_add_costs): New.
4402         (replace_uncond_cands_and_profitable_phis): New.
4403         (record_increment): Handle phi adjustments.
4404         (record_phi_increments): New.
4405         (record_increments): Handle phi adjustments.
4406         (phi_incr_cost): New.
4407         (lowest_cost_path): Handle phis.
4408         (total_savings): Likewise.
4409         (analyze_increments): Likewise.
4410         (ncd_with_phi): New.
4411         (ncd_of_cand_and_phis): New.
4412         (nearest_common_dominator_for_cands): Handle phi increments.
4413         (all_phi_incrs_profitable): New.
4414         (replace_profitable_candidates): Handle phi-dependent candidates.
4415         (analyze_candidates_and_replace): Likewise.
4416
4417 2013-05-03  Teresa Johnson  <tejohnson@google.com>
4418
4419         PR bootstrap/57154
4420         * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
4421         do not exceed REG_BR_PROB_BASE.
4422
4423 2013-05-03  Jeff Law  <law@redhat.com>
4424
4425         PR tree-optimization/57144
4426         * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
4427         operand of the condition will bit into the new type when eliminating
4428         a cast feeding a condition.
4429
4430 2013-05-03  Jakub Jelinek  <jakub@redhat.com>
4431
4432         PR rtl-optimization/57130
4433         * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
4434         of COMPARE as in_code to the recursive call if needed.
4435
4436 2013-05-03  Uros Bizjak  <ubizjak@gmail.com>
4437
4438         * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
4439         (enabled): Handle new members.
4440         * config/i386/sse.md (*vec_concatv2si): Merge from
4441         *vec_concatv2si_sse2 and vec_concatv2si_sse.
4442         (vec_concatv2di): Merge with *vec_concatv2di_rex64.
4443
4444 2013-05-03  Joern Rennecke <joern.rennecke@embecosm.com>
4445
4446         PR tree-optimization/57027
4447         * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
4448         for fnms opportunity, check we got the prerequisite kind
4449         of tree / gimple before using accessor functions.
4450
4451 2013-05-03  Richard Biener  <rguenther@suse.de>
4452
4453         * double-int.h (lshift): New overload without precision
4454         and arith argument.
4455         (operator *=, operator +=, operator -=): Move ...
4456         * double-int.c (operator *=, operator +=, operator -=): ... here
4457         and implement more efficiently.
4458         (mul_double_with_sign): Remove.
4459         (lshift_double): Adjust to take unsinged shift argument, push
4460         dispatching code to callers.
4461         (mul_double_wide_with_sign): Add early out for callers that
4462         are not interested in high parts or overflow.
4463         (lshift): New function.
4464         (lshift, rshift, alshift, arshift, llshift, lrshift): Add
4465         dispatch code here.
4466         (lrotate, rrotate): Use logical shifts.
4467         * expr.c (get_inner_reference): Use lshift.
4468         * fixed-value.c (do_fixed_divide): Likewise.
4469         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4470         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4471         (indirect_refs_may_alias_p): Likewise.
4472         (stmt_kills_ref_p_1): Likewise.
4473
4474 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
4475
4476         * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
4477
4478 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
4479
4480         * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
4481         scalar form of FABD instruction.
4482
4483 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
4484
4485         * lra-constraints.c (process_alt_operands): Add checking alt
4486         number to choose the best alternative.
4487
4488 2013-05-02  Richard Biener  <rguenther@suse.de>
4489
4490         * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
4491         bitmap and its handling.
4492         (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
4493
4494 2013-05-02  Richard Biener  <rguenther@suse.de>
4495
4496         PR middle-end/57140
4497         * tree-inline.c (copy_loops): Properly handle removed loops.
4498         (copy_cfg_body): Mark destination loops for fixup if source
4499         loops needed fixup.
4500
4501 2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>
4502
4503         PR target/56732
4504         * config/arm/arm.c (arm_expand_epilogue): Check really_return before
4505         generating simple_return for naked functions.
4506
4507 2013-05-02  Martin Jambor  <mjambor@suse.cz>
4508
4509         PR middle-end/56988
4510         * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
4511         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
4512         flags match.
4513         (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
4514         ipa_agg_replacement_value structures.
4515         (known_aggs_to_agg_replacement_list): Likewise.
4516         * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
4517         (read_agg_replacement_chain): Likewise.
4518         (ipcp_transform_function): Also check that by_ref flags match.
4519
4520 2013-05-02  Richard Biener  <rguenther@suse.de>
4521
4522         * graphds.h (struct graph): Add obstack member.
4523         * graphds.c (new_graph): Initialize obstack and allocate
4524         vertices from it.
4525         (add_edge): Allocate edge from the obstack.
4526         (free_graph): Free the obstack instead of all edges and vertices.
4527
4528 2013-05-02  Teresa Johnson  <tejohnson@google.com>
4529
4530         * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
4531         divides.
4532         * cfg.c (update_bb_profile_for_threading): Ditto.
4533         * tree-inline.c (copy_bb): Ditto.
4534         (copy_edges_for_bb): Ditto.
4535         (initialize_cfun): Ditto.
4536         (copy_cfg_body): Ditto.
4537         (expand_call_inline): Ditto.
4538         * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
4539         (estimate_node_size_and_time): Ditto.
4540         (inline_merge_summary): Ditto.
4541         * cgraphclones.c (cgraph_clone_edge): Ditto.
4542         (cgraph_clone_node): Ditto.
4543         * sched-rgn.c (compute_dom_prob_ps): Ditto.
4544         (compute_trg_info): Ditto.
4545
4546 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
4547
4548         * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
4549         S reg when fp attribute set.
4550         (movdi_aarch64): Only allow to/from D reg when fp attribute set.
4551
4552 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
4553
4554         * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
4555         New pattern.
4556         (*and_one_cmplsi3_compare0_uxtw): Likewise.
4557         (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
4558         (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
4559
4560 2013-05-02  Richard Biener  <rguenther@suse.de>
4561
4562         * tree-scalar-evolution.c (scev_info_hasher): Remove.
4563         (struct instantiate_cache_entry): New type.
4564         (struct instantiate_cache_entry_hasher): New hashtable descriptor.
4565         (struct instantiate_cache_type): New type.
4566         (set_instantiated_value, get_instantiated_value): Remove.
4567         (get_instantiated_value_entry): New function.
4568         (instantiate_scev_name): Use the new cache and adjust.
4569         (instantiate_scev_poly): Adjust.
4570         (instantiate_scev_binary): Likewise.
4571         (instantiate_array_ref): Likewise.
4572         (instantiate_scev_convert): Likewise.
4573         (instantiate_scev_not): Likewise.
4574         (instantiate_scev_3): Likewise.
4575         (instantiate_scev_2): Likewise.
4576         (instantiate_scev_r): Likewise.
4577         (instantiate_scev): Likewise.
4578         (resolve_mixers): Likewise.
4579
4580 2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>
4581
4582         PR target/57091
4583         * lra-constraints.c (best_small_class_operands_num): Remove.
4584         (process_alt_operands): Remove small_class_operands_num.  Take
4585         small classes operands into losers and only if the operand is not
4586         matched.  Modify debugging output.
4587         (curr_insn_transform): Remove best_small_class_operands_num.
4588         Print insn name.
4589
4590 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4591
4592         * config/aarch64/aarch64-builtins.c
4593         (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
4594         * config/aarch64/aarch64-simd-builtins.def
4595         (reduc_splus_): Add new modes.
4596         (reduc_uplus_): New.
4597         * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
4598         (reduc_uplus_v4sf): Likewise.
4599         (reduc_splus_v4sf): Likewise.
4600         (aarch64_addv<mode>): Likewise.
4601         (reduc_uplus_<mode>): Likewise.
4602         (reduc_splus_<mode>): Likewise.
4603         (aarch64_addvv2di): Likewise.
4604         (reduc_uplus_v2di): Likewise.
4605         (reduc_splus_v2di): Likewise.
4606         (aarch64_addvv2si): Likewise.
4607         (reduc_uplus_v2si): Likewise.
4608         (reduc_splus_v2si): Likewise.
4609         (reduc_<sur>plus_<mode>): New.
4610         (reduc_<sur>plus_v2di): Likewise.
4611         (reduc_<sur>plus_v2si): Likewise.
4612         (reduc_<sur>plus_v4sf): Likewise.
4613         (aarch64_addpv4sf): Likewise.
4614         * config/aarch64/arm_neon.h
4615         (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
4616         * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
4617         add UNSPEC_SADDV, UNSPEC_UADDV.
4618         (SUADDV): New.
4619         (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
4620
4621 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4622
4623         * config/aarch64/arm_neon.h
4624         (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
4625
4626 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4627
4628         * config/aarch64/aarch64-builtins
4629         (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
4630
4631 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4632
4633         * config/aarch64/aarch64-simd-builtins.def
4634         (reduc_smax_): New.
4635         (reduc_smin_): Likewise.
4636         (reduc_umax_): Likewise.
4637         (reduc_umin_): Likewise.
4638         (reduc_smax_nan_): Likewise.
4639         (reduc_smin_nan_): Likewise.
4640         (fmax): Remove.
4641         (fmin): Likewise.
4642         (smax): Update for V2SF, V4SF and V2DF modes.
4643         (smin): Likewise.
4644         (smax_nan): New.
4645         (smin_nan): Likewise.
4646         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
4647         (<su><maxmin><mode>3): ...This, refactor.
4648         (s<maxmin><mode>3): New.
4649         (<maxmin_uns><mode>3): Likewise.
4650         (reduc_<maxmin_uns>_<mode>): Refactor.
4651         (reduc_<maxmin_uns>_v4sf): Likewise.
4652         (reduc_<maxmin_uns>_v2si): Likewise.
4653         (aarch64_<fmaxmin><mode>: Remove.
4654         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
4655         new builtin names.
4656         (vmin<q>_f<32,64>): Likewise.
4657         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4658         (FMAXMIN): New.
4659         (su): Add mappings for smax, smin, umax, umin.
4660         (maxmin): New.
4661         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4662         (FMAXMIN): Rename as...
4663         (FMAXMIN_UNS): ...This.
4664         (maxminv): Remove.
4665         (fmaxminv): Likewise.
4666         (fmaxmin): Likewise.
4667         (maxmin_uns): New.
4668         (maxmin_uns_op): Likewise.
4669
4670 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4671
4672         * config/aarch64/arm_neon.h
4673         (vac<ge, gt><sd>_f<32, 64>): Rename to...
4674         (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
4675         (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
4676
4677 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4678
4679         * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
4680         * config/aarch64/iterators.md (FAC_COMPARISONS): New.
4681
4682 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4683
4684         * config/aarch64/aarch64-simd.md
4685         (vcond<mode>_internal): Handle special cases for constant masks.
4686         (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
4687         (vcondu<mode><mode>): Likewise.
4688         (vcond<v_cmp_result><mode>): New.
4689
4690 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4691
4692         * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
4693         (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
4694         * config/aarch64/aarch64-simd-builtins.def
4695         (cmeq): Update to BUILTIN_VALLDI.
4696         (cmgt): Likewise.
4697         (cmge): Likewise.
4698         (cmle): Likewise.
4699         (cmlt): Likewise.
4700         * config/aarch64/arm_neon.h
4701         (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
4702         to builtins or C as appropriate.
4703
4704 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
4705
4706         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
4707         (cmgeu): ...This.
4708         (cmhi): Rename to...
4709         (cmgtu): ...This.
4710         * config/aarch64/aarch64-simd.md
4711         (simd_mode): Add SF.
4712         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
4713         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
4714         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
4715         (cstore<mode>_neg): ...This.
4716         * config/aarch64/iterators.md
4717         (VALLF): new.
4718         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4719         (COMPARISONS): New.
4720         (UCOMPARISONS): Likewise.
4721         (optab): Add missing comparisons.
4722         (n_optab): New.
4723         (cmp_1): Likewise.
4724         (cmp_2): Likewise.
4725         (CMP): Likewise.
4726         (cmp): Remove.
4727         (VCMP_S): Likewise.
4728         (VCMP_U): Likewise.
4729         (V_cmp_result): Add DF, SF modes.
4730         (v_cmp_result): Likewise.
4731         (v): Likewise.
4732         (vmtype): Likewise.
4733         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4734
4735 2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>
4736
4737         * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
4738         define_insn to define_insn_and_split.
4739         (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
4740         (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
4741         (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
4742         (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
4743         (thumb2_negscc): Likewise.
4744
4745 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
4746
4747         * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
4748
4749 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
4750
4751         * config/arm/thumb2.md: Remove trailing whitespaces.
4752
4753 2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
4754
4755         * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
4756         Use gen_int_mode rather than GEN_INT.
4757
4758 2013-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4759
4760         * value-prof.c (stream_in_histogram_value): Remove the strayed
4761         debug_gimple_stmt.
4762
4763 2013-04-30  Richard Biener  <rguenther@suse.de>
4764
4765         PR middle-end/57122
4766         * cfghooks.c (split_edge): Properly check for the loop latch edge.
4767
4768 2013-04-30  Richard Biener  <rguenther@suse.de>
4769
4770         PR middle-end/57107
4771         * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
4772
4773 2013-04-30  Andrey Belevantsev  <abel@ispras.ru>
4774
4775         PR rtl-optimization/56957
4776         PR rtl-optimization/57105
4777         * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
4778         variable.  Use just INSN_UID for determining whether an insn
4779         should be only disconnected from the insn stream.
4780         * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
4781
4782 2013-04-30  Jakub Jelinek  <jakub@redhat.com>
4783
4784         PR tree-optimization/57104
4785         * tsan.c (instrument_expr): Don't instrument accesses to
4786         DECL_HARD_REGISTER VAR_DECLs.
4787
4788 2013-04-30  Richard Biener  <rguenther@suse.de>
4789
4790         * function.h (loops_for_fn): New inline function.
4791         (set_loops_for_fn): Likewise.
4792         * cfgloop.h (place_new_loop): Add struct function parameter.
4793         (get_loop): Likewise.
4794         (get_loops): Likewise.
4795         (number_of_loops): Likewise.
4796         (fel_next): Adjust.
4797         (fel_init): Likewise.
4798         * cfg.c (get_loop_copy): Adjust.
4799         * cfgloop.c (flow_loops_dump): Likewise.
4800         (record_loop_exits): Likewise.
4801         (verify_loop_structure): Likewise.
4802         * cfgloopanal.c (mark_irreducible_loops): Likewise.
4803         (estimate_reg_pressure_cost): Likewise.
4804         (mark_loop_exit_edges): Likewise.
4805         * cfgloopmanip.c (place_new_loop): Likewise.
4806         (add_loop): Likewise.
4807         (duplicate_loop): Likewise.
4808         * graph.c (draw_cfg_nodes): Likewise.
4809         * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
4810         * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
4811         (extract_affine_chrec): Likewise.
4812         (build_scop_iteration_domain): Likewise.
4813         * graphite.c (graphite_initialize): Likewise.
4814         * ira-build.c (create_loop_tree_nodes): Likewise.
4815         (more_one_region_p): Likewise.
4816         (rebuild_regno_allocno_maps): Likewise.
4817         (mark_loops_for_removal): Likewise.
4818         (mark_all_loops_for_removal): Likewise.
4819         (remove_unnecessary_regions): Likewise.
4820         (ira_build): Likewise.
4821         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
4822         * loop-init.c (fix_loop_structure): Likewise.
4823         (gate_rtl_move_loop_invariants): Likewise.
4824         (gate_rtl_unswitch): Likewise.
4825         (gate_rtl_unroll_and_peel_loops): Likewise.
4826         (rtl_doloop): Likewise.
4827         * lto-streamer-in.c (input_cfg): Likewise.
4828         * lto-streamer-out.c (output_cfg): Likewise.
4829         * modulo-sched.c (sms_schedule): Likewise.
4830         * predict.c (tree_estimate_probability): Likewise.
4831         (tree_estimate_probability_driver): Likewise.
4832         (estimate_loops): Likewise.
4833         * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
4834         (move_sese_region_to_fn): Likewise.
4835         (debug_loop_num): Likewise.
4836         * tree-chrec.c (chrec_evaluate): Likewise.
4837         (hide_evolution_in_other_loops_than_loop): Likewise.
4838         (chrec_component_in_loop_num): Likewise.
4839         (reset_evolution_in_loop): Likewise.
4840         (evolution_function_is_invariant_rec_p): Likewise.
4841         * tree-if-conv.c (main_tree_if_conversion): Likewise.
4842         * tree-inline.c (copy_loops): Likewise.
4843         (copy_cfg_body): Likewise.
4844         (tree_function_versioning): Likewise.
4845         * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
4846         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4847         Likewise.
4848         (add_to_evolution_1): Likewise.
4849         (scev_const_prop): Likewise.
4850         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
4851         * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
4852         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
4853         (tree_ssa_lim_initialize): Likewise.
4854         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
4855         (verify_loop_closed_ssa): Likewise.
4856         * tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
4857         (tree_ssa_loop_im): Likewise.
4858         (tree_ssa_loop_unswitch): Likewise.
4859         (tree_vectorize): Likewise.
4860         (check_data_deps): Likewise.
4861         (tree_ssa_loop_ivcanon): Likewise.
4862         (tree_ssa_loop_bounds): Likewise.
4863         (tree_complete_unroll): Likewise.
4864         (tree_complete_unroll_inner): Likewise.
4865         (tree_parallelize_loops): Likewise.
4866         (tree_ssa_loop_prefetch): Likewise.
4867         (tree_ssa_loop_ivopts): Likewise.
4868         * tree-ssa.c (execute_update_addresses_taken): Liekwise.
4869         * tree-vectorizer.c (vectorize_loops): Likewise.
4870
4871 2013-04-29  Mike Frysinger  <vapier@gentoo.org>
4872
4873         * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
4874         (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
4875         * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
4876         with EABI_LINK_SPEC.
4877
4878 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
4879
4880         PR target/44578
4881         * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
4882         alternative.
4883
4884 2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4885
4886         PR target/57097
4887         * lra-constraints.c (process_alt_operands): Discourage a bit more
4888         using memory for pseudos.  Print cost dump for alternatives.
4889         Modify cost values for conflicts with early clobbers.
4890         (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
4891
4892 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
4893
4894         PR target/57098
4895         * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
4896
4897 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
4898
4899         * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
4900         from/to S register.
4901         (movdi_aarch64): Support LDR/STR from/to D register.
4902
4903 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
4904
4905         * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
4906         or higher by default.
4907
4908 2013-04-29  Richard Biener  <rguenther@suse.de>
4909
4910         PR middle-end/57075
4911         * tree-inline.c (copy_edges_for_bb): Still split the bbs,
4912         even if not adding abnormal edges for calls that can make
4913         abnormal gotos.
4914
4915 2013-04-29  Richard Biener  <rguenther@suse.de>
4916
4917         PR middle-end/57103
4918         * tree-cfg.c (move_stmt_op): Fix condition under which to update
4919         TREE_BLOCK.
4920         (move_stmt_r): Remove redundant checking.
4921
4922 2013-04-29  Teresa Johnson  <tejohnson@google.com>
4923
4924         PR bootstrap/57077
4925         * basic-block.h (apply_scale): New function.
4926         (apply_probability): Use apply_scale.
4927         * gimple-streamer-in.c (input_bb): Ditto.
4928         * lto-streamer-in.c (input_cfg): Ditto.
4929         * lto-cgraph.c (merge_profile_summaries): Ditto.
4930         * tree-optimize.c (execute_fixup_cfg): Ditto.
4931         * tree-inline.c (copy_bb): Update comment to use apply_scale.
4932         (copy_edges_for_bb): Ditto.
4933         (copy_cfg_body): Ditto.
4934
4935 2013-04-29  Tom de Vries  <tom@codesourcery.com>
4936
4937         * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
4938         (replace_block_by): Don't set LOOPS_NEED_FIXUP.
4939         (tail_merge_optimize): Handle current_loops == NULL.
4940
4941 2013-04-26  Jeff Law  <law@redhat.com>
4942
4943         * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
4944         (simplify_cond_using_ranges): Generalize code to simplify
4945         COND_EXPRs where one argument is a constant and the other
4946         is an SSA_NAME created by an integral type conversion.
4947
4948 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4949
4950         * config/arm/arm.md (store_minmaxsi): Use only when
4951         optimize_insn_for_size_p.
4952
4953 2013-04-29  Christian Bruel  <christian.bruel@st.com>
4954
4955         PR target/57108
4956         * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
4957
4958 2013-04-29  Richard Biener  <rguenther@suse.de>
4959
4960         PR middle-end/57089
4961         * omp-low.c (expand_omp_taskreg): If the parent function had a broken
4962         loop tree make sure to schedule a fixup for the child as well.
4963         (expand_omp_for_generic): Properly add loops.
4964         (expand_omp_for_static_nochunk): Likewise.
4965         (expand_omp_for_static_chunk): Likewise.
4966         (expand_omp_for): For the degenerate case fixup loops.
4967         (expand_omp_sections): Fix default bb placement in loops.
4968         (expand_omp_atomic_pipeline): Properly add loops.
4969
4970 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4971
4972         * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
4973
4974 2013-04-29  Tom de Vries  <tom@codesourcery.com>
4975
4976         * tree-ssa-tail-merge.c: Update header comment.
4977
4978 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
4979
4980         * config/aarch64/arm_neon.h
4981         (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
4982         (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
4983         (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
4984         (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
4985         (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
4986         (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
4987         (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
4988         (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
4989
4990 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
4991
4992         * config/aarch64/aarch64-simd.md
4993         (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
4994         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
4995         fix_trunc, fixuns_trunc.
4996         (ftrunc<VDQF:mode>2): New.
4997         * config/aarch64/iterators.md (optab): Add fix, fixuns.
4998         (fix_trunc_optab): New.
4999
5000 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5001
5002         * config/aarch64/aarch64-builtins.c
5003         (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
5004         iceilf, lround, iroundf.
5005
5006 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
5007
5008         PR target/54349
5009         * config/i386/i386.h (enum ix86_tune_indices)
5010         <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
5011         New, split from X86_TUNE_INTER_UNIT_MOVES.
5012         <X86_TUNE_INTER_UNIT_MOVES>: Remove.
5013         (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
5014         (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
5015         (TARGET_INTER_UNIT_MOVES): Remove.
5016         * config/i386/i386.c (initial_ix86_tune_features): Update.
5017         Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
5018         (ix86_expand_convert_uns_didf_sse): Use
5019         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
5020         (ix86_expand_vector_init_one_nonzero): Ditto.
5021         (ix86_expand_vector_init_interleave): Ditto.
5022         (inline_secondary_memory_needed): Return true for moves from SSE class
5023         registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
5024         to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
5025         * config/i386/constraints.md (Yi, Ym): Depend on
5026         TARGET_INTER_UNIT_MOVES_TO_VEC.
5027         (Yj, Yn): New constraints.
5028         * config/i386/i386.md (*movdi_internal): Change constraints of
5029         operand 1 from Yi to Yj and from Ym to Yn.
5030         (*movsi_internal): Ditto.
5031         (*movdf_internal): Ditto.
5032         (*movsf_internal): Ditto.
5033         (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
5034         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
5035         (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
5036         (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
5037         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
5038         * config/i386/sse.md (movdi_to_sse): Ditto.
5039         (sse2_stored): Change constraint of operand 1 from Yi to Yj.
5040         Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
5041         TARGET_INTER_UNIT_MOVES.
5042         (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
5043         (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
5044         instead of TARGET_INTER_UNIT_MOVES.
5045         * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
5046         operand 1 from Yi to Yj and from Ym to Yn.
5047
5048 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5049
5050         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
5051         (float_truncate_hi_): Likewise.
5052         (float_extend_lo_): Likewise.
5053         (float_truncate_lo_): Likewise.
5054         * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
5055         (aarch64_float_extend_lo_v2df): Likewise.
5056         (vec_unpacks_hi_v4sf): Likewise.
5057         (aarch64_float_truncate_lo_v2sf): Likewise.
5058         (aarch64_float_truncate_hi_v4sf): Likewise.
5059         (vec_pack_trunc_v2df): Likewise.
5060         (vec_pack_trunc_df): Likewise.
5061
5062 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5063
5064         * config/aarch64/aarch64-builtins.c
5065         (aarch64_fold_builtin): Fold float conversions.
5066         * config/aarch64/aarch64-simd-builtins.def
5067         (floatv2si, floatv4si, floatv2di): New.
5068         (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
5069         * config/aarch64/aarch64-simd.md
5070         (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
5071         * config/aarch64/iterators.md (FLOATUORS): New.
5072         (optab): Add float, floatuns.
5073         (su_optab): Likewise.
5074
5075 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5076
5077         * config/aarch64/aarch64-builtins.c
5078         (aarch64_builtin_vectorized_function): Use new names for
5079         fcvt builtins.
5080         * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
5081         (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
5082         (fcvtzu): Split as...
5083         (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
5084         (fcvtas): Split as...
5085         (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
5086         (fcvtau): Split as...
5087         (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
5088         (fcvtps): Split as...
5089         (lceilv2sf, lceilv4sf, lceilv2df): ...This.
5090         (fcvtpu): Split as...
5091         (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
5092         (fcvtms): Split as...
5093         (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
5094         (fcvtmu): Split as...
5095         (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
5096         (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
5097         (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
5098         (lfrintnusf, lfrintnudf): Likewise.
5099         * config/aarch64/aarch64-simd.md
5100         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
5101         define_insn.
5102         (aarch64_fcvt<frint_suffix><su><mode>): Remove.
5103         * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
5104         (fcvt_pattern): Likewise.
5105
5106 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5107
5108         * config/aarch64/aarch64-simd.md
5109         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
5110         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
5111
5112 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5113
5114         * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
5115         (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
5116         (vrnd<a,m,n,p>_f32): Implement using builtins.
5117         (vrnd<i,x><q>_f<32, 64>): New.
5118
5119 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
5120
5121         * config/aarch64/aarch64-builtins.c
5122         (aarch64_builtin_vectorized_function): Fold to standard pattern names.
5123         * config/aarch64/aarch64-simd-builtins.def (frintn): New.
5124         (frintz): Rename to...
5125         (btrunc): ...this.
5126         (frintp): Rename to...
5127         (ceil): ...this.
5128         (frintm): Rename to...
5129         (floor): ...this.
5130         (frinti): Rename to...
5131         (nearbyint): ...this.
5132         (frintx): Rename to...
5133         (rint): ...this.
5134         (frinta): Rename to...
5135         (round): ...this.
5136         * config/aarch64/aarch64-simd.md
5137         (aarch64_frint<frint_suffix><mode>): Delete.
5138         (<frint_pattern><mode>2): Convert to insn.
5139         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
5140         * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
5141         (frint_pattern): Likewise.
5142         (frint_suffix): Likewise.
5143
5144 2013-04-29  Richard Biener  <rguenther@suse.de>
5145
5146         PR tree-optimization/57081
5147         * loop-init.c: Include tree-flow.h.
5148         (loop_optimizer_finalize): Free number of iteration estimates.
5149         * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
5150
5151 2013-04-29  Jakub Jelinek  <jakub@redhat.com>
5152
5153         PR tree-optimization/57083
5154         * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
5155         non-singleton shift count range, zero extend low_bound for uns case.
5156
5157         * config/i386/predicates.md (general_vector_operand): New predicate.
5158         * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
5159         (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
5160         if they aren't nonimmediate operands.  If their original values
5161         satisfy const_vector_equal_evenodd_p, don't shift them.
5162         * config/i386/sse.md (mul<mode>3): Use general_vector_operand
5163         predicates.  For the SSE4.1 case force operands[{1,2}] into registers
5164         if not nonimmediate_operand.
5165         (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
5166         instead of register_operand.
5167         (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
5168
5169 2013-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5170
5171         * stor-layout.c (finalize_size_functions): Allocate a structure and
5172         reset cfun before dumping the functions.
5173
5174 2013-04-27  Jakub Jelinek  <jakub@redhat.com>
5175
5176         * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
5177
5178         PR target/56866
5179         * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
5180         use xop_pmacsdqh if uns_p.
5181         * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
5182         the immediate rotate count.
5183
5184 2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>
5185
5186         * rtl.h (struct rtx_def): Add comment for field jump.
5187         (LRA_SUBREG_P): New macro.
5188         * recog.c (register_operand): Check LRA_SUBREG_P.
5189         * lra.c (lra): Add note at the end of RTL code. Align non-empty
5190         stack frame.
5191         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5192         (lra_final_code_change): Skip subreg change for operators.
5193         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5194         if there are no operand changes.
5195         * lra-constraints.c (curr_insn_set): New.
5196         (match_reload): Set LRA_SUBREG_P.
5197         (emit_spill_move): Ditto.
5198         (check_and_process_move): Use curr_insn_set. Process only single
5199         set insns.  Don't initialize sec_mem_p and change_p.
5200         (simplify_operand_subreg): Use LRA_SUBREG_P.
5201         (reg_in_class_p): New function.
5202         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
5203         of #ifdef.  Add code to remove cycling.
5204         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5205         non-null disp.  Reload inner instead of disp when base and index
5206         are null.  Try to put lo_sum into register.
5207         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
5208         (check_and_process_move): Move code for move cost check to
5209         simple_move_p.  Remove equiv_substitution.
5210         (simple_move_p): New function.
5211         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
5212         curr_insn_set.  Call check_and_process_move only for single set
5213         insns.  Use the new function.  Move call of check_and_process_move
5214         after operand equiv substitution and address process.
5215
5216 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
5217
5218         PR go/57045
5219         * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
5220         with nonlocal goto receivers or returns twice calls, ignore
5221         unininitialized values from abnormal edges to nl goto receiver
5222         or returns twice call.
5223
5224 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
5225
5226         PR tree-optimization/57051
5227         * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
5228         and VEC_RSHIFT_EXPR if shift count is a multiple of element
5229         bitsize.
5230
5231 2013-04-26  Richard Biener  <rguenther@suse.de>
5232
5233         * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
5234         (expand_omp_taskreg): Likewise.  Mark loops for fixup.
5235         * tree-cfg.c (move_block_to_fn): Remap loop fathers.
5236         (fixup_loop_arrays_after_move): New function.
5237         (move_sese_region_to_fn): Properly outline the loop tree parts
5238         of the SESE region.
5239
5240 2013-04-26  Uros Bizjak  <ubizjak@gmail.com>
5241
5242         * config/i386/i386.md (type, unit): Fix long lines.
5243
5244 2013-04-26  Richard Biener  <rguenther@suse.de>
5245
5246         * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
5247         (lto-streamer-out.o): Likewise.
5248         * cfgloop.c (init_loops_structure): Export, add struct function
5249         argument and adjust.
5250         (flow_loops_find): Adjust.
5251         * cfgloop.h (enum loop_estimation): Add EST_LAST.
5252         (init_loops_structure): Declare.
5253         * lto-streamer-in.c: Include cfgloop.h.
5254         (input_cfg): Input the loop tree.
5255         * lto-streamer-out.c: Include cfgloop.h.
5256         (output_cfg): Output the loop tree.
5257         (output_struct_function_base): Do not drop PROP_loops.
5258
5259 2013-03-26  Richard Biener  <rguenther@suse.de>
5260
5261         * tree-cfg.c (execute_build_cfg): Build the loop tree.
5262         (pass_build_cfg): Provide PROP_loops.
5263         (move_sese_region_to_fn): Remove loops that are outlined into fn
5264         for now.
5265         * tree-inline.c: Include cfgloop.h.
5266         (initialize_cfun): Do not drop PROP_loops.
5267         (copy_loops): New function.
5268         (copy_cfg_body): Copy loop structure.
5269         (tree_function_versioning): Initialize destination loop tree.
5270         * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
5271         (pass_parallelize_loops): Do IL verification.
5272         * loop-init.c (loop_optimizer_init): Fixup loops if required.
5273         * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
5274         the CFG make sure we fixup loops as well.
5275         * tree-ssa-tail-merge.c: Include cfgloop.h.
5276         (replace_block_by): When merging loop latches mark loops for fixup.
5277         * lto-streamer-out.c (output_struct_function_base): Drop
5278         PROP_loops for now.
5279         * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
5280         (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
5281         * ipa-split.c: Include cfgloop.h.
5282         (split_function): Add the new return block to the loop tree root.
5283         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
5284         whether we have removed the forwarder block.
5285         (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
5286         * cfgloop.h (place_new_loop): Declare.
5287         * cfgloopmanip.c (place_new_loop): Export.
5288         * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
5289         (tree-switch-conversion.o): Likewise.
5290         (tree-complex.o): Likewise.
5291         (tree-inline.o): Likewise.
5292         (tree-ssa-tailmerge.o): Likewise.
5293         (ipa-split.o): Likewise.
5294         (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
5295         (tree-ssa-copy.o): Likewise.
5296         * tree-switch-conversion.c: Include cfgloop.h
5297         (process_switch): If we emit a bit-test cascade, schedule loops
5298         for fixup.
5299         * tree-complex.c: Include cfgloop.h.
5300         (expand_complex_div_wide): Properly add new basic-blocks to loops.
5301         * asan.c: Include cfgloop.h.
5302         (create_cond_insert_point): Properly add new basic-blocks to
5303         loops, schedule loop fixup.
5304         * cfgloop.c (verify_loop_structure): Check that looks are not
5305         marked for fixup.
5306         * omp-low.c (expand_parallel_call): Properly add new basic-blocks
5307         to loops.
5308         (expand_omp_for_generic): Likewise.
5309         (expand_omp_sections): Likewise.
5310         (expand_omp_atomic_pipeline): Schedule loops for fixup.
5311         * tree-ssa-copy.c: Include tree-scalar-evolution.h.
5312         (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
5313         is initialized, not when loops are present.
5314         * tree-parloops.c (parallelize_loops): Remove checking here.
5315         * passes.c (init_optimization_passes): Schedule a copy-propagation
5316         pass before complete unrolling of inner loops.
5317
5318 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
5319
5320         * Makefile.in (toplev.o): Depend on diagnostic-color.h.
5321         * diagnostic-color.c (should_colorize): Remove _WIN32 version.
5322         (colorize_init): Add argument to _WIN32 version.
5323         * toplev.c: Include diagnostic-color.h.
5324         (process_options): Default to -fdiagnostics-color=auto if
5325         GCC_COLORS env var is in the environment.
5326         * common.opt (fdiagnostics-color=): Add Var and Init.
5327         * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
5328         env var is in the environment, the default is auto rather than never.
5329
5330         * diagnostic.h (file_name_as_prefix): Add context argument.
5331         * diagnostic.c (file_name_as_prefix): Likewise.  Colorize
5332         the string as locus.
5333         * langhooks.c (lhd_print_error_function): Adjust caller.
5334
5335 2013-04-25  Lawrence Crowl  <crowl@google.com>
5336
5337         * var-tracking.c (shared_hash_def::htab):
5338         Change type to hash_table.  Update dependent calls and types.
5339
5340 2013-04-25  Lawrence Crowl  <crowl@google.com>
5341
5342         * Makefile.in: Update as needed below.
5343
5344         * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
5345         Move declaration to after the type's method definitons.
5346
5347         * attribs.c (htab_t scoped_attributes::attribute_hash):
5348         Change type to hash_table.  Update dependent calls and types.
5349
5350         * bitmap.c (htab_t bitmap_desc_hash):
5351         Change type to hash_table.  Update dependent calls and types.
5352
5353         * cselib.c (htab_t cselib_hash_table):
5354         Change type to hash_table.  Update dependent calls and types.
5355
5356         * data-streamer.h (struct string_slot): Move to lto-streamer.h.
5357         (hash_string_slot_node): Move implementation into lto-streamer.h
5358         struct string_slot_hasher.
5359         (eq_string_slot_node): Likewise.
5360
5361         * data-streamer-out.c: Update output_block::string_hash_table
5362         dependent calls and types.
5363
5364         * dwarf2cfi.c (htab_t trace_index):
5365         Change type to hash_table.  Update dependent calls and types.
5366
5367         * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
5368         Change type to hash_table.  Update dependent calls and types.
5369         (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
5370         (htab_t optimize_external_refs::map): Likewise.
5371         (htab_t output_comp_unit::extern_map): Likewise.
5372         (htab_t output_comdat_type_unit::extern_map): Likewise.
5373         (htab_t output_macinfo::macinfo_htab): Likewise.
5374         (htab_t optimize_location_lists::htab): Likewise.
5375         (htab_t dwarf2out_finish::comdat_type_table): Likewise.
5376
5377         * except.c (htab_t ehspec_hash_type):
5378         Change type to hash_table.  Update dependent calls and types.
5379         (assign_filter_values::ttypes): Likewise.
5380         (assign_filter_values::ehspec): Likewise.
5381         (sjlj_assign_call_site_values::ar_hash): Likewise.
5382         (convert_to_eh_region_ranges::ar_hash): Likewise.
5383
5384         * gcse.c (htab_t pre_ldst_table):
5385         Change type to hash_table.  Update dependent calls and types.
5386
5387         * ggc-common.c (htab_t saving_htab):
5388         Change type to hash_table.  Update dependent calls and types.
5389         (htab_t loc_hash): Likewise.
5390         (htab_t ptr_hash): Likewise.
5391         (call_count): Rename ggc_call_count.
5392         (call_alloc): Rename ggc_call_alloc.
5393         (loc_descriptor): Rename make_loc_descriptor.
5394         (add_statistics): Rename ggc_add_statistics.
5395
5396         * ggc-common.c (saving_htab):
5397         Change type to hash_table.  Update dependent calls and types.
5398
5399         * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
5400         (push_gimplify_context): Likewise.
5401         (pop_gimplify_context): Likewise.
5402         (struct gimple_temp_hash_elt): Added.
5403         (struct gimplify_hasher): Likewise.
5404         (struct gimplify_ctx.temp_htab):
5405         Change type to hash_table.  Update dependent calls and types.
5406
5407         * gimple-fold.c: Include gimplify-ctx.h.
5408
5409         * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
5410         Change type to hash_table.  Update dependent calls and types.
5411         (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
5412         avoid potential global name collision.
5413
5414         * gimplify.c: Include gimplify-ctx.h.
5415         (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
5416         (htab_t gimplify_ctx::temp_htab):
5417         Update dependent calls and types for new type hash_table.
5418         (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
5419         (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
5420
5421         * gimplify-ctx.h: New.
5422         (struct gimple_temp_hash_elt): Move from gimplify.c.
5423         (class gimplify_hasher): New.
5424         (struct gimplify_ctx): Move from gimple.h.
5425         (htab_t gimplify_ctx::temp_htab):
5426         Change type to hash_table.  Update dependent calls and types.
5427
5428         * graphite-clast-to-gimple.c: Include graphite-htab.h.
5429         (htab_t ivs_params::newivs_index):
5430         Change type to hash_table.  Update dependent calls and types.
5431         (htab_t ivs_params::params_index): Likewise.
5432         (htab_t print_generated_program::params_index): Likewise.
5433         (htab_t gloog::newivs_index): Likewise.
5434         (htab_t gloog::params_index): Likewise.
5435
5436         * graphite.c: Include graphite-htab.h.
5437         4htab_t graphite_transform_loops::bb_pbb_mapping):
5438         Change type to hash_table.  Update dependent calls and types.
5439
5440         * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
5441         (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
5442         (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
5443
5444         * graphite-dependences.c: Include graphite-htab.h.
5445         (loop_is_parallel_p): Change hash table type of parameter.
5446
5447         * graphite-htab.h: New.
5448         (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
5449         (extern find_pbb_via_hash): Move from graphite-poly.h.
5450         (extern loop_is_parallel_p): Move from graphite-poly.h.
5451         (extern get_loop_body_pbbs): Move from graphite-poly.h.
5452
5453         * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
5454         (extern loop_is_parallel_p): Move to graphite-htab.h.
5455         (extern get_loop_body_pbbs): Move to graphite-htab.h.
5456
5457         * haifa-sched.c (htab_t delay_htab):
5458         Change type to hash_table.  Update dependent calls and types.
5459         (htab_t delay_htab_i2): Likewise.
5460
5461         * ira-color.c (htab_t allocno_hard_regs_htab):
5462         Change type to hash_table.  Update dependent calls and types.
5463
5464         * ira-costs.c (htab_t cost_classes_htab):
5465         Change type to hash_table.  Update dependent calls and types.
5466
5467         * loop-invariant.c (htab_t merge_identical_invariants::eq):
5468         Change type to hash_table.  Update dependent calls and types.
5469
5470         * loop-iv.c (htab_t bivs):
5471         Change type to hash_table.  Update dependent calls and types.
5472
5473         * loop-unroll.c (htab_t opt_info::insns_to_split):
5474         Change type to hash_table.  Update dependent calls and types.
5475         (htab_t opt_info::insns_with_var_to_expand): Likewise.
5476
5477         * lto-streamer.h (struct string_slot): Move from data-streamer.h
5478         (struct string_slot_hasher): New.
5479         (htab_t output_block::string_hash_table):
5480         Change type to hash_table.  Update dependent calls and types.
5481
5482         * lto-streamer-in.c (freeing_string_slot_hasher): New.
5483         (htab_t file_name_hash_table):
5484         Change type to hash_table.  Update dependent calls and types.
5485
5486         * lto-streamer-out.c: Update output_block::string_hash_table dependent
5487         calls and types.
5488
5489         * lto-streamer.c (htab_t tree_htab):
5490         Change type to hash_table.  Update dependent calls and types.
5491
5492         * omp-low.c: Include gimplify-ctx.h.
5493
5494         * passes.c (htab_t name_to_pass_map):
5495         Change type to hash_table.  Update dependent calls and types.
5496         (pass_traverse): Rename to passes_pass_traverse.
5497
5498         * plugin.c (htab_t event_tab):
5499         Change type to hash_table.  Update dependent calls and types.
5500
5501         * postreload-gcse.c (htab_t expr_table):
5502         Change type to hash_table.  Update dependent calls and types.
5503         (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
5504
5505         * sese.c (debug_rename_map_1): Make extern.
5506         (htab_t copy_bb_and_scalar_dependences::rename_map):
5507         Change type to hash_table.  Update dependent calls and types.
5508
5509         * sese.h (extern debug_rename_map): Move to .c file.
5510
5511         * store-motion.c (htab_t store_motion_mems_table):
5512         Change type to hash_table.  Update dependent calls and types.
5513
5514         * trans-mem.c (htab_t tm_new_mem_hash):
5515         Change type to hash_table.  Update dependent calls and types.
5516
5517         * tree-browser.c (htab_t TB_up_ht):
5518         Change type to hash_table.  Update dependent calls and types.
5519
5520         * tree-cfg.c (htab_t discriminator_per_locus):
5521         Change type to hash_table.  Update dependent calls and types.
5522
5523         * tree-complex.c: Include tree-hasher.h
5524         (htab_t complex_variable_components):
5525         Change type to hash_table.  Update dependent calls and types.
5526
5527         * tree-eh.c (htab_t finally_tree):
5528         Change type to hash_table.  Update dependent calls and types.
5529
5530         * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
5531         struct int_tree_hasher.
5532         (extern int_tree_map_eq): Likewise.
5533         (uid_decl_map_hash): Removed.
5534         (extern decl_tree_map_eq): Likewise.
5535
5536         * tree-hasher.h: New.
5537         (struct int_tree_hasher): New.
5538         (typedef int_tree_htab_type): New.
5539
5540         * tree-inline.c: Include gimplify-ctx.h.
5541
5542         * tree-mudflap.c: Include gimplify-ctx.h.
5543
5544         * tree-parloops.c: Include tree-hasher.h.
5545         (htab_t eliminate_local_variables_stmt::decl_address):
5546         Change type to hash_table.  Update dependent calls and types.
5547         (htab_t separate_decls_in_region::decl_copies): Likewise.
5548
5549         * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
5550         Change type to hash_table.  Update dependent calls and types.
5551
5552         * tree-sra.c (candidates):
5553         Change type to hash_table.  Update dependent calls and types.
5554
5555         * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
5556         in tree-flow.h.
5557         (int_tree_map_hash): Likewise.
5558
5559         * tree-ssa-dom.c (htab_t avail_exprs):
5560         Change type to hash_table.  Update dependent calls and types.
5561
5562         * tree-ssa-live.c (var_map_base_init::tree_to_index):
5563         Change type to hash_table.  Update dependent calls and types.
5564
5565         * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
5566         Change type to hash_table.  Update dependent calls and types.
5567
5568         * tree-ssa-phiopt.c (seen_ssa_names):
5569         Change type to hash_table.  Update dependent calls and types.
5570
5571         * tree-ssa-strlen.c (decl_to_stridxlist_htab):
5572         Change type to hash_table.  Update dependent calls and types.
5573
5574         * tree-ssa-uncprop.c (equiv):
5575         Change type to hash_table.  Update dependent calls and types.
5576
5577 2013-04-25  Jakub Jelinek  <jakub@redhat.com>
5578
5579         PR rtl-optimization/57003
5580         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
5581         call note_stores with kill_clobbered_value callback again after
5582         killing regs_invalidated_by_call.
5583
5584 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
5585
5586         * config/aarch64/aarch64-simd.md
5587         (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
5588         (aarch64_simd_bsl<mode>): Likewise.
5589         * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
5590
5591 2013-04-25  Marek Polacek  <polacek@redhat.com>
5592
5593         PR tree-optimization/57066
5594         * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
5595
5596 2013-04-25  James Greenhalgh  <jame.greenhalgh@arm.com>
5597
5598         * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
5599
5600 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
5601
5602         * config/aarch64/aarch64-builtins.c
5603         (aarch64_fold_builtin): New.
5604         * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
5605         * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
5606         * config/aarch64/aarch64-simd-builtins.def (abs): New.
5607         * config/aarch64/arm_neon.h
5608         (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
5609
5610 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
5611             Tejas Belagod  <tejas.belagod@arm.com>
5612
5613         * config/aarch64/aarch64-builtins.c
5614         (aarch64_gimple_fold_builtin): New.
5615         * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
5616         * config/aarch64/aarch64-simd-builtins.def (addv): New.
5617         * config/aarch64/aarch64-simd.md (addpv4sf): New.
5618         (addvv4sf): Update.
5619         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
5620
5621 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
5622
5623         * config/aarch64/aarch64.md
5624         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
5625
5626 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
5627
5628         * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
5629         (*ngcsi_uxtw): New pattern.
5630
5631 2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5632             Julian Brown  <julian@codesourcery.com>
5633
5634         * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
5635         (TB_DREG): Add T_V4HF.
5636         (v4hf_UP): New macro.
5637         (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5638         (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5639         Handle initialisation of V4HF. Adjust initialisation of reinterpret
5640         built-ins.
5641         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5642         (arm_vector_mode_supported_p): Handle V4HF.
5643         (arm_mangle_map): Handle V4HFmode.
5644         * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
5645         * config/arm/arm_neon_builtins.def: Add entries for
5646         vcvtv4hfv4sf, vcvtv4sfv4hf.
5647         * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
5648         (neon_vcvtv4hfv4sf): Likewise.
5649         * config/arm/neon-gen.ml: Handle half-precision floating point
5650         features.
5651         * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
5652         * config/arm/arm_neon.h: Regenerate.
5653         * config/arm/neon.ml (type elts): Add F16.
5654         (type vectype): Add T_float16x4, T_floatHF.
5655         (type vecmode): Add V4HF.
5656         (type features): Add Requires_FP_bit feature.
5657         (elt_width): Handle F16.
5658         (elt_class): Likewise.
5659         (elt_of_class_width): Likewise.
5660         (mode_of_elt): Refactor.
5661         (type_for_elt): Handle F16, fix error messages.
5662         (vectype_size): Handle T_float16x4.
5663         (vcvt_sh): New function.
5664         (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
5665         (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
5666         (string_of_mode): Handle V4HF.
5667         * doc/arm-neon-intrinsics.texi: Regenerate.
5668
5669 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
5670
5671         * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
5672         format specifier in 'X' case.
5673
5674 2013-04-25  Alan Modra  <amodra@gmail.com>
5675
5676         PR target/57052
5677         * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
5678         rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
5679         (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
5680         Repeat for many other rotate/shift and mask patterns using subregs.
5681         Name lshiftrt insns.
5682         (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
5683         on WORDS_BIG_ENDIAN.
5684
5685 2013-04-25  Alan Modra  <amodra@gmail.com>
5686
5687         * config.gcc: Support little-endian powerpc-linux targets.
5688         * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
5689         (LINK_OS_LINUX_SPEC): Define.
5690         * config/rs6000/linuxspe.h (TARGET_DEFAULT):
5691         Preserve MASK_LITTLE_ENDIAN.
5692         * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
5693         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
5694         * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
5695         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
5696         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
5697         * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
5698         Correct fp word order for little-endian.  Don't shift toc entries
5699         smaller than a word for little-endian.
5700         * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
5701         (bswapdi2 splits): Correct low-part subreg for little-endian.
5702         Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
5703         low/high where such is correct only for be.
5704         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
5705         little-endian for -mcall-aixdesc.
5706
5707 2013-04-25  Alan Modra  <amodra@gmail.com>
5708
5709         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
5710         replace_equiv_address_nv.
5711
5712 2013-04-25  Alan Modra  <amodra@gmail.com>
5713
5714         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
5715
5716 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5717
5718         Revert:
5719         2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5720         * rtl.h (struct rtx_def): ...
5721
5722 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5723
5724         PR rtl-optimizations/57046
5725         * lra-constraints (split_reg): Set up lra_risky_transformations_p
5726         for multi-reg splits.
5727
5728 2013-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5729
5730         * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
5731
5732 2013-04-24  Sterling Augustine  <saugustine@google.com>
5733
5734         * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
5735         (comp_dir_string, debug_str_dwo_section): New.
5736         (DEBUG_STR_DWO_SECTION): Rename to ...
5737         (DEBUG_DWO_STR_SECTION): ... this.
5738         (DEBUG_NORM_STR_SECTION): Delete.
5739         (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
5740         (DEBUG_STR_DWO_SECTION_FLAGS): New.
5741         (find_AT_string): Move most logic to ...
5742         (find_AT_string_in_table): ... here.  New.
5743         (add_top_level_skeleton_die_attrs): Call comp_dir_string and
5744         add_skeleton_AT_string.  Delete logic.
5745         (output_skeleton_debug_sections): Remove call to
5746         add_top_level_skeleton_die_attrs.
5747         (add_comp_dir_attribute): Move logic to comp_dir_string.
5748         (dwarf2out_init): Initialize debug_str_dwo_section.
5749         (output_indirect_string): Call find_string_form.
5750         (output_indirect_strings): Rewrite.
5751         (prune_unused_types): Empty skeleton_debug_str_hash.
5752         Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
5753         (dwarf2out_finish):  Call output_indirect_strings.
5754
5755 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5756
5757         * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
5758
5759 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5760
5761         * rtl.h (struct rtx_def): Add comment for field jump.
5762         (LRA_SUBREG_P): New macro.
5763         * recog.c (register_operand): Check LRA_SUBREG_P.
5764         * lra.c (lra): Add note at the end of RTL code. Align non-empty
5765         stack frame.
5766         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5767         (lra_final_code_change): Skip subreg change for operators.
5768         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5769         if there are no operand changes.
5770         * lra-constraints.c (curr_insn_set): New.
5771         (match_reload): Set LRA_SUBREG_P.
5772         (emit_spill_move): Ditto.
5773         (check_and_process_move): Use curr_insn_set. Process only single
5774         set insns.  Don't initialize sec_mem_p and change_p.
5775         (simplify_operand_subreg): Use LRA_SUBREG_P.
5776         (reg_in_class_p): New function.
5777         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
5778         of #ifdef.  Add code to remove cycling.
5779         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5780         non-null disp.  Reload inner instead of disp when base and index
5781         are null.  Try to put lo_sum into register.
5782         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
5783         (check_and_process_move): Move code for move cost check to
5784         simple_move_p.  Remove equiv_substitution.
5785         (simple_move_p): New function.
5786         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
5787         curr_insn_set.  Call check_and_process_move only for single set
5788         insns.  Use the new function.  Move call of check_and_process_move
5789         after operand equiv substitution and address process.
5790
5791 2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
5792
5793         * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
5794         (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
5795         (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
5796
5797 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5798
5799         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
5800
5801 2013-04-24  Marek Polacek  <polacek@redhat.com>
5802
5803         * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
5804         * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
5805         (select_loops_exit_conditions): Likewise.
5806         (number_of_iterations_for_all_loops): Likewise.
5807         (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
5808         (scev_analysis): Likewise.
5809
5810 2013-04-02  Catherine Moore  <clm@codesourcery.com>
5811             Chao-ying Fu <fu@mips.com>
5812
5813         * config/mips/micromips.md (jraddiusp): New pattern.
5814         * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
5815         instruction if possible.
5816
5817 2013-04-24  Alan Modra  <amodra@gmail.com>
5818
5819         * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
5820
5821 2013-04-24  Julian Brown  <julian@codesourcery.com>
5822             Chung-Lin Tang  <cltang@codesourcery.com>
5823
5824         * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
5825         dependency behavior in enumeration type DIE generation. Add TODO note
5826         to comments about future DW_FORM_sdata/udata re-work of related code.
5827
5828 2013-04-23  Lawrence Crowl  <crowl@google.com>
5829
5830         * Makefile.in: Update as needed below.
5831
5832         * hash-table.h (class hash_table):
5833         Correct many methods with parameter types compare_type to the correct
5834         value_type.  (Correct code was unlikely to notice the change.)
5835         (hash_table::elements_with_deleted) New.
5836         (class hashtable::iterator): New.
5837         (hashtable::begin()): New.
5838         (hashtable::end()): New.
5839         (FOR_EACH_HASH_TABLE_ELEMENT): New.
5840
5841         * statistics.c (statistics_hashes):
5842         Change type to hash_table.  Update dependent calls and types.
5843
5844         * tree-into-ssa.c (var_infos):
5845         Change type to hash_table.  Update dependent calls and types.
5846
5847         * tree-ssa-coalesce.c (struct coalesce_list_d.list):
5848         Change type to hash_table.  Update dependent calls and types.
5849
5850         * tree-ssa-loop-im.c (struct mem_ref.refs):
5851         Change type to hash_table.  Update dependent calls and types.
5852
5853         * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
5854         Change type to hash_table.  Update dependent calls and types.
5855
5856         * tree-ssa-sccvn.c (vn_tables_s::nary):
5857         Change type to hash_table.  Update dependent calls and types.
5858         (vn_tables_s::phis): Likewise.
5859         (vn_tables_s::references): Likewise.
5860
5861         * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
5862         (vn_reference_eq): Update parameter and return types.
5863
5864         * tree-ssa-structalias.c (pointer_equiv_class_table):
5865         Change type to hash_table.  Update dependent calls and types.
5866         (location_equiv_class_table): Likewise.
5867
5868         * tree-vect-data-refs.c: Consequential changes for making
5869         peeling a hash_table.
5870
5871         * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
5872         (destroy_loop_vec_info): Dependent hash_table update.
5873
5874         * tree-vectorizer.h (peeling_htab):
5875         Change type to hash_table.  Update dependent calls and types.
5876
5877 2013-04-23  Shiva Chen  <shiva0217@gmail.com>
5878
5879         * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
5880         to check the register content is equal or not.
5881         * lra-constraints.c (match_reload): Use lra_assign_reg_val
5882         to assign register content record.
5883         * lra-eliminations.c (update_reg_eliminate): Use
5884         lra_update_reg_val_offset to update register content offset.
5885         * lra-int.h (struct lra_reg): Add offset member.
5886         (lra_reg_val_equal_p): New static inline function.
5887         (lra_update_reg_val_offset): New static inline function.
5888         (lra_assign_reg_val): New static inline function.
5889         * lra.c (lra_create_new_reg): Use lra_assign_reg_val
5890         to assign register content record.
5891         (initialize_lra_reg_info_element): Initial offset to zero.
5892
5893 2013-04-23  Catherine Moore  <clm@codesourcery.com>
5894
5895         * config/mips/mips.md (*movhi_internal, *movqi_internal): New
5896         operands.  Record compression.
5897
5898 2013-04-23  Xinliang David Li  <davidxl@google.com>
5899
5900         * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
5901
5902 2013-04-23  Richard Biener  <rguenther@suse.de>
5903
5904         PR middle-end/57036
5905         * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
5906         parameter, only add abnormal goto edges from the copied body
5907         if the call could perform abnormal gotos.
5908         (copy_cfg_body): Adjust.
5909
5910 2013-04-23  Sofiane Naci  <sofiane.naci@arm.com>
5911
5912         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
5913
5914 2013-04-23  Andreas Schwab  <schwab@linux-m68k.org>
5915
5916         * coretypes.h (gimple_stmt_iterator): Add struct to make
5917         compatible with C.
5918
5919 2013-04-23  Richard Biener  <rguenther@suse.de>
5920
5921         PR tree-optimization/57026
5922         * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
5923         from SSA names occuring in abnormal PHI nodes.
5924
5925 2013-04-22  Andi Kleen  <ak@linux.intel.com>
5926
5927         * lto/lto.c (print_lto_report_1): Fix LTO report names.
5928
5929 2013-04-22  Andi Kleen  <ak@linux.intel.com>
5930
5931         * lto/lto.c (print_lto_report_1): Declare early.
5932         (read_cgraph_and_symbols): Call print_lto_report_1 early.
5933
5934 2013-04-22  Andi Kleen  <ak@linux.intel.com>
5935
5936         * common.opt (-flto-report-wpa): Add.
5937         * doc/invoke.texi (-flto-report-wpa): Add.
5938         * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
5939         (lto_main): dito.
5940
5941 2013-04-22  Xinliang David Li  <davidxl@google.com>
5942
5943         * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
5944         * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
5945         * Makefile.in: New dependency
5946
5947             David Daney <ddaney.cavm@gmail.com>
5948
5949         * configure.ac (gcc_cv_as_micromips_support):  Use the
5950         --fatal-warnings option.
5951         * configure: Regenerate.
5952
5953 2013-04-22  Marek Polacek  <polacek@redhat.com>
5954
5955         PR sanitizer/56990
5956         * tsan.c (instrument_expr): Don't instrument expression
5957         in case its size is zero.
5958
5959 2013-04-22  Uros Bizjak  <ubizjak@gmail.com>
5960
5961         PR target/57032
5962         Revert:
5963         2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
5964
5965         * config/alpha/alpha.c (TARGET_LRA_P): New define.
5966
5967 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
5968
5969         * coretypes.h (gimple_stmt_iterator_d): Forward declare.
5970         (gimple_stmt_iterator): New typedef.
5971         * gimple.h (gimple_stmt_iterator): Rename to...
5972         (gimple_stmt_iterator_d): ... This.
5973         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
5974         trees be valid for GIMPLE and GENERIC.
5975         (TARGET_GIMPLE_FOLD_BUILTIN): New.
5976         * gimple-fold.c (gimple_fold_call): Call target hook
5977         gimple_fold_builtin.
5978         * hooks.c (hook_bool_gsiptr_false): New.
5979         * hooks.h (hook_bool_gsiptr_false): New.
5980         * target.def (fold_stmt): New.
5981         * doc/tm.texi: Regenerate.
5982
5983 2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
5984
5985         PR target/57018
5986         * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
5987         a set sp if no stack realignment.
5988
5989 2013-04-22  Nick Clifton  <nickc@redhat.com>
5990
5991         * config.gcc (tilegx-linux): Extend extra_objs rather than
5992         overwriting it.
5993         (tilepro-linux): Likewise.
5994
5995 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
5996
5997         * config/aarch64/aarch64-builtins.c
5998         (CF): Remove.
5999         (CF0, CF1, CF2, CF3, CF4, CF10): New.
6000         (VAR<1-12>): Add MAP parameter.
6001         (BUILTIN_*): Likewise.
6002         * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
6003         * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
6004         (aarch64_ushl_n<mode>): Likewise.
6005         (aarch64_sshr_n<mode>): Likewise.
6006         (aarch64_ushr_n<mode>): Likewise.
6007         (aarch64_<maxmin><mode>): Likewise.
6008         (aarch64_sqrt<mode>): Likewise.
6009         * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
6010         (vshr<q>_n_*): Likewise.
6011
6012 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
6013
6014         * config/aarch64/aarch64-builtins.c
6015         (aarch64_simd_builtin_type_mode): Handle SF types.
6016         (sf_UP): Define.
6017         (BUILTIN_GPF): Define.
6018         (aarch64_init_simd_builtins): Handle SF types.
6019         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
6020         (frecps): Likewise.
6021         (frecpx): Likewise.
6022         * config/aarch64/aarch64-simd.md
6023         (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
6024         (aarch64_frecpe<mode>): New.
6025         (aarch64_frecps<mode>): Likewise.
6026         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
6027         (v8type): Add frecp<esx>.
6028         (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
6029         (aarch64_frecps<mode>): Likewise.
6030         * config/aarch64/iterators.md (FRECP): New.
6031         (frecp_suffix): Likewise.
6032         * config/aarch64/arm_neon.h
6033         (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
6034
6035 2013-04-22  Christian Bruel  <christian.bruel@st.com>
6036
6037         PR target/56995
6038         * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
6039         (REG_CLASS_NAMES): Idem.
6040         (REG_CLASS_CONTENTS): Idem.
6041         (REGCLASS_HAS_FP_REG): Idem.
6042         * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
6043         (sh_conditional_register_usage): Idem.
6044
6045 2013-04-21  Jeff Law  <law@redhat.com>
6046
6047         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
6048         (ssa_forward_propagate_and_combine): Use it.
6049
6050 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
6051
6052         * lra.c: Update the flow chart diagram.
6053
6054 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
6055
6056         PR rtl-optimization/56847
6057         * lra-constraints.c (process_alt_operands): Discourage alternative
6058         with non-matche doffsettable memory constraint fro memory with
6059         known offset.
6060
6061 2013-04-19  Richard Biener  <rguenther@suse.de>
6062
6063         PR tree-optimization/56982
6064         * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
6065         function.
6066         * gimplify.c (gimplify_call_expr): Notice special calls.
6067         (gimplify_modify_expr): Likewise.
6068         * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
6069         abnormal control flow receivers.
6070         (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
6071         in the same way as cfun->has_nonlocal_labels.
6072         (gimple_purge_dead_abnormal_call_edges): Likewise.
6073         (stmt_starts_bb_p): Make setjmp-like abnormal control flow
6074         receivers start a basic-block.
6075
6076 2013-04-19  Richard Biener  <rguenther@suse.de>
6077
6078         * tree-vectorizer.h (struct _slp_instance): Move load_permutation
6079         member ...
6080         (struct _slp_tree): ... here.  Make it a vector of unsigned ints.
6081         (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
6082         (SLP_TREE_LOAD_PERMUTATION): Add.
6083         (vect_transform_slp_perm_load): Adjust prototype.
6084         * tree-vect-slp.c (vect_free_slp_tree): Adjust.
6085         (vect_free_slp_instance): Likewise.
6086         (vect_create_new_slp_node): Likewise.
6087         (vect_supported_slp_permutation_p): Remove.
6088         (vect_slp_rearrange_stmts): Adjust.
6089         (vect_supported_load_permutation_p): Likewise.  Inline
6090         vect_supported_slp_permutation_p here.
6091         (vect_analyze_slp_instance): Compute load permutations per
6092         slp node instead of per instance.
6093         (vect_get_slp_defs): Adjust.
6094         (vect_transform_slp_perm_load): Likewise.
6095         (vect_schedule_slp_instance): Remove redundant code.
6096         (vect_schedule_slp): Remove hack for PR56270, add it ...
6097         * tree-vect-stmts.c (vectorizable_load): ... here, do not
6098         CSE loads for SLP.  Adjust.
6099
6100 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
6101
6102         * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
6103         spelling in two comments.
6104
6105 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
6106
6107         PR target/56797
6108         * config/arm/arm.c (load_multiple_sequence): Require SP
6109         as base register for loads if SP is in the register list.
6110
6111 2013-04-19  Martin Jambor  <mjambor@suse.cz>
6112
6113         PR tree-optimization/56718
6114         * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
6115         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
6116         and made public.  Adjusted all callers.
6117         (ipa_intraprocedural_devirtualization): New function.
6118         * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
6119         (ipa_intraprocedural_devirtualization): Likewise.
6120         * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
6121
6122 2013-04-19  Richard Biener  <rguenther@suse.de>
6123
6124         PR tree-optimization/57000
6125         * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
6126
6127 2013-04-19  Terry Guo  <terry.guo@arm.com>
6128
6129         * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
6130         Replace with ...
6131         (cortex_m4_v_a,  cortex_m4_v_b): ... new cpu units.
6132         (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
6133         (cortex_m4_fmacs): Use new reservations.
6134         (cortex_m4_f_load, cortex_m4_f_store): Likewise.
6135
6136 2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>
6137
6138         PR rtl-optimization/56999
6139         * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
6140         related code.
6141         (lra_coalesce): Remove split_origin_bitmap and related code.
6142         * lra.c (lra): Coalesce after undoing inheritance.  Recreate live
6143         ranges if necessary.
6144
6145 2013-04-18  Uros Bizjak  <ubizjak@gmail.com>
6146
6147         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
6148         New array.
6149         (ix86_expand_call): Remove clobbered_registers array and use
6150         x86_64_ms_sysv_extra_clobbered_registers instead.
6151         * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
6152         Declare here.
6153         * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
6154         predicate.
6155         * config/i386/i386.md (*call_rex64_ms_sysv): Use
6156         call_rex64_ms_sysv_operation predicate.  Remove explicit clobbers.
6157         (*call_value_rex64_ms_sysv): Ditto.
6158
6159 2013-04-18  Cary Coutant  <ccoutant@google.com>
6160
6161         * dwarf2out.c (output_pubnames): Check die_perennial_p of
6162         parent instead of die_mark.
6163
6164 2013-04-18  Diego Novillo  <dnovillo@google.com>
6165
6166         * gimple.c (create_gimple_tmp): New.
6167         (get_expr_type): New.
6168         (build_assign): New.
6169         (build_type_cast): New.
6170         * gimple.h (enum ssa_mode): Define.
6171         (gimple_seq_set_location): New.
6172         * asan.c (build_check_stmt): Change some gimple_build_* calls
6173         to use build_assign and build_type_cast.
6174
6175 2013-04-18  Richard Biener  <rguenther@suse.de>
6176
6177         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
6178         handle negative step.  Remove redundant checks.
6179         (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
6180         * tree-vect-stmts.c (vectorizable_load): Instead of asserting
6181         for negative step and grouped loads fail to vectorize.
6182
6183 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
6184
6185         * emit-rtl.c (reset_insn_used_flags): New function.
6186         (reset_all_used_flags): Use it.
6187         (verify_insn_sharing): New function.
6188         (verify_rtl_sharing): Fix verification for SEQUENCEs.
6189
6190 2013-04-18  Jakub Jelinek  <jakub@redhat.com>
6191
6192         PR tree-optimization/56984
6193         * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
6194         and (x >> M) >= N don't register any assertion if N << M is the
6195         minimum value.
6196
6197 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
6198
6199         * lower-subreg.c (resolve_simple_move): If called self-recursive,
6200         do not delete_insn insns that have not yet been emitted, only
6201         unlink them with remove_insn.
6202         * df-scan.c (df_insn_delete): Revert r197492.
6203
6204 2013-04-17  Steven Bosscher  <steven@gcc.gnu.org>
6205
6206         * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
6207         * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
6208
6209 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
6210
6211         * config/arm/arm.md (movsicc_insn): Convert define_insn into
6212         define_insn_and_split.
6213         (and_scc,ior_scc,negscc): Likewise.
6214         (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
6215
6216 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
6217
6218         * config/arm/arm.c (use_return_insn): Return 0 for targets that
6219         can benefit from using a sequence of LDRD instructions in epilogue
6220         instead of a single LDM instruction.
6221
6222 2013-04-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6223
6224         PR 45688
6225         * doc/extend.texi: Fix typo.
6226
6227 2013-04-17  Richard Biener  <rguenther@suse.de>
6228
6229         * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
6230         (vect_build_slp_tree): ... here.
6231         (vect_build_slp_tree_1): Compute which stmts of the SLP group
6232         match.  Remove special-casing of mismatched complex loads.
6233         (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
6234         re-try the match with swapped commutative operands.
6235         (vect_supported_load_permutation_p): Remove special-casing of
6236         mismatched complex loads.
6237         (vect_analyze_slp_instance): Adjust.
6238
6239 2013-04-17  Richard Biener  <rguenther@suse.de>
6240
6241         PR rtl-optimization/56921
6242         * cfgloop.h (struct loop): Add simple_loop_desc member.
6243         (struct niter_desc): Mark with GTY(()).
6244         (simple_loop_desc): Do not use aux field but simple_loop_desc.
6245         * loop-iv.c (get_simple_loop_desc): Likewise.
6246         (free_simple_loop_desc): Likewise.
6247
6248         Revert
6249         2013-04-16  Richard Biener  <rguenther@suse.de>
6250
6251         PR rtl-optimization/56921
6252         * loop-init.c (pass_rtl_move_loop_invariants): Add
6253         TODO_do_not_ggc_collect to todo_flags_finish.
6254         (pass_rtl_unswitch): Same.
6255         (pass_rtl_unroll_and_peel_loops): Same.
6256         (pass_rtl_doloop): Same.
6257
6258 2013-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6259
6260         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
6261         (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
6262         Use nonoverlapping_component_refs_of_decl_p to disambiguate component
6263         references.
6264         (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
6265         * tree-streamer.c (record_common_node): Adjust reference in comment.
6266
6267 2013-04-17  Terry Guo  <terry.guo@arm.com>
6268
6269         * config/arm/cortex-m4.md: Add a new bypass.
6270
6271 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6272
6273         * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
6274         New pattern.
6275         (*subs_<optab><mode>_multp2): New pattern.
6276         (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
6277         (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
6278
6279 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6280
6281         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
6282         (*subs_mul_imm_<mode>): New pattern.
6283
6284 2013-04-16  David Edelsohn  <dje.gcc@gmail.com>
6285
6286         PR target/56948
6287         * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
6288         (vsx_movti_64bit): Change j->wa to O->wa.  Add n->r alternative.
6289         (vsx_movti_32bit): Change j->wa to O->wa.
6290
6291 2013-04-16  Richard Biener  <rguenther@suse.de>
6292
6293         PR rtl-optimization/56921
6294         * loop-init.c (pass_rtl_move_loop_invariants): Add
6295         TODO_do_not_ggc_collect to todo_flags_finish.
6296         (pass_rtl_unswitch): Same.
6297         (pass_rtl_unroll_and_peel_loops): Same.
6298         (pass_rtl_doloop): Same.
6299
6300 2013-04-16  Greta Yorsh  <Greta.Yorsh@arm.com>
6301
6302         * config/arm/arm.c (emit_multi_reg_push): New declaration
6303         for an existing function.
6304         (arm_emit_strd_push): New function.
6305         (arm_expand_prologue): Used here.
6306         (arm_emit_ldrd_pop): New function.
6307         (arm_expand_epilogue): Used here.
6308         (arm_get_frame_offsets): Update condition.
6309         (arm_emit_multi_reg_pop): Add a special case for load of a single
6310         register with writeback.
6311
6312 2013-04-16  Uros Bizjak  <ubizjak@gmail.com>
6313
6314         * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
6315         description.
6316
6317 2013-04-16  Richard Biener  <rguenther@suse.de>
6318
6319         PR tree-optimization/56756
6320         * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
6321         (first_mem_ref_loc): New.
6322         (execute_sm): Place the load temporarily before a previous
6323         access instead of in the latch edge to ensure its SSA dependencies
6324         are defined at points dominating the load.
6325
6326 2013-04-16  Steven Bosscher  <steven@gcc.gnu.org>
6327
6328         * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
6329         correct fix by moving header and footer insn to the footer of
6330         the merged basic block.  Clear BB_END of the merged-away block.
6331
6332         PR middle-end/43631
6333         * emit-rtl.c (make_note_raw): New function.
6334         (link_insn_into_chain): New static inline function.
6335         (add_insn): Use it.
6336         (add_insn_before, add_insn_after): Factor insn chain linking code...
6337         (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
6338         using link_insn_into_chain.
6339         (note_outside_basic_block_p): New helper function for emit_note_after
6340         and emit_note_before.
6341         (emit_note_after): Use nobb variant of add_insn_after if the note
6342         should not be contained in a basic block.
6343         (emit_note_before): Use nobb variant of add_insn_before if the note
6344         should not be contained in a basic block.
6345         (emit_note_copy): Use make_note_raw.
6346         (emit_note): Likewise.
6347         * bb-reorder.c (insert_section_boundary_note): Remove hack to set
6348         BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
6349         * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
6350         the moved barrier the tail of the basic block it follows.
6351         * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
6352
6353 2013-04-15  Jakub Jelinek  <jakub@redhat.com>
6354
6355         PR tree-optimization/56962
6356         * gimple-ssa-strength-reduction.c (record_increment): Only set
6357         initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
6358         either rhs1 or rhs2 is equal to c->base_expr.
6359
6360 2013-04-15  Richard Biener  <rguenther@suse.de>
6361
6362         PR tree-optimization/56933
6363         * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
6364         member.
6365         (GROUP_READ_WRITE_DEPENDENCE): Remove.
6366         (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
6367         * tree-vect-data-refs.c (vect_analyze_group_access): Move
6368         dependence check ...
6369         vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
6370         ... here.
6371         * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
6372         GROUP_READ_WRITE_DEPENDENCE.
6373
6374 2013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6375
6376         * emit-rtl.c (reset_all_used_flags): New function.
6377         (verify_rtl_sharing): Call reset_all_used_flags before and after
6378         performing the checks.
6379
6380 2013-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6381
6382         * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
6383         * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
6384         * config/arm/constraints.md (De): New constraint.
6385         * config/arm/neon.md (anddi3_neon): Delete.
6386         (neon_vand<mode>): Expand to standard anddi3 pattern.
6387         * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
6388         Move earlier in the file.
6389         (neon_inv_logic_op2): Likewise.
6390         (arm_anddi_operand_neon): New predicate.
6391
6392 2013-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6393
6394         * configure.ac (gcc_cv_ld_as_needed): Set
6395         gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
6396         Use -z ignore, -z record on *-*-solaris2*.
6397         (HAVE_LD_AS_NEEDED): Update comment.
6398         (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
6399         * configure: Regenerate.
6400         * config.in: Regenerate.
6401         * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
6402         LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
6403         * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
6404         * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
6405         equivalents.  Fix markup.
6406         * doc/tm.texi: Regenerate.
6407
6408 2013-04-15  Andrew Hsieh  <andrewhsieh.google.com>
6409
6410         * config/i386/i386.opt: New option mstack-protector-guard=.
6411         * config/i386/i386-opts.h: Add enum stack_protector_guard.
6412         * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
6413         TARGET_SSP_TLS_GUARD.
6414         * config/i386/i386.c (ix86_option_override_internal): Set
6415         ix86_stack_protector_guard.
6416         * config/i386/i386.md (stack_protect_set): Enable for
6417         TARGET_SSP_TLS_GUARD only.
6418         (stack_protect_set_<mode>): Ditto.
6419         (stack_protect_test): Ditto.
6420         (stack_protect_test_<mode>): Ditto.
6421         * doc/invoke.texi (i386 Option): Document.
6422
6423 2013-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6424
6425         PR target/56890
6426         * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
6427         (S_MODES): Set H_MODE bit.
6428         (SF_MODES): Set only S_MODE and SF_MODE bits.
6429         (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
6430         (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
6431         <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
6432         <MODE_FLOAT>: Likewise.
6433
6434 2013-04-15  Joey Ye  <joey.ye@arm.com>
6435
6436         * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
6437
6438 2013-04-15  Joey Ye  <joey.ye@arm.com>
6439
6440         * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
6441         for real far jump.
6442         (thumb_far_jump_used_p): Count instruction size and set
6443         far_jump_used.
6444
6445 2013-04-14  Eric Botcazou  <ebotcazou@adacore.com>
6446
6447         * reorg.c (fill_simple_delay_slots): Reindent block of code.
6448         * resource.c (mark_target_live_regs): Reformat conditional block.
6449
6450 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
6451
6452         * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
6453         notes, they are emitted only just before final.
6454         * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
6455
6456 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
6457
6458         * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
6459         * cfgrtl.c (delete_insn): Call it here instead.
6460         * lra-spills.c (lra_final_code_change): Use delete_insn.
6461         * haifa-sched.c (sched_remove_insn): Likewise.
6462         * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
6463         returning to the nop pool.
6464         (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
6465         use delete_insn for definitive removal.  Clear BLOCK_FOR_INSN.
6466
6467 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
6468
6469         * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
6470         * doc/tm.texi: Regenerated.
6471
6472 2013-04-12  Uros Bizjak  <ubizjak@gmail.com>
6473
6474         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
6475         QImode checks.
6476
6477 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
6478
6479         * df-core.c (df_find_def): Compare register numbers.
6480         (df_find_use): Likewise.
6481
6482 2013-04-12  Vladimir Makarov  <vmakarov@redhat.com>
6483
6484         PR target/56903
6485         * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
6486         lra_in_progress for return.
6487
6488 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
6489
6490         * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
6491         define_insn into define_insn_and_split and emit movsicc patterns.
6492
6493 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
6494
6495         * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
6496
6497 2013-04-12  Richard Biener  <rguenther@suse.de>
6498
6499         * tree-pass.h (TODO_do_not_ggc_collect): New.
6500         * passes.c (execute_one_ipa_transform_pass): Honor
6501         TODO_do_not_ggc_collect.
6502         (execute_one_pass): Likewise.
6503
6504         Revert
6505         2013-04-10  Richard Biener  <rguenther@suse.de>
6506
6507         * passes.c (init_optimization_passes): Remove reload pass.
6508         * ira.c (do_reload): Merge into ...
6509         (ira): ... this.
6510         (rest_of_handle_reload): Remove.
6511         (pass_reload): Likewise.
6512         * config/i386/i386.c (ix86_option_override): Refer to ira instead
6513         of reload for vzeroupper pass placement.
6514
6515 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
6516
6517         PR tree-optimization/56918
6518         PR tree-optimization/56920
6519         * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
6520         instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
6521         argument to rshift method.  For 2 * HOST_BITS_PER_WIDE_INT precision
6522         use wide_mul_with_sign method.
6523
6524 2013-04-12  Richard Biener  <rguenther@suse.de>
6525
6526         * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
6527         not be considered a gimple constant.
6528
6529 2013-04-12  Marc Glisse  <marc.glisse@inria.fr>
6530
6531         * fold-const.c (const_binop): Handle vector shifts by a scalar.
6532         (fold_binary_loc): Call const_binop also for mixed vector-scalar
6533         operations.
6534
6535 2013-04-12  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6536             Jakub Jelinek  <jakub@redhat.com>
6537
6538         * opts.c: Include diagnostic-color.h.
6539         (common_handle_option): Handle OPT_fdiagnostics_color_.
6540         * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
6541         (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
6542         (diagnostic-color.o): New.
6543         * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
6544         (diagnostic_color_rule): New enum.
6545         * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
6546         * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
6547         the location string.
6548         * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
6549         either NULL, or color kind.
6550         * diagnostic-color.c: New file.
6551         * diagnostic-color.h: New file.
6552         * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
6553         arguments.
6554         * doc/invoke.texi (-fdiagnostics-color): Document.
6555         * pretty-print.h (pp_show_color): Define.
6556         (struct pretty_print_info): Add show_color field.
6557         * diagnostic.c: Include diagnostic-color.h.
6558         (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
6559         macros.  Colorize error:, warning: etc. strings and also the location
6560         string.
6561         (diagnostic_show_locus): Colorize the caret line.
6562         * pretty-print.c: Include diagnostic-color.h.
6563         (pp_base_format): Handle %r and %R format specifiers.  Colorize strings
6564         inside of %< %> quotes or quoted through q format modifier.
6565
6566 2013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6567
6568         * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
6569
6570 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6571
6572         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
6573         code in CC_NZ mode.
6574         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
6575         pattern.
6576
6577 2013-04-11  Marek Polacek  <polacek@redhat.com>
6578
6579         PR tree-optimization/48184
6580         * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
6581
6582 2013-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6583
6584         * stor-layout.c (skip_simple_constant_arithmetic): Move to...
6585         * tree.c (skip_simple_constant_arithmetic): ...here and make public.
6586         (skip_simple_arithmetic): Tidy up.
6587         * tree.h (skip_simple_constant_arithmetic): Declare.
6588
6589 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6590
6591         * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
6592
6593 2013-04-11  Richard Biener  <rguenther@suse.de>
6594
6595         * tree-vect-loop.c (get_initial_def_for_induction): Properly
6596         generate vector constants.
6597
6598 2013-04-11  Richard Biener  <rguenther@suse.de>
6599
6600         PR tree-optimization/56878
6601         * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
6602         * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
6603         New function.
6604         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6605         Prefer to align the DR with the most invariant base address.
6606
6607 2013-04-11  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6608
6609         * opts.c (common_handle_option): Fix formatting and add FALLTHRU
6610         comment.
6611
6612 2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6613
6614         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
6615         floating-point vector comparisons against 0.
6616
6617 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
6618
6619         PR tree-optimization/56899
6620         * fold-const.c (extract_muldiv_1): Apply distributive law
6621         only if TYPE_OVERFLOW_WRAPS (ctype).
6622
6623 2013-04-11  Bin Cheng  <bin.cheng@arm.com>
6624
6625         PR target/56124
6626         * ira-costs.c (scan_one_insn): Check whether the source rtx of
6627         loading has side effect.
6628
6629 2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
6630
6631         * config/sparc/sparc.c: Include tree-pass.h.
6632         (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
6633         (sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
6634         head of file.  Change return type.  Split off gate function.
6635         (sparc_gate_work_around_errata): New function.
6636         (pass_work_around_errata): New pass definition.
6637         (insert_pass_work_around_errata) New pass insert definition to
6638         insert pass_work_around_errata just after delayed-branch scheduling.
6639         (sparc_option_override): Insert the pass.
6640         * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
6641
6642 2013-04-10  David S. Miller  <davem@davemloft.net>
6643
6644         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
6645         or -mcpu=hypersparc.
6646
6647         * target.def (cstore_mode): New hook.
6648         * target.h: Include insn-codes.h
6649         * targhooks.c: Likewise.
6650         (default_cstore_mode): New function.
6651         * targhooks.h: Declare it.
6652         * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
6653         * doc/tm.texi: Rebuild.
6654         * expmed.c (emit_cstore): Obtain cstore boolean result mode using
6655         target hook, rather than inspecting the insn_data.
6656         * config/sparc/sparc.c (sparc_cstore_mode): New function.
6657         (TARGET_CSTORE_MODE): Redefine.
6658         (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
6659         result patterns.
6660         * config/sparc/predicates.md (cstore_result_operand): New special
6661         predicate.
6662         * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
6663         Use it for operand 0.
6664         (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
6665         (*snesi_special): Likewise.
6666         (*snesi_zero): Likewise.
6667         (*seqsi_zero): Likewise.
6668         (*sltu_insn): Likewise.
6669         (*sgeu_insn): Likewise.
6670         (*seqdi_special): Make operand 0 and comparison operation be of
6671         DImode.
6672         (*snedi_special): Likewise.
6673         (*snedi_special_vis3): Likewise.
6674         (*neg_snesi_zero): Rename to *neg_snesisi_zero.
6675         (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
6676         (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
6677         (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
6678         (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
6679         (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
6680         (*sltu_extend_sp64): Likewise.
6681         (*neg_sltu_insn): Rename to *neg_sltusi_insn.
6682         (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
6683         (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
6684         (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
6685         (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
6686
6687 2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
6688
6689         * config/aarch64/aarch64.c (aarch64_print_extension): New function.
6690         (aarch64_start_file): Use the new function.
6691
6692 2013-04-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6693             Jason Merrill  <jason@redhat.com>
6694
6695         * common.opt: Add -gdwarf.
6696         * opts.c (common_handle_option): Handle it.
6697         * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
6698
6699 2013-04-10  Richard Biener  <rguenther@suse.de>
6700
6701         * passes.c (execute_todo): Do not call ggc_collect conditional here.
6702         (execute_one_ipa_transform_pass): But unconditionally here.
6703         (execute_one_pass): And here.
6704         (init_optimization_passes): Remove reload pass.
6705         * tree-pass.h (TODO_ggc_collect): Remove.
6706         (pass_reload): Likewise.
6707         * ira.c (do_reload): Merge into ...
6708         (ira): ... this.
6709         (rest_of_handle_reload): Remove.
6710         (pass_reload): Likewise.
6711         * config/i386/i386.c (ix86_option_override): Refer to ira instead
6712         of reload for vzeroupper pass placement.
6713         * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
6714         and todo_flags_finish of all passes.
6715
6716 2013-04-10  Richard Biener  <rguenther@suse.de>
6717
6718         * tree-vectorizer.h (struct _slp_oprnd_info): Remove
6719         first_const_oprnd field, rename first_def_type to first_op_type.
6720         * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
6721         (vect_get_and_check_slp_defs): Always use the type of the
6722         operand.  Allow mixed vect_external_def, vect_constant_def types.
6723         (vect_get_constant_vectors): Handle mixed vect_external_def,
6724         vect_constant_def types.
6725
6726 2013-04-10  Joern Rennecke <joern.rennecke@embecosm.com>
6727
6728         PR tree-optimization/55524
6729         * tree-ssa-math-opts.c
6730         (convert_mult_to_fma): Don't use an fms construct
6731         when we don't have an fms operation, but fnma, and it looks
6732         likely that we'll be able to use the latter.
6733
6734 2013-04-10  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6735
6736         * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
6737         function.
6738         * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
6739         inline fail caused by overwritable functions.
6740
6741 2013-04-10  Chung-Ju Wu  <jasonwucj@gmail.com>
6742
6743         * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
6744         unnecessary bits in the constant power of two case.
6745
6746 2013-04-10  Richard Biener  <rguenther@suse.de>
6747
6748         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
6749         broken code swapping operands.
6750         (vect_build_slp_tree): Do not compute load permutations here.
6751         (vect_analyze_slp_instance): Compute load permutations here,
6752         after building the SLP tree.
6753
6754 2013-04-09  Christian Bruel  <christian.bruel@st.com>
6755
6756         * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
6757         of next/prev_real_insn.
6758
6759 2013-04-09  Jan Hubicka  <jh@suse.cz>
6760
6761         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6762         Drop aliased parameter.
6763         (function_and_variable_visibility): Do not handle alias pairs.
6764         * cgraph.c (varpool_externally_visible_p): Update prototype.
6765         * varpool.c (varpool_add_new_variable): Update.
6766
6767 2013-04-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6768
6769         * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
6770
6771 2013-04-09  Steven Bosscher  <steven@gcc.gnu.org>
6772
6773         * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
6774
6775         * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
6776
6777 2013-04-09  Marek Polacek  <polacek@redhat.com>
6778
6779         PR tree-optimization/48762
6780         * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
6781
6782 2013-04-09  Richard Biener  <rguenther@suse.de>
6783
6784         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
6785         dealing with cost.
6786         (vect_build_slp_tree): Likewise.
6787         (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
6788         calculating the cost of a SLP instance.
6789         (vect_analyze_slp_instance): Use it from here, after building
6790         the SLP tree.
6791
6792 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
6793
6794         PR middle-end/56883
6795         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
6796         expand_omp_for_static_chunk): Use simple_p = true in
6797         force_gimple_operand_gsi calls when assigning to addressable decls.
6798
6799 2013-04-09  Jeff Law  <law@redhat.com>
6800
6801         * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
6802         when the boolean was created by converting a wider object which
6803         had a boolean range.
6804
6805 2013-04-09  Richard Biener  <rguenther@suse.de>
6806
6807         * tree-vectorizer.h (slp_void_p): Remove.
6808         (slp_tree): Typedef before _slp_tree declaration.
6809         (struct _slp_tree): Use a vector of slp_tree as children.
6810         (vect_get_place_in_interleaving_chain): Remove.
6811         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
6812         Move ...
6813         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
6814         and make static.
6815         (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
6816         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
6817         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
6818         vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
6819         Use slp_node instead of slp_void_p and adjust.
6820
6821 2013-04-09  Richard Biener  <rguenther@suse.de>
6822
6823         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
6824         work that is not necessary.
6825
6826 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
6827
6828         PR tree-optimization/56854
6829         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
6830         forward into clobber stmts if it would change MEM_REF lhs into
6831         non-MEM_REF.
6832
6833 2013-04-09  Maxim Kuvyrkov  <maxim@kugelworks.com>
6834
6835         * tree.c (type_hash_lookup, type_hash_add): Make static.
6836         * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
6837
6838 2013-04-09  Richard Biener  <rguenther@suse.de>
6839
6840         * tree.h (unsave_expr_now): Remove.
6841         * tree-inline.c (mark_local_for_remap_r): Remove.
6842         (unsave_expr_1): Likewise.
6843         (unsave_r): Likewise.
6844         (unsave_expr_now): Likewise.
6845         * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
6846         (propagate_tree_value): Likewise.
6847
6848 2013-04-08  Steven Bosscher  <steven@gcc.gnu.org>
6849
6850         * doc/rtl.texi (sequence): Rewrite documentation to match the
6851         current use of SEQUENCE rtl objects.
6852         * rtl.def (SEQUENCE): Likewise.
6853
6854         * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
6855         Update documentation.
6856         (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
6857         NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
6858
6859         * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
6860
6861 2013-04-08  Teresa Johnson  <tejohnson@google.com>
6862
6863         * basic-block.h (GCOV_COMPUTE_SCALE): Define.
6864         * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
6865         methods.
6866         (estimate_edge_size_and_time): Add comment to suggest using rounding
6867         methods.
6868         (estimate_node_size_and_time): Ditto.
6869         (remap_edge_change_prob): Use helper rounding divide methods.
6870         * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
6871         (gimple_mod_pow2_value_transform): Ditto.
6872         (gimple_mod_subtract_transform): Ditto.
6873         (gimple_ic_transform): Ditto.
6874         (gimple_stringops_transform): Ditto.
6875         * stmt.c (conditional_probability): Ditto.
6876         (emit_case_dispatch_table): Ditto.
6877         * lto-cgraph.c (merge_profile_summaries): Ditto.
6878         * tree-optimize.c (execute_fixup_cfg): Ditto.
6879         * cfgcleanup.c (try_forward_edges): Ditto.
6880         * cfgloopmanip.c (scale_loop_profile): Ditto.
6881         (loopify): Ditto.
6882         (duplicate_loop_to_header_edge): Ditto.
6883         (lv_adjust_loop_entry_edge): Ditto.
6884         * tree-vect-loop.c (vect_transform_loop): Ditto.
6885         * profile.c (compute_branch_probabilities): Ditto.
6886         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
6887         * lto-streamer-in.c (input_cfg): Ditto.
6888         * gimple-streamer-in.c (input_bb): Ditto.
6889         * ipa-cp.c (update_profiling_info): Ditto.
6890         (update_specialized_profile): Ditto.
6891         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
6892         * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
6893         rounding methods.
6894         * sched-rgn.c (compute_dom_prob_ps): Ditto.
6895         (compute_trg_info): Ditto.
6896         * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
6897         (purge_dead_edges): Ditto.
6898         * loop-unswitch.c (unswitch_loop): Ditto.
6899         * cgraphclones.c (cgraph_clone_edge): Ditto.
6900         (cgraph_clone_node): Ditto.
6901         * tree-inline.c (copy_bb): Ditto.
6902         (copy_edges_for_bb): Ditto.
6903         (initialize_cfun): Ditto.
6904         (copy_cfg_body): Ditto.
6905         (expand_call_inline): Ditto.
6906
6907 2013-04-08  Kai Tietz  <ktietz@redhat.com>
6908
6909         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
6910         TARGET_CYGWIN64 by TARGET_64BIT.
6911
6912 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6913
6914         * config/epiphany/epiphany.md (GPR_1): New constant.
6915         (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
6916         * config/epiphany/epiphany.c (gen_compare_reg):
6917         For flag_finite_math_only, avoid swapping operands when r0 and/or r1
6918         is already in place.
6919         Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
6920         Don't require being called during rtl expansion; If y operlaps r0,
6921         return 0.
6922         (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
6923         (epiphany_expand_epilogue): Likewise.
6924
6925         * config/epiphany/epiphany.c (epiphany_select_cc_mode):
6926         Don't use CC_FPmode for ORDERED / UNORDERED.
6927         * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
6928
6929         * config/epiphany/constraints.md (CnL): New constraint.
6930         * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
6931         * config/epiphany/predicates.md (add_operand): Allow 1024.
6932
6933         * config/epiphany/epiphany.md (logical_op): New code iterator.
6934         (op_mnc): New code attribute.
6935         (<op_mnc>_f, mov_f, cstoresi4): New patterns.
6936         (mov_f+1, mov_f+2): New peephole2 patterns.
6937
6938         * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
6939         (cstoresi4): Also allow re-use of zero result when doing a NE
6940         comparison to a non-zero operand.
6941         Use (clobber (scratch)) for first insn if the gpr output is not needed.
6942
6943         * config/epiphany/epiphany.md (<insn_opname>v2si3):
6944         Use gen_addsi3_i / gen_subsi3_i.
6945
6946 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
6947
6948         PR c++/34949
6949         PR c++/50243
6950         * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
6951         contain anything but clobbers, at most one __builtin_stack_restore,
6952         optionally debug stmts and final resx, and if it has at least one
6953         incoming EH edge.  Don't check for SSA_NAME on LHS of a clobber.
6954         (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
6955         Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
6956         which isn't defaut definition, remove them.
6957         (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
6958         instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
6959         * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
6960         with MEM_REF LHS with SSA_NAME address.
6961
6962 2013-04-08  Jeff Law  <law@redhat.com>
6963
6964         * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
6965
6966 2013-04-08  Richard Biener  <rguenther@suse.de>
6967
6968         * gimple-pretty-print.c (debug_gimple_stmt): Do not print
6969         extra newline.
6970         * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
6971         determined vector type.
6972         (vect_analyze_data_refs): Likewise.
6973         (vect_get_new_vect_var): Adjust.
6974         (vect_create_destination_var): Preserve SSA name versions.
6975         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
6976         not dump anything here.
6977
6978 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6979
6980         * config/epiphany/epiphany.h (struct GTY (()) machine_function):
6981         Add member lr_slot_known.
6982         * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
6983         if necessary.
6984         * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6985         Remove code that sets lr_slot_offset according to what a previous
6986         version of epiphany_emit_save_restore used to do.
6987         (epiphany_emit_save_restore): When doing an lr save or restore,
6988         set/verify lr_slot_known and lr_slot_offset.
6989
6990 2013-04-08  Xinyu Qi  <xyqi@marvell.com>
6991
6992         PR target/54338
6993         * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
6994         in ALL_REGS.
6995
6996 2013-04-08  Richard Biener  <rguenther@suse.de>
6997
6998         * alias.c (find_base_term): Fix thinko in previous change.
6999
7000 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
7001
7002         * tree-loop-distribution.c (const_with_all_bytes_same): New function.
7003         (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
7004         TYPE_PRECISION is equal to mode bitsize.  Use const_with_all_bytes_same
7005         if possible to compute val.
7006         (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
7007         For QImode integers don't require anything about precision.  Use
7008         const_with_all_bytes_same to find out if the constant doesn't have
7009         repeated bytes in it.
7010
7011 2013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7012
7013         * config/s390/s390.c (s390_expand_insv): Only accept insertions
7014         within mode size.
7015
7016 2013-04-08  Marek Polacek  <polacek@redhat.com>
7017
7018         PR rtl-optimization/48182
7019         * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
7020         value to 1.
7021
7022 2013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7023
7024         PR target/55487
7025         * config/pa/pa.c (legitimize_pic_address): Before incrementing label
7026         nuses, make sure we have a label.
7027
7028 2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7029
7030         PR target/56843
7031         * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
7032         (rs6000_emit_swdiv_low_precision): Remove.
7033         (rs6000_emit_swdiv): Rewrite to handle between one and four
7034         iterations of Newton-Raphson generally; modify required number of
7035         iterations for some cases.
7036         * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
7037
7038 2013-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7039
7040         * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
7041         set-but-unused variable.
7042
7043         * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
7044         basic blocks of released function bodies garbage-collectable.
7045
7046         * ree.c (find_and_remove_re): Do not call df_finish_pass here.
7047         (struct rtl_opt_pass): Add TODO_df_finish.
7048
7049         * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
7050
7051 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7052
7053         * config/arm/constraints.md (q): New constraint.
7054         * config/arm/ldrdstrd.md: New file.
7055         * config/arm/arm.md (ldrdstrd.md) New include.
7056         (arm_movdi): Use "q" instead of "r" constraint
7057         for double-word memory access.
7058         (movdf_soft_insn): Likewise.
7059         * config/arm/vfp.md (movdi_vfp): Likewise.
7060         * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
7061         * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
7062         * config/arm/arm.c (gen_operands_ldrd_strd): New function.
7063         (mem_ok_for_ldrd_strd): Likewise.
7064         (output_move_double): Update assertion.
7065
7066 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7067
7068         * config/arm/arm.md: Comment on splitting Thumb1 patterns.
7069
7070 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7071
7072         * config/arm/arm.md (arm_smax_insn): Convert define_insn into
7073         define_insn_and_split.
7074         (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
7075
7076 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7077
7078         * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
7079         define_insn_and_split.
7080         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
7081         (shiftsi3_compare): New pattern.
7082         (rrx): New pattern.
7083         * config/arm/unspecs.md (UNSPEC_RRX): New.
7084
7085 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7086
7087         * config/arm/arm.md (negdi_extendsidi): New pattern.
7088         (negdi_zero_extendsidi): Likewise.
7089
7090 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7091
7092         * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
7093         define_insn_and_split.
7094         (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
7095         (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
7096
7097 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7098
7099         * config/arm/arm.md (arm_subdi3): Convert define_insn into
7100         define_insn_and_split.
7101         (subdi_di_zesidi,subdi_di_sesidi): Likewise.
7102         (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
7103
7104 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7105
7106         * config/arm/arm.md (subsi3_carryin): New pattern.
7107         (subsi3_carryin_const): Likewise.
7108         (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
7109         (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
7110
7111 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7112
7113         * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
7114
7115 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
7116
7117         * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
7118         (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
7119
7120 2013-04-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7121
7122         * config/arm/arm.c (arm_expand_builtin): Change fcode
7123         type to unsigned int.
7124
7125 2013-04-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7126
7127         * doc/invoke.texi (ARM Options): Document cortex-a53 support.
7128
7129 2013-04-04  Ian Lance Taylor  <iant@google.com>
7130
7131         * doc/standards.texi (Standards): The Go frontend supports the Go 1
7132         language standard.
7133
7134 2013-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7135
7136         PR middle-end/56729
7137         * df-scan.c (df_insn_delete): Disable failing assert.
7138
7139 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7140
7141         * config/arm/arm-protos.h (arm_builtin_vectorized_function):
7142         New function prototype.
7143         * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
7144         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
7145         (arm_builtin_vectorized_function): New function.
7146
7147 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7148
7149         * config/arm/arm_neon_builtins.def: New file.
7150         * config/arm/arm.c (neon_builtin_data): Move contents to
7151         arm_neon_builtins.def.
7152         (enum arm_builtins): Include neon builtin definitions.
7153         (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
7154         * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
7155
7156 2013-04-04  Marek Polacek  <polacek@redhat.com>
7157
7158         PR tree-optimization/48186
7159         * predict.c (maybe_hot_frequency_p): Return false if
7160         HOT_BB_FREQUENCY_FRACTION is 0.
7161         (cgraph_maybe_hot_edge_p): Likewise.
7162
7163 2013-04-04  Richard Biener  <rguenther@suse.de>
7164
7165         PR tree-optimization/56826
7166         * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
7167         more accurately.
7168
7169 2013-04-04  Richard Biener  <rguenther@suse.de>
7170
7171         PR tree-optimization/56213
7172         * tree-vect-data-refs.c (vect_check_strided_load): Remove.
7173         (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
7174
7175 2013-04-04  Richard Biener  <rguenther@suse.de>
7176
7177         PR tree-optimization/56837
7178         * tree-loop-distribution.c (classify_partition): For non-zero
7179         values require that the value has the same precision as its
7180         mode to be useful as memset value.
7181
7182 2013-04-03  Nick Clifton  <nickc@redhat.com>
7183
7184         * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
7185         (fmssf4): Use fmsf.s on E3V5 architectures.
7186         (fnmasf4): Use fnmaf.s on E3V5 architectures.
7187         (fnmssf4): Use fnmsf.s on E3V5 architectures.
7188
7189 2013-04-03  Jeff Law  <law@redhat.com>
7190
7191         * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
7192         (lra-eliminations.o): Likewise.
7193
7194 2013-04-03  Teresa Johnson  <tejohnson@google.com>
7195
7196         * gcov-io.c (compute_working_sets): Moved most of body of old
7197         compute_working_sets here from profile.c.
7198         * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
7199         (gcov_working_set_t): Moved typedef here from basic-block.h
7200         (compute_working_set): Declare.
7201         * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
7202         (get_working_sets): Renamed from compute_working_set,
7203         replace most of body with call to new compute_working_sets.
7204         (get_exec_counts): Replace call to compute_working_sets
7205         to get_working_sets.
7206         * profile.h (get_working_sets): Renamed from compute_working_set.
7207         * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
7208         to get_working_sets.
7209         * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
7210         * gcov-dump.c (dump_working_sets): New function.
7211
7212 2013-04-03  Kenneth Zadeck <zadeck@naturalbridge.com>
7213
7214         * hwint.c (sext_hwi, zext_hwi): New functions.
7215         * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
7216         HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
7217         HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
7218         HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
7219         HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
7220         (sext_hwi, zext_hwi): New functions.
7221
7222 2013-04-03  Jeff Law  <law@redhat.com>
7223
7224         PR tree-optimization/56799
7225         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
7226         back test for widening conversion erroneously dropped in prior change.
7227
7228 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7229
7230         PR target/56809
7231         * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
7232         instead of next_real_insn.
7233
7234 2013-04-03  Marek Polacek  <polacek@redhat.com>
7235
7236         PR sanitizer/55702
7237         * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
7238
7239 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7240
7241         PR target/56809
7242         * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
7243         next_real_insn.
7244         (thumb1_output_casesi): Likewise.
7245         (thumb2_output_casesi): Likewise.
7246
7247 2013-04-03  Richard Biener  <rguenther@suse.de>
7248
7249         PR tree-optimization/56817
7250         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7251         Split out ...
7252         (tree_unroll_loops_completely_1): ... new function to manually
7253         walk the loop tree, properly defering outer loops of unrolled
7254         loops to later iterations.
7255
7256 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7257
7258         * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
7259         (vectorizable_load): Likewise.
7260         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
7261         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
7262
7263 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7264
7265         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
7266         BIT_FIELD_REF.
7267
7268 2013-04-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7269
7270         * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
7271
7272 2013-04-03  Bin Cheng  <bin.cheng@arm.com>
7273
7274         * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
7275
7276 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7277
7278         PR tree-optimization/56790
7279         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
7280         folding.
7281
7282 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
7283
7284         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
7285         Handle VEC_MERGE.
7286         (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
7287         for masks. Test for side effects. Handle nested VEC_MERGE. Handle
7288         equal arguments.
7289
7290 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
7291
7292         PR c/19449
7293         * tree.h (force_folding_builtin_constant_p): New decl.
7294         * builtins.c (force_folding_builtin_constant_p): New variable.
7295         (fold_builtin_constant_p): Fold immediately also if
7296         force_folding_builtin_constant_p.
7297
7298 2013-04-03  Richard Biener  <rguenther@suse.de>
7299
7300         PR tree-optimization/56812
7301         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
7302         DRs of the same interleaving chain are independent.
7303
7304 2013-04-02  Jason Merrill  <jason@redhat.com>
7305
7306         * gdbinit.in (pbb): Use debug fn.
7307
7308 2013-04-02  Lawrence Crowl  <crowl@google.com>
7309
7310         * sese.h (struct ivtype_map_elt_s): Remove unused.
7311         (extern debug_ivtype_map): Remove unused.
7312         (extern eq_ivtype_map_elts): Remove unused.
7313         * sese.c (debug_ivtype_map): Removed unused.
7314         (debug_ivtype_map_1): Removed unused.
7315         (debug_ivtype_elt): Remove unused.
7316         (eq_ivtype_map_elts): Remove unused.
7317
7318
7319 2013-04-02  Kai Tietz  <ktietz@redhat.com>
7320
7321         PR target/52790
7322         * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
7323         * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
7324         * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
7325         function.
7326         (legitimize_pe_coff_symbol): Likewise.
7327         (is_imported_p): New helper-function.
7328         (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
7329         for Windows x64 targets.
7330         (ix86_expand_prologue): Optimize for pe-coff targets.
7331         (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
7332         (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
7333         medium/large code-model.
7334         (legitimize_pic_address): Likewise.
7335         (legitimize_tls_address): Likewise.
7336         (ix86_expand_call): Likewise.
7337         (x86_output_mi_thunk): Likewise.
7338         (get_dllimport_decl): Add new beimport argument.
7339         (construct_plt_address): Don't assert for x64 pe-coff targets.
7340         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
7341         targets.
7342         (SYMBOL_FLAG_STUBVAR): New macro.
7343         (SYMBOL_REF_STUBVAR_P): Likewise.
7344         * config/i386/winnt.c (stub_list): New structure.
7345         (stub_head): New local variable.
7346         (i386_pe_record_stub): New function.
7347         (i386_pe_file_end): Emit refptr-stubs.
7348
7349 2013-04-02  Jakub Jelinek  <jakub@redhat.com>
7350
7351         PR rtl-optimization/56745
7352         * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
7353         if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
7354
7355         PR c++/34949
7356         * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
7357         and both of them are MEM_REFs, just compare first argument for
7358         equality and attempt to deal even with differing offsets.
7359
7360         PR c++/34949
7361         * tree-cfg.c (verify_gimple_assign_single): Allow lhs
7362         of gimple_clobber_p to be MEM_REF.
7363         * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
7364         an assignment from TREE_CLOBBER_P.  Allow it to be MEM_REF
7365         after gimplification.
7366         * asan.c (get_mem_ref_of_assignment): Don't instrument
7367         gimple_clobber_p stmts.
7368         * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
7369         gimple_clobber_p stmt if they have MEM_REF lhs and
7370         are dead because of another gimple_clobber_p stmt.
7371         * tree-ssa-live.c (clear_unused_block_pointer): Treat
7372         gimple_clobber_p stmts like debug stmts.
7373         (remove_unused_locals): Remove clobbers with MEM_REF lhs
7374         that refer to unused VAR_DECLs or uninitialized values.
7375         * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
7376         gimple_clobber_p stmts if they refer to removed parameters.
7377         (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
7378         formatting.
7379
7380 2013-04-02  Uros Bizjak  <ubizjak@gmail.com>
7381
7382         * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
7383         using SWI48 mode attribute.
7384
7385 2013-04-02  Wei Mi  <wmi@google.com>
7386
7387         * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
7388         ashl<mode>3_mask, *<shift_insn><mode>3_mask and
7389         *<rotate_insn><mode>3_mask in i386.md.
7390
7391 2013-04-02  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7392
7393         * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
7394
7395 2013-04-02  Richard Biener  <rguenther@suse.de>
7396
7397         PR tree-optimization/56778
7398         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7399         Runtime alias tests are not supported for gather loads.
7400         * tree-vect-loop-manip.c (vect_loop_versioning): Insert
7401         stmts referenced from SSA operands before updating SSA form.
7402
7403 2013-04-02  Ian Caulfield  <ian.caulfield@arm.com>
7404             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7405
7406         * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
7407         * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
7408         * config/arm/cortex-a53.md: New file.
7409         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
7410         * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
7411         * config/arm/arm.c (arm_issue_rate): Likewise.
7412         * config/arm/arm-tune.md: Regenerate
7413         * config/arm/arm-tables.opt: Regenerate.
7414         * config/arm/arm-cores.def: Add cortex-a53.
7415
7416 2013-04-02  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7417
7418         * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
7419         non-static link.
7420
7421 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
7422
7423         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
7424         scalar load/store operations using B/H registers.
7425         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
7426
7427 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
7428
7429         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
7430         scalar move.
7431         * config/aarch64/aarch64.c
7432         (aarch64_simd_scalar_immediate_valid_for_move): New.
7433         * config/aarch64/aarch64-protos.h
7434         (aarch64_simd_scalar_immediate_valid_for_move): New.
7435         * config/aarch64/constraints.md (Dh, Dq): New.
7436         * config/aarch64/iterators.md (hq): New.
7437
7438 2013-04-02  Eric Botcazou  <ebotcazou@adacore.com>
7439
7440         * reorg.c (get_branch_condition): Deal with conditional returns.
7441         (fill_simple_delay_slots): Remove dead code dealing with jumps.
7442
7443 2013-04-01  Wei Mi  <wmi@google.com>
7444
7445         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
7446         Truncate operand 2 using %b asm operand modifier.
7447         (*<shift_insn><mode>3_mask): Ditto.
7448         (*<rotate_insn><mode>3_mask): Ditto.
7449
7450 2013-04-01  Steven Bosscher  <steven@gcc.gnu.org>
7451
7452         PR middle-end/56798
7453         * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
7454
7455 2013-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
7456
7457         * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
7458         of next_real_insn.
7459         (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
7460
7461 2013-03-30  Lawrence Crowl  <crowl@google.com>
7462
7463         * dse.c (clear_alias_sets): Remove never set.
7464         (disqualified_clear_alias_sets): Remove never set.
7465         (clear_alias_mode_pool): Remove never set.
7466         (dse_step0): Remove condition that is never true.
7467         (canon_address): Remove condition that is never true.
7468         (dse_step7): Remove condition that is never true.
7469         (rest_of_handle_dse): Remove condition that is never true.
7470         (rest_of_handle_dse::did_global): Remove never read from above.
7471         (dse_step2_spill): Remove never called from above.
7472         (dse_step5_spill): Remove never called from above.
7473
7474 2013-03-30  Steven Bosscher  <steven@gcc.gnu.org>
7475
7476         * doc/md.texi (Standard Names) <casesi>: Update documentation for
7477         JUMP_TABLE_DATA changes.
7478         * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
7479         * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
7480         (Insns) <jump_table_data>: New entry.
7481         * doc/tm.texi: Regenerate.
7482
7483         * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
7484
7485         * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
7486         for table jump at the end of a basic block using tablejump_p.
7487         * targhooks.c (default_invalid_within_doloop): Likewise.
7488         * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
7489         target hook implementation that is identical to the default hook.
7490         (rs6000_invalid_within_doloop): Remove.
7491
7492         * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
7493         unused variable from tablejump_p call.
7494
7495         * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
7496         * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
7497         (INSN_DELETED_P): Likewise.
7498         (emit_jump_table_data): New prototype.
7499         * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
7500         after 4th as unused.
7501         * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
7502         * sched-vis.c (print_insn): Likewise.
7503         * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
7504         insn for compatibility with back ends that use next_active_insn to
7505         identify jump table data.
7506         (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
7507         (remove_insn): Likewise.
7508         (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
7509         to be emitted.
7510         (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
7511         (emit_jump_table_data): New function.
7512
7513         * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
7514         basic block, a JUMP_TABLE_DATA never is.
7515         (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
7516         * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
7517         off from code handling real insns.
7518         * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
7519         * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
7520         test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
7521         * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
7522         is not a NONDEBUG_INSN_P.
7523         * ira-costs.c (scan_one_insn): Likewise.
7524         * jump.c (mark_all_labels): Likewise.
7525         (mark_jump_label_1): Likewise.
7526         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
7527         * lra.c (get_insn_freq): Expect all insns reaching here to be in
7528         a basic block.
7529         (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
7530         * predict.c (expensive_function_p): Use FOR_BB_INSNS.
7531         * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
7532         JUMP_TABLE_DATA_P insns.
7533         (calculate_elim_costs_all_insns): Likewise.
7534         (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
7535         (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
7536         (delete_output_reload): Code style fixups.
7537         * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
7538         insn flags on this non-insn.
7539         * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
7540         as scheduling barriers, for pre-change compatibility.
7541         * stmt.c (emit_case_dispatch_table): Emit jump table data not as
7542         JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
7543
7544         * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
7545         redundant JUMP_TABLE_DATA_P test.
7546         * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
7547         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
7548         (frv_for_each_packet): Likewise.
7549         * config/i386/i386.c (min_insn_size): Likewise.
7550         (ix86_avoid_jump_mispredicts): Likewise.
7551         * config/m32r/m32r.c (m32r_is_insn): Likewise.
7552         * config/mep/mep.c (mep_reorg_erepeat): Likewise.
7553         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
7554         (mips16_insn_length): Robustify.
7555         (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
7556         (mips16_split_long_branches): Likewise.
7557         * config/pa/pa.c (pa_combine_instructions): Likewise.
7558         * config/rs6000/rs6000.c (get_next_active_insn): Treat
7559         JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
7560         * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
7561         as contributing to pool range lengths.
7562         * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
7563         Remove redundant JUMP_TABLE_DATA_P test.
7564         (sh_loop_align): Likewise.
7565         (split_branches): Likewise.
7566         (sh_insn_length_adjustment): Likewise.
7567         * config/spu/spu.c (get_branch_target): Likewise.
7568
7569 2013-03-29  Jan Hubicka  <jh@suse.cz>
7570
7571         * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
7572         gcov streaming; stream hot bb threshold to ltrans.
7573         * predict.c (get_hot_bb_threshold): Break out from ....
7574         (maybe_hot_count_p): ... here.
7575         (set_hot_bb_threshold): New function.
7576         * lto-section-in.c (lto_section_name): Add profile.
7577         * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
7578         * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
7579         and data-streamer.h
7580         (histogram_entry): New structure.
7581         (histogram, histogram_pool): New global vars.
7582         (histogram_hash): New structure.
7583         (histogram_hash::hash): New method.
7584         (histogram_hash::equal): Likewise.
7585         (account_time_size): New function.
7586         (cmp_counts): New function.
7587         (dump_histogram): New function.
7588         (ipa_profile_generate_summary): New function.
7589         (ipa_profile_write_summary): New function.
7590         (ipa_profile_read_summary): New function.
7591         (ipa_profile): Decide on threshold.
7592         (pass_ipa_profile): Add ipa_profile_write_summary and
7593         ipa_profile_read_summary.
7594         * Makefile.in (ipa.o): Update dependencies.
7595         * lto-streamer.h (LTO_section_ipa_profile): New section.
7596
7597 2013-03-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7598
7599         * tree.h (VAR_P): New.
7600
7601 2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
7602
7603         PR lto/56777
7604         * doc/invoke.texi ([-fwhole-program]): Fix typo.
7605
7606 2013-03-29  Steven Bosscher  <steven@gcc.gnu.org>
7607
7608         * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
7609         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
7610         (control_flow_insn_p): Likewise.
7611         * cfgrtl.c (duplicate_insn_chain): Likewise.
7612         * final.c (get_attr_length_1): Likewise.
7613         (shorten_branches): Likewise.
7614         (final_scan_insn): Likewise.
7615         * function.c (instantiate_virtual_regs): Likewise.
7616         * gcse.c (insert_insn_end_basic_block): Likewise.
7617         * ira-costs.c (scan_one_insn): Likewise.
7618         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
7619         * lra.c (check_rtl): Likewise.
7620         * reload1.c (elimination_costs_in_insn): Likewise.
7621         * reorg.c (follow_jumps): Likewise.
7622
7623         * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
7624         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
7625         (thumb_far_jump_used_p): Likewise.
7626         * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
7627         (workaround_speculation): Likewise.
7628         (add_sched_insns_for_speculation): Likewise.
7629         * config/c6x/c6x.c (reorg_emit_nops): Likewise.
7630         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
7631         (frv_for_each_packet): Likewise.
7632         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
7633         * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
7634         (final_emit_insn_group_barriers): Likewise.
7635         * config/m32r/m32r.c (m32r_is_insn): Likewise.
7636         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
7637         (mips16_insn_length): Likewise.
7638         * config/pa/pa.c (pa_reorg): Likewise.
7639         (pa_combine_instructions): Likewise.
7640         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
7641         * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
7642         (sh_reorg): Likewise.
7643         (split_branches): Likewise.
7644         * config/spu/spu.c (get_branch_target): Likewise.
7645
7646         * config/s390/s390.c (s390_chunkify_start): Simplify logic using
7647         JUMP_TABLE_DATA_P.
7648
7649 2013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>
7650
7651         * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
7652         Fix declaration name.
7653
7654 2013-03-28  Lawrence Crowl  <crowl@google.com>
7655
7656         * graphds.h (struct graph.indicies): Remove unused.
7657         * graphite-poly.h (struct graph.original_pddrs): Remove unused.
7658         (SCOP_ORIGINAL_PDDRS): Remove unused.
7659         * sese.h (extern insert_loop_close_phis): Removed unused.
7660         (extern insert_guard_phis): Removed unused.
7661         (extern ivtype_map_elt_info): Removed unused.
7662         (new_ivtype_map_elt): Removed unused.
7663         * sese.c (ivtype_map_elt_info): Removed unused.
7664
7665 2013-03-28  Lawrence Crowl  <crowl@google.com>
7666
7667         * Makefile.in: Add several missing include dependences.
7668         (DUMPFILE_H): New.
7669         (test-dump.o): New.  This object is not added to any executable,
7670         but is present for ad-hoc testing.
7671         * bitmap.c
7672         (debug (const bitmap_head_def &)): New.
7673         (debug (const bitmap_head_def *)): New.
7674         * bitmap.h
7675         (extern debug (const bitmap_head_def &)): New.
7676         (extern debug (const bitmap_head_def *)): New.
7677         * cfg.c
7678         (debug (edge_def &)): New.
7679         (debug (edge_def *)): New.
7680         * cfghooks.c
7681         (debug (basic_block_def &)): New.
7682         (debug (basic_block_def *)): New.
7683         * dumpfile.h
7684         (dump_node (const_tree, int, FILE *)): Correct source file.
7685         * dwarf2out.c
7686         (debug (die_struct &)): New.
7687         (debug (die_struct *)): New.
7688         * dwarf2out.h
7689         (extern debug (die_struct &)): New.
7690         (extern debug (die_struct *)): New.
7691         * gimple-pretty-print.c
7692         (debug (gimple_statement_d &)): New.
7693         (debug (gimple_statement_d *)): New.
7694         * gimple-pretty-print.h
7695         (extern debug (gimple_statement_d &)): New.
7696         (extern debug (gimple_statement_d *)): New.
7697         * ira-build.c
7698         (debug (ira_allocno_copy &)): New.
7699         (debug (ira_allocno_copy *)): New.
7700         (debug (ira_allocno &)): New.
7701         (debug (ira_allocno *)): New.
7702         * ira-int.h
7703         (extern debug (ira_allocno_copy &)): New.
7704         (extern debug (ira_allocno_copy *)): New.
7705         (extern debug (ira_allocno &)): New.
7706         (extern debug (ira_allocno *)): New.
7707         * ira-lives.c
7708         (debug (live_range &)): New.
7709         (debug (live_range *)): New.
7710         * lra-int.h
7711         (debug (lra_live_range &)): New.
7712         (debug (lra_live_range *)): New.
7713         * lra-lives.c
7714         (debug (lra_live_range &)): New.
7715         (debug (lra_live_range *)): New.
7716         * omega.c
7717         (debug (omega_pb_d &)): New.
7718         (debug (omega_pb_d *)): New.
7719         * omega.h
7720         (extern debug (omega_pb_d &)): New.
7721         (extern debug (omega_pb_d *)): New.
7722         * print-rtl.c
7723         (debug (const rtx_def &)): New.
7724         (debug (const rtx_def *)): New.
7725         * print-tree.c
7726         (debug_tree (tree): Move within file.
7727         (debug_raw (const tree_node &)): New.
7728         (debug_raw (const tree_node *)): New.
7729         (dump_tree_via_hooks (const tree_node *, int)): New.
7730         (debug (const tree_node &)): New.
7731         (debug (const tree_node *)): New.
7732         (debug_verbose (const tree_node &)): New.
7733         (debug_verbose (const tree_node *)): New.
7734         (debug_head (const tree_node &)): New.
7735         (debug_head (const tree_node *)): New.
7736         (debug_body (const tree_node &)): New.
7737         (debug_body (const tree_node *)): New.
7738         (debug_vec_tree (tree): Move and reimplement in terms of dump.
7739         (debug (vec<tree, va_gc> &)): New.
7740         (debug (vec<tree, va_gc> *)): New.
7741         * rtl.h
7742         (extern debug (const rtx_def &)): New.
7743         (extern debug (const rtx_def *)): New.
7744         * sbitmap.c
7745         (debug_raw (simple_bitmap_def &)): New.
7746         (debug_raw (simple_bitmap_def *)): New.
7747         (debug (simple_bitmap_def &)): New.
7748         (debug (simple_bitmap_def *)): New.
7749         * sbitmap.h
7750         (extern debug (simple_bitmap_def &)): New.
7751         (extern debug (simple_bitmap_def *)): New.
7752         (extern debug_raw (simple_bitmap_def &)): New.
7753         (extern debug_raw (simple_bitmap_def *)): New.
7754         * sel-sched-dump.c
7755         (debug (vinsn_def &)): New.
7756         (debug (vinsn_def *)): New.
7757         (debug_verbose (vinsn_def &)): New.
7758         (debug_verbose (vinsn_def *)): New.
7759         (debug (expr_def &)): New.
7760         (debug (expr_def *)): New.
7761         (debug_verbose (expr_def &)): New.
7762         (debug_verbose (expr_def *)): New.
7763         (debug (vec<rtx> &)): New.
7764         (debug (vec<rtx> *)): New.
7765         * sel-sched-dump.h
7766         (extern debug (vinsn_def &)): New.
7767         (extern debug (vinsn_def *)): New.
7768         (extern debug_verbose (vinsn_def &)): New.
7769         (extern debug_verbose (vinsn_def *)): New.
7770         (extern debug (expr_def &)): New.
7771         (extern debug (expr_def *)): New.
7772         (extern debug_verbose (expr_def &)): New.
7773         (extern debug_verbose (expr_def *)): New.
7774         (extern debug (vec<rtx> &)): New.
7775         (extern debug (vec<rtx> *)): New.
7776         * sel-sched-ir.h
7777         (_list_iter_cond_expr): Make inline instead of static.
7778         * sreal.c
7779         (debug (sreal &)): New.
7780         (debug (sreal *)): New.
7781         * sreal.h
7782         (extern debug (sreal &)): New.
7783         (extern debug (sreal *)): New.
7784         * tree.h
7785         (extern debug_raw (const tree_node &)): New.
7786         (extern debug_raw (const tree_node *)): New.
7787         (extern debug (const tree_node &)): New.
7788         (extern debug (const tree_node *)): New.
7789         (extern debug_verbose (const tree_node &)): New.
7790         (extern debug_verbose (const tree_node *)): New.
7791         (extern debug_head (const tree_node &)): New.
7792         (extern debug_head (const tree_node *)): New.
7793         (extern debug_body (const tree_node &)): New.
7794         (extern debug_body (const tree_node *)): New.
7795         (extern debug (vec<tree, va_gc> &)): New.
7796         (extern debug (vec<tree, va_gc> *)): New.
7797         * tree-cfg.c
7798         (debug (struct loop &)): New.
7799         (debug (struct loop *)): New.
7800         (debug_verbose (struct loop &)): New.
7801         (debug_verbose (struct loop *)): New.
7802         * tree-dump.c: Add header dependence.
7803         * tree-flow.h
7804         (extern debug (struct loop &)): New.
7805         (extern debug (struct loop *)): New.
7806         (extern debug_verbose (struct loop &)): New.
7807         (extern debug_verbose (struct loop *)): New.
7808         * tree-data-ref.c
7809         (debug (data_reference &)): New.
7810         (debug (data_reference *)): New.
7811         (debug (vec<data_reference_p> &)): New.
7812         (debug (vec<data_reference_p> *)): New.
7813         (debug (vec<ddr_p> &)): New.
7814         (debug (vec<ddr_p> *)): New.
7815         * tree-data-ref.h
7816         (extern debug (data_reference &)): New.
7817         (extern debug (data_reference *)): New.
7818         (extern debug (vec<data_reference_p> &)): New.
7819         (extern debug (vec<data_reference_p> *)): New.
7820         (extern debug (vec<ddr_p> &)): New.
7821         (extern debug (vec<ddr_p> *)): New.
7822         * tree-ssa-alias.c
7823         (debug (pt_solution &)): New.
7824         (debug (pt_solution *)): New.
7825         * tree-ssa-alias.h
7826         (extern debug (pt_solution &)): New.
7827         (extern debug (pt_solution *)): New.
7828         * tree-ssa-alias.c
7829         (debug (_var_map &)): New.
7830         (debug (_var_map *)): New.
7831         (debug (tree_live_info_d &)): New.
7832         (debug (tree_live_info_d *)): New.
7833         * tree-ssa-alias.h
7834         (extern debug (_var_map &)): New.
7835         (extern debug (_var_map *)): New.
7836         (extern debug (tree_live_info_d &)): New.
7837         (extern debug (tree_live_info_d *)): New.
7838
7839 2013-03-28  Jan Hubicka  <jh@suse.cz>
7840
7841         * lto-cgraph.c (merge_profile_summaries): Fix overflows.
7842
7843 2013-03-28  Ian Bolton  <ian.bolton@arm.com>
7844
7845         * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
7846         record only when desired or required.
7847
7848 2013-03-28  Uros Bizjak  <ubizjak@gmail.com>
7849
7850         * config/i386/i386.md (*vec_extract2vdi_1): Merge with
7851         *vec_extractv2di_1_rex64.  Use x64 isa attribute.
7852
7853 2013-03-28  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7854
7855         * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
7856         (*andsi3_compare0_uxtw): New pattern.
7857         (*and_<SHIFT:optab><mode>3_compare0): New pattern.
7858         (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
7859
7860 2013-03-28  Jan Hubicka  <jh@suse.cz>
7861
7862         * data-streamer-in.c (streamer_read_gcov_count): New function.
7863         * gimple-streamer-out.c: Include value-prof.h.
7864         (output_gimple_stmt): Output histogram.
7865         (output_bb): Use streamer_write_gcov_count.
7866         * value-prof.c: Include data-streamer.h
7867         (dump_histogram_value): Add HIST_TYPE_MAX.
7868         (stream_out_histogram_value): New function.
7869         (stream_in_histogram_value): New function.
7870         * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
7871         (stream_out_histogram_value, stream_in_histogram_value): Declare.
7872         * data-streamer-out.c (streamer_write_gcov_count): New function.
7873         (streamer_write_gcov_count_stream): New function.
7874         * lto-cgraph.c (lto_output_edge): Update counter streaming.
7875         (lto_output_node): Likewise.
7876         (input_node, input_edge): Likewise.
7877         * lto-streamer-out.c (output_cfg): Update streaming.
7878         * lto-streamer-in.c (input_cfg): Likewise.
7879         * data-streamer.h (streamer_write_gcov_count,
7880         streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
7881         * gimple-streamer-in.c: Include value-prof.h
7882         (input_gimple_stmt): Input histograms.
7883         (input_bb): Update profile streaming.
7884
7885 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
7886
7887         * genmodes.c (emit_max_int): New function.
7888         (emit_insn_modes_h): Added call to emit_max_function.
7889         * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
7890         Added doc.
7891         * machmode.def: Fixed comment.
7892
7893 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
7894
7895         * combine.c (try_combine): Removed useless assert.
7896         * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
7897
7898 2013-03-28  Marek Polacek  <polacek@redhat.com>
7899             Richard Biener  <rguenther@suse.de>
7900
7901         PR tree-optimization/56695
7902         * tree-vect-stmts.c (vectorizable_condition): Unconditionally
7903         build signed result of a vector comparison.
7904         * tree-cfg.c (verify_gimple_comparison): Check that a result
7905         of a vector comparison has signed type.
7906
7907 2013-03-28  Richard Biener  <rguenther@suse.de>
7908
7909         PR tree-optimization/37021
7910         * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
7911         do not restrict gaps between groups.
7912         * tree-vect-stmts.c (vectorizable_load): Properly account for
7913         a gap between groups.
7914
7915 2013-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7916
7917         * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
7918         general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
7919         is not enabled.
7920
7921 2013-03-27  Gerald Pfeifer  <gerald@pfeifer.com>
7922
7923         * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
7924         * doc/extend.texi (Named Address Spaces): Ditto.
7925         (Variable Attributes): Ditto.
7926
7927 2013-03-27  Kai Tietz  <ktietz@redhat.com>
7928
7929         * config.build: Add support for cygwin x64 target.
7930         * config.gcc: Likewise.
7931         * config.host: Likewise.
7932         * configure.ac: Likewise
7933         * configure: Regenerated.
7934
7935 2013-03-27 Kai Tietz  <ktietz@redhat.com>
7936
7937         * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
7938         * config/i386/t-cygwin-w64: New file.
7939         * config/i386/cygwin-w64.h: New file.
7940         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
7941         and add support for x64-cygwin target.
7942         (CPP_SPEC): Likewise.
7943         (CXX_WRAP_SPEC_LIST): Undefine before define.
7944         (LIBGCJ_SONAME): Use 15 as version.
7945
7946 2013-03-27  Richard Biener  <rguenther@suse.de>
7947
7948         PR tree-optimization/56716
7949         * tree-ssa-structalias.c (perform_var_substitution): Adjust
7950         dumping for ref nodes.
7951
7952 2013-03-27  Martin Jambor  <mjambor@suse.cz>
7953
7954         PR tree-optimization/55334
7955         * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
7956         restricted pointers to arrays.
7957
7958 2013-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7959
7960         * Makefile.in (.SUFFIXES): Add .cc.
7961         (.c.o): Apply same recipe for implicit rule .cc.o.
7962
7963 2013-03-27  Richard Biener  <rguenther@suse.de>
7964
7965         PR tree-optimization/37021
7966         * tree-vect-data-refs.c (vect_check_strided_load): Allow
7967         REALPART/IMAGPART_EXPRs around the supported refs.
7968         * tree-ssa-structalias.c (find_func_aliases): Assume that
7969         floating-point values are not used to transfer pointers.
7970
7971 2013-03-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7972
7973         * target.def (TARGET_HAS_IFUNC_P): New target hook.
7974         * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
7975         * doc/tm.texi: Regenerate.
7976         * targhooks.h (default_has_ifunc_p): New.
7977         * targhooks.c (default_has_ifunc_p): Ditto.
7978         * config/linux-protos.h: New file.
7979         * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
7980         this hook for linux which disables support of indirect functions in
7981         android.
7982         * config/linux-android.c: New file.
7983         * config/t-linux-android.c: Ditto.
7984         * config.gcc: Added new object file linux-android.o.
7985         * config/i386/i386.c (ix86_get_function_versions_dispatcher):
7986         Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
7987         * varasm.c (do_assemble_alias): Likewise.
7988         * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
7989         doesn't support indirect functions.
7990         * configure: Regenerate.
7991
7992 2013-03-27  Bin Cheng  <bin.cheng@arm.com>
7993
7994         PR target/56102
7995         * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7996         rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7997         mult-word mode.
7998
7999 2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8000
8001         * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
8002
8003 2013-03-27  Terry Guo  <terry.guo@arm.com>
8004
8005         * config/arm/arm-cores.def: Added core cortex-r7.
8006         * config/arm/arm-tune.md: Regenerated.
8007         * config/arm/arm-tables.opt: Regenerated.
8008         * doc/invoke.texi: Added entry for core cortex-r7.
8009
8010 2013-03-27  Walter Lee  <walt@tilera.com>
8011
8012         * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
8013         double-decrement of next_scratch_regno.
8014
8015 2013-03-27  Walter Lee  <walt@tilera.com>
8016
8017         * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
8018         input operands.
8019         (insn_v1mulus): Ditto.
8020         (insn_v2muls): Ditto.
8021
8022 2013-03-27  Walter Lee  <walt@tilera.com>
8023
8024         * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
8025         (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
8026
8027 2013-03-27  Walter Lee  <walt@tilera.com>
8028
8029         * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
8030         (*sibcall_value): Ditto.
8031
8032 2013-03-27  Walter Lee  <walt@tilera.com>
8033
8034         * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
8035         (insn_mnz_v8qi): ... this ...
8036         (insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
8037         vector equivalent.
8038         (insn_v<n>mnz): Replaced by ...
8039         (insn_v1mnz): ... this ...
8040         (insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
8041         equivalent.
8042         (insn_mz_<mode>): Replaced by ...
8043         (insn_mz_v8qi): ... this ...
8044         (insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
8045         vector equivalent.
8046         (insn_v<n>mz): Replaced by ...
8047         (insn_v1mz): ... this ...
8048         (insn_v2mz): ... and this.  Replace (const_int 0) with the vector
8049         equivalent.
8050
8051 2013-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8052
8053         * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
8054
8055 2013-03-26  Roland McGrath  <mcgrathr@google.com>
8056
8057         * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
8058         than fprintf with a non-constant, non-format string.
8059
8060 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
8061
8062         * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
8063         using nox64 isa attribute.  Use nonimmediate_x86nomem_operand as
8064         operand 0 predicate.
8065         (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
8066         attribute.  Use general_x64nomem_operand as operand 1 predicate.
8067         (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
8068         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
8069         (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
8070         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
8071         (mov<mode>_insv_1): Remove expander.  Merge insn with
8072         movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
8073         Use general_x64nomem_operand as operand 1 predicate.
8074         (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
8075         (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
8076         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
8077         (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
8078         attribute.  Use nonimmediate_x64nomem_operand as operand 2 predicate.
8079         (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
8080         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
8081         (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
8082         isa attribute.  Use general_x64nomem_operand as operand 2 predicate.
8083         * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
8084         (general_x64nomem_operand): Ditto.
8085
8086 2013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8087
8088         * config/rtems.opt: Add -pthread option.
8089
8090 2013-03-26  Richard Biener  <rguenther@suse.de>
8091
8092         * alias.c (find_base_term): Avoid redundant and not used recursion.
8093         (base_alias_check): Get the initial base term from the caller.
8094         (true_dependence_1): Compute and pass base terms to base_alias_check.
8095         (write_dependence_p): Likewise.
8096         (may_alias_p): Likewise.
8097
8098 2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
8099
8100         * config/aarch64/aarch64.c (aarch64_classify_address): Support
8101         PC-relative load in SI modes and above only.
8102
8103 2013-03-26  Xinyu Qi  <xyqi@marvell.com>
8104
8105         * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
8106         * config/arm/iwmmxt.md (WCGR0): Update.
8107         (WCGR1, WCGR2, WCGR3): Likewise.
8108
8109 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
8110
8111         * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
8112         Use x64 and nox64 isa attributes.
8113
8114 2013-03-26  Richard Biener  <rguenther@suse.de>
8115
8116         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
8117         alignment computations and rely on get_object_alignment_1
8118         for the !TYPE_P case.
8119         Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
8120
8121 2013-03-26  Walter Lee  <walt@tilera.com>
8122
8123         * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
8124         * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
8125
8126 2013-03-25  Jeff Law  <law@redhat.com>
8127
8128         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
8129         check for INTEGRAL_TYPE_P that was missing due to checking in
8130         wrong version of prior patch.
8131
8132 2013-03-25  Walter Lee  <walt@tilera.com>
8133
8134         * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
8135         TILEGX_INSN_SHUFFLEBYTES1.
8136         * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
8137         shufflebytes1.
8138         (tilegx_builtins): Ditto.
8139         * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
8140
8141 2013-03-25  Walter Lee  <walt@tilera.com>
8142
8143         * config/tilegx/tilegx.md (floatsisf2): New pattern.
8144         (floatunssisf2): New pattern.
8145         (floatsidf2): New pattern.
8146         (floatunssidf2): New pattern.
8147
8148 2013-03-25  Walter Lee  <walt@tilera.com>
8149
8150         * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
8151         tests for constraint J, K, N, P.
8152
8153 2013-03-25  Walter Lee  <walt@tilera.com>
8154
8155         * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
8156         Use indirect/pcrel encoding.
8157         * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
8158         Ditto.
8159
8160 2013-03-25  Steve Ellcey  <sellcey@mips.com>
8161
8162         * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
8163         74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
8164         * config/mips/mips.c (mips_option_override): Set IMADD default.
8165         * config/mips/mips.h (PTF_AVOID_IMADD): New.
8166         (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
8167         (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
8168         * config/mips/mips.md (mimadd): New flag for integer madd/msub.
8169         * doc/invoke.texi (-mimadd/-mno-imadd): New.
8170
8171 2013-03-25  Jeff Law  <law@redhat.com>
8172
8173         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
8174         slightly to avoid creating and folding useless trees.  Simplify
8175         slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
8176
8177 2013-03-25  Uros Bizjak  <ubizjak@gmail.com>
8178
8179         * config/i386/i386.md (*zero_extendsidi2): Merge with
8180         *zero_extendsidi2_rex64.  Use x64 and nox64 isa attributes.
8181         * config/i386/predicates.md (x86_64_zext_operand): Rename from
8182         x86_64_zext_general_operand.  Use nonimmediate_operand on 32bit
8183         targets.  Clarify comment.
8184
8185 2013-03-25  Martin Jambor  <mjambor@suse.cz>
8186
8187         * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
8188         pass-through jump functions differently.
8189         (ipa_read_jump_function): Likewise.  Also use setter functions to set
8190         up jump functions.
8191
8192 2013-03-25  Martin Jambor  <mjambor@suse.cz>
8193
8194         * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
8195         ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
8196         process it.
8197         (ipa_get_indirect_edge_target): New function.
8198         (devirtualization_time_bonus): New parameter known_aggs, pass it to
8199         ipa_get_indirect_edge_target.  Update all callers.
8200         (ipcp_discover_new_direct_edges): New parameter aggvals.  Pass it to
8201         ipa_get_indirect_edge_target_1 instead of calling
8202         ipa_get_indirect_edge_target.
8203         (create_specialized_node): Pass aggvlas to
8204         ipcp_discover_new_direct_edges.
8205
8206 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8207
8208         * config/arm/arm.md (f_sels, f_seld): New types.
8209         (*cmov<mode>): New pattern.
8210         * config/arm/predicates.md (arm_vsel_comparison_operator): New
8211         predicate.
8212
8213 2013-03-25  Kai Tietz  <ktietz@redhat.com>
8214
8215         * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
8216         POSIX-printf for mingw-hosted  builds.
8217
8218 2013-03-25  Richard Biener  <rguenther@suse.de>
8219
8220         PR middle-end/56694
8221         * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
8222         must-not-throw stmt location.
8223
8224 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8225
8226         * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
8227         Emit load-acquire versions when acq is true.
8228         (arm_emit_store_exclusive): Add rel parameter.
8229         Emit store-release versions when rel is true.
8230         (arm_split_compare_and_swap): Use acquire-release instructions
8231         instead.
8232         of barriers when appropriate.
8233         (arm_split_atomic_op): Likewise.
8234         * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
8235         * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
8236         (VUNSPEC_SLX): Likewise.
8237         (VUNSPEC_LDA): Likewise.
8238         (VUNSPEC_STL): Likewise.
8239         * config/arm/sync.md (atomic_load<mode>): New pattern.
8240         (atomic_store<mode>): Likewise.
8241         (arm_load_acquire_exclusive<mode>): Likewise.
8242         (arm_load_acquire_exclusivesi): Likewise.
8243         (arm_load_acquire_exclusivedi): Likewise.
8244         (arm_store_release_exclusive<mode>): Likewise.
8245
8246 2013-03-25  Catherine Moore  <clm@codesourcery.com>
8247
8248         * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
8249         Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
8250         * config/mip/predicates.md (lwsp_swsp_operand,
8251         lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
8252         sb16_operand, db4_operand, db7_operand, ib3_operand,
8253         sb4_operand, ub4_operand, uh4_operand, uw4_operand,
8254         uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
8255         andi16_operand): New predicates.
8256         * config/mips/mips.md (compression): New attribute.
8257         (enabled): New attribute.
8258         (length): Consider compression in computing length.
8259         (shift_compression): New code attribute.
8260         (*add<mode>3): New operands. Record compression.
8261         (sub<mode>3): Likewise.
8262         (one_cmpl<mode>2): Likewise.
8263         (*and<mode>3): Likewise.
8264         (*ior<mode>3): Likewise.
8265         (unnamed pattern for xor): Likewise.
8266         (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
8267         (*<optab><mode>3): Likewise.
8268         (*mov<mode>_internal: Likewise.
8269         * config/mips/mips-protos.h (mips_signed_immediate_p): New.
8270         (mips_unsigned_immediate_p): New.
8271         (umips_lwsp_swsp_address_p): New.
8272         (m16_based_address_p): New.
8273         * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
8274         (mips_unsigned_immediate_p): New prototype.
8275         (lwsp_swsp_address_p): New prototype.
8276         (m16_based_address_p): New prototype.
8277         * config/mips/mips.c (mips_unsigned_immediate_p): New function.
8278         (mips_signed_immediate_p): New function.
8279         (m16_based_address_p): New function.
8280         (lwsp_swsp_address_p): New function.
8281         (mips_print_operand_punctuation): Recognize short delay slot insns
8282         for microMIPS.add<mode>3"
8283
8284 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8285
8286         PR target/56720
8287         * config/arm/iterators.md (v_cmp_result): New mode attribute.
8288         * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
8289
8290 2013-03-25  Richard Biener  <rguenther@suse.de>
8291
8292         PR tree-optimization/56689
8293         * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
8294         any edge.
8295
8296 2013-03-25  Richard Biener  <rguenther@suse.de>
8297
8298         * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
8299         of bitmap.
8300         (memory_references): Likewise.
8301         (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
8302         gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
8303         ref_indep_loop_p_2, find_refs_for_sm): Adjust.
8304         (gather_mem_refs_in_loops): Fold into ...
8305         (analyze_memory_references): ... this.  Move initialization
8306         to tree_ssa_lim_initialize.
8307         (fill_always_executed_in): Rename to ...
8308         (fill_always_executed_in_1): ... this.
8309         (fill_always_executed_in): Move contains_call computation to
8310         this new function from ...
8311         (tree_ssa_lim_initialize): ... here.
8312         (tree_ssa_lim): Call fill_always_executed_in.
8313
8314 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
8315
8316         * postreload.c (reload_combine): Fix code detecting returns.
8317
8318 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
8319
8320         * function.c (emit_use_return_register_into_block): On cc0 targets,
8321         do not emit the sequence between cc0 setter and user.
8322
8323 2013-03-25  Kai Tietz  <ktietz@redhat.com>
8324
8325         * config/i386/predicates.md (local_symbolic_operand): Interpret
8326         dll-imported symbols as none-local.
8327
8328 2013-03-25  Richard Biener  <rguenther@suse.de>
8329
8330         * tree-ssa-loop-im.c (struct depend): Remove.
8331         (struct lim_aux_data): Make depends a vec of gimples.
8332         (free_lim_aux_data): Adjust.
8333         (add_dependency): Likewise.
8334         (set_level): Likewise.
8335
8336 2013-03-25  Richard Biener  <rguenther@suse.de>
8337
8338         PR middle-end/56434
8339         * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
8340         the pointer returned by calls with ECF_MALLOC set.
8341
8342 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
8343
8344         * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
8345
8346 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
8347
8348         * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
8349         using MMXMODE mode iterator.
8350         (*move<mode>_internal): Merge with *movv2sf_internal and
8351         *movv2sf_internal_rex64 using MMXMODE mode iterator.
8352
8353 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
8354
8355         * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
8356         (record_last_mem_set_info): Likewise.
8357
8358         * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
8359         of XNEWVEC followed by memset.
8360         (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
8361
8362 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
8363
8364         * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
8365         config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
8366         config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
8367         config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
8368         config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
8369         config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
8370         dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
8371         the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
8372         BARRIER_P instead of GET_CODE.
8373
8374 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
8375
8376         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
8377         inaccuracy in the probing code.
8378
8379         * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
8380         (ctrapdi4): Likewise.
8381
8382 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
8383
8384         * calls.c (expand_call): Add missing guard to code handling return
8385         of non-BLKmode structures in MSB.
8386         * function.c (expand_function_end): Likewise.
8387
8388 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
8389
8390         * combine.c (try_combine): Adjust comment.  Do not add the set of
8391         insn #0 if the destination indirectly is set or dies in insn #2.
8392         Tidy up code to distribute a new note.
8393
8394 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
8395
8396         * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
8397         also for alternatives 16 and 17.
8398
8399 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
8400
8401         * config/i386/sse.md (*mov<mode>_internal): Merge with
8402         *mov<mode>_internal_rex64.  Use x64 and nox64 isa attributes.
8403         Emit insn template depending on type attribute.  Use
8404         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
8405         movd instead of movq mnemonic for interunit moves.  Rewrite mode
8406         attribute calculation.  Remove unit attribute calculation.
8407         Set prefix attribute to maybe_vex for sselog1 and ssemov types.
8408         Set prefix_data16 attribute for DImode ssemov types.
8409         Use Ym instead of y for SSE-MMX conversion alternatives.
8410         Reorder operand constraints.
8411
8412 2013-03-22  Steven Bosscher  <steven@gcc.gnu.org>
8413
8414         * df.h (df_insn_delete): Adjust prototype.
8415         * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
8416         and let it decide whether mark the basic block dirty.
8417         (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
8418         * df-scan.c (df_insn_info_delete): New helper function, split
8419         off from df_insn_delete.
8420         (df_scan_free_bb_info): Use it.
8421         (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
8422         Likewise.
8423         (df_insn_delete): Likewise.  Take insn rtx as argument.  Verify
8424         that the insn is actually an insn and it has a non-NULL basic block.
8425         Do not mark basic block dirty if only deleting a DEBUG_INSN.
8426
8427 2013-03-22  Richard Biener  <rguenther@suse.de>
8428
8429         * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
8430         dep_ref members.
8431         (mem_ref_alloc): Do not allocate them.
8432         (refs_independent_p): Do not query or maintain a cache.
8433
8434 2013-03-22  Richard Biener  <rguenther@suse.de>
8435
8436         * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
8437         (gather_mem_refs_in_loops): Do not compute it.
8438         (analyze_memory_references): Do not allocate it.
8439         (tree_ssa_lim_finalize): Do not free it.
8440         (for_all_locs_in_loop): Do not query all_refs_in_loop.
8441
8442 2013-03-22  Richard Biener  <rguenther@suse.de>
8443
8444         * is-a.h (as_a): Use gcc_checking_assert.
8445
8446 2013-03-22  Ian Bolton  <ian.bolton@arm.com>
8447
8448         * config/aarch64/aarch64.c (aarch64_print_operand): New
8449         format specifier for printing a constant in hex.
8450         * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
8451         format specifier for printing second operand.
8452
8453 2013-03-22  Richard Biener  <rguenther@suse.de>
8454
8455         * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
8456         bitmaps.
8457         (gather_mem_refs_in_loops): Perform store accumulation here.
8458         (create_vop_ref_mapping_loop): Remove.
8459         (create_vop_ref_mapping): Likewise.
8460         (analyze_memory_references): Initialize refs_stored_in_loop.
8461         (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
8462         (record_indep_loop): Remove.
8463         (record_dep_loop): New function.
8464         (ref_indep_loop_p_1): Adjust to only walk over references
8465         in the loop, not its subloops.
8466         (ref_indep_loop_p): Rename to ...
8467         (ref_indep_loop_p_2): ... this and recurse over the loop tree,
8468         maintaining a more fine-grained cache.
8469         (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
8470         (tree_ssa_lim_finalize): Free refs_stored_in_loop.
8471
8472 2013-03-22  Richard Biener  <rguenther@suse.de>
8473
8474         * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
8475         (struct mem_ref): Make accesses_in_loop a vec of a vec of
8476         aggregate mem_ref_loc.
8477         (free_mem_ref_locs): Inline into ...
8478         (memref_free): ... this and adjust.
8479         (mem_ref_alloc): Adjust.
8480         (mem_ref_locs_alloc): Remove.
8481         (record_mem_ref_loc): Adjust.
8482         (get_all_locs_in_loop): Rewrite into ...
8483         (for_all_locs_in_loop): ... this iterator.
8484         (rewrite_mem_ref_loc): New functor.
8485         (rewrite_mem_refs): Use for_all_locs_in_loop.
8486         (sm_set_flag_if_changed): New functor.
8487         (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
8488         (ref_always_accessed): New functor.
8489         (ref_always_accessed_p): Use for_all_locs_in_loop.
8490
8491 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
8492
8493         * tree-pass.h (PROP_gimple_lvec): New.
8494         * passes.c (dump_properties): Handle PROP_gimple_lvec.
8495         (init_optimization_passes): Move pass_lower_vector.
8496         * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
8497         PROP_gimple_lvec.
8498         (pass_lower_vector): Provide PROP_gimple_lvec.
8499         (pass_lower_vector_ssa): Likewise.
8500         * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
8501
8502 2013-03-21  Mark Wielaard  <mjw@redhat.com>
8503
8504         * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
8505
8506 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
8507
8508         * config/i386/i386.md (*movdi_internal): Disparage slightly
8509         all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
8510         conversion alternatives.
8511
8512 2013-03-21  Jakub Jelinek  <jakub@redhat.com>
8513
8514         PR middle-end/48087
8515         * diagnostic.def (DK_WERROR): New kind.
8516         * diagnostic.h (werrorcount): Define.
8517         * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
8518         promoted to DK_ERROR, increment DK_WERROR counter instead of
8519         DK_ERROR counter.
8520         * toplev.c (toplev_main): Call print_ignored_options even if
8521         just werrorcount is non-zero.  Exit with FATAL_EXIT_CODE
8522         even if just werrorcount is non-zero.
8523
8524         PR debug/55608
8525         * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
8526         on failure.
8527         (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
8528         (string_cst_pool_decl): New function.
8529         (optimize_one_addr_into_implicit_ptr): New function.
8530         (resolve_addr_in_expr): Optimize DWARF location expression
8531         DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
8532         which doesn't live in memory, but has DW_AT_location or
8533         DW_AT_const_value, or refers to a string literal, into
8534         DW_OP_GNU_implicit_pointer.
8535         (optimize_location_into_implicit_ptr): New function.
8536         (resolve_addr): If removing DW_AT_location of a variable because
8537         it was DW_OP_addr of address of the variable, but the variable doesn't
8538         live in memory, try to emit const value attribute for the initializer.
8539
8540 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
8541
8542         * tree.h (VECTOR_TYPE_P): New macro.
8543         (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
8544         TYPE_MODE): Use it.
8545         * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
8546         VEC_COND_EXPR cannot be lvalues.
8547         (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
8548
8549 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
8550
8551         * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
8552         Restrict the transformation to equal modes.
8553
8554 2013-03-21  Richard Biener  <rguenther@suse.de>
8555
8556         PR tree-optimization/39326
8557         * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
8558         (MEM_ANALYZABLE): Adjust.
8559         (record_mem_ref_loc): Move bitmap ops ...
8560         (gather_mem_refs_stmt): ... here.  Use the shared mem-ref for
8561         unanalyzable refs, do not record locations for it.
8562         (analyze_memory_references): Allocate ref zero as shared
8563         unanalyzable ref.
8564         (refs_independent_p): Do not test for unanalyzed mems here.
8565         (ref_indep_loop_p_1): Special-case disambiguation against
8566         the unanalyzed ref.
8567         (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
8568
8569 2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>
8570
8571         * config/arm/arm-protos.h (tune_params): Add
8572         prefer_neon_for_64bits field.
8573         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
8574         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
8575         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
8576         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
8577         (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
8578         (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
8579         (arm_option_override): Handle -mneon-for-64bits new option.
8580         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
8581         (prefer_neon_for_64bits): Declare new variable.
8582         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
8583         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
8584         (arch_enabled): Handle new arch types. Remove support for onlya8
8585         and nota8.
8586         (one_cmpldi2): Use new arch names.
8587         (zero_extend<mode>di2, extend<mode>di2): Ditto.
8588         * config/arm/arm.opt (mneon-for-64bits): Add option.
8589         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
8590         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
8591         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
8592         of onlya8.
8593         * doc/invoke.texi (-mneon-for-64bits): Document.
8594
8595 2013-03-21  Richard Biener  <rguenther@suse.de>
8596
8597         PR tree-optimization/39326
8598         * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
8599         (sort_bbs_in_loop_postorder_cmp): New function.
8600         (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
8601
8602 2013-03-21  Richard Biener  <rguenther@suse.de>
8603
8604         * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
8605         (vect_insert_into_interleaving_chain): Likewise.
8606         (vect_drs_dependent_in_basic_block): Inline ...
8607         (vect_slp_analyze_data_ref_dependence): ... here.  New function,
8608         split out from ...
8609         (vect_analyze_data_ref_dependence): ... here.  Simplify.
8610         (vect_check_interleaving): Simplify.
8611         (vect_analyze_data_ref_dependences): Likewise.  Split out ...
8612         (vect_slp_analyze_data_ref_dependences): ... this new function.
8613         (dr_group_sort_cmp): New function.
8614         (vect_analyze_data_ref_accesses): Compute data-reference groups
8615         here instead of in vect_analyze_data_ref_dependence.  Use
8616         a more efficient algorithm.
8617         * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
8618         vect_slp_analyze_data_ref_dependences.  Call
8619         vect_analyze_data_ref_accesses earlier.
8620         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
8621         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
8622         (vect_slp_analyze_data_ref_dependences): New prototype.
8623
8624 2013-03-21  Richard Biener  <rguenther@suse.de>
8625
8626         * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
8627         ref is stored in the loop.
8628         (find_refs_for_sm): Walk only over all stores.
8629         (store_motion_loop): Allocate from lim_bitmap_obstack.
8630         (store_motion): Likewise.
8631
8632 2013-03-21  Richard Biener  <rguenther@suse.de>
8633
8634         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
8635         Update virtual SSA form.
8636
8637 2013-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8638
8639         * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
8640         * configure: Regenerate.
8641         * config.in: Regenerate.
8642         * config/sol2.c (solaris_override_options): Only enforce DWARF 2
8643         if !HAVE_LD_EH_FRAME_CIEV3.
8644
8645 2013-03-21  Richard Biener  <rguenther@suse.de>
8646
8647         * tree-cfg.c (verify_expr_no_block): New function.
8648         (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
8649         nor DECL_VALUE_EXPR have locations with associated blocks.
8650         * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
8651         (clear_unused_block_pointer): Remove code dealing with
8652         blocks in DECL_DEBUG_EXPR locations.
8653
8654 2013-03-21  Richard Biener  <rguenther@suse.de>
8655
8656         * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
8657         (DECL_HAS_DEBUG_EXPR_P): ... this.  Guard properly.
8658         * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
8659         * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
8660         instead of DECL_DEBUG_EXPR_IS_FROM.
8661         * gimplify.c (gimplify_modify_expr): Likewise.
8662         * tree-cfg.c (verify_expr_location_1): Likewise.
8663         * tree-complex.c (create_one_component_var): Likewise.
8664         * tree-sra.c (create_access_replacement): Likewise.
8665         * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
8666         (clear_unused_block_pointer): Likewise.
8667         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
8668         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8669         * var-tracking.c (var_debug_decl): Likewise.
8670         (track_expr_p): Likewise.
8671         * tree-inline.c (add_local_variables): Likewise.  Set
8672         DECL_HAS_DEBUG_EXPR_P after copying it.
8673         * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
8674         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
8675
8676 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
8677
8678         PR bootstrap/56656
8679         * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
8680         * configure: Regenerate.
8681         * config.in: Regenerate.
8682         * config/i386/i386.md (*movdf_internal): Use
8683         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
8684         movd instead of movq mnemonic for interunit moves.
8685         (*movdi_internal): Ditto.
8686
8687 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8688
8689         * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
8690         (abd<mode>_3): New pattern.
8691         (aba<mode>_3): New pattern.
8692         (fabd<mode>_3): New pattern.
8693
8694 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8695
8696         * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
8697         * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
8698         occurrence of REGISTER_PREFIX as its empty string.
8699
8700 2013-03-20  Jeff Law  <law@redhat.com>
8701
8702         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
8703         addititional equivalences for equality comparisons between an SSA_NAME
8704         and a constant where the SSA_NAME was set from a widening conversion.
8705
8706 2013-03-20  Walter Lee  <walt@tilera.com>
8707
8708         * config/tilegx/sync.md (atomic_test_and_set): New pattern.
8709
8710 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
8711
8712         * config/i386/i386.md (*movoi_internal_avx): Emit insn template
8713         depending on type attribute.
8714         (*movti_internal): Ditto.
8715         (*movtf_internal): Ditto.
8716         (*movxf_internal): Ditto.
8717         (*movdf_internal): Ditto.
8718         (*movsf_internal): Ditto.
8719
8720 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
8721
8722         * config/i386/i386.md (*movti_internal): Set prefix attribute to
8723         maybe_vex for sselog1 and ssemov types.
8724         (*movdi_internal): Reorder operand constraints.
8725         (*movsi_internal): Ditto.  Set prefix attribute to
8726         maybe_vex for sselog1 and ssemov types.
8727         (*movtf_internal): Set prefix attribute to maybe_vex
8728         for sselog1 and ssemov types.
8729         (*movdf_internal): Ditto.  Set prefix_data16 attribute for
8730         DImode ssemov types.  Reorder operand constraints.
8731         (*movsf_internal): Set type of alternatives 3,4 to imov.  Set prefix
8732         attribute to maybe_vex for sselog1 and ssemov types.  Set prefix_data16
8733         attribute for SImode ssemov types.  Reorder operand constraints.
8734
8735 2013-03-20  Martin Jambor  <mjambor@suse.cz>
8736
8737         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
8738         * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
8739
8740 2013-03-20  Pat Haugen <pthaugen@us.ibm.com>
8741
8742         * config/rs6000/predicates.md (indexed_address, update_address_mem
8743         update_indexed_address_mem): New predicates.
8744         * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
8745         attribute for load/store instructions.
8746         * config/rs6000/dfp.md (movsd_store): Likewise.
8747         (movsd_load): Likewise.
8748         * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
8749         (unnamed HI->DI extend define_insn): Likewise.
8750         (unnamed SI->DI extend define_insn): Likewise.
8751         (unnamed QI->SI extend define_insn): Likewise.
8752         (unnamed QI->HI extend define_insn): Likewise.
8753         (unnamed HI->SI extend define_insn): Likewise.
8754         (unnamed HI->SI extend define_insn): Likewise.
8755         (extendsfdf2_fpr): Likewise.
8756         (movsi_internal1): Likewise.
8757         (movsi_internal1_single): Likewise.
8758         (movhi_internal): Likewise.
8759         (movqi_internal): Likewise.
8760         (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
8761         attribute for load/store instructions.
8762         (mov<mode>_hardfloat): Set correct "type" attribute for load/store
8763         instructions.
8764         (mov<mode>_softfloat): Likewise.
8765         (mov<mode>_hardfloat32): Likewise.
8766         (mov<mode>_hardfloat64): Likewise.
8767         (mov<mode>_softfloat64): Likewise.
8768         (movdi_internal32): Likewise.
8769         (movdi_internal64): Likewise.
8770         (probe_stack_<mode>): Likewise.
8771
8772 2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
8773
8774         * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
8775         floating point, and decimal floating point to reload iterator.
8776
8777         * config/rs6000/constraints.md (wl constraint): New constraints to
8778         return FLOAT_REGS if certain options are used to reduce the number
8779         of separate patterns that exist in the file.
8780         (wx constraint): Likewise.
8781         (wz constraint): Likewise.
8782
8783         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8784         -mdebug=reg, print wg, wl, wx, and wz constraints.
8785         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8786         Initialize the reload functions for 64-bit binary/decimal floating
8787         point types.
8788         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8789         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8790         create the buffer on the stack to overcome not having a 32-bit
8791         load and store.
8792         (rs6000_emit_move): Likewise.
8793         (rs6000_secondary_memory_needed_rtx): Likewise.
8794         (rs6000_alloc_sdmode_stack_slot): Likewise.
8795         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8796         via xxlxor, just like DFmode 0.0.
8797
8798         * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
8799         define as 1 if we are running on a power7 or newer.
8800         (enum r6000_reg_class_enum): Add new constraints.
8801
8802         * config/rs6000/dfp.md (movsd): Delete, combine with binary
8803         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
8804         with other moves by using conditional constraits (wg).  Use LFIWZX
8805         and STFIWX for loading SDmode on power7.  Use xxlxor to create 0.0f.
8806         (movsd splitter): Likewise.
8807         (movsd_hardfloat): Likewise.
8808         (movsd_softfloat): Likewise.
8809
8810         * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
8811         binary and decimal floating point moves.
8812         (fmove_ok): New attributes to combine binary and decimal floating
8813         point moves, and to combine power6x (mfpgpr) moves along normal
8814         floating moves.
8815         (real_value_to_target): Likewise.
8816         (f32_lr): Likewise.
8817         (f32_lm): Likewise.
8818         (f32_li): Likewise.
8819         (f32_sr): Likewise.
8820         (f32_sm): Likewise.
8821         (f32_si): Likewise.
8822         (movsf): Combine binary and decimal floating point moves.  Combine
8823         power6x (mfpgpr) moves with other moves by using conditional
8824         constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on power7.
8825         (mov<mode> for SFmode/SDmode); Likewise.
8826         (SFmode/SDmode splitters): Likewise.
8827         (movsf_hardfloat): Likewise.
8828         (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
8829         (movsf_softfloat): Likewise.
8830         (mov<mode>_softfloat for SFmode/SDmode): Likewise.
8831
8832         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
8833         wx and wz constraints.
8834
8835         * config/rs6000/constraints.md (wg constraint): New constraint to
8836         return FLOAT_REGS if -mmfpgpr (power6x) was used.
8837
8838         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
8839         constraint.
8840
8841         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8842         -mdebug=reg, print wg, wl, wx, and wz constraints.
8843         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8844         Initialize the reload functions for 64-bit binary/decimal floating
8845         point types.
8846         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8847         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8848         create the buffer on the stack to overcome not having a 32-bit
8849         load and store.
8850         (rs6000_emit_move): Likewise.
8851         (rs6000_secondary_memory_needed_rtx): Likewise.
8852         (rs6000_alloc_sdmode_stack_slot): Likewise.
8853         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8854         via xxlxor, just like DFmode 0.0.
8855
8856         * config/rs6000/dfp.md (movdd): Delete, combine with binary
8857         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
8858         with other moves by using conditional constraits (wg).  Use LFIWZX
8859         and STFIWX for loading SDmode on power7.
8860         (movdd splitters): Likewise.
8861         (movdd_hardfloat32): Likewise.
8862         (movdd_softfloat32): Likewise.
8863         (movdd_hardfloat64_mfpgpr): Likewise.
8864         (movdd_hardfloat64): Likewise.
8865         (movdd_softfloat64): Likewise.
8866
8867         * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
8868         64-bit binary and decimal floating point moves.
8869         (FMOVE64X): Likewise.
8870         (movdf): Combine 64-bit binary and decimal floating point moves.
8871         Combine power6x (mfpgpr) moves with other moves by using
8872         conditional constraits (wg).
8873         (mov<mode> for DFmode/DDmode): Likewise.
8874         (DFmode/DDmode splitters): Likewise.
8875         (movdf_hardfloat32): Likewise.
8876         (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
8877         (movdf_softfloat32): Likewise.
8878         (movdf_hardfloat64_mfpgpr): Likewise.
8879         (movdf_hardfloat64): Likewise.
8880         (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
8881         (movdf_softfloat64): Likewise.
8882         (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
8883         (reload_<mode>_load): Move to later in the file so they aren't in
8884         the middle of the floating point move insns.
8885         (reload_<mode>_store): Likewise.
8886
8887         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
8888         constraint.
8889
8890         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
8891         constraint if -mdebug=reg.
8892         (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
8893         Enable using dd reload support if needed.
8894
8895         * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
8896         binary and decimal floating point moves in rs6000.md.
8897         (movtd_internal): Likewise.
8898
8899         * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
8900         decimal floating point moves.
8901         (movtf): Likewise.
8902         (movtf_internal): Likewise.
8903         (mov<mode>_internal, TDmode/TFmode): Likewise.
8904         (movtf_softfloat): Likewise.
8905         (mov<mode>_softfloat, TDmode/TFmode): Likewise.
8906
8907         * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
8908         movdi_internal64, using wg constraint for move direct operations.
8909         (movdi_internal64): Likewise.
8910
8911         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
8912         MODES_TIEABLE_P for selected modes.  Print the numerical value of
8913         the various virtual registers. Use GPR/FPR first/last values,
8914         instead of hard coding the register numbers.  Print which modes
8915         have reload functions registered.
8916         (rs6000_option_override_internal): If -mdebug=reg, trace the options
8917         settings before/after setting cpu, target and subtarget settings.
8918         (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
8919         and for secondary reload failures in rs6000_secondary_reload_inner.
8920         (rs6000_secondary_reload_fail): Likewise.
8921         (rs6000_secondary_reload_inner): Likewise.
8922
8923         * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
8924         macros for first/last GPR and FPR registers.
8925         (LAST_GPR_REGNO): Likewise.
8926         (FIRST_FPR_REGNO): Likewise.
8927         (LAST_FPR_REGNO): Likewise.
8928
8929         * config/rs6000/vector.md (mul<mode>3): Use the combined macro
8930         VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
8931         VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
8932         (vcond<mode><mode>): Likewise.
8933         (vcondu<mode><mode>): Likewise.
8934         (vector_gtu<mode>): Likewise.
8935         (vector_gte<mode>): Likewise.
8936         (xor<mode>3): Don't allow logical operations on TImode in 32-bit
8937         to prevent the compiler from converting DImode operations to TImode.
8938         (ior<mode>3): Likewise.
8939         (and<mode>3): Likewise.
8940         (one_cmpl<mode>2): Likewise.
8941         (nor<mode>3): Likewise.
8942         (andc<mode>3): Likewise.
8943
8944         * config/rs6000/constraints.md (wt constraint): New constraint
8945         that returns VSX_REGS if TImode is allowed in VSX registers.
8946
8947         * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
8948         constant under VSX.
8949
8950         * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
8951         similar to TImode, but it is restricted to being in the GPRs.
8952
8953         * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
8954         TImode to occupy a single VSX register.
8955
8956         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
8957         -mvsx-timode for power7/power8.
8958         (power7 cpu): Likewise.
8959         (power8 cpu): Likewise.
8960
8961         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
8962         sure that TFmode/TDmode take up two registers if they are ever
8963         allowed in the upper VSX registers.
8964         (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
8965         registers.
8966         (rs6000_init_hard_regno_mode_ok): Likewise.
8967         (rs6000_debug_reg_global): Add debugging for PTImode and wt
8968         constraint.  Print if LRA is turned on.
8969         (rs6000_option_override_internal): Give an error if -mvsx-timode
8970         and VSX is not enabled.
8971         (invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
8972         -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
8973         to reg+offset addressing.  Use PTImode when checking offset
8974         addresses for validity.
8975         (reg_offset_addressing_ok_p): Likewise.
8976         (rs6000_legitimate_offset_address_p): Likewise.
8977         (rs6000_legitimize_address): Likewise.
8978         (rs6000_legitimize_reload_address): Likewise.
8979         (rs6000_legitimate_address_p): Likewise.
8980         (rs6000_eliminate_indexed_memrefs): Likewise.
8981         (rs6000_emit_move): Likewise.
8982         (rs6000_secondary_reload): Likewise.
8983         (rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
8984         reloads to fpr registers to continue to use reg+offset addressing,
8985         but 64-bit reloads to altivec registers need reg+reg addressing.
8986         Drop test for PRE_MODIFY, since VSX loads/stores no longer support
8987         it.  Treat LO_SUM like a PLUS operation.
8988         (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
8989         FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
8990         (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
8991         registers to share a register with a smaller sized type, since VSX
8992         puts scalars in the upper 64-bits.
8993         (print_operand): Add support for PTImode.
8994         (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
8995         VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
8996         registers, but don't have arithmetic support.
8997         (rs6000_memory_move_cost): Add test for VSX.
8998         (rs6000_opt_masks): Add -mvsx-timode.
8999
9000         * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
9001         for TImode.
9002         (VSs): Likewise.
9003         (VSr): Use wt constraint for TImode.
9004         (VSv): Drop TImode support.
9005         (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
9006         (vsx_movti_64bit): Likewise.
9007         (vsx_movti_32bit): Likewise.
9008         (vec_store_<mode>): Use VSX iterator instead of vector iterator.
9009         (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
9010         one '?' on the appropriate output constraint.  Do not allow TImode
9011         logical operations on 32-bit systems.
9012         (vsx_ior<mode>3): Likewise.
9013         (vsx_xor<mode>3): Likewise.
9014         (vsx_one_cmpl<mode>2): Likewise.
9015         (vsx_nor<mode>3): Likewise.
9016         (vsx_andc<mode>3): Likewise.
9017         (vsx_concat_<mode>): Likewise.
9018         (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
9019
9020         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
9021         OPTION_MASK_VSX_TIMODE.
9022         (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
9023         (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
9024
9025         * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
9026         (TI2 iterator): New iterator for TImode, PTImode.
9027         (wd mode attribute): Add values for vector types.
9028         (movti_string): Replace TI move operations with operations for TImode
9029         and PTImode.  Add support for TImode being allowed in VSX registers.
9030         (mov<mode>_string, TImode/PTImode): Likewise.
9031         (movti_ppc64): Likewise.
9032         (mov<mode>_ppc64, TImode/PTImode): Likewise.
9033         (TI mode splitters): Likewise.
9034
9035         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
9036         constraint.
9037
9038 2013-03-20  Marc Glisse  <marc.glisse@inria.fr>
9039
9040         PR tree-optimization/56355
9041         * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
9042         Also handle integers with undefined overflow.
9043
9044 2013-03-20  Catherine Moore  <clm@codesourcery.com>
9045             Maciej W. Rozycki  <macro@codesourcery.com>
9046             Tom de Vries  <tom@codesourcery.com>
9047             Nathan Sidwell <nathan@codesourcery.com>
9048             Iain Sandoe  <iain@codesourcery.com>
9049             Nathan Froyd  <froydnj@codesourcery.com>
9050             Chao-ying Fu <fu@mips.com>
9051
9052         * doc/extend.texi: (micromips, nomicromips, nocompression):
9053         Document new function attributes.
9054         * doc/invoke.texi (minterlink-compressed, mmicromips,
9055         m14k, m14ke, m14kec): Document new options.
9056         (minterlink-mips16): Update documentation.
9057         * doc/md.texi (ZC, ZD): Document new constraints.
9058         * configure.ac (gcc_cv_as_micromips): Check if linker
9059         supports the .set micromips directive.
9060         * configure: Regenerate.
9061         * config.in: Regenerate.
9062         * config/mips/mips-tables.opt: Regenerate.
9063         * config/mips/micromips.md: New file.
9064         * constraints.md (ZC, ZD): New constraints.
9065         * config/mips/predicates.md (movep_src_register): New predicate.
9066         (movep_src_operand): New predicate.
9067         (non_volatile_mem_operand): New predicate.
9068         * config/mips/mips.md (multimem): New type.
9069         (length): Differentiate between 17-bit and 18-bit branch offsets.
9070         (MOVEP1, MOVEP2): New mode iterator.
9071         (mov_<load>l): Use ZC constraint.
9072         (mov_<load>r): Likewise.
9073         (mov_<store>l): Likewise.
9074         (mov_<store>r): Likewise.
9075         (*branch_equality<mode>_inverted): Add microMIPS support.
9076         (*branch_equality<mode>): Likewise.
9077         (*jump_absolute): Likewise.
9078         (indirect_jump_<mode>): Likewise.
9079         (tablejump_<mode>): Likewise.
9080         (<optab>_internal): Likewise.
9081         (sibcall_internal): Likewise.
9082         (sibcall_value_internal): Likewise.
9083         (prefetch): Use constraint ZD.
9084         * config/mips/mips.opt (minterlink-compressed): New option.
9085         (minterlink-mips16): Now an alias for minterlink-compressed.
9086         (mmicromips): New option.
9087         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9088         (compare_and_swap_12): Likewise.
9089         (sync_add<mode>): Likewise.
9090         (sync_<optab>_12): Likewise.
9091         (sync_old_<optab>_12): Likewise.
9092         (sync_new_<optab>_12): Likewise.
9093         (sync_nand_12): Likewise.
9094         (sync_old_nand_12): Likewise.
9095         (sync_new_nand_12): Likewise.
9096         (sync_sub<mode>): Likewise.
9097         (sync_old_add<mode>): Likewise.
9098         (sync_old_sub<mode>): Likewise.
9099         (sync_new_add<mode>): Likewise.
9100         (sync_new_sub<mode>): Likewise.
9101         (sync_<optab><mode>): Likewise.
9102         (sync_old_<optab><mode>): Likewise.
9103         (sync_new_<optab><mode>): Likewise.
9104         (sync_nand<mode>): Likewise.
9105         (sync_old_nand<mode>): Likewise.
9106         (sync_new_nand<mode>): Likewise.
9107         (sync_lock_test_and_set<mode>): Likewise.
9108         (test_and_set_12): Likewise.
9109         (atomic_compare_and_swap<mode>): Likewise.
9110         (atomic_exchange<mode>_llsc): Likewise.
9111         (atomic_fetch_add<mode>_llsc): Likewise.
9112         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9113         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9114         (umips_save_restore_pattern_p): Likewise.
9115         (umips_load_store_pair_p): Likewise.
9116         (umips_output_load_store_pair): Likewise.
9117         (umips_movep_target_p): Likewise.
9118         (umips_12bit_offset_address_p): Likewise.
9119         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9120         (mips_base_mips16): Rename this...
9121         (mips_base_compression_flags): ...to this. Update all uses.
9122         (mips_attribute_table): Add micromips, nomicromips and nocompression.
9123         (mips_mips16_decl_p): Delete.
9124         (mips_nomips16_decl_p): Delete.
9125         (mips_get_compress_on_flags): New function.
9126         (mips_get_compress_off_flags): New function.
9127         (mips_get_compress_mode): New function.
9128         (mips_get_compress_on_name): New function.
9129         (mips_get_compress_off_name): New function.
9130         (mips_insert_attributes): Support multiple compression types.
9131         (mips_merge_decl_attributes): Likewise.
9132         (umips_12bit_offset_address_p): New function.
9133         (mips_start_function_definition): Emit .set micromips directive.
9134         (mips_call_may_need_jalx_p): New function.
9135         (mips_function_ok_for_sibcall): Add microMIPS support.
9136         (mips_print_operand_punctuation): Support short delay slots and
9137         compact jumps.
9138         (umips_swm_mask, umips_swm_encoding): New.
9139         (umips_build_save_restore): New function.
9140         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9141         (was_mips16_p): Remove.
9142         (old_compression_mode): New.
9143         (mips_set_compression_mode): New function.
9144         (mips_set_current_function): Add microMIPS support.
9145         (mips_option_override): Likewise.
9146         (umips_save_restore_pattern_p): New function.
9147         (umips_output_save_restore): New function.
9148         (umips_load_store_pair_p_1): New function.
9149         (umips_load_store_pair_p): New function.
9150         (umips_output_load_store_pair_1): New function.
9151         (umips_output_load_store_pair): New function.
9152         (umips_movep_target_p) New function.
9153         (mips_prepare_pch_save): Add microMIPS support.
9154         * config/mips/mips.h (TARGET_COMPRESSION): New.
9155         (TARGET_CPU_CPP_BUILTINS): Update macro
9156         to use new compression flags and to support microMIPS.
9157         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9158         (MIPS_ARCH_FLOAT_SPEC): Likewise.
9159         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9160         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9161         (ASM_SPEC): Support mmicromips and mno-micromips.
9162         (M16STORE_REG_P): New macro.
9163         (MIPS_CALL): Support TARGET_MICROMIPS.
9164         (MICROMIPS_J): New macro.
9165         (mips_base_mips16): Rename this...
9166         (mips_base_compression_flags): ...to this.
9167         (UMIPS_12BIT_OFFSET_P): New macro.
9168         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9169         (MULTILIB_DIRNAMES): Likewise.
9170 2013-03-20  Richard Biener  <rguenther@suse.de>
9171
9172         PR tree-optimization/56661
9173         * tree-ssa-sccvn.c (visit_use): Only value-number calls if
9174         the result does not have to be distinct.
9175
9176 2013-03-20  Richard Biener  <rguenther@suse.de>
9177
9178         * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
9179         remap_gimple_op_r.
9180
9181 2013-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9182             Steven Bosscher <steven@gcc.gnu.org>
9183
9184         PR rtl-optimization/56605
9185         * loop-iv.c (implies_p): Handle equal RTXs and subregs.
9186
9187 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
9188
9189         PR bootstrap/56656
9190         * config/i386/i386.md (*movdi_internal): Handle broken assemblers
9191         that require movd instead of movq.
9192
9193 2013-03-20  Richard Biener  <rguenther@suse.de>
9194
9195         * tree-ssa-structalias.c (struct variable_info): Add pointer
9196         to the first field of an aggregate with sub-vars.  Make
9197         this and the pointer to the next subfield its ID.
9198         (vi_next): New function.
9199         (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
9200         storedanything_id, integer_id): Increment by one.
9201         (new_var_info, get_call_vi, lookup_call_clobber_vi,
9202         get_call_clobber_vi): Adjust.
9203         (solution_set_expand): Simplify and speedup.
9204         (solution_set_add): Inline into ...
9205         (set_union_with_increment): ... this.  Adjust accordingly.
9206         (do_sd_constraint): Likewise.
9207         (do_ds_constraint): Likewise.
9208         (do_complex_constraint): Simplify.
9209         (build_pred_graph): Adjust.
9210         (solve_graph): Likewise.  Simplify and speedup.
9211         (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
9212         get_constraint_for_component_ref, get_constraint_for_1,
9213         first_vi_for_offset, first_or_preceding_vi_for_offset,
9214         create_function_info_for, create_variable_info_for_1,
9215         create_variable_info_for, intra_create_variable_infos): Adjust.
9216         (init_base_vars): Push NULL for ID zero.
9217         (compute_points_to_sets): Adjust.
9218
9219 2013-03-20  Richard Biener  <rguenther@suse.de>
9220
9221         * cfgloop.c (verify_loop_structure): Streamline and avoid
9222         ICEing on corrupt loop tree.
9223         * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
9224         loop tree.
9225
9226 2013-03-20  Richard Biener  <rguenther@suse.de>
9227
9228         * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
9229         check whether an SSA update is needed.
9230
9231 2013-03-20  Richard Sandiford  <rdsandiford@googlemail.com>
9232
9233         * config/mips/constraints.md (T): Rename to...
9234         (Yf): ...this.
9235         (U): Rename to...
9236         (Yd): ...this.
9237         * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
9238         (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
9239
9240 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
9241
9242         * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
9243         (*subsi3_carryin_uxtw): Likewise.
9244
9245 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
9246
9247         * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
9248         (*rorsi3_insn_uxtw): Likewise.
9249
9250 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
9251
9252         * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
9253         (*extrsi5_insn_uxtw): Likewise.
9254
9255 2013-03-19  Richard Biener  <rguenther@suse.de>
9256
9257         PR tree-optimization/56273
9258         * passes.c (init_optimization_passes): Move second VRP after DOM.
9259
9260 2013-03-19  Uros Bizjak  <ubizjak@gmail.com>
9261
9262         * config/i386/i386.md (*movti_internal): Merge from
9263         *movti_internal_rex64 and *movti_internal_sse.  Use x64 isa attribute.
9264         (*movdi_internal): Merge with *movdi_internal_rex64.  Use x64 and
9265         nox64 isa attributes.
9266
9267 2013-03-18  Richard Biener  <rguenther@suse.de>
9268
9269         * tree-ssa-structalias.c (find): Use gcc_checking_assert.
9270         (unite): Likewise.
9271         (merge_node_constraints): Likewise.
9272         (build_succ_graph): Likewise.
9273         (valid_graph_edge): Inline into single caller.
9274         (unify_nodes): Likewise.  Use bitmap_set_bit return value
9275         and cache varinfo.
9276         (scc_visit): Fix formatting and variable use.
9277         (do_sd_constraint): Use gcc_checking_assert.
9278         (do_ds_constraint): Likewise.
9279         (do_complex_constraint): Likewise.
9280         (condense_visit): Likewise.  Cleanup.
9281         (dump_pred_graph): New function.
9282         (perform_var_substitution): Dump the pred-graph before
9283         variable substitution.
9284         (find_equivalent_node): Use gcc_checking_assert.
9285         (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
9286
9287 2013-03-18  Richard Biener  <rguenther@suse.de>
9288
9289         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9290         Remove cond_expr_stmt_list argument and do not gimplify the
9291         built expression.
9292         (vect_loop_versioning): Adjust.
9293         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9294         Cleanup to use less temporaries.
9295         (vect_create_data_ref_ptr): Cleanup.
9296
9297 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
9298
9299         PR tree-optimization/56635
9300         * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
9301         require types_compatible_p types.
9302
9303 2013-03-18  Nick Clifton  <nickc@redhat.com>
9304
9305         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
9306         spurious backslash.
9307
9308         * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
9309         Add missing line to comment describing function.
9310
9311 2013-03-18  Richard Biener  <rguenther@suse.de>
9312
9313         PR tree-optimization/56210
9314         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9315         Handle string / character search functions.
9316         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
9317
9318 2013-03-18  Richard Biener  <rguenther@suse.de>
9319
9320         PR middle-end/56483
9321         * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
9322         and implement properly.
9323         * gimple.h (gimple_cond_single_var_p): Remove.
9324
9325 2013-03-18  Richard Biener  <rguenther@suse.de>
9326
9327         * tree-data-ref.h (find_data_references_in_loop): Declare.
9328         * tree-data-ref.c (get_references_in_stmt): Use a stack
9329         vector pre-allocated in the callers.
9330         (find_data_references_in_stmt): Adjust.
9331         (graphite_find_data_references_in_stmt): Likewise.
9332         (create_rdg_vertices): Likewise.
9333         (find_data_references_in_loop): Export.
9334         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
9335         Compute dependences here...
9336         (vect_analyze_data_refs): ...not here.  When we encounter
9337         a non-vectorizable data reference in basic-block vectorization
9338         truncate the data reference vector.  Do not bother to
9339         fixup data-dependence information for gather loads.
9340         * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
9341         of data references, as reported.
9342
9343 2013-03-18  Richard Biener  <rguenther@suse.de>
9344
9345         PR tree-optimization/3713
9346         * tree-ssa-sccvn.c (visit_copy): Simplify.  Always propagate
9347         has_constants and expr.
9348         (stmt_has_constants): Properly valueize SSA names when deciding
9349         whether the stmt has constants.
9350
9351 2013-03-18  Richard Biener  <rguenther@suse.de>
9352
9353         * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
9354         whole function when there is nothing to do.
9355         * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
9356         * tree-vectorizer.c (vectorize_loops): Update virtual and
9357         loop-closed SSA once.
9358         * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
9359
9360 2013-03-18  Richard Biener  <rguenther@suse.de>
9361
9362         PR middle-end/56113
9363         * domwalk.c (bb_postorder): New global static.
9364         (cmp_bb_postorder): New function.
9365         (walk_dominator_tree): Replace scheme imposing an order for
9366         visiting dominator sons by one sorting them at the time they
9367         are pushed on the stack.
9368
9369 2013-03-18  Richard Biener  <rguenther@suse.de>
9370
9371         PR tree-optimization/39326
9372         * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
9373         (struct mem_ref): Replace mem member with ao_ref typed member.
9374         (MEM_ANALYZABLE): Adjust.
9375         (memref_eq): Likewise.
9376         (mem_ref_alloc): Likewise.
9377         (gather_mem_refs_stmt): Likewise.
9378         (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
9379         (execute_sm_if_changed_flag_set): Adjust.
9380         (execute_sm): Likewise.
9381         (ref_always_accessed_p): Likewise.
9382         (refs_independent_p): Likewise.
9383         (can_sm_ref_p): Likewise.
9384
9385 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
9386
9387         PR c/56566
9388         * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
9389         return 1 even for !unsignedp.
9390
9391 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
9392
9393         * config/i386/i386.md (isa): Add x64 and nox64.
9394         (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
9395         (*pushtf): Enable *roF alternative for x64 isa only.
9396         (*pushxf): Merge with *pushxf_nointeger.  Use Yx*r constraint. Set
9397         mode attribute of integer alternatives to DImode for TARGET_64BIT.
9398         (*pushdf): Merge with *pushdf_rex64.  Use x64 and nox64 isa attributes.
9399         (*movtf_internal): Merge from *movtf_internal_rex64 and
9400         *movtf_internal_sse.  Use x64 and nox64 isa attributes.
9401         (*movxf_internal): Merge with *movxf_internal_rex64.  Use x64 and
9402         nox64 isa attributes.
9403         (*movdf_internal): Merge with *movdf_internal_rex64.  Use x64 and
9404         nox64 isa attributes.
9405         * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
9406
9407 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
9408
9409         * config/alpha/alpha.c (TARGET_LRA_P): New define.
9410
9411 2013-03-17  Jakub Jelinek  <jakub@redhat.com>
9412
9413         PR target/56640
9414         * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
9415         class names.  Remove trailing comma after "ALL_REGS".
9416
9417 2013-03-16  Jan Hubicka  <jh@suse.cz>
9418
9419         * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
9420         * cgraph.c (cgraph_get_create_real_symbol_node): New function.
9421         * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
9422         of cgraph_get_create_node.
9423         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
9424
9425 2013-03-16  Jason Merrill  <jason@redhat.com>
9426
9427         PR debug/49090
9428         * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
9429         with DW_AT_default_value.
9430
9431 2013-03-16  Jakub Jelinek  <jakub@redhat.com>
9432
9433         * BASE-VER: Set to 4.9.0.
9434
9435 2013-03-14  Andi Kleen  <ak@linux.intel.com>
9436
9437         PR target/56619
9438         * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
9439         __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
9440         Document _x* TSX intrinsics.
9441
9442 2013-03-14  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
9443             David Holsgrove  <david.holsgrove@xilinx.com>
9444
9445         * configure.ac: Add MicroBlaze TLS support detection.
9446         * configure: Regenerate.
9447         * config/microblaze/microblaze-protos.h
9448         (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
9449         symbol_mentioned_p, label_mentioned_p): Add prototypes.
9450         * config/microblaze/microblaze.c (microblaze_address_type): Add
9451         ADDRESS_TLS and tls_reloc address types.
9452         (microblaze_address_info): Add tls_reloc.
9453         (TARGET_HAVE_TLS): Define.
9454         (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
9455          microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
9456          symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
9457         load_tls_operand,  microblaze_call_tls_get_addr,
9458         microblaze_legitimize_tls_address): New functions.
9459         (microblaze_classify_unspec): Handle UNSPEC_TLS.
9460         (get_base_reg): Use microblaze_tls_symbol_p.
9461         (microblaze_classify_address): Handle TLS.
9462         (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
9463         label_mentioned_p and microblaze_tls_referenced_p.
9464         (microblaze_legitimize_address): Handle TLS.
9465         (microblaze_address_insns): Handle ADDRESS_TLS.
9466         (pic_address_needs_scratch): Handle TLS.
9467         (print_operand_address): Handle TLS.
9468         (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
9469         (microblaze_expand_move): Handle TLS.
9470         (microblaze_legitimate_constant_p): Check
9471         microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
9472         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
9473         * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
9474         (PIC_OFFSET_TABLE_REGNUM): Set.
9475         * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
9476         * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
9477         (addsi3, movsi_internal2, movdf_internal): Update constraints
9478         * config/microblaze/predicates.md (arith_plus_operand): Define
9479         (move_operand): Redefine as move_src_operand,
9480         check microblaze_tls_referenced_p.
9481
9482 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
9483
9484         * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
9485         (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
9486
9487 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
9488
9489         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
9490         CC mode for AND.
9491
9492 2013-03-14  Jakub Jelinek  <jakub@redhat.com>
9493
9494         PR tree-optimization/53265
9495         * common.opt (Waggressive-loop-optimizations): New option.
9496         * tree-ssa-loop-niter.c: Include tree-pass.h.
9497         (do_warn_aggressive_loop_optimizations): New function.
9498         (record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
9499         if number_of_latch_executions returned constant.
9500         (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
9501         early.  If number_of_latch_executions returned constant, set
9502         nb_iterations_upper_bound back to it.
9503         * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
9504         field.
9505         * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
9506         * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
9507
9508         * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
9509         (MULTILIB_OSDIRNAMES): Set.
9510         * genmultilib: If defaultosdirname doesn't start with :: , set
9511         defaultosdirname2 instead, clear it and emit two . multilib_raw
9512         entries instead of just one.
9513
9514 2013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>
9515
9516         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
9517         (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
9518         * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
9519         (SUBTARGET_OVERRIDE_OPTIONS): New.
9520
9521 2013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>
9522
9523         PR target/49880
9524         * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
9525         (musermode): Convert to Var(TARGET_USERMODE).
9526         * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
9527         MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
9528         * config/sh/sh.c (sh_option_override): Use
9529         TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
9530         * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
9531         condition.
9532         (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
9533         TARGET_SH4.
9534         (udivsi3_i4_single, divsi3_i4_single): Use
9535         TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
9536
9537 2013-03-13  Dave Korn  <dave.korn.cygwin@....>
9538
9539         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
9540         default setting.
9541
9542 2013-03-13  Richard Biener  <rguenther@suse.de>
9543
9544         PR tree-optimization/56608
9545         * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
9546         calls when vectorizing basic-blocks.
9547
9548 2013-03-13  Jakub Jelinek  <jakub@redhat.com>
9549
9550         PR plugins/45078
9551         * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
9552         tm_file.
9553
9554 2013-03-12  Jakub Jelinek  <jakub@redhat.com>
9555
9556         * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
9557
9558 2013-03-11  Jan Hubicka  <jh@suse.cz>
9559
9560         PR lto/56557
9561         * lto-streamer-out.c (output_symbol_p): Skip references from
9562         constructors of external variables.
9563
9564 2013-03-11  Jan Hubicka  <jh@suse.cz>
9565
9566         PR middle-end/56571
9567         * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
9568         from pseudos.
9569         * emit-rtl.c (verify_rtx_sharing): Likewise.
9570         (copy_insn_1): Likewise.
9571         * rtl.c (copy_rtx): Likewise.
9572
9573 2013-03-11  Georg-Johann Lay  <avr@gjlay.de>
9574
9575         PR target/56591
9576         * config/avr/avr.c (avr_print_operand): Add space after '%c' in
9577         output_operand_lossage message.
9578
9579 2013-03-11  Richard Earnshaw  <rearnsha@arm.com>
9580
9581         PR target/56470
9582         * arm.c (shift_op): Validate RTL pattern on the fly.
9583         (arm_print_operand, case 'S'): Don't use shift_operator to validate
9584         the RTL.
9585
9586 2013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9587
9588         PR target/56347
9589         * config/pa/pa.md (call_value): Check for calls to powf and direct to
9590         new call patterns that clobber %fr12.
9591         (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
9592         split and postreload patterns.
9593         * config/pa/pa.c (pa_conditional_register_usage): Revert marking
9594         registers %fr12 and %fr12R as call used.
9595
9596 2013-03-09  Steven Bosscher  <steven@gcc.gnu.org>
9597
9598         * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
9599         (canon_address, record_store, replace_read, check_mem_read_rtx,
9600         scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
9601         dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
9602         rest_of_handle_dse): Likewise.
9603
9604 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
9605
9606         PR middle-end/56524
9607         * tree.h (tree_optimization_option): Rename target_optabs to optabs.
9608         Add base_optabs.
9609         (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
9610         (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
9611         (save_optabs_if_changed): Replace with...
9612         (init_tree_optimization_optabs): ...this.
9613         * optabs.c (save_optabs_if_changed): Rename to...
9614         (init_tree_optimization_optabs): ...this.  Take the optimization node
9615         as argument.  Do nothing if the base optabs are already correct.
9616         Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
9617         to recompute optabs.
9618         * function.h (function): Remove optabs field.
9619         * function.c (invoke_set_current_function_hook): Call
9620         init_tree_optimization_optabs.  Use the result to initialize
9621         this_fn_optabs.
9622
9623 2013-02-27  Aldy Hernandez  <aldyh@redhat.com>
9624
9625         * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
9626         if GTMA_HAS_NO_INSTRUMENTATION.
9627         (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
9628         (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
9629         * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
9630         * gimple-pretty-print.c (dump_gimple_transaction): Handle
9631         GTMA_HAS_NO_INSTRUMENTATION.
9632
9633 2013-03-08  Jakub Jelinek  <jakub@redhat.com>
9634
9635         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
9636         libasan_preinit.o.
9637
9638 2013-03-08  Marek Polacek  <polacek@redhat.com>
9639             Jakub Jelinek  <jakub@redhat.com>
9640
9641         PR tree-optimization/56478
9642         * predict.c (is_comparison_with_loop_invariant_p): Change the
9643         type of loop_step to tree.
9644         (predict_loops): Adjust.
9645         (predict_iv_comparison): Perform the computations on double_ints.
9646
9647 2013-03-08  Richard Biener  <rguenther@suse.de>
9648
9649         PR tree-optimization/56570
9650         * tree-cfg.c (verify_expr_location_1): Verify locations for
9651         DECL_DEBUG_EXPR.
9652         * tree-sra.c (create_access_replacement): Strip locations
9653         from DECL_DEBUG_EXPRs.
9654
9655 2013-03-08  Richard Biener  <rguenther@suse.de>
9656
9657         * tree-inline.c (expand_call_inline): Do not associate
9658         a BLOCK with the location in BLOCK_SOURCE_LOCATION.
9659         * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
9660
9661 2013-03-08  Richard Biener  <rguenther@suse.de>
9662
9663         * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
9664         or block changes with -Og.  Fix for location / block encoding
9665         changes and PHI arguments with locations.
9666
9667 2013-03-07  Steven Bosscher  <steven@gcc.gnu.org>
9668
9669         * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
9670         for all counters.
9671         (struct output_info): Likewise.
9672         (register_overhead): Remove bad gcc_assert.
9673         (bitmap_find_bit): If there is only a single bitmap element, do not
9674         count a miss as a search.
9675         (print_statistics): Update for counter type changes.
9676         (dump_bitmap_statistics): Likewise.  Print headers such that they
9677         are properly lined up with the printed counters.
9678
9679 2013-03-07  Jakub Jelinek  <jakub@redhat.com>
9680
9681         PR tree-optimization/56559
9682         * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
9683         check that it has only a single use.
9684
9685 2013-03-07  Richard Biener  <rguenther@suse.de>
9686
9687         * doc/invoke.texi (fwhole-program): Discourage use in combination
9688         with -flto.
9689
9690 2013-03-06  Jakub Jelinek  <jakub@redhat.com>
9691
9692         * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
9693
9694         PR tree-optimization/56539
9695         * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
9696         instead of GSI_CONTINUE_LINKING as last argument to
9697         force_gimple_operand_gsi.  Adjust function comment.
9698
9699         * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
9700         aarch64-cores.def.
9701
9702         PR middle-end/56548
9703         * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
9704         promoted mode, convert the result back to the original mode.
9705
9706 2013-03-06  Richard Biener  <rguenther@suse.de>
9707
9708         PR middle-end/56294
9709         * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
9710         (insert_updated_phi_nodes_compare_uids): New function.
9711         (update_ssa): Sort symbols_to_rename after UID before
9712         traversing it to insert PHI nodes.
9713
9714 2013-03-06  Richard Biener  <rguenther@suse.de>
9715
9716         PR middle-end/50494
9717         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
9718         Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
9719
9720         Revert
9721         2013-02-13  Richard Biener  <rguenther@suse.de>
9722
9723         PR lto/50494
9724         * varasm.c (output_constant_def_1): Get the decl representing
9725         the constant as argument.
9726         (output_constant_def): Wrap output_constant_def_1.
9727         (make_decl_rtl): Use output_constant_def_1 with the decl
9728         representing the constant.
9729         (build_constant_desc): Optionally re-use a decl already
9730         representing the constant.
9731         (tree_output_constant_def): Adjust.
9732
9733 2013-03-06  Joey Ye  <joey.ye@arm.com>
9734
9735         PR lto/50293
9736         * gcc.c (convert_white_space): New function.
9737         (main): Handles white space in function name.
9738
9739 2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
9740
9741         PR target/56529
9742         * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
9743         instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
9744         to SH_DIV_CALL_TABLE for TARGET_SH2.
9745         * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
9746         list.
9747         * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
9748         call-table options.
9749
9750 2013-03-05  Sterling Augustine  <saugustine@google.com>
9751             Cary Coutant  <ccoutant@google.com>
9752
9753         PR debug/55364
9754         * dwarf2out.c (resolve_addr): Don't call
9755         remove_loc_list_addr_table_entries a second time for the same
9756         expression.
9757
9758 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9759
9760         PR debug/56510
9761         * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
9762         (avoid_complex_debug_insns): New function.
9763         (expand_debug_locations): Call it.
9764
9765         PR rtl-optimization/56484
9766         * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
9767         lifetimes of hard registers on small register class machines.
9768
9769 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
9770
9771         * config/microblaze/microblaze-protos.h: Rename
9772         microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
9773         * config/microblaze/microblaze.c (microblaze_attribute_table): Add
9774         fast_interrupt.
9775         (microblaze_fast_interrupt_function_p): New function.
9776         (microblaze_is_interrupt_handler): Rename to
9777         microblaze_is_interrupt_variant and add fast_interrupt check.
9778         (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
9779         (save_restore_insns): Likewise.
9780         (compute_frame_size): Likewise.
9781         (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
9782         (microblaze_globalize_label): Likewise.
9783         * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
9784         * config/microblaze/microblaze.md: Use wrapper
9785         microblaze_is_interrupt_variant.
9786
9787 2013-03-05  Kai Tietz  <ktietz@redhat.com>
9788
9789         * sdbout.c (sdbout_one_type): Switch to current function's section
9790         supporting cold/hot.
9791
9792 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
9793
9794         * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
9795         -mxl-reorder.
9796
9797 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9798
9799         PR middle-end/56461
9800         * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
9801         if VALGRIND_GET_VBITS is defined, temporarily make object
9802         memory all defined, and restore previous valgrind addressability
9803         and definability afterwards.  Free this_object at the end.
9804
9805         PR middle-end/56461
9806         * lra.c (lra): Call lra_clear_live_ranges if live_p,
9807         right before calling lra_create_live_ranges, also call it
9808         when clearing live_p.  Only call lra_clear_live_ranges
9809         at the end if live_p.
9810
9811         PR middle-end/56461
9812         * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
9813
9814 2013-03-05  Richard Biener  <rguenther@suse.de>
9815
9816         PR tree-optimization/56521
9817         * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
9818         value-id.
9819
9820 2013-03-05  Steven Bosscher  <steven@gcc.gnu.org>
9821
9822         PR c++/55135
9823         * except.h (remove_unreachable_eh_regions): New prototype.
9824         * except.c (remove_eh_handler_splicer): New function, split out
9825         of remove_eh_handler.
9826         (remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
9827         warning about running it on many EH regions one at a time.
9828         (remove_unreachable_eh_regions_worker): New function, walk the
9829         EH tree in depth-first order and remove non-marked regions.
9830         (remove_unreachable_eh_regions): New function.
9831         * tree-eh.c (mark_reachable_handlers): New function, split out
9832         from remove_unreachable_handlers.
9833         (remove_unreachable_handlers): Use mark_reachable_handlers and
9834         remove_unreachable_eh_regions.
9835         (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
9836         and remove_unreachable_eh_regions.
9837
9838 2013-03-05  Richard Biener  <rguenther@suse.de>
9839
9840         PR middle-end/56525
9841         * loop-init.c (fix_loop_structure): Remove loops in two stages,
9842         not freeing them until the end.
9843
9844 2013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9845
9846         * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
9847
9848 2013-03-05  Richard Biener  <rguenther@suse.de>
9849
9850         PR tree-optimization/56270
9851         * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
9852         of loads after scheduling an SLP instance.
9853
9854 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9855
9856         * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
9857         tic6x.exp.
9858         (check_gcc_parallelize): Run guality.exp as a separate job from
9859         vect.exp with unsorted.exp and $(dg_target_exps) separately from
9860         struct-layout-1.exp with stackalign.exp.
9861
9862         * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
9863
9864         PR middle-end/56461
9865         * tree-vect-slp.c (vect_supported_load_permutation_p): Free
9866         load_index sbitmap even if some bit in it isn't set.
9867
9868         PR middle-end/56461
9869         * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
9870         (discover_iteration_bound_by_body_walk): Change queues to
9871         vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
9872         spelling in comment.  Call safe_push on queues[bound_index] directly.
9873         Release queues[queue_index] in every iteration unconditionally.
9874         Release bounds vector.
9875
9876         PR middle-end/56461
9877         * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
9878         free_stmt_vec_info on any left-over stmt_vec_info in the vector.
9879         * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
9880         inner_phis vector.
9881
9882 2013-03-05  Richard Biener  <rguenther@suse.de>
9883
9884         PR lto/56515
9885         * tree-inline.c (remap_blocks_to_null): New function.
9886         (expand_call_inline): When expanding a call stmt without
9887         an associated block inline remap all callee blocks to NULL.
9888
9889 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
9890
9891         PR rtl-optimization/56494
9892         * simplify-rtx.c (simplify_truncation): If C is narrower than A,
9893         optimize (truncate:A (subreg:B (truncate:C X) 0)) into
9894         (subreg:A (truncate:C X) 0) instead of (truncate:A X).
9895
9896         PR middle-end/56461
9897         * sel-sched-ir.c (free_sched_pools): Release
9898         succs_info_pool.stack[succs_info_pool.max_top] vectors too
9899         if succs_info_pool.max_top isn't -1.
9900
9901         PR bootstrap/56509
9902         * opts.c (opts_obstack, opts_concat): Moved to...
9903         * opts-common.c (opts_obstack, opts_concat): ... here.
9904
9905 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
9906
9907         PR middle-end/56461
9908         * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
9909
9910 2013-03-04  Martin Jambor  <mjambor@suse.cz>
9911
9912         * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
9913         all appropriate places.
9914
9915 2013-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9916
9917         PR tree-optimization/56424
9918         * ipa-split.c (split_function): Do not set the RSO flag if result is
9919         not by reference and its type is a register type.
9920
9921 2013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>
9922
9923         * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
9924         (microblaze_legitimate_pic_operand): Likewise
9925         * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
9926         new function microblaze_legitimate_pic_operand
9927         * config/microblaze/microblaze-protos.h
9928         (microblaze_legitimate_pic_operand): Declare.
9929
9930 2013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
9931
9932         * config/microblaze/predicates.md (call_insn_simple_operand):
9933         New predicate for supported rtx code types.
9934         * config/microblaze/microblaze.md (call_internal1): Use
9935         call_insn_simple_operand predicate.
9936
9937 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
9938
9939         PR middle-end/56461
9940         * tree-loop-distribution.c (ldist_gen): Call partition_free after each
9941         partitions.ordered_remove.
9942
9943         PR middle-end/56461
9944         * tree-vect-stmts.c (vectorizable_conversion): Don't call
9945         vec_oprnds0.create (1) for modifier == NONE.
9946
9947         PR middle-end/56461
9948         * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
9949         on vec_oprnds0 or vec_oprnds1 before loop, only call it on
9950         vec_oprnds1 right before pushing anything to it for
9951         scalar_shift_arg.
9952
9953         PR middle-end/56461
9954         * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
9955         set nbbs to 0 instead of having separate code path.
9956         (vect_analyze_loop_form): Call destroy_loop_vec_info with true
9957         instead of false as last argument if returning NULL.
9958
9959 2013-03-03  Sandra Loosemore  <sandra@codesourcery.com>
9960
9961         * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
9962         the attribute is now called "target" instead of "option".
9963         (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
9964         * doc/tm.texi.in (Target Attributes):  Likewise document the correct
9965         attribute/pragma name for TARGET_OPTION_VALID_P and
9966         TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
9967         * doc/tm.texi: Regenerated.
9968
9969 2013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>
9970
9971         * config/microblaze/microblaze.c:
9972         Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
9973         * config/microblaze/microblaze.h: Add -mxl-reorder to
9974         DRIVER_SELF_SPECS.
9975         * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
9976         instructions emitted if TARGET_REORDER.
9977         * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
9978         or 0 for -m/-mno case, but initialises as 2 to detect default use case
9979         separately.
9980
9981 2013-03-01  Xinliang David Li  <davidxl@google.com>
9982
9983         * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
9984         walk length.
9985
9986 2013-03-01  Jakub Jelinek  <jakub@redhat.com>
9987
9988         PR middle-end/56461
9989         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
9990         vector even when returning true.  Fix up function comment formatting.
9991
9992         PR middle-end/56461
9993         * ira-build.c (ira_loop_nodes_count): New variable.
9994         (create_loop_tree_nodes): Initialize it.
9995         (finish_loop_tree_nodes): Use it instead of looking at current_loops.
9996
9997         PR middle-end/56461
9998         * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
9999         method on dr_chain and result_chain.
10000         * tree-vect-stmts.c (vectorizable_store): Only call
10001         result_chain.create if j == 0.
10002
10003         PR middle-end/56461
10004         * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
10005         vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
10006         before overwriting it.
10007
10008 2013-03-01  Tobias Burnus  <burnus@net-b.de>
10009
10010         * doc/extended.texi (C Extensions): Change order in @menu
10011         to match @node.
10012         (Other MIPS Built-in Functions): Move last MIPS entry before
10013         "picoChip Built-in Functions".
10014         (SH Built-in Functions): Move after RX Built-in Functions.
10015         * doc/gcc.texi (Introduction): Change order in @menu
10016         to match @node.
10017         * doc/md.texi (Constraints): Ditto.
10018         * gty.texi (Type Information): Ditto.
10019         (User-provided marking routines for template types): Make
10020         subsection.
10021         * doc/invoke.texi (AArch64 Options): Move before
10022         "Adapteva Epiphany Options".
10023
10024 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
10025             Jakub Jelinek  <jakub@redhat.com>
10026
10027         PR sanitizer/56454
10028         * asan.c (gate_asan): Lookup no_sanitize_address instead of
10029         no_address_safety_analysis attribute.
10030         * doc/extend.texi (no_address_safety_attribute): Rename to
10031         no_sanitize_address attribute, mention no_address_safety_analysis
10032         attribute as deprecated alias.
10033
10034 2013-02-28  Jakub Jelinek  <jakub@redhat.com>
10035
10036         PR middle-end/56461
10037         * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
10038         type to vec<vec<tree> > *.
10039         * tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
10040         to be vec<tree> instead of vec<tree> *, set vec_defs
10041         to vNULL and call vec_defs.create (number_of_vects), adjust other
10042         uses of vec_defs.
10043         * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
10044         vectorizable_condition): Adjust vect_get_slp_defs callers.
10045
10046 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10047
10048         * config/aarch64/aarch64.c
10049         (aarch64_float_const_representable): Remove unused variable.
10050
10051 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10052
10053         * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
10054
10055 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10056
10057         * config/aarch64/aarch64-builtins.c
10058         (aarch64_init_simd_builtins): Make static.
10059
10060 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
10061
10062         * config/aarch64/aarch64.c
10063         (aarch64_simd_make_constant): Make static.
10064
10065 2013-02-28  Martin Jambor  <mjambor@suse.cz>
10066
10067         * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
10068         with no initialization to the RHS of debug statements.
10069
10070 2013-02-28  Martin Jambor  <mjambor@suse.cz>
10071
10072         PR tree-optimization/56294
10073         * tree-sra.c (analyze_access_subtree): Create replacement declarations.
10074         Adjust dumping.
10075         (get_access_replacement): Do not call create_access_replacement.
10076         Assert a replacement exists.
10077         (get_repl_default_def_ssa_name): Create the replacement declaration
10078         itself.
10079
10080 2013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10081
10082         * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
10083         final_end_function.
10084
10085 2013-02-28  Marek Polacek  <polacek@redhat.com>
10086
10087         PR rtl-optimization/56466
10088         * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
10089         if we're changing a loop.
10090         (peel_loops_completely): Likewise.
10091
10092 2013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
10093
10094         PR c++/55813
10095         * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
10096
10097 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
10098
10099         PR target/56445
10100         * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
10101         macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
10102         INTX_FTYPE_FX, FX_FTYPE_INTX.
10103         * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
10104
10105 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
10106
10107         * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
10108         (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
10109         (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
10110         (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
10111         (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
10112         (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
10113         (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
10114         (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
10115         (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
10116         (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
10117         (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
10118         (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
10119         (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
10120         (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
10121         (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
10122         (avrxmega6): Increase max flash segments from 5 to 6.
10123         * config/avr/t-multilib: Regenerate.
10124         * config/avr/avr-tables.opt: Regenerate.
10125         * doc/avr-mmcu.texi: Regenerate.
10126
10127 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
10128
10129         * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
10130         (avr_device_to_arch): Rename to avr_device_to_ld.
10131         (avr_device_to_as): New prototype.
10132         (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
10133         (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
10134         * config/avr/driver-avr.c (avr_device_to_as): New.
10135         (avr_device_to_arch): Rename to avr_device_to_ld.
10136
10137 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
10138
10139         PR middle-end/56461
10140         * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
10141         method on dr_chain and result_chain.
10142
10143         PR middle-end/56461
10144         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
10145         pointer_set_destroy on not_executed_last_iteration.
10146
10147         PR middle-end/56461
10148         * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
10149
10150         PR middle-end/56461
10151         * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
10152         FOR_EACH_DEFINED_FUNCTION when freeing state.
10153
10154         PR middle-end/56461
10155         * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
10156         pool_free.
10157         (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
10158         overwriting it.
10159
10160         PR middle-end/56461
10161         * ipa-cp.c (decide_whether_version_node): Call vec_free on
10162         known_aggs[i].items and release known_aggs vector.
10163
10164         PR middle-end/56461
10165         * ipa-reference.c (propagate): Free node_info even for alias nodes.
10166
10167 2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10168
10169         * config/microblaze/microblaze.c (microblaze_emit_compare):
10170         Use xor for EQ/NE comparisions.
10171         * config/microblaze/microblaze.md (cstoresf4): Add constraints
10172         (cbranchsf4): Adjust operator to comparison_operator.
10173
10174 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
10175
10176         PR middle-end/56461
10177         * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
10178         vector.
10179         * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
10180         vec_safe_push, always update *slot.
10181         (redirect_edge_var_map_clear): Use vec_free.
10182         (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
10183         (free_var_map_entry): Use vec_free.
10184         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
10185         FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
10186
10187 2013-02-27  Andrey Belevantsev  <abel@ispras.ru>
10188
10189         PR middle-end/45472
10190         * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
10191         when the may_trap_p bit of the exprs being merged differs.
10192         Reorder tests for speculativeness in the logical and operator.
10193
10194 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
10195
10196         * incpath.c (add_standard_paths): Use reconcat instead of concat
10197         where appropriate and avoid leaking memory.
10198
10199         * opts.h: Include obstack.h.
10200         (opts_concat): New prototype.
10201         (opts_obstack): New declaration.
10202         * opts.c (opts_concat): New function.
10203         (opts_obstack): New variable.
10204         (init_options_struct): Call gcc_init_obstack on opts_obstack.
10205         (finish_options): Use opts_concat instead of concat
10206         and XOBNEWVEC instead of XNEWVEC.
10207         * opts-common.c (generate_canonical_option, decode_cmdline_option,
10208         generate_option): Likewise.
10209         * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
10210         * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
10211
10212         PR target/56455
10213         * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
10214         and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
10215
10216 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
10217
10218         PR middle-end/56461
10219         * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
10220
10221 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
10222
10223         * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
10224         (arm_block_move_unaligned_straight): Likewise.
10225         (arm_adjust_block_mem): Likewise.
10226
10227 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
10228
10229         PR target/48901
10230         * config/lm32/lm32.c (gen_int_relational): Remove unused variables
10231         temp, cond and label.
10232         * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
10233
10234         PR target/52500
10235         * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
10236         * config/c6x/c6x.h (dbx_register_map): Update declaration.
10237
10238         PR target/52501
10239         * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
10240         of prologue/epilogue functions.
10241
10242         PR target/52550
10243         * config/tilegx/tilegx.c (tilegx_expand_prologue):
10244         Remove unused variable cfa_offset.
10245         * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
10246
10247         PR target/54639
10248         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
10249         type promotion to unsigned.
10250
10251         PR target/54640
10252         * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
10253         for HOST_WIDE_INT of 32 bit / same size as int.
10254         (arm_block_move_unaligned_straight): Likewise.
10255         (arm_adjust_block_mem): Likewise.
10256
10257         PR target/54662
10258         * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
10259         ALL_CFLAGS.
10260
10261 2013-02-26  Marek Polacek  <polacek@redhat.com>
10262
10263         PR tree-optimization/56426
10264         * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
10265
10266 2013-02-26  Richard Biener  <rguenther@suse.de>
10267
10268         PR target/56444
10269         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
10270         unused variable loops.
10271
10272 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
10273
10274         PR tree-optimization/56448
10275         * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
10276         TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
10277         Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
10278         later operands of the references, or even first operand for
10279         INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
10280
10281         PR tree-optimization/56443
10282         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
10283         overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
10284         to type_for_mode langhook.
10285
10286 2013-02-25  Matt Turner  <mattst88@gmail.com>
10287
10288         * doc/invoke.texi: Document r4700.
10289
10290 2013-02-25  Richard Biener  <rguenther@suse.de>
10291
10292         PR tree-optimization/56175
10293         * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
10294         split out from ...
10295         (simplify_bitwise_binary): ... here.  Also guard the conversion
10296         of (type) X op CST to (type) (X op ((type-x) CST)) with it.
10297
10298 2013-02-25  Catherine Moore  <clm@codesourcery.com>
10299
10300         Revert:
10301         2013-02-24  Catherine Moore  <clm@codesourcery.com>
10302             Maciej W. Rozycki  <macro@codesourcery.com>
10303             Tom de Vries  <tom@codesourcery.com>
10304             Nathan Sidwell  <nathan@codesourcery.com>
10305             Iain Sandoe  <iain@codesourcery.com>
10306             Nathan Froyd  <froydnj@codesourcery.com>
10307             Chao-ying Fu  <fu@mips.com>
10308
10309         * doc/extend.texi: (micromips, nomicromips, nocompression):
10310         Document new function attributes.
10311         * doc/invoke.texi (minterlink-compressed, mmicromips,
10312         m14k, m14ke, m14kec): Document new options.
10313         (minterlink-mips16): Update documentation.
10314         * doc/md.texi (ZC, ZD): Document new constraints.
10315         * configure.ac (gcc_cv_as_micromips): Check if linker
10316         supports the .set micromips directive.
10317         * configure: Regenerate.
10318         * config.in: Regenerate.
10319         * config/mips/mips-tables.opt: Regenerate.
10320         * config/mips/micromips.md: New file.
10321         * constraints.md (ZC, AD): New constraints.
10322         * config/mips/predicates.md (movep_src_register): New predicate.
10323         (movep_src_operand): New predicate.
10324         (non_volatile_mem_operand): New predicate.
10325         * config/mips/mips.md (multimem): New type.
10326         (length): Differentiate between 17-bit and 18-bit branch offsets.
10327         (MOVEP1, MOVEP2): New mode iterator.
10328         (mov_<load>l): Use ZC constraint.
10329         (mov_<load>r): Likewise.
10330         (mov_<store>l): Likewise.
10331         (mov_<store>r): Likewise.
10332         (*branch_equality<mode>_inverted): Add microMIPS support.
10333         (*branch_equality<mode>): Likewise.
10334         (*jump_absolute): Likewise.
10335         (indirect_jump_<mode>): Likewise.
10336         (tablejump_<mode>): Likewise.
10337         (<optab>_internal): Likewise.
10338         (sibcall_internal): Likewise.
10339         (sibcall_value_internal): Likewise.
10340         (prefetch): Use constraint ZD.
10341         * config/mips/mips.opt (minterlink-compressed): New option.
10342         (minterlink-mips16): Now an alias for minterlink-compressed.
10343         (mmicromips): New option.
10344         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
10345         (compare_and_swap_12): Likewise.
10346         (sync_add<mode>): Likewise.
10347         (sync_<optab>_12): Likewise.
10348         (sync_old_<optab>_12): Likewise.
10349         (sync_new_<optab>_12): Likewise.
10350         (sync_nand_12): Likewise.
10351         (sync_old_nand_12): Likewise.
10352         (sync_new_nand_12): Likewise.
10353         (sync_sub<mode>): Likewise.
10354         (sync_old_add<mode>): Likewise.
10355         (sync_old_sub<mode>): Likewise.
10356         (sync_new_add<mode>): Likewise.
10357         (sync_new_sub<mode>): Likewise.
10358         (sync_<optab><mode>): Likewise.
10359         (sync_old_<optab><mode>): Likewise.
10360         (sync_new_<optab><mode>): Likewise.
10361         (sync_nand<mode>): Likewise.
10362         (sync_old_nand<mode>): Likewise.
10363         (sync_new_nand<mode>): Likewise.
10364         (sync_lock_test_and_set<mode>): Likewise.
10365         (test_and_set_12): Likewise.
10366         (atomic_compare_and_swap<mode>): Likewise.
10367         (atomic_exchange<mode>_llsc): Likewise.
10368         (atomic_fetch_add<mode>_llsc): Likewise.
10369         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
10370         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
10371         (umips_save_restore_pattern_p): Likewise.
10372         (umips_load_store_pair_p): Likewise.
10373         (umips_output_load_store_pair): Likewise.
10374         (umips_movep_target_p): Likewise.
10375         (umips_12bit_offset_address_p): Likewise.
10376         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
10377         (mips_base_mips16): Rename this...
10378         (mips_base_compression_flags): ...to this. Update all uses.
10379         (mips_attribute_table): Add micromips, nomicromips and nocompression.
10380         (mips_mips16_decl_p): Delete.
10381         (mips_nomips16_decl_p): Delete.
10382         (mips_get_compress_on_flags): New function.
10383         (mips_get_compress_off_flags): New function.
10384         (mips_get_compress_mode): New function.
10385         (mips_get_compress_on_name): New function.
10386         (mips_get_compress_off_name): New function.
10387         (mips_insert_attributes): Support multiple compression types.
10388         (mips_merge_decl_attributes): Likewise.
10389         (umips_12bit_offset_address_p): New function.
10390         (mips_start_function_definition): Emit .set micromips directive.
10391         (mips_call_may_need_jalx_p): New function.
10392         (mips_function_ok_for_sibcall): Add microMIPS support.
10393         (mips_print_operand_punctuation): Support short delay slots and
10394         compact jumps.
10395         (umips_swm_mask, umips_swm_encoding): New.
10396         (umips_build_save_restore): New function.
10397         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
10398         (was_mips16_p): Remove.
10399         (old_compression_mode): New.
10400         (mips_set_compression_mode): New function.
10401         (mips_set_current_function): Add microMIPS support.
10402         (mips_option_override): Likewise.
10403         (umips_save_restore_pattern_p): New function.
10404         (umips_output_save_restore): New function.
10405         (umips_load_store_pair_p_1): New function.
10406         (umips_load_store_pair_p): New function.
10407         (umips_output_load_store_pair_1): New function.
10408         (umips_output_load_store_pair): New function.
10409         (umips_movep_target_p) New function.
10410         (mips_prepare_pch_save): Add microMIPS support.
10411         * config/mips/mips.h (TARGET_COMPRESSION): New.
10412         (TARGET_CPU_CPP_BUILTINS): Update macro
10413         to use new compression flags and to support microMIPS.
10414         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
10415         (MIPS_ARCH_FLOAT_SPEC): Likewise.
10416         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
10417         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
10418         (ASM_SPEC): Support mmicromips and mno-micromips.
10419         (M16STORE_REG_P): New macro.
10420         (MIPS_CALL): Support TARGET_MICROMIPS.
10421         (MICROMIPS_J): New macro.
10422         (mips_base_mips16): Rename this...
10423         (mips_base_compression_flags): ...to this.
10424         (UMIPS_12BIT_OFFSET_P): New macro.
10425         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
10426         (MULTILIB_DIRNAMES): Likewise.
10427
10428 2013-02-25  Tom de Vries  <tom@codesourcery.com>
10429
10430         PR rtl-optimization/56131
10431         * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
10432         * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
10433         NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
10434
10435 2013-02-25  Tobias Burnus  <burnus@net-b.de>
10436
10437         * doc/invoke.texi (-fsanitize=): Move from optimization
10438         to debugging options.
10439
10440 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
10441
10442         * sched-deps.c (sched_analyze_insn): Fix typo in comment.
10443
10444 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
10445             Alexander Monakov  <amonakov@ispras.ru>
10446
10447         PR middle-end/56077
10448         * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
10449         flush pending lists also on non-jumps.  Adjust comment.
10450
10451 2013-02-24  Catherine Moore  <clm@codesourcery.com>
10452             Maciej W. Rozycki  <macro@codesourcery.com>
10453             Tom de Vries  <tom@codesourcery.com>
10454             Nathan Sidwell  <nathan@codesourcery.com>
10455             Iain Sandoe  <iain@codesourcery.com>
10456             Nathan Froyd  <froydnj@codesourcery.com>
10457             Chao-ying Fu  <fu@mips.com>
10458
10459         * doc/extend.texi: (micromips, nomicromips, nocompression):
10460         Document new function attributes.
10461         * doc/invoke.texi (minterlink-compressed, mmicromips,
10462         m14k, m14ke, m14kec): Document new options.
10463         (minterlink-mips16): Update documentation.
10464         * doc/md.texi (ZC, ZD): Document new constraints.
10465         * configure.ac (gcc_cv_as_micromips): Check if linker
10466         supports the .set micromips directive.
10467         * configure: Regenerate.
10468         * config.in: Regenerate.
10469         * config/mips/mips-tables.opt: Regenerate.
10470         * config/mips/micromips.md: New file.
10471         * constraints.md (ZC, AD): New constraints.
10472         * config/mips/predicates.md (movep_src_register): New predicate.
10473         (movep_src_operand): New predicate.
10474         (non_volatile_mem_operand): New predicate.
10475         * config/mips/mips.md (multimem): New type.
10476         (length): Differentiate between 17-bit and 18-bit branch offsets.
10477         (MOVEP1, MOVEP2): New mode iterator.
10478         (mov_<load>l): Use ZC constraint.
10479         (mov_<load>r): Likewise.
10480         (mov_<store>l): Likewise.
10481         (mov_<store>r): Likewise.
10482         (*branch_equality<mode>_inverted): Add microMIPS support.
10483         (*branch_equality<mode>): Likewise.
10484         (*jump_absolute): Likewise.
10485         (indirect_jump_<mode>): Likewise.
10486         (tablejump_<mode>): Likewise.
10487         (<optab>_internal): Likewise.
10488         (sibcall_internal): Likewise.
10489         (sibcall_value_internal): Likewise.
10490         (prefetch): Use constraint ZD.
10491         * config/mips/mips.opt (minterlink-compressed): New option.
10492         (minterlink-mips16): Now an alias for minterlink-compressed.
10493         (mmicromips): New option.
10494         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
10495         (compare_and_swap_12): Likewise.
10496         (sync_add<mode>): Likewise.
10497         (sync_<optab>_12): Likewise.
10498         (sync_old_<optab>_12): Likewise.
10499         (sync_new_<optab>_12): Likewise.
10500         (sync_nand_12): Likewise.
10501         (sync_old_nand_12): Likewise.
10502         (sync_new_nand_12): Likewise.
10503         (sync_sub<mode>): Likewise.
10504         (sync_old_add<mode>): Likewise.
10505         (sync_old_sub<mode>): Likewise.
10506         (sync_new_add<mode>): Likewise.
10507         (sync_new_sub<mode>): Likewise.
10508         (sync_<optab><mode>): Likewise.
10509         (sync_old_<optab><mode>): Likewise.
10510         (sync_new_<optab><mode>): Likewise.
10511         (sync_nand<mode>): Likewise.
10512         (sync_old_nand<mode>): Likewise.
10513         (sync_new_nand<mode>): Likewise.
10514         (sync_lock_test_and_set<mode>): Likewise.
10515         (test_and_set_12): Likewise.
10516         (atomic_compare_and_swap<mode>): Likewise.
10517         (atomic_exchange<mode>_llsc): Likewise.
10518         (atomic_fetch_add<mode>_llsc): Likewise.
10519         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
10520         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
10521         (umips_save_restore_pattern_p): Likewise.
10522         (umips_load_store_pair_p): Likewise.
10523         (umips_output_load_store_pair): Likewise.
10524         (umips_movep_target_p): Likewise.
10525         (umips_12bit_offset_address_p): Likewise.
10526         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
10527         (mips_base_mips16): Rename this...
10528         (mips_base_compression_flags): ...to this. Update all uses.
10529         (mips_attribute_table): Add micromips, nomicromips and nocompression.
10530         (mips_mips16_decl_p): Delete.
10531         (mips_nomips16_decl_p): Delete.
10532         (mips_get_compress_on_flags): New function.
10533         (mips_get_compress_off_flags): New function.
10534         (mips_get_compress_mode): New function.
10535         (mips_get_compress_on_name): New function.
10536         (mips_get_compress_off_name): New function.
10537         (mips_insert_attributes): Support multiple compression types.
10538         (mips_merge_decl_attributes): Likewise.
10539         (umips_12bit_offset_address_p): New function.
10540         (mips_start_function_definition): Emit .set micromips directive.
10541         (mips_call_may_need_jalx_p): New function.
10542         (mips_function_ok_for_sibcall): Add microMIPS support.
10543         (mips_print_operand_punctuation): Support short delay slots and
10544         compact jumps.
10545         (umips_swm_mask, umips_swm_encoding): New.
10546         (umips_build_save_restore): New function.
10547         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
10548         (was_mips16_p): Remove.
10549         (old_compression_mode): New.
10550         (mips_set_compression_mode): New function.
10551         (mips_set_current_function): Add microMIPS support.
10552         (mips_option_override): Likewise.
10553         (umips_save_restore_pattern_p): New function.
10554         (umips_output_save_restore): New function.
10555         (umips_load_store_pair_p_1): New function.
10556         (umips_load_store_pair_p): New function.
10557         (umips_output_load_store_pair_1): New function.
10558         (umips_output_load_store_pair): New function.
10559         (umips_movep_target_p) New function.
10560         (mips_prepare_pch_save): Add microMIPS support.
10561         * config/mips/mips.h (TARGET_COMPRESSION): New.
10562         (TARGET_CPU_CPP_BUILTINS): Update macro
10563         to use new compression flags and to support microMIPS.
10564         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
10565         (MIPS_ARCH_FLOAT_SPEC): Likewise.
10566         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
10567         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
10568         (ASM_SPEC): Support mmicromips and mno-micromips.
10569         (M16STORE_REG_P): New macro.
10570         (MIPS_CALL): Support TARGET_MICROMIPS.
10571         (MICROMIPS_J): New macro.
10572         (mips_base_mips16): Rename this...
10573         (mips_base_compression_flags): ...to this.
10574         (UMIPS_12BIT_OFFSET_P): New macro.
10575         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
10576         (MULTILIB_DIRNAMES): Likewise.
10577
10578 2013-02-24  Jakub Jelinek  <jakub@redhat.com>
10579
10580         PR target/52555
10581         * target-globals.c (save_target_globals): For init_reg_sets and
10582         target_reinit remporarily set this_fn_optabs to this_target_optabs.
10583
10584 2013-02-22  James Grennahlgh  <james.greenhalgh@arm.com>
10585
10586         * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
10587         * config/aarch64/t-aarch64
10588         (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
10589
10590 2013-02-22  Vladimir Makarov  <vmakarov@redhat.com>
10591
10592         PR inline-asm/56148
10593         * lra-constraints.c (process_alt_operands): Reload operand
10594         conflicting with earlier clobber only if no more other conflicting
10595         operands.
10596
10597 2013-02-22  Jakub Jelinek  <jakub@redhat.com>
10598
10599         PR sanitizer/56393
10600         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
10601         if not linking a shared library.
10602
10603 2013-02-22  Seth LaForge  <sethml@google.com>
10604
10605         * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
10606
10607 2013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>
10608
10609         * config/arm/arm.md (split for extendsidi): Update condition.
10610         (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
10611         * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
10612         (qhs_zextenddi_cstr): Likewise.
10613
10614 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
10615
10616         PR middle-end/56420
10617         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
10618         avoid signed wrapping.
10619         (expand_mult): Handle properly multiplication by
10620         ((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
10621         ((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
10622         in the compiler if coeff is HOST_WIDE_INT_MIN.
10623         (expand_divmod): Don't make ext_op1 static, change it's type to
10624         uhwi.  Avoid undefined behavior in -INTVAL (op1).
10625
10626         PR rtl-optimization/50339
10627         * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
10628         field.
10629         * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
10630         (compute_costs): Call compute_splitting_shift also for ASHIFTRT
10631         into splitting_ashiftrt field.
10632         (find_decomposable_shift_zext, resolve_shift_zext): Handle also
10633         ASHIFTRT.
10634         (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
10635         choices.
10636
10637 2013-02-20  Aldy Hernandez  <aldyh@redhat.com>
10638
10639         PR middle-end/56108
10640         * trans-mem.c (execute_tm_mark): Do not expand transactions that
10641         are sure to go irrevocable.
10642
10643 2013-02-21  Hans-Peter Nilsson  <hp@axis.com>
10644
10645         * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
10646         scalars are valid operands.
10647
10648 2013-02-21  Martin Jambor  <mjambor@suse.cz>
10649
10650         PR tree-optimization/56310
10651         * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
10652         only matching indices and non-negative final offsets.
10653         (intersect_aggregates_with_edge): Pass src_idx to
10654         agg_replacements_to_vector.  Pass src_idx insstead of index to
10655         intersect_with_agg_replacements.
10656
10657 2013-02-21  Martin Jambor  <mjambor@suse.cz>
10658
10659         * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
10660         instead of hard-wired defaults.
10661
10662 2013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>
10663
10664         * doc/invoke.texi (MIPS Options): Update documentation of the
10665         floating-point multiply-accumulate instruction restrictions.
10666
10667 2013-02-21  Kostya Serebryany  <kcc@google.com>
10668
10669         * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
10670         asan_shadow_offset on x86_64 linux.
10671
10672 2013-02-21  Richard Biener  <rguenther@suse.de>
10673
10674         PR tree-optimization/56415
10675         Revert
10676         2013-02-11  Richard Biener  <rguenther@suse.de>
10677
10678         PR tree-optimization/56273
10679         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10680         first VRP run.
10681
10682 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
10683
10684         PR bootstrap/56258
10685         * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
10686         instead of @itemx.
10687
10688         PR inline-asm/56405
10689         * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
10690         use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
10691
10692 2013-02-20  Jan Hubicka  <jh@suse.cz>
10693
10694         PR tree-optimization/56265
10695         * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
10696         when target is referenced for first time.
10697
10698 2013-02-20  Richard Biener  <rguenther@suse.de>
10699
10700         * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
10701         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
10702         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
10703         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
10704         not return anything.
10705         (rename_ssa_copies): Do not remove unused locals.
10706         * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
10707         * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
10708         * passes.c (execute_function_todo): Do not schedule unused locals
10709         removal if cleanup_tree_cfg did something.
10710         * tree-ssa-live.c (remove_unused_locals): Dump statistics
10711         about the number of removed locals.
10712
10713 2013-02-20  Richard Biener  <rguenther@suse.de>
10714
10715         PR tree-optimization/56398
10716         * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
10717
10718 2013-02-20  Martin Jambor  <mjambor@suse.cz>
10719
10720         PR tree-optimization/55334
10721         * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
10722         restricted pointers to arrays.
10723
10724 2013-02-20  Richard Biener  <rguenther@suse.de>
10725             Jakub Jelinek  <jakub@redhat.com>
10726
10727         PR tree-optimization/56396
10728         * tree-ssa-ccp.c (n_const_val): New static variable.
10729         (get_value): Return NULL for SSA names we don't have a lattice
10730         entry for.
10731         (ccp_initialize): Initialize n_const_val.
10732         * tree-ssa-copy.c (n_copy_of): New static variable.
10733         (init_copy_prop): Initialize n_copy_of.
10734         (get_value): Return NULL_TREE for SSA names we don't have a
10735         lattice entry for.
10736
10737 2013-02-20  Martin Jambor  <mjambor@suse.cz>
10738
10739         * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
10740
10741 2013-02-20  Richard Biener  <rguenther@suse.de>
10742
10743         * genpreds.c (write_lookup_constraint): Do not compare first
10744         letter of the constraint again.
10745
10746 2013-02-20  Richard Biener  <rguenther@suse.de>
10747
10748         * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
10749         and ceil_log2.
10750         (get_use_iv_cost): Terminate hashtable walk when coming across
10751         an empty entry.
10752
10753 2013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>
10754
10755         * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
10756         reassociation for avx2 targets.
10757
10758 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10759
10760         * config/microblaze/microblaze.c: microblaze_has_clz = 0
10761         Add version check for v8.10.a to enable microblaze_has_clz
10762         * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
10763         version and TARGET_PATTERN_COMPARE check
10764         * config/microblaze/microblaze.md: New clzsi2 instruction
10765
10766 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10767
10768         * config/microblaze/microblaze.md (call_value_intern): Check symbol is
10769         function before branching.
10770
10771 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
10772
10773         * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
10774         DUMP_INSN_RTX_UID.
10775         (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
10776
10777 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
10778
10779         PR middle-end/55889
10780         * sel-sched.c: Include ira.h.
10781         (implicit_clobber_conflict_p): New function.
10782         (moveup_expr): Use it.
10783         * Makefile.in (sel-sched.o): Depend on ira.h.
10784
10785 2013-02-19  Richard Biener  <rguenther@suse.de>
10786
10787         PR tree-optimization/56384
10788         * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
10789         (vn_hash_type): Split out from ...
10790         (vn_hash_constant_with_type): ... here.
10791         * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
10792         (vn_phi_eq): Compare types from vn_phi_s structure.
10793         (vn_phi_lookup): Populate vn_phi_s type.
10794         (vn_phi_insert): Likewise.
10795
10796 2013-02-19  Jakub Jelinek  <jakub@redhat.com>
10797
10798         PR tree-optimization/56350
10799         * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
10800         if haven't found reduction or nested cycle operand, rather than
10801         asserting we must find it.
10802
10803         PR tree-optimization/56381
10804         * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
10805         to fold_build3.
10806
10807 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
10808             Jakub Jelinek  <jakub@redhat.com>
10809
10810         PR target/52555
10811         * genopinit.c (raw_optab_handler): Use this_fn_optabs.
10812         (swap_optab_enable): Same.
10813         (init_all_optabs): Use argument instead of global.
10814         * tree.h (struct tree_optimization_option): New field target_optabs.
10815         * expr.h (init_all_optabs): Add argument to prototype.
10816         (TREE_OPTIMIZATION_OPTABS): New.
10817         (save_optabs_if_changed): Protoize.
10818         * optabs.h: Declare this_fn_optabs.
10819         * optabs.c (save_optabs_if_changed): New.
10820         Declare this_fn_optabs.
10821         (init_optabs): Add argument to init_all_optabs() call.
10822         * function.c (invoke_set_current_function_hook): Handle per
10823         function optabs.
10824         * function.h (struct function): New field optabs.
10825         * config/mips/mips.c (mips_set_mips16_mode): Handle when
10826         optimization_current_node has changed.
10827         * target-globals.h (save_target_globals_default_opts): Protoize.
10828         * target-globals.c (save_target_globals_default_opts): New.
10829
10830 2013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10831
10832         PR target/56347
10833         * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
10834         registers %fr12 and %fr12R as call used.
10835
10836         PR target/56214
10837         * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
10838         and HImode, require all displacements to be an integer multiple of
10839         their mode size.
10840         * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
10841         only allow QImode and HImode when reload is in progress and strict is
10842         true.  Likewise for symbolic addresses.  Use base14_operand to check
10843         displacements in REG+BASE addresses.
10844
10845 2013-02-18  Richard Biener  <rguenther@suse.de>
10846
10847         PR tree-optimization/56366
10848         * tree-vect-loop.c (get_initial_def_for_induction): Properly
10849         handle sign-conversion of outer-loop initial induction value.
10850
10851 2013-02-18  Richard Biener  <rguenther@suse.de>
10852
10853         PR middle-end/56349
10854         * cfghooks.c (merge_blocks): If we merge a latch into another
10855         block adjust references to it.
10856         * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
10857         (verify_loop_structure): Verify that a recorded latch is in fact
10858         a latch.
10859
10860 2013-02-18  Richard Biener  <rguenther@suse.de>
10861
10862         PR tree-optimization/56321
10863         * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
10864         order SSA name release and virtual operand unlinking.
10865
10866 2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10867
10868         * config/microblaze/microblaze.md (save_stack_block): Define.
10869         (restore_stack_block): Likewise.
10870
10871 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10872
10873         * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
10874         * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
10875         * config/microblaze/microblaze.c (microblaze_option_override):
10876         Bail out early for PIC modes when target does not support PIC.
10877
10878 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
10879
10880         * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
10881         Replace with a microblaze version.
10882         (microblaze_trampoline_init): Adapt for microblaze.
10883         * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
10884         microblaze.
10885
10886 2013-02-16  Jakub Jelinek  <jakub@redhat.com>
10887             Dodji Seketeli  <dodji@redhat.com>
10888
10889         PR asan/56330
10890         * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
10891         (instrument_mem_region_access): Do not forget to always put
10892         instrumentation of the of 'base' and 'base + len' in a "if (len !=
10893         0) statement, even for cases where either 'base' or 'base + len'
10894         are not instrumented -- because they have been previously
10895         instrumented.  Simplify the logic by putting all the statements
10896         instrument 'base + len' inside a sequence, and then insert that
10897         sequence right before the current insertion point.  Then, to
10898         instrument 'base + len', just get an iterator on that statement.
10899         And do not forget to update the pointer to iterator the function
10900         received as argument.
10901
10902 2013-02-15  Vladimir Makarov  <vmakarov@redhat.com>
10903
10904         PR rtl-optimization/56348
10905         * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
10906
10907 2013-02-15  Steven Bosscher  <steven@gcc.gnu.org>
10908
10909         * graph.c (start_graph_dump): Print dumpfile base as digraph label.
10910         (clean_graph_dump_file): Pass base to start_graph_dump.
10911
10912 2013-02-14  Richard Henderson  <rth@redhat.com>
10913
10914         PR target/55941
10915         * lower-subreg.c (simple_move): Check dest mode instead of src mode.
10916
10917 2013-02-14  Steven Bosscher  <steven@gcc.gnu.org>
10918
10919         * collect2-aix.h: Define F_LOADONLY.
10920
10921 2013-02-14  Richard Biener  <rguenther@suse.de>
10922
10923         PR lto/50494
10924         * varasm.c (output_constant_def_1): Get the decl representing
10925         the constant as argument.
10926         (output_constant_def): Wrap output_constant_def_1.
10927         (make_decl_rtl): Use output_constant_def_1 with the decl
10928         representing the constant.
10929         (build_constant_desc): Optionally re-use a decl already
10930         representing the constant.
10931         (tree_output_constant_def): Adjust.
10932
10933 2013-02-14  Dodji Seketeli  <dodji@redhat.com>
10934
10935         Fix an asan crash
10936         * asan.c (instrument_builtin_call):  Really put the length of the
10937         second source argument into src1_len.
10938
10939 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
10940
10941         * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
10942         argument.  If it is false, don't create edge from then_bb to
10943         fallthru_bb.
10944         (insert_if_then_before_iter): Pass true to it.
10945         (build_check_stmt): Pass false to it.
10946         (transform_statements): Flush hash table only on extended basic
10947         block boundaries, rather than at the beginning of every bb.
10948         Don't flush hash table on nonfreeing_call_p calls.
10949         * tree-flow.h (nonfreeing_call_p): New prototype.
10950         * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
10951
10952 2013-02-13  David S. Miller  <davem@davemloft.net>
10953
10954         * expmed.c (expand_shift_1): Only strip scalar integer subregs.
10955
10956 2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>
10957
10958         PR target/56184
10959         * ira.c (max_regno_before_ira): Move from ...
10960         (ira): ... here.
10961         (fix_reg_equiv_init): Use max_regno_before_ira instead of
10962         vec_safe_length.
10963
10964 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
10965
10966         * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
10967
10968 2013-02-13  Richard Biener  <rguenther@suse.de>
10969
10970         PR lto/56295
10971         * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
10972         globals in MEM_REFs.
10973
10974 2013-02-13  Richard Biener  <rguenther@suse.de>
10975
10976         * loop-init.c (loop_optimizer_init): Clear loop state when
10977         re-initializing preserved loops.
10978         * loop-unswitch.c (unswitch_single_loop): Return whether
10979         we unswitched the loop.  Do not verify loop state here.
10980         (unswitch_loops): When we unswitched a loop discover new loops.
10981
10982 2013-02-13  Kostya Serebryany  <kcc@google.com>
10983
10984         * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
10985         on x86_64 linux.
10986         * sanitizer.def: Rename __asan_init to __asan_init_v1.
10987
10988 2013-02-12  Dodji Seketeli  <dodji@redhat.com>
10989
10990         Avoid instrumenting duplicated memory access in the same basic block
10991         * Makefile.in (asan.o): Add new dependency on hash-table.h
10992         * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
10993         (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
10994         (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
10995         (free_mem_ref_resources, has_mem_ref_been_instrumented)
10996         (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
10997         (get_mem_ref_of_assignment): New functions.
10998         (get_mem_refs_of_builtin_call): Extract from
10999         instrument_builtin_call and tweak a little bit to make it fit with
11000         the new signature.
11001         (instrument_builtin_call): Use the new
11002         get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
11003         of is_gimple_builtin_call.
11004         (instrument_derefs, instrument_mem_region_access): Insert the
11005         instrumented memory reference into the hash table.
11006         (maybe_instrument_assignment): Renamed instrument_assignment into
11007         this, and change it to advance the iterator when instrumentation
11008         actually happened and return true in that case.  This makes it
11009         homogeneous with maybe_instrument_assignment, and thus give a
11010         chance to callers to be more 'regular'.
11011         (transform_statements): Clear the memory reference hash table
11012         whenever we enter a new BB, when we cross a function call, or when
11013         we are done transforming statements.  Use
11014         maybe_instrument_assignment instead of instrumentation.  No more
11015         need to special case maybe_instrument_assignment and advance the
11016         iterator after calling it; it's now handled just like
11017         maybe_instrument_call.  Update comment.
11018
11019 2013-02-13  Richard Biener  <rguenther@suse.de>
11020
11021         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
11022         Fix loop discovery code.
11023
11024 2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
11025
11026         PR inline-asm/56148
11027         * lra-constraints.c (process_alt_operands): Match early clobber
11028         operand with itself.  Check conflicts with earlyclobber only if
11029         the operand is not reloaded.  Prefer to reload conflicting operand
11030         if earlyclobber and matching operands are the same.
11031
11032 2013-02-12  Richard Biener  <rguenther@suse.de>
11033
11034         PR lto/56297
11035         * lto-streamer-out.c (write_symbol): Do not output symbols
11036         for hard register variables.
11037
11038 2013-02-12  Georg-Johann Lay  <avr@gjlay.de>
11039
11040         PR target/54222
11041         * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
11042         (umulsidi3_insn, mulsidi3_insn): New insns.
11043
11044 2013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
11045
11046         * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
11047         (struct tune_params): Add vec_costs field.
11048         * config/arm/arm.c (arm_builtin_vectorization_cost)
11049         (arm_add_stmt_cost): New functions.
11050         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
11051         (TARGET_VECTORIZE_ADD_STMT_COST): Define.
11052         (arm_default_vec_cost): New struct of type cpu_vec_costs.
11053         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11054         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
11055         (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
11056         (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
11057
11058 2013-02-12  Richard Biener  <rguenther@suse.de>
11059
11060         PR lto/56295
11061         * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
11062         decls again if possible.
11063
11064 2013-02-12  Richard Biener  <rguenther@suse.de>
11065
11066         PR middle-end/56288
11067         * tree-ssa.c (verify_ssa_name): Fix check, move
11068         SSA_NAME_IN_FREE_LIST check up.
11069
11070 2013-02-12  Jakub Jelinek  <jakub@redhat.com>
11071             Steven Bosscher   <steven@gcc.gnu.org>
11072
11073         PR rtl-optimization/56151
11074         * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
11075         equal to op0 or op1, and last_insn pattern is CODE operation
11076         with MEM dest and one of the operands matches that MEM.
11077
11078 2013-02-11  Sriraman Tallam  <tmsriramgoogle.com>
11079
11080         * doc/extend.texi: Document Function Multiversioning and "default"
11081         parameter string to target attribute.
11082         * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
11083         target attribute parameter is "default".
11084         (ix86_compare_version_priority): Remove checks for target attribute.
11085         (ix86_mangle_function_version_assembler_name): Change error to sorry.
11086         Remove check for target attribute equal to NULL. Add assert.
11087         (ix86_generate_version_dispatcher_body): Change error to sorry.
11088
11089 2013-02-11  Iain Sandoe  <iain@codesourcery.com>
11090             Jack Howarth  <howarth@bromo.med.uc.edu>
11091             Patrick Marlier  <patrick.marlier@gmail.com>
11092
11093         PR libitm/55693
11094         * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
11095         define ENDFILE_SPEC as TM_DESTRUCTOR.
11096         * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
11097
11098 2013-02-11  Alexander Potapenko  <glider@google.com>
11099             Jack Howarth  <howarth@bromo.med.uc.edu>
11100             Jakub Jelinek  <jakub@redhat.com>
11101
11102         PR sanitizer/55617
11103         * config/darwin.c (cdtor_record): Rename ctor_record.
11104         (sort_cdtor_records): Rename sort_ctor_records.
11105         (finalize_dtors): New routine to sort destructors by
11106         priority before use in assemble_integer.
11107         (machopic_asm_out_destructor): Use finalize_dtors if needed.
11108
11109 2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
11110
11111         PR rtl-optimization/56275
11112         * simplify-rtx.c (avoid_constant_pool_reference): Check that
11113         offset is non-negative and less than cmode size before
11114         calling simplify_subreg.
11115
11116 2013-02-11  Richard Biener  <rguenther@suse.de>
11117
11118         PR tree-optimization/56264
11119         * cfgloop.h (fix_loop_structure): Adjust prototype.
11120         * loop-init.c (fix_loop_structure): Return the number of
11121         newly discovered loops.
11122         * tree-cfgcleanup.c (repair_loop_structures): When new loops
11123         are discovered, do a full loop-closed SSA rewrite.
11124
11125 2013-02-11  Richard Biener  <rguenther@suse.de>
11126
11127         PR tree-optimization/56273
11128         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
11129         first VRP run.
11130         (check_array_ref): Fix missing newline in dumps.
11131         (search_for_addr_array): Likewise.
11132
11133 2013-02-09  David Edelsohn  <dje.gcc@gmail.com>
11134
11135         * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
11136
11137 2013-02-09  Jakub Jelinek  <jakub@redhat.com>
11138
11139         PR target/56256
11140         * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
11141
11142 2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
11143
11144         PR rtl-optimization/56246
11145         * lra-constraints.c (simplify_operand_subreg): Try to reuse
11146         reload pseudo.
11147         * lra.c (lra): Clear lra_optional_reload_pseudos only when all
11148         constraints are satisfied.
11149
11150 2013-02-08  Jeff Law  <law@redhat.com>
11151
11152         PR debug/53948
11153         * emit-rtl.c (reg_is_parm_p): New function.
11154         * regs.h (reg_is_parm_p): New prototype.
11155         * ira-conflicts.c (ira_build_conflicts): Allow parameters in
11156         callee-clobbered registers.
11157
11158 2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11159
11160         PR target/56043
11161         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
11162         If there is no implicit builtin declaration, just return NULL.
11163
11164 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
11165
11166         * config/i386/sse.md (FMAMODEM): New mode iterator.
11167         (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
11168         mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
11169
11170 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
11171
11172         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
11173         when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
11174         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
11175
11176 2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11177
11178         * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
11179         (microblaze*-*-elf): Likewise.
11180         * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
11181         LINK_SPEC.
11182         * config/microblaze/microblaze-c.c: Add builtin defines for
11183         _LITTLE_ENDIAN and _BIG_ENDIAN.
11184         * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
11185         add to TARGET_DEFAULT flags.
11186         Expand ASM_SPEC and LINK_SPEC.
11187         Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
11188         * config/microblaze/microblaze.md: Update extendsidi2 and
11189         movdi_internal instructions to use low-order / high-order reg
11190         print_operands.
11191         * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
11192         options and inversemask / mask of LITTLE_ENDIAN.
11193         * config/microblaze/t-microblaze: Expand multilib options to
11194         include mlittle-endian (le) and update exceptions patterns.
11195
11196 2013-02-08  Jakub Jelinek  <jakub@redhat.com>
11197
11198         PR rtl-optimization/56195
11199         * lra-constraints.c (get_reload_reg): Don't reuse regs
11200         if they have smaller mode than requested, if they have
11201         wider mode than requested, try to return a SUBREG.
11202
11203         PR tree-optimization/56250
11204         * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
11205         if type is unsigned and code isn't MULT_EXPR.
11206
11207 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
11208
11209         PR tree-optimization/56064
11210         * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
11211         bits according to mode.
11212         * fixed-value.h (fixed_from_double_int)
11213         (const_fixed_from_double_int): Adjust comments.
11214
11215 2013-02-08  Richard Biener  <rguenther@suse.de>
11216
11217         PR lto/56231
11218         * lto-streamer.h (struct data_in): Remove current_file, current_line
11219         and current_col members.
11220         * lto-streamer-out.c (lto_output_location): Stream changed bits
11221         en-block for efficiency.
11222         * lto-streamer-in.c (clear_line_info): Remove.
11223         (lto_input_location): Cache current file, line and column
11224         globally via local statics.  Read changed bits en-block.
11225         (input_function): Do not call clear_line_info.
11226         (lto_read_body): Likewise.
11227         (lto_input_toplevel_asms): Likewise.
11228
11229 2013-02-08  Michael Matz  <matz@suse.de>
11230
11231         PR tree-optimization/52448
11232         * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
11233         (nt_call_phase): New static.
11234         (add_or_mark_expr): Only mark accesses with newer phase than any
11235         call seen.
11236         (nonfreeing_call_p): New.
11237         (nt_init_block): Update nt_call_phase, mark blocks as visited.
11238         (nt_fini_block): Keep blocks marked as visited.
11239         (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
11240
11241 2013-02-08  Richard Biener  <rguenther@suse.de>
11242
11243         * ira.c (ira): Free broken dominator information.
11244
11245 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
11246
11247         * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
11248
11249 2013-02-08  Marek Polacek  <polacek@redhat.com>
11250
11251         * cfgloop.c (verify_loop_structure): Add more checking of headers.
11252
11253 2013-02-08  Richard Biener  <rguenther@suse.de>
11254
11255         PR middle-end/56181
11256         * cfgloop.h (flow_loops_find): Adjust.
11257         (bb_loop_header_p): Declare.
11258         * cfgloop.c (bb_loop_header_p): New function split out from ...
11259         (flow_loops_find): ... here.  Adjust function signature,
11260         support incremental loop structure update.
11261         (verify_loop_structure): Cleanup.  Verify a loop is a loop.
11262         * cfgloopmanip.c (fix_loop_structure): Move ...
11263         * loop-init.c (fix_loop_structure): ... here.
11264         (apply_loop_flags): Split out from ...
11265         (loop_optimizer_init): ... here.
11266         (fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
11267         in incremental mode, only remove dead loops here.
11268
11269 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
11270
11271         PR target/54222
11272         * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
11273         * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
11274         (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
11275         (*round<mode>3.libgcc): New insns for fixed-modes.
11276         * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
11277         (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
11278         (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
11279         * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
11280         implementations.  Define to __builtin_avr_absFX,
11281         __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
11282         (roundFX, countlsFX): Define to __builtin_avr_roundFX,
11283         __builtin_avr_countlsFX, respectively.
11284         * config/avr/avr-c.c (target.h): Include it.
11285         (enum avr_builtin_id): New enum.
11286         (avr_resolve_overloaded_builtin): New static function.
11287         (avr_register_target_pragmas): Use it to set
11288         targetm.resolve_overloaded_builtin.
11289         * config/avr/avr.c (avr_init_builtins): Supply myriads of local
11290         tree nodes used by DEF_BUILTIN.
11291         (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
11292         (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
11293         <AVR_BUILTIN_xxBITS>: Same.
11294
11295 2013-02-08  Richard Biener  <rguenther@suse.de>
11296
11297         * cfgloop.c (verify_loop_structure): Properly handle
11298         a loop exiting to another loop header.
11299         * ira-int.h (ira_loops): Remove.
11300         * ira.c (ira_loops): Remove.
11301         (ira): Use loop_optimizer_init and loop_optimizer_finalize.
11302         (do_reload): Use loop_optimizer_finalize.
11303         * ira-build.c (create_loop_tree_nodes): Use get_loops and
11304         number_of_loops to access the loop tree.
11305         (more_one_region_p): Likewise.
11306         (finish_loop_tree_nodes): Likewise.
11307         (rebuild_regno_allocno_maps): Likewise.
11308         (mark_loops_for_removal): Likewise.
11309         (mark_all_loops_for_removal): Likewise.
11310         (remove_unnecessary_regions): Likewise.
11311         (ira_build): Likewise.
11312         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
11313
11314 2013-02-08  Richard Biener  <rguenther@suse.de>
11315
11316         * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
11317         * ipa-pure-const.c (analyze_function): Avoid calling
11318         mark_irreducible_loops twice.
11319         * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
11320
11321 2013-02-07  David S. Miller  <davem@davemloft.net>
11322
11323         * dwarf2out.c (based_loc_descr): Perform leaf register remapping
11324         on 'reg'.
11325         * var-tracking.c (vt_add_function_parameter): Test the presence of
11326         HAVE_window_save properly and do not remap argument registers when
11327         we have a leaf function.
11328
11329 2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
11330
11331         PR bootstrap/56227
11332         * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
11333         instead of "ll".
11334         * config/i386/i386.c (ix86_print_operand): Ditto.
11335
11336 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
11337
11338         * lra-constraints.c (process_alt_operands): Fix recently added comment.
11339
11340 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
11341
11342         PR rtl-optimization/56225
11343         * lra-constraints.c (process_alt_operands): Check that reload hard
11344         reg can hold value for strict_low_part.
11345
11346 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
11347
11348         PR debug/56154
11349         * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
11350         dwarf2out_end_function.
11351         (in_first_function_p, maybe_at_text_label_p,
11352         first_loclabel_num_not_at_text_label): New variables.
11353         (dwarf2out_var_location): In the first function find out
11354         lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
11355         (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
11356         functions.
11357
11358 2013-02-07  Eric Botcazou  <ebotcazou@adacore.com>
11359
11360         PR rtl-optimization/56178
11361         * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
11362         SUBREG of a register.  Tidy up related block of code.
11363         * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
11364         note if the source is a register or a SUBREG of a register.
11365
11366 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
11367
11368         PR target/56228
11369         * config/rs6000/rs6000.md (ptrm): New mode attr.
11370         (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
11371         call_value_indirect_aix<pttrsize>,
11372         call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
11373         m in constraints.
11374
11375 2013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
11376
11377         * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
11378         if -bnortl. Convert to strcmp and strncmp.
11379
11380 2013-02-07  Alan Modra  <amodra@gmail.com>
11381
11382         PR target/54009
11383         * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
11384         addresses won't wrap when offsetting.
11385         (rs6000_secondary_reload): Provide secondary reloads needed for
11386         wrapping LO_SUM addresses.
11387
11388 2013-02-06  Thomas Schwinge  <thomas@codesourcery.com>
11389
11390         * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
11391         MACH, just __MACH__.
11392
11393 2013-02-06  Richard Biener  <rguenther@suse.de>
11394
11395         * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
11396         instead of calling fix_loop_structure.
11397
11398 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
11399
11400         PR middle-end/56217
11401         * omp-low.c (use_pointer_for_field): Return false if
11402         lower_send_shared_vars doesn't generate any copy-out code.
11403
11404 2013-02-06  Tom de Vries  <tom@codesourcery.com>
11405
11406         PR rtl-optimization/56131
11407         * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
11408         to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
11409         of the label is NULL.  Add comment.
11410
11411 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
11412
11413         * tree.h (struct tree_decl_with_vis): Remove thread_local field.
11414
11415         PR sanitizer/55374
11416         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
11417         (STATIC_LIBTSAN_LIBS): Likewise.
11418         * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
11419         (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
11420         is defined, don't add anything else beyond that.
11421         (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
11422         (LINK_COMMAND_SPEC): Use them.
11423
11424         PR tree-optimization/56205
11425         * tree-stdarg.c (check_all_va_list_escapes): Return true if
11426         there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
11427         and some va_list_escape_vars SSA_NAME appears in some PHI argument.
11428
11429 2013-02-05  Richard Biener  <rguenther@suse.de>
11430
11431         PR tree-optimization/53342
11432         PR tree-optimization/53185
11433         * tree-vectorizer.h (vect_check_strided_load): Remove.
11434         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
11435         not disallow peeling for vectorized strided loads.
11436         (vect_check_strided_load): Make static and simplify.
11437         (vect_analyze_data_refs): Adjust.
11438         * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
11439         correctly when vectorizing strided loads.
11440
11441 2013-02-05  Richard Biener  <rguenther@suse.de>
11442
11443         * doc/install.texi: Refer to ISL, not PPL.
11444
11445 2013-02-05  Jan Hubicka  <jh@suse.cz>
11446
11447         PR tree-optimization/55789
11448         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
11449
11450 2013-02-05  Jan Hubicka  <jh@suse.cz>
11451
11452         PR tree-optimization/55789
11453         * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
11454         the dead call anyway.
11455
11456 2013-02-05  Eric Botcazou  <ebotcazou@adacore.com>
11457
11458         PR sanitizer/55374
11459         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
11460
11461 2013-02-04  Alexander Potapenko  <glider@google.com>
11462             Jack Howarth  <howarth@bromo.med.uc.edu>
11463             Jakub Jelinek  <jakub@redhat.com>
11464
11465         PR sanitizer/55617
11466         * config/darwin.c (sort_ctor_records): Stabilized qsort
11467         on constructor priority by using original position.
11468         (finalize_ctors): New routine to sort constructors by
11469         priority before use in assemble_integer.
11470         (machopic_asm_out_constructor): Use finalize_ctors if needed.
11471
11472 2013-02-04  Jakub Jelinek  <jakub@redhat.com>
11473
11474         PR libstdc++/54314
11475         * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
11476         about visibility on artificial decls.
11477         * config/sol2.c (solaris_assemble_visibility): Likewise.
11478
11479 2013-02-04  Kai Tietz  <ktietz@redhat.com>
11480
11481         PR target/56186
11482         * config/i386/i386.c (function_value_ms_64): Add additional valtype
11483         argument and improve checking of return-argument types for 16-byte
11484         modes.
11485         (ix86_function_value_1): Add additional valtype argument on call
11486         of function_value_64.
11487         (return_in_memory_ms_64): Sync 16-byte sized mode handling with
11488         handling infunction_value_64 function.
11489
11490 2013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
11491
11492         * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
11493
11494 2013-02-04  Richard Biener  <rguenther@suse.de>
11495
11496         PR tree-optimization/56188
11497         * tree-ssa-structalias.c (label_visit): Consider case with
11498         initially non-empty points-to set.
11499         (perform_var_substitution): Dump node mapping and clean up.
11500
11501 2013-02-04  Richard Guenther  <rguenther@suse.de>
11502
11503         PR lto/56168
11504         * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
11505         node prevail as last resort.
11506         (lto_symtab_merge_decls): Remove guard on LTRANS here.
11507         (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
11508
11509 2013-02-04  Richard Biener  <rguenther@suse.de>
11510
11511         PR tree-optimization/56113
11512         * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
11513         Merge into ...
11514         (equiv_class_lookup_or_add): ... this.
11515         (label_visit): Adjust and fix error in previous patch.
11516         (perform_var_substitution): Adjust.
11517
11518 2013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
11519
11520         * config/sh/divtab.c: Fix formatting and comments throughout the file.
11521         * config/sh/sh4-300.md: Likewise.
11522         * config/sh/sh4a.md: Likewise.
11523         * config/sh/constraints.md: Likewise.
11524         * config/sh/sh.md: Likewise.
11525         * config/sh/netbsd-elf.h: Likewise.
11526         * config/sh/predicates.md: Likewise.
11527         * config/sh/sh-protos.h: Likewise.
11528         * config/sh/ushmedia.h: Likewise.
11529         * config/sh/linux.h: Likewise.
11530         * config/sh/sh.c: Likewise.
11531         * config/sh/superh.h: Likewise.
11532         * config/sh/elf.h: Likewise.
11533         * config/sh/sh4.md: Likewise.
11534         * config/sh/sh.h: Likewise.
11535
11536 2013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11537
11538         * config/pa/constraints.md: Adjust unused letters.  Change "T"
11539         constraint to match_test floating_point_store_memory_operand().
11540         * config/pa/predicates.md (reg_plus_base_memory_operand): New.
11541         (base14_operand): New.
11542         (floating_point_store_memory_operand): New.
11543         (integer_store_memory_operand): Revise to use base14_operand and
11544         reg_plus_base_memory_operand.
11545         (move_dest_operand): Allow symbolic_memory_operands.
11546         (symbolic_memory_operand): Check for LO_SOM.
11547         (symbolic_operand): Change default case to break.
11548         * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
11549         CONST_DOUBLE values to be reloaded by putting them into memory when
11550         the destination is a floating point register.
11551         (movdf): Remove code to handle CONST_DOUBLE.
11552         (movsf): Likewise.
11553         (reload_indf_r1): New.
11554         (reload_insf_r1): New.
11555         Consistently use "Q" and "T" constraints with integer and floating
11556         point move instructions, respectively.
11557         (movdi): Remove FAIL.
11558         Change predicate for source operand unamed DImode move from
11559         general_operand to move_src_operand.
11560         (umulsidi3): Change predicate for destination operand to
11561         register_operand.
11562         Likewise for similar unamed patterns.
11563         * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
11564         * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
11565         (hppa_legitimize_address): Simplify mask calculation.
11566         (pa_emit_move_sequence): Revised handling of secondary reloads from
11567         REG+D addresses for floating point loads and stores.  Directly handle
11568         loading CONST0_RTX (mode) to a floating point register.
11569         (pa_secondary_reload): Handle reloading DF and SFmode constant values
11570         to floating point registers.  Don't restrict secondary reloads to
11571         floating point registers to integer modes.  Revise some comments and
11572         cleanup some code.
11573         (TARGET_LEGITIMATE_ADDRESS_P): Define.
11574         (pa_legitimate_address_p): New.
11575         (pa_legitimize_reload_address): New.
11576         * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
11577         (STRICT_REG_OK_FOR_BASE_P): New.
11578         (GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
11579         (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
11580
11581 2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
11582             Andrew Dixie  <andrewd@gentrack.com>
11583
11584         * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
11585         flag set.
11586
11587 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
11588
11589         * expmed.c (extract_bit_field_1): Pass the full width of the
11590         structure to get_best_reg_extraction_insn.
11591
11592 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
11593
11594         PR target/54601
11595         * configure.ac (use_cxa_atexit): Add AIX.
11596         * configure: Regenerate.
11597
11598         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
11599
11600 2013-02-01  Jakub Jelinek  <jakub@redhat.com>
11601
11602         PR debug/54793
11603         * final.c (need_profile_function): New variable.
11604         (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
11605         If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
11606         is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
11607         notes, targetm.asm_out.function_prologue doesn't emit anything,
11608         HAVE_prologue and profiler should be emitted before prologue,
11609         set need_profile_function instead of emitting it.
11610         (final_scan_insn): If need_profile_function, emit
11611         profile_function on the first NOTE_INSN_BASIC_BLOCK or
11612         NOTE_INSN_FUNCTION_BEG note.
11613
11614 2013-02-01  Richard Henderson  <rth@redhat.com>
11615
11616         * config/rs6000/rs6000.md (smulditi3): New.
11617         (umulditi3): New.
11618
11619         * config/alpha/alpha.md (umulditi3): New.
11620
11621 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
11622
11623         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
11624         (ASM_OUTPUT_ALIGNED_LOCAL): New.
11625
11626 2013-02-01  Richard Biener  <rguenther@suse.de>
11627
11628         PR tree-optimization/56113
11629         * tree-ssa-structalias.c (label_visit): Reduce work for
11630         single-predecessor nodes.
11631
11632 2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
11633
11634         * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
11635         range isn't testing for zero.
11636
11637 2013-01-31  Steven Bosscher  <steven@gcc.gnu.org>
11638
11639         PR middle-end/56113
11640         * fwprop.c (fwprop_init): Set up loops without CFG modifications.
11641
11642 2013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
11643             Nick Clifton  <nickc@redhat.com>
11644
11645         * config/v850/constraints.md (Q): Define as a memory constraint.
11646         * config/v850/predicates.md (label_ref_operand): New predicate.
11647         (e3v5_shift_operand): New predicate.
11648         (ior_operator): New predicate.
11649         * config/v850/t-v850: Add e3v5 multilib.
11650         * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
11651         (v850_gen_movdi): Prototype.
11652         * config/v850/v850.c: Add support for e3v5 architecture.
11653         Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
11654         TARGET_V850E_UP.
11655         (construct_save_jarl): Add e3v5 long JARL support.
11656         (v850_adjust_insn_length): New function.  Adjust length of call
11657         insns when using e3v5 instructions.
11658         (v850_gen_movdi): New function: Generate instructions to move a
11659         DImode value.
11660         * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
11661         (CPP_SPEC): Define __v850e3v5__ as appropriate.
11662         (TARGET_USE_FPU): Enable for e3v5.
11663         (CONST_OK_FOR_W): New macro.
11664         (ADJUST_INSN_LENGTH): Define.
11665         * config/v850/v850.md (UNSPEC_LOOP): Define.
11666         (attr cpu): Add v850e3v5.
11667         Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
11668         (movdi): New pattern.
11669         (movdi_internal): New pattern.
11670         (cbranchsf4): Conditionalize on TARGET_USE_FPU.
11671         (cbranchdf4): Conditionalize on TARGET_USE_FPU.
11672         (cstoresf4): Likewise.
11673         (cstoredf4): Likewise.
11674         (insv): New pattern.
11675         (rotlso3_a): New pattern.
11676         (rotlsi3_b): New pattern
11677         (rotlsi3_v850e3v5): New pattern.
11678         (doloop_begin): New pattern.
11679         (fix_loop_counter): New pattern.
11680         (doloop_end): New pattern.
11681         (branch_normal): Add e3v5 long branch support.
11682         (branch_invert): Likewise.
11683         (branch_z_normal): Likewise.
11684         (branch_z_invert): Likewise.
11685         (branch_nz_normal): Likewise.
11686         (branch_nz_invert): Likewise.
11687         (call_internal_short): Add e3v5 register-indirect JARL support.
11688         (call_internal_long): Likewise.
11689         (call_value_internal_short): Likewise.
11690         (call_value_internal_long): Likewise.
11691         * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
11692         (mloop): New option.
11693         * config.gcc: Add support for configuring v840e3v5 target.
11694         * doc/invoke.texi: Document new v850 specific command line options.
11695
11696 2013-01-31  Paul Koning  <ni1d@arrl.net>
11697
11698         PR debug/55059
11699         PR debug/54508
11700         * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
11701         children if parent is a class.
11702         (prune_unused_types_prune): Don't add DW_AT_declaration.
11703
11704 2013-01-31  Richard Biener  <rguenther@suse.de>
11705
11706         PR tree-optimization/56157
11707         * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
11708         match up operand with SLP child.
11709
11710 2013-01-31  Jason Merrill  <jason@redhat.com>
11711
11712         PR debug/54410
11713         * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
11714         parameters the first time.
11715         (gen_scheduled_generic_parms_dies): Check completeness here.
11716
11717 2013-01-31  Richard Biener  <rguenther@suse.de>
11718
11719         PR middle-end/53073
11720         * common.opt (faggressive-loop-optimizations): New flag,
11721         enabled by default.
11722         * doc/invoke.texi (faggressive-loop-optimizations): Document.
11723         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
11724         infer_loop_bounds_from_undefined by it.
11725
11726 2013-01-31  Richard Biener  <rguenther@suse.de>
11727
11728         PR tree-optimization/56150
11729         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
11730         visit virtual operands.
11731         (find_uses_to_rename_bb): Likewise.
11732
11733 2013-01-31  Richard Biener  <rguenther@suse.de>
11734
11735         PR tree-optimization/56150
11736         * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
11737         mixed store non-store stmts.
11738
11739 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
11740
11741         PR sanitizer/55374
11742         * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
11743         LIBASAN_EARLY_SPEC is defined.
11744         (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
11745         (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
11746         before %o.
11747         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
11748
11749         PR c++/55742
11750         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
11751         invalid args instead of ICEing on it.
11752         (ix86_valid_target_attribute_tree): Return error_mark_node if
11753         ix86_valid_target_attribute_inner_p failed.
11754         (ix86_valid_target_attribute_p): Return false only if
11755         ix86_valid_target_attribute_tree returned error_mark_node.  Allow
11756         target("default") attribute.
11757         (sorted_attr_string): Change argument from const char * to tree,
11758         merge in all target attribute arguments rather than just one.
11759         Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
11760         instead of free.  Avoid using strcat.
11761         (ix86_mangle_function_version_assembler_name): Mangle
11762         target("default") as if no target attribute is present.  Adjust
11763         sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
11764         instead of xmalloc and XDELETEVEC instead of free.
11765         (ix86_function_versions): Don't return true if one of the decls
11766         doesn't have target attribute.  If they don't and one of the decls
11767         is DECL_FUNCTION_VERSIONED, report an error.  Adjust
11768         sorted_attr_string caller.  Use XDELETEVEC instead of free.
11769         (ix86_supports_function_versions): Remove.
11770         (make_name): Fix up formatting.
11771         (make_dispatcher_decl): Remove resolver_name and its initialization.
11772         Avoid leaking memory.
11773         (is_function_default_version): Return true if there is
11774         target("default") attribute rather than no target attribute at all.
11775         (make_resolver_func): Avoid leaking memory.
11776         (ix86_generate_version_dispatcher_body): Likewise.
11777         (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
11778         * target.def (supports_function_versions): Remove.
11779         * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
11780         * doc/tm.texi: Regenerated.
11781
11782 2013-01-30  Vladimir Makarov  <vmakarov@redhat.com>
11783
11784         PR rtl-optimization/56144
11785         * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
11786         for values with side effects.
11787
11788 2013-01-30  Richard Biener  <rguenther@suse.de>
11789
11790         * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
11791         (sparseset_pop): Likewise.
11792         * cfganal.c (compute_idf): Likewise.  Increase work-stack size
11793         to be able to use quick_push in the worker loop.
11794
11795 2013-01-30  Marek Polacek  <polacek@redhat.com>
11796
11797         * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
11798
11799 2013-01-30  Richard Biener  <rguenther@suse.de>
11800
11801         PR lto/56147
11802         * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
11803
11804 2013-01-30  Georg-Johann Lay  <avr@gjlay.de>
11805
11806         PR tree-optimization/56064
11807         * fixed-value.c (fixed_from_double_int): New function.
11808         * fixed-value.h (fixed_from_double_int): New prototype.
11809         (const_fixed_from_double_int): New static inline function.
11810         * fold-const.c (native_interpret_fixed): New static function.
11811         (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
11812         (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
11813         (native_encode_fixed): New static function.
11814         (native_encode_expr) <FIXED_CST>: Use it.
11815         (native_interpret_int): Move double_int worker code to...
11816         * double-int.c (double_int::from_buffer): ...this new static method.
11817         * double-int.h (double_int::from_buffer): Prototype it.
11818
11819 2013-01-30  Richard Biener  <rguenther@suse.de>
11820
11821         * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
11822         New pointer-map and obstack.
11823         (init_alias_vars): Allocate pointer-map and obstack.
11824         (delete_points_to_sets): Free them.
11825         (find_what_var_points_to): Cache result.
11826         (find_what_p_points_to): Adjust for changed interface of
11827         find_what_var_points_to.
11828         (compute_points_to_sets): Likewise.
11829         (ipa_pta_execute): Likewise.
11830
11831 2013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11832
11833         * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
11834         * configure: Regenerate.
11835         * config.in: Regenerate.
11836         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
11837         #nobits/#progbits if supported.
11838
11839 2013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>
11840
11841         PR target/56121
11842         * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
11843         bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
11844         bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
11845
11846 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11847
11848         * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
11849         (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
11850
11851 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11852
11853         * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
11854         * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
11855
11856 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11857
11858         * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
11859         declaration.
11860         * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
11861         * config/arm/cortex-a7.md: New bypasses using
11862         arm_mac_accumulator_is_result.
11863
11864 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11865
11866         * config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
11867         (cortex_a7_neon_mla): Likewise.
11868         (cortex_a7_fpfmad): New reservation.
11869         (cortex_a7_fpmacs): Use ffmas and update required units.
11870         (cortex_a7_fpmuld): Update required units and latency.
11871         (cortex_a7_fpmacd): Likewise.
11872         (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
11873         (cortex_a7_neon). Likewise.
11874         (bypass) Update participating units.
11875
11876 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
11877
11878         * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
11879         * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
11880         from fmac to ffma.
11881         * config/arm/vfp11.md (vfp_farith): Use ffmas.
11882         (vfp_fmul): Use ffmad.
11883         * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
11884         (cortex_r4_fmacd): Use ffmad.
11885         * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
11886         * config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
11887         (cortex_a9_fmacd): Use ffmad.
11888         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
11889         (cortex_a8_vfp_macd): Use ffmad.
11890         * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
11891         (cortex_a5_fpmacd): Use ffmad.
11892         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
11893         (cortex_a15_vfp_macd): Use ffmad.
11894         * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
11895
11896 2013-01-29  Jason Merrill  <jason@redhat.com>
11897
11898         PR libstdc++/54314
11899         * varasm.c (default_assemble_visibility): Don't warn about
11900         visibility on artificial decls.
11901
11902 2013-01-29  Richard Biener  <rguenther@suse.de>
11903
11904         PR tree-optimization/56113
11905         * tree-ssa-structalias.c (equiv_class_lookup): Also return
11906         the bitmap leader.
11907         (label_visit): Free duplicate bitmaps and record the leader instead.
11908         (perform_var_substitution): Adjust.
11909
11910 2013-01-29  Richard Biener  <rguenther@suse.de>
11911
11912         PR tree-optimization/55270
11913         * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
11914         the CFG, schedule loops for fixup.
11915
11916 2013-01-29  Nick Clifton  <nickc@redhat.com>
11917
11918         * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
11919         SP_REG.
11920
11921 2013-01-28  Leif Ekblad  <leif@rdos.net>
11922
11923         * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
11924         * config/i386/i386.h (TARGET_RDOS): New macro.
11925         (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
11926         * config/i386/i386.c (ix86_option_override_internal): For 64bit
11927         TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
11928         * config/i386/i386.opt (mlarge-data-threshold): Initialize to
11929         DEFAULT_LARGE_SECTION_THRESHOLD.
11930         * config/i386/i386.md (R14_REG, R15_REG): New constants.
11931         * config/i386/rdos.h: New file.
11932         * config/i386/rdos64.h: New file.
11933
11934 2013-01-28  Bernd Schmidt  <bernds@codesourcery.com>
11935
11936         PR other/54814
11937         * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
11938         TEST_HARD_REG_BIT.
11939
11940 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
11941
11942         PR rtl-optimization/56117
11943         * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
11944         call cselib_lookup_from_insn on the MEM before calling
11945         add_insn_mem_dependence.
11946
11947 2013-01-28  Richard Biener  <rguenther@suse.de>
11948
11949         * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
11950         to a stmt that didn't have one.
11951         (copy_phis_for_bb): Likewise for PHI arguments.
11952         (copy_debug_stmt): Likewise for debug stmts.
11953
11954 2013-01-28  Richard Biener  <rguenther@suse.de>
11955
11956         PR tree-optimization/56034
11957         * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
11958         (partition_builtin_p): Adjust.
11959         (generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
11960         it is the last partition.
11961         (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
11962         up the vertex for the definition.
11963         (classify_partition): Classify whether a partition is a
11964         PKIND_REDUCTION, thus has uses outside of the loop.
11965         (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
11966         Merge all PKIND_REDUCTION partitions into the last partition.
11967         (tree_loop_distribution): Seed partitions from reductions as well.
11968
11969 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
11970
11971         PR tree-optimization/56125
11972         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
11973         pow(x,c) into sqrt(x) * powi(x, n/2) or
11974         1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
11975         optimizing for size.
11976         Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
11977         1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
11978         integer.
11979
11980         PR tree-optimization/56094
11981         * gimplify.c (force_gimple_operand_1): Temporarily set input_location
11982         to UNKNOWN_LOCATION while gimplifying expr.
11983
11984 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
11985
11986         PR target/56114
11987         * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
11988         operand 0 in movabs insn template for -masm=intel asm alternative.
11989         (*movabs<mode>_2): Ditto for operand 1.
11990
11991 2013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>
11992
11993         PR target/54663
11994         * config.gcc (microblaze*-linux*): Add tmake_file to allow building
11995         of microblaze-c.o
11996
11997 2013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
11998
11999         * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
12000         tm_file.
12001
12002 2013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
12003
12004         * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
12005         Undef to avoid warning.
12006
12007 2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
12008
12009         * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
12010         * configure: Regenerate.
12011
12012 2013-01-25  Jakub Jelinek  <jakub@redhat.com>
12013
12014         PR tree-optimization/56098
12015         * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
12016         for stmts with volatile ops.
12017         (cond_store_replacement): Don't optimize if assign has volatile ops.
12018         (cond_if_else_store_replacement_1): Don't optimize if either
12019         then_assign or else_assign have volatile ops.
12020         (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
12021         volatile ops.
12022
12023 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
12024
12025         * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
12026
12027 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
12028
12029         * doc/extend.texi (Example of asm with clobbered asm reg): Fix
12030         missing ':' in asm example.
12031
12032 2013-01-25  Tejas Belagod  <tejas.belagod@arm.com>
12033
12034         * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
12035         entries into lane and laneq entries.
12036         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
12037         Remove AdvSIMD scalar modes.
12038         (aarch64_sq<r>dmulh_laneq<mode>): New.
12039         (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
12040         modes.
12041         * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
12042         builtin implementations to relfect changes in RTL in aarch64-simd.md.
12043         * config/aarch64/iterators.md (VCOND): New.
12044         (VCONQ): New.
12045
12046 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
12047
12048         PR target/54222
12049         * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
12050         Add NULL LIBNAME argument to existing definitions.
12051         (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
12052         * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
12053         * config/avr/avr.c (DEF_BUILTIN): Same.
12054         (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
12055         (avr_expand_builtin): Expand to a vanilla call if a libgcc
12056         implementation is available (DECL_ASSEMBLER_NAME is set).
12057         (avr_fold_absfx): New static function.
12058         (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
12059         AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
12060         AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
12061         AVR_BUILTIN_ABSLLK.
12062         * config/avr/stdfix.h (abshr, absr, abslr, absllr)
12063         (abshk, absk, abslk, absllk): Provide as static inline functions.
12064
12065 2013-01-25  Marek Polacek  <polacek@redhat.com>
12066
12067         PR tree-optimization/56035
12068         * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
12069
12070 2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
12071
12072         * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
12073         (*movtf_internal_rex64): Add (!o,C) alternative
12074         (*movxf_internal_rex64): Ditto.
12075         (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
12076
12077 2013-01-24  Shenghou Ma  <minux.ma@gmail.com>
12078
12079         * doc/invoke.texi: fix typo.
12080         * doc/objc.texi: fix typo.
12081
12082 2013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
12083
12084         * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
12085         for the first two alternatives.
12086
12087 2013-01-24  Diego Novillo  <dnovillo@google.com>
12088
12089         * Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
12090         (ggc-zone.o): Remove.
12091         * configure.ac: Remove option --with-gc.
12092         * configure: Re-generate.
12093         * doc/install.texi: Remove documentation for --with-gc.
12094         * gengtype.c (write_enum_defn): Remove.  Update all users.
12095         (write_Types_process_field): Remove generation of gt_e_* argument.
12096         (output_type_enum): Remove.  Update all users.
12097         (write_enum_defn): Remove.  Update all users.
12098         (enum alloc_zone): Remove.  Update all users.
12099         (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
12100         * ggc-common.c (ggc_splay_alloc): Remove first argument.
12101         Update all callers.
12102         (struct ptr_data): Remove field TYPE.  Update all users.
12103         (gt_pch_note_object): Remove argument TYPE.  Update all users.
12104         * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
12105         Update all users.
12106         * ggc-none.c (ggc_alloc_typed_stat): Remove.
12107         (struct alloc_zone): Remove.
12108         (ggc_internal_alloc_zone_stat): Remove.
12109         (ggc_internal_cleared_alloc_zone_stat): Remove.
12110         * ggc-page.c (ggc_alloc_typed_stat): Remove.
12111         (ggc_pch_count_object): Remove last argument.  Update all users.
12112         (ggc_pch_alloc_object): Remove last argument.  Update all users.
12113         (struct alloc_zone): Remove.
12114         * ggc-zone.c: Remove.
12115         * ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
12116         (struct alloc_zone): Remove.
12117         (ggc_alloc_typed_stat): Remove.
12118         (ggc_alloc_typed): Remove.
12119         (ggc_splay_alloc): Remove first argument.
12120         (rtl_zone): Remove.  Update all users.
12121         (tree_zone): Remove.  Update all users.
12122         (tree_id_zone): Remove.  Update all users.
12123         (ggc_internal_zone_alloc_stat): Remove.  Update all users.
12124         (ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
12125         (ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
12126         * tree-ssanames.c: Remove references to zone allocator in comments.
12127
12128 2013-01-24  Georg-Johann Lay  <avr@gjlay.de>
12129
12130         * config/avr/avr.c (avr_out_fract): Make register numbers that
12131         might be outside of source operand signed.
12132
12133 2013-01-24  Uros Bizjak  <ubizjak@gmail.com>
12134
12135         * config/i386/constraints.md (Yf): New constraint.
12136         * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
12137         of f constraint to conditionaly disable x87 register preferences.
12138         (*movdf_internal): Ditto.
12139         (*movsf_internal): Ditto.
12140
12141 2013-01-24  Steven Bosscher  <steven@gcc.gnu.org>
12142
12143         PR inline-asm/55934
12144         * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
12145         that have operands with impossible constraints.
12146         Add a FIXME for a speed-up opportunity.
12147         * lra-constraints.c (process_alt_operands): Verify that a class
12148         selected from constraints on asms is valid for the operand mode.
12149         (curr_insn_transform): Remove incorrect comment.
12150
12151 2013-01-23  David Edelsohn  <dje.gcc@gmail.com>
12152
12153         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
12154         TOC operand is a valid symbol ref in the constant pool.
12155
12156 2013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
12157
12158         * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
12159
12160 2013-01-23  Georg-Johann Lay  <avr@gjlay.de>
12161
12162         PR target/54222
12163         * config/avr/stdfix.h: New file.
12164         * t-avr (stdfix-gcc.h): New rule to build it.
12165         (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
12166
12167 2013-01-23  Kostya Serebryany  <kcc@google.com>
12168
12169         * config/darwin.h: remove dependency on
12170         CoreFoundation (asan on Mac OS).
12171
12172 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
12173
12174         PR target/49069
12175         * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
12176         instead of cmpdi_operand for first comparison operand.
12177         Don't assert that comparison operands aren't both constants.
12178
12179 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
12180
12181         * doc/install.texi (Downloading the Source): Update references to
12182         downloading separate components.
12183
12184 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
12185
12186         * doc/extend.texi (__int128): Improve grammar.
12187
12188 2013-01-22  Uros Bizjak  <ubizjak@gmail.com>
12189
12190         PR target/56028
12191         * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
12192         alternative to (o,r).
12193         (*movdi_internal_rex64): Remove (!o,n) alternative.
12194         (DImode immediate->memory splitter): Remove.
12195         (DImode immediate->memory peephole2): Remove.
12196         (movtf): Enable for TARGET_64BIT || TARGET_SSE.
12197         (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
12198         alternative to (!o,*r).
12199         (*movtf_internal_sse): New pattern.
12200         (*movxf_internal_rex64): New pattern.
12201         (*movxf_internal): Disable for TARGET_64BIT.
12202         (*movdf_internal_rex64): Remove (!o,F) alternative.
12203
12204 2013-01-22  Jakub Jelinek  <jakub@redhat.com>
12205
12206         PR middle-end/56074
12207         * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
12208         isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
12209         * tree-vect-loop-manip.c (find_loop_location): Also ignore
12210         stmt locations where LOCATION_LOCUS of the stmt location is
12211         UNKNOWN_LOCATION or BUILTINS_LOCATION.
12212
12213         PR target/55686
12214         * config/i386/i386.md (UNSPEC_STOS): New.
12215         (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
12216         *strsetqi_1): Add UNSPEC_STOS.
12217
12218 2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
12219
12220         PR c++/56067
12221         * doc/invoke.texi: Remove left over -Wsynth example.
12222
12223 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
12224
12225         PR tree-optimization/56051
12226         * fold-const.c (fold_binary_loc): Don't fold
12227         X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
12228         a narrowing conversion, or widening conversion from signed
12229         to unsigned.
12230
12231 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
12232
12233         PR rtl-optimization/56023
12234         * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
12235         dependent on debug instruction.
12236
12237 2013-01-21  Martin Jambor  <mjambor@suse.cz>
12238
12239         PR middle-end/56022
12240         * function.c (allocate_struct_function): Call
12241         invoke_set_current_function_hook earlier.
12242
12243 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
12244
12245         * reload1.c (init_reload): Only initialize reload_obstack
12246         during the first call.
12247
12248 2013-01-21  Marek Polacek  <polacek@redhat.com>
12249
12250         * cfgloop.c (verify_loop_structure): Fix up grammar.
12251
12252 2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>
12253
12254         * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
12255         pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
12256
12257 2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12258
12259         PR target/56058
12260         * config/arm/marvell-pj4.md: Update copyright year.
12261         Fix up use of alu to alu_reg and simple_alu_imm.
12262
12263 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
12264
12265         * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
12266
12267 2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>
12268
12269         PR target/55433
12270         * lra-constraints.c (curr_insn_transform): Don't reuse original
12271         insn for secondary memory move when memory mode should be different.
12272
12273 2013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12274
12275         * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
12276         atomic_storedi_1): New patterns.
12277
12278 2013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12279
12280         btver2 pipeline descriptions.
12281         * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
12282         descriptions.
12283         * config/i386/i386.md (btver2_decode): New type attributes.
12284         * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
12285         type attributes.
12286         * config/i386/btver2.md: New file describing btver2 pipelines.
12287
12288 2013-01-19  Andrew Pinski  <apinski@cavium.com>
12289
12290         PR tree-optimization/52631
12291         * tree-ssa-sccvn (visit_use): Before looking up the original
12292         statement, try looking up the simplified expression.
12293
12294 2013-01-19  Anthony Green  <green@moxielogic.com>
12295
12296         * config/moxie/moxie.c (moxie_expand_prologue): Set
12297         current_function_static_stack_size.
12298
12299 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
12300
12301         PR tree-optimization/56029
12302         * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
12303         gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
12304
12305 2013-01-18  Sharad Singhai  <singhai@google.com>
12306
12307         PR tree-optimization/55995
12308         * dumpfile.c (dump_loc): Print location only if available.
12309         * tree-vectorizer.c (increase_alignment): Intialize vect_location.
12310
12311 2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>
12312
12313         PR target/55433
12314         * lra-constraints.c (curr_insn_transform): Reuse original insn for
12315         secondary memory move.
12316         (inherit_reload_reg): Use rclass instead of cl for
12317         check_secondary_memory_needed_p.
12318
12319 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
12320
12321         PR middle-end/56015
12322         * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
12323         the case where writing real complex part of target modifies op1.
12324
12325 2013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>
12326
12327         * config/aarch64/aarch64-simd.md
12328         (aarch64_vcond_internal<mode>): Handle unordered cases.
12329         * config/aarch64/iterators.md (v_cmp_result): New.
12330
12331 2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
12332             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12333
12334         * config/arm/marvell-pj4.md: New file.
12335         * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
12336         * config/arm/arm.md (generic_sched): Add marvell_pj4.
12337         (generic_vfp): Likewise.
12338         * config/arm/arm-cores.def: Add marvell-pj4.
12339         * config/arm/arm-tune.md: Regenerate.
12340         * config/arm/arm-tables.opt: Regenerate.
12341         * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
12342         * doc/invoke.texi: Document marvell-pj4.
12343
12344 2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>
12345
12346         * config/aarch64/arm_neon.h: Map scalar types to standard types.
12347
12348 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
12349
12350         PR debug/54114
12351         PR debug/54402
12352         PR debug/49888
12353         * var-tracking.c (negative_power_of_two_p): New.
12354         (global_get_addr_cache, local_get_addr_cache): New.
12355         (get_addr_from_global_cache, get_addr_from_local_cache): New.
12356         (vt_canonicalize_addr): Rewrite using the above.  Adjust the
12357         heading comment.
12358         (vt_stack_offset_p): Remove.
12359         (vt_canon_true_dep): Always canonicalize loc's address.
12360         (clobber_overlapping_mems): Make sure we have a MEM.
12361         (local_get_addr_clear_given_value): New.
12362         (val_reset): Clear local cached entries.
12363         (compute_bb_dataflow): Create and release the local cache.
12364         Disable duplicate MEMs clobbering.
12365         (emit_notes_in_bb): Clobber MEMs likewise.
12366         (vt_emit_notes): Create and release the local cache.
12367         (vt_initialize, vt_finalize): Create and release the global
12368         cache, respectively.
12369         * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
12370
12371 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
12372
12373         PR libmudflap/53359
12374         * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
12375         not found in the symtab.
12376
12377 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
12378
12379         PR debug/56006
12380         PR rtl-optimization/55547
12381         PR rtl-optimization/53827
12382         PR debug/53671
12383         PR debug/49888
12384         * alias.c (offset_overlap_p): New, factored out of...
12385         (memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
12386         the conservative special case for symbolic constants.  Don't
12387         adjust zero sizes on alignment.
12388
12389 2013-01-18  Bernd Schmidt  <bernds@codesourcery.com>
12390
12391         PR rtl-optimization/52573
12392         * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
12393         REG_UNUSED for the same register.
12394
12395 2013-01-17  Richard Biener  <rguenther@suse.de>
12396             Marek Polacek  <polacek@redhat.com>
12397
12398         PR rtl-optimization/55833
12399         * loop-unswitch.c (unswitch_loops): Move loop verification...
12400         (unswitch_single_loop): ...here.  Call mark_irreducible_loops.
12401         * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
12402         Set it to true when we're removing a loop from hierarchy tree in
12403         an irreducible region.
12404         (fix_bb_placements): Adjust caller.
12405         (fix_loop_placements): Likewise.
12406
12407 2013-01-17  Georg-Johann Lay  <avr@gjlay.de>
12408
12409         * config/avr/builtins.def (DEF_BUILTIN): Factor out
12410         "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
12411         Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
12412         Remove ID.  Adjust comments.
12413         * config/avr/avr-c.c (avr_builtin_name): Remove.
12414         (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
12415         * config/avr/avr.c (avr_tolower): New static function.
12416         (DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
12417         Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
12418         (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
12419         default expansion.
12420
12421 2013-01-17  Jan Hubicka  <jh@suse.cz>
12422
12423         PR tree-optimization/55273
12424         * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
12425
12426 2013-01-17  Uros Bizjak  <ubizjak@gmail.com>
12427
12428         PR target/55981
12429         * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
12430         store through atomic_store<mode>_1.
12431         (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
12432
12433 2013-01-17  Martin Jambor  <mjambor@suse.cz>
12434
12435         PR tree-optimizations/55264
12436         * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
12437         for virtual methods.
12438         * ipa.c (symtab_remove_unreachable_nodes): Never return true for
12439         virtual methods before inlining is over.
12440         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
12441         virtual functions.
12442         * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
12443         non-virtual.
12444
12445 2013-01-16  Vladimir Makarov  <vmakarov@redhat.com>
12446
12447         PR rtl-optimization/56005
12448         * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
12449         pending reads for prefetch.
12450
12451 2013-01-16  Ian Bolton  <ian.bolton@arm.com>
12452
12453         * config/aarch64/aarch64.md
12454         (*cstoresi_neg_uxtw): New pattern.
12455         (*cmovsi_insn_uxtw): New pattern.
12456         (*<optab>si3_uxtw): New pattern.
12457         (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
12458         (*<optab>si3_insn_uxtw): New pattern.
12459         (*bswapsi2_uxtw): New pattern.
12460
12461 2013-01-16  Richard Biener  <rguenther@suse.de>
12462
12463         * tree-inline.c (tree_function_versioning): Remove set but
12464         never used variable.
12465
12466 2013-01-16  Richard Biener  <rguenther@suse.de>
12467
12468         PR tree-optimization/55964
12469         * tree-flow.h (rename_variables_in_loop): Remove.
12470         (rename_variables_in_bb): Likewise.
12471         * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
12472         (copy_loop_before): Adjust and delete update-ssa status.
12473         * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
12474         (rename_variables_in_bb): Likewise.  Properly walk over predecessors.
12475         (rename_variables_in_loop): Remove.
12476         (slpeel_update_phis_for_duplicate_loop): Likewise.
12477         (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
12478         use available cfg machinery instead of duplicating it.
12479         Update PHI nodes and perform poor-mans SSA update here.
12480         (slpeel_tree_peel_loop_to_edge): Adjust.
12481
12482 2013-01-16  Richard Biener  <rguenther@suse.de>
12483
12484         PR tree-optimization/54767
12485         PR tree-optimization/53465
12486         * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
12487         (vrp_visit_phi_node): For PHI arguments coming via backedges
12488         drop all symbolical range information.
12489         (execute_vrp): Compute backedges.
12490
12491 2013-01-16  Richard Biener  <rguenther@suse.de>
12492
12493         * doc/install.texi: Update CLooG and ISL requirements to
12494         0.18.0 and 0.11.1.
12495
12496 2013-01-16  Christian Bruel  <christian.bruel@st.com>
12497
12498         PR target/55301
12499         * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
12500         (broken_move): Handle UNSPECV_SP_SWITCH_B.
12501         * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
12502
12503 2013-01-16  DJ Delorie  <dj@redhat.com>
12504
12505         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
12506         (UNSPECV_SP_SWITCH_E): New.
12507         (sp_switch_1): Change to an unspec.
12508         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
12509         replace $r15.
12510
12511 2013-01-16  Uros Bizjak  <ubizjak@gmail.com>
12512
12513         * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
12514         with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
12515         * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
12516         (expand_mem_thread_fence): Ditto.
12517         (expand_mem_signal_fence): Ditto.
12518         (expand_atomic_load): Ditto.
12519         (expand_atomic_store): Ditto.
12520
12521 2013-01-16  Alexandre Oliva  <aoliva@redhat.com>
12522
12523         PR rtl-optimization/55547
12524         PR rtl-optimization/53827
12525         PR debug/53671
12526         PR debug/49888
12527         * alias.c (memrefs_conflict_p): Set sizes to negative after
12528         AND adjustments.
12529
12530 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
12531
12532         PR target/55940
12533         * function.c (thread_prologue_and_epilogue_insns): Always
12534         add crtl->drap_reg to set_up_by_prologue.set, even if
12535         stack_realign_drap is false.
12536
12537 2013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12538
12539         * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
12540         and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
12541         *call): Fix indention.
12542
12543 2013-01-15  Tom de Vries  <tom@codesourcery.com>
12544
12545         PR target/55876
12546         * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
12547         Update comment.
12548
12549 2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>
12550
12551         PR rtl-optimization/55153
12552         * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
12553
12554 2013-01-15  Martin Jambor  <mjambor@suse.cz>
12555
12556         PR tree-optimization/55920
12557         * tree-sra.c (analyze_access_subtree): Do not mark non-removable
12558         accesses as grp_to_be_debug_replaced.
12559
12560 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
12561
12562         PR tree-optimization/55920
12563         * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
12564         there is non-useless type conversion needed from debug rhs to lhs,
12565         use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
12566
12567 2013-01-15  Joseph Myers  <joseph@codesourcery.com>
12568             Mikael Pettersson  <mikpe@it.uu.se>
12569
12570         PR target/43961
12571         * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
12572         Thumb.
12573         (ASM_OUTPUT_CASE_LABEL): Remove.
12574         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
12575         * final.c (shorten_branches): Update alignment of labels before
12576         jump tables if CASE_VECTOR_SHORTEN_MODE.
12577
12578 2013-01-15  Richard Biener  <rguenther@suse.de>
12579
12580         PR bootstrap/55961
12581         * system.h: Do not include gmp.h for building host tools.
12582
12583 2013-01-15  Richard Biener  <rguenther@suse.de>
12584
12585         PR middle-end/55882
12586         * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
12587         account for bitpos when computing alignment.
12588
12589 2013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>
12590
12591         * config/i386/i386-c.c (ix86_target_macros_internal): New case.
12592         (ix86_target_macros_internal): Likewise.
12593
12594         * config/i386/i386.c (m_CORE2I7): Removed.
12595         (m_CORE_HASWELL): New macro.
12596         (m_CORE_ALL): Likewise.
12597         (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
12598         (initial_ix86_arch_features): Likewise.
12599         (processor_target_table): Initializations for Core avx2.
12600         (cpu_names): New names "core-avx2".
12601         (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
12602         PROCESSOR_CORE_HASWELL.
12603         (ix86_issue_rate): New case.
12604         (ia32_multipass_dfa_lookahead): Likewise.
12605         (ix86_sched_init_global): Likewise.
12606
12607         * config/i386/i386.h (TARGET_HASWELL): New macro.
12608         (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
12609         (processor_type): New PROCESSOR_HASWELL.
12610
12611 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
12612
12613         PR tree-optimization/55955
12614         * tree-vect-loop.c (vectorizable_reduction): Give up early on
12615         *SHIFT_EXPR and *ROTATE_EXPR codes.
12616
12617         PR tree-optimization/48766
12618         * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
12619         -ftrapv disable -fwrapv.
12620
12621 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
12622
12623         PR target/55974
12624         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
12625         etc. to 1 and not to __flash.
12626         Use LL suffix for __INT24_MAX__ with -mint8.
12627         Use ULL suffix for __UINT24_MAX__ with -mint8.
12628
12629 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
12630
12631         * config/avr/avr-arch.h
12632         (struct base_arch_s): Use typedef avr_arch_t instead.
12633         (struct arch_info_s): Use typedef avr_arch_info_t instead.
12634         (struct mcu_type_s): Use typedef avr_mcu_t instead.
12635         * config/avr/avr.c: Same.
12636         * config/avr/avr-devices.c: Same.
12637         * config/avr/driver-avr.c: Same.
12638         * config/avr/gen-avr-mmcu-texi.c: Same.
12639         * config/avr/avr-mcus.def: Adjust comment.
12640
12641 2013-01-14  Tejas Belagod  <tejas.belagod@arm.com>
12642
12643         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
12644         * config/aarch64/iterators.md (VALLDI): New.
12645
12646 2013-01-14  Uros Bizjak  <ubizjak@gmail.com>
12647             Andi Kleen  <ak@linux.intel.com>
12648
12649         PR target/55948
12650         * config/i386/sync.md (atomic_store<mode>_1): New pattern.
12651         (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
12652         memmodel flag.
12653
12654 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
12655
12656         * config/avr/avr-stdint.h: Remove trailing blanks.
12657         * config/avr/avr-log.h: Same.
12658         * config/avr/avr-arch.h: Same.
12659         * config/avr/avr-devices.c: Same.
12660         * config/avr/avr-dimode.md: Same.
12661         * config/avr/predicates.md: Same.
12662         * config/avr/avr-c.c: Same.  And fix typo.
12663
12664         * config/avr/avr-protos.h: Same.  And:
12665         (function_arg_regno_p): Rename to avr_function_arg_regno_p.
12666         (init_cumulative_args): Rename to avr_init_cumulative_args.
12667         (expand_prologue): Rename to avr_expand_prologue.
12668         (expand_epilogue): Rename to avr_expand_epilogue.
12669         (adjust_insn_length): Rename to avr_adjust_insn_length.
12670         (notice_update_cc): Rename to avr_notice_update_cc.
12671         (final_prescan_insn): Rename to avr_final_prescan_insn.
12672         * config/avr/avr.c: Same.
12673         * config/avr/avr.h: Same.
12674         * config/avr/avr.md: Remove trailing blanks.
12675         (prologue): Use avr_expand_prologue.
12676         (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
12677
12678 2013-01-14  Richard Biener  <rguenther@suse.de>
12679
12680         * tree-cfg.c (verify_expr_location, verify_expr_location_1,
12681         verify_location, collect_subblocks): New functions.
12682         (verify_gimple_in_cfg): Verify that locations only reference
12683         BLOCKs in the functions BLOCK tree.
12684
12685 2013-01-14  Richard Biener  <rguenther@suse.de>
12686
12687         * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
12688         PHI argument.
12689         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
12690         unshare reference.
12691         (insert_out_of_ssa_copy_on_edge): Likewise.
12692         (rewrite_close_phi_out_of_ssa): Likewise.
12693         * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
12694         debug expressions.
12695         * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
12696         propagated constants.
12697         * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
12698         can not be shared.
12699
12700 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
12701
12702         * config/avr/avr-modes.def: Add GPL copyright notice.
12703
12704 2013-01-13  Uros Bizjak  <ubizjak@gmail.com>
12705
12706         * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
12707         MEMMODEL_MASK to determine memory model.
12708         (atomic_store<mode>): Ditto from operands[2].
12709         * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
12710
12711 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
12712
12713         PR fortran/55935
12714         * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
12715         (fold_gimple_assign): Don't call unshare_expr here.
12716         (fold_ctor_reference): Call unshare_expr.
12717
12718 2013-01-13  Terry Guo  <terry.guo@arm.com>
12719
12720         * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
12721         * doc/fragments.texi: Document MULTILIB_REUSE.
12722         * gcc.c (multilib_reuse): New internal spec.
12723         (set_multilib_dir): Also search multilib from multilib_reuse.
12724         * genmultilib (tmpmultilib3): Refactor code.
12725         (tmpmultilib4): Ditto.
12726         (multilib_reuse): New multilib argument.
12727
12728 2013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>
12729
12730         * Makefile.in: Update copyright.
12731
12732 2013-01-12  Tom de Vries  <tom@codesourcery.com>
12733
12734         PR middle-end/55890
12735         * calls.c (expand_call): Check if arg_nr is valid.
12736
12737 2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
12738
12739         * doc/extend.texi (X86 Built-in Functions): Add whitespace in
12740         __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
12741         documentation.  Add missing '__' in front of
12742         __builtin_ia32_packssdw256.
12743
12744 2013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12745
12746         PR target/55719
12747         * config/s390/s390.c (s390_preferred_reload_class): Do not return
12748         NO_REGS for larl operands.
12749         (s390_reload_larl_operand): Use s390_load_address instead of
12750         emit_move_insn.
12751
12752 2013-01-11  Richard Biener  <rguenther@suse.de>
12753
12754         * tree-cfg.c (verify_node_sharing_1): Split out from ...
12755         (verify_node_sharing): ... here.
12756         (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
12757
12758 2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12759
12760         * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
12761         Substitute TREECHECKING.
12762         * configure: Regenerate.
12763         * Makefile.in (TREECHECKING): New.
12764
12765 2013-01-11  Richard Guenther  <rguenther@suse.de>
12766
12767         PR tree-optimization/44061
12768         * tree-vrp.c (extract_range_basic): Compute zero as
12769         value-range for __builtin_constant_p of function parameters.
12770
12771 2013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>
12772
12773         Update copyright years.
12774
12775 2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>
12776
12777         PR rtl-optimization/55672
12778         * lra-eliminations.c (mark_not_eliminable): Permit addition with
12779         const to be eliminable.
12780
12781 2013-01-10  David Edelsohn  <dje.gcc@gmail.com>
12782
12783         * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
12784         * configure: Regenerate.
12785
12786 2013-01-10  Richard Biener  <rguenther@suse.de>
12787
12788         * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
12789
12790 2013-01-10  Richard Biener  <rguenther@suse.de>
12791
12792         PR bootstrap/55792
12793         * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
12794         locations for virtual PHI arguments.
12795         (rewrite_update_phi_arguments): Likewise.
12796
12797 2013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>
12798
12799         * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
12800         on to assembler.
12801
12802 2013-01-10  Jakub Jelinek  <jakub@redhat.com>
12803
12804         PR tree-optimization/55921
12805         * tree-complex.c (expand_complex_asm): New function.
12806         (expand_complex_operations_1): Call it for GIMPLE_ASM.
12807
12808 2013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12809
12810         PR target/55718
12811         * config/s390/s390.c (s390_symref_operand_p)
12812         (s390_loadrelative_operand_p): Merge the two functions.
12813         (s390_check_qrst_address, print_operand_address): Add parameters
12814         to s390_loadrelative_operand_p invokation.
12815         (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
12816         (s390_reload_larl_operand, s390_secondary_reload): Use
12817         s390_loadrelative_operand_p instead of s390_symref_operand_p.
12818         (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
12819
12820 2013-01-09  Mike Stump  <mikestump@comcast.net>
12821
12822         * dse.c (record_store): Remove unnecessary assert.
12823
12824 2013-01-09  Jan Hubicka  <jh@suse.cz>
12825
12826         PR tree-optimization/55569
12827         * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
12828         * cfgloop.h (scale_loop_profile): Likewise.
12829
12830 2013-01-09  Jan Hubicka  <jh@suse.cz>
12831
12832         PR lto/45375
12833         * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
12834         functions.
12835         * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
12836
12837 2013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
12838
12839         PR middle-end/55114
12840         * expr.h (maybe_emit_group_store): Declare.
12841         * expr.c (maybe_emit_group_store): New function.
12842         * builtins.c (expand_builtin_int_roundingfn): Call it.
12843         (expand_builtin_int_roundingfn_2): Likewise.
12844
12845 2013-01-09  Vladimir Makarov  <vmakarov@redhat.com>
12846
12847         PR rtl-optimization/55829
12848         * lra-constraints.c (match_reload): Add code for absent output.
12849         (curr_insn_transform): Add code for reloads of matched inputs
12850         without output.
12851
12852 2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
12853
12854         * config/i386/sse.md (*vec_interleave_highv2df): Change mode
12855         attribute of movddup insn to DF.
12856         (*vec_interleave_lowv2df): Ditto.
12857         (vec_dupv2df): Ditto.
12858
12859 2013-01-09  Jan Hubicka  <jh@suse.cz>
12860
12861         PR tree-optimiation/55875
12862         * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
12863         EVERY_ITERATION parameter.
12864         (number_of_iterations_exit): Check if exit is executed every iteration.
12865         (idx_infer_loop_bounds): Similarly here.
12866         (n_of_executions_at_most): Simplify
12867         to only test for cases where statement is dominated by the
12868         particular bound; handle correctly the "postdominance" test.
12869         (scev_probably_wraps_p): Use max loop iterations info
12870         as a global bound first.
12871
12872 2013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
12873             Nick Clifton  <nickc@redhat.com>
12874
12875         * config/v850/v850.md (cbranchsf4): New pattern.
12876         (cstoresf4): New pattern.
12877         (cbranchdf4): New pattern.
12878         (cstoredf4): New pattern.
12879         (movsicc): Disallow floating point comparisons.
12880         (cmpsf_le_insn): Fix order of operators.
12881         (cmpsf_lt_insn): Likewise.
12882         (cmpsf_eq_insn): Likewise.
12883         (cmpdf_le_insn): Likewise.
12884         (cmpdf_lt_insn): Likewise.
12885         (cmpdf_eq_insn): Likewise.
12886         (cmpsf_ge_insn): Use LE comparison.
12887         (cmpdf_ge_insn): Likewise.
12888         (cmpsf_gt_insn): Use LT comparison.
12889         (cmpdf_gt_insn): Likewise.
12890         (cmpsf_ne_insn): Delete pattern.
12891         (cmpdf_ne_insn): Delete pattern.
12892         * config/v850/v850.c (v850_gen_float_compare): Use
12893         gen_cmpdf_eq_insn for NE comparison.
12894         (v850_float_z_comparison_operator)
12895         (v850_float_nz_comparison_operator): Move from here ...
12896         * config/v850/predicates.md: ... to here.  Move GT and GE
12897         comparisons into v850_float_z_comparison_operator.
12898         * config/v850/v850-protos.h (v850_float_z_comparison_operator):
12899         Delete prototype.
12900         (v850_float_nz_comparison_operator): Likewise.
12901
12902 2013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12903
12904         * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
12905         with calls to gen_insvsi/gen_insvdi.
12906
12907 2013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12908
12909         * config/i386/i386.c (initial_ix86_tune_features): Set up
12910         X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
12911
12912 2013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
12913             Jakub Jelinek  <jakub@redhat.com>
12914
12915         PR tree-optimization/48189
12916         * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
12917         If nitercst is 0, don't predict the exit edge.
12918
12919 2013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
12920
12921         * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
12922         in asm_fprintf with reg_names.
12923         (aarch64_print_operand_address): Likewise.
12924         (aarch64_return_addr): Likewise.
12925         * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
12926
12927 2013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12928
12929         * config/pa/pa.h (VAL_U6_BITS_P): Define.
12930         (INT_U6_BITS): Likewise.
12931         * config/pa/predicates.md (uint6_operand): New predicate.
12932         (shift5_operand, shift6_operand): Likewise.
12933         * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
12934         arith32_operand.
12935         (lshrdi3): Use shift6_operand.
12936         (shrpsi4, shrpdi4): New insn patterns.
12937         (extzv): Delete expander.
12938         (extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
12939         predicates in unamed zero extract patterns.  Tighten common constraint.
12940         (extv): Delete expander.
12941         (extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
12942         predicates in unamed sign extract patterns.  Tighten common constraint.
12943         (insv): Delete expander.
12944         (insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
12945         predicates in unamed insert patterns.  Tighten common constraint.
12946         Change uint32_operand predicate to uint6_operand predicate in unamed
12947         DImode pattern to insert constant values of type 1...1xxxx.
12948
12949 2013-01-04  Jan Hubicka  <jh@suse.cz>
12950
12951         PR tree-optimization/55823
12952         * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
12953         issue.
12954
12955 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
12956             Uros Bizjak  <ubizjak@gmail.com>
12957
12958         PR rtl-optimization/55845
12959         * df-problems.c (can_move_insns_across): Stop scanning at
12960         volatile_insn_p source instruction or give up if
12961         across_from .. across_to range contains any volatile_insn_p
12962         instructions.
12963
12964 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
12965
12966         * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
12967         * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
12968         Declare.
12969         * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
12970         aarch64_simd_make_constant, aarch64_expand_vector_init): New.
12971
12972 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
12973
12974         PR fortran/55341
12975         * asan.c (asan_clear_shadow): New function.
12976         (asan_emit_stack_protection): Use it.
12977
12978 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
12979
12980         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
12981         aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
12982         with tab instead of space.
12983
12984 2013-01-08  Nick Clifton  <nickc@redhat.com>
12985
12986         * config/rl78/rl78.c (rl78_expand_prologue): Always select
12987         register bank 0 at the start of an interrupt handler.
12988         * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
12989         MDBH registers.
12990
12991 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
12992
12993         * config/aarch64/aarch64-simd.md
12994         (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
12995         (aarch64_simd_bsl): Likewise.
12996         (aarch64_vcond_internal<mode>): Likewise.
12997         (vcond<mode><mode>): Likewise.
12998         (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
12999         * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
13000
13001 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
13002
13003         * config/aarch64/aarch64-builtins.c
13004         (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
13005
13006 2013-01-08  Martin Jambor  <mjambor@suse.cz>
13007
13008         PR debug/55579
13009         * tree-sra.c (analyze_access_subtree): Return true also after
13010         potentially creating a debug-only replacement.
13011
13012 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
13013
13014         PR middle-end/55890
13015         * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
13016
13017         PR tree-optimization/54120
13018         * tree-vrp.c (range_fits_type_p): Don't allow
13019         src_precision < precision from signed vr to unsigned_p
13020         if vr->min or vr->max is negative.
13021         (simplify_float_conversion_using_ranges): Test can_float_p
13022         against CODE_FOR_nothing.
13023
13024 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
13025             Richard Biener  <rguenther@suse.de>
13026
13027         PR middle-end/55851
13028         * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
13029         types instead of just INTEGER_TYPE types.
13030
13031 2013-01-07  Mark Kettenis  <kettenis@openbsd.org>
13032
13033         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
13034         TF_SIZE): Define.
13035
13036 2013-01-07  Steve Ellcey  <sellcey@mips.com>
13037
13038         PR target/42661
13039         * config/mips/mips.opt: Change mad to mmad to match documentation.
13040
13041 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13042
13043         PR target/55897
13044         * doc/extend.texi (AVR Named Address Spaces): __memx goes into
13045         .progmemx.data now.
13046
13047 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13048
13049         PR target/55897
13050         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
13051         (avr_addrspace_t): Add .section_name field.
13052         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
13053         array size.
13054         (avr_addrspace): Same.  Initialize .section_name.  Remove last
13055         NULL entry.  Put __memx into .progmemx.data.
13056         (progmem_section_prefix): Remove.
13057         (avr_asm_init_sections): No need to initialize progmem_section.
13058         (avr_asm_named_section): Use avr_addrspace[].section_name to get
13059         section name prefix.
13060         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
13061         retrieve the progmem section.
13062         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
13063         boundary to run over avr_addrspace[].
13064         (avr_register_target_pragmas): Ditto.
13065
13066 2013-01-06  Jakub Jelinek  <jakub@redhat.com>
13067
13068         * varasm.c (output_constant_def_contents): For asan_protect_global
13069         protected strings, adjust DECL_ALIGN if needed, before testing for
13070         anchored symbols.
13071         (place_block_symbol): Adjust size for asan protected STRING_CSTs if
13072         TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
13073         normal decls.
13074         (output_object_block): For asan protected decls, emit asan padding
13075         after their contents.
13076         * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
13077         (asan_finish_file): Test it here instead.
13078
13079 2013-01-07  Nick Clifton  <nickc@redhat.com>
13080             Matthias Klose  <doko@debian.org>
13081             Doug Kwan  <dougkwan@google.com>
13082             H.J. Lu  <hongjiu.lu@intel.com>
13083
13084         PR driver/55470
13085         * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
13086
13087         * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
13088
13089         * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
13090
13091         * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
13092
13093         * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
13094
13095 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13096
13097         PR target/54461
13098         * doc/install.texi (Cross-Compiler-Specific Options): Document
13099         --with-avrlibc.
13100
13101 2013-01-07  Tejas Belagod  <tejas.belagod@arm.com>
13102
13103         * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
13104         vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
13105         vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
13106         vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
13107         vqmovun_high_s64): Fix source operand number and update copyright.
13108
13109 2013-01-07  Richard Biener  <rguenther@suse.de>
13110
13111         PR middle-end/55890
13112         * gimple.h (gimple_call_builtin_p): New overload.
13113         * gimple.c (validate_call): New function.
13114         (gimple_call_builtin_p): Likewise.
13115         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13116         Use gimple_call_builtin_p.
13117         (find_func_clobbers): Likewise.
13118         * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
13119         (strlen_optimize_stmt): Likewise.
13120
13121 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
13122
13123         * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
13124         (vld1q_dup_*): Likewise.
13125         (vld1_*): Likewise.
13126         (vld1q_*): Likewise.
13127         (vld1_lane_*): Likewise.
13128         (vld1q_lane_*): Likewise.
13129
13130 2013-01-07  Richard Biener  <rguenther@suse.de>
13131
13132         * lto-streamer.h (LTO_minor_version): Bump to 2.
13133
13134 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
13135
13136         * config/aarch64/aarch64-protos.h
13137         (aarch64_const_double_zero_rtx_p): Rename to...
13138         (aarch64_float_const_zero_rtx_p): ...this.
13139         (aarch64_float_const_representable_p): New.
13140         (aarch64_output_simd_mov_immediate): Likewise.
13141         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
13142         move immediate case.
13143         * config/aarch64/aarch64.c
13144         (aarch64_const_double_zero_rtx_p): Rename to...
13145         (aarch64_float_const_zero_rtx_p): ...this.
13146         (aarch64_print_operand): Allow printing of new constants.
13147         (aarch64_valid_floating_const): New.
13148         (aarch64_legitimate_constant_p): Check for valid floating-point
13149         constants.
13150         (aarch64_simd_valid_immediate): Likewise.
13151         (aarch64_vect_float_const_representable_p): New.
13152         (aarch64_float_const_representable_p): Likewise.
13153         (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
13154         (aarch64_output_simd_mov_immediate): New.
13155         * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
13156         (*movdf_aarch64): Likewise.
13157         * config/aarch64/constraints.md (Ufc): New.
13158         (Y): call aarch64_float_const_zero_rtx.
13159         * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
13160
13161 2013-01-07  Richard Biener  <rguenther@suse.de>
13162
13163         PR tree-optimization/55888
13164         PR tree-optimization/55862
13165         * tree-ssa-pre.c (phi_translate_1): Revert previous change.
13166         (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
13167         not if it is contained therein.
13168
13169 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13170
13171         * config/avr/t-avr: Typo.
13172
13173 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
13174
13175         PR55243
13176         * config/avr/t-avr: Don't automatically rebuild
13177         $(srcdir)/config/avr/t-multilib
13178         $(srcdir)/config/avr/avr-tables.opt
13179         $(srcdir)/doc/avr-mmcu.texi
13180         (avr-mcus): New phony target to build them on request.
13181         (s-avr-mlib, s-avr-mmcu-texi): Remove.
13182         * avr/avr-mcus.def: Adjust comments.
13183
13184 2013-01-07  Uros Bizjak  <ubizjak@gmail.com>
13185
13186         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
13187
13188 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13189
13190         * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
13191
13192 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13193
13194         * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
13195
13196 2013-01-05  David Edelsohn  <dje.gcc@gmail.com>
13197
13198         * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
13199         to generate profiling.
13200         * config/rs6000/aix64.h (LIB_SPEC): Same.
13201
13202 2013-01-04  Andrew Pinski  <apinski@cavium.com>
13203
13204         * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
13205         New function.
13206         (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13207
13208 2013-01-04  Uros Bizjak  <ubizjak@gmail.com>
13209
13210         * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
13211         unconditionally.
13212         (ix86_expand_move): Ditto.
13213         (ix86_zero_extend_to_Pmode): Ditto.
13214         (ix86_expand_call): Ditto.
13215         (ix86_expand_special_args_builtin): Ditto.
13216         (ix86_expand_builtin): Ditto.
13217
13218 2013-01-04  Richard Biener  <rguenther@suse.de>
13219
13220         PR tree-optimization/55862
13221         * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
13222         translating them through PHI nodes.
13223
13224 2013-01-04  Martin Jambor  <mjambor@suse.cz>
13225
13226         PR tree-optimization/55755
13227         * tree-sra.c (sra_modify_assign): Do not check that an access has no
13228         children when trying to avoid producing a VIEW_CONVERT_EXPR.
13229
13230 2013-01-04  Marek Polacek  <polacek@redhat.com>
13231
13232         PR middle-end/55859
13233         * opts.c (default_options_optimization): Clarify error message.
13234
13235 2013-01-04  Richard Biener  <rguenther@suse.de>
13236
13237         PR middle-end/55863
13238         * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
13239         reassociation.
13240
13241 2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13242
13243         PR target/53789
13244         * config/pa/pa.md (movsi): Revert previous change.
13245         * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
13246         references.
13247
13248 2013-01-03  Richard Henderson  <rth@redhat.com>
13249
13250         * config/i386/i386.c (ix86_expand_move): Always assign to op1
13251         after eliminating TLS symbols.
13252
13253 2013-01-03  Marc Glisse  <marc.glisse@inria.fr>
13254
13255         PR bootstrap/50167
13256         * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
13257         * graphite-poly.c (debug_gmp_value): Likewise.
13258
13259 2013-01-03  Uros Bizjak  <ubizjak@gmail.com>
13260
13261         PR target/55712
13262         * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
13263         selected code model, define __code_mode_small__, __code_model_medium__,
13264         __code_model_large__, __code_model_32__ or __code_model_kernel__.
13265         * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
13266         xchg temporary register with %k.  Declare temporary register as
13267         early clobbered.
13268         [__x86_64__]: For medium and large code models, preserve %rbx register.
13269
13270 2013-01-03  Richard Biener  <rguenther@suse.de>
13271
13272         * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
13273         (dump_subscript): Adjust.
13274         (finalize_ddr_dependent): Do not dump redundant info.
13275         (analyze_siv_subscript): Adjust.
13276         (subscript_dependence_tester): Likewise.
13277         (compute_affine_dependence): Likewise.
13278
13279 2013-01-03  Richard Biener  <rguenther@suse.de>
13280
13281         Revert
13282         2013-01-03  Richard Biener  <rguenther@suse.de>
13283
13284         PR tree-optimization/55857
13285         * tree-vect-stmts.c (vectorizable_load): Do not setup
13286         re-alignment for invariant loads.
13287
13288         2013-01-02  Richard Biener  <rguenther@suse.de>
13289
13290         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
13291         invariant load do not generate a vector load from the scalar location.
13292
13293 2013-01-03  Richard Biener  <rguenther@suse.de>
13294
13295         * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
13296         for not vectorizing.
13297         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
13298         not build INDIRECT_REFs, call get_name once only.
13299         (vect_create_data_ref_ptr): Likewise.  Dump base object kind
13300         based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
13301
13302 2013-01-03  Richard Biener  <rguenther@suse.de>
13303
13304         PR tree-optimization/55857
13305         * tree-vect-stmts.c (vectorizable_load): Do not setup
13306         re-alignment for invariant loads.
13307
13308 2013-01-03  Richard Biener  <rguenther@suse.de>
13309
13310         PR lto/55848
13311         * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
13312         prefer a built-in decl.
13313
13314 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
13315
13316         * gcc.c (process_command): Update copyright notice dates.
13317         * gcov.c (print_version): Likewise.
13318         * gcov-dump.c (print_version): Likewise.
13319
13320         PR rtl-optimization/55838
13321         * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
13322         iv0.step, iv1.step and step.
13323
13324 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
13325             Marc Glisse  <marc.glisse@inria.fr>
13326
13327         PR tree-optimization/55832
13328         * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
13329         ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
13330         integer_{one,zero}_node.
13331
13332 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
13333
13334         PR debug/54402
13335         * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
13336         * var-tracking.c (reverse_op): Don't add reverse ops to
13337         VALUEs that have already
13338         PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
13339
13340 2013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
13341
13342         * doc/contrib.texi: Note years as release manager for Mark Mitchell.
13343
13344 2013-01-02  Teresa Johnson  <tejohnson@google.com>
13345
13346         * dumpfile.c (dump_loc): Print filename with location.
13347         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
13348         new location_t parameter to emit complete unroll message with
13349         new dump framework.
13350         (canonicalize_loop_induction_variables): Compute loops location
13351         and pass to try_unroll_loop_completely.
13352         * loop-unroll.c (report_unroll_peel): New function.
13353         (peel_loops_completely): Use new dump format with location
13354         for main dumpfile message, and invoke report_unroll_peel on success.
13355         (decide_unrolling_and_peeling): Ditto.
13356         (decide_peel_once_rolling): Remove old dumpfile message subsumed
13357         by report_unroll_peel.
13358         (decide_peel_completely): Ditto.
13359         (decide_unroll_constant_iterations): Ditto.
13360         (decide_unroll_runtime_iterations): Ditto.
13361         (decide_peel_simple): Ditto.
13362         (decide_unroll_stupid): Ditto.
13363         * cfgloop.c (get_loop_location): New function.
13364         * cfgloop.h (get_loop_location): Declare.
13365
13366 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
13367
13368         * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
13369         NULL.
13370
13371 2013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13372
13373         PR middle-end/55198
13374         * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
13375         BLKmode objects when EXPAND_MEMORY is specified.
13376
13377 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
13378
13379         * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
13380         in loop predicate.
13381         (fold_builtin_cpu): Do not share cpu model decls across statements.
13382
13383 2013-01-02  Jason Merrill  <jason@redhat.com>
13384
13385         PR c++/55804
13386         * tree.c (build_array_type_1): Revert earlier change.
13387
13388 2013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>
13389
13390         * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
13391         "cortex-a57".
13392         * config/aarch64/aarch64-tune.md: Re-generate.
13393
13394 2013-01-02  Richard Biener  <rguenther@suse.de>
13395
13396         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
13397         invariant load do not generate a vector load from the scalar location.
13398
13399 2013-01-02  Richard Biener  <rguenther@suse.de>
13400
13401         PR bootstrap/55784
13402         * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
13403         * configure: Regenerate.
13404
13405 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
13406
13407         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
13408         (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
13409         (expand_builtin_int_roundingfn_2): Keep the original target around
13410         for the fallback case.
13411
13412 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
13413
13414         * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
13415         to be clear for sign changes.
13416
13417 2013-01-01  Jan Hubicka  <jh@suse.cz>
13418
13419         * ipa-inline-analysis.c: Fix formatting.
13420
13421 2013-01-01  Jakub Jelinek  <jakub@redhat.com>
13422
13423         PR tree-optimization/55831
13424         * tree-vect-loop.c (get_initial_def_for_induction): Use
13425         gsi_after_labels instead of gsi_start_bb.
13426 \f
13427 Copyright (C) 2013 Free Software Foundation, Inc.
13428
13429 Copying and distribution of this file, with or without modification,
13430 are permitted in any medium without royalty provided the copyright
13431 notice and this notice are preserved.