7ecc132082ef241e0cc3bf52658add3158841cdb
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2012-06-09  Hans-Peter Nilsson  <hp@axis.com>
2
3         Fix CRIS build errors with --enable-build-with-cxx.
4         * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
5         variable "and" to "andop".
6         * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
7         temporary variable for memory model, passing C++-type-correct
8         parameter type to expand_mem_thread_fence.
9         ("atomic_compare_and_swap<mode>"): Ditto.
10
11 2012-06-09  Richard Henderson  <rth@redhat.com>
12
13         PR c++/53602
14         * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
15         (pass_jump): Rename from pass_jump2.
16         (execute_jump2, pass_jump2): New.
17         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
18         perform cfg cleanup here.  Move the test of PUSH_ROUNDING
19         and ACCUMULATE_OUTGOING_ARGS test...
20         (gate_handle_stack_adjustments): ... here.
21         * passes.c (init_optimization_passes): Update for pass_jump2 rename.
22         Place new pass_jump2 after pass_stack_adjustments.
23         * tree-pass.h (pass_jump): Declare.
24
25 2012-06-09  Kenneth Zadeck <zadeck@naturalbridge.com>
26
27         * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
28         count trucation.
29
30 2012-06-08  Richard Henderson  <rth@redhat.com>
31
32         PR c++/53602
33         * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
34         note to a clobber insn when no other insn is available.
35
36 2012-06-08  Georg-Johann Lay  <avr@gjlay.de>
37
38         * config/avr/avr.c (avr_case_values_threshold): Return 7.
39
40 2012-06-07  Andreas Schwab  <schwab@linux-m68k.org>
41
42         * genhooks.c (main): Set progname.
43         (emit_documentation): Remove variable found_start, always bail out
44         when a place is missing.
45         * doc/tm.texi.in (C++ ABI): Add @hook
46         TARGET_CXX_DECL_MANGLING_CONTEXT.
47
48 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
49
50         PR middle-end/53580
51         * omp-low.c (scan_omp): Change first argument to
52         gimple_seq *, call walk_gimple_seq_mod instead of
53         walk_gimple_seq.
54         (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
55         scan_omp_for, scan_omp_sections, scan_omp_single,
56         execute_lower_omp): Adjust callers.
57         (scan_omp_1_stmt): Likewise.  If check_omp_nesting_restrictions
58         returns false, replace stmt with GIMPLE_NOP.
59         (check_omp_nesting_restrictions): Instead of issuing warnings,
60         issue errors and return false if any errors were reported.
61
62 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
63
64         * doc/invoke.texi (fconserve-space): Remove documentation.
65
66 2012-06-06  Edmar Wienskoski  <edmar@freescale.com>
67
68         * config/rs6000/rs6000-tables.opt: Regenerated.
69
70 2012-06-06  Richard Guenther  <rguenther@suse.de>
71
72         PR tree-optimization/53081
73         * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
74         (adjacent_dr_p): ... this and make it work for reads, too.
75         * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
76         (struct partition_s): Change main_stmt to main_dr, add
77         secondary_dr member.
78         (build_size_arg_loc): Change to date data-reference and not
79         gimplify here.
80         (build_addr_arg_loc): New function split out from ...
81         (generate_memset_builtin): ... here.  Use it and simplify.
82         (generate_memcpy_builtin): New function.
83         (generate_code_for_partition): Adjust.
84         (classify_partition): Streamline pattern detection.  Detect
85         memcpy.
86         (ldist_gen): Adjust.
87         (tree_loop_distribution): Adjust seed statements for memcpy
88         recognition.
89
90 2012-06-06  Matt Turner  <mattst88@gmail.com>
91
92         * config/arm/mmintrin.h (_mm_empty): New.
93          (_m_empty): New.
94
95 2012-06-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
96
97         * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
98         * common.opt (fsched-pressure-algorithm=): Remove.
99         * flag-types.h (sched_pressure_algorithm): Move to...
100         * sched-int.h (sched_pressure_algorithm): ...here.
101         * params.def (sched-pressure-algorithm): New param.
102         * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
103         * common/config/s390/s390-common.c (s390_option_optimization_table):
104         Remove OPT_fsched_pressure_algorithm_ entry.
105         * config/s390/s390.c (s390_option_override): Set a default value for
106         PARAM_SCHED_PRESSURE_ALGORITHM.
107
108 2012-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
109
110         PR target/53487
111         * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
112         doing an unsigned compare, make sure the second argument is not a
113         negative constant.
114         (rs6000_emit_cmove): Don't allow floating point comparisons when
115         generating ISEL moves.
116
117 2012-06-05  Edmar Wienskoski  <edmar@freescale.com>
118
119         * config/rs6000/e5500.md: New file.
120         * config/rs6000/e6500.md: New file.
121         * config/rs6000/rs6000.c (processor_costs): Add new costs for
122         e5500 and e6500.
123         (rs6000_option_override_internal): Altivec and Spe options not
124         allowed with e5500. Spe options not allowed with e6500. Increase
125         move inline limit for e5500 and e6500. Disable string instructions
126         for e5500 and e6500. Enable branch targets alignment for e5500 and
127         e6500. Initialize rs6000_cost for e5500 and e6500.
128         (rs6000_adjust_cost): Add extra scheduling cycles between compare
129         and brnach for e5500 and e6500.
130         (rs6000_issue_rate): Set issue rate for e5500 and e6500.
131         * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
132         e6500.
133         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
134         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
135         ppce6500.
136         Include e5500.md and e6500.md.
137         * config/rs6000/rs6000-opt.h (processor_type): Add
138         PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
139         * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
140         (powerpc*-*-*): Add new cores e5500, e6500.
141         * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
142
143 2012-06-05  Richard Guenther  <rguenther@suse.de>
144
145         * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last
146         change.
147
148 2012-06-05  H.J. Lu  <hongjiu.lu@intel.com>
149
150         PR target/53575
151         * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
152         is used for x86_64-*-*.
153
154 2012-06-05  Richard Guenther  <rguenther@suse.de>
155
156         PR tree-optimization/30442
157         * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
158         vectorization stop analysis at the first stmt we cannot compute
159         a data-reference for instead of giving up completely.
160
161 2012-06-05  Richard Guenther  <rguenther@suse.de>
162
163         * tree-loop-distribution.c (struct partition_s): Add has_writes
164         member.
165         (partition_alloc): Initialize it.
166         (partition_has_writes): New function.
167         (rdg_flag_uses): Adjust.
168         (rdg_flag_vertex): Likewise.
169         (rdg_flag_vertex_and_dependent): Likewise.
170         (rdg_flag_loop_exits): Likewise.
171         (build_rdg_partition_for_component): Likewise.
172         (rdg_build_partitions): Likewise.
173
174 2012-06-05  Richard Guenther  <rguenther@suse.de>
175
176         PR tree-optimization/53081
177         * tree-loop-distribution.c (generate_memset_builtin): Handle all
178         kinds of byte-sized stores.
179         (classify_partition): Likewise.
180         (tree_loop_distribution): Adjust seed statements used for
181         !flag_tree_loop_distribution.
182
183 2012-06-05  Alan Modra  <amodra@gmail.com>
184
185         * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
186         (rs6000_emit_prologue): Ensure register used for inline saves
187         of vector regs is not the static chain register.  Revise comment.
188
189 2012-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
190
191         * doc/md.texi (Standard Pattern Names For Generation): Document
192         sincos pattern.
193
194 2012-06-04  H.J. Lu  <hongjiu.lu@intel.com>
195
196         PR bootstrap/53555
197         * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
198
199 2012-06-04  Jason Merrill  <jason@redhat.com>
200
201         * dwarf2out.c (is_unit_die): New.
202         (copy_declaration_context, copy_ancestor_tree): Use it.
203         (copy_decls_walk): Likewise.
204
205 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
206
207         PR c++/53524
208         * doc/invoke.texi (Wenum-compare): Update documentation.
209
210 2012-06-04  Dodji Seketeli  <dodji@redhat.com>
211
212         PR preprocessor/53463
213         * parser.c (cp_parser_assignment_expression): Use the location
214         for the '=' as the default location for the expression.
215
216 2012-06-04  Edmar Wienskoski  <edmar@freescale.com>
217
218         PR target/53559
219         * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
220         operands.
221         (altivec_stvlxl): Ditto.
222         (altivec_stvrx): Ditto.
223         (altivec_stvrxl): Ditto.
224
225 2012-06-04  Vladimir Makarov  <vmakarov@redhat.com>
226
227         * ira-int.h (struct target_ira_int): Add member
228         x_ira_uniform_class_p.
229         (ira_uniform_class_p): New macro.
230
231         * ira.c (setup_uniform_class_p): New function.
232         (setup_allocno_and_important_classes): Call the function.
233         (print_unform_and_important_classes): New function.
234         (print_classes): Rename to print_translated_classes.
235         (ira_debug_allocno_classes): Add call of
236         print_unform_and_important_classes.
237
238         * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
239         classes instead of pressure classes.
240
241 2012-06-04  Aldy Hernandez  <aldyh@redhat.com>
242
243         PR middle-end/47530
244         * trans-mem.c (expand_block_edges): Do not skip the first
245         statement when resetting the BB.
246
247 2012-06-04  Richard Guenther  <rguenther@suse.de>
248
249         * tree-data-ref.c (stores_from_loop): Remove.
250         (stmt_with_adjacent_zero_store_dr_p): Likewise.
251         (stores_zero_from_loop): Likewise.
252         * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
253         stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
254         (adjacent_store_dr_p): New function.
255         * tree-loop-distribution.c (generate_memset_builtin): Pass
256         the RDG, use the already available data-reference.
257         (generate_code_for_partition): Pass down RDG.
258         (classify_partition): Inline parts of the former
259         stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
260         (ldist_gen): Remember if there was any detected builtin and
261         do less work if not and flag_tree_loop_distribution is not set.
262         (tree_loop_distribution): Inline and fuse stores_from_loop
263         and stores_zero_from_loop here.
264
265 2012-06-04  Richard Guenther  <rguenther@suse.de>
266
267         PR middle-end/53471
268         * dwarf2out.c (dwarf2out_finish): If generating LTO do not
269         create new assembler names.
270
271 2012-06-04  Richard Guenther  <rguenther@suse.de>
272
273         * tree-data-ref.c (struct rdg_vertex_info): Remove.
274         (rdg_vertex_for_stmt): Simplify using gimple_uid.
275         (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
276         hashtable.   Record stmt data-references.
277         (hash_stmt_vertex_info): Remove.
278         (eq_stmt_vertex_info): Likewise.
279         (hash_stmt_vertex_del): Likewise.
280         (build_empty_rdg): Simplify.
281         (build_rdg): Adjust.
282         (free_rdg): Likewise.
283         (ref_base_address): Remove.
284         (have_similar_memory_accesses): Likewise.
285         * tree-data-ref.h (create_rdg_vertices): Remove.
286         (struct rdg_vertex): Add datarefs member.
287         (RDGV_DATAREFS): New define.
288         (RDG_DATAREFS): Likewise.
289         (have_similar_memory_accesses): Remove.
290         (rdg_has_similar_memory_accesses): Likewise.
291         * tree-loop-distribution.c (ref_base_address): Re-implement here.
292         (similar_memory_accesses): Re-implement using existing data-references.
293         (tree_loop_distribution): Initialize stmt uids for the stmt to
294         RDG index mapping.
295         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
296         access stmt vinfo for stmts in loop.
297
298 2012-06-04  Andreas Schwab  <schwab@linux-m68k.org>
299
300         PR target/53461
301         * config/m68k/m68k.md ("tablejump"): Fix check for
302         CASE_VECTOR_PC_RELATIVE.
303
304 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
305
306         * output.h (merge_weak, assemble_alias,
307         initializer_constant_valid_p,
308         initializer_constant_valid_for_bitfield_p): Move protos from here...
309         * tree.h: ... to here.
310         * cgraphclones.c: Do not include output.h.
311         * gimplify.c: Likewise.
312         * reload.c: Likewise.
313         * recog.c: Likewise.
314         * tree-ssa-loop-ivopts.c: Likewise.
315         * tree-switch-conversion.c: Likewise.
316         * c-parser.c: Likewise.
317         * c-typeck.c: Likewise.
318         * Makefile.in: Fix dependencies.
319
320 2012-06-04  Georg-Johann Lay  <avr@gjlay.de>
321
322         PR target/46261
323         * config/avr/avr-stdint.h: New file.
324         * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
325         newlib-stdint.h
326
327 2012-06-04  Jakub Jelinek  <jakub@redhat.com>
328
329         PR tree-optimization/53550
330         * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
331         is POINTER_TYPE_P, use sizetype as step type instead of type.
332
333 2012-06-04  Richard Guenther  <rguenther@suse.de>
334
335         * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
336         (ref_base_address_1): Likewise.
337         (remove_similar_memory_refs): Likewise.
338         * tree-data-ref.h (remove_similar_memory_refs): Remove.
339         * tree-loop-distribution.c (classify_partition): Do not classify
340         as builtin if -ftree-loop-distribute-patterns is not enabled.
341         (fuse_partitions_with_similar_memory_accesses): Inline ...
342         (ldist_gen): ... here.  Fuse all non-builtin partitions if
343         -ftree-loop-distribution is not enabled.  Properly return
344         the number of created partitions.  Do not update SSA form here
345         but ...
346         (tree_loop_distribution): ... once here for the whole function.
347         Only walk innermost loops, constrain loops we consider here
348         further.  Do not call remove_similar_memory_refs.
349         (distribute_loop): Do not check number of loop nodes here.
350
351 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
352
353         * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
354
355 2012-06-03  Martin Jambor  <mjambor@suse.cz>
356
357         * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
358         (ipa_get_jf_known_type_base_type): Likewise.
359         (ipa_get_jf_known_type_component_type): Likewise.
360         (ipa_get_jf_constant): Likewise.
361         (ipa_get_jf_pass_through_formal_id): Likewise.
362         (ipa_get_jf_pass_through_operation): Likewise.
363         (ipa_get_jf_ancestor_offset): Likewise.
364         (ipa_get_jf_ancestor_type): Likewise.
365         (ipa_get_jf_ancestor_formal_id): Likewise.
366         (ipa_get_jf_member_ptr_pfn): Likewise.
367         * ipa-prop.c (ipa_set_jf_known_type): New function.
368         (ipa_set_jf_constant): Likewise.
369         (ipa_set_jf_simple_pass_through): Likewise.
370         (ipa_set_jf_arith_pass_through): Likewise.
371         (ipa_set_ancestor_jf): Likewise.
372         (fill_member_ptr_cst_jump_function): Moved up and renamed to
373         ipa_set_jf_member_ptr_cst.
374         (detect_type_change_1): Use the new jump function creation functions.
375         (compute_complex_assign_jump_func): Likewise.
376         (compute_complex_ancestor_jump_func): Likewise.
377         (compute_known_type_jump_func): Likewise.
378         (compute_scalar_jump_functions): Likewise.
379         (compute_pass_through_member_ptrs): Likewise.
380         (determine_cst_member_ptr): Likewise.
381         (combine_known_type_and_ancestor_jfs): Likewise.
382         (try_make_edge_direct_simple_call): Likewise.
383         (try_make_edge_direct_virtual_call): Likewise.
384         (update_indirect_edges_after_inlining): Likewise.
385         * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
386         access functions.  Incorporat NOP_EXPR and BINFO handling from its
387         callers.
388         (ipa_get_jf_ancestor_result): Likewise.  Incorporate handling BINFOs
389         which was in its callers.
390         (ipa_value_from_jfunc): Use jump function access functions.  Some
391         functionality moved to functions above.
392         (propagate_vals_accross_ancestor): Likewise.
393         (propagate_vals_accross_pass_through): Use jump function access
394         functions.
395         (propagate_accross_jump_function): Likewise.
396         * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
397         access functions.
398         (inline_merge_summary): Likewise.
399
400 2012-06-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
401
402         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
403         * config/pa/pa.c (pa_attr_length_millicode_call): Use
404         MAX_PCREL17F_OFFSET instead of fixed offset.
405         (pa_attr_length_call): Likewise.
406         (pa_attr_length_indirect_call): Likewise.
407
408 2012-06-03  Oleg Endo  <olegendo@gcc.gnu.org>
409
410         PR target/53512
411         * sh.opt (mfsca, mfsrra): New options.
412         * sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA condition.
413         (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
414         (sinssf2, cossf2): Fold expanders to ...
415         (sincossf3): ... this new expander.  Use TARGET_FPU_ANY and
416         TARGET_FSCA condition.
417         * sh.c (sh_option_override): Handle TARGET_FSRRA and TARGET_FSCA.
418         * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
419         -mno-fsca, -mfsrra, -mno-fsrra.
420
421 2012-06-03  Matt Turner  <mattst88@gmail.com>
422
423         * config/mips/4600.md (r4700_imul_si): New.
424         (r4700_imul_di): New.
425         (r4700_fmul_single): New.
426         (r4700_fmul_double): New.
427         * config/mips/mips-cpus.def: Add r4700.
428         * config/mips/mips.c: Likewise.
429         * config/mips/mips.md: Likewise.
430         * config/mips/mips-tables.opt: Regenerate.
431
432 2012-06-02  Steven Bosscher  <steven@gcc.gnu.org>
433
434         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
435         new function sparc_initial_elimination_offset.
436         * config/sparc/sparc.c (sparc_initial_elimination_offset): New
437         function.
438         * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
439         Prototype it.
440
441 2012-06-02  Kenneth Zadeck <zadeck@naturalbridge.com>
442
443         * expmed.c (expand_mult, choose_multiplier): Change "2 *
444         HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
445         * expr.c (convert_modes): Likewise.
446         * explow.c (plus_constant): Likewise.
447         * fixed-value.c (fixed_saturate1, fixed_saturate2)
448         (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
449         (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
450         (do_fixed_divide, do_fixed_divide, do_fixed_divide)
451         (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
452         (do_fixed_shift, fixed_convert, fixed_convert)
453         (fixed_convert_from_int, fixed_convert_from_int)
454         (fixed_convert_from_real): Likewise.
455         * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
456         (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
457         * varasm.c (output_constructor_bitfield): Likewise.
458         * tree-vrp.c (register_edge_assert_for_2): Likewise.
459         * double-int.c (rshift_double, lshift_double): Likewise.
460         * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int): Likewise.
461         * simplify-rtx.c (mode_signbit_p)
462         (simplify_const_unary_operation, simplify_binary_operation_1)
463         (simplify_immed_subreg): Likewise.
464         * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
465         * tree-vect-generic.c (build_replicated_const): Likewise.
466         * dbxout.c (stabstr_O): Likewise.
467         * emit-rtl.c (immed_double_int_const, immed_double_const)
468         (gen_lowpart_common, init_emit_once): Likewise.
469         * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
470         (widest_int_cst_value, upper_bound_in_type): Likewise.
471         * stor-layout.c (initialize_sizetypes, fixup_signed_type)
472         (fixup_unsigned_type): Likewise.
473         * real.c (real_to_integer2, real_from_integer): Likewise.
474         * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
475         (clz_loc_descriptor, mem_loc_descriptor): Likewise.
476
477 2012-06-01  Eric Botcazou  <ebotcazou@adacore.com>
478
479         PR middle-end/53501
480         * fold-const.c (fold_binary_loc): Refine previous change.
481
482 2012-06-01  Olivier Hainque  <hainque@adacore.com>
483
484         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
485         the "do {" part of the do-while(0) loop.
486
487 2012-06-01  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
488
489         * config/i386/i386.c (x86_sched_reorder): New function.
490         Added new function x86_sched_reorder.
491
492 2012-06-01  Richard Guenther  <rguenther@suse.de>
493
494         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
495         Handle PHIs.
496         (classify_partition): Likewise.
497
498 2012-06-01  Richard Guenther  <rguenther@suse.de>
499
500         * tree-loop-distribution.c (enum partition_kind): New enum.
501         (struct partition_s): Add kind and main_stmt members.
502         (partition_alloc): Initialize kind to PKIND_NORMAL.
503         (partition_builtin_p): New function.
504         (copy_loop_before): Remove failure path and assert instead.
505         (generate_loops_for_partition): Likewise.
506         (generate_memset_zero): Fold into ...
507         (generate_memset_builtin): ... this.
508         (classify_partition): New function with code from
509         can_generate_builtin and generate_builtin.
510         (generate_builtin): Remove.
511         (can_generate_builtin): Likewise.
512         (fuse_partitions_with_similar_memory_accesses): Call
513         partition_builtin_p instead of can_generate_builtin.
514         (rdg_build_partitions): Do not call
515         fuse_partitions_with_similar_memory_accesses here...
516         (ldist_gen): ... but here after classifying all partitions.
517         Remove failure path of generate_code_for_partition.
518         (generate_code_for_partition): Generate code according
519         to partition classification.
520
521 2012-06-01  Manuel López-Ibáñez  <manu@gcc.gnu.org>
522             Jonathan Wakely  <jwakely.gcc@gmail.com>
523
524         PR c++/50134
525         * doc/invoke.texi (Warning Options): Explain purpose and differences
526         between -Wmissing-prototypes and -Wmissing-declarations.
527
528 2012-06-01  Christian Bruel  <christian.bruel@st.com>
529
530         * gcc.c (save_switch): Add user_p parameter.
531         (read_specs): Likewise.
532         (set_specs): Likewise.
533         (validate_switches): Likewise.
534         (validate_switches_from_spec): Likewise.
535         (validate_all_switches): Pass on user_p parameter.
536         (struct spec_list): Add user_p field.
537         (struct switchstr): Add known field.
538         (save_switch): Add known parameter.
539         (INIT_STATIC_SPEC): Initialize user_p;
540         (driver_unknown_option_callbac): call save_switch if
541         OPT_SPECIAL_unknown.
542         (driver_handle_option): Propagate OPT_specs.
543         (do_spec_1): Set validated only if known.
544         (check_live_switch): Likewise.
545         (validate_switches): Set validated if known or user_spec.
546
547 2012-06-01  Hans-Peter Nilsson  <hp@axis.com>
548
549         Add CRIS atomic patterns for 1, 2, and 4 bytes.
550         * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
551         * config/cris/cris-protos.h: Declare it.
552         * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32] 
553         (TARGET_DEFAULT): Add alignment by 32.
554         [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
555         case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
556         TARGET_CPU_DEFAULT == 32. 
557         (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
558         * config/cris/cris.md: Include sync.md.  Avoid allocating specific
559         numbers by replacing the define_constants for all UNSPECs with the
560         equivalent define_c_enum construct.
561         * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
562         * config/cris/sync.md: New file.
563
564 2012-05-31  Matt Turner  <mattst88@gmail.com>
565
566         * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
567         (r4600_imul_di): New.
568         (r4600_idiv_si): Rename from r4600_idiv.
569         (r4600_idiv_di): New.
570
571 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
572
573         * output.h (__gcc_host_wide_int__): Move to hwint.h.
574         (decl_default_tls_model): Move to tree.h
575         (dump_file): Move to system.h.
576         (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
577         dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
578         dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
579         dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
580         dbxout_stab_value_zero, dbxout_stab_value_label_diff,
581         dbxout_stab_value_internal_label,
582         dbxout_stab_value_internal_label_diff): Move from here ...
583         * dbxout.h: ... to here.
584         * system.h (dump_file): Moved here from output.h.
585         * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
586         * tree.h (decl_default_tls_model): Moved here from output.h.
587         * varasm.c (default_stabs_asm_out_destructor,
588         default_stabs_asm_out_constructor): Move from here ...
589         * dbxout.c: ... to here.
590
591         * gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.
592
593         * collect2.h (dump_file): Rename to dump_ld_file.
594         * collect2.c: Likewise.
595         * tlink.c: Likewise.
596
597         * alias.c: Do not include output.h.
598         * auto-inc-dec.c: Likewise.
599         * bt-load.c: Likewise.
600         * caller-save.c: Likewise.
601         * cfg.c: Likewise.
602         * cfgbuild.c: Likewise.
603         * cfgcleanup.c: Likewise.
604         * cfglayout.c: Likewise.
605         * cfgloop.c: Likewise.
606         * cfgloopanal.c: Likewise.
607         * cfgloopmanip.c: Likewise.
608         * cfgrtl.c: Likewise.
609         * cgraph.c: Likewise.
610         * cgraphclones.c: Likewise.
611         * combine-stack-adj.c: Likewise.
612         * combine.c: Likewise.
613         * cprop.c: Likewise.
614         * cse.c: Likewise.
615         * cselib.c: Likewise.
616         * dbgcnt.c: Likewise.
617         * df-problems.c: Likewise.
618         * df-scan.c: Likewise.
619         * dojump.c: Likewise.
620         * fwprop.c: Likewise.
621         * gcse.c: Likewise.
622         * graph.c: Likewise.
623         * haifa-sched.c: Likewise.
624         * hw-doloop.c: Likewise.
625         * ipa-inline-transform.c: Likewise.
626         * ipa-pure-const.c: Likewise.
627         * ipa-reference.c: Likewise.
628         * ipa-utils.c: Likewise.
629         * ira-build.c: Likewise.
630         * ira-emit.c: Likewise.
631         * lcm.c: Likewise.
632         * loop-doloop.c: Likewise.
633         * loop-invariant.c: Likewise.
634         * loop-iv.c: Likewise.
635         * loop-unroll.c: Likewise.
636         * loop-unswitch.c: Likewise.
637         * lto-cgraph.c: Likewise.
638         * lto-section-in.c: Likewise.
639         * lto-streamer-in.c: Likewise.
640         * mcf.c: Likewise.
641         * mode-switching.c: Likewise.
642         * postreload-gcse.c: Likewise.
643         * postreload.c: Likewise.
644         * predict.c: Likewise.
645         * profile.c: Likewise.
646         * ree.c: Likewise.
647         * reg-stack.c: Likewise.
648         * regcprop.c: Likewise.
649         * regmove.c: Likewise.
650         * regstat.c: Likewise.
651         * reload1.c: Likewise.
652         * sched-ebb.c: Likewise.
653         * sel-sched-dump.c: Likewise.
654         * simplify-rtx.c: Likewise.
655         * stor-layout.c: Likewise.
656         * store-motion.c: Likewise.
657         * tracer.c: Likewise.
658         * tree-affine.c: Likewise.
659         * tree-cfg.c: Likewise.
660         * tree-cfgcleanup.c: Likewise.
661         * tree-dfa.c: Likewise.
662         * tree-into-ssa.c: Likewise.
663         * tree-nomudflap.c: Likewise.
664         * tree-optimize.c: Likewise.
665         * tree-pretty-print.c: Likewise.
666         * tree-profile.c: Likewise.
667         * tree-ssa-address.c: Likewise.
668         * tree-ssa-ccp.c: Likewise.
669         * tree-ssa-copy.c: Likewise.
670         * tree-ssa-dom.c: Likewise.
671         * tree-ssa-loop-ch.c: Likewise.
672         * tree-ssa-loop-im.c: Likewise.
673         * tree-ssa-loop-manip.c: Likewise.
674         * tree-ssa-loop-niter.c: Likewise.
675         * tree-ssa-loop-prefetch.c: Likewise.
676         * tree-ssa-loop-unswitch.c: Likewise.
677         * tree-ssa-loop.c: Likewise.
678         * tree-ssa-propagate.c: Likewise.
679         * tree-ssa-structalias.c: Likewise.
680         * tree-ssa-tail-merge.c: Likewise.
681         * tree-ssa-threadedge.c: Likewise.
682         * tree-ssa-threadupdate.c: Likewise.
683         * tree-ssa-uncprop.c: Likewise.
684         * tree-ssa-uninit.c: Likewise.
685         * tree-ssa.c: Likewise.
686         * value-prof.c: Likewise.
687         * var-tracking.c: Likewise.
688         * web.c: Likewise.
689
690         * config/m32r/m32r.c: Include dbxout.h.
691         * config/pa/pa.c: Likewise.
692         * config/rs6000/rs6000.c: Likewise.
693
694         * Makefile.in: Fix dependencies.
695         * config/rs6000/t-rs5000: Likewise.
696
697 2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
698
699         * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
700         * gimple.h (block_in_transaction): Check for flag_tm.
701
702 2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
703
704         PR tree-optimization/52558
705         * cfg.c (alloc_aux_for_edge): Fix comment.
706         (alloc_aux_for_edge): Remove static.
707         * basic-block.h (alloc_aux_for_edge): Protoize.
708         * tree-ssa-loop-im.c (execute_sm_if_changed): New.
709         (execute_sm_if_changed_flag): New.
710         (execute_sm_if_changed_flag_set): New.
711         (execute_sm): Do not generate data races unless requested.
712         (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
713         (tree_ssa_lim_finalize): Call free_aux_for_edges.
714         * gimple.h (block_in_transaction): New.
715         (gimple_in_transaction): Use block_in_transaction.
716
717 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
718
719         PR target/51345
720         * config/avr/avr.opt (-msp8): Document it.
721         * doc/invoke.texi (AVR Options): Ditto.  And document related
722         built-in macros.
723
724 2012-05-31   Diego Novillo  <dnovillo@google.com>
725
726        * configure.ac (CXX_FOR_BUILD): Define and substitute.
727        (BUILD_CXXFLAGS): Define and substitute.
728        * Makefile.in (BUILD_CXXFLAGS): Define.
729        (CXX_FOR_BUILD): Define.
730        (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
731        (LINKER_FOR_BUILD): Likewise.
732        (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
733        (BUILD_LINKERFLAGS): Likewise.
734        * configure: Regenerate.
735
736 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
737
738         * Makefile.in: Fix many dependencies.
739         * tree-profile.c: Don't include regs.h.
740         * tree-vectorizer.c: Don't include cfglayout.h.
741         * tree-vect-stmts.c: Likewise.
742         * tree-vect-slp.c: Likewise.
743         * tree-vect-loop.c: Likewise.
744         * reg-stack.c: Likewise.
745         * tree-ssa-loop-manip.c: Likewise.
746         * toplev.c: Likewise.
747         * varasm.c: Don't include cfglayout.h, basic-block.h,
748         and tree-iterator.h.
749         * tree-cfgcleanup.c: Don't include cfglayout.h.
750         * passes.c: Don't include cfglayout.h, dwarf2asm.h,
751         dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
752         * cgraphclones.c: Don't include plugin.h.
753
754 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
755
756         * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
757         (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
758         * doc/avr-mmcu.texi (svn:eol-style): Set to native.
759         
760 2012-05-31  Richard Guenther  <rguenther@suse.de>
761
762         * tree-loop-distribution.c (struct partition_s): New struct,
763         typedef and vector type.
764         (partition_alloc, partition_free): New functions.
765         (generate_loops_for_partition, generate_builtin,
766         generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
767         rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
768         build_rdg_partition_for_component, can_generate_builtin,
769         similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
770         rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
771         number_of_rw_in_partition, partition_contains_all_rw,
772         ldist_gen): Use partition_t instead of bitmap.
773
774 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
775
776         * config/avr/gen-avr-mmcu-texi.c: Sort MCUs. 
777         * doc/avr-mmcu.texi: Regenerate.
778         
779 2012-05-31  Richard Guenther  <rguenther@suse.de>
780
781         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
782         Use FOR_EACH_SSA_DEF_OPERAND.
783         (generate_builtin): Adjust.
784         (stmt_generated_in_another_partition): Remove.
785         (add_scalar_computations_to_partition): Likewise.
786         (rdg_build_partitions): Do not call
787         add_scalar_computations_to_partition.
788
789 2012-05-31  Eric Botcazou  <ebotcazou@adacore.com>
790
791         * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
792         double ints throughout.
793         * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
794         Check that the position of the field is representable as an integer.
795
796 2012-05-31  Richard Guenther  <rguenther@suse.de>
797
798         * tree-data-ref.c (dr_analyze_innermost): Properly convert
799         the MEM_REF offset to sizetype.
800
801 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
802
803         * doc/invoke.texi (AVR Options): Fix typos.
804
805 2012-05-31  Hans-Peter Nilsson  <hp@axis.com>
806
807         * config/cris/cris.h (CC1_SPEC): Pass through all -march=
808         and -mcpu= options.
809         (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
810         non-v32 into --march=v0_v10.
811
812 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
813
814         * ira-int.h (target_ira_int): Rename x_move_cost to
815         x_ira_register_move_cost, x_may_move_in_cost to
816         x_ira_may_move_in_cost and x_may_move_out_cost to
817         x_ira_may_move_out_cost.  Delete the old fields with
818         those names and also x_ira_max_register_move_cost,
819         x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
820         (move_cost, may_move_in_cost, may_move_out_cost)
821         (ira_max_register_move_cost, ira_max_may_move_in_cost)
822         (ira_max_may_move_out_cost): Delete.
823         * ira.c (init_move_cost): Rename to...
824         (ira_init_register_move_cost): ...this, deleting the old
825         function with that name.  Apply above variable renamings.
826         Retain asserts for null fields.
827         (ira_init_once): Don't initialize register move costs here.
828         (free_register_move_costs): Apply above variable renamings.
829         Remove code for deleted fields.
830
831 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
832
833         * ira.c (init_move_cost): Adjust choice of subclasses to match
834         the current ira_init_register_move_cost choice.  Use
835         ira_class_subset_p instead of reg_class_subset_p.
836         (ira_init_register_move_cost): Assert that move_cost,
837         may_move_in_cost and may_move_out_cost already hold the desired
838         values for their ira_* equivalents.  For the latter two,
839         ignore classes that can't store a register of the given mode.
840
841 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
842
843         * ira.c (setup_allocno_and_important_classes): Use
844         ira_class_hard_regs_num to check whether a class has any
845         allocatable registers.
846         (ira_init_register_move_cost): Likewise.
847
848 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
849
850         * ira.c (init_move_cost): Adjust local variable names to match
851         file conventions.  Use ira_assert instead of gcc_assert.
852
853 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
854
855         * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
856         Move these definitions and associated target_globals fields to...
857         * ira-int.h: ...here.
858         * rtl.h (init_move_cost): Delete.
859         * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
860         * ira.c: ...here, making the latter static.
861
862 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
863
864         * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
865         and ira_register_move_cost instead of init_move_cost and move_cost.
866
867 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
868
869         * ira.h (target_ira): Delete x_ira_available_class_regs.
870         (ira_available_class_regs): Delete.
871         * ira.c (setup_available_class_regs): Delete.
872         (setup_alloc_classes): Don't call it.
873         (setup_pressure_classes): Use ira_class_hard_regs_num instead of
874         ira_available_class_regs.
875         * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
876         (model_spill_cost): Likewise.
877         * ira-build.c (low_pressure_loop_node_p): Likewise.
878         * ira-color.c (color_pass): Likewise.
879         * ira-emit.c (change_loop): Likewise.
880         * ira-lives.c (inc_register_pressure, dec_register_pressure)
881         (single_reg_class, ira_implicitly_set_insn_hard_regs)
882         (process_bb_node_lives): Likewise.
883         * loop-invariant.c (gain_for_invariant): Likewise.
884
885 2012-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
886
887         PR target/52999
888         * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
889         (pa_section_type_flags): New.
890         (pa_legitimate_constant_p): Revert previous change.
891
892 2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>
893
894         * ira.c (allocate_initial_values): Make static.
895
896 2012-05-30  Uros Bizjak  <ubizjak@gmail.com>
897
898         * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
899         Generate tls_initial_exec_64_sun only when !TARGET_X32.
900
901 2012-05-30  Richard Guenther  <rguenther@suse.de>
902
903         PR middle-end/53501
904         * fold-const.c (fold_binary_loc): Make sure to call
905         fold_plusminus_mult_expr with the original sign of operands.
906
907 2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>
908
909         * Makefile.in: Fix many dependencies.
910         (DWARF2_H): Depend on dwarf2.def.
911         (RTL_ERROR_H): Depend on rtl-error.h.
912         (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New.  Replace
913         all gimple-pretty-print.h and tree-pretty-print.h references.
914
915 2012-05-30  Marc Glisse  <marc.glisse@inria.fr>
916
917         * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
918         concatenations.
919
920 2012-05-30  Richard Guenther  <rguenther@suse.de>
921
922         PR middle-end/53522
923         * tree-emutls.c (gen_emutls_addr): Do not add globals to
924         referenced-vars.
925
926 2012-05-30  Eric Botcazou  <ebotcazou@adacore.com>
927
928         * explow.c (probe_stack_range): Restore simple control flow and stop
929         again when the probe cannot be generated if HAVE_check_stack.
930
931 2012-05-30  Jakub Jelinek  <jakub@redhat.com>
932
933         PR rtl-optimization/53519
934         * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
935         instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
936
937 2012-05-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
938
939         * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
940
941 2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>
942
943         PR debug/53453
944         * doc/tm.texi: Update.
945         * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
946         * target.def (force_at_comp_dir): New hook.
947         * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
948         * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
949
950 2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>
951
952         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
953         Darwin >= 10.
954         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
955         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
956
957 2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>
958
959         PR target/51340
960         * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
961         flag_unsafe_math_optimizations is set.
962         * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
963         Update description of -mfused-madd.
964
965 2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>
966
967         PR target/52941
968         * config/sh/predicates.md (atomic_arith_operand,
969         atomic_logical_operand): New predicates.
970         * config/sh/sh.c (sh_option_override): Check atomic options.
971         * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
972         UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
973         (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
974         UNSUPPORTED_HARD_ATOMIC_CPU.
975         * config/sh/sync.md: Update description comments.
976         (I12): New mode iterator.
977         (fetchop_predicate, fetchop_constraint): New code attributes.
978         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
979         atomic_exchangesi_hard, atomic_exchange<mode>_hard,
980         atomic_fetch_<fetchop_name>si_hard,
981         atomic_fetch_<fetchop_name><mode>_hard,
982         atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
983         atomic_<fetchop_name>_fetchsi_hard,
984         atomic_<fetchop_name>_fetch<mode>_hard,
985         atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
986         atomic_test_and_set_hard): New insns.
987         (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
988         atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
989         atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
990         atomic_test_and_set_soft): Use same formatting for the first line of
991         the asm block as in new insns above.
992         (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
993         atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
994         atomic_test_and_set): Integrate new *_hard insns into expanders.
995         * config/sh/sh.opt (mhard-atomic): New option.
996         * doc/invoke.texi (SH Options): Document it.
997
998 2012-05-29  Meador Inge  <meadori@codesourcery.com>
999
1000         * c-decl.c (c_push_function_context): Always create a new language
1001         function.
1002         (c_pop_function_context): Clear the language function created in
1003         c_push_function_context.
1004
1005 2012-05-29  Matt Turner  <mattst88@gmail.com>
1006
1007         * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
1008         (define_bypass "ev6_fcmov"): New.
1009
1010 2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1011
1012         * integrate.c: Remove.
1013         * integrate.h: Remove.
1014         * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
1015         * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
1016         * config/rs6000/t-rs6000: Likewise
1017         * config/spu/t-spu-elf: Likewise.
1018         * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
1019         get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
1020         from integrate.h to here.
1021         (initial_value_entry): New prototype.
1022         * reload.h (allocate_initial_values): Remove prototype.
1023         * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
1024         * cse.c (fixed_base_plus_p): Don't handle virtual registers for
1025         integrate.c.
1026         * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
1027         set_decl_abstract_flags, set_block_abstract_flags): Move from
1028         integrate.c to here, the only user.
1029         * expmed.c (extract_fixed_bit_field): Remove outdated comment
1030         about integrate.c.
1031         * function.c: Don't include integrate.h.
1032         (struct initial_value_pair, struct initial_value_struct,
1033         get_hard_reg_initial_val, has_hard_reg_initial_val,
1034         get_hard_reg_initial_reg, emit_initial_value_sets): Move from
1035         integrate.c to here.
1036         (initial_value_entry): New function.
1037         * genemit.c (main): Don't print integrate.h include line.
1038         * ira.c: Don't include integrate.h.
1039         (allocate_initial_values): Move from integrate.c to here.
1040         (ira): Update allocate_initial_values call.
1041         * tree-inline.c: Don't include integrate.h.
1042         (function_attribute_inlinable_p): Moved from integrate.c to here.
1043         * cfgexpand.c: Don't include integrate.h.
1044         * except.c: Likewise.
1045         * langhooks.c: Likewise.
1046         * passes.c: Likewise.
1047         * toplev.c: Likewise.
1048         * config/frv/frv.c: Likewise.
1049         * config/pa/pa.c: Likewise.
1050         * config/spu/spu.c: Likewise.
1051         * config/epiphany/epiphany.c: Likewise.
1052         * config/mep/mep.c: Likewise.
1053         * config/score/score.c: Likewise.
1054         * config/picochip/picochip.c: Likewise.
1055         * config/sh/sh.c: Likewise.
1056         * config/alpha/alpha.c: Likewise.
1057         * config/microblaze/microblaze.c: Likewise.
1058         * config/mips/mips.c: Likewise.
1059         * config/v850/v850.c: Likewise.
1060         * config/mmix/mmix.c: Likewise.
1061         * config/bfin/bfin.c: Likewise.
1062         * config/arm/arm.c: Likewise.
1063         * config/s390/s390.c: Likewise.
1064         * config/m32r/m32r.c: Likewise.
1065         * config/rs6000/rs6000.c: Likewise.
1066         * config/c6x/c6x.c: Include function.h instead of integrate.h.
1067         * config/tilegx/tilegx.c: Likewise.
1068         * config/tilepro/tilepro.c: Likewise.
1069
1070 2012-05-29  Georg-Johann Lay  <avr@gjlay.de>
1071
1072         * config/avr/t-avr (s-avr-mmcu-texi): Call
1073         gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
1074
1075 2012-05-29  Michael Matz  <matz@suse.de>
1076
1077         * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
1078         assign_temp): Remove 'keep' argument.
1079         (mark_temp_addr_taken): Remove prototype.
1080         * tree.h (expand_decl): Remove prototype.
1081         * function.c (struct temp_slot): Remove addr_taken and keep member.
1082         (assign_stack_temp_for_type) Don't initialize above, remove
1083         keep argument.
1084         (assign_stack_temp, assign_temp): Remove keep argument.
1085         (mark_temp_addr_taken): Remove.
1086         (preserve_temp_slots): Remove handling of addr_taken and keep members.
1087         (free_temp_slots): Ditto.
1088         * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
1089         dead code.
1090         * stmt.c (expand_asm_operands): Remove dead code.
1091         (expand_decl): Remove.
1092         * c-decl.c (finish_struct): Don't call expand_decl.
1093         * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
1094         and assign_stack_temp.
1095         * calls.c (save_fixed_argument_area, initialize_argument_information,
1096         expand_call, emit_library_call_value_1, store_one_arg): Ditto.
1097         * expmed.c (extract_bit_field_1): Ditto.
1098         * expr.c (emit_group_load_1, emit_group_store,
1099         copy_blkmode_from_reg, emit_push_insn, expand_assignment,
1100         store_field, expand_constructor, expand_cond_expr_using_cmove,
1101         expand_expr_real_2, expand_expr_real_1): Ditto.
1102         * stmt.c (expand_asm_operands, expand_return): Ditto.
1103
1104         * function.c (pop_temp_slots): Call free_temp_slots.
1105         * calls.c (store_one_arg): Don't call preserve_temp_slots or
1106         free_temp_slots.
1107         * expr.c (expand_assignment): Don't call free_temp_slots.
1108
1109         * config/arm/arm.c (neon_expand_vector_init): Ditto.
1110         * config/i386/i386.c (ix86_expand_vector_set): Ditto.
1111         (ix86_expand_vector_extract): Ditto.
1112         * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
1113         ia64_expand_movxf_movrf): Ditto.
1114         * config/mips/mips.c (mips_expand_vi_general): Ditto.
1115         * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
1116         extendsfdf2): Ditto.
1117         * config/rs6000/rs6000.c (rs6000_expand_vector_init,
1118         rs6000_expand_vector_set, rs6000_expand_vector_extract,
1119         rs6000_allocate_stack_temp): Ditto.
1120         * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
1121         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
1122         sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
1123         sparc_expand_vector_init): Ditto.
1124
1125 2012-05-29  Michael Matz  <matz@suse.de>
1126
1127         * c-tree.h (c_expand_decl): Remove prototype.
1128
1129         * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
1130         a kept temp.
1131         (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
1132         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
1133         COMPOUND_LITERAL_EXPR.
1134         * function.c (expand_function_start): Don't call expand_decl,
1135         instead assert that we have RTL assigned.
1136         * tree-ssa-live.c (remove_unused_locals): Clear
1137         nonlocal_goto_save_area if its backing variable is removed.
1138         * stmt.c (expand_asm_operands): Remove handling of non-lvalues
1139         as mem inputs.
1140         (expand_decl): Assert that this does nothing.
1141         * calls.c (expand_call): Don't call mark_temp_addr_taken.
1142
1143 2012-05-29  Richard Guenther  <rguenther@suse.de>
1144
1145         PR tree-optimization/53516
1146         * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
1147         bitfield accesses.
1148         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1149
1150 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
1151
1152         * LANGUAGES: Fix typos.
1153         * Makefile.in: Fix typos.
1154         * alias.c: Fix typos.
1155         * auto-inc-dec.c: Fix typos.
1156         * bb-reorder.c: Fix typos.
1157         * cfgcleanup.c: Fix typos.
1158         * cgraph.c: Fix typos.
1159         * cgraph.h: Fix typos.
1160         * cgraphunit.c: Fix typos.
1161         * collect2-aix.h: Fix typos.
1162         * collect2.c: Fix typos.
1163         * compare-elim.c: Fix typos.
1164         * config/alpha/vms.h: Fix typos.
1165         * config/arm/README-interworking: Fix typos.
1166         * config/arm/arm.c: Fix typos.
1167         * config/arm/iterators.md: Fix typos.
1168         * config/arm/vxworks.h: Fix typos.
1169         * config/avr/avr.c: Fix typos.
1170         * config/avr/avr.h: Fix typos.
1171         * config/avr/avr.md: Fix typos.
1172         * config/avr/builtins.def: Fix typos.
1173         * config/c6x/c6x.c: Fix typos.
1174         * config/cr16/cr16.c: Fix typos.
1175         * config/cr16/cr16.md: Fix typos.
1176         * config/cris/cris.md: Fix typos.
1177         * config/darwin.c: Fix typos.
1178         * config/darwin.opt: Fix typos.
1179         * config/i386/i386-c.c: Fix typos.
1180         * config/i386/i386.c: Fix typos.
1181         * config/ia64/ia64.c: Fix typos.
1182         * config/m68k/cf.md: Fix typos.
1183         * config/mep/mep.c: Fix typos.
1184         * config/microblaze/microblaze.c: Fix typos.
1185         * config/microblaze/microblaze.h: Fix typos.
1186         * config/mn10300/mn10300.c: Fix typos.
1187         * config/mn10300/mn10300.md: Fix typos.
1188         * config/pa/pa.c: Fix typos.
1189         * config/picochip/picochip.h: Fix typos.
1190         * config/rs6000/a2.md: Fix typos.
1191         * config/rs6000/rs6000.c: Fix typos.
1192         * config/rs6000/vector.md: Fix typos.
1193         * config/rx/rx.md: Fix typos.
1194         * config/rx/rx.opt: Fix typos.
1195         * config/s390/2097.md: Fix typos.
1196         * config/s390/s390.c: Fix typos.
1197         * config/s390/s390.h: Fix typos.
1198         * config/sh/sh.c: Fix typos.
1199         * config/sh/sh.md: Fix typos.
1200         * config/sparc/sync.md: Fix typos.
1201         * config/spu/spu.c: Fix typos.
1202         * config/spu/spu.md: Fix typos.
1203         * config/vms/vms.c: Fix typos.
1204         * config/vxworks-dummy.h: Fix typos.
1205         * config/vxworks.h: Fix typos.
1206         * cselib.c: Fix typos.
1207         * df-scan.c: Fix typos.
1208         * df.h: Fix typos.
1209         * doc/extend.texi: Fix typos.
1210         * doc/install.texi: Fix typos.
1211         * doc/invoke.texi: Fix typos.
1212         * doc/md.texi: Fix typos.
1213         * doc/plugins.texi: Fix typos.
1214         * doc/rtl.texi: Fix typos.
1215         * dse.c: Fix typos.
1216         * dwarf2asm.c: Fix typos.
1217         * dwarf2out.c: Fix typos.
1218         * except.h: Fix typos.
1219         * expr.c: Fix typos.
1220         * fold-const.c: Fix typos.
1221         * gcc.c: Fix typos.
1222         * gcse.c: Fix typos.
1223         * genautomata.c: Fix typos.
1224         * gengtype-state.c: Fix typos.
1225         * gengtype.c: Fix typos.
1226         * genhooks.c: Fix typos.
1227         * gimple-fold.c: Fix typos.
1228         * gimple-pretty-print.c: Fix typos.
1229         * gimple.c: Fix typos.
1230         * gimple.h: Fix typos.
1231         * gimplify.c: Fix typos.
1232         * graphite-interchange.c: Fix typos.
1233         * graphite-sese-to-poly.c: Fix typos.
1234         * ifcvt.c: Fix typos.
1235         * input.c: Fix typos.
1236         * ipa-cp.c: Fix typos.
1237         * ipa-inline-analysis.c: Fix typos.
1238         * ipa-inline-transform.c: Fix typos.
1239         * ipa-inline.c: Fix typos.
1240         * ipa-pure-const.c: Fix typos.
1241         * ipa-ref.h: Fix typos.
1242         * ipa-reference.c: Fix typos.
1243         * ipa-utils.c: Fix typos.
1244         * ipa.c: Fix typos.
1245         * ira-emit.c: Fix typos.
1246         * ira-lives.c: Fix typos.
1247         * lto-streamer.c: Fix typos.
1248         * lto-streamer.h: Fix typos.
1249         * lto-wrapper.c: Fix typos.
1250         * mcf.c: Fix typos.
1251         * mode-switching.c: Fix typos.
1252         * modulo-sched.c: Fix typos.
1253         * plugin.c: Fix typos.
1254         * postreload.c: Fix typos.
1255         * sched-deps.c: Fix typos.
1256         * sel-sched-ir.c: Fix typos.
1257         * sel-sched-ir.h: Fix typos.
1258         * sel-sched.c: Fix typos.
1259         * sese.c: Fix typos.
1260         * stor-layout.c: Fix typos.
1261         * target-hooks-macros.h: Fix typos.
1262         * target.def: Fix typos.
1263         * trans-mem.c: Fix typos.
1264         * tree-eh.c: Fix typos.
1265         * tree-predcom.c: Fix typos.
1266         * tree-sra.c: Fix typos.
1267         * tree-ssa-address.c: Fix typos.
1268         * tree-ssa-loop-ivopts.c: Fix typos.
1269         * tree-ssa-loop-niter.c: Fix typos.
1270         * tree-ssa-math-opts.c: Fix typos.
1271         * tree-ssa-pre.c: Fix typos.
1272         * tree-ssa-propagate.c: Fix typos.
1273         * tree-ssa-reassoc.c: Fix typos.
1274         * tree-ssa-sccvn.c: Fix typos.
1275         * tree-ssa-ter.c: Fix typos.
1276         * tree-ssa-uninit.c: Fix typos.
1277         * tree-ssanames.c: Fix typos.
1278         * tree-vect-generic.c: Fix typos.
1279         * tree-vect-slp.c: Fix typos.
1280         * tree.c: Fix typos.
1281         * tree.h: Fix typos.
1282         * varasm.c: Fix typos.
1283         * varpool.c: Fix typos.
1284
1285 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
1286
1287         * doc/include/texinfo.tex: Update to version 2012-05-16.16.
1288
1289 2012-05-29  Richard Guenther  <rguenther@suse.de>
1290
1291         * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
1292         for globals.
1293         (add_referenced_var_1): Re-organize.  Assert we are not
1294         called for globals.
1295         (remove_referenced_var): Likewise.
1296         * varpool.c (add_new_static_var): Use create_tmp_var_raw.
1297         * tree-mudflap.c (execute_mudflap_function_ops): Do not
1298         call add_referenced_var on globals.
1299         * matrix-reorg.c (transform_access_sites): Likewise.
1300
1301 2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1302
1303         * alias.c (reg_known_value): Make this a VEC.
1304         (reg_known_equiv_p): Make this an sbitmap.
1305         (reg_known_value_size): Remove.
1306         (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
1307         set_reg_known_equiv_p): Update for reg_known_value and
1308         reg_known_value_size data structure change.
1309         (init_alias_analysis, end_alias_analysis): Likewise.
1310
1311 2012-05-29  Jakub Jelinek  <jakub@redhat.com>
1312
1313         PR middle-end/53510
1314         * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
1315         to avoid leaking memory.  No need to handle memory allocation
1316         failure.  Double string_len on each reallocation instead of adding 2.
1317         * gcov.c (read_line): Likewise.
1318
1319 2012-05-29  Hans-Peter Nilsson  <hp@axis.com>
1320
1321         * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
1322         New macros.
1323         * config/cris/cris.md ("trap"): Define, enabled for
1324         TARGET_TRAP_USING_BREAK8.
1325         * config/cris/cris.opt (mtrap-using-break8): New option.
1326
1327 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
1328
1329         PR c++/25137
1330         * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
1331         for C++.
1332
1333 2012-05-28  Hans-Peter Nilsson  <hp@axis.com>
1334
1335         * doc/md.texi (stack_protect_test): Remove negation of branch to label.
1336         (Standard Names): Fix typos in documentation of atomic patterns.
1337
1338 2012-05-27  Nathan Sidwell  <nathan@acm.org>
1339
1340         * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
1341
1342 2012-05-26  Jason Merrill  <jason@redhat.com>
1343
1344         PR c++/53220
1345         * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
1346         about array compound literals.
1347
1348 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1349
1350         * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
1351         if CLEANUP_NO_INSN_DEL.
1352         * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
1353         from cfg_layout_merge_blocks.
1354         (emit_nop_for_unique_locus_between): New function.
1355         (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
1356         (cfg_layout_merge_blocks): Likewise.
1357
1358 2012-05-26  Dimitrios Apostolou  <jimis@gmx.net>
1359             Paolo Bonzini  <bonzini@gnu.org>
1360
1361         * df-scan.c (df_def_record_1): Assert a parallel must contain an
1362         EXPR_LIST at this point.  Receive the LOC and move its extraction...
1363         (df_defs_record): ... here. Change if-else to a switch statement.
1364         (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
1365         (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
1366         and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
1367         DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
1368         regs_invalidated_by_call.
1369         (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
1370         df_get_call_refs().
1371
1372 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1373
1374         PR lto/52178
1375         * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
1376         * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
1377
1378 2012-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1379
1380         * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
1381         software floating point emulation.  No longer build the multilibs
1382         with -mstrict-align.
1383
1384 2012-05-25  Aldy Hernandez  <aldyh@redhat.com>
1385
1386         PR middle-end/53008
1387         * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
1388         accessed indirectly.
1389         (ipa_tm_create_version): Same.
1390
1391 2012-05-25  Uros Bizjak  <ubizjak@gmail.com>
1392
1393         PR target/53474
1394         * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
1395         <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
1396
1397 2012-05-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1398
1399         PR target/53435
1400         * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
1401         (ix86_expand_vec_perm): Use int mode instead of float.
1402         (expand_vec_perm_pshufb): Remove handling of useseless type
1403         conversion.
1404
1405 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1406
1407         PR ada/52362
1408         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
1409         gnu_ld variables to yes.
1410         * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
1411         (HAVE_GNU_AS): Likewise.
1412         * config.in: Regenerate.
1413         * configure: Likewise.
1414
1415 2012-05-25  Tristan Gingold  <gingold@adacore.com>
1416
1417         * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
1418         (ix86_compute_frame_layout): Fix type of stack_alignment_needed
1419         and preferred_alignment.
1420
1421 2012-05-25  Tristan Gingold  <gingold@adacore.com>
1422
1423         * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
1424
1425 2012-05-25  Thomas Schwinge  <thomas@codesourcery.com>
1426
1427         * fold-const.c (optimize_bit_field_compare): Abort early in the strict
1428         volatile bitfields case.
1429
1430 2012-05-24  Pat Haugen  <pthaugen@us.ibm.com>
1431
1432         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
1433         rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
1434         (adjacent_mem_locations): Move some code to and call...
1435         (get_memref_parts): ...new function.
1436         (mem_locations_overlap): New function.
1437         (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
1438         (is_mem_ref): Rename to...
1439         (find_mem_ref): ...this. Return MEM rtx.
1440         (get_store_dest): Remove function.
1441         (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
1442         new parameter and adjust calls.
1443         (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
1444         mem refs overlap for true_store_to_load_dep_costly.
1445         (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
1446         passed to adjacent_mem_locations.
1447         (is_costly_group): Walk resolved dependency list.
1448         (force_new_group): Emit group ending nop for Power6/Power7.
1449         * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
1450         (group_ending_nop): New define_insn.
1451
1452 2012-05-24  Dodji Seketeli  <dodji@redhat.com>
1453
1454         Make unwound macro expansion trace less redundant
1455         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
1456         context of macro definition in the trace, when it's redundant.
1457         Update comments.
1458
1459 2012-05-24  Richard Guenther  <rguenther@suse.de>
1460
1461         PR middle-end/53460
1462         * tree-profile.c (tree_profiling): Cleanup the CFG if
1463         execute_fixup_cfg requests it.
1464
1465 2012-05-24  Richard Guenther  <rguenther@suse.de>
1466
1467         * tree-flow.h (create_var_ann): Remove.
1468         * tree-dfa.c (create_var_ann): Remove and inline into its
1469         single caller ...
1470         (add_referenced_var_1): ... here.
1471         * varpool.c (add_new_static_var): Do not call add_referenced_var
1472         for global vars.
1473         * gimple-fold.c (canonicalize_constructor_val): Likewise.
1474         * tree-switch-conversion.c (build_one_array): Likewise.
1475         * tree-profile.c (gimple_gen_ic_profiler): Likewise.
1476         * tree-flow-inline.h (gimple_referenced_vars): Guard against
1477         NULL fn argument.
1478         * tree-inline.c (remap_gimple_op_r): Likewise.  Check
1479         gimple_referenced_vars instead of gimple_in_ssa_p.
1480         (copy_tree_body_r): Likewise.
1481         (setup_one_parameter): Likewise.
1482         (declare_return_variable): Likewise.
1483         (tree_function_versioning): Likewise.
1484
1485 2012-05-24  Jakub Jelinek  <jakub@redhat.com>
1486
1487         PR tree-optimization/53465
1488         * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
1489         vr0 into *vr, then vrp_meet that.
1490         (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
1491         have any equivalences.
1492         (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
1493         first time.
1494
1495 2012-05-24  Jim MacArthur  <jim.macarthur@arm.com>
1496
1497         * recog.c (reg_fits_class_p): Check both regno and regno + offset are
1498         hard registers.
1499         * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
1500         check end_regno - 1 is a hard register.
1501
1502 2012-05-24  Richard Guenther  <rguenther@suse.de>
1503
1504         * varpool.c (add_new_static_var): Remove call to create_var_ann.
1505         * tree-ssa-operands.c (create_vop_var): Likewise.
1506
1507 2012-05-24  Richard Guenther  <rguenther@suse.de>
1508
1509         PR bootstrap/53466
1510         * tree-ssa-live.c (remove_unused_scope_block_p): Properly
1511         handle globals.
1512         (remove_unused_locals): Pass global_unused_vars to
1513         remove_unused_scope_block_p.  Restore code walking all
1514         referenced vars and pruning them.
1515
1516 2012-05-23  Jan Hubicka  <jh@suse.cz>
1517
1518         * tree.h (alias_diag_flags): Remove.
1519         (alias_pair): Remove emitted_diags.
1520         (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
1521         symbol_alias_set_t, symbol_alias_set_destroy,
1522         symbol_alias_set_contains, propagate_aliases_backward): Remove.
1523         * toplev.c (compile_file): Do not call finish_aliases_2
1524         * cgraphunit.c (cgraph_process_new_functions): Do not call
1525         finish_aliases_1.
1526         (handle_alias_pairs): Output diagnostics about aliases to externals.
1527         (assemble_thunks_and_aliases): Use do_assemble_alias.
1528         (output_weakrefs): Likewise.
1529         (finalize_compilation_unit): Do not call finish_aliases_1.
1530         * ipa.c (symtab_remove_unreachable_nodes): De not call
1531         remove_unreachable_alias_pairs.
1532         * varasm.c (do_assemble_alias): Export.
1533         (symbol_alias_set_create, symbol_alias_set_destroy,
1534         symbol_alias_set_contains, symbol_alias_set_insert,
1535         propagate_aliases_forward, propagate_aliases_backward,
1536         propagate_aliases_backward, trivially_visible_alias,
1537         trivially_defined_alias, remove_unreachable_alias_pairs,
1538         finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
1539         * output.h (do_assemble_alias): Declare.
1540         * varpool.c (varpool_remove_unreferenced_decls): Do not call
1541         finish_aliases_1.
1542
1543 2012-05-23  Martin Jambor  <mjambor@suse.cz>
1544
1545         * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
1546
1547 2012-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1548
1549         * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
1550         size handling.
1551         (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
1552         (iterative_hash_gimple_type): Adjust comment.
1553         (iterative_hash_canonical_type): Likewise.  Hash the bounds of the
1554         domain for an array type instead of the domain type itself.
1555
1556 2012-05-23  Richard Guenther  <rguenther@suse.de>
1557
1558         PR tree-optimization/53438
1559         * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
1560
1561 2012-05-23  Georg-Johann Lay  <avr@gjlay.de>
1562
1563         PR target/53448
1564         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
1565         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
1566         ASM_OUTPUT_ALIGN.
1567
1568 2012-05-23  Richard Guenther  <rguenther@suse.de>
1569
1570         * tree-dfa.c (add_referenced_var_1): Do not add global vars.
1571         * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
1572         via the global_unused_vars bitmap.
1573         (remove_unused_locals): Handle global vars in local-decls via
1574         a global_unused_vars bitmap instead of the used flag in the
1575         var annotation.  Simplify global variable handling and removal.
1576
1577 2012-05-22  Jan Hubicka  <jh@suse.cz>
1578
1579         PR middle-end/53426
1580         * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
1581         from other partitions.
1582
1583 2012-05-22  Jan Hubicka  <jh@suse.cz>
1584
1585         PR middle-end/53161
1586         * symtab.c (symtab_register_node): Fix ordering issue.
1587
1588 2012-05-22  Steven Drake <sbd@NetBSD.org>
1589
1590         * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
1591
1592 2012-05-22  David Edelsohn  <dje.gcc@gmail.com>
1593
1594         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
1595         Use strip_name_encoding target hook.
1596
1597 2012-05-22  Richard Guenther  <rguenther@suse.de>
1598
1599         * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
1600         (init_function_for_compilation): Remove.
1601         * tree-dfa.c (find_vars_r): Take struct function argument.
1602         (find_referenced_vars_in): Adjust.
1603         * tree-ssa-operands.c (clobber_stats): Remove.
1604         (create_vop_var): Take struct function argument.  Mark
1605         virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
1606         (init_ssa_operands): Take struct function argument.
1607         (fini_ssa_operands): Do not dump dead stats.
1608         * tree-ssa-operands.h (init_ssa_operands): Take struct function
1609         argument.
1610         * cgraphunit.c (init_lowered_empty_function): Adjust.
1611         * lto-streamer-in.c (input_cfg): Likewise.
1612         * tree-inline.c (initialize_cfun): Likewise.
1613         * tree-into-ssa.c (rewrite_into_ssa): Likewise.
1614         * omp-low.c (expand_omp_taskreg): Likewise.  Avoid switching cfun.
1615         * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
1616         virtual operands are not registers.
1617
1618 2012-05-22  Richard Guenther  <rguenther@suse.de>
1619
1620         * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
1621
1622 2012-05-22  Richard Guenther  <rguenther@suse.de>
1623
1624         PR middle-end/53437
1625         * tree-inline.c (setup_one_parameter): Create a dummy init
1626         statement for unused parameters when not optimizing.
1627
1628 2012-05-22  Richard Guenther  <rguenther@suse.de>
1629
1630         * tree-flow.h (add_referenced_var_1): Declare.
1631         (add_referenced_var): Define.
1632         * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
1633         (add_referenced_var): Rename to ...
1634         (add_referenced_var_1): ... this.  Take struct function argument.
1635
1636 2012-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1637
1638         PR target/53334
1639         * config/arm/arm-protos.h (arm_validize_comparison): Declare.
1640         * config/arm/arm.c (arm_validize_comparison): Define.
1641         * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
1642         arm_validize_comparison.
1643         ("cbranchdi4"): Likewise.
1644         ("cstoredi4"): Likewise.
1645         ("movsicc"): Likewise.
1646         ("movsfcc"): Likewise.
1647         ("movdfcc"): Likewise.
1648
1649 2012-05-22  Dimitrios Apostolou  <jimis@gmx.net>
1650
1651         * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
1652         the mw_reg_pool size.
1653
1654 2012-05-22  Paolo Bonzini  <bonzini@gnu.org>
1655
1656         PR tree-optimization/53336
1657         * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
1658         non-integer integral types to offset type and vice versa.
1659
1660 2012-05-22  Alan Modra  <amodra@gmail.com>
1661
1662         * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
1663         * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
1664         * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
1665         V_SAVE_INLINE): Delete.
1666         * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
1667         (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
1668         For ELF targets, use out-of-line restores for -Os and any number
1669         of regs if the restore exits, and out-of-line gp save for two or
1670         more regs.  Use save_reg_p to test for holes in reg restore set.
1671         Replace "#if" with "if".
1672
1673 2012-05-22  Alan Modra  <amodra@gmail.com>
1674
1675         * config/rs6000/rs6000.c (save_reg_p): New function.
1676         (first_reg_to_save, first_fp_reg_to_save): Use it here.
1677         (first_altivec_reg_to_save, restore_saved_cr): Likewise.
1678         (emit_frame_save): Use gen_frame_store.
1679         (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
1680         (rs6000_emit_prologue): Use save_reg_p.  Use gen_frame_store for
1681         vrsave and toc.
1682         (rs6000_emit_epilogue): Use save_reg_p.  Use gen_frame_load for
1683         vrsave, toc, gp and fp restores.
1684
1685 2012-05-22  Alan Modra  <amodra@gmail.com>
1686
1687         * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
1688         Move those with ATTRIBUTE_UNUSED to immediately before definitions.
1689         Move function pointer variables after forward declarations.
1690         (rs6000_builtin_support_vector_misalignment): Make static.
1691         (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
1692         (rs6000_function_value, rs6000_can_eliminate): Likewise.
1693
1694 2012-05-21  Bernd Schmidt  <bernds@codesourcery.com>
1695
1696         PR rtl-optimization/53373
1697         * caller-save.c (save_call_clobbered_regs): Look into a possible
1698         PARALLEL manually rather than using single_set on a call insn.
1699
1700 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
1701
1702         PR tree-optimization/53436
1703         * omp-low.c (omp_build_component_ref): New function.
1704         (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
1705
1706 2012-05-21  Uros Bizjak  <ubizjak@gmail.com>
1707
1708         * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
1709         arguments to bool.
1710         (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
1711         Do not print '.' here.  Output operand lossage error for unhandled
1712         sizes.  Move.
1713         <case '*'>: Move.
1714         <case '&'>: Ditto.
1715         <case 'Y'>: Ditto.
1716         <case 'z'>: Hardcode "code" argument into error strings.
1717         <case 'Z'>: Ditto.
1718         <case 'D'>: Merge AVX and non-AVX codes.
1719         <case 'C', case 'c', case 'F', case 'f'>: Merge.  Fix error string.
1720         Update call to put_condition_code.
1721
1722 2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>
1723
1724         * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2.  Call
1725         CC_STATUS_INIT.
1726         (clzsi2): New expander.
1727         (*clzsi2_68k): New insn.
1728         * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
1729
1730 2012-05-21  Aldy Hernandez  <aldyh@redhat.com>
1731
1732         * gimple.h (gimple_set_in_transaction): Remove.
1733         (gimple_in_transaction): Look in BB instead.
1734         (gimple_statement_base): Remove in_transaction field.
1735         * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
1736         * trans-mem.c (compute_transaction_bits): Place transaction bit
1737         information into basic blocks.
1738
1739 2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>
1740
1741         * expr.c (get_def_for_expr_class): Define only if
1742         HAVE_conditional_move.
1743         (convert_tree_comp_to_rtx): Likewise.
1744
1745 2012-05-21  Uros Bizjak  <ubizjak@gmail.com>
1746
1747         PR target/53399
1748         * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
1749         for TARGET_BMI.
1750         (ffssi2_no_cmove): Ditto.
1751         (*ffs<mode>_1): Remove insn pattern.
1752         (*tzcnt<mode>_1): New insn pattern.
1753         (*bsf<mode>1): Ditto.
1754
1755 2012-05-21  Richard Guenther  <rguenther@suse.de>
1756
1757         * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
1758         more referenced vars.
1759         * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
1760         flag on variables that have a var-annotation.
1761
1762 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
1763
1764         PR c/53418
1765         * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
1766         from folded operands before wrapping another around the
1767         conditional expression.
1768
1769 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
1770
1771         PR tree-optimization/53366
1772         * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
1773         tests if complex_numbers == 2, but there are non-complex number loads
1774         too.
1775
1776         PR tree-optimization/53409
1777         * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
1778         vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
1779
1780         PR tree-optimization/53410
1781         * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
1782         instead of build_int_cst (type, 0) where vector types might be
1783         involved. Instead of build_int_cst (type, 1) convert the original
1784         integer_onep argument to the desired type.
1785
1786 2012-05-21  Michael Matz  <matz@suse.de>
1787
1788         * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
1789         (simplify_test_exp): Handle one more case of distributive law,
1790         decrease cost threshold.
1791         (tests_attr_p, get_attr_order): New functions.
1792         (optimize_attrs): Use topological order, inline only cheap values.
1793         (write_attr_set): Reset our_known_true after some time.
1794
1795 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1796
1797         PR target/53425
1798         * config/i386/i386.c (type_natural_mode): Warn passing SSE
1799         vector argument without SSE enabled changes the ABI.
1800
1801 2012-05-21  Richard Guenther  <rguenther@suse.de>
1802
1803         PR tree-optimization/53408
1804         * tree-vect-loop.c (vectorizable_induction): Properly check
1805         the restriction that we cannot handle induction results from
1806         the inner loop outside of the outer loop.
1807
1808 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1809
1810         PR target/53416
1811         * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
1812         (UNSPECV_RDRAND): This.
1813         (rdrand<mode>_1): Updated.
1814
1815 2012-05-21  Richard Guenther  <rguenther@suse.de>
1816
1817         * tree-loop-distribution.c (can_generate_builtin): Reject
1818         volatile stmts.
1819
1820 2012-05-21  Chung-Lin Tang  <cltang@codesourcery.com>
1821
1822         * Makefile.in (options.c): Add options.h to included header
1823         files, before tm.h.
1824
1825 2012-05-21  Razya Ladelsky  <razya@il.ibm.com>
1826
1827         * tree-parloops.c : Add myself to contributors, update
1828         TODO list, add link to wiki.
1829
1830 2012-05-21  Alan Modra  <amodra@gmail.com>
1831
1832         * config/rs6000/predicates.md (input_operand): Don't match
1833         constant pool addresses.  Remove label_ref, high and plus from
1834         match_code list.  Remove redundant CONSTANT_P test.
1835         (splat_input_operand): Similarly update match_code list.
1836         (small_toc_ref): New predicate.
1837         * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
1838         * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
1839         (legitimate_constant_pool_address_p): Move TARGET_TOC test and
1840         register checks to..
1841         (toc_relative_expr_p): ..here.  Add "strict" param.  Match new rtl
1842         generated by create_TOC_reference.
1843         (rs6000_legitimize_address): Update cerate_TOC_reference call.
1844         (rs6000_delegitimize_address): Handle new rtl for toc refs.
1845         (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
1846         (use_toc_relative_ref): New function, split out from..
1847         (rs6000_emit_move): ..here.  Remove redundant tests.  Update
1848         create_TOC_reference calls.
1849         (rs6000_legitimize_reload_address): Formatting.  Handle splitting
1850         of medium/large model toc addresses.  Use use_toc_relative_ref.
1851         (print_operand): Formatting, style.  Adjust for toc changes.
1852         (print_operand_address): Likewise.
1853         (rs6000_output_addr_const_extra): Likewise.
1854         (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
1855         than a PLUS.  Use this formulation for both high and low part
1856         of -mcmodel=medium/large toc reference too.  Before reload,
1857         always use the small model formulation.
1858         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
1859         a PLUS in high part of addresses here.
1860         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
1861         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
1862         (largetoc_high, largetoc_low): Move earlier.  Cope when no
1863         base reg available.
1864         (largetoc_high_plus): New insn.
1865         (movsi_internal1, movsi_internal1_single, movsf_softfloat,
1866         movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
1867         (tocref): ..instead do so here, new insn and split.
1868
1869 2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1870
1871         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1872         RDRND, F16C and FSGSBASE.
1873
1874 2012-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1875
1876         PR rtl-optimzation/53373
1877         * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
1878         call pattern.  Update split patterns.
1879         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1880         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1881
1882 2012-05-20  Razya Ladelsky  <razya@il.ibm.com>
1883
1884         * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
1885         for outer loops.
1886
1887 2012-05-18  Jan Hubicka  <jh@suse.cz>
1888
1889         * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
1890         (cgraph_process_new_functions): Process also aliases.
1891         * lto-streamer-out.c (struct sets): Remove.
1892         (trivally_defined_alias): Remove.
1893         (output_alias_pair_p): Remove.
1894         (output_unreferenced_globals): Remove.
1895         (produce_symtab); Do not handle alias pairs.
1896         (produce_asm_for_decls): Likewise.
1897         * lto-streamer-in.c (input_alias_pairs): Remove.
1898         (lto_read_body): Do not input alias pairs.
1899         (lto_input_constructors_and_inits): Remove.
1900
1901 2012-05-18  Jan Hubicka  <jh@suse.cz>
1902
1903         * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
1904         aliases.
1905
1906 2012-05-18  Jan Hubicka  <jh@suse.cz>
1907
1908         * cgraphbuild.c (record_reference): Update.
1909         * lto-cgraph.c (lto_output_varpool_node): External vars
1910         are not in other partition even if they are not output
1911         in current partition.
1912         * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
1913         argument; fix.
1914         (canonicalize_constructor_val): Take FROM_DECL argument.
1915         (fold_ctor_reference, fold_string_cst_ctor_reference,
1916         fold_array_ctor_reference, fold_nonarray_ctor_reference,
1917         fold_ctor_reference): Likewise.
1918         (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
1919         * gimple.h (gimple_fold_builtin): Likewise.
1920
1921 2012-05-18  Olivier Hainque  <hainque@adacore.com>
1922
1923         * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
1924         $(libsubdir) as libexecsubdir.
1925
1926 2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1927
1928         * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
1929         relied on signed overflow behavior.
1930
1931 2012-05-18  Richard Guenther  <rguenther@suse.de>
1932
1933         PR tree-optimization/53346
1934         * tree-loop-distribution.c (ldist_gen): Make sure to apply
1935         builtin transform even when only a single partition with
1936         all reads/writes exists.
1937
1938 2012-05-18  Richard Guenther  <rguenther@suse.de>
1939
1940         PR tree-optimization/53390
1941         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
1942         strided loads.
1943
1944 2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1945
1946         * tree-ssa-reassoc.c (bip_map): Remove decl.
1947         (completely_remove_stmt): Remove function.
1948         (remove_def_if_absorbed_call): Remove function.
1949         (remove_visited_stmt_chain): Remove __builtin_powi handling.
1950         (possibly_move_powi): Remove function.
1951         (rewrite_expr_tree): Remove calls to possibly_move_powi.
1952         (rewrite_expr_tree_parallel): Likewise.
1953         (attempt_builtin_powi): Build multiplies explicitly rather than
1954         relying on the ops vector and rank system.
1955         (transform_stmt_to_copy): New function.
1956         (transform_stmt_to_multiply): Likewise.
1957         (reassociate_bb): Handle leftover operations after __builtin_powi
1958         optimization; build a final multiply if necessary.
1959
1960 2012-05-18  Jan Hubicka  <jh@suse.cz>
1961
1962         * cgraphunit.c (varpool_finalize_decl): Allow external decls.
1963         (mark_functions_to_output): Fix sanity check.
1964         * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
1965
1966 2012-05-18  Richard Guenther  <rguenther@suse.de>
1967
1968         * tree-flow.h (mark_symbols_for_renaming): Remove.
1969         * tree-dfa.c (mark_symbols_for_renaming): Likewise.
1970         * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
1971         (copy_debug_stmt): Likewise.
1972         (expand_call_inline): Likewise.
1973         (declare_return_variable): Mark the return variable for renaming
1974         if necessary.
1975
1976 2012-05-18  Andrew Stubbs  <ams@codesourcery.com>
1977
1978         * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
1979         prototype.
1980         * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
1981         * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
1982         (ashrdi3,lshrdi3): Likewise.
1983         (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
1984
1985 2012-05-18  Meador Inge  <meadori@codesourcery.com>
1986
1987         PR rtl-optimization/53352
1988         * cse.c (equiv_constant): Ignore paradoxical subregs.
1989
1990 2012-05-17  Steven Bosscher  <steven@gcc.gnu.org>
1991
1992         PR rtl-optimization/53125
1993         * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
1994         argument.  Simplify calculation of REG_LIVE_LENGTH for regnos that
1995         die in the basic block.  Correctly top off REG_FREQ and
1996         REG_FREQ_CALLS_CROSSED.
1997         Remove do_not_gen.
1998         (regstat_compute_ri): Allocate and free local_live_last_luid.
1999         Remove do_not_gen.
2000         (regstat_bb_compute_calls_crossed): Correctly top off
2001         REG_FREQ_CALLS_CROSSED.
2002
2003 2012-05-17  Jan Hubicka  <jh@suse.cz>
2004
2005         * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
2006         constructor over decl without.
2007         * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
2008         * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
2009         * cgraphunit.c (process_function_and_variable_attributes): Finalize
2010         extrnal decls.
2011         (mark_functions_to_output): Also accept bodies for functions with
2012         clones.
2013         (output_in_order): Skip external vars.
2014         * lto-cgraph.c (lto_output_node): External functions are never in other
2015         partition.
2016         (lto_output_varpool_node): Likewise.
2017         * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
2018         forgotten initializers.
2019         * ipa.c (process_references): Handle external vars.
2020         (symtab_remove_unreachable_nodes): Update to handle external vars.
2021         (varpool_externally_visible_p): External vars are externally visible.
2022         * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
2023         * varpool.c (varpool_remove_node): Remove constructor.
2024         (decide_is_variable_needed): Handle externals.
2025         (varpool_remove_unreferenced_decls): Likewise.
2026
2027 2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2028
2029         * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
2030         (enable_warning_as_error): Do not special case Wuninitialized.
2031         * optc-gen.awk: Add sanity checks.
2032
2033 2012-05-17  Jan Hubicka   <jh@suse.cz>
2034
2035         * ipa-reference.c (is_proper_for_analysis): Do not check flags
2036         that might change as result of global optimization.
2037         (analyze_function): Do not check analyzed and externally_visible
2038         flags; be happy about address dereferences.
2039         (propagate): Prune all_module_statics so it really contains just
2040         statics; prune all the local summaries.
2041         (ipa_reference_write_optimization_summary): Simplify.
2042
2043 2012-05-17  Kwok Cheung Yeung  <kcy@codesourcery.com>
2044
2045         * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
2046         * config/m68k/m68k-tables.opt: Regenerated.
2047         * doc/invoke.texi (M680x0 Options): Document.
2048
2049 2012-05-16  Dave Boutcher  <daveboutcher@gmail.com>
2050             Patrick Marlier  <patrick.marlier@gmail.com>
2051
2052         * trans-mem.c (ipa_tm_transform_clone): Transform functions with
2053         indirect calls.
2054
2055 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2056
2057         * configure: Regenerated.
2058
2059 2012-05-16  Andrew Pinski  <apinski@cavium.com>
2060
2061         * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
2062         GIMPLE_ASSIGN.
2063
2064 2012-05-16  David S. Miller  <davem@davemloft.net>
2065
2066         * jump.c (delete_related_insns): If we remove a CALL, make sure
2067         we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
2068
2069 2012-05-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2070
2071         PR tree-optimization/53217
2072         * tree-ssa-reassoc.c (bip_map): New static variable.
2073         (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
2074         (attempt_builtin_powi): Save feeding multiplies on a stack.
2075         (reassociate_bb): Create and destroy bip_map.
2076
2077 2012-05-16  Olivier Hainque  <hainque@adacore.com>
2078
2079         * Makefile.in (install-no-fixedincludes): New target, former toplevel
2080         gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
2081         Add comments and improve stamp preservation across the whole sequence.
2082         (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
2083
2084 2012-05-16  Richard Guenther  <rguenther@suse.de>
2085
2086         * tree-inline.c (insert_init_stmt): Do not call
2087         mark_symbols_for_renaming.
2088         (setup_one_parameter): Avoid initializing unused parameters.
2089         (declare_return_variable): Properly handle DECL_BY_REFERENCE
2090         return vars in SSA form.
2091
2092 2012-05-16  Richard Guenther  <rguenther@suse.de>
2093
2094         * tree-flow.h (get_virtual_var): Remove.
2095         * tree-dfa.c (get_virtual_var): Likewise.
2096
2097 2012-05-16  Richard Guenther  <rguenther@suse.de>
2098
2099         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
2100         Remove set-only bitmap of new names.
2101         (slpeel_tree_peel_loop_to_edge): Likewise.  Do not set
2102         CFG hooks.
2103         * tree-flow.h (ssa_names_to_replace): Remove.
2104         * tree-into-ssa.c (ssa_names_to_replace): Likewise.
2105
2106 2012-05-16  Richard Guenther  <rguenther@suse.de>
2107
2108         PR tree-optimization/53364
2109         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
2110         detect a view-conversion of the decl.
2111
2112 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
2113
2114         PR preprocessor/7263
2115         * c-tree.h (enum c_declspec_word): Declare new enum.
2116         (struct c_declspecs::locations): New member.
2117         (declspecs_add_qual, declspecs_add_scspec)
2118         (declspecs_add_addrspace, declspecs_add_alignas): Take a new
2119         location parameter.
2120         * c-decl.c (build_null_declspecs): Initialize the new struct
2121         c_declspecs::locations member.
2122         (declspecs_add_addrspace): Take a location parameter for the
2123         address space.  Store it onto declaration specifiers.
2124         (declspecs_add_qual): Likewise, take a location parameter for the
2125         qualifier.
2126         (declspecs_add_type): Likewise, take a location parameter for the
2127         type specifier.
2128         (declspecs_add_scspec): Likewise, take a location parameter for
2129         the storage class specifier.
2130         (declspecs_add_attrs): Likewise, take a location parameter for the
2131         first attribute.
2132         (declspecs_add_alignas): Likewise, take a location parameter for
2133         the alignas token.
2134         (finish_declspecs): For diagnostics, use the location of the
2135         relevant declspec, instead of the global input_location.
2136         * c-parser.c (c_parser_parameter_declaration): Pass the precise
2137         virtual location of the declspec to the declspecs-setters.
2138         (c_parser_declspecs): Likewise.  Avoid calling c_parser_peek_token
2139         repeatedly.
2140
2141 2012-05-16  Igor Zamyatin  <igor.zamyatin@intel.com>
2142
2143         * configure.ac: Stack protector enabling for Android targets.
2144         * configure: Regenerate.
2145
2146 2012-05-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
2147
2148         * ira.c (pseudo_move_insn): Delete.
2149         (find_moveable_pseudos): Don't set it.
2150         (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
2151         the definitions of the original pseudo.  Delete all of them.
2152
2153 2012-05-16  Olivier Hainque  <hainque@adacore.com>
2154
2155         * config/rs6000/rs6000-opts.h (enum processor_type): Add
2156         PROCESSOR_PPC8548.
2157         * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
2158         * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
2159         * config/rs6000/8540.md: indicate that the units/patterns apply to
2160         ppc8548 as well.
2161
2162         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
2163         default_cpu into implicit_cpu, conveying what --with-cpu was passed at
2164         configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
2165         related flags,  check that what is queried is supported by the selected
2166         configuration. Rework the single/double_float and MASK_STRING resets to
2167         hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
2168         costs for PROCESSOR_PPC8548 as well.
2169         (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
2170         (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
2171         statement instead of a sequence of ifs.
2172
2173         * config/rs6000/rs6000.h (TARGET_E500): Remove.
2174         (TARGET_NO_LWSYNC): Adjust accordingly.
2175         * config/rs6000/e500.h (TARGET_E500): Remove.
2176         (CHECK_E500_OPTIONS): Adjust accordingly.
2177         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
2178         (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
2179         * config/rs6000/linuxspe.h: Likewise.
2180         * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
2181         superfluous comments.
2182         * config/rs6000/e500-double.h: Remove.
2183
2184         * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
2185         default to with_cpu=8548 if --enable-e500-double, and to 8540
2186         otherwise.
2187         (set misc flags section): For powerpc*|rs6000*, remove inclusion
2188         of e500-double.h for --enable-e500-double.
2189
2190 2012-05-16  Olivier Hainque  <hainque@adacore.com>
2191
2192         * Makefile.in (s-header-vars): Resort to -n instead of trailing
2193         -e d in sed invocation.
2194
2195 2012-05-16  Hans-Peter Nilsson  <hp@axis.com>
2196
2197         * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
2198         source-code.
2199         * doc/tm.texi: Regenerate.
2200
2201 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
2202
2203         * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
2204
2205 2012-05-15  Jakub Jelinek  <jakub@redhat.com>
2206
2207         PR target/53358
2208         * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
2209         that operands[2] is either immediate, or q_regs_operand.
2210
2211 2012-05-15  Richard Guenther  <rguenther@suse.de>
2212
2213         * cgraphunit.c (thunk_adjust): Use make_rename_temp.
2214         (assemble_thunk): Likewise.  Manually rename and register
2215         function arguments.
2216
2217 2012-05-15  Richard Guenther  <rguenther@suse.de>
2218
2219         PR tree-optimization/53355
2220         * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
2221         by constants.
2222
2223 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2224
2225         * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
2226
2227 2012-05-15  Richard Guenther  <rguenther@suse.de>
2228
2229         * gimple.c (gimple_set_modified): Move ...
2230         * gimple.h (gimple_set_modified): ... here.
2231
2232 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2233
2234         * ira-color.c (move_spill_restore): Add a guard.
2235
2236 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2237
2238         * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
2239         plus_constant.
2240
2241 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2242
2243         * gimplify.c (gimplify_init_constructor): Do a block move for very
2244         small objects as well.
2245
2246 2012-05-15  Bernd Schmidt  <bernds@codesourcery.com>
2247
2248         * ira.c (find_moveable_pseudos): Skip registers whose
2249         DF_REG_EQ_USE_COUNT is nonzero.
2250
2251 2012-05-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
2252
2253         * doc/md.texi (fma): Define to only be applicable for single rounding.
2254
2255 2012-05-14  Uros Bizjak  <ubizjak@gmail.com>
2256
2257         PR target/46098
2258         * config/i386/i386.c (ix86_expand_special_args_builtin): Always
2259         generate target register for "load" class builtins.
2260
2261         Revert:
2262         2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
2263
2264         PR target/46098
2265         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
2266         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
2267         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
2268         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
2269         (<sse>_movu<ssemodesuffix>): New expander.
2270         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
2271         (avx_movdqu<avxmodesuffix>): New expander.
2272         (*sse2_movdqu): Rename from sse2_movdqu.
2273         (sse2_movdqu): New expander.
2274
2275 2012-05-14  Marc Glisse  <marc.glisse@inria.fr>
2276
2277         PR target/52607
2278         * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
2279         (canonicalize_perm): ... new function.
2280         (expand_vec_perm_2vperm2f128_vshuf): New function.
2281         (ix86_expand_vec_perm_const_1): Call it.
2282
2283 2012-05-14  Andrew Pinski  <apinski@cavium.com>
2284             H.J. Lu  <hongjiu.lu@intel.com>
2285             Jakub Jelinek  <jakub@redhat.com>
2286
2287         PR target/53315
2288         * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
2289         (xbegin): Updated.
2290
2291 2012-05-14  Jakub Jelinek  <jakub@redhat.com>
2292
2293         * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
2294         lineno 1 the same as lineno 0 before first start file directive.
2295         (optimize_macinfo_range): Likewise.
2296
2297         * dwarf2out.c (have_macinfo): Define.
2298         (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
2299         attribute, don't force empty compilation unit and don't emit any
2300         .debug_macinfo/.debug_macro section if macinfo_table is empty.
2301
2302 2012-05-14  Georg-Johann Lay  <avr@gjlay.de>
2303
2304         PR target/53344
2305         * config/avr/avr.c (avr_const_address_lo16): Remove.
2306         (avr_assemble_integer):  Print ".byte lo8(x)",
2307         ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
2308         .warning if 3-byte address is assembled.
2309         * doc/extend.texi (AVR Named Address Spaces): Document that
2310         binutils 2.23 is needed to assemble 3-byte addresses.
2311
2312 2012-05-14  Richard Guenther  <rguenther@suse.de>
2313
2314         * tree-vect-data-refs.c (vect_setup_realignment): Remove
2315         call to mark_symbols_for_renaming.
2316         (vect_permute_load_chain): Likewise.
2317         * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
2318         instead of calling mark_symbols_for_renaming.
2319         * tree-vect-stmts.c (read_vector_array): Remove call to
2320         mark_symbols_for_renaming.
2321         (write_vector_array): Likewise.
2322         (vectorizable_call): Likewise.
2323         (vectorizable_store): Likewise.
2324         (vectorizable_load): Likewise.
2325         * matrix-reorg.c (transform_allocation_sites): Likewise.
2326         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2327         (create_expression_by_pieces): Likewise.
2328
2329 2012-05-14  Richard Guenther  <rguenther@suse.de>
2330
2331         * gimplify.c (gimple_regimplify_operands): Only mark the LHS
2332         of statements for renaming.
2333         (force_gimple_operand_1): Likewise, consistently for both
2334         calls to force_gimple_operand and force_gimple_operand_gsi.
2335
2336 2012-05-14  Richard Guenther  <rguenther@suse.de>
2337
2338         * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
2339         * omp-low.c (expand_omp_taskreg): Properly conditionalize call
2340         to update_ssa.
2341         (expand_omp_for): Likewise.
2342         (expand_omp_for_generic): Adjust conditional add to referenced vars.
2343         Use make_rename_temp for temporaries that should be rewritten into
2344         SSA form.
2345         (expand_omp_for_static_nochunk): Likewise.
2346         (expand_omp_atomic_pipeline): Likewise.
2347
2348 2012-05-14  Richard Guenther  <rguenther@suse.de>
2349
2350         PR tree-optimization/53331
2351         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
2352         strided loads.
2353         * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
2354
2355 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2356
2357         PR 53063
2358         * doc/options.texi: (LangEnabledBy): Document it.
2359         * optc-gen.awk: Handle LangEnabledBy.
2360         * opth-gen.awk: Generate declaration for lang-specific functions.
2361         * opt-read.awk: Record lang numbers.
2362         * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
2363         (lang_sanitized_name): New.
2364
2365 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
2366
2367         * attribs.c (decl_attributes): Avoid emitting a warning if
2368         ATTR_FLAG_BUILT_IN.
2369         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
2370         codes.  Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
2371         * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define.  Use it to
2372         define a string "1".
2373         (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
2374         * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
2375         BUILT_IN_STRCPY): Use it for these functions.
2376         * postreload.c (reload_combine): Deal with SETs inside
2377         CALL_INSN_FUNCTION_USAGE.
2378         * caller-save.c (setup_save_areas, save_call_clobbered_regs):
2379         Look for REG_RETURNED notes and use a cheap restore if possible.
2380         * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
2381         (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
2382         * ira-build.c (ira_create_allocno, create_cap_allocno,
2383         propagate_allocno_info, propagate_some_info_from_allocno,
2384         copy_info_to_removed_store_destination, ira_flattening): Handle it.
2385         * ira-lives.c (pseudo_regno_single_word_and_live_p,
2386         find_call_crossed_cheap_reg): New static functions.
2387         (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
2388         and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible.  Also make
2389         a REG_RETURNED note in that case.
2390         * ira.c (setup_reg_renumber): Change assert to allow cases where
2391         allocnos only cross calls for which they are cheap to restore.
2392         * ira-costs.c (ira_tune_allocno_costs): Compare
2393         ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
2394         than 0.
2395         * reg-notes.def (REG_RETURNED): New note.
2396         * cse.c (cse_insn): Likewise.
2397         * sched-deps.c (sched_analyze_insn): Likewise.
2398         * expr.c (init_block_move_fn): Set a "fn spec" attribute.
2399         * calls.c (decl_return_flags): New static function.
2400         (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
2401         functions that return one of their arguments.
2402         * regcprop.c (struct kill_set_value_data): New.
2403         (kill_set_value): Interpret data as a pointer to such a struct.
2404         Do nothing if the caller wants the register to be ignored.
2405         (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
2406
2407 2012-05-14  Richard Guenther  <rguenther@suse.de>
2408
2409         PR tree-optimization/53340
2410         * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
2411
2412 2012-05-14  Richard Guenther  <rguenther@suse.de>
2413
2414         * gimplify.c (gimplify_expr): Remove odd code.
2415
2416 2012-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2417
2418         * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
2419         into a PLUS_EXPR byte offset.
2420
2421         * tree-ssa-pre.c (can_value_number_call): Delete.
2422         (compute_avail): Skip all statements with side effects.
2423         <GIMPLE_CALL>: Skip calls to internal functions.
2424
2425 2012-05-13  Steven Bosscher  <steven@gcc.gnu.org>
2426
2427         * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
2428
2429 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2430
2431         * common.opt (Wtype-limits): Use EnabledBy.
2432
2433 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
2434
2435         * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
2436         (pushtf splitter): Ditto.
2437         (movtf): Ditto.
2438         (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
2439         (<code>tf2): Enable for TARGET_SSE.
2440         (*absnegtf2_sse): Ditto.
2441         (copysign<mode>3): Enable TFmode for TARGET_SSE.
2442         (copysign<mode>3_const): Ditto.
2443         (copysign<mode>3_var): Ditto.
2444         * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
2445         (*andnottf3): Ditto.  Use V4SFmode for !TARGET_SSE2.
2446         (*<code>tf3): Ditto.
2447         * config/i386/i386.c (struct builtin_description bdesc_args)
2448         <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
2449         <IX86_BUILTIN_COPYSIGNQ>: Ditto.
2450         (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
2451         Emit a normal call if SSE isn't available.
2452
2453 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
2454
2455         * config/i386/sse.md (<sse>_andnot<mode>3): Handle
2456         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
2457         (<code><mode>3): Ditto.
2458         (*andnot<mode>3): Ditto.
2459         (*andnottf3): Ditto.
2460         (*<code><mode>3): Ditto.
2461         (<code>tf3): Ditto.
2462
2463 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2464
2465         * optc-gen.awk: Error instead of warning for conflicting help.
2466
2467 2012-05-12  Jason Merrill  <jason@redhat.com>
2468
2469         PR debug/53235
2470         * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
2471         comdat types.
2472
2473 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
2474
2475         * function.c (requires_stack_frame_p): If the function can throw
2476         non-call exceptions, return true if the insn can throw internally.
2477
2478 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
2479
2480         * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
2481
2482 2012-05-12  Uros Bizjak  <ubizjak@gmail.com>
2483
2484         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
2485         ORDERED and UNORDERED conditions.
2486
2487 2012-05-11  Richard Guenther  <rguenther@suse.de>
2488
2489         * tree-flow.h (referenced_var_check_and_insert): Remove.
2490         (find_new_referenced_vars): Likewise.
2491         * tree-dfa.c (referenced_var_check_and_insert): Make static.
2492         (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
2493         * tree-inline.c (copy_bb): Use find_referenced_vars_in
2494         instead of find_new_referenced_vars.
2495         * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
2496
2497 2012-05-11  Richard Guenther  <rguenther@suse.de>
2498
2499         * tree-pass.h (pass_rest_of_compilation,
2500         pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
2501         Remove.
2502         * passes.c (pass_all_optimizations, pass_postreload,
2503         pass_all_early_optimizations): Make static.
2504         (pass_rest_of_compilation): Likewise.  Make it an RTL_PASS.
2505         * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
2506         * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
2507         (delete_tree_ssa): Do not call fini_phinodes.
2508         * tree-flow.h (init_phinodes, fini_phinodes): Remove.
2509
2510 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2511
2512         PR 53063
2513         * doc/options.texi (EnabledBy): Document
2514         * opts.c: Include opts.h and options.h before tm.h.
2515         (finish_options): Do not handle some sub-options here...
2516         (common_handle_option): ... instead call common_handle_option_auto
2517         here.
2518         * optc-gen.awk: Handle EnabledBy.
2519         * opth-gen.awk: Declare common_handle_option_auto.
2520         * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
2521         (Wmaybe-uninitialized): Likewise.
2522         (Wunused-but-set-variable): Likewise.
2523         (Wunused-function): Likewise.
2524         (Wunused-label): Likewise.
2525         (Wunused-value): Likewise.
2526         (Wunused-variable): Likewise.
2527         * opt-read.awk: Create opt_numbers array.
2528
2529 2012-05-11  Richard Guenther  <rguenther@suse.de>
2530
2531         PR tree-optimization/53295
2532         * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
2533         strides.
2534         * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
2535         strides when analyzing data-references in a loop context.
2536         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
2537         non-constant strides for now.
2538         (vect_enhance_data_refs_alignment): Ignore data references
2539         that are strided loads.
2540         (vect_analyze_data_ref_access): Handle non-constant strides.
2541         (vect_check_strided_load): Verify the data-reference is a load.
2542         (vect_analyze_data_refs): Restructure to make strided load
2543         support not dependent on gather support.
2544         * tree-vect-stmts.c (vectorizable_load): Avoid useless work
2545         when doing strided or gather loads.
2546         * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
2547         integer_zerop to compare stride with zero.
2548
2549 2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
2550
2551         * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
2552
2553 2012-05-11  Jan Hubicka  <jh@suse.cz>
2554
2555         PR bootstrap/53300
2556         * varpool.c (varpool_assemble_decl): Also output constat pool entries
2557         that output_constant_pool missed.
2558
2559 2012-05-11  Mingjie Xing  <mingjie.xing@gmail.com>
2560
2561         * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
2562         MULTILIB_EXTRA_OPTS.
2563
2564 2012-05-11  Uros Bizjak  <ubizjak@gmail.com>
2565
2566         PR target/53291
2567         * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
2568
2569 2012-05-11  Uros Bizjak  <ubizjak@gmail.com>
2570
2571         * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
2572         optimization for TARGET_AVX.
2573         (*movti_internal_sse): Ditto.
2574         (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
2575         (*movdi_internal): Ditto.
2576         (*movsi_internal): Ditto.
2577         (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
2578         (*movdf_internal_rex64): Ditto.
2579         (*movfd_internal): Ditto.
2580         (*movsf_internal): Ditto.
2581         * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
2582
2583 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
2584
2585         * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
2586         reference as size attribute.
2587
2588 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
2589             Tristan Gingold  <gingold@adacore.com>
2590
2591         * doc/md.texi (Standard Names): Document probe_stack_address.
2592         * explow.c (emit_stack_probe): Handle probe_stack_address.
2593         * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
2594         (UNSPECV_PROBE_STACK_RANGE): Likewise.
2595         (probe_stack_address): New insn.
2596         (probe_stack_range): Likewise.
2597         * config/ia64/ia64.c: Include common/common-target.h.
2598         (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
2599         checking is enabled.
2600         (ia64_emit_probe_stack_range): New function.
2601         (output_probe_stack_range): Likewise.
2602         (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
2603         builtin stack checking is enabled.
2604         (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
2605         and UNSPECV_PROBE_STACK_ADDRESS.
2606         (unknown_for_bundling_p): New predicate.
2607         (group_barrier_needed): Use important_for_bundling_p.
2608         (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
2609         (issue_nops_and_insn): Likewise.
2610         (bundling): Likewise.
2611         (final_emit_insn_group_barriers): Likewise.
2612         * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
2613         * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
2614         (STACK_CHECK_PROTECT): Likewise.
2615         * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2616
2617 2012-05-10  Jan Hubicka  <jh@suse.cz>
2618
2619         * ipa-inline.c (update_all_callee_keys): Remove.
2620         (inline_small_functions): Simplify priority updating.
2621
2622 2012-05-10  Jan Hubicka  <jh@suse.cz>
2623
2624         * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
2625
2626 2012-05-10  Jan Hubicka  <jh@suse.cz>
2627
2628         * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
2629         (symtab_remove_unreachable_nodes): ... this one.
2630         * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
2631         * cgraphunit.c (ipa_passes): Update.
2632         * cgraphclones.c (cgraph_materialize_all_clones): Update.
2633         * cgraph.c (cgraph_release_function_body): Only turn initial
2634         into error mark when initial was previously set.
2635         * ipa-inline.c (ipa_inline): Update.
2636         * ipa.c: Include ipa-inline.h
2637         (enqueue_cgraph_node, enqueue_varpool_node): Remove.
2638         (enqueue_node): New function.
2639         (process_references): Update.
2640         (symtab_remove_unreachable_nodes): Cleanup.
2641         * passes.c (execute_todo, execute_one_pass): Update.
2642
2643 2012-05-10  Vladimir Makarov  <vmakarov@redhat.com>
2644
2645         PR rtl-optimization/53125
2646         * ira.c (ira): Call find_moveable_pseudos and
2647         move_unallocated_pseudos if only ira_conflicts_p is true.
2648
2649 2012-05-10  Uros Bizjak  <ubizjak@gmail.com>
2650
2651         * config/i386/i386.md (*movoi_internal_avx): Handle
2652         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
2653         (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
2654         (*movti_internal_sse): Ditto.
2655         (*movtf_internal): Ditto.
2656         * config/i386/sse.md (ssePSmode): New mode attribute.
2657         (*move<mode>_internal): Use ssePSmode.
2658         (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
2659         (*<sse2>_movdqu<avxsizesuffix>): Ditto.
2660         * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
2661         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
2662
2663 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
2664
2665         * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
2666         DECL_ORIGINAL_TYPE if it is present.
2667
2668 2012-05-10  Nick Clifton  <nickc@redhat.com>
2669
2670         PR target/53120
2671         * config/m32c/bitops.md (bset_qi): Change operand 2 from having
2672         a "0" constraint to being a (match_dup 0).
2673
2674 2012-05-10  Richard Guenther  <rguenther@suse.de>
2675
2676         * stor-layout.c (byte_from_pos): Amend comment.
2677
2678 2012-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2679
2680         * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
2681         Document requirement to call in constructors.
2682
2683         * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
2684
2685 2012-05-10  Richard Guenther  <rguenther@suse.de>
2686
2687         * tree.h (TYPE_IS_SIZETYPE): Remove.
2688         * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
2689         (extract_muldiv_1): Likewise.
2690         * gimple.c (gtc_visit): Likewise.
2691         (gimple_types_compatible_p): Likewise.
2692         (iterative_hash_canonical_type): Likewise.
2693         (gimple_canonical_types_compatible_p): Likewise.
2694         * gimplify.c (gimplify_one_sizepos): Likewise.
2695         * print-tree.c (print_node): Likewise.
2696         * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
2697
2698 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
2699
2700         PR target/52908
2701         * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
2702         xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
2703         (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
2704         instead of xop_mulv2div2di3_low.
2705         (xop_p<macs>dql): Fix vec_select selector.
2706         (xop_p<macs>dqh): Ditto.
2707         (xop_mulv2div2di3_low): Remove insn_and_split pattern.
2708         (xop_mulv2div2di3_high): Ditto.
2709
2710 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2711
2712         PR c++/53289
2713         * diagnostic.h (diagnostic_context): Add last_location.
2714         * diagnostic.c (diagnostic_initialize): Initialize it.
2715         (diagnostic_show_locus): Use it.
2716
2717 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2718
2719         * doc/extend.texi (Function Attributes): Point xref to section
2720         about Pragmas.
2721
2722 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
2723
2724         * config/i386/i386.c (*movdf_internal_rex64): Remove
2725         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
2726         Calculate "mode" attribute according to
2727         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
2728         (*movdf_internal): Ditto.
2729
2730 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
2731
2732         PR target/44141
2733         * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
2734         128 bit vectors specially for TARGET_AVX.  Emit sse2_movupd and
2735         sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2736         or when optimizing for size.
2737         * config/i386/sse.md (*mov<mode>_internal): Remove
2738         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
2739         Calculate "mode" attribute according to optimize_function_for_size_p
2740         and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
2741         (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
2742         depending on the mode of the instruction.  Calculate "mode" attribute
2743         according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
2744         and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
2745         (*<sse2>_movdqu<avxsizesuffix>): Ditto.
2746
2747 2012-05-09  Georg-Johann Lay  <avr@gjlay.de>
2748
2749         PR target/53256
2750         * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
2751         * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
2752         * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
2753         * config/avr/avr.c (avr_asm_declare_function_name): Remove.
2754         (expand_prologue): Move initialization of cfun->machine->is_naked,
2755         is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
2756         (avr_set_current_function): ...this new static function.
2757         (TARGET_SET_CURRENT_FUNCTION): New define.
2758         (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
2759         checking attributes of current_function_decl.
2760         (avr_regs_to_save): Ditto.
2761         (signal_function_p): Rename to avr_signal_function_p.
2762         (interrupt_function_p): Rename to avr_interrupt_function_p.
2763
2764         * doc/extend.texi (Function Attributes): Better explanation of
2765         'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
2766         alphabetical order.
2767
2768 2012-05-09  Michael Matz  <matz@suse.de>
2769
2770         PR tree-optimization/53185
2771         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
2772         peeling when we see strided loads.
2773
2774 2012-05-09  Matthias Klose  <doko@ubuntu.com>
2775
2776         * gcc-ar.c (main): Don't check for execute bits for the plugin.
2777
2778 2012-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2779
2780         * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
2781         Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
2782         USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
2783         * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
2784         (USE_LOAD_POST_INCREMENT): Define.
2785         (USE_LOAD_PRE_INCREMENT): Define.
2786         (USE_LOAD_POST_DECREMENT): Define.
2787         (USE_LOAD_PRE_DECREMENT): Define.
2788         (USE_STORE_PRE_DECREMENT): Define.
2789         (USE_STORE_PRE_INCREMENT): Define.
2790         (USE_STORE_POST_DECREMENT): Define.
2791         (USE_STORE_POST_INCREMENT): Define.
2792         (arm_auto_incmodes): Add enumeration.
2793         * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
2794         * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
2795
2796 2012-05-09  Jakub Jelinek  <jakub@redhat.com>
2797
2798         PR tree-optimization/53226
2799         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
2800         prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
2801         before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
2802         doesn't need to be revisited, look for earliest stmt with
2803         !gimple_plf (stmt, GF_PLF_1) if something changed.
2804
2805 2012-05-09  Terry Guo  <terry.guo@arm.com>
2806
2807         * genmultilib: Update copyright dates.
2808         * doc/fragments.texi: Ditto.
2809
2810 2012-05-09  Terry Guo  <terry.guo@arm.com>
2811
2812         * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
2813         * genmultilib (MULTILIB_REQUIRED): New.
2814         * doc/fragments.texi: Document the MULTILIB_REQUIRED.
2815
2816 2012-05-09  Richard Guenther  <rguenther@suse.de>
2817
2818         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
2819         (vect_do_peeling_for_loop_bound): Likewise.
2820         (vect_do_peeling_for_alignment): Likewise.
2821         * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
2822         (vect_do_peeling_for_loop_bound): Get check_profitability and
2823         threshold as parameters.
2824         (vect_do_peeling_for_alignment): Likewise.
2825         (vect_loop_versioning): Likewise.
2826         * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
2827         and threshold here.  Control where to put the check here.
2828
2829 2012-05-09  Richard Sandiford  <rdsandiford@googlemail.com>
2830
2831         PR middle-end/53249
2832         * dwarf2out.h (get_address_mode): Move declaration to...
2833         * rtl.h: ...here.
2834         * dwarf2out.c (get_address_mode): Move definition to...
2835         * rtlanal.c: ...here.
2836         * var-tracking.c (get_address_mode): Delete.
2837         * combine.c (find_split_point): Use get_address_mode instead of
2838         targetm.addr_space.address_mode.
2839         * cselib.c (cselib_record_sets): Likewise.
2840         * dse.c (canon_address, record_store): Likewise.
2841         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
2842         * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
2843         (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
2844         (expand_expr_real_1): Likewise.
2845         * ifcvt.c (noce_try_cmove_arith): Likewise.
2846         * optabs.c (maybe_legitimize_operand_same_code): Likewise.
2847         * reload.c (find_reloads): Likewise.
2848         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
2849         * sel-sched-dump.c (debug_mem_addr_value): Likewise.
2850
2851 2012-05-09  Maciej W. Rozycki  <macro@codesourcery.com>
2852
2853         * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
2854         information from the instruction produced.
2855
2856 2012-05-09  Richard Guenther  <rguenther@suse.de>
2857
2858         * stor-layout.c (bit_from_pos): Document.
2859         (byte_from_pos): Likewise.  Optimize.
2860         (pos_from_bit): Likewise.
2861         (normalize_offset): Use pos_from_bit instead of replicating it.
2862
2863 2012-05-09  Alan Modra  <amodra@gmail.com>
2864
2865         PR target/53271
2866         * config/rs6000/rs6000.c (gen_frame_set): New function.
2867         (gen_frame_load, gen_frame_store): New functions.
2868         (rs6000_savres_rtx): Use the above.
2869         (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
2870         Correct mode used for CR2 in save/restore_world patterns.
2871         Don't emit instructions for eh_return frame unwind reg info.
2872
2873 2012-05-08  Jan Hubicka  <jh@suse.cz>
2874
2875         * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
2876         with VALUE_EXPR.
2877         * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
2878         are removable.
2879         * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
2880         need to wrapup.
2881         (compile_file): Do not output variables.
2882         * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
2883         output it.
2884         * langhooks.c: Include timevar.h
2885         (write_global_declarations): Finalize compilation unit after wrapup;
2886         set timevars correctly.
2887         * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
2888         not to be added to varpool.
2889         * varpool.c (varpool_assemble_decl): Sanity check that we are called
2890         only on cases where it makes sense; skip constant pool and value expr
2891         vars.
2892
2893 2012-05-08  David S. Miller  <davem@davemloft.net>
2894
2895         * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
2896         * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
2897         * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
2898
2899 2012-05-08  Richard Sandiford  <rdsandiford@googlemail.com>
2900
2901         PR rtl-optimization/53278
2902         * lower-subreg.c (decompose_multiword_subregs): Remove left-over
2903         speed_p code from earlier patch.
2904
2905 2012-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
2906
2907         PR target/51244
2908         * config/sh/sh.md (*branch_true, *branch_false): New insns.
2909
2910 2012-05-08  Teresa Johnson  <tejohnson@google.com>
2911
2912         * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
2913         * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
2914
2915 2012-05-08  Jan Hubicka  <jh@suse.cz>
2916
2917         * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
2918         (cgraph_create_node_1): Rename to ...
2919         (cgraph_create_empty_node): ... this one; export.
2920         (cgraph_create_node): Update.
2921         (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
2922         (cgraph_create_edge_including_clones): Likewise.
2923         (cgraph_find_replacement_node): Likewise.
2924         (cgraph_clone_edge): Likewise.
2925         (cgraph_clone_node): Likewise.
2926         (clone_function_name): Likewise.
2927         (cgraph_create_virtual_clone): Likewise.
2928         (cgraph_remove_node_and_inline_clones): Likewise.
2929         (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
2930         * cgraph.h: Reorder declarations so they match file of origin.
2931         (cgraph_create_empty_node): Declare.
2932         * cgraphunit.c (update_call_expr): Move to cgraphclones.c
2933         (cgraph_copy_node_for_versioning): Likewise.
2934         (cgraph_function_versioning): Likewise.
2935         (cgraph_materialize_clone): Likewise.
2936         (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
2937         (cgraph_materialize_all_clones): Likewise.
2938         * cgraphclones.c: New file.
2939         * Makefile.in: Update for cgraphclones.
2940
2941 2012-05-08  Uros Bizjak  <ubizjak@gmail.com>
2942
2943         PR target/53176
2944         * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
2945         (ix86_rtx_costs): Handle SET.
2946
2947 2012-05-08  Michael Matz  <matz@suse.de>
2948
2949         * basic-block.h (struct rtl_bb_info): Remove visited member and
2950         move head_ member to ...
2951         (struct basic_block_def.basic_block_il_dependent): ... the new
2952         member x, replacing but containing old member rtl.
2953         (enum bb_flags): New BB_VISITED flag.
2954         (BB_HEADER, BB_FOOTER): New macros.
2955
2956         * jump.c (mark_all_labels): Adjust.
2957         * cfgcleanup.c (try_optimize_cfg): Adjust.
2958         * cfglayout.c (record_effective_endpoints): Adjust.
2959         (relink_block_chain): Ditto (and don't fiddle with visited).
2960         (fixup_reorder_chain): Adjust.
2961         (fixup_fallthru_exit_predecessor): Ditto.
2962         (cfg_layout_duplicate_bb): Ditto.
2963         * combine.c (update_cfg_for_uncondjump): Adjust.
2964         * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
2965         (bb_visited_trace): New accessor.
2966         (mark_bb_visited): Move in front.
2967         (rotate_loop): Use bb_visited_trace.
2968         (find_traces_1_round): Ditto.
2969         (emit_barrier_after): Ditto.
2970         (copy_bb): Ditto, and initialize visited on resize.
2971         (reorder_basic_blocks): Initize visited member.
2972         (duplicate_computed_gotos): Clear bb flags at start, use
2973         BB_VISITED flags.
2974
2975         * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
2976         (rtl_verify_flow_info_1): Ditto.
2977         (cfg_layout_split_block): Ditto.
2978         (cfg_layout_delete_block): Ditto.
2979         (cfg_layout_merge_blocks): Ditto.
2980         (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
2981
2982 2012-05-08  Hans-Peter Nilsson  <hp@axis.com>
2983
2984         PR target/53272
2985         * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
2986         when a constant source operand matches an "I" constraint, the "no
2987         CC0 change" applies to a register-destination only, not a
2988         strict_low_part-destination.
2989
2990 2012-05-08  Richard Guenther  <rguenther@suse.de>
2991
2992         * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
2993         to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
2994
2995 2012-05-08  Georg-Johann Lay  <avr@gjlay.de>
2996
2997         * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
2998
2999         * doc/avr-mmcu.texi: New auto-generated file.
3000         * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
3001         to document all valid -mmcu= arguments.
3002
3003         * config/avr/avr.h (arch_info_s): New struct definition.
3004         * config/avr/avr-devices.c (avr_texinfo): New variable.
3005         * config/avr/gen-avr-mmcu-texi.c: New file.
3006         * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
3007
3008 2012-05-08  Dehao Chen  <dehao@google.com>
3009
3010         * predict.c (find_qualified_ssa_name): New.
3011         (find_ssa_name_in_expr): New.
3012         (find_ssa_name_in_assign_stmt): New.
3013         (is_comparison_with_loop_invariant_p): New.
3014         (is_bound_expr_similar): New.
3015         (predict_iv_comparison): New.
3016         (predict_loops): Add heuristic for loop-nested branches that compare an
3017         induction variable to a loop bound variable.
3018         * predict.def (PRED_LOOP_IV_COMPARE): New macro.
3019
3020 2012-05-08  Uros Bizjak  <ubizjak@gmail.com>
3021
3022         * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
3023         TARGET_BDVER2 defines where appropriate.
3024
3025 2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>
3026
3027         * configure.ac (PLUGIN_LD): Rename into...
3028         (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
3029         * config.in: Regenerate.
3030         * configure: Likewise.
3031         * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
3032
3033 2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>
3034
3035         * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
3036         computation using the precision of the index type.
3037         * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
3038         (fold_array_ctor_reference): Do index computations in the index type.
3039
3040 2012-05-07  Georg-Johann Lay  <avr@gjlay.de>
3041
3042         * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
3043         down to plus_constant.
3044         (expand_epilogue): Ditto.
3045
3046 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3047
3048         * postreload.c (reload_cse_regs): Make static.
3049         * reload.h (reload_cse_regs): Remove prototype.
3050
3051 2012-05-07  Richard Henderson  <rth@redhat.com>
3052
3053         * config/alpha/alpha.md (clear_cache): New pattern.
3054
3055 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3056
3057         PR middle-end/53245
3058         * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
3059         is folded to a type boundary value, verify that the resulting case
3060         label is still a care range.
3061
3062 2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
3063
3064         * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
3065         only for TARGET_GENERIC, when not optimizing for size.
3066         (*ffs<mode>_1): Ditto.
3067
3068 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3069
3070         * tree-cfg.c (verify_gimple_switch): Tighten checks.
3071
3072 2012-05-07  Jakub Jelinek  <jakub@redhat.com>
3073
3074         PR tree-optimization/53239
3075         * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
3076         of DECL_BY_REFERENCE RESULT_DECL to nonnull.
3077
3078 2012-05-07  Richard Guenther  <rguenther@suse.de>
3079
3080         PR tree-optimization/53195
3081         * tree-inline.c (setup_one_parameter): Properly add referenced
3082         vars from the parameters new known value.
3083
3084 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3085
3086         * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
3087         (sched_branch_type): Remove.
3088         (m68k_sched_md_init_global): Don't allocate it.
3089         (m68k_sched_md_finish_global): Don't free it.
3090         * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
3091         * config/m68k/m68k.md: Set the type of insns using
3092         m68k_sched_branch_type to bcc directly.
3093
3094 2012-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3095
3096         * config/sol2.c (solaris_override_options): New function.
3097         * config/sol2-protos.h (solaris_override_options): Declare.
3098         * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
3099
3100 2012-05-07  Richard Guenther  <rguenther@suse.de>
3101
3102         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
3103         whether we failed to compute data dependences.
3104         (loop_prefetch_arrays): Fail if we failed.
3105
3106 2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
3107             Paolo Bonzini  <bonzini@gnu.org>
3108
3109         * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
3110         Emit bsf when optimizing for size.
3111         (*ffs<mode>_1): Ditto.
3112
3113 2012-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
3114
3115         PR target/53250
3116         * config/sh/sh.c (sh_rtx_costs): Handle SET.
3117
3118 2012-05-06  Uros Bizjak  <ubizjak@gmail.com>
3119
3120         PR target/53227
3121         * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
3122         (bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
3123         predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
3124         (bswapsi2): Ditto.
3125         (*bswapdi2_doubleword): New insn pattern.
3126         (*bswap<mode>2): Rename from *bswap<mode>2_1.
3127
3128 2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
3129
3130         * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
3131         (mips_set_reg_reg_cost): Likewise.
3132         (mips_rtx_costs): Handle SET.
3133
3134 2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
3135
3136         * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
3137         (compute_costs): Likewise for the zero extension.  Use set_rtx_cost
3138         to compute the cost of moves.  Set the mode of the target register.
3139
3140 2012-05-05  Richard Sandiford  <rdsandiford@googlemail.com>
3141
3142         * rtl.h (plus_constant, plus_constant_mode): Merge into a single
3143         plus_constant function.
3144         * explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
3145         that the mode is sensible.
3146         (use_anchored_address, round_push, allocate_dynamic_stack_space)
3147         (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
3148         plus_constant.
3149
3150         * alias.c (canon_rtx): Likewise.
3151         (init_alias_analysis): Likewise.
3152         * builtins.c (expand_builtin_return_addr)
3153         (expand_builtin_setjmp_setup, expand_builtin_longjmp)
3154         (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
3155         (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
3156         (expand_builtin_stpcpy): Likewise.
3157         * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
3158         (compute_argument_addresses, internal_arg_pointer_based_exp)
3159         (expand_call, emit_library_call_value_1): Likewise.
3160         * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
3161         * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
3162         * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
3163         * cse.c (insert_const_anchor, find_reg_offset_for_const)
3164         (use_related_value, fold_rtx): Likewise.
3165         * cselib.c (cselib_subst_to_values): Likewise.
3166         * dse.c (record_store, check_mem_read_rtx): Likewise.
3167         * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
3168         * emit-rtl.c (adjust_address_1): Likewise.
3169         * except.c (sjlj_emit_function_enter)
3170         (expand_builtin_extract_return_addr)
3171         (expand_builtin_frob_return_addr): Likewise.
3172         * expmed.c (expand_divmod): Likewise.
3173         * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
3174         (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
3175         (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
3176         * function.c (assign_stack_local_1)
3177         (instantiate_virtual_regs_in_rtx): Likewise.
3178         * optabs.c (prepare_cmp_insn): Likewise.
3179         * recog.c (offsettable_address_addr_space_p): Likewise.
3180         * reload.c (find_reloads_address, form_sum)
3181         (find_reloads_subreg_address): Likewise.
3182         * reload1.c (init_reload, eliminate_regs_1)
3183         (eliminate_regs_in_insn): Likewise.
3184         * simplify-rtx.c (simplify_unary_operation_1)
3185         (simplify_binary_operation_1, simplify_plus_minus): Likewise.
3186         * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
3187         (vt_add_function_parameter): Likewise.
3188
3189         * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
3190         * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
3191         * config/alpha/alpha.c (alpha_legitimize_address_1)
3192         (get_unaligned_address, alpha_expand_unaligned_load)
3193         (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
3194         (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
3195         (alpha_expand_builtin_establish_vms_condition_handler)
3196         (alpha_setup_incoming_varargs, emit_frame_store_1)
3197         (alpha_expand_prologue, alpha_expand_epilogue)
3198         (alpha_use_linkage): Likewise.
3199         * config/alpha/alpha.md: Likewise.
3200
3201         * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
3202         (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
3203         (thumb_legitimize_address, arm_gen_load_multiple_1)
3204         (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
3205         (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
3206         (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
3207         (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
3208         (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
3209         (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
3210         (thumb_expand_movmemqi, arm_set_return_address)
3211         (thumb_set_return_address): Likewise.
3212         * config/arm/arm.md: Likewise.
3213
3214         * config/avr/avr.c (avr_incoming_return_addr_rtx)
3215         (avr_prologue_setup_frame, expand_epilogue)
3216         (avr_const_address_lo16): Likewise.
3217
3218         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
3219         * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
3220         (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
3221         (bfin_output_mi_thunk): Likewise.
3222
3223         * config/c6x/c6x.c (c6x_initialize_trampoline)
3224         (c6x_output_mi_thunk): Likewise.
3225
3226         * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
3227         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
3228
3229         * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
3230         (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
3231         (cris_emit_movem_store, cris_trampoline_init): Likewise.
3232         * config/cris/cris.md: Likewise.
3233
3234         * config/darwin.c (machopic_indirect_data_reference)
3235         (machopic_legitimize_pic_address): Likewise.
3236
3237         * config/epiphany/epiphany.c (epiphany_emit_save_restore)
3238         (epiphany_expand_prologue, epiphany_expand_epilogue)
3239         (epiphany_trampoline_init): Likewise.
3240         * config/epiphany/epiphany.md: Likewise.
3241
3242         * config/fr30/fr30.c (fr30_move_double): Likewise.
3243
3244         * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
3245         (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
3246         (frv_index_memory, unspec_got_name, frv_find_base_term)
3247         (frv_output_dwarf_dtprel): Likewise.
3248
3249         * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
3250         (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
3251
3252         * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
3253         * config/i386/i386.c (setup_incoming_varargs_64)
3254         (setup_incoming_varargs_ms_64, choose_baseaddr)
3255         (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
3256         (ix86_emit_probe_stack_range, ix86_expand_prologue)
3257         (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
3258         (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
3259         (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
3260         (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
3261         (x86_output_mi_thunk): Likewise.
3262         * config/i386/i386.md: Likewise.
3263
3264         * config/ia64/ia64.c (ia64_expand_load_address)
3265         (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
3266         (do_spill, ia64_trampoline_init): Likewise.
3267
3268         * config/iq2000/iq2000.c (iq2000_va_start)
3269         (iq2000_emit_frame_related_store, iq2000_expand_prologue)
3270         (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
3271         (iq2000_print_operand, iq2000_legitimize_address): Likewise.
3272
3273         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3274
3275         * config/m32c/m32c.c (m32c_return_addr_rtx)
3276         (m32c_expand_insv): Likewise.
3277
3278         * config/m32r/m32r.c (m32r_setup_incoming_varargs)
3279         (m32r_legitimize_pic_address, m32r_print_operand)
3280         (m32r_print_operand_address): Likewise.
3281
3282         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
3283         * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
3284         (EH_RETURN_HANDLER_RTX): Likewise.
3285         * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
3286         (m68k_expand_epilogue, legitimize_pic_address)
3287         (m68k_output_mi_thunk): Likewise.
3288         * config/m68k/m68k.md: Likewise.
3289
3290         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3291         (mcore_expand_epilog): Likewise.
3292         * config/mcore/mcore.md: Likewise.
3293
3294         * config/mep/mep.c (mep_allocate_initial_value)
3295         (mep_expand_prologue, mep_expand_epilogue): Likewise.
3296
3297         * config/microblaze/microblaze.c (double_memory_operand)
3298         (microblaze_block_move_loop): Likewise.
3299
3300         * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
3301         (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
3302         (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
3303         (mips_expand_prologue, mips_epilogue_set_cfa)
3304         (mips_expand_epilogue): Likewise.
3305         * config/mips/mips.md: Likewise.
3306
3307         * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
3308         (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
3309
3310         * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
3311         (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
3312
3313         * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3314         (EH_RETURN_HANDLER_RTX): Likewise.
3315         * config/moxie/moxie.c (moxie_static_chain): Likewise.
3316
3317         * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
3318         (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
3319         (pa_return_addr_rtx, hppa_builtin_saveregs)
3320         (pa_trampoline_init): Likewise.
3321         * config/pa/pa.md: Likewise.
3322
3323         * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
3324
3325         * config/picochip/picochip.c (picochip_static_chain): Likewise.
3326
3327         * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
3328         * config/rs6000/rs6000.c (rs6000_legitimize_address)
3329         (setup_incoming_varargs, print_operand, rs6000_return_addr)
3330         (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
3331         (rs6000_emit_epilogue)
3332         (rs6000_machopic_legitimize_pic_address): Likewise.
3333
3334         * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
3335
3336         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
3337         (DYNAMIC_CHAIN_ADDRESS): Likewise.
3338         * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
3339         (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
3340         (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
3341         (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
3342         (s390_emit_epilogue, s390_function_profiler): Likewise.
3343         * config/s390/s390.md: Likewise.
3344
3345         * config/score/score.c (score_add_offset, score_prologue): Likewise.
3346
3347         * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
3348         (sh_output_mi_thunk): Likewise.
3349         * config/sh/sh.md: Likewise.
3350
3351         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
3352         (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
3353         * config/sparc/sparc.c (sparc_legitimize_pic_address)
3354         (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
3355         (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
3356         (emit_and_preserve): Likewise.
3357         * config/sparc/sparc.md: Likewise.
3358
3359         * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
3360         * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
3361         (spu_setup_incoming_varargs, ea_load_store_inline)
3362         (spu_expand_load): Likewise.
3363
3364         * config/stormy16/stormy16.c (xstormy16_expand_prologue)
3365         (combine_bnp): Likewise.
3366
3367         * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
3368         * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
3369         (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
3370
3371         * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
3372         * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
3373         (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
3374
3375         * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
3376         * config/v850/v850.md: Likewise.
3377
3378         * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
3379         (EH_RETURN_HANDLER_RTX): Likewise.
3380         * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
3381         * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
3382         (print_operand_address, vax_trampoline_init): Likewise.
3383
3384         * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
3385         (xtensa_function_value_regno_p): Likewise.
3386
3387 2012-05-04  Andrew Pinski  <apinski@cavium.com>
3388
3389         * expr.c (get_def_for_expr_class): New function.
3390         (convert_tree_comp_to_rtx): New function.
3391         (expand_cond_expr_using_cmove): New function.
3392         (expand_expr_real_2 <case COND_EXPR>): Call
3393         expand_cond_expr_using_cmove first and return if it succeeds.
3394         Remove the check for HAVE_conditional_move since we should have
3395         already converted it to a conditional move.
3396         * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
3397         modes of DImode for 32bits and TImode.
3398
3399 2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>
3400
3401         PR other/29442
3402         * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
3403         (print_md_ptr_loc, print_c_condition): Use them.
3404         * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
3405         * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
3406         attr_file, dfa_file, latency_file): New global variables.
3407         (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
3408         write_upcase, write_indent, write_length_unit_log, write_test_expr,
3409         write_attr_get, write_insn_cases, write_eligible_delay,
3410         write_const_num_delay_slots): Accept FILE pointer and toss it around.
3411         Update all callers.
3412         (write_header, open_outfile, handle_arg): New funcions.
3413         (make_automaton_attrs): Write prototypes as extern to the output
3414         files.
3415         (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
3416         names from the command line.  Open the output files and write out
3417         internal functions for DFA functions to dfa_file_name, insn latency
3418         functions to latency_file_name, and everything else to attr_file.
3419         * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
3420         (BACKEND): Build libbackend first.
3421         (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
3422         (.PRECIOUS): Likewise.
3423         (insn-dfatab.o): New rule.
3424         (insn-latencytab.o): New rule.
3425         (simple_rtl_generated_c): Do not include insn-attrtab.c.
3426         (s-attrtab): New rule.
3427
3428 2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>
3429
3430         * rtl.def (ATTR_FLAG): Remove probability indicating flags.
3431         * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
3432         ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
3433         * reorg.c (get_jump_flags): Do not set the removed flags.
3434
3435         * doc/md.texi (attr_flag): Update for abovementioned changes.
3436
3437 2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
3438
3439         PR target/53228
3440         * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
3441         (TARGET_CMOV): Rename from TARGET_CMOVE.
3442         (TARGET_CMOVE): New define.
3443         * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
3444         Do not set TARGET_CMOVE here.
3445
3446 2012-05-04  Dodji Seketeli  <dodji@redhat.com>
3447
3448         Enable -Wunused-local-typedefs when -Wall or -Wunused is on
3449         * opts.c (finish_options): Activate -Wunused-local-typedefs if
3450         -Wunused is activated.
3451         * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
3452
3453 2012-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3454
3455         * config/s390/s390.md (*movmem_short, *clrmem_short)
3456         (*cmpmem_short): Move the mode check from the insn condition to
3457         the match_scratch.
3458
3459 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
3460
3461         PR tree-optimization/52633
3462         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
3463         vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
3464         (vect_recog_over_widening_pattern): Remove handling of code that was
3465         already detected as over-widening pattern.  Remove special handling
3466         of "unsigned" cases.  Instead, support general case of conversion
3467         of the shift result to another type.
3468
3469 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
3470
3471         * tree-vect-patterns.c (vect_single_imm_use): New function.
3472         (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
3473         (vect_recog_over_widening_pattern): Likewise.
3474         (vect_recog_widen_shift_pattern): Likewise.
3475
3476 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
3477
3478         * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
3479         (vect_handle_widen_op_by_const): Use it instead of open-coding test.
3480         (vect_recog_widen_mult_pattern): Likewise.
3481         (vect_operation_fits_smaller_type): Likewise.
3482         (vect_recog_over_widening_pattern): Likewise.
3483         (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
3484
3485 2012-05-04  Richard Guenther  <rguenther@suse.de>
3486
3487         PR lto/50602
3488         * lto-wrapper.c (merge_and_complain): Complain about mismatches
3489         of -freg-struct-return and -fpcc-struct-return.
3490         (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
3491         from the input file options and ignore those from the link
3492         command line.
3493
3494 2012-05-04  Richard Guenther  <rguenther@suse.de>
3495
3496         PR tree-optimization/53168
3497         * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
3498         memory reads when the result is a constant we can pun.
3499
3500 2012-05-04  Richard Guenther  <rguenther@suse.de>
3501
3502         * common.opt (flto-report): Do not mark as Optimization.
3503
3504 2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3505
3506         PR target/48496
3507         * recog.c (constrain_operands): If extra constraints are present, also
3508         accept pseudo-registers with equivalent memory locations during reload.
3509
3510 2012-05-04  Olivier Hainque  <hainque@adacore.com>
3511
3512         * collect2.c (may_unlink_output_file): New global.
3513         (maybe_unlink): Honor it.
3514         * collect2.h: Add extern for it.
3515         * tlink.c (do_tlink): Set it to true if the link succeeded.
3516
3517 2012-05-04  Olivier Hainque  <hainque@adacore.com>
3518
3519         * gcc.c (eval_spec_function): Finalize/restore the current string
3520         obstack state as part of the context push/pop operations.
3521
3522 2012-05-04  Bin Cheng  <bin.cheng@arm.com>
3523
3524         PR rtl-optimization/52804
3525         * reload1.c (reload_reg_reaches_end_p): Check whether successor
3526         reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
3527         of current one with type RELOAD_FOR_INPADDR_ADDRESS.
3528         Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
3529         RELOAD_FOR_OUTADDR_ADDRESS.
3530
3531 2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3532
3533         PR c++/24985
3534         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
3535         for macro expansion.
3536
3537 2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3538
3539         * flags.h (flag_permissive): Do not declare.
3540         * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
3541         option specially.
3542         * toplev.c (flag_permissive): Do not define.
3543         * c-tree.h (system_header_p): Delete unused.
3544
3545 2012-05-03  David S. Miller  <davem@davemloft.net>
3546
3547         PR target/52684
3548         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
3549         MEM directly into a libcall, mark it's MEM_EXPR as addressable.
3550         (sparc_emit_float_lib_cmp): Likewise.
3551
3552 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3553
3554         PR target/53199
3555         * config/rs6000/rs6000.md (bswapdi splitters): If
3556         -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
3557         default) is used, generate an alternate sequence that does not
3558         depend on using indexed addressing.
3559
3560 2012-05-03  Jason Merrill  <jason@redhat.com>
3561
3562         * gengtype.c (write_types): Fix warning message.
3563         (write_local): Likewise.
3564
3565 2012-05-02  Jason Merrill  <jason@redhat.com>
3566
3567         * dwarf2out.c (struct external_ref, build_local_stub): New.
3568         (hash_external_ref, external_ref_eq, lookup_external_ref): New.
3569         (optimize_external_refs, optimize_external_refs_1): New.
3570         (change_AT_die_ref): New.
3571         (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
3572         (build_abbrev_table): Take the external refs hashtable.
3573         (output_comp_unit): Get it from optimize_external_refs and pass it in.
3574
3575 2012-05-03  Jan Hubicka  <jh@suse.cz>
3576
3577         PR middle-end/53093
3578         * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
3579
3580 2012-05-03  Jan Hubicka  <jh@suse.cz>
3581
3582         PR middle-end/53106
3583         * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
3584
3585 2012-05-03  Jason Merrill  <jason@redhat.com>
3586
3587         * dwarf2out.c (die_struct): Add comdat_type_p flag.  Use it instead of
3588         use_debug_types to discriminate the die_id union.
3589         (print_die, assign_symbol_names, copy_decls_walk): Likewise.
3590         (build_abbrev_table, output_die): Likewise.
3591         (prune_unused_types_walk_attribs): Likewise.
3592         (generate_type_signature, copy_declaration_context): Set it.
3593         (remove_child_or_replace_with_skeleton): Set it.
3594         (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
3595         check use_debug_types.
3596         (dwarf2out_finish): Do break_out_includes after .debug_types.
3597
3598 2012-05-03  Jason Merrill  <jason@redhat.com>
3599
3600         * dwarf2out.c (modified_type_die): Use scope_die_for.
3601         (gen_type_die_with_usage, dwarf2out_finish): Likewise.
3602         (uses_local_type_r, uses_local_type): New.
3603         (scope_die_for): Keep a type that uses a local type in local scope.
3604         Use get_context_die for namespace and type scope.
3605
3606 2012-05-03  Jason Merrill  <jason@redhat.com>
3607
3608         * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
3609         pc thunk.
3610         * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
3611         (dwarf2out_finish): Likewise.
3612
3613 2012-05-03  Martin Jambor  <mjambor@suse.cz>
3614
3615         * builtins.c (get_object_alignment_1): Return whether we can determine
3616         the alignment or conservatively assume byte alignment.  Return the
3617         alignment by reference.  Use get_pointer_alignment_1 for dereference
3618         alignment.
3619         (get_pointer_alignment_1): Return whether we can determine the
3620         alignment or conservatively assume byte alignment.  Return the
3621         alignment by reference.  Use get_ptr_info_alignment to get SSA name
3622         alignment.
3623         (get_object_alignment): Update call to get_object_alignment_1.
3624         (get_object_or_type_alignment): Likewise, fall back to type alignment
3625         only when it returned false.
3626         (get_pointer_alignment): Update call to get_pointer_alignment_1.
3627         * fold-const.c (get_pointer_modulus_and_residue): Update call to
3628         get_object_alignment_1.
3629         * ipa-prop.c (ipa_modify_call_arguments): Update call to
3630         get_pointer_alignment_1.
3631         * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
3632         of MEM_REF or TARGET_MEM_REF only when it returns false.
3633         * tree-ssa-ccp.c (get_value_from_alignment): Update call to
3634         get_object_alignment_1.
3635         (ccp_finalize): Use set_ptr_info_alignment.
3636         * tree.h (get_object_alignment_1): Update declaration.
3637         (get_pointer_alignment_1): Likewise.
3638         * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
3639         (dump_gimple_stmt): Likewise.
3640         * tree-flow.h (ptr_info_def): Updated comments of fields align and
3641         misalign.
3642         (get_ptr_info_alignment): Declared.
3643         (mark_ptr_info_alignment_unknown): Likewise.
3644         (set_ptr_info_alignment): Likewise.
3645         (adjust_ptr_info_misalignment): Likewise.
3646         * tree-ssa-address.c (copy_ref_info): Use new access functions to get
3647         and set alignment of SSA names.
3648         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
3649         mark_ptr_info_alignment_unknown.
3650         * tree-ssanames.c (get_ptr_info_alignment): New function.
3651         (mark_ptr_info_alignment_unknown): Likewise.
3652         (set_ptr_info_alignment): Likewise.
3653         (adjust_ptr_info_misalignment): Likewise.
3654         (get_ptr_info): Call mark_ptr_info_alignment_unknown.
3655         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3656         Likewise.
3657         (bump_vector_ptr): Likewise.
3658         * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
3659         (vectorizable_store): Likewise.
3660         (vectorizable_load): Likewise.
3661
3662 2012-05-03  Michael Matz  <matz@suse.de>
3663
3664         * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
3665         in front of basic_block_def.
3666         (struct basic_block_def): Make il.gimple the full struct, not a
3667         pointer.
3668         (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
3669
3670         * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
3671         * gimple-iterator.c (gimple_stmt_iterator): Don't special case
3672         NULL il.gimple, which can't happen anymore.
3673         * gimple.h (bb_seq): il.gimple can't be NULL.
3674         (bb_seq_add): Ditto.
3675         (set_bb_seq): Adjust.
3676         (gsi_start_bb, gsi_last_bb): Tidy.
3677         * lto-streamer-in.c (make_new_block): Don't zero members that
3678         are zeroed already, don't allocate a gimple_bb_info.
3679         * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
3680         (remove_bb): Clear all il.gimple members.
3681         (gimple_verify_flow_info): Adjust for flat il.gimple.
3682         * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
3683
3684         * coretypes.h (const_gimple_seq): Remove typedef.
3685         * gimple.h (gimple_seq_first): Take gimple_seq.
3686         (gimple_seq_first_stmt): Ditto.
3687         (gimple_seq_last): Ditto.
3688         (gimple_seq_last_stmt): Ditto.
3689         (gimple_seq_empty_p): Ditto.
3690
3691 2012-05-03  Richard Guenther  <rguenther@suse.de>
3692
3693         * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
3694         operations.
3695         (prune_clobbered_mems): Do it here.  Do not uselessly sort expressions.
3696         (compute_avail): Do not add possibly trapping operations to
3697         EXP_GEN if they might not be executed in the block.
3698
3699 2012-05-03  Uros Bizjak  <ubizjak@gmail.com>
3700
3701         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
3702
3703 2012-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3704
3705         * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
3706         information as early as possible.  Update dominance info instead of
3707         discarding it.
3708
3709 2012-05-03  Richard Guenther  <rguenther@suse.de>
3710
3711         * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
3712         (union_contains_value): Remove.
3713         (vro_valid_in_sets): Likewise.
3714         (op_valid_in_sets): New function.
3715         (valid_in_sets): Use op_valid_in_sets.
3716         (insert_into_preds_of_block): Move dumping ...
3717         (do_regular_insertion): ... here.
3718         (do_partial_partial_insertion): ... and here.  Dump that
3719         we've found a partial partial redundancy.
3720         (insert): Dump the current insert iteration.
3721
3722 2012-05-03  Jakub Jelinek  <jakub@redhat.com>
3723
3724         PR plugins/53126
3725         * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
3726         append program name to it and pass that as first argument
3727         to make_relative_prefix.  Always pass standard_libexec_prefix
3728         as last argument to make_relative_prefix.  If
3729         make_relative_prefix returns NULL, fall back to
3730         standard_libexec_prefix.
3731
3732         PR debug/53174
3733         * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
3734         removed.
3735
3736         PR target/53187
3737         * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
3738         mode, return that mode.
3739
3740         PR target/53194
3741         * config/i386/i386-c.c (ix86_target_macros_internal): Don't
3742         define __ATOMIC_HLE_* macros here.
3743         (ix86_target_macros): But here, using cpp_define_formatted.
3744
3745 2012-05-03  Richard Guenther  <rguenther@suse.de>
3746
3747         PR tree-optimization/53144
3748         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
3749         Rename to ...
3750         (vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
3751         with SSA name values.
3752         (vn_reference_lookup_3): Adjust callers.
3753
3754 2012-05-03  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
3755
3756         * config/i386/driver-i386.c (host_detect_local_cpu): Reset
3757         has_fma4 for AMD processors with both fma3 and fma4 support.
3758
3759 2012-05-03  Kirill Yukhin  <kirill.yukhin@intel.com>
3760
3761         PR target/53201
3762         * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
3763         "-mno-hle".
3764
3765 2012-05-03  Michael Matz  <matz@suse.de>
3766
3767         PR bootstrap/53197
3768         * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
3769         (dse_enter_block): Properly iterate the whole sequence even
3770         if the last statement was removed.
3771
3772 2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>
3773
3774         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
3775         unset flag_jump_tables.
3776         * stmt.c (expand_case): Remove special flag_pic case conditional
3777         on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
3778
3779 2012-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
3780
3781         * common/config/s390/s390-common.c (s390_option_optimization_table):
3782         Enable -fsched-pressure using -fsched-pressure-algorithm=model by
3783         default when optimizing.
3784
3785 2012-05-02  Martin Jambor  <mjambor@suse.cz>
3786
3787         PR lto/52605
3788         * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
3789         of a variable when the contect is a function.
3790
3791 2012-05-02  Michael Matz  <matz@suse.de>
3792
3793         * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
3794         * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
3795         (const_gimple_seq_node): Remove.
3796         (gimple_seq_node): Typedef as gimple.
3797         (struct gimple_statement_base): Add next and prev members,
3798         adjust all WORD markers in using structs.
3799         (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
3800         (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
3801         gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
3802         gimple are the same.
3803         (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
3804         gimple_seq, adjust.
3805         (gimple_init_singleton): New function.
3806         (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
3807         (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
3808         (gsi_stmt): Adjust.
3809         (gsi_stmt_ptr): Remove.
3810         (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
3811
3812         * gimple-iterator.c (update_bb_for_stmts): Take last parameter
3813         again, adjust for above changes.
3814         (update_call_edge_frequencies): Adjust for above changes.
3815         (gsi_insert_seq_nodes_before): Rewrite for new data structure.
3816         (gsi_insert_seq_nodes_after): Ditto.
3817         (gsi_split_seq_after): Ditto.
3818         (gsi_set_stmt): Ditto.
3819         (gsi_split_seq_before): Ditto.
3820         (gsi_remove): Ditto.
3821         (gsi_insert_seq_before_without_update): Don't free sequence.
3822         (gsi_insert_seq_after_without_update): Ditto.
3823         (gsi_replace): Assert some more invariants.
3824         (gsi_insert_before_without_update, gsi_insert_after_without_update):
3825         Tidy.
3826         (gsi_for_stmt): Don't search for stmt.
3827         (gsi_insert_on_edge_immediate): Tidy.
3828
3829         * gimple.c (gimple_alloc_k): Remove "sequences".
3830         (gimple_seq_cache): Remove.
3831         (gimple_alloc_stat): Make stmt a singleton sequence.
3832         (gimple_seq_alloc, gimple_seq_free): Remove.
3833         (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
3834         (gimple_copy): Ditto.
3835         * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
3836         create iterator from correct sequence.
3837         * tree-phinodes.c (make_phi_node): Make stmt a singleton.
3838
3839 2012-05-02  Michael Matz  <matz@suse.de>
3840
3841         * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
3842         gimple_seq.
3843         (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
3844         sequence, lazily allocate it.
3845         (bb_seq_addr): New function.
3846         (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
3847         (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
3848         (gsi_none): New function.
3849         (gsi_start_bb): Adjust.
3850         (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
3851         (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
3852         (gsi_last_bb): Adjust.
3853         (gsi_seq): Adjust.
3854         * tree-flow-inline.h (phi_nodes_ptr): New function.
3855
3856         * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
3857         datastructure and interface change.
3858         (gsi_insert_seq_before_without_update): Ditto.
3859         (gsi_insert_seq_nodes_after): Ditto.
3860         (gsi_insert_seq_after_without_update): Ditto.
3861         (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
3862         (gsi_split_seq_before): Ditto.
3863         (gsi_start_phis): Adjust.
3864         * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
3865         (vect_transform_loop): Ditto.
3866         * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
3867         gimple_seq_copy): Don't use gimple_seq_alloc.
3868         * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
3869         (gimplify_seq_add_seq): Ditto.
3870         * lto-streamer-in.c (make_new_block): Ditto.
3871         * tree-cfg.c (create_bb): Ditto.
3872         * tree-sra.c (initialize_parameter_reductions): Ditto.
3873
3874 2012-05-02  Michael Matz  <matz@suse.de>
3875
3876         * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
3877         gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
3878         gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
3879         set_bb_seq): Move down to after gimple_statement_d definition.
3880
3881 2012-05-02  Michael Matz  <matz@suse.de>
3882
3883         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3884         gsi_replace_with_seq, instead of inserting itself.
3885         * gimple-iterator.c (gsi_replace_with_seq): New function.
3886         * tree-ssa-forwprop.c (forward_propagate_comparison): Take
3887         iterator instead of statement, advance it.
3888         (ssa_forward_propagate_and_combine): Adjust call to above.
3889
3890 2012-05-02  Michael Matz  <matz@suse.de>
3891
3892         * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
3893         gimple_seq_alloc.
3894         * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
3895         * tree-nested.c (walk_gimple_omp_for): Ditto.
3896         * trans-mem.c (lower_transaction): Ditto.
3897         * tree-eh.c (do_return_redirection): Ditto.
3898         (do_goto_redirection): Ditto.
3899         (lower_try_finally_switch): Ditto.
3900         * gimplify.c (gimplify_stmt): Ditto.
3901         (gimplify_scan_omp_clauses): Ditto.
3902         (gimplify_omp_for): Ditto.
3903         (gimplify_function_tree): Ditto.
3904         * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
3905         * tree-mudflap.c (mf_decl_cache_locals): Ditto.
3906         (mf_build_check_statement_for): Ditto.
3907         (mx_register_decls): Ditto.
3908         * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
3909         and don't use itertors to append.
3910         (insert_stmts): Ditto.
3911         (insert_out_of_ssa_copy): Ditto.
3912         (insert_out_of_ssa_copy_on_edge): Ditto.
3913
3914 2012-05-02  Michael Matz  <matz@suse.de>
3915
3916         * gimple.h (gimple_bind_body_ptr): New function.
3917         (gimple_bind_body): Use it.
3918         (gimple_catch_handler): Use gimple_catch_handler_ptr.
3919         (gimple_eh_filter_failure_ptr): New function.
3920         (gimple_eh_filter_failure): Use it.
3921         (gimple_eh_else_n_body_ptr): New function.
3922         (gimple_eh_else_n_body): Use it.
3923         (gimple_eh_else_e_body_ptr): New function.
3924         (gimple_eh_else_e_body): Use it.
3925         (gimple_try_eval_ptr): New function.
3926         (gimple_try_eval): Use it.
3927         (gimple_try_cleanup_ptr): New function.
3928         (gimple_try_cleanup): Use it.
3929         (gimple_wce_cleanup_ptr): New function.
3930         (gimple_wce_cleanup): Use it.
3931         (gimple_omp_body_ptr): New function.
3932         (gimple_omp_body): Use it.
3933         (gimple_omp_for_pre_body_ptr): New function.
3934         (gimple_omp_for_pre_body): Use it.
3935         (gimple_transaction_body_ptr): New function.
3936         (gimple_transaction_body): Use it.
3937         (gsi_split_seq_before): Adjust to return nothing and take pointer
3938         to sequence.
3939         (gsi_set_stmt): Declare.
3940         (gsi_replace_with_seq): Declare.
3941         (walk_gimple_seq_mod): Declare.
3942         * function.h (struct function <gimple_body>): Use typedef gimple_seq.
3943
3944         * gimple-iterator.c (gsi_set_stmt): New function.
3945         (gsi_split_seq_before): Return new sequence via pointer argument.
3946         (gsi_replace): Use gsi_set_stmt.
3947
3948         * tree-ssa-loop-im.c (move_computations_stmt): First remove
3949         then insert stmt.
3950         * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
3951         * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
3952         return new stmt.
3953         (reserve_phi_args_for_new_edge): Change call to above,
3954         use gsi_set_stmt.
3955
3956         * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
3957         (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
3958         iterators.  Adjust call to lower_omp.
3959         (lower_lastprivate_clauses): Adjust call to lower_omp.
3960         (lower_reduction_clauses): Ditto.
3961         (expand_omp_taskreg): Nullify non-cfg body of child_fn.
3962         (lower_omp_sections): Don't explicitely count sequence length,
3963         nullify lowered bodies earlier, ensure stmts are part of only
3964         one sequence, adjust call to lower_omp.
3965         (lower_omp_single): Ensure stmts are part of only one sequence,
3966         adjust call to lower_omp.
3967         (lower_omp_master): Ditto.
3968         (lower_omp_ordered): Ditto.
3969         (lower_omp_critical): Ditto.
3970         (lower_omp_for): Ditto.
3971         (lower_omp_taskreg): Ditto, tidy.
3972         (lower_omp_1): Adjust calls to lower_omp.
3973         (execute_lower_omp): Ditto.
3974         (lower_omp): Adjust to take pointer to sequence.
3975         (diagnose_sb_2): Use walk_gimple_seq_mod.
3976         (diagnose_omp_structured_block_errors): Ditto and set possibly
3977         changed function body.
3978         * gimple-low.c (lower_function_body): Set function body after
3979         it stabilizes.
3980         (lower_sequence): Adjust to take pointer to sequence.
3981         (lower_omp_directive): Ensure stmt isn't put twice into the
3982         sequence, adjust call to lower_sequence.
3983         (lower_stmt): Adjust calls to lower_sequence.
3984         (lower_gimple_bind): Ditto.
3985         (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
3986         * tree-nested.c (walk_body): Take pointer to sequence, use
3987         walk_gimple_seq_mod.
3988         (walk_function): Adjust call to walk_body, set possibly changed body.
3989         (walk_gimple_omp_for): Adjust calls to walk_body.
3990         (convert_nonlocal_omp_clauses): Ditto.
3991         (convert_nonlocal_reference_stmt): Ditto.
3992         (convert_local_omp_clauses): Ditto.
3993         (convert_local_reference_stmt): Ditto.
3994         (convert_tramp_reference_stmt): Ditto.
3995         (convert_gimple_call): Ditto.
3996         (convert_nl_goto_reference): Use local iterator copy.
3997         * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
3998         but taking pointer to sequence, ensure gsi_start is called with
3999         callers lvalue.
4000         (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
4001         asserting that the sequence head didn't change.
4002         (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
4003         walk_gimple_seq_mod.
4004         * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
4005         (execute_lower_tm): Ditto, and set possibly changed body.
4006         * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
4007         call gsi_start with that lvalue.
4008         (replace_goto_queue_stmt_list): Ditto.
4009         (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
4010         (replace_goto_queue): Ditto.
4011         (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
4012         (lower_try_finally_onedest): Ditto.
4013         (lower_try_finally_copy): Ditto.
4014         (lower_try_finally_switch): Ditto.
4015         (lower_try_finally): Ditto.
4016         (lower_eh_filter): Ditto.
4017         (lower_eh_must_not_throw): Ditto.
4018         (lower_cleanup): Ditto.
4019         (lower_eh_constructs_2): Ditto.
4020         (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
4021         (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
4022         set possibly changed body.
4023         (optimize_double_finally): Call gsi_start with lvalue.
4024
4025         * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
4026         (gimple_split_block): Ditto.
4027         (gimple_merge_blocks): Use gsi_start_phis.
4028         (move_stmt_r): Use walk_gimple_seq_mod.
4029         * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
4030         * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
4031         (rebuild_cgraph_edges): Ditto.
4032         (cgraph_rebuild_references): Ditto.
4033         * ipa-prop.c (ipa_analyze_params_uses): Ditto.
4034         * tree-inline.c (copy_phis_for_bb): Ditto.
4035         * tree-ssa-dce.c: Ditto.
4036
4037         * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
4038
4039 2012-05-02  Kirill Yukhin  <kirill.yukhin@intel.com>
4040             Andi Kleen <ak@linux.intel.com>
4041
4042         * coretypes.h (MEMMODEL_MASK): New.
4043         * builtins.c (get_memmodel): Add val. Call target.memmodel_check
4044         and return new variable.
4045         (expand_builtin_atomic_exchange):  Mask memmodel values.
4046         (expand_builtin_atomic_compare_exchange): Ditto.
4047         (expand_builtin_atomic_load): Ditto.
4048         (expand_builtin_atomic_store): Ditto.
4049         (expand_builtin_atomic_clear): Ditto.
4050         * doc/extend.texi: Mention port-dependent memory model flags.
4051         * config/i386/cpuid.h (bit_HLE): New.
4052         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4053         HLE support.
4054         * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
4055         * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
4056         (ix86_target_string)<-mhle>: New.
4057         (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
4058         * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
4059         (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
4060         (ix86_option_override_internal) <PTA_HLE>: New switch, set it
4061         enabled for generic, generic64 and core-avx2.
4062         (ix86_print_operand): Generate HLE lock prefixes.
4063         (ix86_memmodel_check): New.
4064         (TARGET_MEMMODEL_CHECK): Ditto.
4065         * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
4066         (IX86_HLE_ACQUIRE): Ditto.
4067         (IX86_HLE_RELEASE): Ditto.
4068         * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
4069         * config/i386/i386.opt (mhle): Ditto.
4070         * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
4071         success model to instruction emitter.
4072         (atomic_fetch_add<mode>): Ditto.
4073         (atomic_exchange<mode>): Ditto.
4074         (atomic_add<mode>): Ditto.
4075         (atomic_sub<mode>): Ditto.
4076         (atomic_<code><mode>): Ditto.
4077         (*atomic_compare_and_swap_doubledi_pic): Ditto.
4078         (atomic_compare_and_swap_single<mode>): Define and use argument
4079         for success model.
4080         (atomic_compare_and_swap_double<mode>): Ditto.
4081         * configure.ac: Check if assembler support HLE prefixes.
4082         * configure: Regenerate.
4083         * config.in: Ditto.
4084
4085 2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>
4086
4087         PR middle-end/53153
4088         * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
4089         split out from ...
4090         (gimplify_switch_expr): ... here.
4091         * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
4092         * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
4093         to clean up case labels with values outside the index type range.
4094         (simplify_gimple_switch): Call it if something changed.
4095         Remove strange and unnecessary assert.
4096
4097 2012-05-02  Richard Guenther  <rguenther@suse.de>
4098
4099         * fold-const.c (div_if_zero_remainder): sizetypes no longer
4100         sign-extend.
4101         (int_const_binop_1): New worker for int_const_binop with
4102         overflowable parameter.  Pass it through to force_fit_type_double.
4103         (int_const_binop): Wrap around int_const_binop_1 with overflowable
4104         equal to one.
4105         (size_binop_loc): Call int_const_binop_1 with overflowable equal
4106         to minus one, forcing overflow detection for even unsigned types.
4107         (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
4108         (fold_binary_loc): Call try_move_mult_to_index with signed offset.
4109         * stor-layout.c (initialize_sizetypes): sizetypes no longer
4110         sign-extend.
4111         (layout_type): For zero-sized arrays ignore overflow on the
4112         size calculations.
4113         * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
4114         (bit_value_binop_1): Likewise.
4115         * tree.c (double_int_to_tree): Likewise.
4116         (double_int_fits_to_tree_p): Likewise.
4117         (force_fit_type_double): Likewise.
4118         (host_integerp): Likewise.
4119         (int_fits_type_p): Likewise.
4120         * varasm.c (output_constructor_regular_field): Sign-extend the
4121         field-offset to cater for negative offsets produced by the Ada
4122         frontend.
4123         * omp-low.c (extract_omp_for_data): Convert the loop step to
4124         signed for pointer adjustments.
4125
4126 2012-05-02  Richard Guenther  <rguenther@suse.de>
4127
4128         * tree.c (valid_constant_size_p): New function.
4129         * tree.h (valid_constant_size_p): Declare.
4130         * cfgexpand.c (expand_one_var): Adjust check for too large
4131         variables by using valid_constant_size_p.
4132         * varasm.c (assemble_variable): Likewise.
4133
4134         * c-decl.c (grokdeclarator): Properly check for sizes that
4135         cover more than half of the address-space.
4136
4137 2012-05-02  Jakub Jelinek  <jakub@redhat.com>
4138
4139         PR tree-optimization/53163
4140         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
4141         return value from compute_all_dependences.
4142
4143         PR rtl-optimization/53160
4144         * ree.c (combine_reaching_defs): Handle the case where cand->insn
4145         has been modified by ree pass already.
4146
4147 2012-05-01  Ian Lance Taylor  <iant@google.com>
4148
4149         PR c/37303
4150         * c-decl.c (build_compound_literal): Make the decl readonly if it
4151         an array of a readonly type.
4152         * gimplify.c (gimplify_compound_literal_expr): Add fallback
4153         parameter.  Change all callers.  If the decl is not addressable
4154         and is not an l-value, make it readonly.
4155
4156 2012-05-01  Bernd Schmidt  <bernds@codesourcery.com>
4157
4158         * ira.c (allocated_reg_info_size): New static variable.
4159         (expand_reg_info): Manage it. Call
4160         setup_preferred_alternate_classes_for_new_pseudos.
4161         (ira): Don't do it here.  Remove local allocated_reg_info_size,
4162         set the global before calling find_moveable_pseudos.
4163         (find_moveable_pseudos): Call expand_reg_info rather than
4164         resize_reg_info.
4165
4166 2012-05-01  Richard Henderson  <rth@redhat.com>
4167
4168         * common.opt (fsync-libcalls): New.
4169         * doc/invoke.texi: Document it.
4170         * optabs.c (init_sync_libfuncs): Honor it.
4171
4172 2012-05-01  Kenneth Zadeck  <zadeck@naturalbridge.com>
4173             Richard Sandiford  <r.sandiford@uk.ibm.com>
4174
4175         PR rtl-optimization/52543
4176         * Makefile.in (lower-subreg.o, target-globals.o): Depend on
4177         lower-subreg.h.
4178         * lower-subreg.h: New file.
4179         * target-globals.h (this_target_lower_subreg): Declare.
4180         (target_globals): Add lower_subreg;
4181         (restore_target_globals): Restore this_target_lower_subreg.
4182         * target-globals.c: Include it.
4183         (default_target_globals): Add default_target_lower_subreg.
4184         (save_target_globals): Initialize target_lower_subreg.
4185         * rtl.h (init_lower_subreg): Added declaration.
4186         * toplev.c (backend_init_target): Call initializer for lower-subreg
4187         pass.
4188         * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
4189         (default_target_lower_subreg): New variable.
4190         (this_target_lower_subreg): Likewise.
4191         (twice_word_mode, choices): New macros.
4192         (shift_cost, compute_splitting_shift, compute_costs)
4193         (init_lower_subreg): New functions.
4194         (resolve_simple_move): Add speed_p argument.  Check choices.
4195         (find_pseudo_copy): Don't check the mode size here.
4196         (resolve_simple_move): Assert the mode size.
4197         (find_decomposable_shift_zext): Add speed_p argument and return
4198         a bool.  Check choices.
4199         (resolve_shift_zext): Add comment.
4200         (dump_shift_choices, dump_choices): New functions.
4201         (decompose_multiword_subregs): Dump list of profitable
4202         transformations.  Add code to skip non profitable transformations.
4203         Update calls to simple_move and find_decomposable_shift_zext.
4204
4205 2012-05-01  Ian Bolton  <ian.bolton@arm.com>
4206             Sameera Deshpande  <sameera.deshpande@arm.com>
4207             Greta Yorsh  <greta.yorsh@arm.com>
4208
4209         * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
4210         (thumb1_unexpanded_epilogue): ...this.
4211         * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
4212         (thumb1_unexpanded_epilogue): ...this.
4213         * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
4214         (thumb1_unexpanded_epilogue): ...this.
4215
4216 2012-05-01  Richard Earnshaw  <rearnsha@arm.com>
4217
4218         * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
4219         comparing enumeration values.  Update comments.
4220
4221 2012-05-01  Alan Modra  <amodra@gmail.com>
4222
4223         PR target/53038
4224         * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
4225         load_cr_save, add_crlr_cfa_restore): New functions.
4226         (rs6000_restore_saved_cr): Rename to..
4227         (restore_saved_cr): ..this.  Add cfa_restore notes for cr.
4228         (rs6000_emit_epilogue): Use new functions.  Adjust condition
4229         for emitting lr and cr cfa_restore.  Emit cfa_restores for fp
4230         regs when using out-of-line restore only when shrink wrapping.
4231
4232 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
4233
4234         PR middle-end/53136
4235         * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
4236         calls to cgraph_node_name in xstrdup.
4237         (ipa_make_edge_direct_to_target): Ditto.
4238         * cgraph.c (dump_cgraph_node): Ditto.
4239         * tree-sra.c (convert_callers_for_node): Ditto.
4240         * lto-symtab.c (lto_cgraph_replace_node): Ditto.
4241         * ipa-cp.c (perhaps_add_new_callers): Ditto.
4242         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
4243         (cgraph_materialize_all_clones): Ditto.
4244         * ipa-inline.c (report_inline_failed_reason): Ditto.
4245         (want_early_inline_function_p): Ditto.
4246         (edge_badness): Ditto.
4247         (update_edge_key): Ditto.
4248         (flatten_function): Ditto.
4249         (ipa_inline): Ditto.
4250         (inline_always_inline_functions): Ditto.
4251         (early_inline_small_functions): Ditto.
4252
4253 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
4254
4255         PR target/53141
4256         * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
4257         constraints 0 and 1.
4258
4259 012-04-30  Jan Hubicka  <jh@suse.cz>
4260
4261         * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
4262         (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
4263         (cgraph_add_to_same_comdat_group): Remove.
4264         (cgraph_add_asm_node): Move to cgraphunit.c.
4265         (cgraph_make_decl_local): Move to symtab.c
4266         (cgraph_make_node_local_1): Update.
4267         (cgraph_can_remove_if_no_direct_calls_and): Update.
4268         (used_from_object_file_p): Update.
4269         (resolution_used_from_other_file_p): Move to symtab.c
4270         (cgraph_used_from_object_file_p): move to symtab.c
4271         (verify_cgraph_node): Verify same comdat groups.
4272         * cgraph.h (cgraph_asm_node): Rename to ...
4273         (asm_node): ... this one.
4274         (cgraph_asm_nodes): Rename to ...
4275         (asm_nodes): ... this one.
4276         (symtab_add_to_same_comdat_group): New function.
4277         (symtab_dissolve_same_comdat_group_list): New function.
4278         (symtab_used_from_object_file_p): Declare.
4279         (symtab_make_decl_local): Declare.
4280         (cgraph_add_to_same_comdat_group): Remove.
4281         (cgraph_add_asm_node): Remove.
4282         (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
4283         Remove.
4284         (cgraph_finalize_compilation_unit): Rename to ...
4285         (finalize_compilation_unit): ... this one.
4286         (cgraph_optimize): Rename to ....
4287         (compile): ... this one.
4288         (add_asm_node): Declare.
4289         (fixup_same_cpp_alias_visibility): Declare.
4290         (cgraph_make_decl_local): Remove.
4291         (varpool_assemble_pending_decls): Rename to ...
4292         (varpool_output_variables): ... this one.
4293         (varpool_remove_unreferenced_decls): Remove.
4294         * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
4295         (preserve_function_body_p): Make static.
4296         * toplev.c (compile_file): Update comments; update.
4297         * cgraphunit.c: Update comments.
4298         (cgraph_expand_all_functions): Rename to ...
4299         (expand_all_functions): ... this one; update.
4300         (cgraph_mark_functions_to_output): Rename to ...
4301         (mark_functions_to_output): ... this one; cleanup.
4302         (cgraph_output_pending_asms): Remove prototype.
4303         (asm_nodes, asm_last_node): New static vars.
4304         (cgraph_process_new_functions): Update.
4305         (cgraph_reset_node): Cleanup; add comment.
4306         (cgraph_add_new_function): Update.
4307         (cgraph_output_pending_asms): Rename to ...
4308         (output_asm_statements): ... this one.
4309         (add_asm_node): New function.
4310         (fixup_same_cpp_alias_visibility): New function based on code
4311         in cgraph_analyze_function.
4312         (cgraph_analyze_function): Use it.
4313         (cgraph_order_sort): Update.
4314         (cgraph_output_in_order): Update.
4315         (cgraph_function_versioning): Update.
4316         (cgraph_optimize): Rename to ...
4317         (compile): ... this one; initialize streamer hooks here.
4318         (cgraph_finalize_compilation_unit): Rename to ...
4319         (finalize_compilation_unit): ... this one; do not initialize streamer
4320         hook here.
4321         * lto-streamer-out.c (lto_output_toplevel_asms): Update.
4322         * dwarf2out.c: Update ocmment.
4323         * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
4324         * method.c (use_thunk): Likewise.
4325         * semantics.c (maybe_add_lambda_conv_op): Likewise.
4326         * decl2.c (maybe_emit_vtables): Likewise.
4327         (cp_write_global_declarations): Use finalize_compilation_unit.
4328         * parser.c (cp_parser_asm_definition): Use add_asm_node.
4329         * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
4330         * c-decl.c (c_write_global_declarations): Use
4331         finalize_compilation_unit.
4332         * langhooks.c (write_global_declarations): Update.
4333         * ipa.c (cgraph_externally_visible_p): Update.
4334         (dissolve_same_comdat_group_list): Remove.
4335         (function_and_variable_visibility): Update.
4336         * symtab.c: Inlcude lto-streamer.h and rtl.h
4337         (ld_plugin_symbol_resolution_names): New.
4338         (symtab_add_to_same_comdat_group): New.
4339         (symtab_dissolve_same_comdat_group_list): New.
4340         (resolution_used_from_other_file_p): Move here from cgraph.c
4341         (symtab_used_from_object_file_p): New.
4342         (symtab_make_decl_local): New.
4343         * passes.c (register_pass): Update comments.
4344         * c-parser.c (c_parser_asm_definition): Update.
4345         * varpool.c (varpool_analyze_node): Use
4346         fixup_same_cpp_alias_visibility.
4347         (varpool_remove_unreferenced_decls): Make static.
4348         (varpool_assemble_pending_decls): Rename to ...
4349         (varpool_output_variables): ... this one; call
4350         varpool_remove_unreferenced_decls.
4351         (varpool_used_from_object_file_p): Remove.
4352
4353 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
4354
4355         PR c++/51033
4356         * c-typeck.c (build_array_ref): Call
4357         convert_vector_to_pointer_for_subscript.
4358         * doc/extend.texi (Vector Extensions): Subscripting not just for C.
4359
4360 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
4361
4362         * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
4363         to compile-time "mode == <MODE>mode" checks.
4364         (and splitter): Ditto.
4365
4366 2012-04-30  Richard Henderson  <rth@redhat.com>
4367
4368         * config/arm/arm.md (UNSPEC_LL): New.
4369         * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
4370         (arm_load_exclusivedi): Use %H0.
4371
4372 2012-04-30  Jason Merrill  <jason@redhat.com>
4373
4374         * dwarf2out.c (comdat_symbol_id): Add const.
4375         (union die_symbol_or_type_node): Add const to die_symbol.
4376         (output_die_symbol, output_die, output_comp_unit): Adjust.
4377
4378 2012-04-30  Andrew Stubbs  <ams@codesourcery.com>
4379
4380         * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
4381         * config/arm/neon.md (negdi2_neon): New insn.
4382         Also add splitters for core and NEON registers.
4383
4384 2012-04-30  Andrew Stubbs  <ams@codesourcery.com>
4385
4386         * config/arm/arm.c (neon_valid_immediate): Allow const_int.
4387         (arm_print_operand): Add 'x' format.
4388         * config/arm/constraints.md (Dn): Allow const_int.
4389         * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
4390         Use 'x' format to print constants.
4391         * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
4392         * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
4393         is enabled.
4394         (movdi_vfp_cortexa8): Likewise.
4395
4396 2012-04-30  Ian Bolton  <ian.bolton@arm.com>
4397             Sameera Deshpande  <sameera.deshpande@arm.com>
4398             Greta Yorsh  <greta.yorsh@arm.com>
4399
4400         * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
4401         * config/arm/arm.c (ldm_stm_operation_p): New function.
4402         * config/arm/predicates.md (load_multiple_operation): Update predicate.
4403         (store_multiple_operation): Likewise.
4404
4405         * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
4406         * config/arm/arm.c (ldm_stm_operation_p): New parameters.
4407         * config/arm/predicates.md (load_multiple_operation): Add arguments.
4408         (store_multiple_operation): Likewise.
4409
4410 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
4411
4412         * config/i386/i386.md (and<mode>3): Expand masking operations with
4413         0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
4414         (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
4415
4416 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
4417
4418         Add -Wvarargs option
4419         * builtins.c (fold_builtin_next_arg):  Use OPT_Wvarargs as an
4420         argument for the various warning_at calls.
4421         * docs/invoke.texi: Update the documentation.
4422
4423 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
4424
4425         Switch -ftrack-macro-expansion=2 on by default.
4426         * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
4427         by default.
4428
4429         Fix va_start related location
4430         * builtins.c (fold_builtin_next_arg): Unwinds to the first
4431         location in real source code.
4432
4433         Make conversion warnings work on NULL with -ftrack-macro-expansion
4434         * input.h (expansion_point_location_if_in_system_header): Declare
4435         new function.
4436         * input.c (expansion_point_location_if_in_system_header): Define it.
4437
4438         Fix -Wuninitialized for -ftrack-macro-expansion
4439         * tree-ssa.c (warn_uninit): Use the spelling location of the variable
4440         declaration.  Use linemap_location_before_p for source locations.
4441
4442         Strip "<built-in>" loc from displayed expansion context
4443         * input.c (expand_location_1): When expanding to spelling location
4444         in a context of a macro expansion, skip reserved system header
4445         locations.  Update comments.  * tree-diagnostic.c
4446         (maybe_unwind_expanded_macro_loc): Likewise.
4447
4448         Make expand_location resolve to locus in main source file
4449         * input.c (expand_location_1): New.  Takes a parameter to choose
4450         whether to resolve the location to spelling or expansion point.
4451         Was factorized from ...
4452         (expand_location): ... here.
4453         (expand_location_to_spelling_point): New.  Implemented in terms of
4454         expand_location_1.
4455         * diagnostic.c (diagnostic_build_prefix): Use the new
4456         expand_location_to_spelling_point instead of expand_location.
4457
4458         Fix PCH crash on GTYed pointer-to-scalar field of a struct
4459         * gengtype.c (write_types_process_field): Force second argument of
4460         the call to the PCH object hierarchy walker to be 'x'.
4461
4462 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4463
4464         * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
4465         predicate to discriminate types.
4466
4467 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4468
4469         * doc/invoke.texi (Wmissing-format-attribute): Document as an
4470         alias of Wsuggest-attribute=format.
4471         * c-typeck.c (convert_for_assignment): Replace
4472         Wmissing-format-attribute with Wsuggest-attribute=format.
4473         (digest_init): Likewise.
4474
4475 2012-04-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4476
4477         * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
4478         * common.opt (Wmissing-noreturn): Alias of
4479         -Wsuggest-attribute=noreturn.
4480
4481 2012-04-29  Hans-Peter Nilsson  <hp@axis.com>
4482
4483         PR target/53156
4484         * config/cris/cris.md (andqu): New peephole2.
4485         (andu): Tweak head comment.
4486
4487 2012-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4488             Steven Bosscher  <steven@gcc.gnu.org>
4489             Maxim Kuvyrkov  <maxim@codesourcery.com>
4490
4491         PR tree-optimization/38785
4492         * common.opt (ftree-partial-pre): New option.
4493         * doc/invoke.texi: Document it.
4494         * opts.c (default_options_table): Initialize flag_tree_partial_pre.
4495         * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
4496         benefit speed path.
4497         (execute_pre): Use flag_tree_partial_pre.
4498
4499 2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4500
4501         PR target/52999
4502         * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
4503         in constant pool.
4504
4505 2012-04-27  Ollie Wild  <aaw@google.com>
4506
4507         * doc/invoke.texi (Wliteral-suffix): Document new option.
4508
4509 2012-04-27  Tom Tromey  <tromey@redhat.com>
4510
4511         * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
4512         (dwarf_tag_name): Use get_DW_TAG_name.
4513         (dwarf_attr_name): Use get_DW_AT_name.
4514         (dwarf_form_name): Use get_DW_FORM_name.
4515         * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
4516
4517 2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
4518
4519         * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
4520         arguments are -1 and 0, by negating the result of the conditional.
4521
4522 2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
4523
4524         PR target/53138
4525         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
4526
4527 2012-04-27  Richard Guenther  <rguenther@suse.de>
4528
4529         * tree-flow.h (is_hidden_global_store): Remove.
4530         * tree-ssa-sink.c (is_hidden_global_store): Likewise.
4531         * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
4532         (stmt_may_clobber_global_p): Likewise.
4533         * tree-ssa-alias.c (ref_may_alias_global_p): New function.
4534         (stmt_may_clobber_global_p): Likewise.
4535         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
4536         stmt_may_clobber_global_p.
4537         * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
4538
4539 2012-04-27  Steven Bosscher  <steven@gcc.gnu.org>
4540
4541         * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
4542         place.
4543
4544         * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
4545         reorganize some fields and update comments.  Rename bit_test_uniq
4546         and bit_test_count to uniq resp. count.  Remove bit_test_bb.
4547         (collect_switch_conv_info): New function, collects info about a
4548         GIMPLE_SWITCH into a struct switch_conv_info.
4549         (check_range): Simplify to use pre-recorded info.  Fix think-o in
4550         range-branch ratio check.
4551         (check_process_case): Remove function.
4552         (check_all_empty_except_final): New function, verifies that all
4553         non-final basic blocks are empty.
4554         (process_switch): Simplify to use pre-recorded info.  Call
4555         collect_switch_conv_info to do that.  Assert that degenerate switch
4556         statements have been cleaned up.
4557
4558 2012-04-27  Marc Glisse  <marc.glisse@inria.fr>
4559
4560         PR middle-end/27139
4561         * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
4562
4563 2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4564
4565         PR c/53130
4566         * c-typeck.c (pop_init_level): Use %qD instead of %qT.
4567
4568 2012-04-27  Tom de Vries  <tom@codesourcery.com>
4569
4570         PR tree-optimization/51879
4571         * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
4572         * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
4573         of ...
4574         (defs_to_varying): ... here.  Don't set use_processed.
4575         (visit_reference_op_call): Handle gimple_vdef.
4576         Handle case that lhs is NULL_TREE.
4577         (visit_use): Use mark_use_processed.  Handle calls with side-effect
4578         using visit_reference_op_call.
4579
4580 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
4581
4582         * sched-deps.c (fixup_sched_groups): Rename to...
4583         (chain_to_prev_insn): ...this.
4584         (chain_to_prev_insn_p): New function.
4585         (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
4586
4587 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
4588
4589         * sched-int.h (_haifa_insn_data): Move priority_status.
4590         Add model_index.
4591         (INSN_MODEL_INDEX): New macro.
4592         * haifa-sched.c (insn_delay): New function.
4593         (sched_regno_pressure_class): Update commentary.
4594         (mark_regno_birth_or_death): Pass the liveness bitmap and
4595         pressure array as arguments, instead of using curr_reg_live and
4596         curr_reg_pressure.  Only update the pressure if the bit in the
4597         liveness set has changed.
4598         (initiate_reg_pressure_info): Always trust the live-in set for
4599         SCHED_PRESSURE_MODEL.
4600         (initiate_bb_reg_pressure_info): Update call to
4601         mark_regno_birth_or_death.
4602         (dep_list_size): Take the list as argument.
4603         (calculate_reg_deaths): New function, extracted from...
4604         (setup_insn_reg_pressure_info): ...here.
4605         (MODEL_BAR): New macro.
4606         (model_pressure_data, model_insn_info, model_pressure_limit)
4607         (model_pressure_group): New structures.
4608         (model_schedule, model_worklist, model_insns, model_num_insns)
4609         (model_curr_point, model_before_pressure, model_next_priority):
4610         New variables.
4611         (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
4612         (MODEL_INSN_INFO, MODEL_INSN): New macros.
4613         (model_index, model_update_limit_points_in_group): New functions.
4614         (model_update_limit_points, model_last_use_except): Likewise.
4615         (model_start_update_pressure, model_update_pressure): Likewise.
4616         (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
4617         (model_excess_cost, model_dump_pressure_points): Likewise.
4618         (model_set_excess_costs): Likewise.
4619         (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
4620         SCHED_PRIORITY_MODEL.  Use insn_delay.  Use the order in the model
4621         schedule as an alternative tie-breaker.  Update the call to
4622         dep_list_size.
4623         (ready_sort): Call model_set_excess_costs.
4624         (update_register_pressure): Update call to mark_regno_birth_or_death.
4625         Rely on that function to check liveness rather than doing it here.
4626         (model_classify_pressure, model_order_p, model_add_to_worklist_at)
4627         (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
4628         (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
4629         (model_record_pressure, model_record_pressures): New functions.
4630         (model_record_final_pressures, model_add_successors_to_worklist)
4631         (model_promote_predecessors, model_choose_insn): Likewise.
4632         (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
4633         (model_start_schedule, model_finalize_pressure_group): Likewise.
4634         (model_end_schedule): Likewise.
4635         (schedule_insn): Say when we're scheduling the next instruction
4636         in the model schedule.
4637         (schedule_insn): Handle SCHED_PRESSURE_MODEL.
4638         (queue_to_ready): Do not add instructions that are
4639         MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
4640         Always allow the next instruction in the model schedule to be added.
4641         (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
4642         and delay for SCHED_PRESSURE_MODEL too.
4643         (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
4644         SCHED_PRIORITY_MODEL, but also take the DFA into account.
4645         (schedule_block): Call model_start_schedule and model_end_schedule.
4646         Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
4647         (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
4648         to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
4649         region_ref_regs.
4650         (sched_finish): Update accordingly.
4651         (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
4652         to SCHED_PRESSURE_MODEL.
4653         (add_jump_dependencies): Update call to dep_list_size.
4654         (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
4655         (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
4656         to SCHED_PRESSURE_MODEL.
4657         * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
4658         allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
4659         (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
4660         handling to SCHED_PRESSURE_MODEL.
4661
4662 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
4663
4664         * common.opt (fsched-pressure-algorithm=): New option.
4665         * flag-types.h (sched_pressure_algorithm): New enum.
4666         * sched-int.h (sched_pressure_p): Replace with...
4667         (sched_pressure): ...this new variable.
4668         * haifa-sched.c (sched_pressure_p): Replace with...
4669         (sched_pressure): ...this new variable.
4670         (sched_regno_pressure_class, rank_for_schedule, ready_sort)
4671         (update_reg_and_insn_max_reg_pressure, schedule_insn)
4672         (debug_ready_list, prune_ready_list, schedule_block, sched_init)
4673         (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
4674         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
4675         (sched_analyze_insn): Likewise.
4676         * sched-rgn.c (schedule_region): Likewise.
4677         * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
4678
4679 2012-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4680
4681         * PR middle-end/52997
4682         * ira.c (find_moveable_pseudos): Call resize_reg_info.
4683
4684         PR middle-end/52940
4685         * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
4686         * expr.c (convert_move): Honor unsignedp when extending partial int
4687         modes.
4688         * genmodes.c (complete_mode): Don't clear component field of partial
4689         int modes.
4690         (emit_mode_inner): Don't emit it however.
4691         (calc_wider_mode): Partial int modes widen to their component.
4692
4693 2012-04-26  David S. Miller  <davem@davemloft.net>
4694
4695         * config/sparc/niagara4.md: New file.
4696         * config/sparc/sparc.md: Include it.
4697         * config/sparc/sparc.c (niagara4_costs): New processor costs.
4698         (sparc_option_override): Use it.
4699         (sparc_use_sched_lookahead): Return 2 for niagara4.
4700         (sparc_issue_rate): Likewise.
4701
4702         * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
4703         (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
4704         (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
4705         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
4706         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
4707         alignaddrldi_vis): Set type to gsr.
4708         (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
4709         (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
4710         cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
4711         v<vis3_shift_patname><mode>3, fmean16_vis,
4712         fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
4713         fucmp<code>8<P:mode>_vis): Set type to fga.
4714         * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
4715         * config/sparc/niagara.md: Likewise.
4716         * config/sparc/niagara2.md: Likewise.
4717         * config/sparc/ultra3.md: Likewise, and fix type matching for
4718         us3_ialuX reservation.
4719
4720 2012-04-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4721
4722         * reload.c (find_reloads): Change the loop nesting when trying an
4723         alternative with swapped operands.
4724
4725 2012-04-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4726
4727         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
4728         comment. Delete unused parameter first_exp_point_map.
4729         (virt_loc_aware_diagnostic_finalizer): Update call.
4730
4731 2012-04-26  Michael Hope  <michael.hope@linaro.org>
4732             Richard Earnshaw  <rearnsha@arm.com>
4733
4734         * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
4735         (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
4736         (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
4737         (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
4738
4739 2012-04-25  Sriraman Tallam  <tmsriram@google.com>
4740
4741         * doc/extend.texi: Document avx2 support.
4742         * config/i386/i386.c (fold_builtin_cpu): Add avx2.
4743
4744 2012-04-26  Hans-Peter Nilsson  <hp@axis.com>
4745
4746         PR target/53120
4747         * config/cris/cris.md ("*andhi_lowpart_v32")
4748         ("*andqi_lowpart_v32"): Change first input-only operand from
4749         a (match_operand ...) to (match_dup 0).  Drop alternatives with
4750         const_int-matching constraints for redundancy.
4751         ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
4752         three-operand alternative.
4753
4754 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
4755
4756         PR target/53110
4757         * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
4758         instead expand it as zero extension.
4759
4760 2012-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4761
4762         PR debug/52857
4763         * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
4764
4765 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
4766
4767         * common.opt (flag_debug_types_section): Default to 0.
4768         (dwarf_version): Default to 4.
4769         (dwarf_record_gcc_switches): Default to 1.
4770         (dwarf_strict): Default to 0.
4771         * toplev.c (process_options): Don't handle dwarf_strict
4772         or dwarf_version here.
4773         * config/vxworks.c (vxworks_override_options): Don't
4774         test whether dwarf_strict or dwarf_version are negative,
4775         instead test !global_options_set.x_dwarf_*.
4776         * config/darwin.c (darwin_override_options): Default to
4777         dwarf_version 2.
4778         * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
4779         and -fno-debug-types-section are now the default.
4780
4781 2012-04-25  Jan Hubicka  <jh@suse.cz>
4782
4783         * cgraphunit.c: Update toplevel comment.
4784         (tree_rest_of_compilation): Merge into cgraph_expand_function.
4785         (cgraph_analyze_function): Make static.
4786         (cgraph_decide_is_function_needed): Make static.
4787         (cgraph_add_new_function): Use expand_function instead of
4788         rest_of_compilation.
4789         (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
4790         verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
4791         Move to cgraph.c
4792         (cgraph_inline_p): Remove.
4793         (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
4794         (init_cgraph): Add comment.
4795         * cgraphbuild.c (record_reference, mark_address, mark_load,
4796         mark_store): Do not call analyze_expr hook.
4797         * cgraph.c: Update toplevel comment.
4798         (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
4799         verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
4800         Move fere from cgraphunit.c
4801         (cgraph_mark_force_output_node): Move to cgraph.h
4802         * cgraph.h: Reorder so the comments match the function placement.
4803         (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
4804         (cgraph_mark_force_output_node): Move here from cgraph.c
4805         * tree.c (free_lang_data): Do not clear analyze_expr hook.
4806         * ipa-inline-transform.c (preserve_function_body_p): New function.
4807         (inline_transform): Update.
4808         * langhooks.c (lhd_callgraph_analyze_expr): Remove.
4809         * langhooks.h (lang_hooks_for_callgraph): Remove.
4810         (lang_hooks): Remove callgraph.
4811         * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
4812         * varpool.c: Remove out of date comment.
4813         * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
4814         (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
4815
4816 2012-04-25  Jan Hubicka  <jh@suse.cz>
4817
4818         PR middle-end/53089
4819         * cgraphunit.c (referred_to_p): Move ahead in file to avoid
4820         forward declaration.
4821         (cgraph_finalize_function): Finalize them here.
4822         * symtab.c (dump_symtab): Dump ctors and dtors.
4823
4824 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
4825
4826         PR middle-end/52979
4827         * stor-layout.c (get_best_mode): Don't return mode with bitsize
4828         larger than maxbits.  Don't compute maxbits modulo align.
4829         Also check that unit bytes long store at bitpos / unit * unit
4830         doesn't affect bits beyond bitregion_end.
4831         * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
4832         would not fit into bitregion_start ... bitregion_end + 1 bit region.
4833         (store_split_bit_field): Decrease unit close to end of bitregion_end
4834         if access is restricted in order to avoid mutual recursion.
4835
4836         PR tree-optimization/53058
4837         * double-int.h (double_int_max_value, double_int_min_value): New
4838         prototypes.
4839         * double-int.c (double_int_max_value, double_int_min_value): New
4840         functions.
4841         * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
4842         or GT_EXPR with double_int_max_value instead of double_int_mask.
4843
4844 2012-04-25  Richard Guenther  <rguenther@suse.de>
4845
4846         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
4847         * tree-vect-loop.c (vect_transform_loop): Adjust.
4848         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
4849         the maximum number of iterations for the epilogue loop.
4850         (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
4851
4852 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
4853
4854         PR c/52880
4855         * c-typeck.c (set_nonincremental_init,
4856         set_nonincremental_init_from_string): Pass true instead of false
4857         as IMPLICIT to add_pending_init.
4858
4859 2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4860
4861         * c-typeck.c (pop_init_level): Improve diagnostics.
4862
4863 2012-04-25  Uros Bizjak  <ubizjak@gmail.com>
4864
4865         * compare-elim.c (try_eliminate_compare): Also handle operands with
4866         implicit extensions.
4867
4868 2012-04-25  Alan Modra  <amodra@gmail.com>
4869
4870         * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
4871         V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
4872         SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
4873         (no_global_regs_above): Delete.
4874         (no_global_regs): New function.
4875         (rs6000_savres_strategy): Handle vector regs.  Use proper lr_save_p
4876         value for load multiple test.
4877         (savres_routine_syms): Increase size.
4878         (rs6000_savres_routine_name, rs6000_savres_routine_sym,
4879         ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
4880         rather than a number of boolean flags.  Update all callers.
4881         (rs6000_savres_routine_name): Generate vector save/restore names.
4882         (rs6000_savres_routine_sym): Handle vector regs.  Delete forward decl.
4883         (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
4884         (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
4885         and using_store_multiple.  Expand uses.  Don't always use r11 as
4886         frame reg when needed for out-of-line saves.  Set up initial offset
4887         for out-of-line vector saves when buying stack frame.  Handle pointer
4888         reg setup for out-of-line fp save.  Emit call to out-of-line vector
4889         save function.  Choose r11 or r12 for vrsave reg when available for
4890         better scheduling.
4891         (rs6000_output_function_prologue): Don't emit .extern for ELF.
4892         (rs6000_emit_epilogue): Choose a better frame reg when restoring
4893         from back-chain to suit out-of-line vector restore functions.  Emit
4894         call to out-of-line vector restore function.  Adjust register used
4895         for cr restore.  Tweak pointer register setup for gpr restore.
4896         * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
4897         FIXED_R13.
4898         * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
4899         (V_SAVE_INLINE): Define.
4900         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
4901
4902 2012-04-25  Alan Modra  <amodra@gmail.com>
4903
4904         * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
4905         out-of-line save/restore for large frames.  Don't disable
4906         out-of-line saves on ABI_AIX when using static chain reg.
4907         (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
4908         clobber static chain reg, and tweak for out-of-line gpr saves
4909         that use r1.
4910
4911 2012-04-25  Alan Modra  <amodra@gmail.com>
4912
4913         * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
4914         (rs6000_emit_prologue): Use the above to catch register overlap.
4915
4916 2012-04-25  Alan Modra  <amodra@gmail.com>
4917
4918         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
4919         decl.  Move logic selecting update reg to callers.  Update all callers.
4920         (rs6000_emit_allocate_stack): Add copy_off param.
4921         (emit_frame_save): Don't handle reg+reg addressing.
4922         (ptr_regno_for_savres): New function, extracted from..
4923         (rs6000_emit_savres_rtx): ..here.  Add lr_offset param.
4924         (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
4925         Set frame_reg_rtx to r11 whenever r11 is needed, and merge
4926         frame offset adjustment for out-of-line save with copy from sp.
4927         Simplify condition controlling whether cr is saved early or
4928         late.  Use ptr_regno_for_savres to verify correct reg is set
4929         up for out-of-line saves.  Pass the actual pointer reg used to
4930         rs6000_emit_savres_rtx so rtl matches insns in out-of-line
4931         function.  Rearrange spe vars so code is similar to that
4932         elsewhere in this function.  Don't update frame_off when spe
4933         save code will restore r11.  Use emit_frame_save for spe and
4934         gpr saves.  Consolidate darwin out-of-line gpr setup with that
4935         for other abis.  Don't assume frame_offset is zero and frame
4936         reg is sp when setting up altivec reg saves, and calculate
4937         exact offset requirement.
4938         (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off.  Tidy
4939         spe restore code.  Consolidate darwin out-of-line gpr setup
4940         with that for other abis.
4941
4942 2012-04-25  Alan Modra  <amodra@gmail.com>
4943
4944         * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
4945         REG_FRAME_RELATED_EXPR note when the instruction exactly matches
4946         the replacement.
4947         (emit_frame_save): Delete frame_ptr param.  Rename total_size to
4948         frame_reg_to_sp.
4949         (rs6000_emit_prologue): Add sp_off.  Update rs6000_frame_related
4950         and emit_frame_save calls.  Cope with possibly missing note.
4951
4952 2012-04-24  Sriraman Tallam  <tmsriram@google.com>
4953
4954         * config/i386/i386.c (build_processor_model_struct): New function.
4955         (make_var_decl): New function.
4956         (fold_builtin_cpu): New function.
4957         (ix86_fold_builtin): New function.
4958         (make_cpu_type_builtin): New function.
4959         (ix86_init_platform_type_builtins): New function.
4960         (ix86_expand_builtin): Expand new builtins by folding them.
4961         (ix86_init_builtins): Make new builtins to detect CPU type.
4962         (TARGET_FOLD_BUILTIN): New macro.
4963         (IX86_BUILTIN_CPU_INIT): New enum value.
4964         (IX86_BUILTIN_CPU_IS): New enum value.
4965         (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
4966         * config/i386/i386-builtin-types.def: New function type.
4967         * testsuite/gcc.target/builtin_target.c: New testcase.
4968         * doc/extend.texi: Document builtins.
4969
4970 2012-04-24  Olivier Hainque  <hainque@adacore.com>
4971
4972         * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
4973         * toplev.c (process_options): Default to dwarf_version 2.
4974         * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
4975         and dwarf_version 2.
4976
4977 2012-04-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4978
4979         * tree-pretty-print.h (default_tree_printer): Do not declare.
4980         * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
4981         intl.h.
4982         (default_tree_diagnostic_starter): Make static.
4983         (default_tree_printer): Move to here. Make static.
4984         (tree_diagnostics_defaults): New.
4985         * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
4986         * tree.c (free_lang_data): Use tree_diagnostics_defaults.
4987         * toplev.c: Do not include tree-pass.h.
4988         (default_tree_printer): Move from here.
4989         (general_init): Use tree_diagnostics_defaults.
4990
4991 2012-04-24  Chao-ying Fu  <fu@mips.com>
4992
4993         * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
4994         (mips*-*-linux*): Append mips/linux-common.h to tm_file.
4995         * config/mips/gnu-user.h
4996         (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
4997         (GNU_USER_TARGET_LINK_SPEC): New define.
4998         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
4999         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
5000         (GNU_USER_TARGET_MATHFILE_SPEC): New define.
5001         (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
5002         GNU_USER_TARGET_ENDFILE_SPEC.
5003         * config/mips/gnu-user64.h (LIB_SPEC): Remove.
5004         (GNU_USER_TARGET_LINK_SPEC): New define.
5005         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
5006         * config/mips/linux-common.h: New file.
5007
5008 2012-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5009
5010         PR target/47197
5011         * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
5012         (altivec_build_resolved_builtin): Call fully_fold_convert.
5013
5014 2012-04-24  Georg-Johann Lay  <avr@gjlay.de>
5015
5016         PR target/53065
5017         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
5018
5019 2012-04-24  Richard Guenther  <rguenther@suse.de>
5020
5021         PR tree-optimization/53085
5022         * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
5023         stores.
5024
5025 2012-04-24  Richard Guenther  <rguenther@suse.de>
5026
5027         * tree-if-conv.c (main_tree_if_conversion): Move bb under
5028         ENABLE_CHECKING.
5029
5030 2012-04-24  Jim Meyering  <meyering@redhat.com>
5031
5032         * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
5033         absence of an define_enum call.
5034
5035 2012-04-24  Richard Guenther  <rguenther@suse.de>
5036
5037         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
5038         the epilogue loop is not re-used as unvectorized version
5039         record the its maximum number of iterations.
5040
5041 2012-04-24  Andrew Pinski  <apinski@cavium.com>
5042
5043         * tree-ssa-forwprop.c (simplify_bitwise_binary):
5044         Don't directly use def1/def2.
5045
5046 2012-04-24  Richard Guenther  <rguenther@suse.de>
5047
5048         PR tree-optimization/53098
5049         * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
5050         comparison sign.
5051
5052 2012-04-24  Andrew Pinski  <apinski@cavium.com>
5053
5054         PR tree-opt/33512
5055         * tree-ssa-forwprop.c (defcodefor_name): New function.
5056         (simplify_bitwise_binary): Use defcodefor_name instead of manually
5057         Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
5058         Simplify "(~X | Y) & X" to "X & Y" and
5059         "(~X & Y) | X" to "X | Y".
5060
5061 2012-04-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5062
5063         * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
5064         validate_change to add clobbers if IN_GROUP is nonzero.
5065         (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
5066         * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
5067         prototype.
5068         * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
5069         set to false.
5070         * config/s390/s390.c (insn_invalid_p): Likewise.
5071
5072 2012-04-24  Jakub Jelinek  <jakub@redhat.com>
5073
5074         PR middle-end/53084
5075         * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
5076         (output_addressed_constants): Likewise.
5077
5078         PR middle-end/52999
5079         * varasm.c (get_section): Don't ICE for section conflicts with
5080         built-in section kinds.
5081
5082 2012-04-23  DJ Delorie  <dj@redhat.com>
5083
5084         * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
5085         (LIBSTDCXX): Change to CPP2.
5086
5087 2012-04-23  H.J. Lu  <hongjiu.lu@intel.com>
5088
5089         PR bootstrap/52878
5090         * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
5091         extra_masks.
5092
5093 2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
5094
5095         * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
5096         (*addsi_2_zext): Ditto.
5097         (*add<mode>_3): Ditto.
5098         (*addsi_3_zext): Ditto.
5099         (*add<mode>_5): Ditto.
5100
5101 2012-04-23  Andrew Pinski  <apinski@cavium.com>
5102
5103         * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
5104         (C & B) to (A OP0) & B.
5105
5106 2012-04-23  Martin Jambor  <mjambor@suse.cz>
5107
5108         * expr.c (expand_expr_real_1): Remove setting parent's alias set for
5109         temporaries created for a bitfield (reverting revision 122014).
5110
5111 2012-04-23  Richard Guenther  <rguenther@suse.de>
5112
5113         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
5114         the condition using is_gimple_condexpr and avoid the not necessary
5115         boolification.
5116         (set_prologue_iterations): Likewise.
5117         (vect_loop_versioning): Likewise.
5118
5119 2012-04-23  Richard Guenther  <rguenther@suse.de>
5120
5121         PR tree-optimization/53070
5122         * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
5123         (main_tree_if_conversion): Verify we succeeded in that.
5124
5125 2012-04-23  Jan Hubicka  <jh@suse.cz>
5126
5127         * lto-symtab.c (lto_cgraph_replace_node): Do not call
5128         mark_reahcable_node.
5129         * cgraph.c (cgraph_remove_node): Do not clear reachable.
5130         (cgraph_mark_reachable_node): Remove.
5131         (cgraph_mark_force_output_node): Do not set reachable.
5132         (dump_cgraph_node): Do not dump reachable.
5133         (cgraph_create_virtual_clone): Do not set reachable.
5134         * cgraph.h (cgraph_node): Remove reachable flag.
5135         (varpool_node): Remove reachable flag.
5136         (cgraph_mark_if_needed): Remove.
5137         (cgraph_mark_reachable_node): Remove.
5138         * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
5139         * cgraphunit.c (cgraph_finalize_function): Do not mark node as
5140         reachable.
5141         (cgraph_add_new_function): Likewise.
5142         (cgraph_mark_if_needed): Remove.
5143         (cgraph_analyze_function): Do not set target as reachable.
5144         (process_function_and_variable_attributes): Do not care about
5145         dllexport.
5146         (cgraph_analyze_functions): Do not set reachable flags.
5147         (cgraph_mark_functions_to_output): Do not check reachability.
5148         (cgraph_copy_node_for_versioning): Do not set reachable flag.
5149         (dbxout_expand_expr): Update.
5150         * c-decl.c (merge_decls): Do not track changed externs.
5151         * ipa.c: Include pointer-set.h
5152         (enqueue_cgraph_node): Use reachable pointer set.
5153         (process_references): Likewise.
5154         (cgraph_remove_unreachable_nodes): Likewise.
5155         (whole_program_function_and_variable_visibility): Do not recompute
5156         reachable.
5157         * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
5158
5159 2012-04-23  Georg-Johann Lay  <avr@gjlay.de>
5160
5161         * doc/extend.texi (AVR Named Address Spaces): Fix typos.
5162
5163 2012-04-23  Richard Guenther  <rguenther@suse.de>
5164
5165         PR c/53060
5166         * c-typeck.c (build_binary_op): Fix typo.
5167
5168 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
5169
5170         PR tree-optimizations/52891
5171         * tree-vect-patterns.c (adjust_bool_pattern): Use
5172         build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
5173         but with non-standard precision.
5174
5175 2012-04-22  Jan Hubicka  <jh@suse.cz>
5176
5177         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
5178         tree refs.
5179
5180 2012-04-22  Jan Hubicka  <jh@suse.cz>
5181
5182         * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
5183         * cgraphbuild.c (record_reference, record_type_list, mark_address,
5184         mark_load, mark_store): Do not mark varpool nodes as needed.
5185         * cgraph.c (cgraph_new_nodes): Remove.
5186         (cgraph_create_function_alias): Do not mark nodes as reachable.
5187         (cgraph_add_thunk): Likewise.
5188         (cgraph_mark_reachable_node): Do not manage the queue.
5189         * cgraph.h (cgraph_node): Remove next_needed.
5190         (varpool_nodes_queue): Remove next_needed and prev_needed.
5191         (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
5192         (cgraph_new_nodes): Declare.
5193         (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
5194         (varpool_analyze_pending_decls): Remove.
5195         (varpool_analyze_node): New.
5196         (varpool_mark_needed_node): Remove.
5197         (varpool_first_variable, varpool_next_variable): New inlines.
5198         (varpool_first_static_initializer, varpool_next_static_initializer):
5199         Update.
5200         (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
5201         (varpool_first_defined_variable): New inline.
5202         (varpool_next_defined_variable): New inline
5203         (FOR_EACH_VARIABLE): Reimplement.
5204         (FOR_EACH_DEFINED_VARIABLE): Reimplement.
5205         * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
5206         needed flag.
5207         * cgraphunit.c (cgraph_new_nodes): Declare here.
5208         (enqueue_node): New function.
5209         (cgraph_process_new_functions): update for new
5210         node set; when constructing cgraph enqueue node for processing.
5211         (cgraph_add_new_function): Use new node set.
5212         (process_function_and_variable_attributes): Do not set varpool needed
5213         flags.
5214         (referred_to_p): New function.
5215         (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
5216         when varpool is in construction.
5217         (cgraph_analyze_functions): Rewrite.
5218         (cgraph_expand_all_functions): Update.
5219         (cgraph_output_in_order): Do not analyze pending decls; do not set
5220         needed flags.
5221         (cgraph_optimize): Do not analyze pending decls.
5222         * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
5223         in other partition; do not mark node as needed.
5224         * dwarf2out.c (reference_to_unused): Use analyzed flag.
5225         (premark_types_used_by_global_vars_helper): Likewise.
5226         * ipa.c (process_references): Do not call varpool_mark_needed_node.
5227         (cgraph_remove_unreachable_nodes): Do not rely on varpool and
5228         cgrpah queues.
5229         (function_and_variable_visibility): Do not mark node as needed.
5230         (whole_program_function_and_variable_visibility): Likewise.
5231         * Makefile.in (gt-varpool.h): No longer needed.
5232         * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
5233         (ipa_write_summaries): Do not use needed flag.
5234         * varpool.c: Do not include gt-varpool.h
5235         (x_varpool_nodes_queue, x_varpool_last_needed_node,
5236         x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
5237         x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
5238         Remove.
5239         (varpool_remove_node): Do not update the lists.
5240         (dump_varpool_node): Do not dump needed flag.
5241         (varpool_enqueue_needed_node): Remove.
5242         (varpool_mark_needed_node): Remove.
5243         (varpool_reset_queue): Remove.
5244         (varpool_finalize_decl): Move to cgraphunit.c
5245         (varpool_analyze_node): New functions based on former
5246         varpool_analyze_pending_decls.
5247         (varpool_analyze_pending_decls): Remove.
5248         (varpool_assemble_decl): Do not update the lists.
5249         (enqueue_node): New function.
5250         (varpool_remove_unreferenced_decls): Rewrite.
5251         (varpool_empty_needed_queue): Remove.
5252         (add_new_static_var): Do not mark node as needed.
5253         (varpool_create_variable_alias): Handle expansion state
5254         creation.
5255         * except.c (output_ttype): Do not mark node as needed.
5256         * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
5257         * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
5258         Likewise.
5259         * tree-switch-conversion.c (build_one_array): Likewise.
5260
5261 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5262
5263         PR c/44774
5264         * doc/invoke.texi (pedantic): Rename to Wpedantic.
5265         * common.opt (Wpedantic): New.
5266         (pedantic): Alias Wpedantic.
5267         * diagnostic.c (warning_at): Likewise.
5268         * c-decl.c (diagnose_mismatched_decls): Likewise.
5269         (build_array_declarator): Likewise.
5270         (mark_forward_parm_decls):
5271         (check_bitfield_type_and_width): Likewise.
5272         (grokdeclarator): Likewise.
5273         (grokfield): Likewise.
5274         (finish_struct): Likewise.
5275         (build_enumerator): Likewise.
5276         (store_parm_decls_oldstyle): Likewise.
5277         (declspecs_add_qual): Likewise.
5278         (declspecs_add_type): Likewise.
5279         (finish_declspecs): Likewise.
5280         * c-typeck.c (composite_type): Likewise.
5281         (comp_target_types): Likewise.
5282         (build_array_ref): Likewise.
5283         (pointer_diff): Likewise.
5284         (build_unary_op): Likewise.
5285         (build_conditional_expr): Likewise.
5286         (build_c_cast): Likewise.
5287         (convert_for_assignment): Likewise.
5288         (maybe_warn_string_init): Likewise.
5289         (digest_init): Likewise.
5290         (pop_init_level): Likewise.
5291         (set_init_index): Likewise.
5292         (c_finish_goto_label): Likewise.
5293         (c_finish_return): Likewise.
5294         (do_case): Likewise.
5295         (build_binary_op): Likewise.
5296         * c-parser.c (static): Likewise.
5297         (c_parser_external_declaration): Likewise.
5298         (c_parser_declaration_or_fndef): Likewise.
5299         (c_parser_static_assert_declaration_no_se): Likewise.
5300         (c_parser_enum_specifier): Likewise.
5301         (c_parser_struct_or_union_specifier): Likewise.
5302         (c_parser_struct_declaration): Likewise.
5303         (c_parser_alignas_specifier): Likewise.
5304         (c_parser_braced_init): Likewise.
5305         (c_parser_initelt): Likewise.
5306         (c_parser_compound_statement_nostart): Likewise.
5307         (c_parser_conditional_expression): Likewise.
5308         (c_parser_alignof_expression): Likewise.
5309         (c_parser_postfix_expression): Likewise.
5310         (c_parser_postfix_expression_after_paren_): Likewise.
5311         (c_parser_objc_class_instance_variables): Likewise.
5312         (c_parser_objc_method_definition): Likewise.
5313         (c_parser_objc_methodprotolist): Likewise.
5314
5315 2012-04-22  Ian Lance Taylor  <iant@google.com>
5316
5317         * godump.c (go_output_typedef): Dump size of structs.
5318
5319 2012-04-22  Razya Ladelsky  <razya@il.ibm.com>
5320
5321         Correcting transform_to_exit_first_loop + fix to PR46886
5322         * tree-parloops.c (transform_to_exit_first_loop): Remove
5323         setting of number of iterations according to the loop pattern.
5324         Duplicate from entry to exit->src instead of loop->latch.
5325         (pallelize_loops): Remove the condition preventing do-while loops.
5326         * tree-cfg.c (bool bb_in_region_p): New.
5327         (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
5328         Adjust redirection of the duplicated iteration.
5329
5330 2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>
5331
5332         PR bootstrap/53021
5333         * rtl.def (ADDRESS): Use "i" rather than "w".
5334         * rtl.h (find_base_term): Delete.
5335         (may_be_sp_based_p): Declare.
5336         * rtl.c (rtx_code_size): Remove ADDRESS special case.
5337         * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
5338         (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
5339         * alias.c: ...here.
5340         (find_base_term): Make static.
5341         (may_be_sp_based_p): New function.
5342         * dse.c (record_store): Use it.
5343         * store-motion.c (store_killed_in_insn): Likewise.
5344
5345 2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>
5346
5347         * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
5348
5349 2012-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5350
5351         PR 35441
5352         * c-typeck.c (inform_declaration): New.
5353         (build_function_call_vec):  Do not pretty-print
5354         expressions when caret is enabled.
5355         (convert_arguments): Use inform_declaration.
5356
5357 2012-04-20  Jim Meyering  <meyering@redhat.com>
5358
5359         * genmodes.c (make_complex_modes): Don't truncate a mode name of
5360         length 7 or more when prepending a "C".  Suggested by Richard Guenther.
5361
5362 2012-04-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5363
5364         PR rtl-optimization/44214
5365         * fold-const.c (exact_inverse): New function.
5366         (fold_binary_loc): Fold vector and complex division by constant into
5367         multiply by recripocal with flag_reciprocal_math; fold vector division
5368         by constant into multiply by reciprocal with exact inverse.
5369
5370 2012-04-20  Jan Hubicka  <jh@suse.cz>
5371
5372         * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
5373         force flags.
5374         * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
5375         (cgraph_remove_node): Update.
5376         (cgraph_mark_needed_node): Remove.
5377         (cgraph_mark_force_output_node): New.
5378         (dump_cgraph_node): Do not dump needed flag.
5379         (cgraph_node_cannot_be_local_p_1): Update.
5380         (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
5381         * cgraph.h (symtab_node_base): Add force_output flag.
5382         (cgraph_node): Remove needed flag.
5383         (varpool_node): Remove force_output flag.
5384         (cgraph_mark_needed_node): Remove.
5385         (cgraph_mark_force_output_node): New.
5386         (cgraph_only_called_directly_or_aliased_p,
5387         varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
5388         * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
5389         * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
5390         (cgraph_add_new_function): Update.
5391         (cgraph_mark_if_needed): Update.
5392         (verify_cgraph_node): Update.
5393         (cgraph_analyze_function): Alias target is reachable.
5394         (process_function_and_variable_attributes): Update: externally_visible
5395         flag makes function reachable.
5396         (cgraph_analyze_functions): Update dumping.
5397         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
5398         input_overwrite_node, input_varpool_node): Update streaming.
5399         * lto-streamer-out.c (produce_symtab): Use force_output.
5400         * ipa.c (process_references): Weakrefs must be processed.
5401         (cgraph_remove_unreachable_nodes): Likewise; update for new
5402         force_output flag.
5403         (varpool_externally_visible_p): Weakrefs are externally visible
5404         even if they are not.
5405         (function_and_variable_visibility): Update; when processing alias
5406         pair force the targets to be output.
5407         (whole_program_function_and_variable_visility): Use
5408         mark_reachable_node.
5409         * trans-mem.c (ipa_tm_mark_needed_node): Remove
5410         (ipa_tm_mark_force_output_node): New function.
5411         (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
5412         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
5413         aliases.
5414         * varasm.c (mark_decl_referenced): Update.
5415         (find_decl_and_mark_needed): Remove.
5416         (find_decl): New function.
5417         (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
5418         alias targets as needed.
5419         (dump_tm_clone_pairs): Update.
5420         * tree-inline.c (copy_bb): Update check.
5421         * symtab.c (dump_symtab_base): Dump force_output.
5422         * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
5423         * passes.c (execute_todo): Fix dumping.
5424         * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
5425         (varpool_analyze_pending_decls): Alias target is reachable.
5426         (varpool_create_variable_alias): Finalize weakrefs.
5427
5428 2012-04-20  Jakub Jelinek  <jakub@redhat.com>
5429
5430         PR bootstrap/53021
5431         * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
5432         UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
5433         * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
5434         macros instead of constants.
5435         * dse.c (record_store): Check for SP ADDRESS by comparing
5436         XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
5437         XEXP to be stack_pointer_rtx.
5438
5439 2012-04-20  Richard Guenther  <rguenther@suse.de>
5440
5441         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
5442         update_call_from_tree when propagating into a call.
5443
5444 2012-04-20  Alan Modra  <amodra@gmail.com>
5445
5446         * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
5447         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.  Rename
5448         sp_offset to frame_off.  Move world save code earlier.
5449
5450 2012-04-20  Richard Guenther  <rguenther@suse.de>
5451
5452         PR tree-optimization/53050
5453         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
5454         Do only one transform on COND_EXPRs at the same time.
5455
5456 2012-04-19  Jan Hubicka  <jh@suse.cz>
5457
5458         * symtab.c (dump_symtab_base): Revert accidental checkin.
5459
5460 2012-04-20  Alan Modra  <amodra@gmail.com>
5461
5462         PR target/53040
5463         * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
5464         static chain, set REST_INLINE_FPRS too.
5465
5466 2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
5467
5468         * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
5469         nodes.
5470
5471 2012-04-20  Richard Guenther  <rguenther@suse.de>
5472
5473         * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
5474         loops that can never run more often than the vectorization factor.
5475
5476 2012-04-19  Jan Hubicka  <jh@suse.cz>
5477
5478         * symtab.c (dump_symtab_base): Fix dumping of asm lists.
5479
5480 2012-04-19  David Edelsohn  <dje.gcc@gmail.com>
5481
5482         * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
5483
5484 2012-04-19  Jim Meyering  <meyering@redhat.com>
5485
5486         * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
5487         We verified above that the string(including trailing NUL) fits in buf,
5488         so just use memcpy.
5489
5490 2012-04-19  Richard Guenther  <rguenther@suse.de>
5491
5492         * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
5493         for dumping DECL_SECTION_NAME.
5494
5495 2012-04-19  Michael Matz  <matz@suse.de>
5496
5497         PR middle-end/52977
5498         * tree.h (VECTOR_CST_NELTS): Use part number of types again.
5499         (struct tree_vector): Adjust GTY length.
5500         * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
5501
5502         * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
5503         members.
5504         (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
5505         caller emitted the length calulation already.
5506         (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
5507         before handling any of the fields for structs.
5508
5509 2012-04-19  Richard Guenther  <rguenther@suse.de>
5510
5511         PR tree-optimization/53031
5512         * tree-vrp.c (adjust_range_with_scev): Revert back to
5513         using max_loop_iterations.
5514
5515 2012-04-19  Michael Matz  <matz@suse.de>
5516
5517         * diagnostic.c (emit_diagnostic): Move va_end call after user
5518         of the va_list.
5519         (warning, warning_at, pedwarn, permerror): Ditto.
5520
5521 2012-04-19  Richard Guenther  <rguenther@suse.de>
5522
5523         * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
5524         array access.
5525
5526 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
5527
5528         PR target/53033
5529         * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
5530         the case *(X+const).
5531
5532 2012-04-19  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5533
5534         * config/arm/sync.md (sync_optab): Change ior attribute to "or".
5535
5536 2012-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5537
5538         PR c/52283/37985
5539         * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
5540         * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
5541
5542 2012-04-19  Richard Guenther  <rguenther@suse.de>
5543
5544         PR rtl-optimization/44688
5545         * loop-iv.c (determine_max_iter): Only return max_iter.
5546         (iv_number_of_iterations): Also use the recorded loop bound
5547         on the maximum number of iterations.
5548         * loop-unroll.c (decide_unroll_runtime_iterations): Use
5549         max_iter to avoid unrolling loops that do not roll.
5550         (decide_unroll_stupid): Likewise.
5551
5552 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
5553
5554         * targhooks.c (default_case_values_threshold): Fix code style nit.
5555
5556         * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
5557         case range and type folding from here...
5558         * gimplify.c (gimplify_switch_expr): ... to here.  Expect NULL_TREE
5559         type, as documented in tree.def.
5560
5561 2012-04-18  Jan Hubicka  <jh@suse.cz>
5562
5563         * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
5564         Declare.
5565         * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
5566         cgraph hash and same comdat groups.
5567         (cgraph_optimize): Verify symbol table.
5568         * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
5569         (dissolve_same_comdat_group_list): Work on symtab nodes.
5570         (function_and_variable_visibility): Dissolve variable same comdat group
5571         lists, too.
5572         * symtab.c: Include timevar.h
5573         (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
5574
5575 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
5576
5577         * tree-switch-conversion.c (info): Remove global pass info.
5578         (check_range, check_process_case, check_final_bb, create_temp_arrays,
5579         free_temp_arrays, gather_default_values, build_constructors,
5580         array_value_type, build_one_array, build_arrays, gen_def_assigns,
5581         fix_phi_nodes, gen_inbound_check): Pass info around from ...
5582         (process_switch): ... here.  Unify message format.  Return a const
5583         char pointer to the failure reason message.
5584         (do_switchconv): Unify message format.  Update process_switch usage.
5585
5586         * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
5587         * tree-cfg.c (edge_to_cases): Fix documentation.
5588
5589 2012-04-18  Uros Bizjak  <ubizjak@gmail.com>
5590
5591         * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
5592
5593 2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5594
5595         PR tree-optimization/52976
5596         * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
5597         (possibly_move_powi): New function.
5598         (rewrite_expr_tree): Call possibly_move_powi.
5599         (rewrite_expr_tree_parallel): Likewise.
5600         (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
5601         call add_to_ops_vec instead.
5602
5603 2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5604
5605         PR tree-optimization/52976
5606         * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
5607         (decrement_power): Likewise.
5608         (propagate_op_to_single_use): Likewise.
5609         (zero_one_operation): Handle __builtin_pow* calls in linearized
5610         expression trees; factor logic into propagate_op_to_single_use.
5611         (undistribute_ops_list): Allow operands with repeat counts > 1.
5612
5613 2012-04-18  Richard Guenther  <rguenther@suse.de>
5614
5615         PR tree-optimization/44688
5616         * cfgloop.h (record_niter_bound): Declare.
5617         * tree-ssa-loop-niter.c (record_niter_bound): Export.
5618         Update the estimation with the upper bound here...
5619         (estimate_numbers_of_iterations_loop): ... instead of here.
5620         Do not forcefully reset a recorded upper bound.
5621         * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
5622         Record the maximum number of loop iterations of the prologue loop.
5623
5624 2012-04-18  Jan Hubicka  <jh@suse.cz>
5625
5626         * lto-symtab.c (lto_cgraph_replace_node): Update.
5627         * cgraphbuild.c (record_reference, record_type_list,
5628         record_eh_tables, mark_address, mark_load, mark_store): Update.
5629         * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
5630         cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
5631         Update.
5632         * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
5633         (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
5634         * reload.c: Fix typo in comment.
5635         * rtlanal.c: Likewise.
5636         * tree-emultls.c (gen_emutls_addr): Update.
5637         * ipa-reference.c (analyze_function): Update.
5638         * cgraphunit.c (cgraph_analyze_function,
5639         cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
5640         Update.
5641         * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
5642         (ipa_remove_reference): Likewise.
5643         (ipa_remove_all_refering): Rename to ...
5644         (ipa_remove_all_referring): ... this one; update.
5645         (ipa_dump_references): Update.
5646         (ipa_dump_referring): Update.
5647         (ipa_clone_references): Update.
5648         (ipa_clone_refering): Rename to ...
5649         (ipa_clone_referring): ... this one; update.
5650         (ipa_ref_cannot_lead_to_return): Update.
5651         (ipa_ref_has_aliases_p): Update.
5652         * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
5653         forward typedefs.
5654         (ipa_ref_type): Remove.
5655         (ipa_ref_ptr_u): Remove.
5656         (ipa_ref): Remove referencing, refered, refered_index, refering_type
5657         and refered_type; add referring, referred and referred_index.
5658         (ipa_ref_list): Rename refering to referring.
5659         (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
5660         ipa_clone_references, ipa_clone_referring): Update prototypes.
5661         * lto-cgraph.c (referenced_from_other_partition_p): Update.
5662         (lto_output_ref): Update.
5663         (add_references): Update.
5664         (input_varpool_node): Update.
5665         (input_refs): Update.
5666         * ipa-ref-inline.h (ipa_ref_node): Update.
5667         (ipa_ref_varpool_node): Update.
5668         (ipa_ref_referring_node): Update.
5669         (ipa_ref_referring_varpool_node): Update.
5670         (ipa_ref_referring_ref_list): Update.
5671         (ipa_ref_referred_ref_list): Update.
5672         (ipa_ref_list_first_referring): Update.
5673         (ipa_empty_ref_list): Update.
5674         (ipa_ref_list_refering_iterate): Rename to ...
5675         (ipa_ref_list_referring_iterate): ... this one.
5676         * cse.c: Update comment.
5677         * ipa-utils.c (ipa_reverse_postorder): Update.
5678         * tree-ssa-alias.c: Update.
5679         * ipa-inline.c (reset_edge_caches): Update.
5680         (update_caller_keys): Update.
5681         * ipa-inline.h: Update comments.
5682         * jump.c: Update comment.
5683         * alias.c: Likewise.
5684         * ipa.c (process_references): Update.
5685         (cgraph_remove_unreachable_nodes): Likewise.
5686         (ipa_discover_readonly_nonaddressable_var): Likewise.
5687         (cgraph_address_taken_from_non_vtable_p): Likewise.
5688         * trans-mem.c (ipa_tm_execute): Update.
5689         * simplify-rtx.c: Fix comment.
5690         * rtl.c: Fix comment.
5691         * symtab.c (symtab_unregister_node): Update.
5692         * varpool.c (dump_varpool_node): Update.
5693         (varpool_analyze_pending_decls): Update.
5694         (assemble_aliases): Update.
5695         (varpool_for_node_and_aliases): Update.
5696
5697 2012-04-18  Richard Guenther  <rguenther@suse.de>
5698
5699         * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
5700         use_undefined_p parameter.
5701         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
5702         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
5703         Likewise.
5704         (estimate_numbers_of_iterations): Likewise.
5705         (estimated_loop_iterations): Adjust.
5706         (max_loop_iterations): Likewise.
5707         (scev_probably_wraps_p): Likewise.
5708         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
5709         * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
5710         not max_loop_iterations.
5711         (execute_vrp): Remove explicit number of iterations estimation.
5712
5713 2012-04-18  Enkovich Ilya  <ilya.enkovich@intel.com>
5714
5715         * config/i386/linux-common.h: New.
5716
5717         * config.gcc: Add i386/linux-common.h before
5718         all i386/linux.h and i386/linux64.h usages.
5719
5720         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
5721         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
5722         * config/i386/gnu-user64.h: Likewise.
5723
5724         * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
5725         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
5726         (GNU_USER_TARGET_MATHFILE_SPEC): New.
5727         (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
5728
5729 2012-04-18  Jan Hubicka  <jh@suse.cz>
5730
5731         * cgraph.c (cgraph_node_name): Remove.
5732         (dump_cgraph_node): Use dump_symtab_base; reformat.
5733         * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
5734         debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
5735         Declare.
5736         (cgraph_node_name, varpool_node_name): Remove.
5737         (cgraph_node_asm_name, varpool_node_asm_name,
5738         cgraph_node_name, varpool_node_name): New.
5739         * tree-pass.h (TODO_dump_cgraph): Rename to ...
5740         (TODO_dump_symtab): ... this one.
5741         * ipa-cp (pass_ipa_cp): Update.
5742         * ia-reference.c (generate_summary, read_write_all_from_decl,
5743         propagate, ipa_reference_read_optimization_summary): Update.
5744         * cgraphunit.c (cgraph_analyze_functions): Update.
5745         (cgraph_optimize): Update.
5746         * ipa-ref.c (ipa_dump_references): Update.
5747         (ipa_dump_refering): Update.
5748         * ipa-inline.c (pass_ipa_inline): Update.
5749         * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
5750         * ipa.c (pass_ipa_function_visibility,
5751         pass_ipa_whole_program_visibility): Update.
5752         * tree-sra.c (pass_early_ipa_sra): Update.
5753         * symtab.c: Include langhooks.h
5754         (symtab_node_asm_name): New.
5755         (symtab_node_name): New.
5756         (symtab_type_names): New static var.
5757         (dump_symtab_base): New.
5758         (dump_symtab_node, dump_symtab): New.
5759         (debug_symtab_node,  debug_symtab): New.
5760         * tree-ssa-structalias.c: Dump symbol table.
5761         * pases.c (execute_todo): Handle TODO_dump_symtab instead
5762         of TODO_dump_cgraph.
5763         * varpoo.c (varpool_node_name): Remove.
5764         (dump_varpool_node): Use dump_symtab_base; reformat.
5765
5766 2012-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5767
5768         * doc/invoke.texi (Language Independent Options): @item should be
5769         before @opindex.
5770
5771 2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5772
5773         PR bootstrap/53021
5774         * rtl.c (rtx_code_size): Handle ADDRESS.
5775
5776 2012-04-17  Tom de Vries  <tom@codesourcery.com>
5777
5778         * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
5779         is not a STMT_LIST.
5780
5781 2012-04-17  Uros Bizjak  <ubizjak@gmail.com>
5782
5783         PR target/53020
5784         * config/i386/sync.md (atomic_<code><mode>): Rename to
5785         atomic_<logic><mode>.
5786
5787 2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5788
5789         * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
5790         * alias.c (reg_base_value): Expand and update comment.
5791         (arg_base_value): New variable.
5792         (unique_id): Move up file.
5793         (unique_base_value, unique_base_value_p, known_base_value_p): New.
5794         (find_base_value): Use arg_base_value and known_base_value_p.
5795         (record_set): Document REG_NOALIAS handling.  Use unique_base_value.
5796         (find_base_term): Use known_base_value_p.
5797         (base_alias_check): Use unique_base_value_p.
5798         (init_alias_target): Initialize arg_base_value.  Use unique_base_value.
5799         (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
5800
5801 2012-04-17  Pat Haugen <pthaugen@us.ibm.com>
5802
5803         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
5804
5805 2012-04-17  Michael Matz  <matz@suse.de>
5806
5807         PR tree-optimization/18437
5808         * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
5809         (STMT_VINFO_STRIDE_LOAD_P): New accessor.
5810         (vect_check_strided_load): Declare.
5811         * tree-vect-data-refs.c (vect_check_strided_load): New function.
5812         (vect_analyze_data_refs): Use it to accept strided loads.
5813         * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
5814
5815 2012-04-17  Richard Guenther  <rguenther@suse.de>
5816
5817         PR middle-end/53011
5818         * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
5819         loops when redirecting an entry or latch edge.
5820
5821 2012-04-17  Bernd Schmidt  <bernds@codesourcery.com>
5822
5823         * sel-sched.c (sel_global_init): Revert previous change.
5824
5825 2012-04-17  Richard Guenther  <rguenther@suse.de>
5826
5827         * tree-flow.h (array_at_struct_end_p): Move declaration ...
5828         * tree.h (array_at_struct_end_p): ... here.
5829         * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
5830         * expr.c (array_at_struct_end_p): ... here.  Rewrite.
5831
5832 2012-04-17  Steven Bosscher  <steven@gcc.gnu.org>
5833
5834         * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
5835         COST_TABLE): Remove.
5836         (estimate_case_costs): Remove.
5837         (expand_case): Do not call estimate_case_costs
5838         to set use_cost_table.
5839         (balance_case_nodes): Do not use use_cost_table.
5840
5841 2012-04-16  Jan Hubicka  <jh@suse.cz>
5842
5843         * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
5844         (hash_node, eq_node): Remove.
5845         (cgraph_create_node): Do not handle hashtable.
5846         (cgraph_get_node): Remove.
5847         (cgraph_insert_node_to_hashtable): Remove.
5848         (hash_node_by_assembler_name): Remove.
5849         (eq_assembler_name): Remove.
5850         (cgraph_node_for_asm): Rewrite.
5851         (cgraph_find_replacement_node): Break out from ...
5852         (cgraph_remove_node): ... here; do not maintain hashtables.
5853         (change_decl_assembler_name): Remove.
5854         (cgraph_clone_node): Do not maintain hashtables.
5855         * cgraph.h (const_symtab_node): New typedef.
5856         (cgraph_insert_node_to_hashtable): Remove.
5857         (symtab_get_node, symtab_node_for_asm,
5858         symtab_insert_node_to_hashtable): Declare.
5859         (cgraph_find_replacement_node): Declare.
5860         (cgraph_get_node, varpool_get_node): Turn into inlines.
5861         (cgraph, varpool): Work sanely on NULL pointers.
5862         (FOR_EACH_SYMBOL): New walker.
5863         * ipa-inline-transform.c (save_inline_function_body): Use
5864         symtab_insert_node_to_hashtable.
5865         * symtab.c: Include ggc.h and diagnostics.h
5866         (symtab_hash, assembler_name_hash): New static vars;
5867         (hash_node, eq_node, hash_node_by_assembler_name,
5868         eq_assembler_name, insert_to_assembler_name_hash,
5869         unlink_from_assembler_name_hash): New.
5870         (symtab_register_node): Update hashtables.
5871         (symtab_insert_node_to_hashtable): New.
5872         (symtab_unregister_node): Update hashtables.
5873         (symtab_get_node): New.
5874         (symtab_node_for_asm): New.
5875         (change_decl_assembler_name): New.
5876         * Makefile.in (symtab.o): Needs GTY.
5877         * varpool.c (varpool_hash): Remove.
5878         (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
5879         (varpool_node): Rewrite using varpool_get_node.
5880         (varpool_remove_node): DO not maintain hashtables.
5881         (varpool_node_for_asm): Rewrite.
5882
5883 2012-04-16  Sandra Loosemore  <sandra@codesourcery.com>
5884
5885         * doc/invoke.texi:  Copy-edit to put verbs in the present tense
5886         when describing the current behavior of GCC.
5887
5888 2012-04-16  Richard Sandiford  <rdsandiford@googlemail.com>
5889
5890         * genemit.c (gen_exp): Remove ADDRESS handling.
5891         * genoutput.c (scan_operands): Likewise.
5892         * genpeep.c (match_rtx): Likewise.
5893         * genrecog.c (add_to_sequence): Likewise.
5894
5895 2012-04-16  David Edelsohn  <dje.gcc@gmail.com>
5896
5897         * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
5898
5899 2012-04-16  Martin Jambor  <mjambor@suse.cz>
5900
5901         * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
5902         bit-fields.
5903
5904 2012-04-16  Ulrich Weigand  <ulrich.weigand@linaro.org>
5905
5906         PR target/51819
5907         * config/arm/arm.c (arm_print_operand): Fix invalid alignment
5908         hints for 'A' operand types.
5909
5910 2012-04-16  Jan Hubicka  <jh@suse.cz>
5911
5912         * cgraph.h (symtab_node_base): Add next and previous pointers.
5913         (cgraph_node): Remove next and preivous pointers.
5914         (varpool_node): Likewise; remove next/previous GTY marker;
5915         it is not type safe.
5916         (symtab_node_def): Update GTY marker
5917         (x_cgraph_nodes, cgraph_nodes): Remove.
5918         (symtab_nodes): New function.
5919         (cgraph_order): Rename to ...
5920         (symtab_order): ... this one.
5921         (symtab_register_node, symtab_unregister_node, symtab_remove_node):
5922         Declare.
5923         (x_varpool_nodes, varpool_nodes): Remove.
5924         (FOR_EACH_STATIC_VARIABLE): Update.
5925         (symtab_function_p, symtab_variable_p): New function.
5926         (FOR_EACH_VARIABLE): Update.
5927         (varpool_first_variable, varpool_next_variable): New functions.
5928         (FOR_EACH_VARIABLE): Update.
5929         (cgraph_first_defined_function): Update.
5930         (cgraph_next_defined_function, cgraph_next_defined_function): Update.
5931         (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
5932         (cgraph_first_function, cgraph_next_function): New.
5933         (FOR_EACH_FUNCTION): Update.
5934         (cgraph_first_function_with_gimple_body,
5935         cgraph_next_function_with_gimple_body): Update.
5936         * symtab.c: New file.
5937         * cgraph.c: Update copyright dates.
5938         (x_cgraph_nodes, cgraph_order): Remove.
5939         (NEXT_FREE_NODE): Update.
5940         (SET_NEXT_FREE_NODE): New.
5941         (cgraph_create_node_1): Remove common code.
5942         (cgraph_create_node): Remove common code; call symtab_register_node.
5943         (cgraph_remove_node): Remove common code; call symtab_unregister-node.
5944         (cgraph_add_asm_node): Update.
5945         (cgraph_clone_node): Register new node.
5946         * cgraphunit.c (process_function_and_variable_attributes): Update.
5947         (cgraph_analyze_functions): Update.
5948         (cgraph_analyze_functions): Update.
5949         (cgraph_output_in_order): Update.
5950         * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
5951         Update.
5952         * ipa-inline.c (recursive_inlining): Update.
5953         * lto-streamer-in.c (lto_input_toplevel_asms): Update.
5954         * ipa.c (cgraph_remove_unreachable_nodes): Update.
5955         * Makefile.in: Add symtab.o
5956         * varpool.c (x_varpool_nodes): Remove
5957         (varpool_node): Remove common code; call symtab_register_node.
5958         (varpool_remove_node): Remove common code; call symtab_unregister_node.
5959
5960 2012-04-16  Richard Guenther  <rguenther@suse.de>
5961
5962         PR middle-end/52977
5963         * tree.h (VECTOR_CST_NELTS): Adjust.
5964         (struct tree_vector): Add explicit length field.
5965         (make_vector_stat): Declare.
5966         (make_vector): Define.
5967         * tree.c (make_vector_stat): New function.
5968         (build_vector_stat): Use it.
5969         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
5970
5971 2012-04-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5972
5973         PR tree-optimization/52976
5974         * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
5975         (undistribute_ops_list): Ops with repeat counts aren't eligible for
5976         undistribution.
5977         (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
5978
5979 2012-04-16  Jan Hubicka  <jh@suse.cz>
5980
5981         * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
5982         New macros.
5983         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
5984         walkers to walk cgraph and varpool.
5985         * cgraph.c (cgraph_node_for_asm): Likewise.
5986         (dump_cgraph): Likewise.
5987         * value-prof.c (init_node_map): Likewise.
5988         * tree.c (free_lang_data_in_cgraph): Likewise.
5989         * tree-emutls.c: (ipa_lower_emutls): Likewise.
5990         * ipa-reference.c (generate_summary, propagate): Likewise.
5991         * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
5992         cgraph_mark_functions_to_output, cgraph_output_in_order,
5993         output_weakrefs, cgraph_materialize_all_clones,
5994         cgraph_optimize): Likewise.
5995         * lto-cgraph.c (merge_profile_summaries): Likewise.
5996         (input_cgraph): Likewise.
5997         * ipa-pure-const.c (generate_summary): Likewise.
5998         (propagate): Likwise.
5999         * ipa-utils.c (ipa_reduced_postorder): Likewise.
6000         (ipa_free_postorder_info): Likewise.
6001         (ipa_reverse_postorder): Likewise.
6002         * ipa-inline.c (ipa_inline): Likewise.
6003         * matrix-reorg.c (find_matrices_decl): Likewise.
6004         (matrix_reorg): Likewise.
6005         * tree-vectorizer.c (increase_alignment): Likewise.
6006         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
6007         (function_and_variable_visibility): Likewise.
6008         (whole_program_function_and_variable_visibility): Likewise.
6009         (ipa_cdtor_merge): Likewise.
6010         * trans-mem.c (ipa_tm_execute): Likewise.
6011         * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
6012         * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
6013         (ipa_print_all_params): Likewise.
6014         (ipa_update_after_lto_read): Likewise.
6015         * tree-profie.c (tree_profiling): Likewise.
6016         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6017         * passes.c (dump_passes): Likewise.
6018         (do_per_function): Likewise.
6019         (ipa_write_summaries): Likewise.
6020         * varpool.c (dump_varpool): Likewise.
6021         (varpool_node_for_asm): Likewise.
6022         (varpool_assemble_pending_decls): Likewise.
6023
6024 2012-04-16  Richard Guenther  <rguenther@suse.de>
6025
6026         PR tree-optimization/52975
6027         * tree-if-conv.c (predicate_bbs): Do not simplify inverted
6028         condition but always mark it with TRUTH_NOT_EXPR.
6029
6030 2012-04-16  Richard Guenther  <rguenther@suse.de>
6031
6032         PR tree-optimization/52975
6033         * tree-ssa-forwprop.c (combine_cond_exprs): New function.
6034         (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
6035         and VEC_COND_EXPRs.  Also combine into VEC_COND_EXPRs condition.
6036         * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
6037
6038 2012-04-14  Uros Bizjak  <ubizjak@gmail.com>
6039
6040         * config/i386/sse.md (ssse3_plusminus): New code iterator.
6041         (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
6042         avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
6043         (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
6044         ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
6045         (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
6046         ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
6047
6048         (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
6049         avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
6050         (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
6051         ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
6052         (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
6053         ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
6054
6055         (xop_plus): New code iterator.
6056         (macs): New code attribute.
6057         (macds): Ditto.
6058         (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
6059         xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
6060         iterator.
6061         (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
6062         xop_plus code iterator.
6063         (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
6064         xop_plus code iterator.
6065         (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
6066         xop_plus code iterator.
6067         (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
6068         xop_plus code iterator.
6069
6070         (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
6071         any_extend code iterator.
6072         (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
6073         any_extend code iterator.
6074         (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
6075         any_extend code iterator.
6076         (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
6077         any_extend code iterator.
6078         (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
6079         any_extend code iterator.
6080         (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
6081         any_extend code iterator.
6082
6083 2012-04-14  Tom de Vries  <tom@codesourcery.com>
6084
6085         * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
6086         call to delete_insn.  Remove code to reorder BASIC_BLOCK note and
6087         DELETED_LABEL note, and move it to ...
6088         * cfgrtl.c (delete_insn): ... here.  Change return type to void.
6089         (delete_insn_and_edges): Likewise.
6090         (delete_insn_chain): Handle new return type of delete_insn.  Delete
6091         chain backwards rather than forwards.
6092         * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
6093         void.
6094         * cfglayout.c (fixup_reorder_chain): Delete unused label.
6095
6096 2012-04-14  Jan Hubicka  <jh@suse.cz>
6097
6098         * cgraph.h: Update copyrights;
6099         (symtab_node): Turn to union typedef.
6100         (symtab_node_base): New structure.
6101         (symtab_type): Add SYMTAB_SYMBOL tag.
6102         (cgraph_node): Annotate some pinters with nested_ptr.
6103         (varpool_node): Likewise.
6104         (cgraph_local_info): Remove lto_file_data
6105         and externally_visible.
6106         (cgraph_node): Remove decl; same_comdat_group list;
6107         aux; ref_list; order; address_taken; reachable_from_other_parittion,
6108         in_other_partition; resolution.
6109         (varpool_node): Remove decl; same_comdat_group;
6110         ref_list; lto_file_data; aux; order; resolution; externally_visible;
6111         used_from_other_partition; in_other_partition.
6112         (symtab_node_def): New union.
6113         (cgraph, varpool): Update.
6114         (varpool_first_static_initializer, varpool_next_static_initializer,
6115         cgraph_only_called_directly_or_aliased_p,
6116         varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
6117         varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
6118         varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
6119         field references.
6120         * cgraph.c: Likewise.
6121         (cgraph_hash, assembler_name_hash): Turn into symtab_node.
6122         * cgraphbuild.c: Likewise.
6123         * lto-symtab.c: Likewise.
6124         * c-gimplify.c: Likewise.
6125         * value-prof.c: Likewise.
6126         * tree.c: Likewise.
6127         * ipa-cp.c: Likewise.
6128         * tree-emutls.c: Likewise.
6129         * ipa-inline-transform.c: Likwise.
6130         * ipa-reference.c: Likewise.
6131         * cgraphunit.c: Likewise.
6132         * ipa-ref.c: Likewise.
6133         * lto-cgraph.c: Likewise.
6134         * ipa-ref-inline.h: Likewise.
6135         * ipa-pure-const.c: Likewise.
6136         * lto-streamer-out.c: Likewise.
6137         * ipa-utils.c: Likewise.
6138         * ipa-inline.c: Likewise.
6139         * matrix-reorg.c: Likewise.
6140         * tree-eh.c: Likewise.
6141         * tree-vectorizer.c: Likewise.
6142         * ipa-split.c: Likewise.
6143         * ipa.c: Likewise.
6144         * trans-mem.c: Likewise.
6145         * ipa-inline-analysis.c: Likewise.
6146         * gimplify.c: Likewise.
6147         * cfgexpand.c: Likewise.
6148         * tree-sra.c: Likewise.
6149         * ipa-prop.c: Likewise.
6150         * varasm.c: Likewise.
6151         * tree-nested.c: Likewise.
6152         * tree-inline.c: Likewise.
6153         * tree-profile.c: Likewise.
6154         * tree-ssa-structalias.c: Likewise.
6155         * passes.c: Likewise.
6156         * varpool.c: Likewise.
6157
6158 2012-04-14  Tom de Vries  <tom@codesourcery.com>
6159
6160         * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
6161         same_succ_hash, with local_def inlined.  Use SINGLE_SSA_DEF_OPERAND.
6162         Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.  Remove use
6163         of find_edge.
6164         (gsi_advance_fw_nondebug_nonlocal): New function.
6165         (local_def): Removed function.
6166         (same_succ_hash): Use stmt_local_def.
6167         (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
6168         (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
6169
6170 2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
6171
6172         * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
6173         and __ILP32__ for x32.
6174
6175 2012-04-13  Martin Jambor  <mjambor@suse.cz>
6176
6177         PR middle-end/52939
6178         * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
6179         fold_ctor_reference returns a zero constant.
6180
6181 2012-04-13  Enkovich Ilya  <ilya.enkovich@intel.com>
6182
6183         * config.gcc: Add i386/gnu-user-common.h before all
6184         i386/gnu-user.h and i386/gnu-user64.h usages.
6185
6186         * config/i386/gnu-user-common.h: New.
6187
6188         * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
6189         (CC1_SPEC): Likewise.
6190         (ENDFILE_SPEC): Likewise.
6191         (DEFAULT_PCC_STRUCT_RETURN): Likewise.
6192         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
6193         (TARGET_OS_CPP_BUILTINS): Likewise.
6194         (LIBGCC2_HAS_TF_MODE): Likewise.
6195         (LIBGCC2_TF_CEXT): Likewise.
6196         (TF_SIZE): Likewise.
6197         (TARGET_ASM_FILE_END): Likewise.
6198         (STACK_CHECK_MOVING_SP): Likewise.
6199         (STACK_CHECK_STATIC_BUILTIN): Likewise.
6200         * config/i386/gnu-user64.h: Likewise.
6201
6202 2012-04-13  Martin Jambor  <mjambor@suse.cz>
6203
6204         * expr.c (expand_expr_real_1): Pass type, not the expression, to
6205         set_mem_attributes for a memory temporary. Do not call the function
6206         for the memory temporary created for a bitfield.
6207
6208 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
6209
6210         PR debug/48866
6211         * df.h (enum debug_temp_where): New.
6212         (dead_debug_init, dead_debug_finish) Declare.
6213         (dead_debug_add, dead_debug_insert_temp): Declare.
6214         (struct dead_debug_use, struct dead_debug): Moved from...
6215         * df-problems.c: ... here.
6216         (df_set_unused_notes_for_mw): Bind debug uses of unused regno
6217         to a debug temp.
6218         (df_create_unused_note): Likewise.
6219         (df_set_dead_notes_for_mw): Move comment where it belongs.
6220         (dead_debug_init): Export.
6221         (dead_debug_reset_uses): New, factored out of...
6222         (dead_debug_finish): ...this.  Export.
6223         (dead_debug_reset): Remove.
6224         (dead_debug_add): Export.
6225         (dead_debug_insert_before): Rename to...
6226         (dead_debug_insert_temp): ... this.  Add where argument.  Export.
6227         Locate stored value for BEFORE_WITH_VALUE.  Avoid repeat inserts.
6228         Return insertion count.
6229         (df_note_bb_compute): Adjust.
6230         * dce.c (word_dce_process_block): Adjust dead debug uses.
6231         (dce_process_block): Likewise.
6232
6233 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
6234
6235         * df-problems.c (df_note_bb_compute): Do not take note of
6236         debug uses for whose REGs we won't emit DEAD or UNUSED notes.
6237
6238 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
6239
6240         PR debug/51570
6241         * var-tracking.c (expand_depth): New type.
6242         (onepart_aux, expand_loc_callback_data): Change depth type to it.
6243         (loc_exp_dep_alloc): Adjust initializer.
6244         (update_depth): Use new type.  Add entryvals.
6245         (vt_expand_var_loc_chain): Take note of expansions with
6246         ENTRY_VALUEs, but don't accept them right away.  Run an optional
6247         second pass accepting the minimum ENTRY_VALUE count found in the
6248         first pass.
6249         (vt_expand_loc_callback, INIT_ELCD): Adjust.
6250
6251 2012-04-13  Tom de Vries  <tom@codesourcery.com>
6252
6253         * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
6254         parameters vuse and vuse_escaped.
6255         (find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
6256         gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
6257         vuse1 != vuse2.
6258
6259 2012-04-13  Richard Guenther  <rguenther@suse.de>
6260
6261         PR tree-optimization/52969
6262         * tree-if-conv.c (predicate_mem_writes): Properly gimplify
6263         the condition for the COND_EXPR and handle predicate negation
6264         by swapping the COND_EXPR arms.
6265
6266 2012-04-13  Nick Clifton  <nickc@redhat.com>
6267
6268         * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
6269         TODO_dump_func flag.
6270
6271 2012-04-13  Andrey Belevantsev  <abel@ispras.ru>
6272
6273         PR rtl-optimization/52203
6274         PR rtl-optimization/52715
6275
6276         Revert the 2012-03-07 fix for PR 52203.
6277         * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
6278         the insn does not modify DFA right before issuing, adjust
6279         issue_rate accordingly.
6280
6281 2012-04-13  Richard Guenther  <rguenther@suse.de>
6282
6283         PR c/52549
6284         * c-typeck.c (pointer_diff): Remove bogus assert.
6285
6286 2012-04-13  Richard Guenther  <rguenther@suse.de>
6287
6288         PR c/52862
6289         * convert.c (convert_to_pointer): Remove special-casing of zero.
6290
6291 2012-04-13  Joey Ye  <joey.ye@arm.com>
6292
6293         * config/arm/constraints.md (Pe): New constraint.
6294         * config/arm/arm.md: New split for imm 256-510.
6295
6296 2012-04-13  Terry Guo  <terry.guo@arm.com>
6297
6298         * config/arm/arm-cores.def: Added core cortex-m0plus.
6299         * config/arm/arm-tune.md: Regenerated.
6300         * config/arm/arm-tables.opt: Regenerated.
6301         * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
6302
6303 2012-04-13  Alan Modra  <amodra@gmail.com>
6304
6305         PR target/52828
6306         * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
6307         tie regs on destination of sets.  Delete forward declaration.
6308         (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
6309         (rs6000_emit_prologue): Likewise.
6310         (rs6000_emit_epilogue): Likewise.  Use in place of gen_frame_tie
6311         and gen_stack_tie.
6312         (is_mem_ref): Use tie_operand to recognise stack ties.
6313         * config/rs6000/predicates.md (tie_operand): New.
6314         * config/rs6000/rs6000.md (restore_stack_block): Generate new
6315         stack tie rtl.
6316         (restore_stack_nonlocal): Likewise.
6317         (stack_tie): Update.
6318         (frame_tie): Delete.
6319
6320 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6321
6322         * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
6323         HOST_WIDE_INT_PRINT_DEC in format strings.
6324
6325 2012-04-12  Uros Bizjak  <ubizjak@gmail.com>
6326
6327         PR target/52932
6328         * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
6329         argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
6330         * config/i386/sse.md (UNSPEC_VPERMVAR): New.
6331         (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
6332         (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
6333         (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
6334         avx2_permvarv8si using VI4F_256 mode iterator.
6335         * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
6336         Update builtin type to V8SF_FTYPE_V8SF_V8SI.
6337         (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
6338         gen_avx2_permvarv8sf.
6339         (expand_vec_perm_pshufb): Ditto.
6340
6341 2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6342
6343         PR target/52775
6344         * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
6345         the list of options to enable the FCFID instruction.
6346         (TARGET_EXTRA_BUILTINS): Adjust comment.
6347
6348 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6349
6350         PR tree-optimization/18589
6351         * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
6352         (operand_entry): Add count field.
6353         (add_repeat_to_ops_vec): New function.
6354         (completely_remove_stmt): Likewise.
6355         (remove_def_if_absorbed_call): Likewise.
6356         (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
6357         (acceptable_pow_call): New function.
6358         (linearize_expr_tree): Look for builtin pow/powi calls and add operand
6359         entries with repeat counts when found.
6360         (repeat_factor_d): New struct and associated typedefs.
6361         (repeat_factor_vec): New static vector variable.
6362         (compare_repeat_factors): New function.
6363         (get_reassoc_pow_ssa_name): Likewise.
6364         (attempt_builtin_powi): Likewise.
6365         (reassociate_bb): Call attempt_builtin_powi.
6366         (fini_reassoc): Two new calls to statistics_counter_event.
6367
6368 2012-04-12  Richard Guenther  <rguenther@suse.de>
6369
6370         * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
6371         * cgraph.h (tree_rest_of_compilation): Remove.
6372         * cgraph.c (cgraph_add_new_function): Move ...
6373         * cgraphunit.c (cgraph_add_new_function): ... here.
6374         (tree_rest_of_compilation): Make static.
6375         (cgraph_expand_function): Do not set cgraph_function_flags_ready.
6376         * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
6377         gate_all_early_local_passes, execute_all_early_local_passes,
6378         pass_early_local_passes, gate_all_early_optimizations,
6379         pass_all_early_optimizations): Move ...
6380         * passes.c (gate_all_optimizations, pass_all_optimizations,
6381         gate_all_early_local_passes, execute_all_early_local_passes,
6382         pass_early_local_passes, gate_all_early_optimizations,
6383         pass_all_early_optimizations): ... here.
6384         * tree-optimize.c (execute_free_datastructures): Remove.
6385         * tree-flow.h (execute_free_datastructures): Remove.
6386         * tree-optimize.c (execute_init_datastructures,
6387         pass_init_datastructures): Move ...
6388         * tree-ssa.c (execute_init_datastructures,
6389         pass_init_datastructures): ... here.
6390         * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
6391         execute_free_datastructures.
6392
6393 2012-04-12  Bernd Schmidt  <bernds@codesourcery.com>
6394
6395         * dbgcnt.def (ira_move): New counter.
6396         * ira-int.h (ira_create_new_reg): Declare function.
6397         (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
6398         * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
6399         no longer static.  All callers changed.
6400         * ira.c: Include "dbgcnt.h".
6401         (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
6402         move_unallocated_pseudos): New static functions.
6403         (first_moveable_pseudo, last_moveable_pseudo): New global variables.
6404         (pseudo_replaced_reg, pseudo_move_insn): New static variables.
6405         (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
6406         * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
6407         to the pseudos generated in find_moveable_pseudos.
6408         * Makefile.in (ira.o): Add $(DBGCNT_H).
6409
6410 2012-04-12  Richard Guenther  <rguenther@suse.de>
6411
6412         PR tree-optimization/52943
6413         * tree-chrec.h (chrec_is_positive): Remove.
6414         * tree-scalar-evolution.c (chrec_is_positive): Move ...
6415         * tree-data-ref.c (chrec_is_positive): ... here.  Make static.
6416         Return false for a constant zero instead of negative.
6417         (analyze_siv_subscript_cst_affine): Handle zero difference
6418         in the initial condition explicitely.
6419
6420 2012-04-12  Richard Guenther  <rguenther@suse.de>
6421
6422         * tree-parloops.c (parallelize_loops): Also consult the upper
6423         bound for the number of iterations.
6424         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6425         (loop_prefetch_arrays): Likewise.
6426
6427 2012-04-12  Richard Guenther  <rguenther@suse.de>
6428
6429         * cfgloop.h (estimated_loop_iterations_int): Ditch
6430         'conservative' parameter.
6431         (max_stmt_executions_int): Likewise.
6432         (estimated_loop_iterations): Likewise.
6433         (max_stmt_executions): Likewise.
6434         (max_loop_iterations): Declare.
6435         (max_loop_iterations_int): Likewise.
6436         (estimated_stmt_executions): Likewise.
6437         (estimated_stmt_executions_int): Likewise.
6438         * tree-ssa-loop-niter.c (estimated_loop_iterations):
6439         Split parts to ...
6440         (max_loop_iterations): ... this.
6441         (estimated_loop_iterations_int): Split parts to ...
6442         (max_loop_iterations_int): ... this.
6443         (max_stmt_executions_int): Split parts to ...
6444         (estimated_stmt_executions_int): ... this.
6445         (max_stmt_executions): Split parts to ...
6446         (estimated_stmt_executions): ... this.
6447         * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
6448         * predict.c (predict_loops): Likewise.
6449         * tree-data-ref.c (max_stmt_executions_tree): Likewise.
6450         (analyze_siv_subscript_cst_affine): Likewise.
6451         (compute_overlap_steps_for_affine_1_2): Likewise.
6452         (analyze_subscript_affine_affine): Likewise.
6453         (init_omega_for_ddr_1): Likewise.
6454         * tree-parloops.c (parallelize_loops): Likewise.
6455         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6456         (may_eliminate_iv): Likewise.
6457         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6458         (loop_prefetch_arrays): Likewise.
6459         * tree-vrp.c (adjust_range_with_scev): Likewise.
6460
6461 2012-04-12  Oleg Endo  <olegendo@gcc.gnu.org>
6462
6463         * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
6464         * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
6465         Fix line width.
6466         (dump_table): Use bool type for need_align and have_df variables.
6467         (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
6468         (regs_used): Remove register modifier.
6469         (barrier_align): Move variables slot, credit, jump_to_next
6470         into if block above for loop.  Use bool type for jump_to_next.
6471         (sh_function_arg): Use NULL_RTX instead of 0.
6472
6473 2012-04-11  Andreas Schwab  <schwab@linux-m68k.org>
6474
6475         * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
6476         (bswapsi2): New expander.
6477
6478 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6479
6480         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
6481         0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
6482
6483 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6484
6485         PR rtl-optimization/52876
6486         * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
6487         Don't call mark_reg_pointer for incompatible pointer sign extension.
6488
6489         * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
6490         directly.
6491
6492 2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>
6493
6494         * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
6495         comparisons against TYPE_PRECISION.
6496         * tree-ssa-forwprop.c (combine_conversions): Likewise.
6497
6498 2012-04-11  Xinliang David Li  <davidxl@google.com>
6499
6500         * tree-passes.h: Remove TODO_dump_func.
6501         * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
6502         * trans-mem.c: Remove TODO_dump_func.
6503         * ira.c: Remove TODO_dump_func.
6504
6505 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6506
6507         * config/i386/i386.c (ix86_option_override_internal): Check
6508         SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
6509         after TARGET_64BIT is updated.
6510
6511 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
6512
6513         * config/sh/sh.h: Remove old secondary reload code.
6514
6515 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
6516
6517         * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
6518         (ready_reorder): ... this function.
6519
6520 2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>
6521
6522         * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
6523         sched_init calls.
6524
6525         * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
6526         insns so that no other insn is queued for a time before them.
6527
6528         * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
6529         unknown.
6530
6531 2012-04-11  Richard Guenther  <rguenther@suse.de>
6532
6533         PR middle-end/52621
6534         * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
6535         consider loop nesting.
6536         (evolution_function_is_univariate_p): Properly check the remainder
6537         for chrecs.
6538
6539 2012-04-11  Richard Guenther  <rguenther@suse.de>
6540
6541         PR middle-end/52918
6542         * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
6543
6544 2012-04-11  Nick Clifton  <nickc@redhat.com>
6545
6546         * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
6547         information, if requested.
6548
6549         * config/rx/rx.c (rx_expand_prologue): Likewise.
6550
6551 2012-04-11  Peter Bergner  <bergner@vnet.ibm.com>
6552             Michael Matz  <matz@suse.de>
6553
6554         PR target/16458
6555         * rtlanal.c (unsigned_reg_p): New function.
6556         Update copyright notice dates.
6557         * rtl.h (unsigned_reg_p): Prototype it.
6558         Update copyright notice dates.
6559         * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
6560         Update comment.
6561         * expr.c (expand_expr_real_1): Set register attributes.
6562         * stmt.c (expand_case): Likewise.
6563
6564 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
6565
6566         PR target/50751
6567         * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
6568         consider_sh2a and allow_zero.
6569         * config/sh/sh.c (sh_legitimate_index_p): Likewise.
6570         (disp_addr_displacement): New function.
6571         (sh_address_cost): Use disp_addr_displacement function instead
6572         of DISP_ADDR_OFFSET.
6573         (sh_legitimate_address_p): Adapt to changed
6574         sh_legitimate_index_p declaration.
6575         (sh_find_mov_disp_adjust): Remove HImode check.
6576         (sh_secondary_reload): Add HImode case.  Use satisfies_constraint_Sdd,
6577         disp_addr_displacement and max_mov_insn_displacement.
6578         (max_mov_insn_displacement): Remove HImode check.
6579         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
6580         DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
6581         * config/sh/constraints.md (K05, K13): New constraints.
6582         (K12): Correct comment.
6583         (Sdd): Do not use DISP_ADDR_P macro.
6584         (Snd, Sbw): Use satisfies_constraint_Sdd.
6585         * config/sh/sh.md (extendhisi2): Remove constraints from expander.
6586         (*extendhisi2_compact, movhi_i): Remove.
6587         (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
6588         *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
6589         *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
6590         *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
6591         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
6592         *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
6593         *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
6594         CONST_OK_FOR_Kxx.
6595         Add new peepholes for HImode displacement addressing.
6596
6597 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
6598
6599         * config/sh/sh.h (SIDI_OFF): Remove.
6600         * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
6601         DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
6602         or operand_subword.
6603
6604 2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6605
6606         PR target/52624
6607         * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
6608         (PowerPC AltiVec/VSX Built-in Functions): Remove it.
6609         * doc/md.texi (Standard Names): Add bswap.
6610         * builtin-types.def (BT_UINT16): New primitive type.
6611         (BT_FN_UINT16_UINT16): New function type.
6612         * builtins.def (BUILT_IN_BSWAP16): New.
6613         * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
6614         (expand_builtin) <BUILT_IN_BSWAP16>: New case.  Pass TARGET_MODE to
6615         expand_builtin_bswap.
6616         (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
6617         (fold_builtin_1): Likewise.
6618         (is_inexpensive_builtin): Likewise.
6619         * optabs.c (expand_unop): Deal with bswap in HImode specially.  Add
6620         missing bits for bswap to libcall code.
6621         * tree.c (build_common_tree_nodes): Build uint16_type_node.
6622         * tree.h (enum tree_index): Add TI_UINT16_TYPE.
6623         (uint16_type_node): New define.
6624         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
6625         * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
6626         above builtin.
6627         (rs6000_init_builtins): Likewise.
6628         * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
6629
6630 2012-04-11  Tristan Gingold  <gingold@adacore.com>
6631
6632         * doc/extend.texi (Type Attributes): Move paragraph.
6633
6634 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6635
6636         PR 24985
6637         * diagnostic.h (show_caret): Declare.
6638         (caret_max_width): Declare.
6639         (diagnostic_show_locus): Declare.
6640         * diagnostic.c (diagnostic_initialize): Initialize to false.
6641         (diagnostic_show_locus): New.
6642         (diagnostic_report_diagnostic): Call it.
6643         (getenv_columns): New.
6644         (adjust_line): New.
6645         (diagnostic_set_caret_max_width): New.
6646         * input.c (read_line): New.
6647         (location_get_source_line): New.
6648         * input.h (location_get_source_line): Declare.
6649         * toplev.c (general_init): Initialize show_caret from options.
6650         * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
6651         * opts.c (common_handle_option): Likewise.
6652         * pretty-print.h (pp_get_prefix): New.
6653         (pp_base_get_prefix): New.
6654         * common.opt (fdiagnostics-show-caret): New option.
6655         * doc/invoke.texi (fdiagnostics-show-caret): Document it.
6656
6657 2012-04-11  Richard Guenther  <rguenther@suse.de>
6658
6659         PR rtl-optimization/52881
6660         * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
6661
6662 2012-04-11  Richard Guenther  <rguenther@suse.de>
6663
6664         PR tree-optimization/52912
6665         * tree-ssa-threadupdate.c (thread_block): Tell the cfg
6666         manipulation code we are threading through a loop header
6667         to an exit destination.
6668
6669 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6670
6671         * tree.h (warn_if_unused_value): Move declaration from here.
6672         * stmt.c (warn_if_unused_value): Move definition from here.
6673
6674 2010-04-10  Michael Matz  <matz@suse.de>
6675
6676         * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
6677         grouped_stores.
6678         (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
6679         (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
6680         (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
6681         (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
6682         (vect_strided_store_supported): Rename to vect_grouped_store_supported.
6683         (vect_strided_load_supported): Rename to vect_grouped_load_supported.
6684         (vect_transform_strided_load): Rename to vect_transform_grouped_load.
6685         (vect_record_strided_load_vectors): Rename to
6686         vect_record_grouped_load_vectors.
6687         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6688         Rename use of above macros.
6689         (vect_verify_datarefs_alignment): Ditto.
6690         (vector_alignment_reachable_p): Ditto.
6691         (vect_peeling_hash_get_lowest_cost): Ditto.
6692         (vect_enhance_data_refs_alignment): Ditto.
6693         (vect_analyze_group_access): Ditto and rename stride to groupsize.
6694         (vect_analyze_data_ref_access): Rename "strided" to "grouped".
6695         (vect_strided_store_supported): Rename to vect_grouped_store_supported.
6696         (vect_strided_load_supported): Rename to vect_grouped_load_supported.
6697         (vect_transform_strided_load): Rename to vect_transform_grouped_load.
6698         (vect_record_strided_load_vectors): Rename to
6699         vect_record_grouped_load_vectors.
6700         * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
6701         (destroy_loop_vec_info): Ditto.
6702         (vect_transform_loop): Ditto and rename strided_store to grouped_store.
6703         * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
6704         (vect_analyze_slp): Ditto.
6705         (new_bb_vec_info): Ditto.
6706         (destroy_bb_vec_info): Ditto.
6707         (vect_schedule_slp_instance): Ditto and rename strided_store to
6708         grouped_store.
6709         * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
6710         vect_cost_group_size.
6711         (vect_model_store_cost): Rename use of above macros and call
6712         to vect_cost_strided_group_size.
6713         (vect_model_load_cost): Ditto.
6714         (vectorizable_store): Ditto, rename strided_store to grouped_store
6715         and calls to renamed tree-vectorizer.h functions.
6716         (vectorizable_load): Ditto.
6717         (vect_transform_stmt): Rename use of above macros and strided_store
6718         to grouped_store.
6719
6720 2012-04-10  Jan Hubicka  <jh@suse.cz>
6721
6722         * cgraph.h: Remove misledaing comment on ipa-ref.h.
6723         (symtab_type): New enum.
6724         (symtab_node): New structure.
6725         (cgraph_node, varpool_node): Add symbol base type.
6726         (cgraph, varpool): New accestor functions.
6727         * cgraph.c (cgraph_create_node_1): Set symbol type.
6728         * varpool.c (varpool_node): Set symbol type.
6729
6730 2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
6731             Richard Sandiford  <rdsandiford@googlemail.com>
6732
6733         * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
6734
6735 2012-04-10  Richard Guenther  <rguenther@suse.de>
6736
6737         PR middle-end/52888
6738         * gimple-low.c (gimple_check_call_args): Properly account for
6739         compatible aggregate types.
6740
6741 2012-04-10  Richard Guenther  <rguenther@suse.de>
6742
6743         * toplev.h (tree_rest_of_compilation): Remove.
6744         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6745         * cgraph.h (tree_rest_of_compilation): Declare.
6746         * tree-optimize.c (tree_rest_of_compilation): Move ...
6747         * cgraphunit.c (tree_rest_of_compilation): ... here.
6748         * cgraph.c (cgraph_add_new_function): Adjust.
6749         * Makefile.in (tree-optimize.o): Adjust.
6750         (cgraphunit.o): Likewise.
6751
6752 2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
6753
6754         PR tree-optimization/52870
6755         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
6756         presumed pattern statement is within the same loop or basic block.
6757
6758 2012-04-10  Tristan Gingold  <gingold@adacore.com>
6759
6760         * gengtype.c (main): Make uintptr_t a known type.
6761
6762 2012-04-10  Richard Guenther  <rguenther@suse.de>
6763
6764         * tree-pass.h (tree_lowering_passes): Remove.
6765         * tree-optimize.c (tree_lowering_passes): Remove.
6766         * cgraph.c (cgraph_add_new_function): Inline relevant parts
6767         of tree_lowering_passes, avoid redundant call of early local passes.
6768         * cgraphunit.c (cgraph_lower_function): Fold into ...
6769         (cgraph_analyze_function): ... its single caller.  Inline
6770         relevant parts of tree_lowering_passes.
6771
6772 2012-04-09  H.J. Lu  <hongjiu.lu@intel.com>
6773
6774         PR other/52777
6775         * config/pa/pa.opt: Remove SIO and GNU_LD.
6776
6777 2012-04-09  Jan Hubicka  <jh@suse.cz>
6778
6779         PR lto/52722
6780         PR lto/51765
6781         PR lto/52634
6782         * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
6783         boundary, add its target too.
6784         * lto.c (add_references_to_partition): Add also aliased nodes.
6785         (add_cgraph_node_to_partition,
6786         add_varpool_node_to_partition): Work on nodes, not functions/variables;
6787         when adding alias, add also the aliased object.
6788
6789 2012-04-09  Uros Bizjak  <ubizjak@gmail.com>
6790
6791         PR target/52883
6792         * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
6793         VOIDmode immediate operands.
6794         * config/i386/constraints.md (Wz): New constraint.
6795         * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
6796
6797 2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6798
6799         PR target/52717
6800         * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
6801         the DECL generated for the special GOT helper.
6802
6803 2012-04-09  Oleg Endo  <olegendo@gcc.gnu.org>
6804
6805         * config/sh/constraints.md: Update list of constraints in
6806         comment block.
6807         (Sr0): Remove unused memory constraint.
6808
6809 2012-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6810
6811         * tree-pretty-print.h: Update comment.
6812
6813 2012-04-08  Oleg Endo  <olegendo@gcc.gnu.org>
6814
6815         * config/sh/sh.md: Use braced string notation where applicable.
6816         (*prefetch_i4, prefetch_m2a): Merge into ...
6817         (*prefetch): ... this new insn.
6818
6819 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
6820
6821         * config/sh/sh.h (high_life_started): Remove
6822         * config/sh/predicates.md (general_movdst_operand): Use
6823         'reload_in_progress' instead of 'high_life_started'.
6824         * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
6825         divsi_inv_fp): Likewise.
6826
6827 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
6828
6829         * config/sh/sh-protos.h (prepare_move_operands): Return void
6830         instead of int.
6831         * config/sh/sh.c (prepare_move_operands): Likewise.
6832         * config/sh/sh.md: Remove return value checks of prepare_move_operands.
6833
6834 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
6835
6836         * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
6837         general_movsrc_operand, general_movdst_operand, arith_reg_operand,
6838         fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
6839         logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
6840         commutative_float_operator, noncommutative_float_operator,
6841         sh_handle_pragma): Remove.
6842
6843 2012-04-06  Sandra Loosemore  <sandra@codesourcery.com>
6844
6845         * doc/invoke.texi:  Clean up Texinfo markup throughout the file.
6846         Use @option markup on command-line options.  Use @samp markup on
6847         literal keywords to options.  Use @code markup on code fragments.
6848         Use other markup in preference to quotation marks in the text.
6849         Add markup to some passages without any.
6850
6851 2012-04-06  Mike Stump  <mikestump@comcast.net>
6852
6853         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
6854
6855 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
6856
6857         * config/sh/sh.c (hi_const): Remove.
6858         (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
6859         of hi_const.
6860
6861 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
6862
6863         * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
6864         to bool.
6865         * config/sh/sh.c (sh_expand_t_scc): Likewise.
6866         * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
6867         calling sh_expand_t_scc.
6868
6869 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
6870
6871         * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
6872         nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
6873         sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
6874         reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
6875         sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
6876         sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
6877         check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
6878         sh2a_is_function_vector_call): Use bool as return type.
6879         (sh_pass_in_reg_p): Remove.
6880         * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
6881         flow_dependent_p, sh2a_function_vector_p, expand_block_move,
6882         expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
6883         sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
6884         sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
6885         sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
6886         fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
6887         sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
6888         sh_loads_bankedreg_p): Use bool as return type.
6889         (nonpic_symbol_mentioned_p): Use bool as return type.  Remove
6890         'register' modifier.
6891
6892 2012-04-06  Matt Turner  <mattst88@gmail.com>
6893
6894         * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
6895
6896 2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6897
6898         * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
6899         of the destination isn't also a FP_REGS register.
6900
6901 2012-04-05  Teresa Johnson  <tejohnson@google.com>
6902             H.J. Lu  <hongjiu.lu@intel.com>
6903
6904         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
6905         * config/i386/i386.md (move immediate to memory peephole2):
6906         Add cases for HImode move when LCP stall avoidance is needed.
6907         * config/i386/i386.c (initial_ix86_tune_features): Initialize
6908         X86_TUNE_LCP_STALL entry.
6909
6910 2012-04-05  Uros Bizjak  <ubizjak@gmail.com>
6911
6912         PR target/52882
6913         * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
6914         CONST_INT operands, zero-extended with AND.
6915
6916 2012-04-05  Oleg Endo  <olegendo@gcc.gnu.org>
6917
6918         PR target/50751
6919         * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
6920         first argument instead of mode size.  Move displacement calculations
6921         to ...
6922         (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
6923         ... these new functions.
6924         (disp_adjust): Remove max_mov_disp field.
6925         (sh_legitimate_index_p): Use max_mov_insn_displacement and
6926         mov_insn_alignment_mask.
6927         (sh_address_cost): Use max_mov_insn_displacement.
6928
6929 2012-04-05  Andrew Stubbs  <ams@codesourcery.com>
6930
6931         * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
6932         (arch_enabled): Handle new arch types.
6933         (one_cmpldi2): Add NEON support.
6934
6935 2012-04-05  Richard Guenther  <rguenther@suse.de>
6936
6937         * gimple.c (walk_gimple_op): Compute val_only for the LHS
6938         of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
6939         (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
6940         * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
6941         ... here and make static.
6942         * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
6943         Remove.
6944
6945 2012-04-05  Richard Guenther  <rguenther@suse.de>
6946
6947         * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
6948         basic-block before removing it.
6949
6950 2012-04-05  Richard Guenther  <rguenther@suse.de>
6951
6952         * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
6953         version namespace as we release the freelist.
6954
6955 2012-04-05  Richard Guenther  <rguenther@suse.de>
6956
6957         * tree-nrv.c (tree_nrv): Release VDEFs.
6958         * tree-sra.c (sra_modify_constructor_assign): Likewise.
6959         (sra_modify_assign): Likewise.
6960         * tree-vect-stmts.c (vect_remove_stores): Likewise.
6961         * tree-vect-loop.c (vect_transform_loop): Likewise.
6962         * tree-ssa-dom.c (optimize_stmt): Likewise.
6963         * tree-vect-slp.c (vect_schedule_slp): Likewise.
6964         * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
6965
6966 2012-04-05  Richard Guenther  <rguenther@suse.de>
6967
6968         * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
6969         cleanup.
6970         * gimple.h (gsi_remove): Adjust.
6971         * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
6972         * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
6973         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
6974         * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
6975         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
6976         * tree-ssa-pre.c (eliminate): Likewise.
6977
6978 2012-04-04  Mike Stump  <mikestump@comcast.net>
6979
6980         * doc/rtl.texi (const_double): Document as sign-extending.
6981         * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
6982         * emit-rtl.c (immed_double_int_const): Refine to state the
6983         value is signed.
6984         * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
6985         CONST_DOUBLE integers.
6986         (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
6987         negative values are converted.  Fix conversions bigger than
6988         HOST_BITS_PER_WIDE_INT.
6989         (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
6990         (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
6991         * explow.c (plus_constant_mode): Add.
6992         (plus_constant): Implement with plus_constant_mode.
6993         * rtl.h (plus_constant_mode): Add.
6994
6995 2012-04-04  Richard Guenther  <rguenther@suse.de>
6996
6997         PR tree-optimization/52808
6998         * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
6999         * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
7000
7001 2012-04-04  Tristan Gingold  <gingold@adacore.com>
7002
7003         * expr.c (expand_expr_real_2): Handle larger sizetype in
7004         POINTER_PLUS_EXPR.
7005
7006 2012-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7007
7008         * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
7009         to m2a-single instead of m2e.
7010
7011 2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7012
7013         * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
7014         Change type of BITOFFSET to signed.  Make sure the lower bound of
7015         the computed range is non-negative by adjusting OFFSET and BITPOS.
7016         (expand_assignment): Adjust call to get_bit_range.
7017
7018 2012-04-03  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
7019
7020         * h8300/h8300.c (h8300_current_function_monitor_function_p):
7021         New function. Added to check monitor functions.
7022         (h8300_option_override): Modified to generate error/warning
7023         messages for invalid combinations of different command line
7024         options.
7025         * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
7026         save EXR on stack for monitor function in case of H8S target
7027         when "-mno-exr" is passed.
7028         * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
7029         Add prototype.
7030         * doc/invoke.texi: Document H8S options.
7031
7032 2012-04-03  Tristan Gingold  <gingold@adacore.com>
7033
7034         * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
7035         of gcc_AC_FUNC_MMAP_BLACKLIST.
7036         * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
7037         * Makefile.in (aclocal_deps): Add mmap.m4.
7038         * configure: Regenerate.
7039         * aclocal.m4: Regenerate.
7040
7041 2012-04-03  Richard Guenther  <rguenther@suse.de>
7042
7043         PR tree-optimization/52808
7044         * tracer.c (tail_duplicate): Return whether we have duplicated
7045         any block.
7046         (tracer): If we have duplicated any block, cleanup the CFG.
7047         * cfghooks.c (duplicate_block): If we duplicated a loop
7048         header but not its loop, destroy the loop because it now has
7049         multiple entries.
7050         * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
7051         the cfg manipulation routines we are not creating a multiple
7052         entry loop.
7053
7054 2012-04-03  Tristan Gingold  <gingold@adacore.com>
7055
7056         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
7057         'byte' alignment.
7058         (vms_c_common_override_options): Allow parameterless variadic
7059         functions.
7060
7061 2012-04-03  Jakub Jelinek  <jakub@redhat.com>
7062
7063         PR tree-optimization/52835
7064         * tree-data-ref.c (build_rdg): Return NULL if
7065         compute_data_dependences_for_loop failed.
7066
7067 2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7068
7069         * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
7070         for REAL_CST as well.
7071         (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
7072         In the bitfield case, if the value is a REAL_CST, convert it first to
7073         an INTEGER_CST.
7074
7075 2012-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7076
7077         * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
7078         for --with-abi={x32|mx32} or --with-multilib-list=mx32.
7079         (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
7080
7081         * config/i386/biarchx32.h: New.
7082
7083 2012-04-02  Anatoly Sokolov  <aesok@post.ru>
7084
7085         * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
7086         * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7087         (arm_preferred_reload_class): New function.
7088
7089 2012-04-02  Richard Guenther  <rguenther@suse.de>
7090
7091         PR tree-optimization/52756
7092         * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
7093         (thread_through_loop_header): After threading through the loop latch
7094         remove the split part from the loop and clear further threading
7095         opportunities that would create a multiple entry loop.
7096
7097 2012-04-02  Richard Guenther  <rguenther@suse.de>
7098
7099         PR rtl-optimization/52800
7100         * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
7101         CLEANUP_CFG_CHANGED.
7102
7103 2012-04-02  Richard Guenther  <rguenther@suse.de>
7104
7105         PR middle-end/52803
7106         * loop-init.c (gate_handle_loop2): Destroy loops here if
7107         we don't enter RTL loop optimizers.
7108
7109 2012-04-02  Uros Bizjak  <ubizjak@gmail.com>
7110
7111         Partially revert:
7112         2012-03-29  Richard Guenther  <rguenther@suse.de>
7113
7114         * rtl.h (extended_count): Remove.
7115         * combine.c (extended_count): Remove.
7116
7117 2012-04-02  Dodji Seketeli  <dodji@redhat.com>
7118
7119         PR c++/40942
7120         * pt.c (more_specialized_fn):  Don't apply decay conversion to
7121         types of function parameters.
7122
7123 2012-04-02  Tristan Gingold  <gingold@adacore.com>
7124
7125         * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
7126         (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
7127         (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
7128         (ggc_pch_this_base): Use uintptr_t instead of size_t.
7129
7130 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7131
7132         PR bootstrap/52784
7133         * config/i386/i386.c (ix86_option_override_internal): Don't
7134         check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
7135
7136 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7137
7138         * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
7139         (stmt_can_make_abnormal_goto): Use it.
7140         (is_ctrl_altering_stmt): Likewise.
7141
7142 2012-03-30  Naveen H.S  <naveen.S@kpitcummins.com>
7143             Kaz Kojima  <kkojima@gcc.gnu.org>
7144
7145         * config/sh/sh.c (push_regs): Skip banked registers when
7146         resbank attribute is specified.
7147         (sh_expand_epilogue): Likewise.
7148
7149 2012-03-30  Richard Henderson  <rth@redhat.com>
7150
7151         PR debug/52727
7152         * combine-stack-adj.c (prev_active_insn_bb): New.
7153         (next_active_insn_bb): New.
7154         (force_move_args_size_note): New.
7155         (combine_stack_adjustments_for_block): Use it.
7156
7157 2012-03-30  Richard Henderson  <rth@redhat.com>
7158
7159         * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
7160         (ix86_expand_vector_init_duplicate): Initialize it.
7161         (expand_vec_perm_palignr): Likewise.
7162         (ix86_expand_vec_perm_const): Likewise.
7163         (ix86_vectorize_vec_perm_const_ok): Likewise.
7164         (expand_vec_perm_blend): Use it.
7165         (expand_vec_perm_vpermil): Likewise.
7166         (expand_vec_perm_pshufb): Likewise.
7167         (expand_vec_perm_1): Likewise.
7168         (expand_vec_perm_pshuflw_pshufhw): Likewise.
7169         (expand_vec_perm_interleave2): Likewise.
7170         (expand_vec_perm_vpermq_perm_1): Likewise.
7171         (expand_vec_perm_vperm2f128): Likewise.
7172         (expand_vec_perm_interleave3): Likewise.
7173         (expand_vec_perm_vperm2f128_vblend): Likewise.
7174         (expand_vec_perm_vpshufb2_vpermq): Likewise.
7175         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
7176         (expand_vec_perm_broadcast): Likewise.
7177         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
7178
7179 2012-03-30  Richard Henderson  <rth@redhat.com>
7180
7181         * dwarf2out.c (gen_variable_die): Initialize off.
7182
7183 2012-03-30  Tristan Gingold  <gingold@adacore.com>
7184
7185         * config/vms/vms-f.c: New file.
7186         * config/vms/t-vms (vms-f.o): New rule.
7187         * config.gcc (*-*-*vms*): Define fortran_target_objs.
7188
7189 2012-03-30  Richard Guenther  <rguenther@suse.de>
7190
7191         PR tree-optimization/52754
7192         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
7193         propagate arbitrary addresses into really plain dereferences.
7194
7195 2012-03-30  Richard Guenther <rguenther@suse.de>
7196
7197         PR middle-end/52772
7198         * except.c (emit_to_new_bb_before): Move loop updating ...
7199         (dw2_build_landing_pads): ... here.  Use a proper block for
7200         querying the loop father.
7201
7202 2012-03-30  Tristan Gingold  <gingold@adacore.com>
7203
7204         * config/ia64/ia64.c (ia64_section_type_flags): Remove
7205         common_object attribute handling.
7206         (SECTION_VMS_OVERLAY): Remove
7207         (ia64_vms_common_object_attribute): Replace abort with an assert.
7208         Do not set DECL_SECTION_NAME.
7209         (ia64_vms_output_aligned_decl_common): Handle common_object
7210         attribute.
7211         (ia64_vms_elf_asm_named_section): Remove.
7212         * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
7213
7214 2012-03-30  Richard Guenther  <rguenther@suse.de>
7215
7216         PR middle-end/52786
7217         * double-int.c (rshift_double): Remove not needed cast.
7218
7219 2012-03-30  Richard Guenther  <rguenther@suse.de>
7220
7221         * tree-affine.h (print_aff): Remove.
7222         * tree-affine.c (print_aff): Make static.
7223         * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
7224         (get_references_in_stmt): Likewise.
7225         (print_direction_vector): Likewise.
7226         (print_dir_vectors): Likewise.
7227         (print_dist_vectors): Likewise.
7228         (dump_subscript): Likewise.
7229         (dump_ddrs): Likewise.
7230         (dump_dist_dir_vectors): Likewise.
7231         (dump_data_references): Likewise.
7232         (dump_data_dependence_relation): Likewise.
7233         (dump_data_dependence_direction): Likewise.
7234         (dump_rdg_vertex): Likewise.
7235         (dump_rdg_component): Likewise.
7236         (debug_ddrs): Declare.
7237         (struct data_ref_loc_d): Move ...
7238         * tree-data-ref.c (struct data_ref_loc_d): ... here.
7239         (get_references_in_stmt): Make static.
7240         (dump_data_references): Likewise.
7241         (dump_subscript): Likewise.
7242         (print_direction_vector): Likewise.
7243         (print_dir_vectors): Likewise.
7244         (print_dist_vectors): Likewise.
7245         (dump_data_dependence_relation): Likewise.
7246         (dump_dist_dir_vectors): Likewise.
7247         (dump_ddrs): Likewise.
7248         (dump_rdg_vertex): Likewise.
7249         (dump_rdg_component): Likewise.
7250         (debug_ddrs): New function.
7251         (access_matrix_get_index_for_parameter): Remove.
7252
7253 2012-03-30  Tristan Gingold  <gingold@adacore.com>
7254
7255         * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
7256         (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
7257         (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
7258         (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
7259         (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
7260         (vms_patch_builtins): Handle new flags
7261         * config/vms/vms-crtlmap.map: Completed using nm on
7262         c and math system libraries.
7263         * config/vms/make-crtlmap.awk: Handle any number of flags.
7264
7265 2012-03-30  Martin Jambor  <mjambor@suse.cz>
7266
7267         * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
7268         is a builtin_stack_save in a dominating BB.
7269
7270 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
7271
7272         * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
7273         crossing 128bit lane boundary.
7274
7275 2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7276
7277         * ira-color.c (setup_left_conflict_sizes_p): Process all
7278         conflicting objects.
7279
7280 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
7281
7282         PR tree-optimization/52760
7283         * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
7284         shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
7285
7286 2012-03-29  Richard Guenther  <rguenther@suse.de>
7287
7288         * cgraph.h (cgraph_materialize_all_clones): Remove.
7289         (reset_inline_failed): Likewise.
7290         * cgraphunit.c (cgraph_materialize_all_clones): Make static.
7291         * cgraphbuild.c (reset_inline_failed): Remove.
7292         * rtl.h (cse_main): Remove.
7293         (extended_count): Likewise.
7294         * cse.c (dump_class): Mark as DEBUG_FUNCTION.
7295         (cse_main): Make static.
7296         * combine.c (extended_count): Remove.
7297         (dump_combine_stats): Mark as DEBUG_FUNCTION.
7298         * basic-block.h (reorder_basic_blocks): Remove.
7299         * bb-reorder.c (reorder_basic_blocks): Make static.
7300         * Makefile.in (dse.o): Remove dse.h dependency.
7301         * dse.h: Remove.
7302         * dse.c (gate_dse): Remove.
7303         (clear_alias_mode_eq): Likewise.
7304         (clear_alias_mode_hash): Likewise.
7305         (dse_record_singleton_alias_set): Likewise.
7306         (dse_invalidate_singleton_alias_set): Likewise.
7307
7308 2012-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7309
7310         * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
7311         crtbegin_so%O%s for -shared.
7312         (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
7313
7314 2012-03-29  Richard Guenther  <rguenther@suse.de>
7315
7316         * tree-flow.h (struct pre_expr_d): Remove forward declaration.
7317         (add_to_value): Remove.
7318         (print_value_expressions): Likewise.
7319         * tree-ssa-pre.c (add_to_value): Make static.
7320         (print_value_expressions): Likewise.
7321         * gimple.h (gimple_adjust_this_by_delta): Remove.
7322         * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
7323
7324 2012-03-29  Richard Guenther  <rguenther@suse.de>
7325
7326         PR middle-end/50708
7327         * double-int.h (rshift_double): Remove.
7328         * double-int.c (lshift_double): Use absu_hwi to make count positive.
7329         (rshift_double): Make static, take unsigned count argument,
7330         remove handling of negative count argument.
7331         (double_int_rshift): Dispatch to lshift_double.
7332
7333 2012-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7334
7335         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
7336         OPTION_MASK_ABI_64.
7337
7338         * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
7339         (SPEC_X32): Likewise.
7340         (MULTILIB_DEFAULTS): Likewise.
7341
7342         * config/i386/i386.c (isa_opts): Remove -m64.
7343         (ix86_target_string): Properly handle -m32/-m64/-mx32.
7344         (ix86_option_override_internal): Properly
7345         set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
7346         handle -m32, -m64 and -mx32.
7347
7348         * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
7349         with OPTION_ABI_X32.  Moved after TARGET_LP64.
7350         (TARGET_LP64): Changed to OPTION_ABI_64.
7351
7352         * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
7353         (mx32): Replace ISA_X32 with ABI_X32.
7354
7355 2012-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7356
7357         * tree.c (tree_size) <VECTOR_CST>: New case.
7358
7359 2012-03-28  Uros Bizjak  <ubizjak@gmail.com>
7360
7361         * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
7362         (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
7363
7364 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
7365
7366         PR middle-end/52691
7367         * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
7368         __builtin_va_start to __builtin_next_arg if the latter is
7369         builtin_decl_explicit_p rather than when it is not.
7370
7371         PR middle-end/52750
7372         * tree-vect-generic.c (vector_element): Perform multiplication
7373         for pos in bitsizetype type instead of idx type.
7374
7375 2012-03-28  Richard Guenther  <rguenther@suse.de>
7376
7377         * loop-init.c (loop_optimizer_init): If loops are preserved
7378         perform incremental initialization of required loop features.
7379         (loop_optimizer_finalize): If loops are to be preserved only
7380         clean up optional loop features.
7381         (rtl_loop_done): Forcefully free loops here.
7382         * cgraph.c (cgraph_release_function_body): Forcefully free loops.
7383         * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
7384         to existing loops.
7385         (construct_init_block): Likewise.
7386         (construct_exit_block): Likewise.
7387         (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state.  Cleanup
7388         the CFG after expanding.
7389         * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
7390         If we needed to calculate them, free them afterwards.
7391         * tree-pass.h (PROP_loops): New define.
7392         * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
7393         * basic-block.h (CLEANUP_CFG_CHANGED): New.
7394         * cfgcleanup.c (merge_blocks_move): Protect loop latches.
7395         (cleanup_cfg): If we did something and have loops around, fix them up.
7396         * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
7397         with CLEANUP_CFG_CHANGED.
7398         * cfghooks.c (merge_blocks): If we merge a loop header into
7399         its predecessor, update the loop structure.
7400         (duplicate_block): If we copy a loop latch, adjust loop state
7401         to note we may have multiple latches.
7402         (delete_basic_block): Mark loops for fixup if we remove a loop.
7403         * cfganal.c (forwarder_block_p): Protect loop latches, headers
7404         and preheaders.
7405         * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
7406         (cfg_layout_can_merge_blocks_p): Likewise.
7407         * cprop.c (bypass_block): If we create a loop with multiple
7408         entries, mark it for removal.
7409         * except.c (emit_to_new_bb_before): Add the new basic-block
7410         to existing loops.
7411         * tree-eh.c (lower_resx): Likewise.
7412         * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
7413         (expand_omp_taskreg): Likewise.
7414         * tree-inline.c (initialize_cfun): Likewise.
7415         * tree-mudflap.c (add_bb_to_loop): Prototype.
7416         (mf_build_check_statement_for): Properly add new basic-blocks
7417         to existing loops.
7418         * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
7419         if we remove a loop.
7420         (thread_through_loop_header): Likewise.
7421         * trans-mem.c (tm_log_emit_save_or_restores): Properly add
7422         new basic-blocks to existing loops.
7423         (expand_transaction): Likewise.
7424         * Makefile.in (except.o): Add $(CFGLOOP_H).
7425         (expr.o): Likewise.
7426         (cgraph.o): Likewise.
7427         (cprop.o): Likewise.
7428         (cfgexpand.o): Likewise.
7429         (cfganal.o): Likewise.
7430         (trans-mem.o): Likewise.
7431         (tree-eh.o): Likewise.
7432
7433 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
7434
7435         PR target/52692
7436         * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
7437         (avr_builtin_decl): New static function.
7438         (struct avr_builtin_description, avr_bdesc): Move up.
7439         Add GTY marker. Add field fndecl. Remove redundant field id.
7440         (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
7441         (avr_expand_builtin): Code cleanup because .id is removed.
7442
7443 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
7444
7445         PR target/52737
7446         * config.gcc (tm_file): Remove avr/multilib.h.
7447
7448         * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
7449
7450         * config/avr/genmultilib.awk: Remove code to generate multilib.h.
7451         (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
7452         * config/avr/t-avr: Remove generation of multilib.h.
7453         * config/avr/t-multilib: Regenerate.
7454         * config/avr/multilib.h: Remove.
7455         * config/avr/avr.opt (-msp8): New option.
7456         (avr_sp8): New variable.
7457         * config/avr/driver-avr.c (avr_device_to_sp8): New function.
7458         * config/avr/avr.h (AVR_HAVE_SPH): New define.
7459         (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
7460         (avr_device_to_sp8): New prototype.
7461         (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
7462         (DRIVER_SELF_SPECS): New define.
7463         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
7464         __AVR_SP8__, __AVR_HAVE_SPH__.
7465         * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
7466         AVR_HAVE_8BIT_SP to decide if SP_H is present.
7467         (avr_file_start): Ditto.
7468
7469 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
7470
7471         PR target/52736
7472         * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
7473         instead of 8 in adjust_address.
7474
7475 2012-03-27  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>
7476
7477         PR middle-end/51893
7478         * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
7479         targets.
7480
7481 2012-03-27  Oleg Endo  <olegendo@gcc.gnu.org>
7482
7483         PR target/50751
7484         * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
7485         Rearrange conditional logic.  Move displacement address calculations
7486         to ...
7487         (sh_find_mov_disp_adjust): ... this new function.
7488
7489 2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7490
7491         * config/arm/arm.opt (mapcs): Remove MaskExists.
7492         * config/cris/linux.opt (mno-gotplt): Likewise.
7493         * config/i386/i386.opt (mhard-float): Likewise.
7494         (msse4): Likewise.
7495         (mno-sse4): Likewise.
7496         * config/m68k/m68k.opt (mhard-float): Likewise.
7497         * config/mep/mep.op (mcop32): Likewise.
7498         * config/pa/pa-hpux.opt (msio): Likewise.
7499         * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
7500         * config/picochip/picochip.opt (mlittle): Likewise.
7501         * config/sh/sh.opt (mrenesas): Likewise.
7502         * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
7503         * config/sparc/sparc.opt (mhard-float): Likewise.
7504         * config/v850/v850.opt (mv850es): Likewise.
7505         * config/vax/vax.opt (mg-float): Likewise.
7506
7507 2012-03-27  Martin Jambor  <mjambor@suse.cz>
7508
7509         PR middle-end/52693
7510         * tree-sra.c (sra_modify_assign): Do not call
7511         load_assign_lhs_subreplacements when working with an unscalarizable
7512         region.
7513
7514 2012-03-27  Uros Bizjak  <ubizjak@gmail.com>
7515
7516         PR target/52698
7517         * config/i386/i386-protos.h (ix86_legitimize_reload_address):
7518         New prototype.
7519         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
7520         * config/i386/i386.c: Include reload.h.
7521         (ix86_legitimize_reload_address): New function.
7522
7523 2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7524
7525         * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
7526         hasn't been allocated.  Define a target macro for Mask and
7527         InverseMask if it hasn't been defined.  Remove MaskExists handling.
7528
7529         * doc/options.texi: Remove MaskExists.
7530
7531 2012-03-27  Chung-Lin Tang  <cltang@codesourcery.com>
7532
7533         PR target/52667
7534         * config/sh/sh.c (find_barrier): Add equality check of last_got
7535         to avoid going above orig insn. Update comments.
7536
7537 2012-03-27  Richard Guenther  <rguenther@suse.de>
7538
7539         PR middle-end/52720
7540         * fold-const.c (try_move_mult_to_index): Handle &x.array more
7541         explicitely.
7542
7543 2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
7544
7545         * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
7546         of a unit before computing the offset in units.
7547         * expr.c (get_bit_range): Return the null range if the enclosing record
7548         is part of a larger bit field.
7549
7550 2012-03-27  Tristan Gingold  <gingold@adacore.com>
7551
7552         * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
7553         * config/ia64/ia64.md: Remove mode in template.
7554         Sign extend operand in expand_simple_binop.
7555         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
7556         CASE_VECTOR_MODE instead of TARGET_ILP32.
7557         (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
7558
7559 2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>
7560
7561         * varasm.c (assemble_external): #if 0 out the new assert from the
7562         previous commit, it breaks the Java and Go front ends.
7563
7564 2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>
7565
7566         * toplev.c (check_global_declaration_1): Do not call assemble_external.
7567         * expr.c (emit_block_move_libcall_fn): Likewise.
7568         (clear_storage_libcall_fn): Likewise.
7569         (expand_expr_addr_expr_1): Likewise.
7570         (expand_expr_real_1): Likewise.
7571         * calls.c (rtx_for_function_call): Likewise.
7572
7573         * varasm.c (assemble_external): Assert this function is only called
7574         during or after expanding to RTL.
7575
7576 2012-03-26  Martin Jambor  <mjambor@suse.cz>
7577
7578         PR tree-optimization/50052
7579         * tree-sra.c (tree_non_aligned_mem_p): Removed.
7580         (tree_non_aligned_mem_for_access_p): Likewise.
7581         (build_accesses_from_assign): Removed strict alignment requirements
7582         checks.
7583         (access_precludes_ipa_sra_p): Likewise.
7584
7585 2012-03-26  Richard Guenther  <rguenther@suse.de>
7586
7587         PR tree-optimization/52701
7588         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
7589         compute and set the evolution part of PHI nodes.
7590
7591 2012-03-26  Richard Guenther  <rguenther@suse.de>
7592
7593         PR tree-optimization/52721
7594         * tree-vect-stmts.c (vect_init_vector): Handle scalars.
7595
7596 2012-03-26  Ulrich Weigand  <ulrich.weigand@linaro.org>
7597
7598         PR tree-optimization/52686
7599         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
7600         WIDEN_LSHIFT_EXPR.
7601
7602 2012-03-26  Tristan Gingold  <gingold@adacore.com>
7603
7604         * config/alpha/vms.h (LINK_SPEC): Simplify.
7605         (STARTFILE_SPEC): Remove -mvms-return-codes handling.
7606         (NAME__MAIN, SYMBOL__MAIN): Remove.
7607         (VMS_DEBUG_MAIN_POINTER): Remove.
7608         * config/ia64/vms.h: Likewise.
7609         * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
7610         code to vms.c.  Call vms_start_function.
7611         * config/ia64/ia64.c (ia64_start_function): Likewise.
7612         * config/vms/vms-protos.h (vms_start_function): Declare.
7613         * config/vms/vms.c (vms_start_function): New function.
7614         * config/vms/vms.h (MATH_LIBRARY): Define.
7615         (VMS_DEBUG_MAIN_POINTER): Define.
7616
7617 2012-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7618
7619         PR rtl-optimization/52629
7620         * reload1.c (count_pseudo): Short-circuit common case.
7621         (count_spilled_pseudo): Return early for pseudos without hard regs.
7622         Assert that the pseudo has got a hard reg before manipulating it.
7623
7624 2012-03-24  Jan Hubicka  <jh@suse.cz>
7625
7626         PR lto/51663
7627         * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
7628         (decide_is_variable_needed): Do not handle toplevel reorder here.
7629         * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
7630         * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
7631         even at -O0.
7632
7633 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7634
7635         * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
7636         and str_bitsize instead of more convoluted expressions.
7637
7638 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7639
7640         PR target/52610
7641         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
7642
7643 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7644
7645         PR target/52656
7646         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
7647
7648 2012-03-23  Martin Jambor  <mjambor@suse.cz>
7649
7650         * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
7651
7652 2012-03-23  Richard Guenther  <rguenther@suse.de>
7653
7654         PR tree-optimization/52678
7655         * tree-vectorizer.h (struct _stmt_vec_info): Add
7656         loop_phi_evolution_part member.
7657         (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
7658         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
7659         STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
7660         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7661         Use the cached evolution part and the PHI nodes value from
7662         the loop preheader edge instead of re-analyzing the evolution.
7663
7664 2012-03-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
7665
7666         * config/mips/mips-tables.opt: Update.
7667         * config/mips/mips.md (processor): Add xlp.
7668         * config/mips/mips-cpus.def: Add xlp.
7669         * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
7670         5KF for now.
7671         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
7672         * doc/invoke.texi: Mention XLP.
7673
7674 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
7675
7676         PR middle-end/52547
7677         * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
7678         on any new_local_var_chain vars declared during recursing on
7679         GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
7680
7681 2012-03-22  Uros Bizjak  <ubizjak@gmail.com>
7682
7683         * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
7684         (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
7685         (ASM_OUTPUT_LOCAL): Ditto.
7686         (ASM_OUTPUT_COMMON): Remove.
7687         * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
7688         * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
7689
7690 2012-03-22  Jan Hubicka  <jh@suse.cz>
7691
7692         PR middle-end/51737
7693         * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
7694         parameter.
7695         * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
7696         * ipa-inline-transform.c (save_inline_function_body): Remove
7697         copied clone if needed.
7698         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
7699
7700 2012-03-22  Richard Guenther  <rguenther@suse.de>
7701
7702         PR middle-end/52666
7703         * fold-const.c (fold_ternary_loc): Fix typo.
7704
7705 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
7706
7707         PR target/52496
7708         * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
7709         (unspecv): Add UNSPECV_MEMORY_BARRIER.
7710         (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
7711         (delay_cycles_1, delay_cycles_2): Ditto.
7712         (delay_cycles_3, delay_cycles_4): Ditto.
7713         (nopv, *nopv): Ditto.
7714         (sleep, *sleep): Ditto.
7715         (wdr, *wdr): Ditto.
7716
7717 2012-03-22  Richard Guenther  <rguenther@suse.de>
7718
7719         PR tree-optimization/52548
7720         * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
7721         because of clobbers.
7722         (prune_clobbered_mems): New function.
7723         (compute_antic_aux): Use it to prune ANTIC_OUT.
7724         (compute_partial_antic_aux): Use it to prune PA_IN.
7725         (compute_avail): Only insert expressions into EXP_GEN that are not
7726         invalidated when translated up to the beginning of the block.
7727
7728 2012-03-22  Richard Guenther  <rguenther@suse.de>
7729
7730         PR tree-optimization/52638
7731         * tree-vect-stmts.c (vect_init_vector_1): New function, split
7732         out from ...
7733         (vect_init_vector): ... here.  Handle scalar vector inits.
7734         (vect_get_vec_def_for_operand): Adjust.
7735         (vectorizable_load): Likewise.
7736
7737 2012-03-22  Uros Bizjak  <ubizjak@gmail.com>
7738
7739         * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
7740         (alpha*-*-freebsd*): Ditto.
7741         (alpha*-*-netbsd*): Ditto.
7742         (alpha*-*-openbsd*): Ditto.
7743         * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
7744         (DWARF2_DEBUGGING_INFO): Remove.
7745         (PREFERRED_DEBUGGING_TYPE): Remove.
7746         (ASM_FINAL_SPEC): Remove.
7747         (IDENT_ASM_OP): Remove.
7748         (ASM_OUTPUT_IDENT): Remove.
7749         (SKIP_ASM_OP): Remove.
7750         (ASM_OUTPUT_SKIP): Remove.
7751         (ALIGN_ASM_OP): Remove.
7752         (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
7753         (ASM_OUTPUT_CASE_LABEL): Remove.
7754         (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
7755         (COMMON_ASM_OP): Remove.
7756         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
7757         (ASCII_DATA_ASM_OP): Remove.
7758         (READONLY_DATA_SECTION_ASM_OP): Remove.
7759         (INIT_SECTION_ASM_OP): Remove.
7760         (FINI_SECTION_ASM_OP): Remove.
7761         (ASM_SECTION_START_OP): Remove.
7762         (ASM_OUTPUT_SECTION_START_FILE): Remove.
7763         (TARGET_ASM_NAMED_SECTION): Remove.
7764         (TARGET_ASM_SELECT_SECTION): Remove.
7765         (MAKE_DECL_ONE_ONLY): Remove.
7766         (TYPE_ASM_OP): Remove.
7767         (SIZE_ASM_OP): Remove.
7768         (ASM_WEAKEN_LABEL): Remove.
7769         (TYPE_OPERAND_FMT): Remove.
7770         (ASM_DECLARE_RESULT): Remove.
7771         (ASM_DECLARE_OBJECT_NAME): Remove.
7772         (ASM_FINISH_DECLARE_OBJECT): Remove.
7773         (ELF_ASCII_ESCAPES): Remove.
7774         (ELF_STRING_LIMIT): Remove.
7775         (STRING_ASM_OP): Remove.
7776         (ASM_OUTPUT_EXTERNAL): Remove.
7777         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
7778         * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
7779         before define.
7780         (ASM_DECLARE_FUNCTION_NAME): Ditto.
7781         (ASM_DECLARE_FUNCTION_SIZE): Ditto.
7782         (ASM_GENERATE_INTERNAL_LABEL): Ditto.
7783         (ASM_OUTPUT_SKIP): Ditto.
7784         (READONLY_DATA_SECTION_ASM_OP): Remove.
7785         (USER_LABEL_PREFIX): Remove.
7786         (ASM_OUTPUT_ASCII): Remove.
7787         (ASM_OUTPUT_CASE_LABEL): Remove.
7788         (NO_DOLLAR_IN_LABEL): Undefine.
7789
7790 2012-03-22  Richard Guenther  <rguenther@suse.de>
7791
7792         PR tree-optimization/52459
7793         * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
7794         PHI insertion for calls.
7795
7796 2012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
7797
7798         * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
7799         find_sets_in_insn, canonicalize_insn): Split out from ...
7800         (cse_insn): ... here.
7801         (invalidate_from_clobbers): Take an insn instead of the pattern.
7802
7803 2012-03-21  Oleg Endo  <olegendo@gcc.gnu.org>
7804
7805         PR target/52479
7806         * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
7807         * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
7808         * config/sh/sh.md (sindf2, cosdf2): Remove.
7809
7810 2012-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>
7811
7812         PR target/52642
7813         * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
7814         prologue for unwinder and profiler.
7815
7816 2012-03-21  Andreas Tobler  <andreast@fgznet.ch>
7817
7818         * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
7819         Introduce emul_name to select the right linker emulation for
7820         powerpc64-*-freebsd*.
7821         * configure: Regenerate.
7822         * config.gcc: Add bits to support powerpc64-*-freebsd*.
7823         * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
7824         * config/rs6000/freebsd64.h: New file.
7825         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
7826         POWERPC_FREEBSD.
7827         (rs6000_savres_strategy): Likewise.
7828         (rs6000_savres_routine_name): Likewise.
7829         (rs6000_elf_file_end): Likewise.
7830         * config/rs6000/t-freebsd64: New file.
7831         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
7832         rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
7833
7834         * config/rs6000/freebsd64.h: Remove duplicated entries from last
7835         commit.
7836         * config/rs6000/t-freebsd64: Likewise.
7837
7838 2012-03-21  Georg-Johann Lay  <avr@gjlay.de>
7839
7840         PR rtl-optimization/52543
7841         PR target/52461
7842         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
7843         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
7844         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
7845         (avr_load_libgcc_p): Restrict to __flash loads.
7846         (avr_out_lpm): Only handle 1-byte loads from __flash.
7847         (avr_load_lpm): New function.
7848         (avr_find_unused_d_reg): Remove.
7849         (avr_out_lpm_no_lpmx): Remove.
7850         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
7851         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
7852         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
7853         (load_<mode>, load_<mode>_clobber): New insns.
7854         (mov<mode>): For multi-byte move from non-generic
7855         16-bit address spaces: Expand to load_<mode> resp.
7856         load_<mode>_clobber.
7857         (load<mode>_libgcc): Remove expander.
7858         (split-lpmx): Remove split.
7859
7860 2012-03-21  Richard Earnshaw  <rearnsha@arm.com>
7861
7862         * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
7863         * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
7864         All callers changed.
7865         (Fixed_core_reg): New feature.
7866         (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg.  Allow fmrrd in
7867         disassembly.
7868         * neon-testgen.ml: Handle Fixed_core_reg.
7869
7870 2012-03-21  Andrew Stubbs  <ams@codesourcery.com>
7871
7872         * config/arm/arm.c (thumb2_reorg): Add complete support
7873         for 16-bit instructions.
7874         * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
7875
7876 2012-03-21  Richard Guenther  <rguenther@suse.de>
7877
7878         PR tree-optimizer/52636
7879         * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
7880         to the appropriate type.
7881
7882 2012-03-21  Richard Guenther  <rguenther@suse.de>
7883
7884         * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
7885         dependencies.
7886         * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
7887         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
7888         * passes.c (init_optimization_passes): Remove pass_init_function,
7889         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
7890         * tree-pass.h (pass_init_function): Remove.
7891         (pass_jump): Remove.
7892         (pass_initial_value_sets): Remove.
7893         (pass_unshare_all_rtl): Remove.
7894         * integrate.c (pass_initial_value_sets): Remove.
7895         * emit-rtl.c (pass_unshare_all_rtl): Remove.
7896         * tree.h (init_function_for_compilation): Remove.
7897         * function.c (init_function_for_compilation): Remove.
7898         (pass_init_function): Remove.
7899         * cfgcleanup.c (rest_of_handle_jump): Remove.
7900         (pass_jump): Remove.
7901
7902 2012-03-20  Jason Merrill  <jason@redhat.com>
7903
7904         * tree-streamer-in.c (streamer_alloc_tree): Call
7905         ggc_alloc_zone_cleared_tree_node instead of
7906         ggc_alloc_zone_cleared_tree_node_stat.
7907
7908 2012-03-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
7909
7910         * doc/extend.texi (Template Instantiation): Remove anachronisms.
7911
7912 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
7913
7914         PR target/52607
7915         * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
7916         (ix86_expand_vec_perm_const_1): Call it.
7917
7918         * config/i386/i386.c (vselect_insn): New variable.
7919         (init_vselect_insn): New function.
7920         (expand_vselect, expand_vselect_insn): Add testing_p argument.
7921         Call init_vselect_insn if vselect_insn is NULL.  Adjust
7922         PATTERN (vselect_insn), instead of creating a new insn each time,
7923         only emit a copy of it if not testing and recog has been successful.
7924         (expand_vec_perm_pshufb, expand_vec_perm_1,
7925         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
7926         callers.
7927
7928         PR target/52607
7929         * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
7930         ("enabled" attribute): Handle avx2 and noavx2 isas.
7931         * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
7932         New insns.
7933         (vec_dup<mode>): Add avx2 =x,x alternative.
7934         (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
7935         (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
7936         For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
7937         * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
7938         for V8SFmode.
7939         (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
7940         if possible, handle also V8SFmode.
7941
7942 2012-03-20  Richard Earnshaw  <rearnsha@arm.com>
7943
7944         * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
7945         * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
7946         reg_or_zero_operand predicate.
7947         (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
7948
7949 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
7950
7951         * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
7952         If operand isn't UNSPEC, return 0.
7953
7954 2012-03-20  Richard Guenther  <rguenther@suse.de>
7955
7956         * tree-pass.h (pass_rtl_eh): Remove.
7957         * except.c (gate_handle_eh): Likewise.
7958         (rest_of_handle_eh): Likewise.
7959         (pass_rtl_eh): Likewise.
7960         (finish_eh_generation): Export.
7961         * except.h (finish_eh_generation): Declare.
7962         * passes.c (init_optimization_passes): Remove pass_rtl_eh.
7963         * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
7964         after expanding stack alignment.  Instead of compacting blocks
7965         call cleanup_cfg.
7966
7967 2012-03-20  Richard Guenther  <rguenther@suse.de>
7968
7969         * stor-layout.c (finish_bitfield_representative): Fallback
7970         to conservative maximum size if the padding up to the next
7971         field cannot be computed as a constant.
7972         (finish_bitfield_layout): If we cannot compute the distance
7973         between the start of the bitfield representative and the
7974         bitfield member start a new representative.
7975         * expr.c (get_bit_range): The distance between the start of
7976         the bitfield representative and the bitfield member is zero
7977         if the field offsets are not constants.
7978
7979 2012-03-20  Tristan Gingold  <gingold@adacore.com>
7980
7981         * tree.h (enum size_type_kind): Add stk_ prefix to constants,
7982         convert in lowercase.
7983         (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
7984         (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
7985         * stor-layout.c (sizetype_tab): Adjust.
7986         (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
7987         * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
7988         instead of type_kind_last.
7989         * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
7990         instead of size_int_kind.
7991         * doc/tm.texi.in (Type Layout): Document SIZETYPE.
7992         * doc/tm.texi: Regenerate.
7993         * defaults.h (SIZETYPE): Provide a default value.
7994         * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
7995         (SIZETYPE): Define.
7996
7997 2012-03-20  Oleg Endo  <olegendo@gcc.gnu.org>
7998
7999         * config/sh/sh.md: Use braced string notation where applicable.
8000
8001 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
8002
8003         * config/i386/i386.md (allocate_stack): Simplify.
8004
8005 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
8006
8007         * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
8008         copy_to_mode_reg (Pmode, ...).
8009         (expand_builtin_frame_address): Ditto.
8010         * expr.c (emit_block_move_via_libcall): Ditto.
8011         (set_storage_via_libcall): Ditto.
8012
8013         * config/i386/i386.c (ix86_expand_movmem): Ditto.
8014         (ix86_expand_setmem): Ditto.
8015         (ix86_trampoline_init): DItto.
8016         * config/i386/i386.md (cmpstrnsi): Ditto.
8017
8018 2012-03-19  Sandra Loosemore  <sandra@codesourcery.com>
8019
8020         * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
8021         * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
8022         * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
8023         (SH Options): Likewise.
8024
8025 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
8026
8027         * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
8028         Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
8029         (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
8030         DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
8031         (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
8032
8033         Revert:
8034         2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8035
8036         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
8037         * config/i386/i386.c (ix86_decompose_address): Use
8038         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
8039         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
8040         thread pointer to a register.
8041
8042         Revert:
8043         2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8044
8045         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
8046         if Pmode != word_mode.
8047         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
8048         Pmode == SImode for TARGET_X32.
8049
8050         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
8051         (tls_initial_exec_x32): Likewise.
8052
8053 2012-03-19  Oleg Endo  <olegendo@gcc.gnu.org>
8054
8055         PR target/50751
8056         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
8057         DISP_ADDR_OFFSET): New macros.
8058         * config/sh/sh.c (sh_address_cost): Add SH2A special case.
8059         (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
8060         (sh_legitimize_address): Add QImode displacement handling.
8061         (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
8062         vector subregs.
8063         (sh_secondary_reload): Add QImode displacement handling.
8064         * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
8065         * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
8066         * config/sh/sh.md (extendqisi2): Remove constraints from expander.
8067         (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
8068         to register operands only.
8069         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
8070         (extendqihi2): Change insn to expander.
8071         (*extendqihi2_compact_reg): New insn.
8072         (movqi_i, movqi): Replace with ...
8073         (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
8074         *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
8075         Add new peepholes for QImode displacement addressing.
8076
8077 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
8078
8079         PR c++/14710
8080         * doc/invoke.texi: Document -Wuseless-cast.
8081
8082 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
8083
8084         * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
8085         * tree.h (handled_component_p): Reorder cases.
8086         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
8087         not initialize unsignedp.
8088         (loc_list_from_tree): Likewise.
8089         (fortran_common): Likewise.
8090         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
8091
8092 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
8093
8094         * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
8095         mode consistently.  Use ix86_gen_add3.  Assert that Pmode == DImode.
8096         (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
8097         (ix86_split_long_move): Ditto.
8098         (legitimize_tls_address): Use ix86_gen_sub3.
8099         (construct_plt_address): Assert that Pmode == DImode.
8100
8101 2012-03-18  Uros Bizjak  <ubizjak@gmail.com>
8102
8103         * config/i386/i386.md: Remove empty predicates and/or constraints.
8104         * config/i386/sync.md: Ditto.
8105         * config/i386/sse.md: Ditto.
8106         * config/i386/mmx.md: Ditto.
8107         * config/i386/pentium.md: Ditto.
8108         * config/i386/athlon.md: Ditto.
8109
8110 2012-03-16  Richard Guenther  <rguenther@suse.de>
8111
8112         PR tree-optimization/52603
8113         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
8114         comment.
8115
8116         Revert
8117         2012-03-14  Richard Guenther  <rguenther@suse.de>
8118
8119         PR tree-optimization/52571
8120         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
8121         flag_section_anchors check ...
8122         (vect_can_force_dr_alignment_p): ... here.
8123
8124 2012-03-16  Martin Jambor  <mjambor@suse.cz>
8125
8126         * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
8127         memory through MEM_REFs by calling extract_bit_field.
8128
8129 2012-03-16  Richard Guenther  <rguenther@suse.de>
8130
8131         * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
8132         and REFERENCE_TYPE interpretations.
8133         (can_native_interpret_type_p): New function.
8134         (fold_ternary_loc): Use native encode/interpret to fold
8135         BIT_FIELD_REFs of constants.
8136
8137 2012-03-16  Richard Guenther  <rguenther@suse.de>
8138
8139         PR middle-end/52584
8140         * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
8141         of vector constants and constructors.
8142
8143 2012-03-16  Richard Guenther  <rguenther@suse.de>
8144
8145         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
8146         VIEW_CONVERT_EXPR to convert constants.
8147         (vect_is_simple_use): Treat all constants as vec_constant_def.
8148
8149 2012-03-16  Richard Guenther  <rguenther@suse.de>
8150             Kai Tietz  <ktietz@redhat.com>
8151
8152         PR middle-end/48814
8153         * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
8154         side-effects completely in the pre-queue and use a temporary
8155         for the result.
8156
8157 2012-03-16  Richard Guenther  <rguenther@suse.de>
8158
8159         * stor-layout.c (finish_bitfield_representative): Fall back
8160         to the conservative maximum size if we cannot compute the
8161         size of the tail padding.
8162
8163 2012-03-16  Tristan Gingold  <gingold@adacore.com>
8164
8165         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
8166         __CRTL_VER and __VMS_VER.
8167         * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
8168         and vms_c_get_vms_ver.
8169         * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
8170         functions.
8171         * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
8172         (VMS_DEFAULT_VMS_VER): Define.
8173         * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
8174         (VMS_DEFAULT_VMS_VER): Define.
8175
8176 2012-03-16  Richard Guenther  <rguenther@suse.de>
8177
8178         * tree-vect-loop.c (get_initial_def_for_induction): Use
8179         build_constructor directly.
8180         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
8181         build_vector_from_val.
8182         * tree.c (build_vector_from_val): Avoid creating a constructor
8183         first when we want a constant vector.
8184
8185 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8186
8187         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
8188
8189 2012-03-16  Richard Guenther  <rguenther@suse.de>
8190
8191         * tree.h (TREE_VECTOR_CST_ELTS): Remove.
8192         (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
8193         (struct tree_vector): Remove elements member, add variable size
8194         elts array member.
8195         (build_vector_stat): Declare.
8196         (build_vector): Define in terms of build_vector_stat.
8197         * tree.c (build_vector): Rename to ...
8198         (build_vector_stat): ... this.  Take array of trees as parameter.
8199         (build_vector_from_ctor): Adjust.
8200         (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
8201         initializer_zerop): Adjust.
8202         * cfgexpand.c (expand_debug_expr): Likewise.
8203         * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
8204         const_vector_from_tree): Likewise.
8205         * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
8206         native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
8207         fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
8208         * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
8209         (lto_input_ts_vector_tree_pointers): Adjust.
8210         * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
8211         (write_ts_vector_tree_pointers): Adjust.
8212         * varasm.c (const_hash_1, compare_constant, copy_constant,
8213         output_constant): Adjust.
8214         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
8215         * print-tree.c (print_node): Adjust.
8216         * tree-pretty-print.c (dump_generic_node): Adjust.
8217         * tree-vect-generic.c (uniform_vector_p, vector_element,
8218         lower_vec_perm): Adjust.
8219         * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
8220         * tree-vect-slp.c (vect_get_constant_vectors,
8221         vect_transform_slp_perm_load): Adjust.
8222         * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
8223         * expmed.c (make_tree): Adjust.
8224         * config/i386/i386.c (ix86_expand_builtin): Adjust.
8225         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
8226         and implementation.
8227         (sparc_fold_builtin): Adjust.
8228
8229 2012-03-16  Tristan Gingold  <gingold@adacore.com>
8230
8231         * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
8232         * config/vms/vms-stdint.h: New file.
8233
8234 2012-03-16  Tristan Gingold  <gingold@adacore.com>
8235
8236         * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
8237         (ia64-hp-*vms*): Replaced by ...
8238         (*-*-*vms*): ... This new entry.
8239
8240 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
8241
8242         PR target/52568
8243         * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
8244         (ix86_expand_vec_perm_const_1): Use it.
8245
8246         PR target/52568
8247         * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
8248         (avx2_permv4df): Remove.
8249         (avx2_permv4di): Macroize into...
8250         (avx2_perm<mode>): ... this using VI8F_256 iterator.
8251         (avx2_permv4di_1): Macroize into...
8252         (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
8253
8254 2012-03-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
8255
8256         * combine.c (apply_distributive_law): Do not distribute SUBREG.
8257
8258 2012-03-15  Ira Rosen  <irar@il.ibm.com>
8259             Ulrich Weigand  <ulrich.weigand@linaro.org>
8260
8261         * tree-vect-patterns.c (widened_name_p): Rename to ...
8262         (type_conversion_p): ... this.  Add new argument to determine
8263         if it's a promotion or demotion operation.  Check for
8264         CONVERT_EXPR_CODE_P instead of NOP_EXPR.
8265         (vect_recog_dot_prod_pattern): Call type_conversion_p instead
8266         widened_name_p.
8267         (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
8268         vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
8269         Likewise.
8270         (vect_recog_mixed_size_cond_pattern): Likewise and allow
8271         non-constant then and else clauses.
8272
8273 2012-03-15  Ira Rosen  <irar@il.ibm.com>
8274             Ulrich Weigand  <ulrich.weigand@linaro.org>
8275
8276         * tree-vectorizer.h (vect_pattern_recog): Add new argument.
8277         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
8278         vect_pattern_recog.
8279         * tree-vect-patterns.c (widened_name_p): Pass basic block
8280         info to vect_is_simple_use.
8281         (vect_recog_dot_prod_pattern): Fail for basic blocks.
8282         (vect_recog_widen_sum_pattern): Likewise.
8283         (vect_handle_widen_op_by_const): Support basic blocks.
8284         (vect_operation_fits_smaller_type,
8285         vect_recog_over_widening_pattern): Likewise.
8286         (vect_recog_vector_vector_shift_pattern): Support basic blocks.
8287         Update call to vect_is_simple_use.
8288         (vect_recog_mixed_size_cond_pattern): Support basic blocks.
8289         Add printing.
8290         (check_bool_pattern): Add an argument, update call to
8291         vect_is_simple_use and the recursive calls.
8292         (vect_recog_bool_pattern): Update relevant function calls.
8293         Add printing.
8294         (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
8295         (vect_pattern_recog_1): Check for reduction only in loops.
8296         (vect_pattern_recog): Add new argument.  Support basic blocks.
8297         * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
8298         info to vect_is_simple_use_1.
8299         * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
8300         (vect_slp_analyze_bb_1): Call vect_pattern_recog.
8301
8302 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
8303             Andrew Pinski  <apinski@cavium.com>
8304
8305         PR middle-end/52592
8306         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
8307         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
8308         calls instead of __builtin_ir{int,ound}*.
8309
8310 2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8311
8312         * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
8313         documentation.
8314
8315 2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8316
8317         * config.gcc (target_type_format_char): New. Document it. Set it for
8318         arm*-*-* .
8319         * configure.ac (gnu_unique_option): Use target_type_format_char
8320         in test.  Comment rationale.
8321         * configure: Regenerate .
8322
8323 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
8324
8325         PR tree-optimization/52267
8326         * tree-vrp.c (masked_increment): New function.
8327         (register_edge_assert_for_2): Derive ASSERT_EXPRs
8328         from (X & CST1) cmp CST2 tests.
8329
8330 2012-03-15  Richard Guenther  <rguenther@suse.de>
8331
8332         PR middle-end/52580
8333         * tree-data-ref.c (subscript_dependence_tester_1): Check
8334         all dimensions for non-conflicting access functions.
8335
8336 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8337
8338         PR c++/44783
8339         * doc/invoke.texi [C++ Language Options]: Document
8340         -ftemplate-backtrace-limit.
8341
8342 2012-03-15  Tristan Gingold  <gingold@adacore.com>
8343
8344         * c-parser.c (c_parser_parameter_declaration): Handle #pragma
8345         before a parameter.
8346
8347 2012-03-15  Tristan Gingold  <gingold@adacore.com>
8348
8349         * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
8350         use DW_OP_call_frame_cfa.
8351
8352 2012-03-14  H.J. Lu  <hongjiu.lu@intel.com>
8353
8354         PR target/50797
8355         * config/i386/i386-opts.h (pmode): New.
8356
8357         * config/i386/i386.c (ix86_option_override_internal): Properly
8358         check and set ix86_pmode.
8359
8360         * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
8361
8362         * config/i386/i386.opt (maddress-mode=): New.
8363
8364         * doc/invoke.texi: Document -maddress-mode=short|long for x86.
8365
8366 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8367
8368         * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
8369         (dwarf2out_do_cfi_asm): Likewise.
8370         * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
8371         handling.
8372         (add_data_member_location_attribute): Likewise.
8373         (gen_array_type_die): Likewise.
8374         (gen_subprogram_die): Likewise.
8375         (gen_producer_string): Likewise.
8376         * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
8377         Remove MIPS_DEBUGGING_INFO handling.
8378         (sdb_debug_hooks): Likewise.
8379         (sdbout_begin_block): Likewise.
8380         (sdbout_end_block): Likewise.
8381         (sdbout_begin_prologue): Likewise.
8382         (sdbout_start_source_file): Likewise.
8383         (sdbout_end_source_file): Likewise.
8384         (sdbout_init): Likewise.
8385         * system.h (MIPS_DEBUGGING_INFO): Poison.
8386
8387 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8388
8389         * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
8390         (alpha_file_start) [MS_STAMP]: Remove.
8391
8392         * config/alpha/elf.h (TARGET_GAS): Remove.
8393         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
8394         * config/alpha/linux.h (TARGET_DEFAULT): Remove.
8395         * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
8396         * config/alpha/vms.h (TARGET_DEFAULT): Remove.
8397         * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
8398         (alpha*-*-freebsd*): Likewise.
8399         (alpha*-*-netbsd*): Likewise.
8400         (alpha*-*-openbsd*): Likewise.
8401         (alpha*-*-*): Remove target_cpu_default2.
8402         * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
8403         handling.
8404         * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
8405         (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
8406         * config/alpha/alpha.c (print_operand): Always assume
8407         TARGET_AS_SLASH_BEFORE_SUFFIX.
8408         * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
8409         Remove TARGET_AS_CAN_SUBTRACT_LABELS.
8410         ("*builtin_setjmp_receiver_er_1"): Remove.
8411         * config/alpha/alpha.opt (malpha-as): Remove.
8412         (mgas): Ignore.
8413         * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
8414         -malpha-as, -mgas.
8415         Remove DEC Unix reference.
8416
8417         * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
8418         (EXTENDED_COFF): Remove.
8419         * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
8420         (EXTENDED_COFF): Don't undef.
8421         * config/alpha/alpha.c (alpha_file_start): Always assume
8422         OBJECT_FORMAT_ELF.
8423         Don't set targetm.asm_file_start_file_directive.
8424         [!OBJECT_FORMAT_ELF]: Remove.
8425         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
8426
8427         * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
8428         (DBX_DEBUGGING_INFO): Remove.
8429         (MIPS_DEBUGGING_INFO): Remove.
8430         (PREFERRED_DEBUGGING_TYPE): Remove.
8431         (DBX_OUTPUT_SOURCE_LINE): Remove.
8432         (SDB_OUTPUT_SOURCE_LINE): Remove.
8433         (DBX_CONTIN_LENGTH): Remove.
8434         (NO_DBX_FUNCTION_END): Remove.
8435         (ASM_STABS_OP): Remove.
8436         (ASM_STABN_OP): Remove.
8437         (ASM_STABD_OP): Remove.
8438         (SDB_ALLOW_FORWARD_REFERENCES): Remove.
8439         (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
8440         (PUT_SDB_DEF): Remove.
8441         (PUT_SDB_PLAIN_DEF): Remove.
8442         (PUT_SDB_TYPE): Remove.
8443         (sdb_label_count): Remove.
8444         (PUT_SDB_BLOCK_START): Remove.
8445         (PUT_SDB_BLOCK_END): Remove.
8446         (PUT_SDB_FUNCTION_START): Remove.
8447         (PUT_SDB_FUNCTION_END): Remove.
8448         (PUT_SDB_EPILOGUE_END): Remove.
8449         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
8450         (MIPS_DEBUGGING_INFO): Don't undef.
8451         (DBX_DEBUGGING_INFO): Don't undef.
8452         * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
8453         (MIPS_DEBUGGING_INFO): Don't undef.
8454         (DBX_DEBUGGING_INFO): Don't undef.
8455         * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
8456         * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
8457         handling.
8458         (alpha_start_function): Likewise.
8459         (sdb_label_count): Remove.
8460         (alpha_output_filename): Remove DBX_DEBUG handling.
8461         (alpha_file_start): Likewise.
8462
8463 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8464
8465         * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
8466         (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
8467         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
8468         Solaris 8 support.
8469         * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
8470         (ld_tls_support): Remove Solaris 8 references.
8471         (lwp_dir, lwp_spec): Remove support for alternate thread library.
8472         * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
8473         * configure: Regenerate.
8474         * config.in: Regenerate.
8475
8476         * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
8477         * config/i386/sol2.h: Remove Solaris 8 references.
8478
8479         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
8480         (i?86-*-solaris2.9): ... this.
8481         Remove Solaris 8 references.
8482         (Specific, *-*-solaris2*): Document Solaris 8 removal.
8483         Remove Solaris 8 references.
8484
8485 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8486
8487         * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
8488         (mips-sgi-irix6.5*): Remove.
8489         * config.host (mips-sgi-irix*): Remove.
8490         * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
8491         (set_have_as_tls): Remove *-*-irix6*.
8492         (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
8493         * configure: Regenerate.
8494
8495         * config/mips/iris6.h: Remove.
8496         * config/mips/iris6.opt: Remove.
8497         * config/mips/t-irix6: Remove.
8498
8499         * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
8500         (TARGET_IRIX6): Remove.
8501         (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
8502         Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
8503         * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
8504         handling.
8505         (mips_file_start): Likewise.
8506         * config/mips/mips-protos.h (irix_asm_output_align): Remove.
8507
8508         * config/mips/driver-native.c [__sgi__]: Remove.
8509         (host_detect_local_cpu) [__sgi__]: Remove.
8510
8511         * config/mips/gnu-user.h: Remove iris5.h reference.
8512
8513         * config/mips/mips-modes.def: Remove IRIX 6 reference.
8514         * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
8515         * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
8516         Remove.
8517
8518         * gcc.c (main): Move asm_debug initialization ...
8519         (asm_debug): ... here.
8520
8521         * ginclude/stddef.h (__STDDEF_H__): Don't define.
8522
8523         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
8524         * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
8525         * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
8526         (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
8527         [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
8528         * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
8529         Remove.
8530         * doc/tm.texi: Regenerate.
8531
8532         * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
8533         IRIX 6 reference.
8534         (MIPS Options, -march): Remove IRIX reference.
8535         * doc/install.texi (Binaries, SGI IRIX): Remove.
8536         (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
8537         of section.
8538         * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
8539
8540 2012-03-14  Martin Jambor  <mjambor@suse.cz>
8541
8542         * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
8543         when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
8544         (expand_expr_real_1): Do not handle misalignment if modifier is
8545         EXPAND_WRITE.
8546
8547 2012-03-14  Richard Guenther  <rguenther@suse.de>
8548
8549         PR middle-end/52584
8550         * tree-vect-generic.c (type_for_widest_vector_mode): Take
8551         element type instead of mode, use build_vector_type_for_mode
8552         instead of the langhook, build a vector of proper signedness.
8553         (expand_vector_operations_1): Adjust.
8554
8555 2012-03-14  Richard Guenther  <rguenther@suse.de>
8556
8557         PR middle-end/52582
8558         * gimple-fold.c (canonicalize_constructor_val): Make sure we have
8559         a cgraph node for a FUNCTION_DECL that comes from a constructor.
8560         (gimple_get_virt_method_for_binfo): Likewise.
8561
8562 2012-03-14  Richard Guenther  <rguenther@suse.de>
8563
8564         PR tree-optimization/52571
8565         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
8566         flag_section_anchors check ...
8567         (vect_can_force_dr_alignment_p): ... here.  Do not re-align
8568         DECL_COMMON variables.
8569
8570 2012-03-14  Richard Guenther  <rguenther@suse.de>
8571
8572         * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
8573         * stor-layout.c (start_bitfield_representative): New function.
8574         (finish_bitfield_representative): Likewise.
8575         (finish_bitfield_layout): Likewise.
8576         (finish_record_layout): Call finish_bitfield_layout.
8577         * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
8578         for QUAL_UNION_TYPE fields.
8579         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
8580         Stream DECL_BIT_FIELD_REPRESENTATIVE.
8581         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
8582
8583         PR middle-end/52080
8584         PR middle-end/52097
8585         PR middle-end/48124
8586         * expr.c (get_bit_range): Unconditionally extract bitrange
8587         from DECL_BIT_FIELD_REPRESENTATIVE.
8588         (expand_assignment): Adjust call to get_bit_range.
8589
8590 2012-03-14  Richard Guenther  <rguenther@suse.de>
8591
8592         PR middle-end/52578
8593         * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
8594         the outermost conversion is a sign-change only.
8595         (fold_binary_loc): Disregard widening and sign-changing
8596         conversions when we determine if two variables are equal
8597         for reassociation.
8598         * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
8599         (T1)x if the outermost conversion is a sign-change only.
8600
8601 2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
8602
8603         Revert:
8604         2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
8605
8606         * config/i386/predicates.md (constant_call_address_operand): Declare
8607         as special predicate.  Update all uses.
8608
8609 2012-03-13  Jakub Jelinek  <jakub@redhat.com>
8610
8611         PR c/52577
8612         * c-parser.c (c_parser_postfix_expression)
8613         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
8614
8615         * config/i386/smmintrin.h: Avoid /* within a comment.
8616         * config/i386/nmmintrin.h: Likewise.
8617
8618 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8619
8620         * config/i386/i386.md (xbegin): Remove constraint from expander.
8621
8622 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8623
8624         * config/i386/predicates.md (constant_call_address_operand): Declare
8625         as special predicate.  Update all uses.
8626         * config/i386/i386.md: Remove mode from constant_call_address_operand
8627         predicates.
8628         * config/i386/i386.c (ix86_output_call_insn): Call
8629         constant_call_address_operand with VOIDmode.
8630
8631 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8632
8633         * config/i386/i386.c (ix86_decompose_address): Handle subregs of
8634         AND zero extended address correctly.
8635
8636 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8637
8638         * config/i386/predicates.md (tls_symbolic_operand): Declare as
8639         special predicate.
8640         (tls_modbase_operand): Ditto.
8641         * config/i386/i386.md: Remove mode from tls_symbolic_operand and
8642         tls_modbase_operand predicates.
8643
8644 2012-03-13  Martin Jambor  <mjambor@suse.cz>
8645
8646         * expr.c (expand_assignment): Handle misaligned scalar writes to
8647         memory through top-level MEM_REFs by calling store_bit_field.
8648
8649 2012-03-13  Richard Guenther  <rguenther@suse.de>
8650
8651         PR middle-end/52134
8652         * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
8653         if Y is a constant multiple of 1 << CST.
8654
8655 2012-03-13  Georg-Johann Lay  <avr@gjlay.de>
8656
8657         PR target/52488
8658         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
8659         offset (size) to a value the insns can deal with.
8660         (expand_epilogue): Ditto.
8661
8662 2012-03-13  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
8663
8664         * config/arm/neon.ml (ops): Fixup expected instructions for
8665         unsigned vector compares.
8666
8667 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8668
8669         * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
8670         addresses only when %reg is not in word mode.
8671
8672 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8673
8674         * config/microblaze/microblaze.md: Fix typo.
8675         * tree-if-conv.c: Likewise.
8676         * tree-vect-patterns.c: Likewise.
8677
8678 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8679
8680         * config.gcc (extra_passes): Remove.
8681         * configure.ac (extra_passes): Don't substitute.
8682         * configure: Regenerate.
8683         * Makefile.in (EXTRA_PASSES): Remove.
8684         (GCC_PASSES): Remove $(EXTRA_PASSES).
8685         (MOSTLYCLEANFILES): Likewise.
8686         (native): Likewise.
8687         (install-common): Likewise.
8688
8689 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
8690
8691         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
8692         * config/i386/i386.c (ix86_decompose_address): Use
8693         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
8694         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
8695         thread pointer to a register.
8696
8697 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8698
8699         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
8700         on tls_symbolic_operand.
8701         (tls_global_dynamic_64_<mode>): Likewise.
8702
8703 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
8704
8705         PR other/52545
8706         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
8707         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
8708
8709 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
8710
8711         PR target/52499
8712         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
8713         type from reg_class_t to enum reg_class.
8714         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
8715
8716 2012-03-12  Andrew Pinski  <apinski@cavium.com>
8717
8718         * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
8719         (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
8720         (value_replacement): Likewise.
8721         (empty_block_p): Check also if the PHIs for the block are empty.
8722
8723 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
8724
8725         PR target/52148
8726         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
8727         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
8728         r184615 from 2012-02-28.
8729
8730 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8731
8732         * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
8733         (ix86_gen_tls_local_dynamic_base_64): Likewise.
8734         (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
8735         and ix86_gen_tls_local_dynamic_base_64.
8736         (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
8737         ix86_gen_tls_local_dynamic_base_64.
8738
8739         * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
8740         (*tls_global_dynamic_64_<mode>): This.
8741         (tls_global_dynamic_64): Renamed to ...
8742         (tls_global_dynamic_64_<mode>): This.
8743         (*tls_local_dynamic_base_64): Renamed to ...
8744         (*tls_local_dynamic_base_64_<mode>): This.
8745         (tls_local_dynamic_base_64): Renamed to ...
8746         (tls_local_dynamic_base_64_<mode>): This.
8747
8748 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8749
8750         * config/i386/i386.c (ix86_option_override_internal): Properly
8751         set ix86_gen_leave and ix86_gen_monitor.  Check Pmode == DImode,
8752         instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
8753         ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
8754         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
8755
8756         * config/i386/sse.md (sse3_monitor64): Renamed to ...
8757         (sse3_monitor64_<mode>): This.
8758
8759 2012-03-12  Tristan Gingold  <gingold@adacore.com>
8760
8761         * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
8762         (ia64_function_arg_advance): Ditto.
8763
8764 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8765
8766         * config.gcc (mips*-*-openbsd*): Remove.
8767         * config/mips/openbsd.h: Remove.
8768         * config/mips/sdb.h: Remove.
8769
8770         * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
8771         * config/mips/mips.c (sdb_label_count): Remove.
8772         (mips_debugger_offset): Remove #if 0 code.
8773         (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
8774         * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
8775
8776 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8777
8778         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
8779         binutils reference.
8780         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
8781         Update binutils references.
8782         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
8783         Update binutils reference.
8784         Update Sun as/GNU ld caveat.
8785         Document binutils largefile requirement for LTO plugin.
8786         Remove reference to alternate libpthread.
8787
8788 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8789
8790         * config.gcc (alpha*-dec-osf5.1*): Remove.
8791         * config.host (alpha*-dec-osf*): Remove.
8792         * configure.ac (*-*-osf*): Remove.
8793         (alpha*-dec-osf*): Remove.
8794         * configure: Regenerate.
8795
8796         * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
8797         config/alpha/va_list.h, config/alpha/x-osf: Remove.
8798
8799         * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
8800         * config/alpha/alpha.c (struct machine_function): Update comment.
8801         (alpha_start_function): Remove Tru64 UNIX as handling for
8802         max_frame_size.
8803         * config/alpha/alpha.md ("exception_receiver"): Remove
8804         TARGET_LD_BUGGY_LDGP.
8805         ("*exception_receiver_2"): Likewise.
8806         * except.c (finish_eh_generation): Remove Tru64 reference.
8807         * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
8808         * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
8809         * target.def (handle_pragma_extern_prefix): Remove.
8810
8811         * Makefile.in (mips-tfile.o-warn): Remove.
8812         (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
8813         (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
8814         * mips-tdump.c, mips-tfile.c: Remove.
8815
8816         * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
8817         extern_prefix.
8818         * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
8819         (Specific, alpha*-dec-osf5.1): Note removal.
8820         * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
8821         Remove.
8822         * doc/tm.texi: Regenerate.
8823         * doc/trouble.texi (Cross-Compiler Problems): Remove.
8824
8825 2012-03-12  Richard Guenther  <rguenther@suse.de>
8826
8827         * config/arm/arm.c (neon_dereference_pointer): Do not call
8828         covert during RTL expansion.
8829
8830 2012-03-12  Tristan Gingold  <gingold@adacore.com>
8831
8832         * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
8833         Options.  Mention -mpointer-size.
8834
8835 2012-03-12  Richard Guenther  <rguenther@suse.de>
8836
8837         * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
8838         build_nonstandard_integer_type.
8839
8840 2012-03-12  Richard Guenther  <rguenther@suse.de>
8841
8842         * tree.c (signed_or_unsigned_type_for): Use
8843         build_nonstandard_integer_type.
8844         (signed_type_for): Adjust documentation.
8845         (unsigned_type_for): Likewise.
8846         * tree-pretty-print.c (dump_generic_node): Use standard names
8847         for non-standard integer types if available.
8848
8849 2012-03-12  Tristan Gingold  <gingold@adacore.com>
8850
8851         * config/vms/vms.opt: Add vms-opts.h header.
8852         (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
8853         target mask.
8854         (-mvms-return-codes): Document.
8855         (-mpointer-size): New option.
8856         (vms_pointer_size): Add enumeration.
8857         * config/vms/vms-opts.h: New file.
8858         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
8859         __INITIAL_POINTER_SIZE.
8860         (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
8861         (C_COMMON_OVERRIDE_OPTIONS): Define.
8862         (DWARF2_ADDR_SIZE): Define.
8863         * config/vms/vms.c (vms_patch_builtins): Adjust condition.
8864         * config/vms/vms-protos.h (vms_c_common_override_options):
8865         New prototype.
8866         * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
8867         if -mno-pointer-size.
8868         (vms_c_common_override_options): New function.
8869         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
8870         * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
8871         (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
8872         and flag_vms_pointer_size.
8873         (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
8874         * config.gcc (*-*-*vms*): Define xm_file.
8875         (alpha*-dec-*vms*): Do not define xm_file.
8876         (alpha64-dec-*vms*): Remove.
8877         (ia64-hp-*vms*): Do not define xm_file.  Simplify tm_file
8878         and tmake_file.
8879
8880 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
8881
8882         PR tree-optimization/51721
8883         * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
8884         if (int) unsvar cmp CST.
8885
8886 2012-03-12  Richard Guenther  <rguenther@suse.de>
8887
8888         * tree-sra.c (create_access_replacement): Only rename the replacement
8889         if we can rewrite it into SSA form.  Properly mark register typed
8890         replacements that we cannot rewrite with TREE_ADDRESSABLE.
8891         * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
8892         for aggregate or BLKmode results.
8893
8894 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
8895
8896         PR tree-optimization/52533
8897         * tree-vrp.c (register_edge_assert_for_2): Use double_int
8898         type for mask, only handle shifts by non-zero in-range
8899         shift count, for LE_EXPR and GT_EXPR if new_val is
8900         maximum, don't add the assertion.
8901
8902 2012-02-12  Kirill Yukhin  <kirill.yukhin@intel.com>
8903
8904         * doc/invoke.texi: Document -mrtm option.
8905         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
8906         (OPTION_MASK_ISA_RTM_UNSET): Ditto.
8907         (ix86_handle_option): Handle OPT_mrtm.
8908         * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
8909         xtestintrin.h.
8910         (x86_64-*-*): Ditto.
8911         * i386-builtin-types.def (INT_FTYPE_VOID): New.
8912         * config/i386/i386-c.c (ix86_target_macros_internal): Define
8913         __RTM__ if needed.
8914         (ix86_target_string): Define -mrtm option.
8915         (PTA_RTM): New.
8916         (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
8917         Handle new option.
8918         (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
8919         (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
8920         IX86_BUILTIN_XTEST.
8921         (bdesc_special_args): Ditto.
8922         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
8923         (ix86_expand_special_args_builtin): Handle new built-in type.
8924         (ix86_expand_builtin): Handle XABORT instruction.
8925         * config/i386/i386.h (TARGET_RTM): New.
8926         * config/i386/i386.md (UNSPECV_XBEGIN): New.
8927         (UNSPECV_XEND): Ditto.
8928         (UNSPECV_XABORT): Ditto.
8929         (UNSPECV_XTEST): Ditto.
8930         (xbegin): Ditto.
8931         (xbegin_1): Ditto.
8932         (xend): Ditto.
8933         (xabort): Ditto
8934         (xtest): Ditto.
8935         (xtest_1): Ditto.
8936         * config/i386/i386.opt (mrtm): New.
8937         * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
8938         * config/i386/rtmintrin.h: New header.
8939         * config/i386/xtestintrin.h: Ditto.
8940
8941 2012-03-12  Tristan Gingold  <gingold@adacore.com>
8942
8943         * ginclude/stddef.h: Adjust previous patch.
8944         Use __VMS__ instead of VMS.
8945
8946 2012-03-12  Uros Bizjak  <ubizjak@gmail.com>
8947
8948         * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
8949         Also convert sequences with CC setting arithmetic instruction.
8950
8951 2012-03-11  Sandra Loosemore  <sandra@codesourcery.com>
8952
8953         * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
8954         from C Language Options to Preprocessor Options.
8955         (C Dialect Options): Move -no-integrated-cpp documentation
8956         from here...
8957         (Preprocessor Options): ...to here.  Rewrite the description
8958         so it makes more sense, and remove discussion of merging front ends.
8959
8960 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
8961
8962         * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
8963         needed for loop.
8964         (ix86_expand_setmem): Likewise.
8965
8966 2012-03-11  Uros Bizjak  <ubizjak@gmail.com>
8967
8968         * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
8969         convert_to_mode.
8970
8971 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
8972
8973         * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
8974         ptr_mode == SImode.  Replace DImode with Pmode or ptr_mode.
8975
8976 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
8977
8978         * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
8979
8980 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
8981
8982         * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
8983         TARGET_64BIT.
8984
8985 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
8986             Uros Bizjak  <ubizjak@gmail.com>
8987
8988         * config/i386/predicates.md (call_insn_operand): Allow
8989         constant_call_address_operand in Pmode only.
8990         (sibcall_insn_operand): Ditto.
8991         * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
8992         (*call_vzeroupper): Ditto.
8993         (*sibcall): Ditto.
8994         (*sibcall_vzeroupper): Ditto.
8995         (*call_value): Ditto.
8996         (*call_value_vzeroupper): Ditto.
8997         (*sibcall_value): Ditto.
8998         (*sibcall_value_vzeroupper): Ditto.
8999         (*indirect_jump): Ditto.
9000         (*tablejump_1): Ditto.
9001         (indirect_jump): Convert memory address to word mode for TARGET_X32.
9002         (tablejump): Ditto.
9003         * config/i386/i386.c (ix86_expand_call): Convert indirect operands
9004         to word mode.
9005
9006 2012-03-11  Oleg Endo  <olegendo@gcc.gnu.org>
9007
9008         PR target/51244
9009         * config/sh/sh.md (movnegt): Expand into respective insns immediately.
9010         Use movrt_negc instead of negc pattern for non-SH2A.
9011         (*movnegt): Remove.
9012         (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
9013
9014 2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9015
9016         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
9017         if Pmode != word_mode.
9018         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
9019         Pmode == SImode for TARGET_X32.
9020
9021         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
9022         (tls_initial_exec_x32): Likewise.
9023
9024 2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
9025
9026         PR rtl-optimization/52528
9027         * combine.c (can_combine_p): Add setting of subst_low_luid
9028         before call to expand_field_assignment().
9029
9030 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
9031
9032         * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
9033         and related program names.
9034
9035 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
9036
9037         * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
9038
9039 2012-03-09  Uros Bizjak  <ubizjak@gmail.com>
9040
9041         PR target/52530
9042         * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
9043         (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
9044         to set code to 'q'.
9045         * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
9046         (*movdi_internal_rex64): Use %E operand modifier for lea.
9047         (*movsi_internal): Ditto.
9048         (*lea_1): Ditto.
9049         (*lea<mode>_2): Ditto.
9050         (*lea_{3,4,5,6}_zext): Ditto.
9051         (*tls_global_dynamic_32_gnu): Ditto.
9052         (*tls_global_dynamic_64): Ditto.
9053         (*tls_dynamic_gnu2_lea_32): Ditto.
9054         (*tls_dynamic_gnu2_lea_64): Ditto.
9055         (pro_epilogue_adjust_stack_<mode>_add): Ditto.
9056
9057 2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
9058
9059         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
9060         redefine to be NULL if the current bit-size is different from the
9061         configured bit-size.
9062
9063         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
9064         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
9065         set the default tuning.  Add asserts to make sure the cpu and tune
9066         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
9067         test whether the index is set, instead of > 0.
9068         (rs6000_file_start): Do not reset the default cpu if the current
9069         bit-size is different from the configured bit-size.
9070
9071 2012-03-09  Tristan Gingold  <gingold@adacore.com>
9072
9073         * config/vms/vms-crtlmap.map: Add comments.
9074         Add entries needed to build Ada RTS.
9075
9076 2012-03-09  Tristan Gingold  <gingold@adacore.com>
9077
9078         * ginclude/stddef.h: Do not define __size_t on VMS.
9079
9080 2012-03-09  Tristan Gingold  <gingold@adacore.com>
9081
9082         * c-tree.h (c_default_pointer_mode): New variable.
9083         * c-decl.c (c_default_pointer_mode): New variable.
9084         (c_build_pointer_type): New function.
9085         (grokdeclarator): Call c_build_pointer_type instead
9086         of build_pointer_type.
9087
9088         * config/vms/vms-c.c: Include c-tree.h
9089         (saved_pointer_mode): New variable.
9090         (handle_pragma_pointer_size): New function.
9091         (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
9092         (vms_c_register_pragma): Register __pointer_size and
9093         __required_pointer_size pragmas.
9094
9095 2012-03-09  Tristan Gingold  <gingold@adacore.com>
9096
9097         * config/vms/vms-c.c (vms_construct_include_filename): New function.
9098         (vms_c_register_includes): Reference it.
9099
9100 2012-03-09  Andrew Pinski  <apinski@cavium.com>
9101
9102         PR middle-end/51988
9103         * tree-ssa-phiopt.c: Include tree-pretty-print.h for
9104         print_generic_expr.
9105         (tree_ssa_phiopt_worker): Go through all the PHIs for
9106         value_replacement instead of just the singleton one.
9107         (value_replacement): Change return type to int.  Return 0 instead of
9108         false.
9109         Allow the middle basic block to contain more than just the defining
9110         statement.
9111         Handle non empty middle basic blocks.
9112         * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
9113
9114 2012-03-09  Jiangning Liu  <jiangning.liu@arm.com>
9115
9116         * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
9117         array reference and component reference.
9118         (analyze_scalar_evolution_for_address_of): New.
9119
9120 2012-03-08  Jie Zhang  <jzhang918@gmail.com>
9121
9122         PR target/49862
9123         * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
9124         (hwloop_pattern_reg): Fix set but not used warning.
9125         (bfin_reorg_loops): Remove unused parameter.
9126         (bfin_reorg): Update use of bfin_reorg_loops.
9127
9128 2012-03-08  H.J. Lu  <hongjiu.lu@intel.com>
9129
9130         * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
9131         with integer parameters in registers.
9132         (gen_push): Push register in word_mode instead of Pmode.
9133         (ix86_emit_save_regs): Likewise.
9134         (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
9135         (gen_pop): Pop register in word_mode instead of Pmode.
9136         (ix86_emit_restore_regs_using_pop): Likewise.
9137         (ix86_expand_prologue): Replace Pmode with word_mode for push
9138         immediate.  Use ix86_gen_pro_epilogue_adjust_stack.  Save and
9139         restore RAX and R10 in word_mode.
9140         (ix86_emit_restore_regs_using_mov): Restore integer registers
9141         in word_mode.
9142         (ix86_expand_split_stack_prologue): Save R10_REG and restore in
9143         word_mode.
9144         (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
9145         (ix86_split_long_move): Likewise.
9146
9147         * config/i386/i386.md (W): New.
9148         (*push<mode>2_prologue): Replace :P with :W.
9149         (*pop<mode>1): Likewise.
9150         (*pop<mode>1_epilogue): Likewise.
9151         (push/pop peephole2): Use word_mode scratch registers.
9152
9153 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
9154
9155         * config/i386/predicates.md (indirect_branch_operand): Simplify.
9156
9157 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
9158
9159         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
9160         for constants in [-63,63].
9161
9162 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
9163
9164         PR target/52530
9165         Revert:
9166         2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9167
9168         * config/i386/i386.c (ix86_print_operand_address): Only handle
9169         zero-extended DImode addresses.
9170
9171 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9172
9173         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
9174         * configure: Regenerate.
9175
9176 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
9177
9178         PR target/52496
9179         * config/avr/avr.c (avr_mem_clobber): New static function.
9180         (avr_expand_delay_cycles): Add memory clobber operand to
9181         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
9182         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
9183         (enable_interrupt, disable_interrupt): New expander.
9184         (nopv, sleep, wdr): New expanders.
9185         (delay_cycles_1): Add memory clobber.
9186         (delay_cycles_2): Add memory clobber.
9187         (delay_cycles_3): Add memory clobber.
9188         (delay_cycles_4): Add memory clobber.
9189         (cli_sei): New insn from former "enable_interrupt",
9190         "disable_interrupt" with memory clobber.
9191         (*wdt): New insn from former "wdt" with memory clobber.
9192         (*nopv): Similar, but for "nopv".
9193         (*sleep): Similar, but for "sleep".
9194
9195 2012-03-07  Oleg Endo  <olegendo@gcc.gnu.org>
9196             Kaz Kojima  <kkojima@gcc.gnu.org>
9197
9198         PR target/52503
9199         * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
9200         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
9201         (SUBTARGET_OVERRIDE_OPTIONS): Define.
9202
9203 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
9204
9205         * config/i386/predicates.md (x86_64_zext_general_operand): New.
9206         * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
9207         predicate to x86_64_zext_general_operand.  Accept "Z" constraint.
9208
9209 2012-03-07  Walter Lee  <walt@tilera.com>
9210
9211         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
9212         REG_CFA_* notes for the stack pointer.
9213         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
9214         EH_RETURN_STACKADJ_RTX.
9215         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
9216         generate REG_CFA_* notes for the stack pointer.
9217         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
9218         by EH_RETURN_STACKADJ_RTX.
9219
9220 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
9221
9222         * doc/invoke.texi (AVR Built-in Macros): Correct condition for
9223         when __AVR_3_BYTE_PC__ is defined.
9224
9225 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
9226
9227         * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
9228         (ix86_print_operand): Handle '^'.
9229         * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
9230         using P mode iterator.  Add %^ to asm template to conditionally emit
9231         addr32 prefix.
9232         (*rep_movdi_rex64): Ditto.
9233         (*strsetdi_rex_1): Ditto.
9234         (*rep_stosdi_rex64): Ditto.
9235         (*strmov{si,hi,qi}_1): Add %^ to asm template to
9236         conditionally emit addr32 prefix.
9237         (*rep_mov{si,qi}): Ditto.
9238         (*strset{si,hi,qi}): Ditto.
9239         (*rep_stos{si,qi}): Ditto.
9240         (*cmpstrnqi_nz_1): Ditto.
9241         (*cmpstrnqi_1): Ditto.
9242         (*strlenqi_1): Ditto.
9243
9244 2012-03-07  H.J. Lu  <hongjiu.lu@intel.com>
9245
9246         * config/i386/i386.c (function_value_64): Return pointers in
9247         word_mode instead of Pmode.
9248         (ix86_promote_function_mode): Likewise.
9249
9250 2012-03-07  Richard Guenther  <rguenther@suse.de>
9251
9252         * coverage.c (get_gcov_type): Use type_for_mode.
9253         (get_gcov_unsigned_t): Likewise.
9254         * expr.c (store_constructor): Use type_for_mode.
9255         (try_casesi): Likewise.
9256         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
9257         (add_standard_iv_candidates): Use standard type trees.
9258         * dojump.c (do_jump): Remove dead code.
9259
9260 2012-03-07  Richard Guenther  <rguenther@suse.de>
9261
9262         * c-typeck.c (pointer_diff): Use c_common_type_for_size.
9263
9264 2012-03-07  Richard Guenther  <rguenther@suse.de>
9265
9266         * convert.c (strip_float_extensions): Move ...
9267         * tree.c (strip_float_extensions): ... here.
9268
9269 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
9270
9271         PR target/52484
9272         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
9273
9274 2012-03-07  Richard Guenther  <rguenther@suse.de>
9275
9276         * omp-low.c (extract_omp_for_data): Use signed_type_for.
9277         (expand_omp_for_generic): Likewise.
9278         (expand_omp_for_static_nochunk): Likewise.
9279         (expand_omp_for_static_chunk): Likewise.
9280         * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
9281         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
9282         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
9283         Use unsigned_type_for.
9284         (vect_create_cond_for_align_checks): Use signed_type_for.
9285
9286 2012-03-07  Andrey Belevantsev  <abel@ispras.ru>
9287
9288         PR rtl-optimization/52203
9289         * sel-sched.c (estimate_insn_cost): New parameter pempty.  Adjust
9290         all callers to pass NULL except ...
9291         (reset_sched_cycles_in_current_ebb): ... here, save the value
9292         in new variable 'empty'.  Increase issue_rate only for
9293         non-empty insns.
9294
9295 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
9296
9297         PR target/51417
9298         * Makefile.in: Let install-gcc-ar depend on installdirs,
9299         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
9300         Don't double canonicalize if cross-compiling.
9301
9302 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
9303
9304         PR target/52506
9305         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
9306         to: RAMPZ, RAMPY, RAMPX, RAMPD.
9307         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
9308
9309 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
9310
9311         PR target/52505
9312         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
9313         from RAM.
9314         * config/avr/avr.md (xload_8): Adjust insn length.
9315
9316 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
9317
9318         PR target/52461
9319         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
9320         if RAMPZ affects reading from RAM.
9321
9322 2012-03-07  Richard Guenther  <rguenther@suse.de>
9323
9324         PR pch/52518
9325         PR pch/38987
9326         * doc/invoke.texi (Precompiled Headers): Remove sentence that
9327         suggests you can include PCHs from inside another header.
9328
9329 2012-03-07  Richard Sandiford  <rdsandiford@googlemail.com>
9330
9331         PR middle-end/52515
9332         * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
9333
9334 2012-03-07  Kai Tietz  <ktietz@redhat.com>
9335
9336         * doc/invoke.texi (fwritable-relocated-rdata): Document
9337         new Cygwin/MinGW target option.
9338         * config/i386/winnt.c (i386_pe_unique_section): Ignore
9339         reloc if flag -fwritable-relocated-rdata is not set.
9340         (i386_pe_section_type_flags): Likewise.
9341         * config/i386/cygming.opt (fwritable-relocated-rdata):
9342         Add new flag variable flag_writable_rel_rdata.
9343
9344 2012-03-07  Richard Guenther  <rguenther@suse.de>
9345
9346         * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
9347         precision against gimple constraints.
9348
9349 2012-03-06  Richard Sandiford  <rdsandiford@googlemail.com>
9350
9351         PR middle-end/52372
9352         * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
9353         variables.
9354         (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
9355         * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
9356         variables.
9357         (init_emit_regs): Move associated initialization to...
9358         (init_emit_once): ...here.
9359
9360 2012-03-06  Richard Henderson  <rth@redhat.com>
9361
9362         * config/m68k/m68k.h (ISA_HAS_TAS): New.
9363         * config/m68k/sync.md (atomic_test_and_set): Use it.
9364         (atomic_test_and_set_1): Likewise.
9365
9366 2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
9367
9368         PR target/50310
9369         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
9370         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
9371         (vector_ltgt<mode>): Likewise.
9372         (vector_ordered<mode>): Likewise.
9373         (vector_unordered<mode>): Likewise.
9374         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
9375
9376 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
9377
9378         * trans-mem.c: New typedef for tm_region_p.
9379         Define vector types for tm_region_p.
9380         (tm_region_init): Replace region_worklist to a vector called
9381         bb_regions.
9382
9383 2012-03-06  Richard Guenther  <rguenther@suse.de>
9384
9385         * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
9386         MEM_REF with constant pointer operand.
9387
9388 2012-03-06  Richard Guenther  <rguenther@suse.de>
9389
9390         PR middle-end/52493
9391         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
9392
9393 2012-03-06  Tristan Gingold  <gingold@adacore.com>
9394
9395         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
9396         (external_model_kind): Improve documentation.
9397         (vms_pragma_extern_model): Handle relaxed_redef.
9398         (vms_c_register_pragma): Allow expansion for nomember_alignment.
9399
9400 2012-03-06  Georg-Johann Lay  <avr@gjlay.de>
9401
9402         * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
9403         Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
9404         Some more notes on EIND usage and reorder EIND subsection.
9405
9406 2012-03-06  Tristan Gingold  <gingold@adacore.com>
9407
9408         * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
9409         * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
9410
9411 2012-03-06  Tristan Gingold  <gingold@adacore.com>
9412
9413         * config/vms/t-vmsnative (version): Define.
9414         * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
9415
9416 2012-03-06  Andrey Belevantsev  <abel@ispras.ru>
9417
9418         PR rtl-optimization/52250
9419         * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
9420         to put note list into.  Unconditionally call move_bb_info.
9421         (move_bb_info): Do not assert the blocks being in the same region,
9422         just drop the note list if they are not.
9423
9424 2012-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
9425
9426         PR target/51244
9427         * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
9428         and use unified expansion logic.
9429         * config/sh/sh.md (xorsi3_movrt): Rename to movrt.  Move
9430         closer to the existing movt insn.
9431         (negc): Rename insn to *negc.  Add new expander.
9432         (movnegt): Use xor pattern for T bit negation.  Reserve helper
9433         constant for negc pattern.
9434         (*movnegt): New insn and splitter.
9435
9436 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
9437
9438         * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
9439         PLUS_EXPR.
9440
9441 2012-03-05  Richard Henderson  <rth@redhat.com>
9442
9443         * genemit.c (main): Include "target.h" in insn-emit.c.
9444         * Makefile.in (insn-emit.o): Depend on TARGET_H.
9445         * config/sh/sync.md (atomic_test_and_set): Reference
9446         targetm.atomic_test_and_set_trueval instead of
9447         TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
9448
9449 2012-03-05  Joern Rennecke  <joern.rennecke@embecosm.com>
9450
9451         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
9452         Make static.
9453
9454 2012-03-05  Steven Bosscher  <steven@gcc.gnu.org>
9455
9456         * langhooks.c (add_builtin_type): New function.
9457         * langhooks.h (add_builtin_type): Export it.
9458         * config/mep/mep.c (mep_init_builtins): Use it.
9459         * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
9460
9461 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
9462
9463         PR debug/51902
9464         * tree.h (BLOCK_SAME_RANGE): Define.
9465         * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
9466         if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
9467         Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
9468         isn't equal to supercontext fragment's fragment chain.
9469         Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
9470         fragment origin.
9471         (blocks_nreverse_all): Likewise.
9472         (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits.  Set
9473         BLOCK_SUPERCONTEXT to supercontext fragment instead of
9474         supercontext fragment's fragment origin.
9475         * dwarf2out.c (add_high_low_attributes): If stmt has the same
9476         range as its parent (or parents thereof etc.), use the parent's
9477         DW_AT_ranges value instead of creating a new .debug_ranges range.
9478
9479 2012-03-05  Richard Henderson  <rth@redhat.com>
9480
9481         PR tree-opt/52242
9482         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
9483         * omp-low.c (expand_omp_atomic): Assume anything aligned to
9484         BIGGEST_ALIGNMENT is aligned.
9485
9486 2012-03-05  Richard Henderson  <rth@redhat.com>
9487
9488         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
9489         * config/sh/sh.c: ... here.
9490
9491 2012-03-05  Richard Henderson  <rth@redhat.com>
9492
9493         PR target/52481
9494         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
9495         instead of calling negqi2 directly.
9496
9497 2012-03-05  Aldy Hernandez  <aldyh@redhat.com>
9498
9499         PR middle-end/52463
9500         * trans-mem.c (tm_region_init): Use last_basic_block.
9501
9502 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
9503
9504         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
9505         * config/sh/sync.md (atomic_test_and_set): New expander.
9506         (tasb, atomic_test_and_set_soft): New insns.
9507         * config/sh/sh.opt (menable-tas): New option.
9508         * doc/invoke.texi (SH Options): Document it.
9509
9510 2012-03-05  Richard Guenther  <rguenther@suse.de>
9511
9512         * cfgloop.c (verify_loop_structure): Verify dominators before
9513         using them.
9514         * graphite-clast-to-gimple.c (graphite_verify): Do not verify
9515         dominators from here.
9516         * graphite-scop-detection.c (create_sese_edges): Likewise.
9517         * loop-doloop.c (doloop_optimize_loops): Likewise.
9518         * loop-init.c (loop_optimizer_init): Likewise.
9519         * loop-unroll.c (unroll_and_peel_loops): Likewise.
9520         * loop-unswitch.c (unswitch_loops): Likewise.
9521         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
9522         * tree-parloops.c (parallelize_loops): Likewise.  Verify
9523         only when checking is enabled.
9524         * tree-loop-distribution.c (tree_loop_distribution): Likewise.
9525
9526 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
9527
9528         * genautomata.c (parse_automata_opt): New static function.
9529         (initiate_automaton_gen): Remove all option handling code.  Remove
9530         argc argument.  All callers changed.
9531         (main): Call init_rtx_reader_args_cb with the new function as argument.
9532
9533 2012-03-05  Richard Guenther  <rguenther@suse.de>
9534
9535         * cfgexpand.c (gimple_expand_cfg): Free dominator info.
9536         * tree-if-conv.c (combine_blocks): Free post-dominator info
9537         after breaking it.
9538         * tree-parloops.c (create_parallel_loop): Free and re-compute
9539         dominator info after breaking it.
9540
9541 2012-03-05  Richard Guenther  <rguenther@suse.de>
9542
9543         PR middle-end/52353
9544         * optabs.h (trapv_unoptab_p): New function.
9545         (trapv_binoptab_p): Likewise.
9546         * optabs.c (expand_binop): Use emit_libcall_block_1 with
9547         a proper equiv_may_trap argument.
9548         (expand_unop): Likewise.
9549         (emit_libcall_block_1): Take extra argument whether the
9550         instruction may trap.  Renamed from ...
9551         (emit_libcall_block): ... this.  New wrapper.
9552
9553 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
9554
9555         PR tree-optimization/51721
9556         * tree-vrp.c (register_edge_assert_for_2): If comparing
9557         lhs of right shift by constant with an integer constant,
9558         add ASSERT_EXPRs for the rhs1 of the right shift.
9559
9560         * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
9561
9562 2012-03-05  Richard Guenther  <rguenther@suse.de>
9563
9564         * tree.c (integer_zerop): Handle VECTOR_CSTs.
9565         (integer_onep): Likewise.
9566         (integer_all_onesp): Likewise.
9567
9568 2012-03-05  Georg-Johann Lay  <avr@gjlay.de>
9569
9570         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
9571
9572 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9573
9574         * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
9575         instead of TARGET_64BIT.
9576
9577 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9578
9579         * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
9580         adjust_stack_insn.
9581
9582 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9583
9584         * config/i386/i386.c (ix86_print_operand_address): Only handle
9585         zero-extended DImode addresses.
9586
9587 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
9588
9589         * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
9590         taken and cputaken as bool.
9591
9592 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
9593
9594         * config/i386/constraints.md (Ya): New internal constraint.
9595         * config/i386/i386.md (zero_extendsidi2): Remove expansion.
9596         (*zero_extendsidi2_rex64): Add x,x alternative.
9597         (*zero_extendsidi2): Ditto.  Add o,0 alternative.
9598         Remove flags reg clobber.  Adjust corresponding splits.
9599         (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
9600         zero_extendqisi2 expanders using SWI12 mode iterator.
9601         (zero_extend<mode>si2_and): Macroize insn from
9602         zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
9603         splitters.
9604         (*zero_extend<mode>si2):  Macroize insn from
9605         *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
9606         (*zero_extend*2_movzbl_and): Remove insn patterns.
9607         (zero_extendqihi2_and): Merge corresponding splitter.
9608         (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
9609         (*zero_extend*2_movzbl_and): Remove insn patterns.
9610         (*anddi_1): Split TYPE_IMOVX instructions.
9611         (*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
9612         (*andhi_1): Ditto.
9613         (and->zext splitter): Add splitter pattern.
9614         (zero extend with andsi3 splitter): Adjust zero_extend pattern.
9615
9616 2012-03-04  Sandra Loosemore  <sandra@codesourcery.com>
9617
9618         * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
9619         x86-specific text.
9620         (Debugging Options): Likewise.
9621         (Optimize Options): Likewise.
9622         (i386 and x86-64 Options): Discuss -march before -mtune, consistently
9623         with other architectures.  Use official processor names with correct
9624         spelling/capitalization.  Fix formatting and grammar issues.
9625         (i386 and x86-64 Windows Options): Similar cleanup here.
9626
9627 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
9628
9629         * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
9630
9631 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
9632
9633         * config/sh/sh.c (sh_dwarf_register_span): Don't apply
9634         DBX_REGISTER_NUMBER.
9635
9636 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
9637
9638         * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
9639         operand is CONST_INT.  Take COSTS_N_INSNS into account.
9640         (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
9641         of shiftcosts.
9642
9643 2012-03-02  Richard Henderson  <rth@redhat.com>
9644
9645         * optabs.c (expand_atomic_test_and_set): Honor
9646         atomic_test_and_set_trueval even when atomic_test_and_set
9647         optab is not in use.
9648
9649 2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
9650
9651         PR target/48596
9652         PR target/48806
9653         * config/sh/sh.c (sh_register_move_cost): Increase cost between
9654         GENERAL_REGS and FP_REGS for SImode.
9655
9656 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
9657
9658         PR target/49486
9659         * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
9660         (absdi2): New expander.
9661         (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
9662
9663 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
9664
9665         * config/sh/sync.md (atomic_exchange<mode>): New expander.
9666         (atomic_exchange<mode>_soft): New insn.
9667
9668 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
9669
9670         * config/sh/sync.md: Update copyright notice dates.
9671         (atomic_compare_and_swap<mode>): Use SImode for return value instead
9672         of QImode.
9673         (atomic_compare_and_swap<mode>_soft): Likewise.
9674
9675 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
9676
9677         PR target/31640
9678         * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
9679         * config/sh/sh.c: Update copyright notice dates.
9680         (sh_loop_align): Add logic from LOOP_ALIGN.  Don't disable loop
9681         alignment for TARGET_HARD_SH4.
9682         (sh_option_override): Reduce default function alignment.  Set
9683         loop alignment to 4 bytes when not optimizing for size.
9684
9685 2012-03-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
9686
9687         PR middle-end/50335
9688         * doc/invoke.texi (floop-flatten): Remove.
9689         * toplev.c (process_options): Remove references to flag_loop_flatten.
9690         * tree-ssa-loop.c (gate_graphite_transform): Same.
9691         * common.opt (floop-flatten): Obsolete.
9692         * graphite-poly.c (apply_poly_transforms): Remove reference to
9693         flag_loop_flatten.
9694         * Makefile.in (graphite-flattening.o): Remove.
9695         * graphite-flattening.c: Remove.
9696
9697 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
9698
9699         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
9700         having mode compatible with the mode of previous compare.  Substitute
9701         compare mode of previous compare with the mode, compatible
9702         with eliminated and previous compare.
9703
9704 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
9705
9706         * config/rs6000/dfp.md (floatdidd2): New define_insn.
9707
9708 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
9709
9710         * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
9711         compatible with CCGOCmode and CCGCmode.
9712
9713 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
9714
9715         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
9716
9717 2012-03-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
9718
9719         * config/arm/arm.c (arm_sat_operator_match): New function.
9720         * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
9721         * config/arm/arm.md ("insn" attribute): Add "sat" value.
9722         ("SAT", "SATrev"): New code iterators.
9723         ("SATlo", "SAThi"): New code iterator attributes.
9724         ("*satsi_<SAT:code>"): New pattern.
9725         ("*satsi_<SAT:code>_shift"): Likewise.
9726         * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
9727         and "shift" attributes.
9728         ("arm_usatsihi"): Add "insn" attribute.
9729         * config/arm/predicates.md (sat_shift_operator): Allow multiplication
9730         by powers of two.  Do not allow shift by 32.
9731
9732 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
9733
9734         PR target/46716
9735         * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
9736         to pass the argument in the register of "natural" mode.
9737
9738 2012-03-02  Richard Guenther  <rguenther@suse.de>
9739
9740         PR tree-optimization/52406
9741         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
9742         (struct indices): Add unconstrained_base member.
9743         (struct dr_alias): Remove unused vops member.
9744         (DR_UNCONSTRAINED_BASE): New define.
9745         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
9746         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
9747         be an artificial access that covers the whole indexed object,
9748         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
9749         plain decl base-objects to their MEM_REF variant.
9750         (dr_may_alias_p): When the base-object of either data reference
9751         has unknown size use only points-to information.
9752         (compute_affine_dependence): Make dumps easier to read and
9753         more verbose.
9754         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
9755         DR_REF when looking for packed references.
9756         (vect_supportable_dr_alignment): Likewise.
9757
9758 2012-03-02  Greta Yorsh  <Greta.Yorsh@arm.com>
9759
9760         * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
9761         Improve conditions for peepholes of loads followed by commutative
9762         operators.
9763         * config/arm/ldmstm.md: Regenerated.
9764
9765 2012-03-02  Richard Guenther  <rguenther@suse.de>
9766
9767         * BASE-VER: Set to 4.8.0.
9768
9769 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
9770
9771         * config.gcc (obsolete): Add all ARM targets using the FPA.
9772         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
9773         * doc/install.texi: Avoid references to obsolete ARM ports.
9774
9775 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
9776
9777         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
9778
9779 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
9780             Joern Rennecke  <joern.rennecke@embecosm.com>
9781
9782         * doc/extend.texi: Expand and update information on interrupt
9783         attribute for Epiphany.
9784
9785 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
9786
9787         * config/sh/sh-protos.h: Update copyright notice dates.
9788         * config/sh/sh.h: Likewise.
9789         * config/sh/sh.md: Likewise.
9790         * config/sh/constraints.md: Likewise.
9791         * config/sh/predicates.md: Likewise.
9792
9793 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
9794
9795         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
9796         * config/sh/sh.c (tertiary_reload_operand): Likewise.
9797
9798 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
9799
9800         * config/sh/constraints.md: Fix comment typo.
9801
9802 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9803
9804         PR target/52408
9805         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
9806         unsigned HOST_WIDE_INT.
9807         (zvdep_imm64): Likewise.
9808         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
9809         (vdepi_and): Likewise.
9810         Likewise for unamed 64-bit patterns.
9811         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
9812
9813 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
9814
9815         PR debug/52001
9816         PR rtl-optimization/52417
9817         * cselib.c (cselib_any_perm_equivs): New variable.
9818         (cselib_reset_table): Check that it's not set when not
9819         preserving constants.
9820         (cselib_add_permanent_equiv): Set it.
9821         (cselib_have_permanent_equivalences): New.
9822         (cselib_init, cselib_finish): Reset it.
9823         * cselib.h (cselib_have_permanent_equivalences): Declare.
9824         * alias.c (get_addr): Restore earlier behavior when there
9825         aren't permanent equivalences.
9826
9827 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
9828
9829         * config/mn10300/mn10300-modes.def: Fix copyright notice.
9830         * config/v850/v850-modes.def: Fix copyright notice.
9831
9832 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
9833
9834         * doc/extend.texi (AVR Built-in Functions): Document
9835         __builtin_avr_flash_segment.
9836
9837         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
9838         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
9839         (*split.flash_segment): New insn-and-split.
9840         * config/avr/avr.c (avr_init_builtins): Add local variables:
9841         const_memx_void_node, const_memx_ptr_type_node,
9842         char_ftype_const_memx_ptr.
9843
9844 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
9845
9846         PR tree-optimization/52445
9847         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
9848         add ssa_name_ver, offset and size fields and change store field
9849         to bool.
9850         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
9851         (add_or_mark_expr): Likewise.  Only consider previous stores
9852         with the same size and offset.
9853         (nt_init_block): Only look at gimple_assign_single_p stmts,
9854         doesn't look at rhs2.
9855
9856 2012-03-01  Richard Guenther  <rguenther@suse.de>
9857
9858         PR middle-end/52443
9859         * tree-cfg.c (verify_gimple_assign_unary): Allow any
9860         conversions from integral types to pointer types.
9861
9862 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
9863
9864         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
9865         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
9866         unintentionally removed in r184616.
9867
9868 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9869
9870         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
9871         3DNow from bdver1.
9872
9873 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
9874             Uros Bizjak  <ubizjak@gmail.com>
9875
9876         PR target/52437
9877         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
9878         alternatives, add "e" constraint to the new last alternative
9879         and ! to last 3 alternatives.
9880
9881 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
9882
9883         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
9884         DW_AT_artificial attributes at the end of the processing.
9885         (gen_array_type_die): Likewise.
9886         (gen_enumeration_type_die): Likewise.
9887         (gen_struct_or_union_type_die): Likewise.
9888         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
9889         the parent type.
9890
9891 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
9892
9893         PR middle-end/52419
9894         * expr.c (expand_assignment): If doing misaligned store that doesn't
9895         cover all mode bits, perform a RMW cycle.
9896
9897         PR tree-optimization/52429
9898         * tree-parloops.c (separate_decls_in_region_debug): Return early
9899         if var is LABEL_DECL.
9900
9901 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9902
9903         PR tree-optimization/52424
9904         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
9905         calling dom_thread_across_edge.
9906
9907 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
9908
9909         * config/avr/avr.c: Move definition of TARGET macros to end of file.
9910
9911 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
9912
9913         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
9914         * config/avr/avr.c (avr_output_bld): Remove unused function.
9915         (avr_out_sbxx_branch): Use "%T" to print bit position.
9916
9917 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
9918
9919         * config/avr/avr.md: Untabify.
9920
9921 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
9922
9923         * config/avr/avr.md (eqne): New code iterator.
9924         (*dec-and-branchsi): Use it in text peephole's condition.
9925         (*dec-and-branchhi): Ditto.
9926         (*dec-and-branchqi): Ditto.
9927
9928 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
9929
9930         PR target/49939
9931         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
9932         the device does not have the skip-bug.
9933
9934 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
9935
9936         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
9937         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
9938         -mpretend-cmove): New.
9939
9940 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
9941
9942         PR bootstrap/52397
9943         * df.h (struct df_d): Adjust comment that hard_regs_live_count
9944         doesn't count DEBUG_INSN refs.
9945         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
9946         for DEBUG_INSN refs.
9947
9948 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9949
9950         Partially revert:
9951
9952         2012-02-20  Richard Guenther  <rguenther@suse.de>
9953         PR tree-optimization/52298
9954         * tree-vect-stmts.c (vectorizable_load): Properly use
9955         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
9956
9957 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
9958
9959         PR middle-end/51752
9960         * gimple.h (gimple_in_transaction): New.
9961         (gimple_set_in_transaction): New.
9962         (struct gimple_statement_base): Add in_transaction field.
9963         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
9964         transaction loads.
9965         (tree_ssa_lim_initialize): Compute transaction bits.
9966         * tree.h (compute_transaction_bits): Protoize.
9967         * trans-mem.c (tm_region_init): Use the heap to store BB
9968         auxilliary data.
9969         (compute_transaction_bits): New.
9970
9971 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9972
9973         * gcc.c (display_help): Document --help=common and sort entries
9974         alphabetically.
9975
9976 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9977
9978         * doc/install.texi: Document check-$LANG specific shortcuts
9979
9980 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
9981
9982         PR target/51534
9983         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
9984         and vcgtu.
9985         * config/arm/arm_neon.h: Regenerate.
9986         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
9987         (neon_vcgeu): New insn.
9988         (neon_vcgtu): Likewise.
9989         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
9990         (ops): Unsigned comparison intrinsics call a different builtin.
9991
9992 2012-02-28  Richard Guenther  <rguenther@suse.de>
9993
9994         PR target/52407
9995         * config/i386/i386.c (ix86_expand_vector_set): Fix element
9996         ordering for the VEC_CONCAT for two element vectors for
9997         V2SFmode, V2SImode and V2DImode.
9998
9999 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
10000
10001         PR target/49448
10002         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
10003         detecting big-endian triplets.
10004
10005 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
10006
10007         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
10008         mode if there is no type information available.
10009
10010 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
10011
10012         PR tree-optimization/53207
10013         * doc/invoke.texi: Document as experimental and relying on graphite.
10014
10015 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
10016
10017         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
10018         of initializer to changes from r184614.
10019
10020 2012-02-28  Richard Guenther  <rguenther@suse.de>
10021
10022         PR tree-optimization/52395
10023         * tree-sra.c (build_ref_for_offset): Also look at the base
10024         TYPE_ALIGN when figuring out the alignment of the replacement.
10025
10026 2012-02-28  Richard Guenther  <rguenther@suse.de>
10027
10028         PR tree-optimization/52402
10029         * ipa-prop.c (ipa_modify_call_arguments): Properly use
10030         mis-aligned types when creating the accesses at the call site.
10031
10032 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
10033
10034         * config/avr/builtins.def: New file.
10035         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
10036         * config/avr/avr.c (enum avr_builtin_id): Use it.
10037         (avr_init_builtins): Use it. And use avr_bdesc.
10038         (bdesc_1arg): Remove.
10039         (bdesc_2arg): Remove.
10040         (bdesc_3arg): Remove.
10041         (struct avr_builtin_description): Add field n_args.
10042         (avr_bdesc): New static variable using builtins.def.
10043         (avr_expand_builtin): Use it.
10044         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
10045         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
10046         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
10047
10048 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
10049
10050         PR target/52148
10051         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
10052         match only one single hard register with respective hard reg rtx.
10053         (movmemx_<mode>): Ditto.
10054         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
10055         insn anatomy of movmem[x]_<mode>.
10056         (avr_out_movmem): Same for printing assembler and operand usage.
10057
10058 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
10059
10060         PR target/49868
10061         PR target/52261
10062         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
10063         address spaces located outside of device flash.
10064
10065         * config/avr/avr.h (base_arch_s): Remove field n_segments.
10066         (mcu_type_s): Add field n_flash.
10067         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
10068         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
10069         (AVR_MCU): Add N_FLASH argument.
10070         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
10071         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
10072         macro __FLASH<n> if that address space makes sense for the device.
10073         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
10074         outside of target flash.
10075         (avr_asm_named_section): Ditto.
10076         (avr_asm_select_section): Ditto.
10077         (avr_addr_space_convert): Ditto.
10078         (avr_emit_movmemhi): Ditto.
10079         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
10080         address space is outside of device flash.
10081         (avr_insert_attributes): Ditto.
10082         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
10083         avr_current_arch->n_segments.
10084
10085 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10086
10087         PR target/52352
10088         * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
10089         (*movabs<mode>_2): Likewise.
10090
10091 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
10092
10093         PR target/52375
10094         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
10095         s_register_operand in the test instead of REG_P.  Don't call
10096         gen_reg_rtx if it won't be used.
10097
10098         PR tree-optimization/52376
10099         * ipa-split.c (split_function): Ignore CLOBBER stmts.
10100
10101 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
10102
10103         * ifcvt.c (noce_get_condition): Check condition variable is not
10104         small_register_classes_for_mode_p before accepting.
10105
10106 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
10107
10108         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
10109
10110 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
10111
10112         Revert:
10113         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
10114         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
10115         tuning parameters.
10116         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
10117
10118 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
10119
10120         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
10121
10122 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
10123
10124         * config/sh/predicates.md: Remove blank lines.
10125         * config/sh/sh.c: Fix typos in comments.
10126         * config/sh/constraints.md: Likewise.
10127         * config/sh/sh.md: Remove blank lines.
10128         Fix typos in comments.  Use ;; as comment characters.
10129
10130 2012-02-26  Walter Lee  <walt@tilera.com>
10131
10132         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
10133         (replace_mov_pcrel_step2): Ditto.
10134
10135 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
10136
10137         PR debug/52001
10138         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
10139         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
10140         and locs that reference values newer than the non-canonical value
10141         at hand.  Return the canonical value as a worst case.
10142         (memrefs_conflict_p): Walk canonical value's locs.
10143
10144         PR debug/52001
10145         * cselib.c (preserve_only_constants): Rename to...
10146         (preserve_constants_and_equivs): ... this.  Split out...
10147         (invariant_or_equiv_p): ... this.  Preserve plus expressions
10148         of other preserved expressions too.
10149         (cselib_reset_table): Adjust.
10150         * var-tracking.c (reverse_op): Use canonical value to build
10151         reverse operation.
10152
10153 2012-02-23  Kai Tietz  <ktietz@redhat.com>
10154
10155         * config/i386/i386.c (ix86_delegitimize_address): Handle
10156         UNSPEC_PCREL plus displacement.
10157
10158 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
10159
10160         PR target/52261
10161         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
10162         to test for unusedness in st X addressing.
10163
10164 2012-02-24  Richard Guenther  <rguenther@suse.de>
10165
10166         PR middle-end/52361
10167         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
10168         (is_gimple_reg_type): Move inline ...
10169         * gimple.h (is_gimple_reg_type): ... here.
10170
10171 2012-02-24  Richard Guenther  <rguenther@suse.de>
10172
10173         PR middle-end/52361
10174         * passes.c (execute_function_todo): When verifying SSA form
10175         verify gimple form first.
10176         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
10177
10178 2012-02-24  Richard Guenther  <rguenther@suse.de>
10179
10180         PR middle-end/52355
10181         * fold-const.c (fold_addr_of_array_ref_difference): New function.
10182         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
10183
10184 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10185
10186         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
10187
10188 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10189
10190         * tree-phinodes.c (make_phi_node): Mark static.
10191         * tree-flow.h (make_phi_node): Remove extern decl.
10192         * doc/gimple.texi (make_phi_node): Remove documentation.
10193
10194 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10195
10196         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
10197         * tree-ssa-sccvn.c (print_scc): Ditto.
10198
10199 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10200
10201         * doc/passes.texi (Full redundancy elimination): Fix typo.
10202
10203 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10204
10205         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
10206
10207 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
10208
10209         PR bootstrap/52287
10210         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
10211
10212 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
10213
10214         PR c/52290
10215         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
10216
10217 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
10218
10219         * config/avr/avr.md (code_stdname): Add ior, xor.
10220         (xior): New code iterator.
10221         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
10222         (*<code_stdname><mode>qi.byte1-3): Ditto.
10223
10224 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
10225
10226         PR tree-optimization/52019
10227         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
10228         CLOBBER stmts.
10229
10230 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10231
10232         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
10233         HAVE_INITFINI_ARRAY to work around namespace pollution in
10234         certain versions of newlib system headers.
10235         * config.in: Regenerate.
10236         * configure: Regenerate.
10237         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
10238         instead of HAVE_INITFINI_ARRAY.
10239
10240 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
10241
10242         PR target/52330
10243         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
10244         is not offsettable memory reference.
10245
10246 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
10247
10248         PR target/18145
10249         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
10250         setting avr_need_clear_bss_p for __gnu_lto* symbols.
10251
10252 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
10253
10254         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
10255         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
10256
10257 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10258
10259         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
10260         library on Solaris 8 even without TLS support.
10261         * configure: Regenerate.
10262
10263 2012-02-22  Richard Guenther  <rguenther@suse.de>
10264
10265         PR middle-end/52329
10266         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
10267         for GIMPLE_DEBUG stmts.
10268
10269 2012-02-22  Martin Jambor  <mjambor@suse.cz>
10270
10271         PR middle-end/51782
10272         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
10273         according to the base object.
10274
10275 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
10276
10277         PR rtl-optimization/50063
10278         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
10279         and 2 (8-bit SP) in operand 2.
10280         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
10281         setup to use movhi_sp_r instead of vanilla move to write SP.
10282         Adjust REG_CFA notes to superseed unspec.
10283         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
10284         of vanilla move.
10285         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
10286         known to be off) only with TARGET_NO_INTERRUPTS. Never use
10287         irq_state 1 (IRQ known to be on) here.
10288
10289 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
10290
10291         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
10292         WORDS_BIG_ENDIAN.
10293         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
10294         assign_hard_reg): Likewise.
10295
10296 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
10297
10298         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
10299
10300 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
10301
10302         * config/avr/avr.md
10303         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
10304         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
10305
10306 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
10307
10308         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
10309         prototype from here to...
10310         * config/avr/avr.h: ...here.
10311
10312 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
10313
10314         PR target/52294
10315         * thumb2.md (thumb2_shiftsi3_short): Split register and
10316         immediate shifts.  For register shifts tie operands 0 and 1.
10317         (peephole2 for above): Check that register-controlled shifts
10318         have suitably tied operands.
10319
10320 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
10321
10322         PR target/52137
10323         * config/i386/bdver1.md (bdver1_call, bdver1_push,
10324         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
10325         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
10326         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
10327         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
10328         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
10329         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
10330         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
10331         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
10332         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
10333         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
10334         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
10335         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
10336         bdver1_ssevector_avx256_unaligned_load,
10337         bdver1_ssevector_sse128_unaligned_load,
10338         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
10339         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
10340         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
10341         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
10342         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
10343         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
10344         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
10345         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
10346         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
10347         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
10348         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
10349         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
10350         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
10351         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
10352         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
10353         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
10354         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
10355         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
10356         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
10357         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
10358         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
10359         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
10360         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
10361         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
10362         bdver1_ssediv_double_load, bdver1_ssediv_double,
10363         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
10364         Add "bdver2" attribute.
10365
10366 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10367
10368         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
10369         default if possible and not specified otherwise.
10370
10371 2012-02-21  Richard Guenther  <rguenther@suse.de>
10372
10373         PR middle-end/52314
10374         * gimplify.c (create_tmp_from_val): Use the main variant type
10375         for the type of the temporary we create.
10376
10377 2012-02-21  Richard Guenther  <rguenther@suse.de>
10378
10379         PR tree-optimization/52324
10380         * gimplify.c (gimplify_expr): When re-gimplifying expressions
10381         do not gimplify a MEM_REF address operand if it is already
10382         in suitable form.
10383
10384 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10385
10386         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
10387         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
10388
10389 2012-02-21  Richard Guenther  <rguenther@suse.de>
10390
10391         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
10392         nested_in_vect_loop.
10393
10394 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
10395
10396         PR tree-optimization/52318
10397         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
10398         vdef also to non-pure/const call stmts in the sequence.
10399
10400 2012-02-21  Tristan Gingold  <gingold@adacore.com>
10401
10402         * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
10403
10404 2012-02-20  David S. Miller  <davem@davemloft.net>
10405
10406         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
10407         don't use the "rd %pc" instruction on v9 for PIC register loads.
10408
10409 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
10410
10411         PR middle-end/52141
10412         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
10413         in a transaction safe function.
10414
10415 2012-02-20  Kai Tietz  <ktietz@redhat.com>
10416
10417         PR target/52238
10418         * stor-layout.c (place_field): Handle desired_align for
10419         ms-bitfields, too.
10420
10421 2012-02-20  Richard Guenther  <rguenther@suse.de>
10422
10423         PR tree-optimization/52298
10424         * tree-vect-stmts.c (vectorizable_store): Properly use
10425         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
10426         outer loops.
10427         (vectorizable_load): Likewise.
10428         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10429         Access DR_STEP after ensuring it is not NULL.
10430
10431 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
10432
10433         PR tree-optimization/52286
10434         * fold-const.c (fold_binary_loc): For (X & C1) | C2
10435         optimization use double_int_to_tree instead of build_int_cst_wide,
10436         rewrite to use double_int vars.
10437
10438 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10439
10440         PR target/50166
10441         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
10442         Define _start.
10443         Remove -e 0 from $gcc_cv_ld invocation.
10444         Only use __GLIBC_PREREQ if defined.
10445         Enable on Solaris since Solaris 8 patch.
10446         (gcc_SUN_LD_VERSION): New macro.
10447         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
10448         gcc_SUN_LD_VERSION for version number format.
10449         * configure: Regenerate.
10450         * varasm.c (get_elf_initfini_array_priority_section): Set
10451         SECTION_NOTYPE for non-default priority.
10452         Use get_section instead of get_unnamed_section to emit
10453         .init_array/.fini_array with default priority.
10454
10455 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
10456
10457         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
10458         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
10459         (mips_start_unique_function, mips_output_mips16_rdhwr)
10460         (mips_code_end): New functions.
10461         (TARGET_ASM_CODE_END): Define.
10462
10463 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
10464
10465         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
10466         to stubs with non-sibling calls.
10467
10468 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
10469
10470         * doc/invoke.texi (-fira-* options): Copy-edit.
10471         (ira-* parameters): Copy-edit.
10472
10473 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
10474
10475         * doc/invoke.texi: Minor copy-edits to bring into conformance with
10476         GCC coding conventions.
10477
10478 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
10479
10480         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
10481         when used as adjectives.
10482
10483 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
10484
10485         * doc/invoke.texi: Clean up "that"/"which" confusion.
10486
10487 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
10488
10489         * system.h: Poison SMALL_REGISTER_CLASSES
10490         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
10491         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
10492
10493 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
10494
10495         PR tree-optimization/52285
10496         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
10497         when deciding if a call is a tail call or tail recursion.
10498
10499 2012-02-16  Kai Tietz  <ktietz@redhat.com>
10500
10501         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
10502         interger-constant displacement for UNSPEC_PCREL.
10503
10504 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
10505
10506         PR rtl-optimization/52208
10507         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
10508         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
10509
10510         PR tree-optimization/52255
10511         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
10512         loop->header has virtual PHI, but exit_e->dest doesn't, add
10513         virtual PHI to exit_e->dest and adjust all uses after the loop.
10514
10515         PR debug/52260
10516         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
10517         children with clone_tree_hash, not after it.
10518
10519 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
10520
10521         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
10522         extended identifiers.
10523
10524 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
10525
10526         PR middle-end/51929
10527         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
10528         a same_body_alias, also test whether e->callee isn't a former
10529         or current clone of the decl this is a same body alias of.
10530
10531         PR translation/52264
10532         * cgraphunit.c (verify_cgraph_node): Fix a typo.
10533
10534 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
10535
10536         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
10537
10538 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
10539
10540         PR target/52199
10541         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
10542         force_reg instead of copy_to_reg for better optimization.  Force
10543         non-register or memory operands into a register.
10544
10545 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
10546
10547         * extend.texi: Reserve upper bits of memory model for future use.
10548
10549 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
10550             Anatoly Sokolov <aesok@post.ru>
10551             Eric Weddington <eric.weddington@atmel.com>
10552
10553         PR target/52261
10554         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
10555         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
10556         Rewrite initializers for .macro.
10557         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
10558         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
10559         atxmega32d4, atxmega32x1.
10560         avrxmega4: atxmega64a3, atxmega64d3.
10561         avrxmega5: atxmega64a1, atxmega64a1u.
10562         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
10563         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
10564         avrxmega7: atxmega128a1, atxmega128a1u.
10565         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
10566         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
10567         (struct base_arch_s): Rename reserved to xmega_p.
10568         Rename reserved2 to have_rampd.
10569         (AVR_XMEGA): New define.
10570         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
10571         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
10572         * config/avr/predicates.md (io_address_operand): Take into
10573         account SFR offset.
10574         (low_io_address_operand): Ditto.
10575         (high_io_address_operand): Ditto.
10576         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
10577         (enabled, movhi_sp_r): Use them.
10578         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
10579         cpp_define_formatted to built-in define __AVR_ARCH__.
10580         (__AVR_XMEGA__): New built-in define.
10581         (__AVR_HAVE_RAMPD__): New built-in define.
10582         (__AVR_HAVE_RAMPX__): New built-in define.
10583         (__AVR_HAVE_RAMPY__): New built-in define.
10584         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
10585
10586         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
10587         (avr_option_override): Initialize them.
10588         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
10589         (avr_init_expanders): Initialize them. No more block several calls.
10590         (emit_push_sfr): New static function.
10591         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
10592         Handle AVR_XMEGA.
10593         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
10594         (avr_print_operand): Print addreeses as symbols for
10595         RAMPX, RAMPY, RAMPD, CCP.
10596         (output_movhi): Handle AVR_XMEGA when writing to SP.
10597         (avr_out_movhi_mr_r_xmega): New static function.
10598         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
10599         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
10600         __RAMPD__,  __CCP__ as needed.
10601
10602         * config/avr/multilib.h: Regenerate.
10603         * config/avr/t-multilib: Regenerate.
10604         * config/avr/avr-tables.opt: Regenerate.
10605
10606 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
10607
10608         PR tree-optimization/50561
10609         * graphite-flattening.c (lst_project_loop): Do not
10610         remove old scattering dimensions after flattening.
10611         (lst_do_flatten): Likewise.
10612
10613 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
10614
10615         * doc/extend.texi (AVR Built-in Functions): Remove doc for
10616         __builtin_avr_map8, __builtin_avr_map16.
10617         Document __builtin_avr_insert_bits.
10618
10619         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
10620         (insert_bits): New insn.
10621         (adjust_len.map_bits): Rename to insert_bits.
10622         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
10623         * avr-protos.h (avr_out_map_bits): Remove.
10624         (avr_out_insert_bits, avr_has_nibble_0xf): New.
10625         * config/avr/constraints.md (Cxf,C0f): New.
10626         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
10627         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
10628         New built-in define __BUILTIN_AVR_INSERT_BITS.
10629         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
10630         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
10631         (avr_move_bits): Rewrite.
10632         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
10633         functions.
10634         (avr_map_op_t): New typedef.
10635         (avr_map_op): New static variable.
10636         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
10637         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
10638         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
10639         (bdesc_3arg, avr_expand_triop_builtin): New.
10640         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
10641         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
10642         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
10643         (avr_map_equal_p, avr_map_sig_p): Remove.
10644         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
10645         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
10646         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
10647         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
10648         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
10649         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
10650
10651 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
10652
10653         * config/c6x/c6x.md (reserve_cycles): New attribute.
10654         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
10655         don't reserve functional units after the branch occurs.
10656
10657 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
10658
10659         PR middle-end/52142
10660         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
10661         functions into non-tm_pure functions.
10662
10663 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10664
10665         PR lto/52178
10666         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
10667         (iterative_hash_canonical_type): Likewise.
10668         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
10669         the dead edges.
10670
10671 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
10672
10673         * haifa-sched.c (prune_ready_list): Ensure that if there is a
10674         sched-group insn, it either remains alone or the entire list is pruned.
10675
10676 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
10677
10678         * doc/install.texi (Prerequisites): Fix grammar.
10679         (Configuration): Likewise.
10680
10681 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
10682
10683         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
10684         MPC as part of GCC before describing configuring with --with-gmp etc.
10685         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
10686         sources are present.
10687
10688 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
10689
10690         PR debug/51950
10691         * dwarf2out.c (clone_tree_hash): New function.
10692         (copy_decls_walk): Use it instead of clone_tree.
10693
10694 2012-02-14  Richard Guenther  <rguenther@suse.de>
10695
10696         PR tree-optimization/52244
10697         PR tree-optimization/51528
10698         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
10699         replacements for integral types.
10700
10701 2012-02-14  Walter Lee  <walt@tilera.com>
10702
10703         * config.gcc: Handle tilegx and tilepro.
10704         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
10705         tilegx and tilepro.
10706         Add HAVE_AS_TLS check for tilegx and tilepro.
10707         * configure: Regenerate.
10708         * doc/contrib.texi: Add Mat Hostetter and self.
10709         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
10710         Document instruction intrinsics and network accessing intrinsics.
10711         (TILEPro Built-in Functions): New node.  Document instruction
10712         intrinsics and network accessing intrinsics.
10713         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
10714         (Specific, tilepro-*-linux*): Likewise.
10715         * doc/invoke.texi (TILE-Gx Options): New section.
10716         (TILEPro Options): New section.
10717         * doc/md.texi (TILE-Gx): New section.
10718         (TILEPro): New section.
10719         * common/config/tilegx/tilegx-common.c: New file.
10720         * common/config/tilepro/tilepro-common.c: New file.
10721         * config/tilegx/constraints.md: New file.
10722         * config/tilegx/linux.h: New file.
10723         * config/tilegx/mul-tables.c: New file.
10724         * config/tilegx/predicates.md: New file.
10725         * config/tilegx/sync.md: New file.
10726         * config/tilegx/t-tilegx: New file.
10727         * config/tilegx/tilegx-builtins.h: New file.
10728         * config/tilegx/tilegx-c.c: New file.
10729         * config/tilegx/tilegx-generic.md: New file.
10730         * config/tilegx/tilegx-modes.def: New file.
10731         * config/tilegx/tilegx-multiply.h: New file.
10732         * config/tilegx/tilegx-protos.h: New file.
10733         * config/tilegx/tilegx.c: New file.
10734         * config/tilegx/tilegx.h: New file.
10735         * config/tilegx/tilegx.md: New file.
10736         * config/tilegx/tilegx.opt: New file.
10737         * config/tilepro/constraints.md: New file.
10738         * config/tilepro/gen-mul-tables.cc: New file.
10739         * config/tilepro/linux.h: New file.
10740         * config/tilepro/mul-tables.c: New file.
10741         * config/tilepro/predicates.md: New file.
10742         * config/tilepro/t-tilepro: New file.
10743         * config/tilepro/tilepro-builtins.h: New file.
10744         * config/tilepro/tilepro-c.c: New file.
10745         * config/tilepro/tilepro-generic.md: New file.
10746         * config/tilepro/tilepro-modes.def: New file.
10747         * config/tilepro/tilepro-multiply.h: New file.
10748         * config/tilepro/tilepro-protos.h: New file.
10749         * config/tilepro/tilepro.c: New file.
10750         * config/tilepro/tilepro.h: New file.
10751         * config/tilepro/tilepro.md: New file.
10752         * config/tilepro/tilepro.opt: New file.
10753
10754 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
10755
10756         PR tree-optimization/52210
10757         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
10758         vect_model_simple_cost with two entry vect_def_type array instead
10759         of an address of dt.
10760
10761 2012-02-14  Richard Guenther  <rguenther@suse.de>
10762
10763         PR lto/52178
10764         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
10765         Do not stream DECL_QUALIFIER.
10766         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
10767         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
10768         (find_decls_types_r): Do not walk DECL_QUALIFIER.
10769
10770 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
10771
10772         PR c/52181
10773         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
10774         newdecl.
10775
10776 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
10777
10778         PR bootstrap/52172
10779         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
10780         * cselib.c (cselib_subst_to_values_from_insn): New function.
10781         * sched-deps.c (add_insn_mem_dependence,
10782         sched_analyze_1, sched_analyze_2): Use it.
10783
10784 2012-02-13  Jan Hubicka  <jh@suse.cz>
10785
10786         PR middle-end/52214
10787         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
10788
10789 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
10790
10791         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
10792         (GTM_SELF_SPECS): Define if not already defined.
10793         (driver_self_specs): Add GTM_SELF_SPECS.
10794         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
10795         (GTM_SELF_SPECS): Define.
10796         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
10797         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
10798
10799 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
10800
10801         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
10802         away if seen.
10803
10804         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
10805
10806         PR middle-end/52230
10807         * omp-low.c (expand_omp_for): If a static schedule without chunk size
10808         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
10809
10810 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
10811
10812         PR c/52190
10813         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
10814
10815 2012-02-13  Richard Guenther  <rguenther@suse.de>
10816
10817         PR translation/52211
10818         * passes.c (enable_disable_pass): Fix typo.
10819
10820 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
10821
10822         PR middle-end/52209
10823         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
10824         XOR for reduce_bit_field if type is unsigned.
10825
10826 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10827
10828         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
10829         disallow changes from SFmode to mode with different size in FP regs.
10830
10831 2012-02-12  Robert Millan  <rmh@gnu.org>
10832             Gerald Pfeifer <gerald@pfeifer.com>
10833
10834         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
10835         Tweak comment.
10836
10837 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
10838
10839         PR rtl-optimization/52175
10840         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
10841         to frame-related instructions.
10842
10843 2012-02-10  Jason Merrill  <jason@redhat.com>
10844
10845         PR c++/51910
10846         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
10847         (demangle_new_symbols): Fill it.
10848         (scan_linker_output): Walk it.
10849         (start_tweaking): Split out from scan_linker_output.
10850         (maybe_tweak): Update sym->chosen.
10851         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
10852
10853 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
10854
10855         PR debug/52132
10856         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
10857
10858 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
10859
10860         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
10861         having the same mode as previous compare.
10862
10863 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10864
10865         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
10866         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
10867         (nonlocal_goto_internal): Likewise.
10868         (nonlocal_goto): Emit a use and an indirect jump directly.
10869
10870 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
10871
10872         PR c/52190
10873         * doc/extend.texi : Update comments for __atomic_compare_exchange and
10874         __atomic_{is,always}_lock_free.
10875
10876 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
10877
10878         PR target/52146
10879         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
10880         negative constant address for TARGET_X32.
10881
10882 2012-02-10  Richard Henderson  <rth@redhat.com>
10883
10884         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
10885         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
10886         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
10887
10888 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10889             Ira Rosen  <irar@il.ibm.com>
10890
10891         PR tree-optimization/50031
10892         * targhooks.c (default_builtin_vectorization_cost): Handle
10893         vec_promote_demote.
10894         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
10895         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
10896         all types of reduction and pattern statements.
10897         (vect_estimate_min_profitable_iters): Likewise.
10898         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
10899         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
10900         for explicit realigns.
10901         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
10902         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
10903         vec_promote_demote.
10904         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
10905         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
10906         vec_perm for VSX and handle vec_promote_demote.
10907
10908 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
10909
10910         PR middle-end/52177
10911         * builtins.c (fold_builtin_atomic_always_lock_free,
10912         expand_builtin_atomic_always_lock_free,
10913         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
10914         Return and/or test boolean_true_node/boolean_false_node instead of
10915         integer_one_node/integer_zero_node.
10916
10917 2012-02-10  Jan Hubicka  <jh@suse.cz>
10918
10919         PR middle-end/48600
10920         * predict.c (predict_paths_for_bb): Prevent looping.
10921         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
10922
10923 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
10924
10925         * config/arm/arm.c (output_move_double): In one case properly
10926         count number of instructions that will be emitted.
10927
10928 2012-02-10  Richard Guenther  <rguenther@suse.de>
10929
10930         PR translation/52193
10931         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
10932
10933 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
10934
10935         PR middle-end/52140
10936         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
10937
10938 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
10939
10940         PR debug/52165
10941         * var-tracking.c (emit_note_insn_var_location): If
10942         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
10943         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
10944         non-NOTE_DURING_CALL_P insn.
10945
10946 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
10947
10948         PR middle-end/51867
10949         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
10950
10951 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
10952
10953         PR driver/48524
10954         * gcc.c (switch_matches) Support switches with separated form,
10955         -D and -U.
10956
10957 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
10958
10959         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
10960         (SP_ADDR): Ditto.
10961         (RAMPZ_ADDR): Ditto.
10962         * config/avr/avr.c (avr_addr_t): New typedef.
10963         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
10964         (avr_init_expanders): Initialize it.
10965         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
10966         SREG_ADDR.
10967         (expand_epilogue): Ditto.
10968         (avr_print_operand): Ditto.
10969         (avr_file_start): Ditto.
10970         (avr_emit_movmemhi): Ditto.
10971
10972 2012-02-08  Richard Guenther  <rguenther@suse.de>
10973
10974         PR tree-optimization/46886
10975         * tree-flow.h (do_while_loop_p): Declare.
10976         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
10977         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
10978
10979 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
10980
10981         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
10982         always succeed for integers larger than a native word.
10983
10984 2012-02-08  Richard Guenther  <rguenther@suse.de>
10985
10986         PR rtl-optimization/52170
10987         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
10988         properly handle integer vector modes.
10989
10990 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
10991
10992         PR gcov-profile/52150
10993         * coverage.c: Include target.h.
10994         (build_var): Call targetm.strip_name_encoding on the assembler name.
10995         Change one _ into . or $ if the target allows it.
10996         * Makefile.in (coverage.o): Depend on $(TARGET_H).
10997
10998         PR rtl-optimization/52139
10999         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
11000         is a BARRIER after emit_insn_after_noloc, move BB_END
11001         to the last non-BARRIER insn before it.
11002
11003 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
11004
11005         PR middle-end/24306
11006         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
11007         (mips_gimplify_va_arg_expr): Call it instead of
11008         std_gimplify_va_arg_expr.
11009
11010 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11011
11012         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
11013         message for -mno-pointers-to-nested-function.
11014
11015 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
11016
11017         PR middle-end/51994
11018         * expr.c (get_inner_reference): If there is an offset, add a negative
11019         bit position to it (if any).
11020
11021 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
11022
11023         PR rtl-optimization/52060
11024         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
11025         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
11026         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
11027         and/or i0src_copy2 when needed.
11028
11029 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
11030
11031         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
11032         or LTOPLUGINSONAME if have_c.
11033
11034         * config/freebsd-spec.h: Add comment about what macros can be defined
11035         in this header.
11036         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
11037         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
11038         here instead.
11039
11040 2012-02-07  Richard Guenther  <rguenther@suse.de>
11041
11042         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
11043         newline in -alias dumps.
11044
11045 2012-02-07  Kai Tietz  <ktietz@redhat.com>
11046             Dave Korn  <dave.korn.cygwin@gmail.com>
11047
11048         PR target/40068
11049         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
11050         Take care that typinfo gets dllexport-attribute.
11051
11052 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
11053
11054         PR middle-end/52074
11055         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
11056         if modifier < EXPAND_SUM call force_operand on the result.
11057
11058 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
11059
11060         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
11061         adding __forwarder_dst__ prefix if a forwarder_section attribute is
11062         present.
11063         (epiphany_function_type): Replace types for specific interrupts with
11064         EPIPHANY_FUNCTION_INTERRUPT.
11065         (EPIPHANY_INTERRUPT_P): Update.
11066         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
11067         New static function.
11068         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
11069         <disinterrupt>: Affects type identity.
11070         (epiphany_handle_interrupt_attribute): Handle variable number of
11071         arguments.
11072         (epiphany_compute_function_type): Update for new
11073         epiphany_function_type definition.
11074         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
11075         handlers with a longcall forwarder.
11076         (epiphany_start_function): Handle multiple interrupt arguments and/or
11077         forwarder_section attribute.
11078
11079         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
11080         libgloss.
11081
11082 2012-02-07  Alan Modra  <amodra@gmail.com>
11083
11084         PR target/52107
11085         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
11086         subregs of TFmode.
11087
11088 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11089
11090         PR tree-optimization/50969
11091         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
11092         use vec_perm rather than vector_stmt.
11093         (vect_model_load_cost): Likewise.
11094         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
11095         vec_perm to be the same as other vector statements.
11096         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
11097         cost of vec_perm for TARGET_VSX.
11098
11099 2012-02-06  Richard Guenther  <rguenther@suse.de>
11100
11101         PR tree-optimization/52115
11102         * tree-sra.c (access_has_replacements_p): New function.
11103         (sra_modify_assign): Use it to decide whether a use is uninitialized.
11104
11105 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
11106
11107         PR middle-end/52047
11108         * trans-mem.c (expand_call_tm): Add an assertion.
11109         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
11110         functions.
11111
11112 2012-02-06  Richard Guenther  <rguenther@suse.de>
11113
11114         PR tree-optimization/50955
11115         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
11116         raise cost of expressions that replace an address with an
11117         expression based on a different pointer.
11118
11119 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
11120
11121         PR target/52129
11122         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
11123         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
11124
11125 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
11126
11127         PR c++/48680
11128         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
11129         -Weffc++ and specify guidelines come from second edition.
11130
11131 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
11132
11133         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
11134         (sibcall_value_multiple_internal, call_split, call_internal_direct)
11135         (call_direct_split, call_value_split, call_value_internal_direct)
11136         (call_value_direct_split, call_value_multiple_split): Use jal and
11137         jal_macro attributes.
11138
11139 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
11140
11141         * reload1.c (reload_regs_reach_end_p): Replace with...
11142         (reload_reg_rtx_reaches_end_p): ...this function.
11143         (new_spill_reg_store): Update commentary.
11144         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
11145         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
11146         before setting new_spill_reg_store.
11147         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
11148         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
11149         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
11150         for non-spill reload registers.
11151
11152 2012-02-05  Ira Rosen  <irar@il.ibm.com>
11153
11154         PR tree-optimization/52091
11155         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
11156         (vect_is_simple_use_1): Likewise.
11157         * tree-vect-loop.c (vectorizable_reduction): Update calls
11158         to vect_is_simple_use_1 and vect_is_simple_use.
11159         (vectorizable_live_operation): Likewise.
11160         * tree-vect-patterns.c (widened_name_p,
11161         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
11162         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
11163         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
11164         vectorizable_shift,vectorizable_operation, vectorizable_store,
11165         vectorizable_load): Likewise.
11166         (vect_is_simple_cond): Add an argument, pass it to
11167         vect_is_simple_use_1.
11168         (vectorizable_condition): Update calls to vect_is_simple_cond,
11169         vect_is_simple_use.
11170         (vect_is_simple_use): Add an argument, the statement in which
11171         OPERAND is used.  Check that if OPERAND's def stmt is a double
11172         reduction phi node, the use is a phi node too.
11173         (vect_is_simple_use_1): Add an argument, pass it to
11174         vect_is_simple_use.
11175         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
11176         to vect_is_simple_use.
11177
11178 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
11179
11180         PR rtl-optimization/52095
11181         * modulo-sched.c (dump_insn_locator): New function.
11182         (loop_canon_p, sms_schedule): Use it.
11183
11184         PR rtl-optimization/52113
11185         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
11186         even for decomposable shift/zext insns.
11187
11188 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
11189             Zdenek Dvorak  <ook@ucw.cz>
11190
11191         PR rtl-optimization/52092
11192         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
11193         on get_iv_value result.
11194
11195 2012-02-02  Andrew Pinski  <apinski@cavium.com>
11196
11197         PR middle-end/47982
11198         PR middle-end/43967
11199         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
11200
11201 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
11202
11203         PR middle-end/48071
11204         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
11205
11206 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
11207
11208         PR rtl-optimization/49800
11209         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
11210         (sched_finish): Call regstat_free_n_sets_and_refs.
11211
11212 2012-02-02  Jia Liu  <proljc@gmail.com>
11213
11214         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
11215         than operand 2.
11216
11217 2012-02-02  Jan Hubicka  <jh@suse.cz>
11218             Tom de Vries  <tom@codesourcery.com>
11219
11220         PR middle-end/51998
11221         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
11222         * varpool.c (varpool_analyze_pending_decls): Likewise.
11223
11224 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
11225             Jayant R Sonar <jayant.sonar@kpitcummins.com>
11226
11227         * config.gcc: Add cr16-* support.
11228
11229         * doc/extend.texi: Document cr16 extensions.
11230         * doc/install.texi: Document cr16 install.
11231         * doc/invoke.texi: Document cr16 options.
11232         * doc/md.texi: Document cr16 constraints.
11233
11234         * common/config/cr16/cr16-common.c: New file.
11235         * config/cr16/cr16.c: New file.
11236         * config/cr16/cr16.h: New file.
11237         * config/cr16/cr16.md: New file.
11238         * config/cr16/cr16.opt: New file.
11239         * config/cr16/cr16-protos.h: New file.
11240         * config/cr16/predicates.md: New file.
11241         * config/cr16/constraints.md: New file.
11242         * config/cr16/t-cr16: New file.
11243
11244 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
11245
11246         PR target/52086
11247         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
11248         that operands[2] is either immediate, or q_regs_operand.
11249
11250         PR tree-optimization/52073
11251         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
11252         a pattern stmt for pattern uses, ignore uses outside of the loop.
11253
11254 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
11255
11256         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
11257         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
11258         (OUT_AS1, OUT_AS2): Remove.
11259
11260 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
11261
11262         PR rtl-optimization/51374
11263         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
11264         to cross other volatile_refs_p insns.
11265
11266 2012-02-01  Richard Guenther  <rguenther@suse.de>
11267
11268         * doc/invoke.texi (fno-inline): Clarify documentation.
11269         (finline-small-functions): Likewise.
11270         (finline-functions): Likewise.
11271         * common.opt (finline): Adjust comment and documentation.
11272         (finline-small-functions): Clarify documentation.
11273         (finline-functions): Likewise.
11274         (finline-functions-called-once): Likewise.
11275
11276 2012-02-01  Tristan Gingold  <gingold@adacore.com>
11277
11278         * c-typeck.c (composite_type): Keep mode for pointers.
11279
11280 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
11281
11282         * function.h (regno_reg_rtx): Adjust comment.
11283         * reginfo.c (init_reg_modes_target): Only use the previous mode
11284         if it fits within one register.  Remove MIPS comment.
11285
11286 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
11287
11288         PR bootstrap/52058
11289         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
11290
11291 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11292
11293         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
11294         to srak instruction.
11295
11296 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
11297
11298         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
11299
11300 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
11301
11302         PR bootstrap/52041
11303         PR bootstrap/52039
11304         PR target/51974
11305         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
11306
11307 2012-01-31  Richard Guenther  <rguenther@suse.de>
11308
11309         PR tree-optimization/51528
11310         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
11311         assigns.
11312
11313 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
11314
11315         PR bootstrap/52041
11316         PR bootstrap/52039
11317         PR target/51974
11318         * ree.c (add_removable_extension): Change def_map argument
11319         to unsigned *, store in def_map 1 + offset into *insn_list vector
11320         instead of pointers into the vector.
11321         (find_removable_extensions): Adjust caller.
11322
11323 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
11324
11325         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
11326         Transform all "* quoted-c-code" to { c-code }.
11327         Remove redundant test for "optimize" in combine patterns.
11328         Move (include "avr-dimode.md") to end of file.
11329
11330 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
11331
11332         PR target/51835
11333         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
11334         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
11335
11336 2012-01-30  Richard Guenther  <rguenther@suse.de>
11337
11338         PR tree-optimization/52028
11339         * tree-loop-distribution.c (ldist_gen): Properly update
11340         virtual SSA form.
11341
11342 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
11343
11344         PR debug/52027
11345         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
11346         set_cur_line_info_table if not emitting debug info.
11347
11348         PR tree-optimization/52046
11349         * tree-vect-patterns.c (check_bool_pattern): Give up if
11350         a comparison could throw.
11351
11352         PR debug/52048
11353         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
11354
11355 2012-01-30  Richard Guenther  <rguenther@suse.de>
11356
11357         PR tree-optimization/52045
11358         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
11359         SSA form if cfgcleanup did anything.
11360
11361 2012-01-30  Richard Guenther  <rguenther@suse.de>
11362
11363         PR tree-optimization/52045
11364         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
11365         before computing final todo.
11366
11367 2012-01-30  Richard Guenther  <rguenther@suse.de>
11368
11369         PR tree-optimization/51528
11370         * tree-sra.c (sra_modify_assign): Re-factor in preparation
11371         for PR51528 fix.
11372
11373 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
11374
11375         * df-problems.c (df_kill_notes): Check that the use refers
11376         to the note under examination.
11377
11378 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
11379
11380         PR target/51920
11381         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
11382         parameter and use short-lived pseudos.
11383         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
11384         (sparc_expand_vector_init): Const-ify local variables and adjust
11385         calls to above functions.
11386
11387 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
11388
11389         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
11390
11391 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
11392
11393         * doc/invoke.texi: Make usage of "compile time" and
11394         "run time"/"runtime" consistent throughout the file.
11395
11396 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
11397
11398         * config/alpha/alpha.c (alpha_option_override): Default to
11399         full IEEE compliance mode for Go language.
11400
11401 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
11402
11403         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
11404         (LINK_SSP_SPEC): Define.
11405
11406 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11407
11408         PR target/51871
11409         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
11410         stubs.
11411
11412 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
11413
11414         * doc/invoke.texi: Correct hyphenation of "floating point",
11415         "double precision", and related terminology throughout the file.
11416
11417 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
11418
11419         PR target/52006
11420         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
11421         arm_general_register_operand predicate for operand 2 instead of
11422         register_operand.
11423
11424 2012-01-27  Ian Lance Taylor  <iant@google.com>
11425
11426         PR go/47656
11427         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
11428         * builtins.c (expand_builtin_init_trampoline): Add onstack
11429         parameter.  Change caller.
11430         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
11431         * tree.c (build_common_builtin_nodes): Declare
11432         __builtin_init_heap_trampoline.
11433
11434 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
11435
11436         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
11437         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
11438         * config/avr/avr.c: Ditto.
11439         (avr_regnames): Remove because unused.
11440         * config/avr/avr.md (*cpse.ne): New peephole.
11441         (*cpse.eq): New peephole from former cpse peepholes.
11442
11443 2012-01-27  Michael Eager  <eager@eagercon.com>
11444
11445         * config/microblaze.c (microblaze_emit_compare): Correct
11446         test after pcmp instruction.
11447
11448 2012-01-27  Richard Guenther  <rguenther@suse.de>
11449
11450         PR tree-optimization/52020
11451         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
11452
11453 2012-01-27  Richard Guenther  <rguenther@suse.de>
11454
11455         * ipa-pure-const.c (check_stmt): Clobbers do not make a
11456         function non-const/pure.
11457
11458 2012-01-27  Richard Guenther  <rguenther@suse.de>
11459
11460         PR tree-optimization/50444
11461         * tree-sra.c (build_ref_for_offset): Properly adjust the
11462         MEM_REF type for unaligned accesses.
11463
11464 2012-01-27  Richard Guenther  <rguenther@suse.de>
11465
11466         PR tree-optimization/50444
11467         * expr.c (mem_ref_refers_to_non_mem_p): New function.
11468         (expand_assignment): Use it.  Properly handle misaligned
11469         bases when expanding stores to component references.
11470         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
11471         refactor that case.
11472
11473 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
11474
11475         PR middle-end/51389
11476         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
11477         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
11478         * tree-data-ref.c (find_data_references_in_loop): Make static.
11479         (compute_all_dependences): Change return type to bool.  Bail out
11480         for too many datarefs in a loop.  Move the hunk resetting the data
11481         dependences vector from ...
11482         (compute_data_dependences_for_loop): ... here.  Account for
11483         compute_all_dependences returning false.
11484         (compute_data_dependences_for_bb): Likewise.
11485         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
11486         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
11487
11488 2012-01-27  Richard Guenther  <rguenther@suse.de>
11489
11490         PR middle-end/51959
11491         * expr.c (store_field): Use the alias-set of the scratch memory
11492         for storing to it.
11493
11494 2012-01-27  Tom de Vries  <tom@codesourcery.com>
11495
11496         PR tree-optimization/51990
11497         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11498         WITH_SIZE_EXPR.
11499         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
11500
11501 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
11502
11503         PR debug/52001
11504         * var-tracking.c (reverse_op): Don't add any reverse operation
11505         if V already has any constant locations.
11506
11507 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
11508
11509         * doc/invoke.texi: Correct usage of "command line" (noun)
11510         vs "command-line" (adjective) throughout.
11511
11512 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
11513
11514         * doc/invoke.texi (Language Independent Options): Move
11515         -Wcoverage-mismatch blurb from here....
11516         (Warning Options): ...to here.
11517
11518 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
11519
11520         * config/rs6000/rs6000.c (rs6000_option_override_internal):
11521         Set rs6000_always_hint to false for 476.
11522
11523 2012-01-27  Matthias Klose  <doko@ubuntu.com>
11524
11525         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
11526           system root.
11527         * incpath.c (add_standard_paths): Likewise.
11528
11529 2012-01-27  Richard Henderson  <rth@redhat.com>
11530
11531         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
11532         * config/m68k/sync.md (atomic_test_and_set): Rename from
11533         sync_test_and_setqi and adjust the operands.
11534         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
11535         and unconditionally enable.
11536
11537 2012-01-27  Richard Henderson  <rth@redhat.com>
11538
11539         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
11540         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
11541         (ldstub): Rename from ldstubqi.
11542         (ldstub<I24MODE>): Remove.
11543
11544 2012-01-27  Richard Henderson  <rth@redhat.com>
11545
11546         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
11547         * c-cppbuiltin.c (cpp_atomic_builtins): Define
11548         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
11549         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
11550         * doc/tm.texi: Rebuild.
11551
11552 2012-01-27  Richard Henderson  <rth@redhat.com>
11553
11554         * optabs.c (gen_atomic_test_and_set): Remove default.
11555         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
11556
11557 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
11558
11559         PR rtl-optimization/51978
11560         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
11561         (combine_reaching_defs): Likewise.
11562         (struct re_info): Remove.
11563         (add_removable_extension): Remove x and data arguments,
11564         add insn, insn_list and def_map.  Use the arguments directly
11565         instead of using struct re_info.
11566         (find_removable_extensions): Don't call add_removable_extension
11567         through note_stores, instead just call it with single_set
11568         result if non-NULL.
11569         (find_and_remove_re): Pass curr_cand->expr instead of
11570         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
11571
11572 2012-01-26  Michael Matz  <matz@suse.de>
11573
11574         PR tree-optimization/46590
11575         * cfgexpand.c: Revert last change (r183305).
11576         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
11577         regs.
11578         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
11579         checking for emptiness.
11580
11581 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
11582
11583         PR middle-end/51895
11584         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
11585         non-addressable non-BLKmode base correctly.
11586
11587 2012-01-26  Michael Matz  <matz@suse.de>
11588
11589         PR tree-optimization/48794
11590         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
11591         regions referenced from RESX/EH_DISPATCH.
11592
11593 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11594
11595         * config/s390/s390.h: Make BRANCH_COST an option.
11596         * config/s390/s390.opt: New option -mbranch-cost.
11597
11598 2012-01-26  Richard Henderson  <rth@redhat.com>
11599
11600         Revert 2012-01-24 change:
11601         * trans-mem.c (requires_barrier): Do not instrument thread local
11602         variables and emit save/restore for them.
11603
11604 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
11605
11606         PR middle-end/51986
11607         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
11608         for pat == 0.
11609
11610 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
11611
11612         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
11613         ASM_OPERANDS.
11614
11615 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
11616
11617         PR target/49868
11618         Rename __pgm to __flash.
11619         Rename __pgm1 to __flash1.
11620         Rename __pgm2 to __flash2.
11621         Rename __pgm3 to __flash3.
11622         Rename __pgm4 to __flash4.
11623         Rename __pgm5 to __flash5.
11624         Rename __pgmx to __memx.
11625         * doc/extend.texi (AVR Named Address Spaces)
11626         Rename address space names as indicated above.
11627         * config/avr/avr.c (avr_addrspace): Ditto.
11628
11629         * config/avr/avr-protos.h
11630         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
11631         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
11632         * config/avr/predicates.md: Ditto.
11633         * config/avr/avr.c Ditto, and
11634         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
11635         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
11636
11637         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
11638         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
11639         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
11640         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
11641         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
11642         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
11643         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
11644         * config/avr/avr.c: Ditto.
11645         * config/avr/avr.md: Ditto.
11646
11647 2012-01-25  Jason Merrill  <jason@redhat.com>
11648
11649         PR c++/51992
11650         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
11651
11652 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
11653
11654         PR tree-optimization/51987
11655         * tree-data-ref.c (get_references_in_stmt): Handle references in
11656         non-volatile GIMPLE_ASM.
11657
11658 2012-01-25  Richard Guenther  <rguenther@suse.de>
11659
11660         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
11661         bases are dereferenced.
11662
11663 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
11664
11665         PR rtl-optimization/48374
11666         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
11667
11668 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
11669
11670         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
11671         compute_data_dependences_for_loop returns false.
11672         * tree-parloops.c (loop_parallel_p): Likewise.
11673
11674 2012-01-25  Richard Guenther  <rguenther@suse.de>
11675
11676         * tree.h (get_pointer_alignment_1): Declare.
11677         * builtins.c (get_pointer_alignment_1): New function.
11678         (get_pointer_alignment): Use it.
11679
11680 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11681
11682         PR rtl-optimization/48308
11683         * combine.c (enum undo_kind): Add UNDO_LINKS.
11684         (struct undo): Add member l to other_contents and where.
11685         (do_SUBST_LINK): New.
11686         (SUBST_LINK): New.
11687         (try_combine): Handle LOG_LINKS for the dummy i1 case.
11688         (undo_all): Handle UNDO_LINKS.
11689
11690 2012-01-25  Richard Henderson  <rth@redhat.com>
11691
11692         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
11693         mem inputs.
11694
11695 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
11696
11697         * optabs.c (gen_atomic_test_and_set): Use each argument.
11698
11699 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
11700
11701         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
11702         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
11703         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
11704         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
11705         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
11706         TARGET_PAIRED_SINGLE_FLOAT.
11707
11708 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
11709
11710         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
11711         (in_struct, return_val): Remove MEM documentation.
11712         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
11713         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
11714         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
11715         and MEM_SCALAR.
11716         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11717         * cfgexpand.c (add_alias_set_conflicts): Likewise.
11718         * expr.c (store_field): Likewise.
11719         * function.c (assign_stack_temp_for_type): Likewise.
11720         * ifcvt.c (noce_try_cmove_arith): Likewise.
11721         * reload1.c (reload): Likewise.
11722         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
11723         (alpha_set_memflags): Likewise.
11724         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
11725
11726 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
11727
11728         * rtl.h (true_dependence, canon_true_dependence): Remove varies
11729         parameter.
11730         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
11731         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
11732         (true_dependence_1, true_dependence, canon_true_dependence): Remove
11733         varies parameter.
11734         * cselib.c (cselib_rtx_varies_p): Delete.
11735         (cselib_invalidate_mem): Update call to canon_true_dependence.
11736         * dse.c (record_store, check_mem_read_rtx): Likewise.
11737         (scan_reads_nospill): Likewise.
11738         * cse.c (check_dependence): Likewise.
11739         (cse_rtx_varies_p): Delete.
11740         * expr.c (safe_from_p): Update call to true_dependence.
11741         * ira.c (validate_equiv_mem_from_store): Likewise.
11742         (memref_referenced_p): Likewise.
11743         * postreload-gcse.c (find_mem_conflicts): Likewise.
11744         * sched-deps.c (sched_analyze_2): Likewise.
11745         * store-motion.c (load_kills_store): Likewise.
11746         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
11747         * gcse.c (mems_conflict_for_gcse_p): Likewise.
11748         (compute_transp): Update call to canon_true_dependence.
11749
11750 2012-01-25  Richard Henderson  <rth@redhat.com>
11751
11752         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
11753         (maybe_emit_atomic_test_and_set): New.
11754         (expand_sync_lock_test_and_set): Use it.
11755         (expand_atomic_test_and_set): Likewise.
11756         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
11757         the implementation; clarify implementation defined details.
11758         * doc/md.texi (atomic_test_and_set): Document.
11759
11760 2012-01-25  Richard Henderson  <rth@redhat.com>
11761
11762         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
11763
11764 2012-01-25  Richard Henderson  <rth@redhat.com>
11765
11766         PR target/51968
11767         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
11768         to effect no-op split.
11769
11770 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
11771
11772         PR lto/51698
11773         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
11774         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
11775         (BT_FN_VOID_PTR_INT_SIZE): New.
11776         (BT_FN_UINT_UINT_VAR): Remove.
11777         (BT_FN_UINT32_UINT32_VAR): New.
11778         (BT_FN_DOUBLE_VPTR): Remove.
11779         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
11780
11781         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
11782         (_ITM_changeTransactionMode): Same.
11783         (_ITM_memmoveRtWt): Change return type to void.
11784         (_ITM_memcpyRtWt): Same.
11785         (_ITM_memsetW): Same.
11786         (_ITM_RaRD): Change types to double.
11787         (_ITM_RD): Same.
11788         (_ITM_RaWD): Same.
11789         (_ITM_RfWD): Same.
11790
11791         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
11792
11793 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
11794             Patrick Marlier  <patrick.marlier@gmail.com>
11795
11796         * trans-mem.c (requires_barrier): Do not instrument thread local
11797         variables and emit save/restore for them.
11798
11799 2012-01-24  Jason Merrill  <jason@redhat.com>
11800
11801         PR c++/51812
11802         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
11803         output static aliases.
11804
11805 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
11806
11807         PR driver/47249
11808         * common.opt (-pie, -shared, pie, shared): Change from Common to
11809         Driver.
11810         * gcc.c (display_help): Display help for -pie and -shared.
11811
11812 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
11813
11814         PR target/49868
11815         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
11816         Remove note on size/offset limitation.
11817         (AVR Variable Attributes): Add example how to read data located
11818         with progmem.  Refer to named address spaces.
11819         * doc/invoke.texi (AVR Options): Fix typo.
11820
11821 2012-01-24  Richard Guenther  <rguenther@suse.de>
11822
11823         Forward-port to trunk
11824         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
11825
11826         PR middle-end/45678
11827         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
11828         op0 isn't sufficiently aligned and there is movmisalignM
11829         insn for mode, use it to load op0 into a temporary register.
11830
11831 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
11832
11833         PR target/51957
11834         * target.def (const_not_ok_for_debug_p): New hook.
11835         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
11836         documentation.
11837         * doc/tm.texi: Regenerated.
11838         * dwarf2out.c (const_ok_for_output_1): If
11839         targetm.const_not_ok_for_debug_p returns true, fail.
11840         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
11841         function.
11842         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
11843
11844 2012-01-23  Kai Tietz  <ktietz@redhat.com>
11845
11846         PR target/51900
11847         * config/i386/predicates.md (symbolic_operand): Allow
11848         UNSPEC_PCREL as PIC expression for lea.
11849         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
11850         * config/i386/i386.c (ix86_delegitimize_address): Handle
11851         UNSPEC_PCREL for none-MEM, too.
11852
11853 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
11854
11855         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
11856         (ipa_tm_create_version_alias): Same.
11857
11858 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
11859
11860         PR libitm/51830
11861         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
11862         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
11863
11864 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
11865             Patrick Marlier  <patrick.marlier@gmail.com>
11866             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
11867
11868         PR lto/51916
11869         * lto-wrapper.c (run_gcc): Pass the LTO section name to
11870         simple_object_start_read.
11871
11872 2012-01-23  Richard Guenther  <rguenther@suse.de>
11873
11874
11875         PR tree-optimization/51895
11876         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
11877         parameter decomposition into BLKmode components.
11878
11879 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
11880
11881         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
11882         fake variables for restrict-qualified pointers whose pointed-to type
11883         contains a placeholder.
11884
11885 2012-01-23  Richard Guenther  <rguenther@suse.de>
11886
11887         PR tree-optimization/51949
11888         * ipa-split.c (execute_split_functions): Do not split malloc functions.
11889
11890 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
11891
11892         PR rtl-optimization/51933
11893         * ree.c (transform_ifelse): Return true right away if dstreg is
11894         already wider or equal to cand->mode.
11895         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
11896         (make_defs_and_copies_lists): Remove defs_list and copies_list
11897         arguments, add state argument, just truncate state->work_list
11898         instead of always allocating and freeing the vector.  Assert that
11899         get_defs succeeds instead of returning 2.  Changed return type to bool.
11900         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
11901         have ext_src_mode, see if it has been modified already with the
11902         right kind of extension and has been extended before from the
11903         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
11904         just return true.  Remember the original mode in state->modified array.
11905         (combine_reaching_defs): Add state argument.  Don't allocate and
11906         free here def_list, copied_list and vec vectors, instead just
11907         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
11908         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
11909         Add state variable, clear vectors in it, initialize state.modified
11910         if needed.  Free all the vectors at the end and state.modified too.
11911         Don't skip a candidate if the extension expression has been modified.
11912
11913 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
11914
11915         PR target/47096
11916         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
11917          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
11918         (extra_options) interix.opt -> i386/interix.opt"
11919         (extra_objs):Add winnt-stubs.o
11920         * configure.ac: Add interix to target_os .comm on PE check.
11921         * configure: Regenerate.
11922         * config/interix3.h: Delete and move bits to..
11923         * config/interix.h: Delete and move bits to..
11924         * config/i386/i386-interix3.h: Delete and move bits to..
11925         * config/i386/i386-interix.h: ..here.
11926         (TARGET_CPU_DEFAULT): Remove redefinition.
11927         (TARGET_ASM_CONSTRUCTOR): Undefine.
11928         (SUBTARGET_SWITCHES): Define for ms-bitfields.
11929         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
11930         (PTRDIFF_TYPE): Define.
11931         (LONG_DOUBLE_TYPE_SIZE): Define.
11932         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
11933         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
11934         (TARGET_SECTION_TYPE_FLAGS): Define.
11935         (ASM_DECLARE_FUNCTION_NAME): Define.
11936         (ASM_OUTPUT_EXTERNAL): Define.
11937         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
11938         (ASM_OUTPUT_ALIGNED_BSS): Define.
11939         (PCC_BITFIELD_TYPE_MATTERS): Define.
11940         (USE_CONST_SECTION): Define.
11941         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
11942         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
11943         (SUPPORTS_ONE_ONLY): Remove.
11944         (I386_PE_STRIP_ENCODING): Define.
11945         * config/interix.opt: Delete and move bits to..
11946         * config/i386/interix.opt: ..here. New.
11947         (mpe-aligned-commons): Add.
11948         * config/i386/t-interix: Add copyright header.
11949         (winnt-stubs.o): Add rule.
11950
11951 2012-01-22  Jason Merrill  <jason@redhat.com>
11952
11953         PR c++/51832
11954         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
11955         for extra name aliases.
11956
11957 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11958
11959         PR rtl-optimization/51924
11960         * ree.c (combine_set_extension): Improve debugging message.
11961         (combine_reaching_defs): Likewise.
11962         (get_defs): Rename confusingly named variable.
11963         (find_and_remove_re): Skip a candidate if the extension expression has
11964         been modified.
11965
11966 2012-01-21  Robert Millan  <rmh@gnu.org>
11967             Gerald Pfeifer  <gerald@pfeifer.com>
11968
11969         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
11970         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
11971
11972 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
11973
11974         PR tree-optimization/51914
11975         * tree-vect-stmts.c (vectorizable_conversion): For
11976         cvt_type && modifier == WIDEN, put temporary with cvt_type
11977         at the beginning of vec_dsts and set vec_dest to temporary
11978         with vectype_out.
11979
11980 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
11981
11982         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
11983
11984 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
11985
11986         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
11987         * config/rs6000/rs6000.c: Likewise.
11988
11989 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
11990
11991         PR target/51915
11992         * config/arm/arm.c (arm_count_output_move_double_insns): Call
11993         output_move_double on a copy of operands array.
11994
11995 2012-01-20  Cary Coutant  <ccoutant@google.com>
11996             Dodji Seketeli  <dodji@redhat.com>
11997
11998         PR debug/45682
11999         * dwarf2out.c (copy_declaration_context): Return ref to parent
12000         of declaration DIE, if necessary.
12001         (remove_child_or_replace_with_skeleton): Add new parameter; update
12002         caller.  Place skeleton DIE under parent DIE of original declaration.
12003         Move call to copy_declaration_context to here ...
12004         (break_out_comdat_types): ... from here.
12005
12006 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12007
12008         PR rtl-optimization/51856
12009         * reload.c (find_reloads_subreg_address): Set the address_reloaded
12010         flag to reloaded.
12011
12012 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12013
12014         PR target/51819
12015         * config/arm/arm.c (arm_print_operand): Correct output of alignment
12016         hints for neon loads and stores.
12017
12018 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
12019
12020         PR target/49868
12021         PR target/50887
12022         * doc/extend.texi (Named Address Spaces): Split into subsections.
12023         (AVR Named Address Spaces): New subsection.
12024         (M32C Named Address Spaces): New subsection.
12025         (RL78 Named Address Spaces): New subsection.
12026         (SPU Named Address Spaces): New subsection.
12027         (Variable Attributes): New anchor "AVR Variable Attributes".
12028         (AVR Variable Attributes): Rewrite and avoid wording
12029         "address space" in this context.
12030         * doc/invoke.texi (AVR Options): Rewrite and add documentation
12031         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
12032         (AVR Built-in Macros): New subsubsection therein.
12033         * doc/md.texi (AVR constraints): Remove "C04", "R".
12034
12035 2012-01-20  Richard Guenther  <rguenther@suse.de>
12036
12037         PR tree-optimization/51903
12038         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
12039         when removing stmts.
12040
12041 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12042
12043         PR target/50313
12044         * config/arm/arm.c (arm_load_pic_register): Use
12045         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
12046         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
12047         (arm_pic_static_addr): Likewise.
12048         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
12049         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
12050         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
12051         (pic_load_addr_unified): New.
12052
12053 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
12054
12055         PR target/51106
12056         * function.c (instantiate_virtual_regs_in_insn): Use
12057         delete_insn_and_edges when removing a wrong asm insn.
12058
12059 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
12060
12061         PR rtl-optimization/40761
12062         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
12063         Add new member loop_num.
12064         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
12065         (ira_build): Remove the parameter.
12066
12067         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
12068         (ira.c): Do not build CFG loops for one region allocation.  Remove
12069         argument from ira_build call.
12070
12071         * ira-build.c (init_loop_tree_node): New function.
12072         (create_loop_tree_nodes): Use it.  Separate the case when CFG
12073         loops are not built.
12074         (more_one_region_p): Check current_loops.
12075         (finish_loop_tree_nodes): Separate the case when CFG loops are not
12076         built.
12077         (add_loop_to_tree): Process loop equal to NULL too.
12078         (form_loop_tree): Separate the case when CFG loops are not built.
12079         Use explicitly number for the root.
12080         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
12081         an assertion.
12082         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
12083         instead of loop->num.
12084         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
12085         (mark_all_loops_for_removal): Ditto.
12086         (remove_unnecessary_regions): Separate the case when CFG loops
12087         are not built.
12088         (ira_build): Remove the parameter.  Use explicit number of regions
12089         when CFG loops are not built.
12090
12091         * ira-color.c (print_loop_title): Separate the case for the root node.
12092         Use loop_num instead of loop->num.
12093         (move_spill_restore): Use loop_num instead of loop->num.
12094
12095         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
12096         (change_loop): Ditto.
12097         (change_loop): Use loop_num instead of loop->num.
12098
12099         * ira-lives.c (process_bb_node_lives): Ditto.
12100
12101         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
12102
12103         * ira-conflicts.c (print_allocno_conflicts): Ditto.
12104
12105 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
12106
12107         PR libmudflap/40778
12108         * tree-mudflap.c (mf_artificial): New function.
12109         (execute_mudflap_function_ops, execute_mudflap_function_decls,
12110         mx_register_decls, mudflap_enqueue_decl): Use it.
12111
12112         PR target/51876
12113         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
12114         numbers in the insn pattern.
12115
12116 2012-01-19  Michael Matz  <matz@suse.de>
12117
12118         PR tree-optimization/46590
12119         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
12120         use it in remembering which conflicts we already created.
12121         (add_scope_conflicts): Adjust call to above, (de)allocate helper
12122         bitmap.
12123
12124 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
12125
12126         PR lto/51280
12127         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
12128         (merge_and_complain): Same.
12129
12130 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
12131
12132         PR bootstrap/50237
12133         * config/initfini-array.h: Guard content of the header
12134         with #ifdef HAVE_INITFINI_ARRAY.
12135         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
12136         Add initfini-array.h to tm_file here.
12137         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
12138         * config.gcc: Don't add initfini-array.h to tm_file here.
12139         * configure: Regenerated.
12140
12141 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
12142
12143         PR rtl-optimization/51505
12144         * df-problems.c (df_kill_notes): New parameter live. Update comment.
12145         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
12146         (df_note_bb_compute): Update the call to df_kill_notes.
12147
12148 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
12149
12150         * trans-mem.c (requires_barrier): Remove call to is_global_var.
12151
12152 2012-01-18  Richard Guenther  <rguenther@suse.de>
12153
12154         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
12155         of conversions to void *.
12156
12157 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12158             Richard Sandiford  <rdsandiford@googlemail.com>
12159
12160         PR middle-end/50325
12161         PR middle-end/51192
12162         * optabs.h (simplify_expand_binop): Declare.
12163         * optabs.c (simplify_expand_binop): Make global.
12164         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
12165         endian targets if the source cannot be exactly covered by word
12166         mode chunks.
12167
12168 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
12169
12170         PR bootstrap/51872
12171         * hard-reg-set.h (struct hard_reg_set_container): New type.
12172         * target.h (struct hard_reg_set_container): Forward declare.
12173         * target.def (set_up_by_prologue): New target hook.
12174         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
12175         * doc/tm.texi: Regenerated.
12176         * function.c (thread_prologue_and_epilogue_insns): Change
12177         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
12178         Call targetm.set_up_by_prologue on it.
12179         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
12180         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
12181
12182 2012-01-17  Nick Clifton  <nickc@redhat.com>
12183
12184         * config/rx/rx.c (rx_can_use_simple_return): New function.
12185         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
12186         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
12187
12188 2012-01-17  Richard Guenther  <rguenther@suse.de>
12189
12190         PR middle-end/51782
12191         * expr.c (expand_assignment): Take address-space information
12192         from the address operand of MEM_REF and TARGET_MEM_REF.
12193         (expand_expr_real_1): Likewise.
12194
12195 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12196
12197         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
12198         reload dump is requested.
12199
12200 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
12201
12202         PR other/51165
12203         * trans-mem.c (requires_barrier): Call may_be_aliased.
12204
12205 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
12206
12207         PR tree-optimization/51877
12208         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
12209         call arguments and fndecls compare equal, instead return false if they
12210         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
12211         both SSA_NAMEs that are valueized the same, or they satisfy
12212         operand_equal_p.
12213
12214 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12215
12216         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
12217         Solaris 11+.
12218         * configure: Regenerate.
12219
12220 2012-01-16  Jan Hubicka  <jh@suse.cz>
12221
12222         PR c/12245
12223         PR c++/14179
12224         * convert.c (convert_to_integer): Use fold_convert for
12225         converting an INTEGER_CST to integer type.
12226
12227 2012-01-16  Jason Merrill  <jason@redhat.com>
12228
12229         PR c++/14179
12230         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
12231
12232 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
12233
12234         PR bootstrap/51860
12235         * config/s390/s390.c (s390_chunkify_start): Don't skip
12236         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
12237         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
12238         If insn is followed by NOTE_INSN_VAR_LOCATION or
12239         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
12240         Don't use location of note insns.
12241
12242         PR tree-optimization/51865
12243         * tree-inline.c (tree_function_versioning): Call remap_decl
12244         on DECL_RESULT whenever it has VOID_TYPE_P type.
12245
12246 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
12247
12248         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
12249         for calls to locally-binding MIPS16 functions if only the return
12250         type uses float regs.
12251
12252 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
12253             Richard Sandiford  <rdsandiford@googlemail.com>
12254
12255         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
12256         (SYMBOL_32_HIGH): Likewise.
12257         (mips_output_tls_reloc_directive): Declare.
12258         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
12259         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
12260         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
12261         (mips_lo_relocs, mips_hi_relocs): Make extern.
12262         (mips16_stub_function): Move up file.
12263         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
12264         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
12265         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
12266         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
12267         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
12268         (mips_get_tp): Add MIPS16 support.
12269         (mips_legitimize_tls_address): Remove MIPS16 sorry().
12270         Generalize DTPREL and TPREL handling.
12271         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
12272         Add MIPS16 TLS support.
12273         (mips_output_tls_reloc_directive): New function.
12274         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
12275         * config/mips/predicates.md (symbolic_operand_with_high)
12276         (tls_reloc_operand): New predicates.
12277         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
12278         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
12279         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
12280         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
12281         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
12282         (*tls_get_tp_mips16_call_<mode>): Likewise.
12283
12284 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
12285
12286         PR rtl-optimization/51821
12287         * recog.c (peep2_find_free_register): Determine clobbered registers
12288         from insn pattern.
12289
12290 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
12291
12292         PR target/50925
12293         * config/avr/avr-protos.h: Revert change of 2012-01-09.
12294         * config/avr/avr.c: Likewise.
12295         * config/avr/avr.h: Likewise.
12296
12297 2012-01-13  Ian Lance Taylor  <iant@google.com>
12298
12299         PR c++/50012
12300         * tree.h (TYPE_QUALS): Add cast to int.
12301         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
12302
12303 2012-01-13  Ian Lance Taylor  <iant@google.com>
12304
12305         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
12306         comparing param_index to VEC_length result.
12307
12308 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
12309
12310         * c-decl.c: Do not include tree-mudflap.h
12311         * tree-optimize.c: Likewise.
12312         * Makefile.in: Update dependencies.
12313
12314 2012-01-13  Richard Guenther  <rguenther@suse.de>
12315
12316         PR middle-end/8081
12317         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
12318         variable-sized result always use RSO.
12319
12320 2012-01-12  DJ Delorie  <dj@redhat.com>
12321
12322         * cfgexpand.c (convert_debug_memory_address): Allow any valid
12323         pointer type, not just the default pointer type.
12324
12325 2012-01-09  Richard Henderson  <rth@redhat.com>
12326             Denis Chertykov  <chertykov@gmail.com>
12327
12328         PR target/50925
12329         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
12330         * config/avr/avr.c (avr_can_eliminate): Simplify.
12331         (avr_initial_elimination_offset): Likewise.
12332         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
12333         (expand_epilogue): Likewise.
12334         (avr_legitimize_address): Gut.
12335         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
12336         (avr_hard_regno_nregs): New.
12337         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
12338         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
12339         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
12340         add soft frame pointer.
12341         (CALL_USED_REGISTERS): Likewise.
12342         (REG_CLASS_CONTENTS): Likewise.
12343         (REGISTER_NAMES): Likewise.
12344         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
12345         (HARD_FRAME_POINTER_REGNUM): New.
12346         (FRAME_POINTER_REGNUM): Use soft frame pointer.
12347         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
12348         remove the HARD_FRAME_POINTER self-elimination.
12349
12350 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
12351
12352         PR target/51756
12353         * config/avr/avr.c (avr_encode_section_info): Test for absence of
12354         DECL_EXTERNAL when checking for initializers of progmem variables.
12355
12356 2012-01-12  Ira Rosen  <irar@il.ibm.com>
12357
12358         PR tree-optimization/51799
12359         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
12360         that the last operation is a type demotion.
12361
12362 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
12363
12364         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
12365         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
12366
12367 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
12368
12369         PR bootstrap/51796
12370         * combine.c (distribute_notes): If i3 is a noreturn call,
12371         allow old_size to be equal to args_size and make sure the
12372         noreturn call gets REG_ARGS_SIZE note.
12373         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
12374         on noreturn calls even when the delta is 0.
12375
12376 2012-01-11  Nathan Sidwell  <nathan@acm.org>
12377
12378         * gcov.c (STRING_SIZE): Remove.
12379         (generate_results): Erase annotations for source files with no
12380         coverage information.
12381         (read_line): New.
12382         (output_lines): Use it.
12383
12384 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12385
12386         * gimple.h (gimplify_body): Remove first argument.
12387         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
12388         pointer set here, instead just pass DATA to walk_tree.
12389         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
12390         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
12391         (unvisit_body): Likewise, but with unmark_visited.
12392         (gimplify_body): Remove BODY_P argument and adjust.
12393         (gimplify_function_tree): Adjust call to gimplify_body.
12394         * omp-low.c (finalize_task_copyfn): Likewise.
12395
12396 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12397
12398         * tree.h (build_function_decl_skip_args): Add boolean parameter.
12399         (build_function_type_skip_args): Delete.
12400         * tree.c (build_function_type_skip_args): Make static and add
12401         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
12402         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
12403         pass it to build_function_type_skip_args.
12404         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
12405         (tree_function_versioning): Likewise.
12406         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
12407         build_function_decl_skip_args.
12408         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
12409         and pass it to build_function_decl_skip_args/tree_function_versioning.
12410         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
12411         * ipa-inline-transform.c (save_inline_function_body): Likewise.
12412         * trans-mem.c (ipa_tm_create_version): Likewise.
12413         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
12414         * tree-inline.c (declare_return_variable): Remove always-true test.
12415         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
12416         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
12417         * ipa-split.c (split_function): Skip the return value for the split
12418         part if it doesn't return.
12419
12420 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12421
12422         PR tree-optimization/49642
12423         * ipa-split.c (forbidden_dominators): New variable.
12424         (check_forbidden_calls): New function.
12425         (dominated_by_forbidden): Likewise.
12426         (consider_split): Check for forbidden dominators.
12427         (execute_split_functions): Initialize and free forbidden
12428         dominators info; call check_forbidden_calls.
12429
12430 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
12431
12432         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
12433
12434 2012-01-11  Nick Clifton  <nickc@redhat.com>
12435
12436         * config/rx/rx.md (return): Define pattern.
12437
12438 2012-01-11  Richard Guenther  <rguenther@suse.de>
12439
12440         * doc/extend.texi (malloc attribute): Adjust according to
12441         implementation.
12442
12443 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
12444             Patrick Marlier  <patrick.marlier@gmail.com>
12445
12446         PR middle-end/51516
12447         * trans-mem.c (get_cg_data): Traverse aliases if requested.
12448         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
12449         (ipa_tm_note_irrevocable): Same.
12450         (ipa_tm_scan_irr_block): Same.
12451         (ipa_tm_decrement_clone_counts): Same.
12452         (ipa_tm_scan_irr_function): Same.
12453         (ipa_tm_create_version_alias): Same.
12454         (ipa_tm_create_version): Same.
12455         (ipa_tm_transform_calls_redirect): Same.
12456         (ipa_tm_transform_calls): Same.
12457         (ipa_tm_transform_transaction): Same.
12458         (ipa_tm_execute): Same.
12459
12460 2012-01-10  Richard Guenther  <rguenther@suse.de>
12461
12462         PR middle-end/51806
12463         * opts.c (common_handle_option): Handle -Werror.
12464
12465 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
12466
12467         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
12468         operand number.
12469
12470 2012-01-10  Jason Merrill  <jason@redhat.com>
12471
12472         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
12473         information.
12474
12475 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12476
12477         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
12478         supports R_386_TLS_GD_PLT reloc.
12479         (gcc_cv_as_ix86_tlsldmplt): Check if linker
12480         supports R_386_TLS_LDM_PLT reloc.
12481         * configure: Regenerate.
12482         * config.in: Regenerate.
12483
12484 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
12485
12486         PR target/49868
12487         Extend __pgmx semantics to linearize memory.
12488         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
12489         determine if code comes inline or from libgcc.
12490         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
12491         (movmem_qi, movmem_qi): Set constraint #2 to "n".
12492         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
12493         (movmemx_qi, movmemx_hi): New insns.
12494         (xload_<mode>_libgcc): Rewrite to new insn condition.
12495         (xload_<mode>): Remove insns.
12496         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
12497         cases that don't satisfy avr_xload_libgcc_p().
12498         (avr_addr_space_convert): Allow converting in any direction.
12499         (avr_addr_space_subset_p): Return always true.
12500         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
12501         (avr_emit_movmemhi): Ditto.
12502         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
12503         (avr_out_movmem): Ditto.
12504         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
12505         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
12506         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
12507         (avr_encode_section_info): Encode 'progmem' in symbol flags.
12508         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
12509
12510 2012-01-10  Richard Guenther  <rguenther@suse.de>
12511
12512         PR tree-optimization/50913
12513         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
12514         Require data-refs to be representable by Graphite with respect
12515         to any loop nest.
12516
12517 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
12518
12519         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
12520         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
12521
12522 2012-01-10  Tom de Vries  <tom@codesourcery.com>
12523
12524         PR rtl-optimization/51271
12525         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
12526         handling annulled branch.
12527
12528 2012-01-10  Richard Henderson  <rth@redhat.com>
12529
12530         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
12531         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
12532         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
12533         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
12534         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
12535         arm_expand_vec_perm_const): New.
12536         * config/arm/arm-protos.h: Update.
12537         * config/arm/neon.md (UNSPEC_VCONCAT): New.
12538         (*neon_vswp<VDQX>): New.
12539         (neon_vcombine<VDX>): Use neon_split_vcombine.
12540         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
12541         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
12542         (vec_perm<VE>): New.
12543
12544 2012-01-10  Richard Henderson  <rth@redhat.com>
12545
12546         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
12547         use it if reload_completed.
12548         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
12549         arm_output_asm_insn, arm_process_output_memory_barrier,
12550         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
12551         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
12552         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
12553         arm_process_output_sync_insn, arm_output_sync_insn,
12554         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
12555         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
12556         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
12557         (emit_unlikely_jump): New.
12558         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
12559         (arm_split_atomic_op): New.
12560         * config/arm/arm-protos.h: Update.
12561         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
12562         (struct arm_sync_generator): Remove.
12563         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
12564         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
12565         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
12566         (VUNSPEC_LL, VUNSPEC_SC): New.
12567         (sync_result, sync_memory, sync_required_value, sync_new_value,
12568         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
12569         (attr length): Don't use arm_sync_loop_insns.
12570         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
12571         (movsfcc, movdfcc): Likewise.
12572         * config/arm/constraints.md (Ua): New.
12573         * config/arm/prediates.md (mem_noofs_operand): New.
12574         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
12575         (sync_clobber, sync_t2_reqd): Remove.
12576         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
12577         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
12578         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
12579         (arm_sync_compare_and_swap<SIDI>): Remove.
12580         (arm_sync_compare_and_swap<NARROW>): Remove.
12581         (arm_sync_lock_test_and_set<SIDI>): Remove.
12582         (arm_sync_lock_test_and_set<NARROW>): Remove.
12583         (arm_sync_new_<syncop><SIDI>): Remove.
12584         (arm_sync_new_<syncop><NARROW>): Remove.
12585         (arm_sync_new_nand<SIDI>): Remove.
12586         (arm_sync_new_nand<NARROW>): Remove.
12587         (arm_sync_old_<syncop><SIDI>): Remove.
12588         (arm_sync_old_<syncop><NARROW>): Remove.
12589         (arm_sync_old_nand<SIDI>): Remove.
12590         (arm_sync_old_nand<NARROW>): Remove.
12591         (*memory_barrier): Merge arm_output_memory_barrier.
12592         (atomic_compare_and_swap<QHSD>): New.
12593         (atomic_compare_and_swap<NARROW>_1): New.
12594         (atomic_compare_and_swap<SIDI>_1): New.
12595         (atomic_exchange<QHSD>): New.
12596         (cas_cmp_operand, cas_cmp_str): New.
12597         (atomic_op_operand, atomic_op_str): New.
12598         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
12599         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
12600         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
12601         (arm_load_exclusive<NARROW>): New.
12602         (arm_load_exclusivesi, arm_load_exclusivedi): New.
12603         (arm_store_exclusive<QHSD>): New.
12604
12605 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12606
12607         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
12608         reload patterns if -mvsx-scalar-memory.
12609
12610         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
12611         generated, even -mno-vsx-scalar-double was used.
12612         (vsx_xscvdpsp_scalar): Likewise.
12613         (vsx_xscvspdp_scalar2): Likewise.
12614
12615 2012-01-09  Tom de Vries  <tom@codesourcery.com>
12616             Andrew Pinski  <apinski@cavium.com>
12617
12618         PR debug/51471
12619         * reorg.c (fill_slots_from_thread): Don't speculate
12620         frame-related insns.
12621
12622 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
12623
12624         * sched-int.h (bb_note): Move to...
12625         * basic-block.h: ...here.
12626         * haifa-sched.c (bb_note): Move to...
12627         * cfgrtl.c: ...here.
12628         * function.c (next_block_for_reg): New function.
12629         (move_insn_for_shrink_wrap): Likewise.
12630         (prepare_shrink_wrap): Rewrite to use the above.
12631
12632 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
12633
12634         * gimple.c (is_gimple_non_addressable): Remove.
12635         * gimple.h: Remove is_gimple_non_addressable.
12636         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
12637         is_gimple_non_addressable.
12638         * trans-mem.c (expand_assign_tm): Same.
12639
12640 2012-01-09  Richard Guenther  <rguenther@suse.de>
12641
12642         PR tree-optimization/51775
12643         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
12644         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
12645
12646 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
12647
12648         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
12649         tuning parameters.
12650         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
12651
12652 2012-01-09  Richard Guenther  <rguenther@suse.de>
12653
12654         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
12655
12656 2012-01-08  Jan Hubicka  <jh@suse.cz>
12657
12658         PR tree-optimize/51680
12659         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
12660         on when known_vals needs to be computed; cleanup.
12661
12662 2012-01-08  Jan Hubicka  <jh@suse.cz>
12663
12664         PR tree-optimize/51694
12665         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
12666
12667 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
12668
12669         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
12670         for -std=c++98 and -std=c++11 too.
12671
12672 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
12673
12674         * cfgloop.c (cancel_loop): Add free() of bbs array.
12675
12676 2012-01-07  Jan Hubicka  <jh@suse.cz>
12677
12678         PR tree-optimization/51600
12679         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
12680         that benefits small functions.
12681
12682 2012-01-07  Jan Hubicka  <jh@suse.cz>
12683
12684         * ipa-inline.c (want_inline_small_function_p): Fix formating.
12685
12686 2012-01-07  Jan Hubicka  <jh@suse.cz>
12687
12688         PR tree-optimization/51680
12689         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
12690         whose inlining reduce unit size.
12691
12692 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
12693
12694         PR bootstrap/51725
12695         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
12696         Add canonical node to containing_mem chain after the non-canonical
12697         one, even if there weren't any locs to propagate.
12698         (remove_useless_values): Keep only canonical values.
12699         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
12700         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
12701         canonicalize mem_chain elements that are not discarded.
12702
12703 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
12704
12705         PR target/47333
12706         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
12707         before emitting functions.
12708
12709         PR gcov-profile/50127
12710         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
12711         clear_aux_for_blocks.
12712
12713 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
12714
12715         PR debug/51746
12716         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
12717
12718 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
12719
12720         * c-decl.c (ext_block): Moved up.
12721         (collect_all_refs, for_each_global_decl): Take ext_block into account.
12722
12723 2012-01-06  Han Shen  <shenhan@google.com>
12724
12725         Translate built-in include paths for sysroot.
12726         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
12727         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
12728
12729         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
12730         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
12731
12732         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
12733         control whether sysroot should be prepended to gxx include dir.
12734
12735         * configure: Regenerate.
12736
12737 2012-01-06  Torvald Riegel  <triegel@redhat.com>
12738
12739         PR rtl-optimization/51771
12740         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
12741         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
12742
12743 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12744
12745         PR tree-optimization/51315
12746         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
12747         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
12748
12749 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
12750
12751         PR target/51681
12752         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
12753         for shrp pattern.  Correctly handle and fixup shift variable.
12754         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
12755
12756 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
12757
12758         PR debug/51762
12759         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
12760         note when !ACCUMULATE_OUTGOING_ARGS.
12761
12762 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12763
12764         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
12765         condition.
12766         (extract_range_from_unary_expr_1): Avoid useless computations.
12767
12768 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
12769
12770         PR rtl-optimization/51767
12771         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
12772         of jump_block and add an extra edge for degenerated asm gotos.
12773
12774         PR middle-end/51768
12775         * stmt.c (check_unique_operand_names): Don't ICE during error
12776         reporting if i is from labels chain.
12777
12778         PR middle-end/44777
12779         * profile.c (branch_prob): Split bbs that have exit edge
12780         and need a fake entry edge too.
12781
12782 2012-01-05  Jan Hubicka  <jh@suse.cz>
12783
12784         PR middle-end/49710
12785         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
12786         unlooping loops.
12787
12788 2012-01-05  Richard Guenther  <rguenther@suse.de>
12789
12790         PR lto/50490
12791         * tree-streamer-out.c (write_ts_optimization): New function.
12792         (streamer_write_tree_body): Call it.
12793         * tree-streamer-in.c (lto_input_ts_optimization): New function.
12794         (streamer_read_tree_body): Call it.
12795         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
12796
12797 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
12798
12799         PR middle-end/51761
12800         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
12801         * gimplify.c (gimplify_cleanup_point_expr): Save and set
12802         in_cleanup_point_expr before gimplify_stmt call and restore it
12803         afterwards.
12804         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
12805         in_cleanup_point_expr is false.
12806
12807 2012-01-05  Richard Guenther  <rguenther@suse.de>
12808
12809         PR middle-end/51764
12810         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
12811         to c.opt.
12812         * toplev.c (process_options): Reject combining mudflap and LTO.
12813         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
12814
12815 2012-01-05  Richard Guenther  <rguenther@suse.de>
12816
12817         PR tree-optimization/51760
12818         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
12819         not VARYING.
12820         (bit_value_unop): Handle UNDEFINED operands.
12821         (bit_value_binop): Likewise.
12822
12823 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
12824
12825         * config/avr/avr.c (avr_replace_prefix): Remove.
12826         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
12827         (avr_asm_function_rodata_section): Ditto.
12828         (avr_asm_select_section): Ditto.
12829
12830 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12831
12832         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
12833         insertion.
12834
12835 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
12836
12837         PR bootstrap/51648
12838         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
12839         calls that have any non-fake successor edges.
12840
12841         PR debug/51746
12842         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
12843
12844 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12845
12846         PR tree-optimization/51624
12847         * tree-sra.c (build_ref_for_model): When replicating a chain of
12848         COMPONENT_REFs, stop as soon as the offset would become negative.
12849
12850 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
12851
12852         PR debug/51695
12853         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
12854         in .debug_loc on the floor.
12855
12856 2012-01-04  Andrew Pinski  <apinski@cavium.com>
12857
12858         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
12859
12860 2012-01-04  Andrew Pinski  <apinski@cavium.com>
12861             Adam Nemet  <anemet@caviumnetworks.com>
12862
12863         * config/mips/mips.md (size): Add SI and DI.
12864         (SIZE): New mode attribute.
12865         (U): New code attribute.
12866         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
12867         (mips_lbux_<mode>): Delete.
12868         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
12869         (mips_lhx): Use gen_mips_lhx_extsi.
12870         (mips_lhx_<mode>): Delete.
12871         (mips_lwx): Delete.
12872         (mips_l<size>x): New expand.
12873         (mips_lwx_<mode>): Delete.
12874         (mips_l<GPR:size>x_<P:mode>): New pattern.
12875         (*mips_lw<u>x_<P:mode>_ext): Likewise.
12876         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
12877         * config/mips/mips.c (mips_lx_address_p): New function.
12878         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
12879         (dsp64): New availability predicate.
12880         (mips_builtins): Add an entry for __builtin_mips_ldx.
12881         * config/mips/mips.h (ISA_HAS_LBX): New define.
12882         (ISA_HAS_LBUX): Likewise.
12883         (ISA_HAS_LHX): Likewise.
12884         (ISA_HAS_LHUX): Likewise.
12885         (ISA_HAS_LWX): Likewise.
12886         (ISA_HAS_LWUX): Likewise.
12887         (ISA_HAS_LDX): Likewise.
12888         * doc/extend.texi (__builtin_mips_ldx): Document.
12889
12890 2012-01-04  Tristan Gingold  <gingold@adacore.com>
12891
12892         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
12893         when long pointers are used.
12894         * config.build (*-*-*vms*): Handle all OpenVMS targets.
12895         (alpha64-dec-*vms*, alpha*-dec-*vms*)
12896         (ia64-hp-*vms*): Remove.
12897         * config/vms/xm-vms64.h: Delete.
12898
12899 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
12900
12901         PR middle-end/51472
12902         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
12903
12904 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
12905
12906         * opts.c (finish_options): Remove duplicate sorry.
12907
12908 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
12909
12910         PR middle-end/51696
12911         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
12912         correctly.
12913
12914 2012-01-04  Richard Guenther  <rguenther@suse.de>
12915
12916         PR middle-end/51750
12917         * tree.c (size_low_cst): New function.
12918         * tree.h (size_low_cst): Declare.
12919         * fold-const.c (fold_comparison): Use it to extract the low
12920         part of the POINTER_PLUS_EXPR offset.
12921
12922 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
12923
12924         Fix clearing ZERO_REG
12925         * config/avr/avr.md (cc): Add alternative "ldi".
12926         (movqi_insn): Use it in cc attribute.
12927         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
12928         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
12929         (output_reload_insisf): Use ZERO_REG to pre-clear register.
12930
12931 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12932
12933         * configure: Regenerate.
12934
12935 2012-01-04  Richard Guenther  <rguenther@suse.de>
12936
12937         PR tree-optimization/49651
12938         * tree-ssa-structalias.c (type_can_have_subvars): New function.
12939         (var_can_have_subvars): Use it.
12940         (get_constraint_for_1): Only consider subfields if there can be any.
12941
12942 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
12943
12944         PR bootstrap/51725
12945         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
12946         to its new canonical_cselib_val and the cselib_val was in
12947         first_containing_mem chain, but the canonical_cselib_val was not,
12948         add the latter into the chain.
12949         (cselib_invalidate_mem): Compare canonical_cselib_val of
12950         addr_list chain elt with v.
12951
12952         PR pch/51722
12953         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
12954         dwarf2out_undef): Allocate e.info using ggc_strdup instead
12955         of xstrdup.
12956         (output_macinfo_op): Don't ggc_strdup fd->filename.
12957         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
12958         then ggc_strdup it.  Don't free inc->info or cur->info.
12959         (output_macinfo): Don't free ref->info or file->info.
12960
12961 2012-01-03  Ira Rosen  <irar@il.ibm.com>
12962
12963         PR tree-optimization/51269
12964         * tree-vect-loop-manip.c (set_prologue_iterations): Make
12965         first_niters a pointer.
12966         (slpeel_tree_peel_loop_to_edge): Likewise.
12967         (vect_do_peeling_for_loop_bound): Update call to
12968         slpeel_tree_peel_loop_to_edge.
12969         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
12970         here.  Remove it from the parameters list.
12971         (vect_do_peeling_for_alignment): Update calls and compute
12972         wide_prolog_niters.
12973
12974 2012-01-03  Richard Guenther  <rguenther@suse.de>
12975
12976         PR tree-optimization/51070
12977         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
12978         Properly handle calls.
12979
12980 2012-01-03  Richard Guenther  <rguenther@suse.de>
12981
12982         PR tree-optimization/51692
12983         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
12984         the LHS of allocation stmts.
12985
12986 2012-01-03  Olivier Hainque  <hainque@adacore.com>
12987
12988         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
12989
12990 2012-01-03  Olivier Hainque  <hainque@adacore.com>
12991
12992         * collect2.c (main): In AIX specific computations for vector
12993         insertions, use CONST_CAST2 to cast from char ** to const char **.
12994
12995 2012-01-03  Richard Guenther  <rguenther@suse.de>
12996
12997         PR debug/51650
12998         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
12999         the context of a limbo DIE when it does not already exist.
13000
13001 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
13002
13003         PR tree-optimization/51719
13004         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
13005         but direct call is, clear direct call's lhs and don't add fallthrough
13006         edge from dcall_bb to join_bb and PHIs.
13007
13008 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13009
13010         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
13011         the instructions emitted by the pattern.
13012         ("*TDC_insn_<mode>"): Add comment.
13013
13014 2012-01-03  Richard Guenther  <rguenther@suse.de>
13015
13016         PR middle-end/51730
13017         * fold-const.c (fold_comparison): Properly canonicalize
13018         tree offset and HOST_WIDE_INT bit position.
13019
13020 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
13021
13022         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
13023         operands for extzv pattern.
13024
13025 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
13026
13027         PR bootstrap/51725
13028         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
13029         on mem_elt first.
13030
13031 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
13032
13033         * doc/invoke.texi (-flto and related options): Copy-edit.
13034
13035 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
13036
13037         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
13038
13039 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
13040
13041         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
13042         New patterns.
13043
13044 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
13045
13046         * expr.h (move_by_pieces_ninsns): Declare.
13047         * expr.c (move_by_pieces_ninsns): Make external.
13048         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
13049         (mips_store_by_pieces_p): Likewise.
13050         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
13051         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
13052         * config/mips/mips.c (mips_move_by_pieces_p): New function.
13053         (mips_store_by_pieces_p): Likewise.
13054
13055 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
13056
13057         * passes.c (register_one_dump_file): Free full_name.
13058
13059         * reload1.c (reload): Don't allocate reg_max_ref_width here.
13060         (calculate_elim_costs_all_insns): Free offsets_at and
13061         offsets_known_at at the end and clear the pointers.
13062
13063 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
13064
13065         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
13066         this option introduced in r180739.
13067
13068 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
13069
13070         PR target/51345
13071         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
13072         (tmake_file target=avr): Add avr/t-multilib.
13073
13074         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
13075         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
13076         * config/avr/genmultilib.awk: New file.
13077         * config/avr/t-multilib: New auto-generated file.
13078         * config/avr/multilib.h: New auto-generated file.
13079         * config/avr/t-avr (AVR_MCUS): New variable.
13080         (genopt.sh): Use it.
13081         (s-mlib): Depend on t-multilib.
13082         (t-multilib, multilib.h): New dependencies.
13083         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
13084         (MULTILIB_OPTIONS): Remove.
13085         (MULTILIB_MATCHES): Remove.
13086         (MULTILIB_DIRNAMES): Remove.
13087         (MULTILIB_EXCEPTIONS): Remove:
13088         * config/avr/genopt.sh: Don't use hard coded file name;
13089         pass AVR_MCUS from t-avr instead.
13090
13091 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
13092
13093         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
13094
13095 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
13096
13097         Implement light-weight DImode support.
13098         * config/avr/avr-dimode.md: New file.
13099         * config/avr/avr.md: Include it.
13100         (adjust_len): Add plus64, compare64.
13101         (HIDI): Remove code iterator.
13102         (code_stdname): New code attribute.
13103         (rotx, rotsmode): Remove DI.
13104         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
13105         as code iterator.
13106         * config/avr/avr-protos.h (avr_have_dimode): New.
13107         (avr_out_plus64, avr_out_compare64): New.
13108         * config/avr/avr.c (avr_out_compare): Handle DImode.
13109         (avr_have_dimode): New variable definition and initialization.
13110         (avr_out_compare64, avr_out_plus64): New functions.
13111         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
13112         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
13113         (avr_compare_pattern): Skip DImode comparisons.
13114
13115 2012-01-02  Revital Eres  <revital.eres@linaro.org>
13116
13117         * ddg.c (def_has_ccmode_p): New function.
13118         (add_cross_iteration_register_deps,
13119         create_ddg_dep_from_intra_loop_link): Call it.
13120
13121 2012-01-02  Richard Guenther  <rguenther@suse.de>
13122
13123         PR other/51679
13124         * invoke.texi (fassociative-math): Remove spurious paranthesis.
13125
13126 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
13127
13128         * gcc.c (process_command): Update copyright notice dates.
13129         * gcov.c (print_version): Likewise.
13130         * gcov-dump.c (print_version): Likewise.
13131         * mips-tfile.c (main): Likewise.
13132         * mips-tdump.c (main): Likewise.
13133
13134 2012-01-01  Ira Rosen  <irar@il.ibm.com>
13135
13136         PR tree-optimization/51704
13137         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
13138         a use is inside the basic block or loop before accessing its vect info.
13139
13140 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
13141
13142         PR rtl-optimization/51069
13143         * cfgloopmanip.c (remove_path): Removing path making irreducible
13144         region unconditional makes BB part of the region.
13145
13146 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
13147
13148         PR tree-optimization/51683
13149         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
13150         calls with side-effects.
13151         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
13152 \f
13153 Copyright (C) 2012 Free Software Foundation, Inc.
13154
13155 Copying and distribution of this file, with or without modification,
13156 are permitted in any medium without royalty provided the copyright
13157 notice and this notice are preserved.